Imported Upstream version 3.10 upstream upstream/3.10
authorTizenOpenSource <tizenopensrc@samsung.com>
Thu, 28 Dec 2023 06:00:17 +0000 (15:00 +0900)
committerTizenOpenSource <tizenopensrc@samsung.com>
Thu, 28 Dec 2023 06:00:17 +0000 (15:00 +0900)
1034 files changed:
.tarball-version
AUTHORS
ChangeLog
ChangeLog-2008
GNUmakefile
INSTALL
Makefile.am
Makefile.in
NEWS
README
TODO
aclocal.m4
bootstrap
build-aux/announce-gen
build-aux/compile
build-aux/config.guess
build-aux/config.rpath
build-aux/config.sub
build-aux/depcomp
build-aux/do-release-commit-and-tag
build-aux/gendocs.sh
build-aux/git-version-gen
build-aux/gitlog-to-changelog
build-aux/gnu-web-doc-update
build-aux/gnupload
build-aux/mdate-sh
build-aux/missing
build-aux/test-driver
build-aux/texinfo.tex
build-aux/update-copyright
build-aux/useless-if-before-free
build-aux/vc-list-files
cfg.mk
configure
configure.ac
doc/Makefile.am
doc/Makefile.in
doc/diffutils.info
doc/diffutils.texi
doc/fdl.texi
doc/stamp-vti
doc/version.texi
exgettext
gnulib-tests/Makefile.in
gnulib-tests/_Noreturn.h
gnulib-tests/accept.c
gnulib-tests/alloca.c
gnulib-tests/altstack-util.h
gnulib-tests/arg-nonnull.h
gnulib-tests/arpa_inet.in.h
gnulib-tests/asnprintf.c [moved from lib/asnprintf.c with 94% similarity]
gnulib-tests/atoll.c
gnulib-tests/bind.c
gnulib-tests/c++defs.h
gnulib-tests/c-strcasestr.c [new file with mode: 0644]
gnulib-tests/c-strcasestr.h [new file with mode: 0644]
gnulib-tests/connect.c
gnulib-tests/dtotimespec.c
gnulib-tests/fdopen.c
gnulib-tests/float+.h [moved from lib/float+.h with 98% similarity]
gnulib-tests/float.c [moved from lib/float.c with 95% similarity]
gnulib-tests/float.in.h [moved from lib/float.in.h with 99% similarity]
gnulib-tests/fpucw.h
gnulib-tests/ftruncate.c
gnulib-tests/getcwd-lgpl.c
gnulib-tests/glthread/thread.c
gnulib-tests/glthread/thread.h
gnulib-tests/gnulib.mk
gnulib-tests/hash-pjw.c
gnulib-tests/hash-pjw.h
gnulib-tests/inet_pton.c
gnulib-tests/init.sh
gnulib-tests/ioctl.c
gnulib-tests/itold.c [moved from lib/itold.c with 94% similarity]
gnulib-tests/listen.c
gnulib-tests/locale.c
gnulib-tests/macros.h
gnulib-tests/mmap-anon-util.h
gnulib-tests/nan.h [new file with mode: 0644]
gnulib-tests/nanosleep.c
gnulib-tests/nap.h
gnulib-tests/netinet_in.in.h
gnulib-tests/perror.c
gnulib-tests/pipe.c
gnulib-tests/printf-args.c [moved from lib/printf-args.c with 60% similarity]
gnulib-tests/printf-args.h [moved from lib/printf-args.h with 61% similarity]
gnulib-tests/printf-parse.c [moved from lib/printf-parse.c with 54% similarity]
gnulib-tests/printf-parse.h [moved from lib/printf-parse.h with 92% similarity]
gnulib-tests/pselect.c [new file with mode: 0644]
gnulib-tests/pthread-thread.c
gnulib-tests/pthread.in.h
gnulib-tests/pthread_sigmask.c
gnulib-tests/putenv.c
gnulib-tests/same-inode.h
gnulib-tests/sched.in.h
gnulib-tests/select.c
gnulib-tests/setsockopt.c
gnulib-tests/sig-handler.h [deleted file]
gnulib-tests/sigaction.c [deleted file]
gnulib-tests/signature.h
gnulib-tests/size_max.h [moved from lib/size_max.h with 86% similarity]
gnulib-tests/sleep.c
gnulib-tests/snprintf.c
gnulib-tests/socket.c
gnulib-tests/sockets.c
gnulib-tests/sockets.h
gnulib-tests/str-two-way.h [new file with mode: 0644]
gnulib-tests/strerror_r.c
gnulib-tests/symlink.c
gnulib-tests/sys_ioctl.in.h
gnulib-tests/sys_select.in.h
gnulib-tests/sys_socket.c
gnulib-tests/sys_socket.in.h
gnulib-tests/sys_uio.in.h
gnulib-tests/test-accept.c
gnulib-tests/test-alignasof.c [moved from gnulib-tests/test-stdalign.c with 71% similarity]
gnulib-tests/test-alloca-opt.c
gnulib-tests/test-areadlink.c
gnulib-tests/test-areadlink.h
gnulib-tests/test-argmatch.c
gnulib-tests/test-arpa_inet.c
gnulib-tests/test-assert.c [new file with mode: 0644]
gnulib-tests/test-binary-io.c
gnulib-tests/test-binary-io.sh
gnulib-tests/test-bind.c
gnulib-tests/test-bitrotate.c
gnulib-tests/test-btowc.c
gnulib-tests/test-btowc1.sh
gnulib-tests/test-btowc2.sh
gnulib-tests/test-btowc3.sh [new file with mode: 0755]
gnulib-tests/test-c-ctype.c
gnulib-tests/test-c-stack.c
gnulib-tests/test-c-stack.sh
gnulib-tests/test-c-stack2.sh
gnulib-tests/test-c-strcase.sh
gnulib-tests/test-c-strcasecmp.c
gnulib-tests/test-c-strcasestr.c [new file with mode: 0644]
gnulib-tests/test-c-strncasecmp.c
gnulib-tests/test-calloc-gnu.c
gnulib-tests/test-cloexec.c
gnulib-tests/test-close.c
gnulib-tests/test-connect.c
gnulib-tests/test-ctype.c
gnulib-tests/test-dirname.c
gnulib-tests/test-dup2.c
gnulib-tests/test-dynarray.c
gnulib-tests/test-environ.c
gnulib-tests/test-errno.c
gnulib-tests/test-error.c [new file with mode: 0644]
gnulib-tests/test-error.sh [new file with mode: 0755]
gnulib-tests/test-exclude.c
gnulib-tests/test-exclude1.sh
gnulib-tests/test-exclude2.sh
gnulib-tests/test-exclude3.sh
gnulib-tests/test-exclude4.sh
gnulib-tests/test-exclude5.sh
gnulib-tests/test-exclude6.sh
gnulib-tests/test-exclude7.sh
gnulib-tests/test-exclude8.sh
gnulib-tests/test-fcntl-h.c
gnulib-tests/test-fcntl.c
gnulib-tests/test-fdopen.c
gnulib-tests/test-fgetc.c
gnulib-tests/test-filenamecat.c
gnulib-tests/test-float.c
gnulib-tests/test-fnmatch-h.c
gnulib-tests/test-fnmatch.c
gnulib-tests/test-fopen-gnu.c
gnulib-tests/test-fopen.c
gnulib-tests/test-fopen.h
gnulib-tests/test-fputc.c
gnulib-tests/test-fread.c
gnulib-tests/test-free.c
gnulib-tests/test-freopen.c
gnulib-tests/test-fstat.c
gnulib-tests/test-ftruncate.c
gnulib-tests/test-fwrite.c
gnulib-tests/test-getcwd-lgpl.c
gnulib-tests/test-getdtablesize.c
gnulib-tests/test-getopt-gnu.c
gnulib-tests/test-getopt-main.h
gnulib-tests/test-getopt-posix.c
gnulib-tests/test-getopt.h
gnulib-tests/test-getopt_long.h
gnulib-tests/test-getprogname.c
gnulib-tests/test-getrandom.c
gnulib-tests/test-gettimeofday.c
gnulib-tests/test-hard-locale.c
gnulib-tests/test-hash.c
gnulib-tests/test-iconv-h.c
gnulib-tests/test-iconv.c
gnulib-tests/test-ignore-value.c
gnulib-tests/test-inet_pton.c
gnulib-tests/test-init.sh
gnulib-tests/test-intprops.c
gnulib-tests/test-inttostr.c
gnulib-tests/test-inttypes.c
gnulib-tests/test-ioctl.c
gnulib-tests/test-isblank.c
gnulib-tests/test-iswblank.c
gnulib-tests/test-iswdigit.c
gnulib-tests/test-iswdigit.sh
gnulib-tests/test-iswxdigit.c
gnulib-tests/test-iswxdigit.sh
gnulib-tests/test-langinfo.c
gnulib-tests/test-largefile.c [new file with mode: 0644]
gnulib-tests/test-limits-h.c
gnulib-tests/test-listen.c
gnulib-tests/test-localcharset.c
gnulib-tests/test-locale.c
gnulib-tests/test-localeconv.c
gnulib-tests/test-lstat.c
gnulib-tests/test-lstat.h
gnulib-tests/test-malloc-gnu.c
gnulib-tests/test-malloca.c
gnulib-tests/test-mbrtowc-w32.c
gnulib-tests/test-mbrtowc.c
gnulib-tests/test-mbrtowc1.sh
gnulib-tests/test-mbrtowc2.sh
gnulib-tests/test-mbrtowc3.sh
gnulib-tests/test-mbrtowc4.sh
gnulib-tests/test-mbrtowc5.sh
gnulib-tests/test-mbscasecmp.c
gnulib-tests/test-mbscasecmp.sh
gnulib-tests/test-mbsinit.c
gnulib-tests/test-mbsinit.sh
gnulib-tests/test-mbsrtowcs.c
gnulib-tests/test-mbsrtowcs1.sh
gnulib-tests/test-mbsrtowcs2.sh
gnulib-tests/test-mbsrtowcs3.sh
gnulib-tests/test-mbsrtowcs4.sh
gnulib-tests/test-mbsrtowcs5.sh [new file with mode: 0755]
gnulib-tests/test-mbsstr1.c
gnulib-tests/test-mbsstr2.c
gnulib-tests/test-mbsstr2.sh
gnulib-tests/test-mbsstr3.c
gnulib-tests/test-mbsstr3.sh
gnulib-tests/test-memchr.c
gnulib-tests/test-mkdir.c
gnulib-tests/test-mkdir.h
gnulib-tests/test-nanosleep.c
gnulib-tests/test-netinet_in.c
gnulib-tests/test-nl_langinfo-mt.c
gnulib-tests/test-nl_langinfo.sh [deleted file]
gnulib-tests/test-nl_langinfo1.c [moved from gnulib-tests/test-nl_langinfo.c with 98% similarity]
gnulib-tests/test-nl_langinfo1.sh [new file with mode: 0755]
gnulib-tests/test-nl_langinfo2.c [new file with mode: 0644]
gnulib-tests/test-nl_langinfo2.sh [new file with mode: 0755]
gnulib-tests/test-nstrftime.c
gnulib-tests/test-nullptr.c [new file with mode: 0644]
gnulib-tests/test-open.c
gnulib-tests/test-open.h
gnulib-tests/test-pathmax.c
gnulib-tests/test-perror.c
gnulib-tests/test-perror.sh
gnulib-tests/test-perror2.c
gnulib-tests/test-pipe.c
gnulib-tests/test-pselect.c [new file with mode: 0644]
gnulib-tests/test-pthread-thread.c
gnulib-tests/test-pthread.c
gnulib-tests/test-pthread_sigmask1.c
gnulib-tests/test-pthread_sigmask2.c
gnulib-tests/test-quotearg-simple.c
gnulib-tests/test-quotearg.h
gnulib-tests/test-raise.c
gnulib-tests/test-rawmemchr.c
gnulib-tests/test-readlink.c
gnulib-tests/test-readlink.h
gnulib-tests/test-realloc-gnu.c
gnulib-tests/test-reallocarray.c
gnulib-tests/test-regex.c
gnulib-tests/test-sched.c
gnulib-tests/test-select-fd.c
gnulib-tests/test-select-in.sh
gnulib-tests/test-select-out.sh
gnulib-tests/test-select-stdin.c
gnulib-tests/test-select.c
gnulib-tests/test-select.h
gnulib-tests/test-setenv.c
gnulib-tests/test-setlocale_null-mt-all.c
gnulib-tests/test-setlocale_null-mt-one.c
gnulib-tests/test-setlocale_null.c
gnulib-tests/test-setsockopt.c
gnulib-tests/test-sh-quote.c
gnulib-tests/test-sigaction.c [deleted file]
gnulib-tests/test-signal-h.c
gnulib-tests/test-sigprocmask.c
gnulib-tests/test-sigsegv-catch-segv1.c
gnulib-tests/test-sigsegv-catch-segv2.c
gnulib-tests/test-sigsegv-catch-stackoverflow1.c
gnulib-tests/test-sigsegv-catch-stackoverflow2.c
gnulib-tests/test-sleep.c
gnulib-tests/test-snprintf.c
gnulib-tests/test-sockets.c
gnulib-tests/test-stat-time.c
gnulib-tests/test-stat.c
gnulib-tests/test-stat.h
gnulib-tests/test-stdbool.c
gnulib-tests/test-stdckdint.c [moved from lib/xasprintf.c with 50% similarity]
gnulib-tests/test-stddef.c
gnulib-tests/test-stdint.c
gnulib-tests/test-stdio.c
gnulib-tests/test-stdlib.c
gnulib-tests/test-strerror.c
gnulib-tests/test-strerror_r.c
gnulib-tests/test-striconv.c
gnulib-tests/test-string.c
gnulib-tests/test-strings.c
gnulib-tests/test-strnlen.c
gnulib-tests/test-strtoimax.c
gnulib-tests/test-strtoll.c
gnulib-tests/test-symlink.c
gnulib-tests/test-symlink.h
gnulib-tests/test-sys_ioctl.c
gnulib-tests/test-sys_random.c
gnulib-tests/test-sys_select.c
gnulib-tests/test-sys_socket.c
gnulib-tests/test-sys_stat.c
gnulib-tests/test-sys_time.c
gnulib-tests/test-sys_types.c
gnulib-tests/test-sys_uio.c
gnulib-tests/test-sys_wait.c
gnulib-tests/test-sys_wait.h
gnulib-tests/test-thread_create.c
gnulib-tests/test-thread_self.c
gnulib-tests/test-time-h.c [new file with mode: 0644]
gnulib-tests/test-time.c
gnulib-tests/test-timespec.c
gnulib-tests/test-trim.c [new file with mode: 0644]
gnulib-tests/test-trim1.sh [new file with mode: 0755]
gnulib-tests/test-trim2.sh [new file with mode: 0755]
gnulib-tests/test-trim3.sh [new file with mode: 0755]
gnulib-tests/test-unistd.c
gnulib-tests/test-unsetenv.c
gnulib-tests/test-update-copyright.sh
gnulib-tests/test-vasnprintf.c
gnulib-tests/test-vasprintf.c [deleted file]
gnulib-tests/test-vc-list-files-cvs.sh
gnulib-tests/test-vc-list-files-git.sh
gnulib-tests/test-verify-try.c
gnulib-tests/test-verify.c
gnulib-tests/test-version-etc.c
gnulib-tests/test-version-etc.sh
gnulib-tests/test-wchar.c
gnulib-tests/test-wcrtomb-w32.c
gnulib-tests/test-wcrtomb.c
gnulib-tests/test-wcrtomb.sh
gnulib-tests/test-wctype-h.c
gnulib-tests/test-wcwidth.c
gnulib-tests/test-xalloc-die.c
gnulib-tests/test-xalloc-die.sh
gnulib-tests/test-xstdopen.c
gnulib-tests/test-xstrtoimax.sh
gnulib-tests/test-xstrtol.c
gnulib-tests/test-xstrtol.sh
gnulib-tests/test-xvasprintf.c [deleted file]
gnulib-tests/test-year2038.c [new file with mode: 0644]
gnulib-tests/time.c [moved from lib/asprintf.c with 63% similarity]
gnulib-tests/timespec-add.c
gnulib-tests/timespec-sub.c
gnulib-tests/unistr/test-u8-mbtoucr.c
gnulib-tests/unistr/test-u8-uctomb.c
gnulib-tests/uniwidth/test-uc_width.c
gnulib-tests/uniwidth/test-uc_width2.c
gnulib-tests/uniwidth/test-uc_width2.sh
gnulib-tests/vasnprintf.c [moved from lib/vasnprintf.c with 77% similarity]
gnulib-tests/vasnprintf.h [moved from lib/vasnprintf.h with 93% similarity]
gnulib-tests/w32sock.h
gnulib-tests/warn-on-use.h
gnulib-tests/wctob.c
gnulib-tests/wctomb-impl.h
gnulib-tests/wctomb.c
gnulib-tests/windows-thread.c
gnulib-tests/windows-thread.h
gnulib-tests/windows-tls.c
gnulib-tests/windows-tls.h
gnulib-tests/xsize.c [moved from lib/xsize.c with 93% similarity]
gnulib-tests/xsize.h [moved from lib/xsize.h with 95% similarity]
gnulib-tests/xstrtol-error.c
gnulib-tests/xstrtol-error.h
gnulib-tests/zerosize-ptr.h
lib/Makefile.am
lib/Makefile.in
lib/_Noreturn.h
lib/alloca.in.h
lib/allocator.c
lib/allocator.h
lib/anytostr.c
lib/areadlink.c
lib/areadlink.h
lib/arg-nonnull.h
lib/argmatch.c
lib/argmatch.h
lib/assert.in.h [moved from gnulib-tests/sig-handler.c with 63% similarity]
lib/assure.h
lib/attribute.h
lib/basename-lgpl.c
lib/basename-lgpl.h
lib/basename.c
lib/binary-io.c
lib/binary-io.h
lib/bitrotate.c
lib/bitrotate.h
lib/btowc.c
lib/c++defs.h
lib/c-ctype.c
lib/c-ctype.h
lib/c-stack.c
lib/c-stack.h
lib/c-strcase.h
lib/c-strcasecmp.c
lib/c-strcaseeq.h
lib/c-strncasecmp.c
lib/calloc.c
lib/careadlinkat.c
lib/careadlinkat.h
lib/cdefs.h
lib/cloexec.c
lib/cloexec.h
lib/close.c
lib/cmpbuf.c
lib/cmpbuf.h
lib/config.hin
lib/ctype.in.h
lib/diffseq.h
lib/dirname-lgpl.c
lib/dirname.c
lib/dirname.h
lib/dup2.c
lib/dynarray.h
lib/errno.in.h
lib/error.c
lib/error.h [deleted file]
lib/error.in.h [new file with mode: 0644]
lib/exclude.c
lib/exclude.h
lib/exitfail.c
lib/exitfail.h
lib/fcntl.c
lib/fcntl.in.h
lib/fd-hook.c
lib/fd-hook.h
lib/file-type.c
lib/file-type.h
lib/filename.h
lib/filenamecat-lgpl.c
lib/filenamecat.c
lib/filenamecat.h
lib/flexmember.h
lib/fnmatch.c
lib/fnmatch.in.h
lib/fnmatch_loop.c
lib/fopen.c
lib/free.c
lib/freopen.c
lib/fstat.c
lib/getdtablesize.c
lib/getopt-cdefs.in.h
lib/getopt-core.h
lib/getopt-ext.h
lib/getopt-pfx-core.h
lib/getopt-pfx-ext.h
lib/getopt.c
lib/getopt.in.h
lib/getopt1.c
lib/getopt_int.h
lib/getpagesize.c
lib/getprogname.c
lib/getprogname.h
lib/getrandom.c
lib/gettext.h
lib/gettime.c
lib/gettimeofday.c
lib/glthread/lock.c
lib/glthread/lock.h
lib/glthread/threadlib.c
lib/gnulib.mk
lib/hard-locale.c
lib/hard-locale.h
lib/hash.c
lib/hash.h
lib/ialloc.c
lib/ialloc.h
lib/iconv.c
lib/iconv.in.h
lib/iconv_close.c
lib/iconv_open-aix.gperf
lib/iconv_open-hpux.gperf
lib/iconv_open-irix.gperf
lib/iconv_open-osf.gperf
lib/iconv_open-solaris.gperf
lib/iconv_open-zos.gperf
lib/iconv_open.c
lib/idx.h
lib/ignore-value.h
lib/imaxtostr.c
lib/intprops-internal.h [new file with mode: 0644]
lib/intprops.h
lib/inttostr.c
lib/inttostr.h
lib/inttypes.in.h
lib/isblank.c
lib/iswblank.c
lib/iswdigit.c
lib/iswxdigit.c
lib/langinfo.in.h
lib/lc-charset-dispatch.c
lib/lc-charset-dispatch.h
lib/libc-config.h
lib/limits.in.h
lib/localcharset.c
lib/localcharset.h
lib/locale.in.h
lib/localeconv.c
lib/lstat.c
lib/malloc.c
lib/malloc/dynarray-skeleton.c
lib/malloc/dynarray.h
lib/malloc/dynarray_at_failure.c
lib/malloc/dynarray_emplace_enlarge.c
lib/malloc/dynarray_finalize.c
lib/malloc/dynarray_resize.c
lib/malloc/dynarray_resize_clear.c
lib/malloca.c
lib/malloca.h
lib/mbchar.c
lib/mbchar.h
lib/mbiter.c
lib/mbiter.h
lib/mbrtowc-impl-utf8.h
lib/mbrtowc-impl.h
lib/mbrtowc.c
lib/mbscasecmp.c
lib/mbsinit.c
lib/mbslen.c
lib/mbsrtowcs-impl.h
lib/mbsrtowcs-state.c
lib/mbsrtowcs.c
lib/mbsstr.c
lib/mbtowc-impl.h
lib/mbtowc-lock.c
lib/mbtowc-lock.h
lib/mbtowc.c
lib/mbuiter.c
lib/mbuiter.h
lib/memchr.c
lib/memchr.valgrind
lib/mempcpy.c
lib/minmax.h
lib/mkdir.c
lib/mkstemp.c
lib/mktime-internal.h
lib/mktime.c
lib/msvc-inval.c
lib/msvc-inval.h
lib/msvc-nothrow.c
lib/msvc-nothrow.h
lib/nl_langinfo-lock.c
lib/nl_langinfo.c
lib/nstrftime.c
lib/offtostr.c
lib/open.c
lib/pathmax.h
lib/prepargs.c [deleted file]
lib/prepargs.h [deleted file]
lib/progname.c
lib/progname.h
lib/propername.c
lib/propername.h
lib/quote.h
lib/quotearg.c
lib/quotearg.h
lib/raise.c
lib/rawmemchr.c
lib/rawmemchr.valgrind
lib/readlink.c
lib/realloc.c
lib/reallocarray.c
lib/regcomp.c
lib/regex.c
lib/regex.h
lib/regex_internal.c
lib/regex_internal.h
lib/regexec.c
lib/setenv.c
lib/setlocale-lock.c
lib/setlocale_null.c
lib/setlocale_null.h
lib/sh-quote.c
lib/sh-quote.h
lib/signal.in.h
lib/sigprocmask.c [moved from gnulib-tests/sigprocmask.c with 99% similarity]
lib/sigsegv.c
lib/sigsegv.in.h
lib/stackvma.c
lib/stackvma.h
lib/stat-macros.h
lib/stat-time.c
lib/stat-time.h
lib/stat-w32.c
lib/stat-w32.h
lib/stat.c
lib/stdalign.in.h [deleted file]
lib/stdarg.in.h
lib/stdbool.in.h [deleted file]
lib/stdckdint.in.h [new file with mode: 0644]
lib/stddef.in.h
lib/stdint.in.h
lib/stdio-read.c [new file with mode: 0644]
lib/stdio-write.c [new file with mode: 0644]
lib/stdio.in.h
lib/stdlib.in.h
lib/stdopen.c
lib/stdopen.h
lib/stpcpy.c [new file with mode: 0644]
lib/str-kmp.h
lib/strcasecmp.c
lib/streq.h
lib/strerror-override.c
lib/strerror-override.h
lib/strerror.c
lib/strftime.h
lib/striconv.c
lib/striconv.h
lib/string.in.h
lib/strings.in.h
lib/stripslash.c
lib/strncasecmp.c
lib/strnlen.c
lib/strnlen1.c
lib/strnlen1.h
lib/strptime.c
lib/strtoimax.c
lib/strtol.c
lib/strtoll.c
lib/sys_random.in.h
lib/sys_stat.in.h
lib/sys_time.in.h
lib/sys_types.in.h
lib/sys_wait.in.h
lib/system-quote.c
lib/system-quote.h
lib/tempname.c
lib/tempname.h
lib/time-internal.h
lib/time.in.h
lib/time_r.c
lib/time_rz.c
lib/timegm.c
lib/timespec.c
lib/timespec.h
lib/trim.c
lib/trim.h
lib/tzset.c
lib/uinttostr.c
lib/umaxtostr.c
lib/unictype/bitmap.h [new file with mode: 0644]
lib/unistd.c
lib/unistd.in.h
lib/unistr.in.h
lib/unistr/u8-mbtoucr.c
lib/unistr/u8-uctomb-aux.c
lib/unistr/u8-uctomb.c
lib/unitypes.in.h
lib/uniwidth.in.h
lib/uniwidth/cjk.h
lib/uniwidth/width.c
lib/uniwidth/width0.h [new file with mode: 0644]
lib/uniwidth/width2.h [new file with mode: 0644]
lib/unlocked-io.h
lib/unsetenv.c
lib/vasprintf.c [deleted file]
lib/verify.h
lib/version-etc-fsf.c
lib/version-etc.c
lib/version-etc.h
lib/warn-on-use.h
lib/wchar.in.h
lib/wcrtomb.c
lib/wctype-h.c
lib/wctype.in.h
lib/wcwidth.c
lib/windows-initguard.h
lib/windows-mutex.c
lib/windows-mutex.h
lib/windows-once.c
lib/windows-once.h
lib/windows-recmutex.c
lib/windows-recmutex.h
lib/windows-rwlock.c
lib/windows-rwlock.h
lib/wmemchr-impl.h
lib/wmemchr.c
lib/wmempcpy.c
lib/xalloc-die.c
lib/xalloc-oversized.h
lib/xalloc.h
lib/xfreopen.c
lib/xfreopen.h
lib/xmalloc.c
lib/xmalloca.c
lib/xmalloca.h
lib/xreadlink.c
lib/xreadlink.h
lib/xstdopen.c
lib/xstdopen.h
lib/xstriconv.c
lib/xstriconv.h
lib/xstrtoimax.c
lib/xstrtol.c
lib/xstrtol.h
lib/xstrtoul.c
lib/xvasprintf.c [deleted file]
lib/xvasprintf.h [deleted file]
m4/00gnulib.m4
m4/__inline.m4
m4/absolute-header.m4
m4/alloca.m4
m4/arpa_inet_h.m4
m4/asm-underscore.m4
m4/assert_h.m4 [new file with mode: 0644]
m4/atoll.m4
m4/btowc.m4
m4/builtin-expect.m4
m4/c-bool.m4 [new file with mode: 0644]
m4/c-stack.m4
m4/calloc.m4
m4/clock_time.m4
m4/close.m4
m4/codeset.m4
m4/config-h.m4
m4/ctype_h.m4
m4/double-slash-root.m4
m4/dup2.m4
m4/eealloc.m4
m4/environ.m4
m4/errno_h.m4
m4/error.m4
m4/error_h.m4 [new file with mode: 0644]
m4/exponentd.m4
m4/extensions.m4
m4/extern-inline.m4
m4/fclose.m4 [new file with mode: 0644]
m4/fcntl-o.m4
m4/fcntl.m4
m4/fcntl_h.m4
m4/fdopen.m4
m4/fflush.m4 [new file with mode: 0644]
m4/filenamecat.m4
m4/flexmember.m4
m4/float_h.m4
m4/fnmatch.m4
m4/fnmatch_h.m4
m4/fopen.m4
m4/fpieee.m4
m4/free.m4
m4/freopen.m4
m4/fstat.m4
m4/ftruncate.m4
m4/getcwd.m4
m4/getdtablesize.m4
m4/getopt.m4
m4/getpagesize.m4
m4/getprogname.m4
m4/getrandom.m4
m4/gettime.m4
m4/gettimeofday.m4
m4/gnu-make.m4
m4/gnulib-common.m4
m4/gnulib-comp.m4
m4/host-cpu-c-abi.m4
m4/iconv.m4
m4/iconv_h.m4
m4/iconv_open.m4
m4/include_next.m4
m4/inet_pton.m4
m4/inline.m4
m4/intl-thread-locale.m4 [new file with mode: 0644]
m4/intmax_t.m4
m4/inttostr.m4
m4/inttypes.m4
m4/inttypes_h.m4
m4/ioctl.m4
m4/isblank.m4
m4/iswblank.m4
m4/iswdigit.m4
m4/iswxdigit.m4
m4/langinfo_h.m4
m4/largefile.m4
m4/lib-ld.m4
m4/lib-link.m4
m4/lib-prefix.m4
m4/libsigsegv.m4
m4/libunistring-base.m4
m4/limits-h.m4
m4/localcharset.m4
m4/locale-fr.m4
m4/locale-ja.m4
m4/locale-tr.m4
m4/locale-zh.m4
m4/locale_h.m4
m4/localeconv.m4
m4/lock.m4
m4/lstat.m4
m4/malloc.m4
m4/malloca.m4
m4/manywarnings.m4
m4/mbchar.m4
m4/mbiter.m4
m4/mbrtowc.m4
m4/mbsinit.m4
m4/mbslen.m4
m4/mbsrtowcs.m4
m4/mbstate_t.m4
m4/mbtowc.m4
m4/memchr.m4
m4/mempcpy.m4
m4/minmax.m4
m4/mkdir.m4
m4/mkstemp.m4
m4/mktime.m4
m4/mmap-anon.m4
m4/mode_t.m4
m4/msvc-inval.m4
m4/msvc-nothrow.m4
m4/multiarch.m4
m4/musl.m4
m4/nanosleep.m4
m4/netinet_in_h.m4
m4/nl_langinfo.m4
m4/nocrash.m4
m4/nstrftime.m4
m4/nullptr.m4 [new file with mode: 0644]
m4/off_t.m4
m4/open-cloexec.m4
m4/open-slash.m4
m4/open.m4
m4/pathmax.m4
m4/perl.m4 [new file with mode: 0644]
m4/perror.m4
m4/pipe.m4
m4/printf.m4
m4/pselect.m4 [new file with mode: 0644]
m4/pthread-thread.m4
m4/pthread_h.m4
m4/pthread_rwlock_rdlock.m4
m4/pthread_sigmask.m4
m4/putenv.m4
m4/quote.m4
m4/quotearg.m4
m4/raise.m4
m4/rawmemchr.m4
m4/readlink.m4
m4/realloc.m4
m4/reallocarray.m4
m4/regex.m4
m4/sched_h.m4
m4/select.m4
m4/setenv.m4
m4/setlocale_null.m4
m4/sigaction.m4 [deleted file]
m4/sigaltstack.m4
m4/signal_h.m4
m4/signalblocking.m4
m4/sigsegv.m4 [new file with mode: 0644]
m4/size_max.m4
m4/sleep.m4
m4/snprintf.m4
m4/socketlib.m4
m4/sockets.m4
m4/socklen.m4
m4/sockpfaf.m4
m4/ssize_t.m4
m4/stack-direction.m4
m4/stat-time.m4
m4/stat.m4
m4/stdalign.m4
m4/stdarg.m4
m4/stdbool.m4 [deleted file]
m4/stddef_h.m4
m4/stdint.m4
m4/stdint_h.m4
m4/stdio_h.m4
m4/stdlib_h.m4
m4/stpcpy.m4 [new file with mode: 0644]
m4/strcase.m4
m4/strerror.m4
m4/strerror_r.m4
m4/string_h.m4
m4/strings_h.m4
m4/strnlen.m4
m4/strptime.m4
m4/strtoimax.m4
m4/strtoll.m4
m4/symlink.m4
m4/sys_ioctl_h.m4
m4/sys_random_h.m4
m4/sys_select_h.m4
m4/sys_socket_h.m4
m4/sys_stat_h.m4
m4/sys_time_h.m4
m4/sys_types_h.m4
m4/sys_uio_h.m4
m4/sys_wait_h.m4
m4/tempname.m4
m4/thread.m4
m4/threadlib.m4
m4/time.m4 [new file with mode: 0644]
m4/time_h.m4
m4/time_r.m4
m4/time_rz.m4
m4/timegm.m4
m4/timespec.m4
m4/tm_gmtoff.m4
m4/tzset.m4
m4/unistd_h.m4
m4/unlocked-io.m4
m4/vasnprintf.m4
m4/vasprintf.m4 [deleted file]
m4/version-etc.m4
m4/visibility.m4
m4/warn-on-use.m4
m4/warnings.m4
m4/wchar_h.m4
m4/wchar_t.m4
m4/wcrtomb.m4
m4/wctob.m4
m4/wctomb.m4
m4/wctype_h.m4
m4/wcwidth.m4
m4/wint_t.m4
m4/wmemchr.m4
m4/wmempcpy.m4
m4/xalloc.m4
m4/xsize.m4
m4/xstrtol.m4
m4/xvasprintf.m4 [deleted file]
m4/year2038.m4 [deleted file]
m4/zzgnulib.m4
maint.mk
man/Makefile.am
man/Makefile.in
man/cmp.1
man/cmp.x
man/diff.1
man/diff.x
man/diff3.1
man/diff3.x
man/help2man
man/sdiff.1
man/sdiff.x
po/LINGUAS
po/Makevars
po/POTFILES.in
po/bg.po
po/ca.po
po/cs.po
po/da.po
po/de.po
po/diffutils.pot
po/el.gmo
po/el.po
po/eo.gmo
po/eo.po
po/es.gmo
po/es.po
po/fi.po
po/fr.po
po/ga.po
po/gl.po
po/he.po
po/hr.gmo
po/hr.po
po/hu.gmo
po/hu.po
po/id.gmo
po/id.po
po/it.po
po/ja.po
po/ka.gmo [new file with mode: 0644]
po/ka.po [new file with mode: 0644]
po/ko.gmo [new file with mode: 0644]
po/ko.po [new file with mode: 0644]
po/lv.po
po/ms.gmo
po/ms.po
po/nb.po
po/nl.po
po/pl.po
po/pt.po
po/pt_BR.po
po/ro.gmo
po/ro.po
po/ru.po
po/sr.po
po/sv.gmo
po/sv.po
po/tr.po
po/uk.po
po/vi.po
po/zh_CN.gmo
po/zh_CN.po
po/zh_TW.gmo
po/zh_TW.po
src/Makefile.am
src/Makefile.in
src/analyze.c
src/cmp.c
src/context.c
src/die.h
src/diff.c
src/diff.h
src/diff3.c
src/dir.c
src/ed.c
src/ifdef.c
src/io.c
src/normal.c
src/sdiff.c
src/side.c
src/system.h
src/util.c
tests/Makefile.am
tests/Makefile.in
tests/cmp
tests/colors
tests/envvar-check
tests/help-version
tests/ifdef [new file with mode: 0755]
tests/init.cfg
tests/init.sh
tests/large-subopt
tests/timezone [new file with mode: 0755]
tests/y2038-vs-32bit [new file with mode: 0755]

index cc1923a..c8cfe39 100644 (file)
@@ -1 +1 @@
-3.8
+3.10
diff --git a/AUTHORS b/AUTHORS
index c1d2ea0..da8bb12 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -33,7 +33,7 @@ Patrick D'Cruze
 Eli Zaretskii
 
 
-Copyright (C) 2001, 2006, 2009-2013, 2015-2021 Free Software Foundation, Inc.
+Copyright (C) 2001, 2006, 2009-2013, 2015-2023 Free Software Foundation, Inc.
 
 This file is part of GNU diffutils.
 
index 53b731a..9669e29 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,537 @@
+2023-05-21  Jim Meyering  <meyering@meta.com>
+
+       version 3.10
+       * NEWS: Record release date.
+
+2023-05-21  Jim Meyering  <meyering@fb.com>
+
+       build: skip the sole perl-requiring test when there is no usable perl
+       * tests/init.cfg (require_perl_): New function, from coreutils.
+       * tests/large-subopt: Use it.
+       Reported by Bruno Haible in
+       https://lists.gnu.org/r/diffutils-devel/2023-05/msg00003.html
+
+2023-05-20  Jim Meyering  <meyering@fb.com>
+
+       build: fix a new syntax-check failure
+       * src/diff.h (robust_output_style): Put DIFF_INLINE and
+       the function name on the same line, so that syntax-check's
+       naive parsing can spot this function.
+       * cfg.mk (_gl_TS_extern): Add DIFF_INLINE.
+
+       build: modernize bootstrap prerequsite tools
+       Following Pádraig Brady's example from coreutils, ...
+       * bootstrap.conf: Add an explicit requirement on m4.
+       Add an explicit requirement on texi2pdf which is often packaged
+       separately to makeinfo and induces a failure far down the
+       distribution phase if not present.
+       Replace the rsync dependency with wget,
+       which gnulib changed to in 2018.
+       Also, add an xz requirement and a version for autopoint.
+
+2023-05-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       build: update gnulib submodule to latest
+       * src/analyze.c (OFFSET_MAX): New macro, needed for
+       latest gnulib.
+
+       diff: avoid a macro in diff.h
+       * src/diff.h (FILE_BUFFER): Remove.
+       * src/io.c (file_buffer): New static function.  All uses of
+       FILE_BUFFER replaced.
+
+       sdiff: avoid some macros in sdiff.c
+       * src/sdiff.c (PROGRAM_NAME, SDIFF_BUFSIZE):
+       Now constants, not macros.
+
+       diff3: avoid macros in diff3.c
+       * src/diff3.c (PROGRAM_NAME, FILE0, FILE1, FILE2, FILE3, FO, FC)
+       (RANGE_START, RANGE_END): Now constants, not macros.
+
+       cmp: avoid macros in cmp.c
+       * src/cmp.c (PROGRAM_NAME): Now a constant, not a macro.
+       (hard_locale_LC_MESSAGES): Now a function, not a macro.
+       All uses changed.
+
+       diff: avoid macros in diff.c
+       * src/diff.c (PROGRAM_NAME, NONEXISTENT, UNOPENED):
+       Now constants, not macros.
+       (errno_encode, errno_decode): Now functions, rather than
+       macros ERRNO_ENCODE and ERRNO_DECODE.  All uses changed.
+
+       diff: use function for robust_output_style
+       * bootstrap.conf (gnulib_modules): Add extern-inline.
+       * src/diff.h: Use _GL_INLINE_HEADER_BEGIN and _GL_INLINE_HEADER_END.
+       (DIFF_INLINE): New macro.
+       (robust_output_style): Now an inline function, not a macro
+       ROBUST_OUTPUT_STYLE.  All uses changed.
+
+       cmp: don’t give up if fstat fails
+       * src/cmp.c (main, cmp): If fstat fails, simply record the failure
+       and move on, instead of exiting.  Modify other uses of the struct
+       stat to do something reasonable if the status is missing.
+
+       diff3: don’t give up if fstat fails
+       * src/diff3.c (read_diff): Work even if fstat fails,
+       e.g., due to EOVERFLOW.
+
+       diff3: fix race condition involving directories
+       This fixes a TOC-TOU race with "diff3 A B C" when one
+       of its arguments is a directory.
+       * src/diff.c (no_directory): New static var.
+       (NO_DIRECTORY_OPTION): New constant.
+       (longopts): Add ---no-directory.
+       (main): Support it.
+       (compare_files): If ---no-directory is given, do not treat
+       directories specially.
+       * src/diff3.c (main): Do not check whether an argument is
+       a directory.
+       (read_diff): Pass ---no-directory to diff, so that it checks.
+
+2023-05-13  Jim Meyering  <meyering@fb.com>
+
+       maint: suppress new test's doubled-word syntax-check failure
+       * cfg.mk (exclude_file_name_regexp--sc_prohibit_doubled_word):
+       Exempt the new test's use of "in in".
+
+2023-05-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       build: update gnulib submodule to latest
+
+2023-05-13  Carlo Marcelo Arenas Belón  <carenas@gmail.com>  (tiny change)
+
+       gnulib: fix Y2038 bug (again)
+       AC_SYS_LARGEFILE meaning has changed, need AC_SYS_YEAR2038 as well
+
+       * NEWS: mention this
+       * tests: add test
+       * bootstrap.conf: add year2038
+
+2023-02-24  Paul Eggert  <eggert@cs.ucla.edu>
+
+       maint: add 'diff --git' TODO
+       * TODO: Suggest better compatibility with 'git diff -p'.
+       From a suggestion by Linus Torvalds
+       <https://lkml.org/lkml/2023/2/24/797>.
+
+2023-02-10  Paul Eggert  <eggert@cs.ucla.edu>
+
+       maint: update .gitignore
+       .gitignore: Update for some recent changes, and simplify.
+
+       diff: fix bug where -D does not work
+       Problem reported by Robert Webb (bug#61193).
+       * NEWS: Mention this.
+       * src/diff.c (main): Omit stray ‘sizeof’.
+       * tests/ifdef: New test.
+       * tests/Makefile.am (TESTS): Add it.
+
+2023-02-07  Paul Eggert  <eggert@cs.ucla.edu>
+
+       build: update gnulib submodule to latest
+
+2023-02-05  Paul Eggert  <eggert@cs.ucla.edu>
+
+       diff: use C23 bool
+       * bootstrap.conf (gnulib_modules): Add stdbool.
+       * src/die.h, src/system.h: Do not include <stdbool.h>.
+
+       diff: prefer nullptr to NULL
+       * bootstrap.conf (gnulib_modules): Add c-nullptr.
+       * src/cmp.c (main):
+       * src/context.c (pr_context_hunk, pr_unidiff_hunk)
+       (mark_ignorable, find_function):
+       * src/diff.c (longopts, main, specify_value, specify_style)
+       (specify_colors_style, compare_files):
+       * src/diff3.c (main, process_diff):
+       * src/dir.c (find_dir_file_pathname):
+       * src/ifdef.c (scan_char_literal):
+       * src/sdiff.c (main):
+       * src/util.c (process_signals, install_signal_handlers)
+       (color_ext_list, color_indicator, indicator_name)
+       (parse_diff_color):
+       Prefer C23-style nullptr to NULL, as nullptr is a bit better.
+
+       doc: update README-hacking
+       * README-hacking: Update for current bootstrap.
+
+       maint: sync bootstrap from Gnulib
+       bootstrap: sync from Gnulib
+
+       build: update gnulib submodule to latest
+       * lib/sh-quote.c.diff: Remove, as Gnulib now has this.
+
+       build: add libraries
+       * src/Makefile.am (LDADD, sdiff_LDADD): Add Gnulib libraries that
+       in theory would be needed on unusual platforms.  In practice,
+       these are typicall empty or are duplicates of other library
+       arguments and so are redundant.
+
+2023-02-04  Jim Meyering  <meyering@fb.com>
+
+       doc: update HACKING
+       * HACKING: Update from grep's HACKING.
+
+2023-02-04  Jim Meyering  <meyering@meta.com>
+
+       maint: prefer https: to git:
+       The idea is to defend against some adversary-in-the-middle attacks.
+       Also prefer git.savannah.gnu.org over its shorter alias, git.sv.gnu.org
+       to avoid a warning e.g., from git clone.
+       Also, drop any final ".git" suffix on the resulting URIs.
+       Inspired by Paul Eggert's nearly identical changes to coreutils.
+
+2023-01-16  Jim Meyering  <meyering@fb.com>
+
+       tests: accommodate newer GNU make's SIGPIPE-ignore
+       * tests/colors: Allow an exit code of not just 141 (SIGPIPE),
+       but also "error": 2.
+       Reported by Tomasz Kłoczko in http://bugs.gnu.org/59905.
+
+2023-01-15  Jim Meyering  <meyering@meta.com>
+
+       maint: post-release administrivia
+       * NEWS: Add header line for next release.
+       * .prev-version: Record previous version.
+       * cfg.mk (old_NEWS_hash): Auto-update.
+
+       version 3.9
+       * NEWS: Record release date.
+
+       build: update gnulib to latest
+
+2023-01-05  Jim Meyering  <meyering@fb.com>
+
+       tests: avoid large-subopt XPASS on systems without perl
+       * tests/large-subopt: Use $PERL, rather than hard-coding "perl".
+       * bootstrap.conf (gnulib_modules): Add "perl" to the list.
+       Reported by Bruno Haible in
+       https://lists.gnu.org/r/diffutils-devel/2023-01/msg00000.html
+
+2023-01-05  Bruno Haible  <bruno@clisp.org>
+
+       tests: avoid a test failure when using Solaris 11.4's old grep
+       * tests/colors (nanosecond_zeros): Use a dumbed-down grep '\.'
+       in place of "grep -F ." to accommodate Solaris 11.4's old versions
+       of grep in the default PATH. Reported here:
+       https://lists.gnu.org/r/diffutils-devel/2023-01/msg00001.html
+
+2023-01-01  Jim Meyering  <meyering@fb.com>
+
+       build: update gnulib to latest
+
+       maint: update copyright dates
+
+2022-12-31  Paul Eggert  <eggert@cs.ucla.edu>
+
+       build: simplify GCC 12 false alarm workaround
+       * src/util.c (print_message_queue): Pacify GCC in a
+       more-straightforward way.
+
+       maint: fix assumption typo
+       Fix a typo I introduced in my August 2021 signal handling fixes.
+       Problem reported by Sam James (Bug#60457).
+       * src/util.c (xsigismember): Don’t assume sigismember cannot return 0.
+
+2022-12-30  Jim Meyering  <meyering@fb.com>
+
+       build: update gnulib to latest
+
+       build: temp?-disable -Wanalyzer-use-of-uninitialized-value
+       * src/util.c (print_message_queue): This function triggers false
+       positive warnings from GCC12, so add pragmas to ignore that new warning
+       in this one function. Required when using either of these:
+       - gcc version 12.2.1 20221121
+       - gcc version 13.0.0 20221229 (experimental)
+
+2022-12-11  Jim Meyering  <meyering@fb.com>
+
+       build: update gnulib to latest
+
+2022-11-12  Jim Meyering  <meyering@fb.com>
+
+       build: update gnulib to latest
+
+2022-02-14  Paul Eggert  <eggert@cs.ucla.edu>
+
+       doc: mark up SEE ALSO (Bug#53976)
+
+2022-01-24  Jim Meyering  <meyering@fb.com>
+
+       tests: fix false-failure on systems without valgrind
+       * tests/init.cfg (require_valgrind_): Use exit status of subshell,
+       not that of the "local" declaration.
+
+2022-01-14  Paul Eggert  <eggert@cs.ucla.edu>
+
+       build: update gnulib submodule to latest
+
+2022-01-03  Jim Meyering  <meyering@fb.com>
+
+       maint: avoid new syntax-check failure
+       * cfg.mk (local-checks-to-skip): Add sc_indent, to skip it.
+       Otherwise, "make syntax-check" would fail.
+
+       maint: make update-copyright
+
+       build: update gnulib to latest; also bootstrap and init.sh
+
+2021-10-30  Paul Eggert  <eggert@cs.ucla.edu>
+
+       maint: modernize README-{hacking,prereq}
+
+2021-10-16  Paul Eggert  <eggert@cs.ucla.edu>
+
+       doc: copy fdl.texi into git
+       This pacifies this notice from ./bootstrap: “Notice from module
+       fdl: Don't use this module! Instead, copy the referenced license
+       file into your version control repository.”
+       * bootstrap.conf (gnulib_modules): Remove fdl.
+       * doc/fdl.texi: New file, taken from Gnulib.
+
+       maint: direct dependency on time_rz now
+       Now that diff calls tzalloc, it depends directly on time_rz.
+       * bootstrap.conf (gnulib_modules): Add time_rz.
+
+       build: update gnulib submodule to latest
+
+2021-10-15  Paul Eggert  <eggert@cs.ucla.edu>
+
+       diff: fix timezone bug on Solaris
+       Problem reported by Vladimir Marek (bug#51228).
+       * NEWS: Mention this.
+       * src/context.c (print_context_label): Pass localtz to nstrftime,
+       instead of always passing 0.
+       * src/diff.c (main) [!HAVE_TM_GMTOFF]:
+       Initialize localtz if time_format uses %z.
+       * src/diff.h (localtz): New decl.
+       * tests/Makefile.am (TESTS): Add timezone.
+       * tests/timezone: New test.
+
+2021-08-31  Paul Eggert  <eggert@cs.ucla.edu>
+
+       diff3: port better to MS-Windows
+       * src/diff3.c (enum diff_type): Prefix constants like ADD with
+       "DIFF_" to avoid collisions with unwise system headers.
+
+2021-08-30  Paul Eggert  <eggert@cs.ucla.edu>
+
+       maint: port better to non-POSIX
+       Problem privately reported by Gisle Vanem for MS-Windows.
+       * src/util.c (sig, install_signal_handlers):
+       Don’t assume SIGTSTP, SIGALRM, SIGQUIT.
+       (is_tstp_index): New function, for use in SIGTSTP avoidance.
+
+       maint: prefer attribute.h attributes
+       Prefer the macros used in attribute.h, and _Noreturn,
+       to the by-hand use of __attribute__, as this is more portable.
+       * bootstrap.conf (gnulib_modules): Add attribute.
+       * src/system.h: Include attribute.h.  All uses of
+       attributes changed to use the attribute.h macros.
+       Plus, use _Noreturn.
+       (FALLTHROUGH): Remove; attribute.h now defines this.
+
+       build: update gnulib submodule to latest
+
+       diff: avoid double translation
+       * src/analyze.c (briefly_report): Do not translate here,
+       as ‘message’ translates its format.
+
+       diff: use variable arg list for messages
+       This simplifies the code by using varargs.
+       * bootstrap.conf (gnulib_modules): Add flexmember.
+       (XGETTEXT_OPTIONS): Do not flag message5.
+       * src/util.c: Include flexmember.h, stdarg.h.
+       (struct msg): New members msgid, argbytes.  args is now
+       FLEXIBLE_ARRAY_MEMBER, and does not contain msgid.
+       All uses changed.
+       (message): Now varargs.  Detect number of args by counting '%'s.
+       Use FLEXSIZEOF, to avoid problems on systems with buggy
+       allocators.  Avoid redundant ‘*p = 0’ when *p is already zero
+       after stpcpy.
+       (message5): Remove; all callers changed to use ‘message’.
+       (print_message_queue): Abort if too many args were passed;
+       this cannot happen with current diffutils.
+
+2021-08-29  Paul Eggert  <eggert@cs.ucla.edu>
+
+       diff: port better to MS-Windows
+       Problem reported by Gisle Vanem (Bug#36488#30).
+       * src/util.c (xsigaction) [SA_NOCLDSTOP]: Remove; no longer needed.
+       (install_signal_handlers): If the first call to sigaction or
+       signal fails, do not exit; just skip the signal and continue,
+       in case the runtime does not support the signal even though the
+       corresponding SIG* macro is defined.
+
+2021-08-28  Paul Eggert  <eggert@cs.ucla.edu>
+
+       diff: cleanup signal handling just before exit
+       This should fix an unlikely signal handling bug with colored
+       output, and should also fix a Debian FTBFS (Fails To Build From
+       Source) on powerpc64le-linux.  See Bug#34519 and Frédéric
+       Bonnard’s report in:
+       https://bugs.debian.org/922552#19
+       * bootstrap.conf (gnulib_modules): Add raise, sigprocmask.
+       * src/diff.c (main): Call cleanup_signal_handlers before exiting.
+       Don’t bother calling ‘exit’; no longer needed nowadays.
+       * src/util.c (sigprocmask, siginterrupt) [!SA_NOCLDSTOP]:
+       Define to 0 instead of empty, since the results are now used.
+       (sigset_t) [!SA_NOCLDSTOP]: Remove; we now rely on Gnulib.
+       (xsigaction) [SA_NOCLDSTOP]: New function.
+       (xsigaddset, xsigismember, xsignal, xsigprocmask): New functions.
+       (some_signals_caught): New static var.
+       (process_signals): Omit a conditional branch.
+       Don’t bother loading interrupt_signal if stop_signal_count is nonzero.
+       (process_signals, install_signal_handlers):
+       Check for failures from sigprocmask etc.
+       (sig, nsig): Now at top level, since multiple functions need them.
+       (install_signal_handlers): No need for caught_sig array;
+       just use caught_signals.  However, set some_signals_caught.
+       (cleanup_signal_handlers): New function.
+
+2021-08-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+       diff: add integer overflow checking
+       * src/diff.c (option_list, main): Check for integer overflow
+       in some unlikely and hard-to-test cases.
+
+       maint: refactor integer overflow checking
+       Rely on more-modern Gnulib capabilities instead of doing
+       integer overflow checking by hand, in some cases.
+       * lib/cmpbuf.c (buffer_lcm):
+       * src/io.c (slurp, find_identical_ends):
+       Use INT_ADD_WRAPV and INT_MULTIPLY_WRAPV rather than checking
+       overflow by hand.
+       * src/diff3.c (process_diff):
+       * src/dir.c (dir_read):
+       * src/io.c (find_identical_ends, read_files):
+       Use xnmalloc rather than checking overflow by hand.
+       (read_files): Rely on xcalloc to do overflow checking.
+
+       diff: avoid sprintf %s
+       sprintf fails if the result contains more than INT_MAX bytes,
+       so rework the code to avoid usage of sprintf %s where the
+       string might be longer than that.
+       * bootstrap.conf (gnulib_modules): Remove xvasprintf.
+       * src/diff.c (specify_style):
+       * src/util.c (begin_output):
+       Rewrite to avoid sprintf %s.
+       * src/util.c: Do not include xvasprintf.h.
+       (concat): Remove, as it uses sprintf %s.  All uses rewritten.
+
+       diff: use mempcpy
+       * bootstrap.conf (gnulib_modules): Add mempcpy, stpcpy.
+       * src/ifdef.c (do_printf_spec):
+       * src/sdiff.c (expand_name, lf_snarf, temporary_file):
+       * src/util.c (message5):
+       Prefer mempcpy to memcpy plus manual size-updating.
+       Prefer stpcpy to mempcpy plus manual size-spec.
+
+       sdiff: fix unlikely memory leak
+       * src/sdiff.c (temporary_file): Fix memory leak when mkstemp fails.
+       Don’t assume temporary file name length fits in ‘int’.
+
+       diff3: simplify process_diff
+       * src/diff3.c (process_diff): Remove LAST_BLOCK arg, since callers
+       no longer needed it.  All callers changed.  This removes an
+       unnecessary initialization of bptr to NULL.
+
+       maint: modernize IF_LINT for GCC 11.2.1
+       * src/cmp.c (cmp):
+       * src/dir.c (find_dir_file_pathname):
+       * src/sdiff.c (edit):
+       Mention which GCC bug this IF_LINT works around.
+       * src/diff3.c (process_diff):
+       Always initialize to NULL, to avoid problems on mostly-theoretical
+       hosts where accessing uninitialized variables traps.  The next
+       patch will have a better fix for this.
+       * src/ifdef.c (do_printf_spec):
+       No need for IF_LINT in GCC 11.2.1.
+
+       maint: lint → GCC_LINT
+       ‘lint’ is for traditional lint and perhaps some other tools;
+       ‘GCC_LINT’ is targeted more for what we do.
+       Gnulib accepts either, but we might as well be more accurate.
+       * configure.ac (GCC_LINT): Define this instead of ‘lint’.
+       All uses changed.
+
+       diff: remove printint
+       * src/system.h (printint): Remove.  All uses removed.  This type
+       was only for porting to pre-C89 hosts, and is no longer needed.
+
+       diff: remove INT_MAX limit on -F/-p searches
+       * src/context.c (find_function): Don’t limit function-line
+       searches to INT_MAX bytes, removing a FIXME.
+
+       maint: .gitignore updates
+       * .gitignore: Remove lib/unused-parameter.h.  Add all of m4, since
+       no files there need to be committed; this lets us remove
+       m4/.gitignore and m4/gnulib-cache.m4.  Add *.orig, *.patch, .Tpo,
+       /*.diff, lib/*/ (which lets us remove /lib/sys/), lib/ctype.h,
+       lib/errno.h, lib/float.h, lib/fnmatch.h, lib/getopt-cdefs.h,
+       lib/getopt.h, lib/limits.h, lib/sigsegv.h, lib/stdalign.h,
+       lib/stdarg.h, lib/stdbool.h, lib/stddef.h, lib/stdint.h,
+       lib/stdopen.[ch], vc-dwim-log-*.  Add slashes to autom4te.cache,
+       build-aux.  Remove redundant initial slashes from patterns that
+       also have internal slashes.  Remove plain ABOUT-NLS, since
+       /ABOUT-NLS suffices.  Sort using LC_ALL=C.
+
+       maint: omit unused function if not debugging
+       * src/util.c (debug_script): Compile only if DEBUG.
+
+       maint: remove prepargs
+       * lib/Makefile.am (noinst_HEADERS): Remove prepargs.h.
+       (libdiffutils_a_SOURCES): Remove prepargs.c.
+       * lib/prepargs.c, lib/prepargs.h: Remove.  Hasn’t been
+       needed for many years.
+       * src/diff.c: Do not include prepargs.h.
+
+       maint: zalloc → xzalloc
+       * src/util.c (zalloc): Remove.  All uses replaced
+       by xzalloc, which means the same thing.
+
+2021-08-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+       diff3: suppress -fanalyzer alarms
+       * src/diff3.c: Add pragma to suppress -Wanalyzer-null-dereference
+       alarms.
+
+       * src/diff.h (find_dir_file_pathname): Add malloc-related
+       attributes, to pacify gcc -Wsuggest-attribute=malloc.
+
+2021-08-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+       maint: remove January workaround for Gnulib issue
+       * configure.ac: Don’t add -Wno-analyzer-null-argument, since
+       the issue is now fixed in Gnulib.
+
+       build: update gnulib submodule to latest
+
+2021-08-01  Paul Eggert  <eggert@cs.ucla.edu>
+
+       maint: remove stray init.cfg
+       * init.cfg: Remove.  I guess this file was a stray, since it was a
+       copy of tests/init.cfg when it was checked in, and it hasn’t been
+       maintained since.
+
+       tests: port to valgrind 3.16.0 + GCC 11.2
+       * tests/init.cfg (stderr_fileno_): Reject valgrind if it reports a
+       "Serious error" on a trival use of ‘diff’.  Without this patch, on
+       RHEL 8.4 when I compile diffutils with a GCC 11.2.0 that I built
+       myself, ‘valgrind diff’ spits out messages like WARNING: Serious
+       error when reading debug info / When reading debug info from diff:
+       Ignoring non-Dwarf2/3/4 block in .debug_info’ and this causes the
+       strip-trailing-cr test to fail.  I guess valgrind complains
+       because the valgrind version 3.16.0 that came with RHEL 8.4 cannot
+       grok the debug entries generated by GCC 11.2.0.
+
 2021-08-01  Jim Meyering  <meyering@fb.com>
 
+       maint: post-release administrivia
+       * NEWS: Add header line for next release.
+       * .prev-version: Record previous version.
+       * cfg.mk (old_NEWS_hash): Auto-update.
+
        version 3.8
        * NEWS: Record release date.
 
index bde0ffe..8ae2a44 100644 (file)
@@ -4265,7 +4265,7 @@ Thu Nov  3 16:30:24 1988  Randall Smith  (randy at gluteus.ai.mit.edu)
 
        -----
 
-       Copyright (C) 1988-1994, 1997-2002, 2004, 2006, 2009-2013, 2015-2021
+       Copyright (C) 1988-1994, 1997-2002, 2004, 2006, 2009-2013, 2015-2023
        Free Software Foundation, Inc.
 
        Copying and distribution of this file, with or without
index 0c99d58..07b331f 100644 (file)
@@ -5,7 +5,7 @@
 # It is necessary if you want to build targets usually of interest
 # only to the maintainer.
 
-# Copyright (C) 2001, 2003, 2006-2021 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 2006-2023 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -26,7 +26,7 @@ _gl-Makefile := $(wildcard [M]akefile)
 ifneq ($(_gl-Makefile),)
 
 # Make tar archive easier to reproduce.
-export TAR_OPTIONS = --owner=0 --group=0 --numeric-owner
+export TAR_OPTIONS = --owner=0 --group=0 --numeric-owner --sort=name
 
 # Allow the user to add to this in the Makefile.
 ALL_RECURSIVE_TARGETS =
diff --git a/INSTALL b/INSTALL
index e82fd21..6e3904a 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -1,8 +1,8 @@
 Installation Instructions
 *************************
 
-   Copyright (C) 1994-1996, 1999-2002, 2004-2017, 2020-2021 Free
-Software Foundation, Inc.
+   Copyright © 1994–1996, 1999–2002, 2004–2017, 2020–2023 Free Software
+Foundation, Inc.
 
    Copying and distribution of this file, with or without modification,
 are permitted in any medium without royalty provided the copyright
@@ -12,94 +12,94 @@ without warranty of any kind.
 Basic Installation
 ==================
 
-   Briefly, the shell command './configure && make && make install'
+   Briefly, the shell command ‘./configure && make && make install’
 should configure, build, and install this package.  The following
-more-detailed instructions are generic; see the 'README' file for
+more-detailed instructions are generic; see the ‘README’ file for
 instructions specific to this package.  Some packages provide this
-'INSTALL' file but do not implement all of the features documented
+‘INSTALL’ file but do not implement all of the features documented
 below.  The lack of an optional feature in a given package is not
 necessarily a bug.  More recommendations for GNU packages can be found
 in *note Makefile Conventions: (standards)Makefile Conventions.
 
-   The 'configure' shell script attempts to guess correct values for
+   The ‘configure’ shell script attempts to guess correct values for
 various system-dependent variables used during compilation.  It uses
-those values to create a 'Makefile' in each directory of the package.
-It may also create one or more '.h' files containing system-dependent
-definitions.  Finally, it creates a shell script 'config.status' that
+those values to create a ‘Makefile’ in each directory of the package.
+It may also create one or more ‘.h’ files containing system-dependent
+definitions.  Finally, it creates a shell script ‘config.status’ that
 you can run in the future to recreate the current configuration, and a
-file 'config.log' containing compiler output (useful mainly for
-debugging 'configure').
+file ‘config.log’ containing compiler output (useful mainly for
+debugging ‘configure’).
 
-   It can also use an optional file (typically called 'config.cache' and
-enabled with '--cache-file=config.cache' or simply '-C') that saves the
+   It can also use an optional file (typically called ‘config.cache’ and
+enabled with ‘--cache-file=config.cache’ or simply ‘-C’) that saves the
 results of its tests to speed up reconfiguring.  Caching is disabled by
 default to prevent problems with accidental use of stale cache files.
 
    If you need to do unusual things to compile the package, please try
-to figure out how 'configure' could check whether to do them, and mail
-diffs or instructions to the address given in the 'README' so they can
+to figure out how ‘configure’ could check whether to do them, and mail
+diffs or instructions to the address given in the ‘README’ so they can
 be considered for the next release.  If you are using the cache, and at
-some point 'config.cache' contains results you don't want to keep, you
+some point ‘config.cache’ contains results you don’t want to keep, you
 may remove or edit it.
 
-   The file 'configure.ac' (or 'configure.in') is used to create
-'configure' by a program called 'autoconf'.  You need 'configure.ac' if
-you want to change it or regenerate 'configure' using a newer version of
-'autoconf'.
+   The file ‘configure.ac’ (or ‘configure.in’) is used to create
+‘configure’ by a program called ‘autoconf’.  You need ‘configure.ac’ if
+you want to change it or regenerate ‘configure’ using a newer version of
+‘autoconf’.
 
    The simplest way to compile this package is:
 
-  1. 'cd' to the directory containing the package's source code and type
-     './configure' to configure the package for your system.
+  1. ‘cd’ to the directory containing the package’s source code and type
+     ‘./configure’ to configure the package for your system.
 
-     Running 'configure' might take a while.  While running, it prints
+     Running ‘configure’ might take a while.  While running, it prints
      some messages telling which features it is checking for.
 
-  2. Type 'make' to compile the package.
+  2. Type ‘make’ to compile the package.
 
-  3. Optionally, type 'make check' to run any self-tests that come with
+  3. Optionally, type ‘make check’ to run any self-tests that come with
      the package, generally using the just-built uninstalled binaries.
 
-  4. Type 'make install' to install the programs and any data files and
+  4. Type ‘make install’ to install the programs and any data files and
      documentation.  When installing into a prefix owned by root, it is
      recommended that the package be configured and built as a regular
-     user, and only the 'make install' phase executed with root
+     user, and only the ‘make install’ phase executed with root
      privileges.
 
-  5. Optionally, type 'make installcheck' to repeat any self-tests, but
+  5. Optionally, type ‘make installcheck’ to repeat any self-tests, but
      this time using the binaries in their final installed location.
      This target does not install anything.  Running this target as a
-     regular user, particularly if the prior 'make install' required
+     regular user, particularly if the prior ‘make install’ required
      root privileges, verifies that the installation completed
      correctly.
 
   6. You can remove the program binaries and object files from the
-     source code directory by typing 'make clean'.  To also remove the
-     files that 'configure' created (so you can compile the package for
-     a different kind of computer), type 'make distclean'.  There is
-     also a 'make maintainer-clean' target, but that is intended mainly
-     for the package's developers.  If you use it, you may have to get
+     source code directory by typing ‘make clean’.  To also remove the
+     files that ‘configure’ created (so you can compile the package for
+     a different kind of computer), type ‘make distclean’.  There is
+     also a ‘make maintainer-clean’ target, but that is intended mainly
+     for the packages developers.  If you use it, you may have to get
      all sorts of other programs in order to regenerate files that came
      with the distribution.
 
-  7. Often, you can also type 'make uninstall' to remove the installed
+  7. Often, you can also type ‘make uninstall’ to remove the installed
      files again.  In practice, not all packages have tested that
      uninstallation works correctly, even though it is required by the
      GNU Coding Standards.
 
-  8. Some packages, particularly those that use Automake, provide 'make
-     distcheck', which can by used by developers to test that all other
-     targets like 'make install' and 'make uninstall' work correctly.
+  8. Some packages, particularly those that use Automake, provide make
+     distcheck, which can by used by developers to test that all other
+     targets like ‘make install’ and ‘make uninstall’ work correctly.
      This target is generally not run by end users.
 
 Compilers and Options
 =====================
 
    Some systems require unusual options for compilation or linking that
-the 'configure' script does not know about.  Run './configure --help'
+the ‘configure’ script does not know about.  Run ‘./configure --help’
 for details on some of the pertinent environment variables.
 
-   You can give 'configure' initial values for configuration parameters
+   You can give ‘configure’ initial values for configuration parameters
 by setting variables in the command line or in the environment.  Here is
 an example:
 
@@ -112,21 +112,21 @@ Compiling For Multiple Architectures
 
    You can compile the package for more than one kind of computer at the
 same time, by placing the object files for each architecture in their
-own directory.  To do this, you can use GNU 'make'.  'cd' to the
+own directory.  To do this, you can use GNU ‘make’.  ‘cd’ to the
 directory where you want the object files and executables to go and run
-the 'configure' script.  'configure' automatically checks for the source
-code in the directory that 'configure' is in and in '..'.  This is known
-as a "VPATH" build.
+the ‘configure’ script.  ‘configure’ automatically checks for the source
+code in the directory that ‘configure’ is in and in ‘..’.  This is known
+as a “VPATH” build.
 
-   With a non-GNU 'make', it is safer to compile the package for one
+   With a non-GNU ‘make’, it is safer to compile the package for one
 architecture at a time in the source code directory.  After you have
-installed the package for one architecture, use 'make distclean' before
+installed the package for one architecture, use ‘make distclean’ before
 reconfiguring for another architecture.
 
    On MacOS X 10.5 and later systems, you can create libraries and
-executables that work on multiple system types--known as "fat" or
-"universal" binaries--by specifying multiple '-arch' options to the
-compiler but only a single '-arch' option to the preprocessor.  Like
+executables that work on multiple system types—known as “fat” or
+“universal” binaries—by specifying multiple ‘-arch’ options to the
+compiler but only a single ‘-arch’ option to the preprocessor.  Like
 this:
 
      ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
@@ -135,43 +135,43 @@ this:
 
    This is not guaranteed to produce working output in all cases, you
 may have to build one architecture at a time and combine the results
-using the 'lipo' tool if you have problems.
+using the ‘lipo’ tool if you have problems.
 
 Installation Names
 ==================
 
-   By default, 'make install' installs the package's commands under
-'/usr/local/bin', include files under '/usr/local/include', etc.  You
-can specify an installation prefix other than '/usr/local' by giving
-'configure' the option '--prefix=PREFIX', where PREFIX must be an
+   By default, ‘make install’ installs the package’s commands under
+‘/usr/local/bin’, include files under ‘/usr/local/include’, etc.  You
+can specify an installation prefix other than ‘/usr/local’ by giving
+‘configure’ the option ‘--prefix=PREFIX’, where PREFIX must be an
 absolute file name.
 
    You can specify separate installation prefixes for
 architecture-specific files and architecture-independent files.  If you
-pass the option '--exec-prefix=PREFIX' to 'configure', the package uses
+pass the option ‘--exec-prefix=PREFIX’ to ‘configure’, the package uses
 PREFIX as the prefix for installing programs and libraries.
 Documentation and other data files still use the regular prefix.
 
    In addition, if you use an unusual directory layout you can give
-options like '--bindir=DIR' to specify different values for particular
-kinds of files.  Run 'configure --help' for a list of the directories
+options like ‘--bindir=DIR’ to specify different values for particular
+kinds of files.  Run ‘configure --help’ for a list of the directories
 you can set and what kinds of files go in them.  In general, the default
-for these options is expressed in terms of '${prefix}', so that
-specifying just '--prefix' will affect all of the other directory
+for these options is expressed in terms of ‘${prefix}’, so that
+specifying just ‘--prefix’ will affect all of the other directory
 specifications that were not explicitly provided.
 
    The most portable way to affect installation locations is to pass the
-correct locations to 'configure'; however, many packages provide one or
+correct locations to ‘configure’; however, many packages provide one or
 both of the following shortcuts of passing variable assignments to the
-'make install' command line to change installation locations without
+‘make install’ command line to change installation locations without
 having to reconfigure or recompile.
 
    The first method involves providing an override variable for each
-affected directory.  For example, 'make install
-prefix=/alternate/directory' will choose an alternate location for all
+affected directory.  For example, make install
+prefix=/alternate/directory will choose an alternate location for all
 directory configuration variables that were expressed in terms of
-'${prefix}'.  Any directories that were specified during 'configure',
-but not in terms of '${prefix}', must each be overridden at install time
+‘${prefix}’.  Any directories that were specified during ‘configure’,
+but not in terms of ‘${prefix}’, must each be overridden at install time
 for the entire installation to be relocated.  The approach of makefile
 variable overrides for each directory variable is required by the GNU
 Coding Standards, and ideally causes no recompilation.  However, some
@@ -179,40 +179,40 @@ platforms have known limitations with the semantics of shared libraries
 that end up requiring recompilation when using this method, particularly
 noticeable in packages that use GNU Libtool.
 
-   The second method involves providing the 'DESTDIR' variable.  For
-example, 'make install DESTDIR=/alternate/directory' will prepend
-'/alternate/directory' before all installation names.  The approach of
-'DESTDIR' overrides is not required by the GNU Coding Standards, and
+   The second method involves providing the ‘DESTDIR’ variable.  For
+example, ‘make install DESTDIR=/alternate/directory’ will prepend
+‘/alternate/directory’ before all installation names.  The approach of
+‘DESTDIR’ overrides is not required by the GNU Coding Standards, and
 does not work on platforms that have drive letters.  On the other hand,
 it does better at avoiding recompilation issues, and works well even
-when some directory options were not specified in terms of '${prefix}'
-at 'configure' time.
+when some directory options were not specified in terms of ‘${prefix}’
+at ‘configure’ time.
 
 Optional Features
 =================
 
    If the package supports it, you can cause programs to be installed
-with an extra prefix or suffix on their names by giving 'configure' the
-option '--program-prefix=PREFIX' or '--program-suffix=SUFFIX'.
-
-   Some packages pay attention to '--enable-FEATURE' options to
-'configure', where FEATURE indicates an optional part of the package.
-They may also pay attention to '--with-PACKAGE' options, where PACKAGE
-is something like 'gnu-as' or 'x' (for the X Window System).  The
-'README' should mention any '--enable-' and '--with-' options that the
+with an extra prefix or suffix on their names by giving ‘configure’ the
+option ‘--program-prefix=PREFIX’ or ‘--program-suffix=SUFFIX’.
+
+   Some packages pay attention to ‘--enable-FEATURE’ options to
+‘configure’, where FEATURE indicates an optional part of the package.
+They may also pay attention to ‘--with-PACKAGE’ options, where PACKAGE
+is something like ‘gnu-as’ or ‘x’ (for the X Window System).  The
+‘README’ should mention any ‘--enable-’ and ‘--with-’ options that the
 package recognizes.
 
-   For packages that use the X Window System, 'configure' can usually
-find the X include and library files automatically, but if it doesn't,
-you can use the 'configure' options '--x-includes=DIR' and
-'--x-libraries=DIR' to specify their locations.
+   For packages that use the X Window System, ‘configure’ can usually
+find the X include and library files automatically, but if it doesnt,
+you can use the ‘configure’ options ‘--x-includes=DIR’ and
+‘--x-libraries=DIR’ to specify their locations.
 
    Some packages offer the ability to configure how verbose the
-execution of 'make' will be.  For these packages, running './configure
---enable-silent-rules' sets the default to minimal output, which can be
-overridden with 'make V=1'; while running './configure
---disable-silent-rules' sets the default to verbose, which can be
-overridden with 'make V=0'.
+execution of ‘make’ will be.  For these packages, running ‘./configure
+--enable-silent-rules sets the default to minimal output, which can be
+overridden with ‘make V=1’; while running ‘./configure
+--disable-silent-rules sets the default to verbose, which can be
+overridden with ‘make V=0’.
 
 Particular systems
 ==================
@@ -223,43 +223,43 @@ order to use an ANSI C compiler:
 
      ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
 
-and if that doesn't work, install pre-built binaries of GCC for HP-UX.
+and if that doesnt work, install pre-built binaries of GCC for HP-UX.
 
-   HP-UX 'make' updates targets which have the same timestamps as their
+   HP-UX ‘make’ updates targets which have the same timestamps as their
 prerequisites, which makes it generally unusable when shipped generated
-files such as 'configure' are involved.  Use GNU 'make' instead.
+files such as ‘configure’ are involved.  Use GNU ‘make’ instead.
 
    On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
-parse its '<wchar.h>' header file.  The option '-nodtk' can be used as a
+parse its ‘<wchar.h>’ header file.  The option ‘-nodtk’ can be used as a
 workaround.  If GNU CC is not installed, it is therefore recommended to
 try
 
      ./configure CC="cc"
 
-and if that doesn't work, try
+and if that doesnt work, try
 
      ./configure CC="cc -nodtk"
 
-   On Solaris, don't put '/usr/ucb' early in your 'PATH'.  This
+   On Solaris, don’t put ‘/usr/ucb’ early in your ‘PATH’.  This
 directory contains several dysfunctional programs; working variants of
-these programs are available in '/usr/bin'.  So, if you need '/usr/ucb'
-in your 'PATH', put it _after_ '/usr/bin'.
+these programs are available in ‘/usr/bin’.  So, if you need ‘/usr/ucb’
+in your ‘PATH’, put it _after_ ‘/usr/bin’.
 
-   On Haiku, software installed for all users goes in '/boot/common',
-not '/usr/local'.  It is recommended to use the following options:
+   On Haiku, software installed for all users goes in ‘/boot/common’,
+not ‘/usr/local’.  It is recommended to use the following options:
 
      ./configure --prefix=/boot/common
 
 Specifying the System Type
 ==========================
 
-   There may be some features 'configure' cannot figure out
+   There may be some features ‘configure’ cannot figure out
 automatically, but needs to determine by the type of machine the package
 will run on.  Usually, assuming the package is built to be run on the
-_same_ architectures, 'configure' can figure that out, but if it prints
+_same_ architectures, ‘configure’ can figure that out, but if it prints
 a message saying it cannot guess the machine type, give it the
-'--build=TYPE' option.  TYPE can either be a short name for the system
-type, such as 'sun4', or a canonical name which has the form:
+‘--build=TYPE’ option.  TYPE can either be a short name for the system
+type, such as ‘sun4’, or a canonical name which has the form:
 
      CPU-COMPANY-SYSTEM
 
@@ -268,101 +268,101 @@ where SYSTEM can have one of these forms:
      OS
      KERNEL-OS
 
-   See the file 'config.sub' for the possible values of each field.  If
-'config.sub' isn't included in this package, then this package doesn't
+   See the file ‘config.sub’ for the possible values of each field.  If
+‘config.sub’ isn’t included in this package, then this package doesn’t
 need to know the machine type.
 
    If you are _building_ compiler tools for cross-compiling, you should
-use the option '--target=TYPE' to select the type of system they will
+use the option ‘--target=TYPE’ to select the type of system they will
 produce code for.
 
    If you want to _use_ a cross compiler, that generates code for a
 platform different from the build platform, you should specify the
-"host" platform (i.e., that on which the generated programs will
-eventually be run) with '--host=TYPE'.
+“host” platform (i.e., that on which the generated programs will
+eventually be run) with ‘--host=TYPE’.
 
 Sharing Defaults
 ================
 
-   If you want to set default values for 'configure' scripts to share,
-you can create a site shell script called 'config.site' that gives
-default values for variables like 'CC', 'cache_file', and 'prefix'.
-'configure' looks for 'PREFIX/share/config.site' if it exists, then
-'PREFIX/etc/config.site' if it exists.  Or, you can set the
-'CONFIG_SITE' environment variable to the location of the site script.
-A warning: not all 'configure' scripts look for a site script.
+   If you want to set default values for ‘configure’ scripts to share,
+you can create a site shell script called ‘config.site’ that gives
+default values for variables like ‘CC’, ‘cache_file’, and ‘prefix’.
+‘configure’ looks for ‘PREFIX/share/config.site’ if it exists, then
+‘PREFIX/etc/config.site’ if it exists.  Or, you can set the
+‘CONFIG_SITE’ environment variable to the location of the site script.
+A warning: not all ‘configure’ scripts look for a site script.
 
 Defining Variables
 ==================
 
    Variables not defined in a site shell script can be set in the
-environment passed to 'configure'.  However, some packages may run
+environment passed to ‘configure’.  However, some packages may run
 configure again during the build, and the customized values of these
 variables may be lost.  In order to avoid this problem, you should set
-them in the 'configure' command line, using 'VAR=value'.  For example:
+them in the ‘configure’ command line, using ‘VAR=value’.  For example:
 
      ./configure CC=/usr/local2/bin/gcc
 
-causes the specified 'gcc' to be used as the C compiler (unless it is
+causes the specified ‘gcc’ to be used as the C compiler (unless it is
 overridden in the site shell script).
 
-Unfortunately, this technique does not work for 'CONFIG_SHELL' due to an
+Unfortunately, this technique does not work for ‘CONFIG_SHELL’ due to an
 Autoconf limitation.  Until the limitation is lifted, you can use this
 workaround:
 
      CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
 
-'configure' Invocation
+‘configure’ Invocation
 ======================
 
-   'configure' recognizes the following options to control how it
+   ‘configure’ recognizes the following options to control how it
 operates.
 
-'--help'
-'-h'
-     Print a summary of all of the options to 'configure', and exit.
+‘--help’
+‘-h’
+     Print a summary of all of the options to ‘configure’, and exit.
 
-'--help=short'
-'--help=recursive'
-     Print a summary of the options unique to this package's
-     'configure', and exit.  The 'short' variant lists options used only
-     in the top level, while the 'recursive' variant lists options also
+‘--help=short’
+‘--help=recursive’
+     Print a summary of the options unique to this packages
+     ‘configure’, and exit.  The ‘short’ variant lists options used only
+     in the top level, while the ‘recursive’ variant lists options also
      present in any nested packages.
 
-'--version'
-'-V'
-     Print the version of Autoconf used to generate the 'configure'
+‘--version’
+‘-V’
+     Print the version of Autoconf used to generate the ‘configure’
      script, and exit.
 
-'--cache-file=FILE'
+‘--cache-file=FILE’
      Enable the cache: use and save the results of the tests in FILE,
-     traditionally 'config.cache'.  FILE defaults to '/dev/null' to
+     traditionally ‘config.cache’.  FILE defaults to ‘/dev/null’ to
      disable caching.
 
-'--config-cache'
-'-C'
-     Alias for '--cache-file=config.cache'.
+‘--config-cache’
+‘-C’
+     Alias for ‘--cache-file=config.cache’.
 
-'--quiet'
-'--silent'
-'-q'
+‘--quiet’
+‘--silent’
+‘-q’
      Do not print messages saying which checks are being made.  To
-     suppress all normal output, redirect it to '/dev/null' (any error
+     suppress all normal output, redirect it to ‘/dev/null’ (any error
      messages will still be shown).
 
-'--srcdir=DIR'
-     Look for the package's source code in directory DIR.  Usually
-     'configure' can determine that directory automatically.
+‘--srcdir=DIR’
+     Look for the packages source code in directory DIR.  Usually
+     ‘configure’ can determine that directory automatically.
 
-'--prefix=DIR'
+‘--prefix=DIR’
      Use DIR as the installation prefix.  *note Installation Names:: for
      more details, including other options available for fine-tuning the
      installation locations.
 
-'--no-create'
-'-n'
+‘--no-create’
+‘-n’
      Run the configure checks, but stop before creating any output
      files.
 
-'configure' also accepts some other, not widely useful, options.  Run
-'configure --help' for more details.
+‘configure’ also accepts some other, not widely useful, options.  Run
+‘configure --help’ for more details.
index 8e96ebe..c47bc83 100644 (file)
@@ -1,6 +1,6 @@
 # Main Automakefile for GNU diffutils.
 
-# Copyright (C) 2001-2002, 2004, 2006, 2009-2013, 2015-2021 Free Software
+# Copyright (C) 2001-2002, 2004, 2006, 2009-2013, 2015-2023 Free Software
 # Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
index 1a08785..bfb885b 100644 (file)
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.16d from Makefile.am.
+# Makefile.in generated by automake 1.16i from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2021 Free Software Foundation, Inc.
+# Copyright (C) 1994-2023 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,7 @@
 
 # Main Automakefile for GNU diffutils.
 
-# Copyright (C) 2001-2002, 2004, 2006, 2009-2013, 2015-2021 Free Software
+# Copyright (C) 2001-2002, 2004, 2006, 2009-2013, 2015-2023 Free Software
 # Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
@@ -87,6 +87,8 @@ am__make_running_with_option = \
   test $$has_opt = yes
 am__make_dryrun = (target_option=n; $(am__make_running_with_option))
 am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+am__rm_f = rm -f $(am__rm_f_notfound)
+am__rm_rf = rm -rf $(am__rm_f_notfound)
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -111,19 +113,22 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/__inline.m4 \
        $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \
        $(top_srcdir)/m4/arpa_inet_h.m4 \
-       $(top_srcdir)/m4/asm-underscore.m4 $(top_srcdir)/m4/atoll.m4 \
+       $(top_srcdir)/m4/asm-underscore.m4 \
+       $(top_srcdir)/m4/assert_h.m4 $(top_srcdir)/m4/atoll.m4 \
        $(top_srcdir)/m4/btowc.m4 $(top_srcdir)/m4/builtin-expect.m4 \
-       $(top_srcdir)/m4/c-stack.m4 $(top_srcdir)/m4/calloc.m4 \
-       $(top_srcdir)/m4/clock_time.m4 $(top_srcdir)/m4/close.m4 \
-       $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
-       $(top_srcdir)/m4/ctype_h.m4 \
+       $(top_srcdir)/m4/c-bool.m4 $(top_srcdir)/m4/c-stack.m4 \
+       $(top_srcdir)/m4/calloc.m4 $(top_srcdir)/m4/clock_time.m4 \
+       $(top_srcdir)/m4/close.m4 $(top_srcdir)/m4/codeset.m4 \
+       $(top_srcdir)/m4/config-h.m4 $(top_srcdir)/m4/ctype_h.m4 \
        $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \
        $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \
        $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \
-       $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \
-       $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \
-       $(top_srcdir)/m4/fcntl.m4 $(top_srcdir)/m4/fcntl_h.m4 \
-       $(top_srcdir)/m4/fdopen.m4 $(top_srcdir)/m4/filenamecat.m4 \
+       $(top_srcdir)/m4/error_h.m4 $(top_srcdir)/m4/exponentd.m4 \
+       $(top_srcdir)/m4/extensions.m4 \
+       $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fclose.m4 \
+       $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \
+       $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopen.m4 \
+       $(top_srcdir)/m4/fflush.m4 $(top_srcdir)/m4/filenamecat.m4 \
        $(top_srcdir)/m4/flexmember.m4 $(top_srcdir)/m4/float_h.m4 \
        $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fnmatch_h.m4 \
        $(top_srcdir)/m4/fopen.m4 $(top_srcdir)/m4/fpieee.m4 \
@@ -139,15 +144,16 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \
        $(top_srcdir)/m4/iconv_h.m4 $(top_srcdir)/m4/iconv_open.m4 \
        $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inet_pton.m4 \
-       $(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/intlmacosx.m4 \
-       $(top_srcdir)/m4/intmax_t.m4 $(top_srcdir)/m4/inttostr.m4 \
-       $(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-       $(top_srcdir)/m4/ioctl.m4 $(top_srcdir)/m4/isblank.m4 \
-       $(top_srcdir)/m4/iswblank.m4 $(top_srcdir)/m4/iswdigit.m4 \
-       $(top_srcdir)/m4/iswxdigit.m4 $(top_srcdir)/m4/langinfo_h.m4 \
-       $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lib-ld.m4 \
-       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-       $(top_srcdir)/m4/libsigsegv.m4 \
+       $(top_srcdir)/m4/inline.m4 \
+       $(top_srcdir)/m4/intl-thread-locale.m4 \
+       $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \
+       $(top_srcdir)/m4/inttostr.m4 $(top_srcdir)/m4/inttypes.m4 \
+       $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/ioctl.m4 \
+       $(top_srcdir)/m4/isblank.m4 $(top_srcdir)/m4/iswblank.m4 \
+       $(top_srcdir)/m4/iswdigit.m4 $(top_srcdir)/m4/iswxdigit.m4 \
+       $(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/largefile.m4 \
+       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libsigsegv.m4 \
        $(top_srcdir)/m4/libunistring-base.m4 \
        $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/localcharset.m4 \
        $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \
@@ -169,11 +175,13 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/netinet_in_h.m4 \
        $(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \
        $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/nstrftime.m4 \
-       $(top_srcdir)/m4/off_t.m4 $(top_srcdir)/m4/open-cloexec.m4 \
+       $(top_srcdir)/m4/nullptr.m4 $(top_srcdir)/m4/off_t.m4 \
+       $(top_srcdir)/m4/open-cloexec.m4 \
        $(top_srcdir)/m4/open-slash.m4 $(top_srcdir)/m4/open.m4 \
-       $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/perror.m4 \
-       $(top_srcdir)/m4/pipe.m4 $(top_srcdir)/m4/po.m4 \
-       $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \
+       $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/perl.m4 \
+       $(top_srcdir)/m4/perror.m4 $(top_srcdir)/m4/pipe.m4 \
+       $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf.m4 \
+       $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/pselect.m4 \
        $(top_srcdir)/m4/pthread-thread.m4 \
        $(top_srcdir)/m4/pthread_h.m4 \
        $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \
@@ -184,9 +192,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/reallocarray.m4 $(top_srcdir)/m4/regex.m4 \
        $(top_srcdir)/m4/sched_h.m4 $(top_srcdir)/m4/select.m4 \
        $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/setlocale_null.m4 \
-       $(top_srcdir)/m4/sigaction.m4 $(top_srcdir)/m4/sigaltstack.m4 \
-       $(top_srcdir)/m4/signal_h.m4 \
-       $(top_srcdir)/m4/signalblocking.m4 \
+       $(top_srcdir)/m4/sigaltstack.m4 $(top_srcdir)/m4/signal_h.m4 \
+       $(top_srcdir)/m4/signalblocking.m4 $(top_srcdir)/m4/sigsegv.m4 \
        $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \
        $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \
        $(top_srcdir)/m4/sockets.m4 $(top_srcdir)/m4/socklen.m4 \
@@ -194,9 +201,9 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/stack-direction.m4 \
        $(top_srcdir)/m4/stat-time.m4 $(top_srcdir)/m4/stat.m4 \
        $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdarg.m4 \
-       $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \
-       $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \
-       $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \
+       $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \
+       $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \
+       $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/stpcpy.m4 \
        $(top_srcdir)/m4/strcase.m4 $(top_srcdir)/m4/strerror.m4 \
        $(top_srcdir)/m4/strerror_r.m4 $(top_srcdir)/m4/string_h.m4 \
        $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strnlen.m4 \
@@ -210,12 +217,12 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/sys_uio_h.m4 \
        $(top_srcdir)/m4/sys_wait_h.m4 $(top_srcdir)/m4/tempname.m4 \
        $(top_srcdir)/m4/thread.m4 $(top_srcdir)/m4/threadlib.m4 \
-       $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/time_r.m4 \
-       $(top_srcdir)/m4/time_rz.m4 $(top_srcdir)/m4/timegm.m4 \
-       $(top_srcdir)/m4/timespec.m4 $(top_srcdir)/m4/tm_gmtoff.m4 \
-       $(top_srcdir)/m4/tzset.m4 $(top_srcdir)/m4/unistd_h.m4 \
-       $(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/vasnprintf.m4 \
-       $(top_srcdir)/m4/vasprintf.m4 $(top_srcdir)/m4/version-etc.m4 \
+       $(top_srcdir)/m4/time.m4 $(top_srcdir)/m4/time_h.m4 \
+       $(top_srcdir)/m4/time_r.m4 $(top_srcdir)/m4/time_rz.m4 \
+       $(top_srcdir)/m4/timegm.m4 $(top_srcdir)/m4/timespec.m4 \
+       $(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/tzset.m4 \
+       $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/unlocked-io.m4 \
+       $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/version-etc.m4 \
        $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/warn-on-use.m4 \
        $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/m4/wchar_h.m4 \
        $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wcrtomb.m4 \
@@ -224,7 +231,6 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/wmemchr.m4 \
        $(top_srcdir)/m4/wmempcpy.m4 $(top_srcdir)/m4/xalloc.m4 \
        $(top_srcdir)/m4/xsize.m4 $(top_srcdir)/m4/xstrtol.m4 \
-       $(top_srcdir)/m4/xvasprintf.m4 $(top_srcdir)/m4/year2038.m4 \
        $(top_srcdir)/m4/zzgnulib.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
@@ -344,7 +350,9 @@ AM_DISTCHECK_DVI_TARGET = dvi
 distuninstallcheck_listfiles = find . -type f -print
 am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
   | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
-distcleancheck_listfiles = find . -type f -print
+distcleancheck_listfiles = \
+  find . \( -type f -a \! \
+            \( -name .nfs* -o -name .smb* -o -name .__afs* \) \) -print
 ACLOCAL = @ACLOCAL@
 ALLOCA = @ALLOCA@
 ALLOCA_H = @ALLOCA_H@
@@ -353,6 +361,7 @@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
 AR = @AR@
 ARFLAGS = @ARFLAGS@
+ASSERT_H = @ASSERT_H@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -366,6 +375,7 @@ CC = @CC@
 CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
 CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
+CLOCK_TIME_LIB = @CLOCK_TIME_LIB@
 CONFIG_INCLUDE = @CONFIG_INCLUDE@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
@@ -377,7 +387,6 @@ DEPDIR = @DEPDIR@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-EGREP = @EGREP@
 EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@
 EMULTIHOP_VALUE = @EMULTIHOP_VALUE@
 ENOLINK_HIDDEN = @ENOLINK_HIDDEN@
@@ -385,14 +394,17 @@ ENOLINK_VALUE = @ENOLINK_VALUE@
 EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@
 EOVERFLOW_VALUE = @EOVERFLOW_VALUE@
 ERRNO_H = @ERRNO_H@
+ERROR_H = @ERROR_H@
 ETAGS = @ETAGS@
 EXEEXT = @EXEEXT@
 FLOAT_H = @FLOAT_H@
 FNMATCH_H = @FNMATCH_H@
 GETOPT_CDEFS_H = @GETOPT_CDEFS_H@
 GETOPT_H = @GETOPT_H@
+GETRANDOM_LIB = @GETRANDOM_LIB@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@
+GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@
 GL_CXXFLAG_ALLOW_WARNINGS = @GL_CXXFLAG_ALLOW_WARNINGS@
 GL_GNULIB_ACCEPT = @GL_GNULIB_ACCEPT@
 GL_GNULIB_ACCEPT4 = @GL_GNULIB_ACCEPT4@
@@ -401,9 +413,11 @@ GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@
 GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@
 GL_GNULIB_BIND = @GL_GNULIB_BIND@
 GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@
+GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@
 GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@
 GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@
 GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@
+GL_GNULIB_CHMOD = @GL_GNULIB_CHMOD@
 GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@
 GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@
 GL_GNULIB_CONNECT = @GL_GNULIB_CONNECT@
@@ -441,6 +455,7 @@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@
 GL_GNULIB_FGETS = @GL_GNULIB_FGETS@
 GL_GNULIB_FNMATCH = @GL_GNULIB_FNMATCH@
 GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@
+GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@
 GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@
 GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@
 GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@
@@ -476,7 +491,9 @@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@
 GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@
 GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@
 GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@
+GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@
 GL_GNULIB_GETPEERNAME = @GL_GNULIB_GETPEERNAME@
+GL_GNULIB_GETPROGNAME = @GL_GNULIB_GETPROGNAME@
 GL_GNULIB_GETRANDOM = @GL_GNULIB_GETRANDOM@
 GL_GNULIB_GETSOCKNAME = @GL_GNULIB_GETSOCKNAME@
 GL_GNULIB_GETSOCKOPT = @GL_GNULIB_GETSOCKOPT@
@@ -508,6 +525,7 @@ GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@
 GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@
 GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@
 GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@
+GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@
 GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@
 GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@
 GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@
@@ -528,6 +546,7 @@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@
 GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@
 GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@
 GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@
+GL_GNULIB_MBSTOWCS = @GL_GNULIB_MBSTOWCS@
 GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@
 GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@
 GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@
@@ -574,6 +593,7 @@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@
 GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@
 GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@
 GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@
+GL_GNULIB_MEMSET_EXPLICIT = @GL_GNULIB_MEMSET_EXPLICIT@
 GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@
 GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@
 GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@
@@ -630,6 +650,7 @@ GL_GNULIB_READ = @GL_GNULIB_READ@
 GL_GNULIB_READLINK = @GL_GNULIB_READLINK@
 GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@
 GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@
+GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@
 GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@
 GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@
 GL_GNULIB_RECV = @GL_GNULIB_RECV@
@@ -693,8 +714,10 @@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@
 GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@
 GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@
 GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@
+GL_GNULIB_TIME = @GL_GNULIB_TIME@
 GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@
 GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@
+GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@
 GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@
 GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@
 GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@
@@ -768,6 +791,7 @@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@
 GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
 GNULIB_WARN_CFLAGS = @GNULIB_WARN_CFLAGS@
 GREP = @GREP@
+HARD_LOCALE_LIB = @HARD_LOCALE_LIB@
 HAVE_ACCEPT4 = @HAVE_ACCEPT4@
 HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@
 HAVE_ALLOCA_H = @HAVE_ALLOCA_H@
@@ -798,6 +822,7 @@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@
 HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
 HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
 HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
+HAVE_DECL_GETW = @HAVE_DECL_GETW@
 HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
 HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
 HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@
@@ -807,6 +832,8 @@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@
 HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
 HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
 HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@
+HAVE_DECL_PROGRAM_INVOCATION_NAME = @HAVE_DECL_PROGRAM_INVOCATION_NAME@
+HAVE_DECL_PUTW = @HAVE_DECL_PUTW@
 HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
 HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
 HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@
@@ -830,6 +857,9 @@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
 HAVE_DPRINTF = @HAVE_DPRINTF@
 HAVE_DUP3 = @HAVE_DUP3@
 HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
+HAVE_ERROR = @HAVE_ERROR@
+HAVE_ERROR_AT_LINE = @HAVE_ERROR_AT_LINE@
+HAVE_ERROR_H = @HAVE_ERROR_H@
 HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
 HAVE_EXECVPE = @HAVE_EXECVPE@
 HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@
@@ -860,12 +890,15 @@ HAVE_GETLOGIN = @HAVE_GETLOGIN@
 HAVE_GETOPT_H = @HAVE_GETOPT_H@
 HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
 HAVE_GETPASS = @HAVE_GETPASS@
+HAVE_GETPROGNAME = @HAVE_GETPROGNAME@
 HAVE_GETRANDOM = @HAVE_GETRANDOM@
 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
 HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@
 HAVE_GETUMASK = @HAVE_GETUMASK@
 HAVE_GRANTPT = @HAVE_GRANTPT@
 HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
+HAVE_IMAXABS = @HAVE_IMAXABS@
+HAVE_IMAXDIV = @HAVE_IMAXDIV@
 HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@
 HAVE_INITSTATE = @HAVE_INITSTATE@
 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
@@ -893,6 +926,7 @@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
 HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
 HAVE_MBTOWC = @HAVE_MBTOWC@
 HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MEMSET_EXPLICIT = @HAVE_MEMSET_EXPLICIT@
 HAVE_MKDIRAT = @HAVE_MKDIRAT@
 HAVE_MKDTEMP = @HAVE_MKDTEMP@
 HAVE_MKFIFO = @HAVE_MKFIFO@
@@ -1050,9 +1084,11 @@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
 HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@
 HAVE_TIMEGM = @HAVE_TIMEGM@
 HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@
+HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@
 HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@
 HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
 HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNISTRING_WOE32DLL_H = @HAVE_UNISTRING_WOE32DLL_H@
 HAVE_UNLINKAT = @HAVE_UNLINKAT@
 HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
 HAVE_USLEEP = @HAVE_USLEEP@
@@ -1102,7 +1138,6 @@ HAVE_WMEMPCPY = @HAVE_WMEMPCPY@
 HAVE_WMEMSET = @HAVE_WMEMSET@
 HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@
 HAVE_XLOCALE_H = @HAVE_XLOCALE_H@
-HAVE__BOOL = @HAVE__BOOL@
 HAVE__EXIT = @HAVE__EXIT@
 HELP2MAN = @HELP2MAN@
 HOST_CPU = @HOST_CPU@
@@ -1168,15 +1203,20 @@ LTLIBOBJS = @LTLIBOBJS@
 LTLIBSIGSEGV = @LTLIBSIGSEGV@
 LTLIBTHREAD = @LTLIBTHREAD@
 MAKEINFO = @MAKEINFO@
+MBRTOWC_LIB = @MBRTOWC_LIB@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
+NANOSLEEP_LIB = @NANOSLEEP_LIB@
 NETINET_IN_H = @NETINET_IN_H@
 NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@
+NEXT_ASSERT_H = @NEXT_ASSERT_H@
 NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@
+NEXT_AS_FIRST_DIRECTIVE_ASSERT_H = @NEXT_AS_FIRST_DIRECTIVE_ASSERT_H@
 NEXT_AS_FIRST_DIRECTIVE_CTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_CTYPE_H@
 NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@
+NEXT_AS_FIRST_DIRECTIVE_ERROR_H = @NEXT_AS_FIRST_DIRECTIVE_ERROR_H@
 NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@
 NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@
 NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H = @NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H@
@@ -1212,6 +1252,7 @@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@
 NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@
 NEXT_CTYPE_H = @NEXT_CTYPE_H@
 NEXT_ERRNO_H = @NEXT_ERRNO_H@
+NEXT_ERROR_H = @NEXT_ERROR_H@
 NEXT_FCNTL_H = @NEXT_FCNTL_H@
 NEXT_FLOAT_H = @NEXT_FLOAT_H@
 NEXT_FNMATCH_H = @NEXT_FNMATCH_H@
@@ -1254,27 +1295,35 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
 PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
 POSUB = @POSUB@
 PRAGMA_COLUMNS = @PRAGMA_COLUMNS@
 PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
 PRIPTR_PREFIX = @PRIPTR_PREFIX@
 PR_PROGRAM = @PR_PROGRAM@
 PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@
+PTHREAD_SIGMASK_LIB = @PTHREAD_SIGMASK_LIB@
 PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
 RANLIB = @RANLIB@
 REPLACE_ACCESS = @REPLACE_ACCESS@
 REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@
 REPLACE_BTOWC = @REPLACE_BTOWC@
-REPLACE_CALLOC = @REPLACE_CALLOC@
+REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@
+REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@
 REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@
+REPLACE_CHMOD = @REPLACE_CHMOD@
 REPLACE_CHOWN = @REPLACE_CHOWN@
 REPLACE_CLOSE = @REPLACE_CLOSE@
+REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@
 REPLACE_CREAT = @REPLACE_CREAT@
 REPLACE_CTIME = @REPLACE_CTIME@
 REPLACE_DPRINTF = @REPLACE_DPRINTF@
 REPLACE_DUP = @REPLACE_DUP@
 REPLACE_DUP2 = @REPLACE_DUP2@
+REPLACE_DUP3 = @REPLACE_DUP3@
 REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
+REPLACE_ERROR = @REPLACE_ERROR@
+REPLACE_ERROR_AT_LINE = @REPLACE_ERROR_AT_LINE@
 REPLACE_EXECL = @REPLACE_EXECL@
 REPLACE_EXECLE = @REPLACE_EXECLE@
 REPLACE_EXECLP = @REPLACE_EXECLP@
@@ -1287,11 +1336,13 @@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@
 REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
 REPLACE_FCLOSE = @REPLACE_FCLOSE@
 REPLACE_FCNTL = @REPLACE_FCNTL@
+REPLACE_FDATASYNC = @REPLACE_FDATASYNC@
 REPLACE_FDOPEN = @REPLACE_FDOPEN@
 REPLACE_FFLUSH = @REPLACE_FFLUSH@
 REPLACE_FFSLL = @REPLACE_FFSLL@
 REPLACE_FNMATCH = @REPLACE_FNMATCH@
 REPLACE_FOPEN = @REPLACE_FOPEN@
+REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@
 REPLACE_FPRINTF = @REPLACE_FPRINTF@
 REPLACE_FPURGE = @REPLACE_FPURGE@
 REPLACE_FREE = @REPLACE_FREE@
@@ -1309,17 +1360,24 @@ REPLACE_GETCWD = @REPLACE_GETCWD@
 REPLACE_GETDELIM = @REPLACE_GETDELIM@
 REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
 REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@
+REPLACE_GETENTROPY = @REPLACE_GETENTROPY@
 REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
 REPLACE_GETLINE = @REPLACE_GETLINE@
+REPLACE_GETLOADAVG = @REPLACE_GETLOADAVG@
 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
 REPLACE_GETPASS = @REPLACE_GETPASS@
+REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@
+REPLACE_GETPROGNAME = @REPLACE_GETPROGNAME@
 REPLACE_GETRANDOM = @REPLACE_GETRANDOM@
+REPLACE_GETSUBOPT = @REPLACE_GETSUBOPT@
 REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
 REPLACE_GMTIME = @REPLACE_GMTIME@
 REPLACE_ICONV = @REPLACE_ICONV@
 REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@
 REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@
+REPLACE_IMAXABS = @REPLACE_IMAXABS@
+REPLACE_IMAXDIV = @REPLACE_IMAXDIV@
 REPLACE_INET_NTOP = @REPLACE_INET_NTOP@
 REPLACE_INET_PTON = @REPLACE_INET_PTON@
 REPLACE_INITSTATE = @REPLACE_INITSTATE@
@@ -1338,21 +1396,27 @@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@
 REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
 REPLACE_LSEEK = @REPLACE_LSEEK@
 REPLACE_LSTAT = @REPLACE_LSTAT@
-REPLACE_MALLOC = @REPLACE_MALLOC@
+REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@
+REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@
 REPLACE_MBRLEN = @REPLACE_MBRLEN@
 REPLACE_MBRTOWC = @REPLACE_MBRTOWC@
 REPLACE_MBSINIT = @REPLACE_MBSINIT@
 REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@
 REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@
 REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@
+REPLACE_MBSTOWCS = @REPLACE_MBSTOWCS@
 REPLACE_MBTOWC = @REPLACE_MBTOWC@
+REPLACE_MB_CUR_MAX = @REPLACE_MB_CUR_MAX@
 REPLACE_MEMCHR = @REPLACE_MEMCHR@
 REPLACE_MEMMEM = @REPLACE_MEMMEM@
+REPLACE_MEMPCPY = @REPLACE_MEMPCPY@
 REPLACE_MKDIR = @REPLACE_MKDIR@
 REPLACE_MKFIFO = @REPLACE_MKFIFO@
 REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@
 REPLACE_MKNOD = @REPLACE_MKNOD@
 REPLACE_MKNODAT = @REPLACE_MKNODAT@
+REPLACE_MKOSTEMP = @REPLACE_MKOSTEMP@
+REPLACE_MKOSTEMPS = @REPLACE_MKOSTEMPS@
 REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
 REPLACE_MKTIME = @REPLACE_MKTIME@
 REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
@@ -1363,8 +1427,10 @@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
 REPLACE_OPEN = @REPLACE_OPEN@
 REPLACE_OPENAT = @REPLACE_OPENAT@
 REPLACE_PERROR = @REPLACE_PERROR@
+REPLACE_PIPE2 = @REPLACE_PIPE2@
 REPLACE_POPEN = @REPLACE_POPEN@
 REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@
+REPLACE_POSIX_OPENPT = @REPLACE_POSIX_OPENPT@
 REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
@@ -1431,8 +1497,9 @@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
 REPLACE_READ = @REPLACE_READ@
 REPLACE_READLINK = @REPLACE_READLINK@
 REPLACE_READLINKAT = @REPLACE_READLINKAT@
-REPLACE_REALLOC = @REPLACE_REALLOC@
 REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@
+REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@
+REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@
 REPLACE_REALPATH = @REPLACE_REALPATH@
 REPLACE_REMOVE = @REPLACE_REMOVE@
 REPLACE_RENAME = @REPLACE_RENAME@
@@ -1441,6 +1508,7 @@ REPLACE_RMDIR = @REPLACE_RMDIR@
 REPLACE_SCHED_YIELD = @REPLACE_SCHED_YIELD@
 REPLACE_SELECT = @REPLACE_SELECT@
 REPLACE_SETENV = @REPLACE_SETENV@
+REPLACE_SETHOSTNAME = @REPLACE_SETHOSTNAME@
 REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
 REPLACE_SETSTATE = @REPLACE_SETSTATE@
 REPLACE_SLEEP = @REPLACE_SLEEP@
@@ -1449,6 +1517,7 @@ REPLACE_SPRINTF = @REPLACE_SPRINTF@
 REPLACE_STAT = @REPLACE_STAT@
 REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@
 REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
+REPLACE_STPCPY = @REPLACE_STPCPY@
 REPLACE_STPNCPY = @REPLACE_STPNCPY@
 REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
 REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@
@@ -1475,7 +1544,9 @@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
 REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@
 REPLACE_SYMLINK = @REPLACE_SYMLINK@
 REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
+REPLACE_TIME = @REPLACE_TIME@
 REPLACE_TIMEGM = @REPLACE_TIMEGM@
+REPLACE_TIMESPEC_GET = @REPLACE_TIMESPEC_GET@
 REPLACE_TMPFILE = @REPLACE_TMPFILE@
 REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
 REPLACE_TRUNCATE = @REPLACE_TRUNCATE@
@@ -1493,25 +1564,33 @@ REPLACE_VPRINTF = @REPLACE_VPRINTF@
 REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@
 REPLACE_VSPRINTF = @REPLACE_VSPRINTF@
 REPLACE_WCRTOMB = @REPLACE_WCRTOMB@
+REPLACE_WCSCMP = @REPLACE_WCSCMP@
 REPLACE_WCSFTIME = @REPLACE_WCSFTIME@
+REPLACE_WCSNCMP = @REPLACE_WCSNCMP@
 REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@
 REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@
+REPLACE_WCSSTR = @REPLACE_WCSSTR@
 REPLACE_WCSTOK = @REPLACE_WCSTOK@
 REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@
 REPLACE_WCTOB = @REPLACE_WCTOB@
 REPLACE_WCTOMB = @REPLACE_WCTOMB@
 REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
+REPLACE_WMEMCMP = @REPLACE_WMEMCMP@
+REPLACE_WMEMPCPY = @REPLACE_WMEMPCPY@
 REPLACE_WRITE = @REPLACE_WRITE@
+REPLACE__EXIT = @REPLACE__EXIT@
+SCHED_YIELD_LIB = @SCHED_YIELD_LIB@
 SED = @SED@
+SELECT_LIB = @SELECT_LIB@
+SETLOCALE_NULL_LIB = @SETLOCALE_NULL_LIB@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIGSEGV_H = @SIGSEGV_H@
 SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
 SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
 SRC_VERSION_C = @SRC_VERSION_C@
-STDALIGN_H = @STDALIGN_H@
 STDARG_H = @STDARG_H@
-STDBOOL_H = @STDBOOL_H@
+STDCKDINT_H = @STDCKDINT_H@
 STDDEF_H = @STDDEF_H@
 STDINT_H = @STDINT_H@
 STRIP = @STRIP@
@@ -1549,8 +1628,10 @@ ac_ct_CC = @ac_ct_CC@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
+am__rm_f_notfound = @am__rm_f_notfound@
 am__tar = @am__tar@
 am__untar = @am__untar@
+am__xargs_n = @am__xargs_n@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
@@ -1563,8 +1644,10 @@ datarootdir = @datarootdir@
 docdir = @docdir@
 dvidir = @dvidir@
 exec_prefix = @exec_prefix@
+gl_LIBOBJDEPS = @gl_LIBOBJDEPS@
 gl_LIBOBJS = @gl_LIBOBJS@
 gl_LTLIBOBJS = @gl_LTLIBOBJS@
+gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@
 gltests_LIBOBJS = @gltests_LIBOBJS@
 gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
 gltests_WITNESS = @gltests_WITNESS@
@@ -1750,7 +1833,7 @@ distdir: $(BUILT_SOURCES)
 
 distdir-am: $(DISTFILES)
        $(am__remove_distdir)
-       test -d "$(distdir)" || mkdir "$(distdir)"
+       $(AM_V_at)$(MKDIR_P) "$(distdir)"
        @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
        topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
        list='$(DISTFILES)'; \
@@ -1974,8 +2057,8 @@ mostlyclean-generic:
 clean-generic:
 
 distclean-generic:
-       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+       -$(am__rm_f) $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || $(am__rm_f) $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
        @echo "This command is intended for maintainers to use"
diff --git a/NEWS b/NEWS
index 96cc5f6..a0c36e0 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,25 @@
 GNU diffutils NEWS                                    -*- outline -*-
 
+* Noteworthy changes in release 3.10 (2023-05-21) [stable]
+
+** Bug fixes
+
+  cmp/diff can again work with file dates past Y2K38
+  [bug introduced in 3.9]
+
+  diff -D no longer fails to output #ifndef lines.
+  [bug#61193 introduced in 3.9]
+
+
+* Noteworthy changes in release 3.9 (2023-01-15) [stable]
+
+** Bug fixes
+
+  diff -c and -u no longer output incorrect timezones in headers
+  on platforms like Solaris where struct tm lacks tm_gmtoff.
+  [bug#51228 introduced in 3.4]
+
+
 * Noteworthy changes in release 3.8 (2021-08-01) [stable]
 
 ** Incompatible changes
@@ -442,7 +462,7 @@ User-visible changes in version 2.0:
 
 \f
 
-Copyright (C) 1993-1994, 1998, 2001-2002, 2004, 2006, 2009-2013, 2015-2021 Free
+Copyright (C) 1993-1994, 1998, 2001-2002, 2004, 2006, 2009-2013, 2015-2023 Free
 Software Foundation, Inc.
 
 This file is part of GNU Diffutils.
diff --git a/README b/README
index 57d080e..03afb2e 100644 (file)
--- a/README
+++ b/README
@@ -51,7 +51,7 @@ Please report bugs to <bug-diffutils@gnu.org>.
 
 -----
 
-Copyright (C) 1992, 1998, 2001-2002, 2004, 2009-2013, 2015-2021 Free Software
+Copyright (C) 1992, 1998, 2001-2002, 2004, 2009-2013, 2015-2023 Free Software
 Foundation, Inc.
 
 This file is part of GNU Diffutils.
diff --git a/TODO b/TODO
index 5132de8..25fc22b 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,3 +1,9 @@
+Add --git option to generate output compatible with 'git diff -p'.
+This would behave like 'diff -p', except that it would also generate
+the extended headers 'old mode', 'new mode', 'deleted file mode', and
+'new file mode', and it would quote file names with unusual characters.
+GNU patch already parses this format.
+
 Add --include option (opposite of --exclude).
 
 Look into sdiff improvement here:
index 5da573b..10d3ce7 100644 (file)
@@ -1,6 +1,6 @@
-# generated automatically by aclocal 1.16d -*- Autoconf -*-
+# generated automatically by aclocal 1.16i -*- Autoconf -*-
 
-# Copyright (C) 1996-2021 Free Software Foundation, Inc.
+# Copyright (C) 1996-2023 Free Software Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],,
-[m4_warning([this file was generated for autoconf 2.71.
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.72c.20-9c018],,
+[m4_warning([this file was generated for autoconf 2.72c.20-9c018.
 You have another version of autoconf.  It may work, but is not guaranteed to.
 If you have problems, you may need to regenerate the build system entirely.
 To do so, use the procedure documented by the package, typically 'autoreconf'.])])
 
-# Copyright (C) 2002-2021 Free Software Foundation, Inc.
+# Copyright (C) 2002-2023 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -35,7 +35,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION],
 [am__api_version='1.16'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.16d], [],
+m4_if([$1], [1.16i], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -51,14 +51,14 @@ m4_define([_AM_AUTOCONF_VERSION], [])
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.16d])dnl
+[AM_AUTOMAKE_VERSION([1.16i])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 
 # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
 
-# Copyright (C) 2001-2021 Free Software Foundation, Inc.
+# Copyright (C) 2001-2023 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -108,9 +108,46 @@ AC_DEFUN([AM_AUX_DIR_EXPAND],
 am_aux_dir=`cd "$ac_aux_dir" && pwd`
 ])
 
+# AM_COND_IF                                            -*- Autoconf -*-
+
+# Copyright (C) 2008-2023 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_COND_IF
+# _AM_COND_ELSE
+# _AM_COND_ENDIF
+# --------------
+# These macros are only used for tracing.
+m4_define([_AM_COND_IF])
+m4_define([_AM_COND_ELSE])
+m4_define([_AM_COND_ENDIF])
+
+# AM_COND_IF(COND, [IF-TRUE], [IF-FALSE])
+# ---------------------------------------
+# If the shell condition COND is true, execute IF-TRUE, otherwise execute
+# IF-FALSE.  Allow automake to learn about conditional instantiating macros
+# (the AC_CONFIG_FOOS).
+AC_DEFUN([AM_COND_IF],
+[m4_ifndef([_AM_COND_VALUE_$1],
+          [m4_fatal([$0: no such condition "$1"])])dnl
+_AM_COND_IF([$1])dnl
+if test -z "$$1_TRUE"; then :
+  m4_n([$2])[]dnl
+m4_ifval([$3],
+[_AM_COND_ELSE([$1])dnl
+else
+  $3
+])dnl
+_AM_COND_ENDIF([$1])dnl
+fi[]dnl
+])
+
 # AM_CONDITIONAL                                            -*- Autoconf -*-
 
-# Copyright (C) 1997-2021 Free Software Foundation, Inc.
+# Copyright (C) 1997-2023 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -141,7 +178,7 @@ AC_CONFIG_COMMANDS_PRE(
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
-# Copyright (C) 1999-2021 Free Software Foundation, Inc.
+# Copyright (C) 1999-2023 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -332,7 +369,7 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl
 
 # Generate code to set up dependency tracking.              -*- Autoconf -*-
 
-# Copyright (C) 1999-2021 Free Software Foundation, Inc.
+# Copyright (C) 1999-2023 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -400,7 +437,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
 
 # Do all the work for Automake.                             -*- Autoconf -*-
 
-# Copyright (C) 1996-2021 Free Software Foundation, Inc.
+# Copyright (C) 1996-2023 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -428,6 +465,10 @@ m4_defn([AC_PROG_CC])
 # release and drop the old call support.
 AC_DEFUN([AM_INIT_AUTOMAKE],
 [AC_PREREQ([2.65])dnl
+m4_ifdef([_$0_ALREADY_INIT],
+  [m4_fatal([$0 expanded multiple times
+]m4_defn([_$0_ALREADY_INIT]))],
+  [m4_define([_$0_ALREADY_INIT], m4_expansion_stack)])dnl
 dnl Autoconf wants to disallow AM_ names.  We explicitly allow
 dnl the ones we care about.
 m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
@@ -530,7 +571,7 @@ if test -z "$CSCOPE"; then
 fi
 AC_SUBST([CSCOPE])
 
-AC_REQUIRE([AM_SILENT_RULES])dnl
+AC_REQUIRE([_AM_SILENT_RULES])dnl
 dnl The testsuite driver may need to know about EXEEXT, so add the
 dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This
 dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
@@ -538,47 +579,9 @@ AC_CONFIG_COMMANDS_PRE(dnl
 [m4_provide_if([_AM_COMPILER_EXEEXT],
   [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
 
-# POSIX will say in a future version that running "rm -f" with no argument
-# is OK; and we want to be able to make that assumption in our Makefile
-# recipes.  So use an aggressive probe to check that the usage we want is
-# actually supported "in the wild" to an acceptable degree.
-# See automake bug#10828.
-# To make any issue more visible, cause the running configure to be aborted
-# by default if the 'rm' program in use doesn't match our expectations; the
-# user can still override this though.
-if rm -f && rm -fr && rm -rf; then : OK; else
-  cat >&2 <<'END'
-Oops!
-
-Your 'rm' program seems unable to run without file operands specified
-on the command line, even when the '-f' option is present.  This is contrary
-to the behaviour of most rm programs out there, and not conforming with
-the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
-
-Please tell bug-automake@gnu.org about your system, including the value
-of your $PATH and any error possibly output before this message.  This
-can help us improve future automake versions.
+AC_REQUIRE([_AM_PROG_RM_F])
+AC_REQUIRE([_AM_PROG_XARGS_N])
 
-END
-  if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
-    echo 'Configuration will proceed anyway, since you have set the' >&2
-    echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
-    echo >&2
-  else
-    cat >&2 <<'END'
-Aborting the configuration process, to ensure you take notice of the issue.
-
-You can download and install GNU coreutils to get an 'rm' implementation
-that behaves properly: <https://www.gnu.org/software/coreutils/>.
-
-If you want to complete the configuration process using your problematic
-'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
-to "yes", and re-run configure.
-
-END
-    AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
-  fi
-fi
 dnl The trailing newline in this macro's definition is deliberate, for
 dnl backward compatibility and to allow trailing 'dnl'-style comments
 dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841.
@@ -611,7 +614,7 @@ for _am_header in $config_headers :; do
 done
 echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
 
-# Copyright (C) 2001-2021 Free Software Foundation, Inc.
+# Copyright (C) 2001-2023 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -632,7 +635,7 @@ if test x"${install_sh+set}" != xset; then
 fi
 AC_SUBST([install_sh])])
 
-# Copyright (C) 2003-2021 Free Software Foundation, Inc.
+# Copyright (C) 2003-2023 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -653,7 +656,7 @@ AC_SUBST([am__leading_dot])])
 
 # Check to see how 'make' treats includes.                 -*- Autoconf -*-
 
-# Copyright (C) 2001-2021 Free Software Foundation, Inc.
+# Copyright (C) 2001-2023 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -696,7 +699,7 @@ AC_SUBST([am__quote])])
 
 # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
 
-# Copyright (C) 1997-2021 Free Software Foundation, Inc.
+# Copyright (C) 1997-2023 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -730,7 +733,7 @@ fi
 
 # Helper functions for option handling.                     -*- Autoconf -*-
 
-# Copyright (C) 2001-2021 Free Software Foundation, Inc.
+# Copyright (C) 2001-2023 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -759,7 +762,7 @@ AC_DEFUN([_AM_SET_OPTIONS],
 AC_DEFUN([_AM_IF_OPTION],
 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
 
-# Copyright (C) 1999-2021 Free Software Foundation, Inc.
+# Copyright (C) 1999-2023 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -806,7 +809,23 @@ AC_LANG_POP([C])])
 # For backward compatibility.
 AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
 
-# Copyright (C) 2001-2021 Free Software Foundation, Inc.
+# Copyright (C) 2022-2023 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_PROG_RM_F
+# ---------------
+# Check whether 'rm -f' without any arguments works.
+# https://bugs.gnu.org/10828
+AC_DEFUN([_AM_PROG_RM_F],
+[am__rm_f_notfound=
+AS_IF([(rm -f && rm -fr && rm -rf) 2>/dev/null], [], [am__rm_f_notfound='""'])
+AC_SUBST(am__rm_f_notfound)
+])
+
+# Copyright (C) 2001-2023 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -825,16 +844,60 @@ AC_DEFUN([AM_RUN_LOG],
 
 # Check to make sure that the build environment is sane.    -*- Autoconf -*-
 
-# Copyright (C) 1996-2021 Free Software Foundation, Inc.
+# Copyright (C) 1996-2023 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
+# _AM_SLEEP_FRACTIONAL_SECONDS
+# ----------------------------
+AC_DEFUN([_AM_SLEEP_FRACTIONAL_SECONDS], [dnl
+AC_CACHE_CHECK([whether sleep supports fractional seconds], am_cv_sleep_fractional_seconds, [dnl
+AS_IF([sleep 0.001 2>/dev/null], [am_cv_sleep_fractional_seconds=true], [am_cv_sleep_fractional_seconds=false])
+])])
+
+# _AM_FILESYSTEM_TIMESTAMP_RESOLUTION
+# -----------------------------------
+# Determine the filesystem timestamp resolution.  Modern systems are nanosecond
+# capable, but historical systems could be millisecond, second, or even 2-second
+# resolution.
+AC_DEFUN([_AM_FILESYSTEM_TIMESTAMP_RESOLUTION], [dnl
+AC_REQUIRE([_AM_SLEEP_FRACTIONAL_SECONDS])
+AC_CACHE_CHECK([the filesystem timestamp resolution], am_cv_filesystem_timestamp_resolution, [dnl
+# Use names that lexically sort older-first when the timestamps are equal.
+rm -f conftest.file.a conftest.file.b
+: > conftest.file.a
+AS_IF([$am_cv_sleep_fractional_seconds], [dnl
+  am_try_sleep=0.1 am_try_loops=20
+], [dnl
+  am_try_sleep=1   am_try_loops=2
+])
+am_try=0
+while :; do
+  AS_VAR_ARITH([am_try], [$am_try + 1])
+  echo "timestamp $am_try" > conftest.file.b
+  set X `ls -t conftest.file.a conftest.file.b`
+  if test "$[2]" = conftest.file.b || test $am_try -eq $am_try_loops; then
+    break
+  fi
+  sleep $am_try_sleep
+done
+rm -f conftest.file.a conftest.file.b
+am_cv_filesystem_timestamp_resolution=$am_try
+AS_IF([$am_cv_sleep_fractional_seconds], [dnl
+  AS_VAR_ARITH([am_cv_filesystem_timestamp_resolution], [$am_try / 10])
+  AS_VAR_ARITH([am_fraction], [$am_try % 10])
+  AS_VAR_APPEND([am_cv_filesystem_timestamp_resolution], [.$am_fraction])
+])
+])])
+
 # AM_SANITY_CHECK
 # ---------------
 AC_DEFUN([AM_SANITY_CHECK],
-[AC_MSG_CHECKING([whether build environment is sane])
+[AC_REQUIRE([_AM_FILESYSTEM_TIMESTAMP_RESOLUTION])
+rm -f conftest.file
+AC_CACHE_CHECK([whether build environment is sane], am_cv_build_env_is_sane, [dnl
 # Reject unsafe characters in $srcdir or the absolute working directory
 # name.  Accept space and tab only in the latter.
 am_lf='
@@ -876,24 +939,23 @@ if (
        break
      fi
      # Just in case.
-     sleep 1
+     sleep $am_cv_filesystem_timestamp_resolution
      am_has_slept=yes
    done
    test "$[2]" = conftest.file
    )
 then
-   # Ok.
-   :
+  am_cv_build_env_is_sane=yes
 else
    AC_MSG_ERROR([newly created file is older than distributed files!
 Check your system clock])
 fi
-AC_MSG_RESULT([yes])
+])
 # If we didn't sleep, we still need to ensure time stamps of config.status and
 # generated files are strictly newer.
 am_sleep_pid=
-if grep 'slept: no' conftest.file >/dev/null 2>&1; then
-  ( sleep 1 ) &
+if ! test -e conftest.file || grep 'slept: no' conftest.file >/dev/null 2>&1; then
+  ( sleep $am_cv_filesystem_timestamp_resolution ) &
   am_sleep_pid=$!
 fi
 AC_CONFIG_COMMANDS_PRE(
@@ -906,18 +968,18 @@ AC_CONFIG_COMMANDS_PRE(
 rm -f conftest.file
 ])
 
-# Copyright (C) 2009-2021 Free Software Foundation, Inc.
+# Copyright (C) 2009-2023 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# AM_SILENT_RULES([DEFAULT])
-# --------------------------
-# Enable less verbose build rules; with the default set to DEFAULT
-# ("yes" being less verbose, "no" or empty being verbose).
-AC_DEFUN([AM_SILENT_RULES],
-[AC_ARG_ENABLE([silent-rules], [dnl
+# _AM_SILENT_RULES
+# ----------------
+# Enable less verbose build rules support.
+AC_DEFUN([_AM_SILENT_RULES],
+[AM_DEFAULT_VERBOSITY=1
+AC_ARG_ENABLE([silent-rules], [dnl
 AS_HELP_STRING(
   [--enable-silent-rules],
   [less verbose build output (undo: "make V=1")])
@@ -925,11 +987,6 @@ AS_HELP_STRING(
   [--disable-silent-rules],
   [verbose build output (undo: "make V=0")])dnl
 ])
-case $enable_silent_rules in @%:@ (((
-  yes) AM_DEFAULT_VERBOSITY=0;;
-   no) AM_DEFAULT_VERBOSITY=1;;
-    *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
-esac
 dnl
 dnl A few 'make' implementations (e.g., NonStop OS and NextStep)
 dnl do not support nested variable expansions.
@@ -948,14 +1005,6 @@ am__doit:
 else
   am_cv_make_support_nested_variables=no
 fi])
-if test $am_cv_make_support_nested_variables = yes; then
-  dnl Using '$V' instead of '$(V)' breaks IRIX make.
-  AM_V='$(V)'
-  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
-else
-  AM_V=$AM_DEFAULT_VERBOSITY
-  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
-fi
 AC_SUBST([AM_V])dnl
 AM_SUBST_NOTMAKE([AM_V])dnl
 AC_SUBST([AM_DEFAULT_V])dnl
@@ -964,9 +1013,33 @@ AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
 AM_BACKSLASH='\'
 AC_SUBST([AM_BACKSLASH])dnl
 _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
+dnl Delay evaluation of AM_DEFAULT_VERBOSITY to the end to allow multiple calls
+dnl to AM_SILENT_RULES to change the default value.
+AC_CONFIG_COMMANDS_PRE([dnl
+case $enable_silent_rules in @%:@ (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+esac
+if test $am_cv_make_support_nested_variables = yes; then
+  dnl Using '$V' instead of '$(V)' breaks IRIX make.
+  AM_V='$(V)'
+  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+  AM_V=$AM_DEFAULT_VERBOSITY
+  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+])dnl
 ])
 
-# Copyright (C) 2001-2021 Free Software Foundation, Inc.
+# AM_SILENT_RULES([DEFAULT])
+# --------------------------
+# Set the default verbosity level to DEFAULT ("yes" being less verbose, "no" or
+# empty being verbose).
+AC_DEFUN([AM_SILENT_RULES],
+[AC_REQUIRE([_AM_SILENT_RULES])
+AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1])])
+
+# Copyright (C) 2001-2023 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -994,7 +1067,7 @@ fi
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
-# Copyright (C) 2006-2021 Free Software Foundation, Inc.
+# Copyright (C) 2006-2023 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1013,7 +1086,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
 
 # Check how to create a tarball.                            -*- Autoconf -*-
 
-# Copyright (C) 2004-2021 Free Software Foundation, Inc.
+# Copyright (C) 2004-2023 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1059,15 +1132,19 @@ m4_if([$1], [v7],
       am_uid=`id -u || echo unknown`
       am_gid=`id -g || echo unknown`
       AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
-      if test $am_uid -le $am_max_uid; then
-         AC_MSG_RESULT([yes])
+      if test x$am_uid = xunknown; then
+        AC_MSG_WARN([ancient id detected; assuming current UID is ok, but dist-ustar might not work])
+      elif test $am_uid -le $am_max_uid; then
+        AC_MSG_RESULT([yes])
       else
-         AC_MSG_RESULT([no])
-         _am_tools=none
+        AC_MSG_RESULT([no])
+        _am_tools=none
       fi
       AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
-      if test $am_gid -le $am_max_gid; then
-         AC_MSG_RESULT([yes])
+      if test x$gm_gid = xunknown; then
+        AC_MSG_WARN([ancient id detected; assuming current GID is ok, but dist-ustar might not work])
+      elif test $am_gid -le $am_max_gid; then
+        AC_MSG_RESULT([yes])
       else
         AC_MSG_RESULT([no])
         _am_tools=none
@@ -1144,15 +1221,37 @@ AC_SUBST([am__tar])
 AC_SUBST([am__untar])
 ]) # _AM_PROG_TAR
 
+# Copyright (C) 2022-2023 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_PROG_XARGS_N
+# ----------------
+# Check whether 'xargs -n' works.  It should work everywhere, so the fallback
+# is not optimized at all as we never expect to use it.
+AC_DEFUN([_AM_PROG_XARGS_N],
+[AC_CACHE_CHECK([xargs -n works], am_cv_xargs_n_works, [dnl
+AS_IF([test "`echo 1 2 3 | xargs -n2 echo`" = "1 2
+3"], [am_cv_xargs_n_works=yes], [am_cv_xargs_n_works=no])])
+AS_IF([test "$am_cv_xargs_n_works" = yes], [am__xargs_n='xargs -n'], [dnl
+  am__xargs_n='am__xargs_n () { shift; sed "s/ /\\n/g" | while read am__xargs_n_arg; do "$@" "$am__xargs_n_arg"; done; }'
+])dnl
+AC_SUBST(am__xargs_n)
+])
+
 m4_include([m4/00gnulib.m4])
 m4_include([m4/__inline.m4])
 m4_include([m4/absolute-header.m4])
 m4_include([m4/alloca.m4])
 m4_include([m4/arpa_inet_h.m4])
 m4_include([m4/asm-underscore.m4])
+m4_include([m4/assert_h.m4])
 m4_include([m4/atoll.m4])
 m4_include([m4/btowc.m4])
 m4_include([m4/builtin-expect.m4])
+m4_include([m4/c-bool.m4])
 m4_include([m4/c-stack.m4])
 m4_include([m4/calloc.m4])
 m4_include([m4/clock_time.m4])
@@ -1166,13 +1265,16 @@ m4_include([m4/eealloc.m4])
 m4_include([m4/environ.m4])
 m4_include([m4/errno_h.m4])
 m4_include([m4/error.m4])
+m4_include([m4/error_h.m4])
 m4_include([m4/exponentd.m4])
 m4_include([m4/extensions.m4])
 m4_include([m4/extern-inline.m4])
+m4_include([m4/fclose.m4])
 m4_include([m4/fcntl-o.m4])
 m4_include([m4/fcntl.m4])
 m4_include([m4/fcntl_h.m4])
 m4_include([m4/fdopen.m4])
+m4_include([m4/fflush.m4])
 m4_include([m4/filenamecat.m4])
 m4_include([m4/flexmember.m4])
 m4_include([m4/float_h.m4])
@@ -1203,6 +1305,7 @@ m4_include([m4/iconv_open.m4])
 m4_include([m4/include_next.m4])
 m4_include([m4/inet_pton.m4])
 m4_include([m4/inline.m4])
+m4_include([m4/intl-thread-locale.m4])
 m4_include([m4/intlmacosx.m4])
 m4_include([m4/intmax_t.m4])
 m4_include([m4/inttostr.m4])
@@ -1259,16 +1362,19 @@ m4_include([m4/nl_langinfo.m4])
 m4_include([m4/nls.m4])
 m4_include([m4/nocrash.m4])
 m4_include([m4/nstrftime.m4])
+m4_include([m4/nullptr.m4])
 m4_include([m4/off_t.m4])
 m4_include([m4/open-cloexec.m4])
 m4_include([m4/open-slash.m4])
 m4_include([m4/open.m4])
 m4_include([m4/pathmax.m4])
+m4_include([m4/perl.m4])
 m4_include([m4/perror.m4])
 m4_include([m4/pipe.m4])
 m4_include([m4/po.m4])
 m4_include([m4/printf.m4])
 m4_include([m4/progtest.m4])
+m4_include([m4/pselect.m4])
 m4_include([m4/pthread-thread.m4])
 m4_include([m4/pthread_h.m4])
 m4_include([m4/pthread_rwlock_rdlock.m4])
@@ -1286,10 +1392,10 @@ m4_include([m4/sched_h.m4])
 m4_include([m4/select.m4])
 m4_include([m4/setenv.m4])
 m4_include([m4/setlocale_null.m4])
-m4_include([m4/sigaction.m4])
 m4_include([m4/sigaltstack.m4])
 m4_include([m4/signal_h.m4])
 m4_include([m4/signalblocking.m4])
+m4_include([m4/sigsegv.m4])
 m4_include([m4/size_max.m4])
 m4_include([m4/sleep.m4])
 m4_include([m4/snprintf.m4])
@@ -1303,12 +1409,12 @@ m4_include([m4/stat-time.m4])
 m4_include([m4/stat.m4])
 m4_include([m4/stdalign.m4])
 m4_include([m4/stdarg.m4])
-m4_include([m4/stdbool.m4])
 m4_include([m4/stddef_h.m4])
 m4_include([m4/stdint.m4])
 m4_include([m4/stdint_h.m4])
 m4_include([m4/stdio_h.m4])
 m4_include([m4/stdlib_h.m4])
+m4_include([m4/stpcpy.m4])
 m4_include([m4/strcase.m4])
 m4_include([m4/strerror.m4])
 m4_include([m4/strerror_r.m4])
@@ -1331,6 +1437,7 @@ m4_include([m4/sys_wait_h.m4])
 m4_include([m4/tempname.m4])
 m4_include([m4/thread.m4])
 m4_include([m4/threadlib.m4])
+m4_include([m4/time.m4])
 m4_include([m4/time_h.m4])
 m4_include([m4/time_r.m4])
 m4_include([m4/time_rz.m4])
@@ -1341,7 +1448,6 @@ m4_include([m4/tzset.m4])
 m4_include([m4/unistd_h.m4])
 m4_include([m4/unlocked-io.m4])
 m4_include([m4/vasnprintf.m4])
-m4_include([m4/vasprintf.m4])
 m4_include([m4/version-etc.m4])
 m4_include([m4/visibility.m4])
 m4_include([m4/warn-on-use.m4])
@@ -1359,6 +1465,4 @@ m4_include([m4/wmempcpy.m4])
 m4_include([m4/xalloc.m4])
 m4_include([m4/xsize.m4])
 m4_include([m4/xstrtol.m4])
-m4_include([m4/xvasprintf.m4])
-m4_include([m4/year2038.m4])
 m4_include([m4/zzgnulib.m4])
index 7523f65..c6c4901 100755 (executable)
--- a/bootstrap
+++ b/bootstrap
@@ -1,34 +1,67 @@
 #! /bin/sh
-# Print a version string.
-scriptversion=2020-11-18.17; # UTC
+# DO NOT EDIT! GENERATED AUTOMATICALLY!
 
 # Bootstrap this package from checked-out sources.
 
-# Copyright (C) 2003-2021 Free Software Foundation, Inc.
+scriptversion=2022-12-27.07; # UTC
 
+# Copyright (C) 2003-2023 Free Software Foundation, Inc.
+#
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
 # 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/>.
+
+# Originally written by Paul Eggert.  The canonical version of this
+# script is maintained as top/bootstrap in gnulib. However, to be
+# useful to your package, you should place a copy of it under version
+# control in the top-level directory of your package.  The intent is
+# that all customization can be done with a bootstrap.conf file also
+# maintained in your version control; gnulib comes with a template
+# build-aux/bootstrap.conf to get you started.
 
+# Please report bugs or propose patches to bug-gnulib@gnu.org.
+
+me="$0"
+medir=`dirname "$me"`
+
+# Read the function library and the configuration.
+
+# A library of shell functions for autopull.sh, autogen.sh, and bootstrap.
+
+scriptlibversion=2023-01-06.19; # UTC
+
+# Copyright (C) 2003-2023 Free Software Foundation, Inc.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# 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/>.
 
 # Originally written by Paul Eggert.  The canonical version of this
-# script is maintained as build-aux/bootstrap in gnulib, however, to
-# be useful to your project, you should place a copy of it under
-# version control in the top-level directory of your project.  The
+# script is maintained as top/bootstrap-funclib.sh in gnulib.  However,
+# to be useful to your package, you should place a copy of it under
+# version control in the top-level directory of your package.  The
 # intent is that all customization can be done with a bootstrap.conf
 # file also maintained in your version control; gnulib comes with a
 # template build-aux/bootstrap.conf to get you started.
 
-# Please report bugs or propose patches to bug-gnulib@gnu.org.
-
 nl='
 '
 
@@ -36,84 +69,17 @@ nl='
 LC_ALL=C
 export LC_ALL
 
-# Ensure that CDPATH is not set.  Otherwise, the output from cd
-# would cause trouble in at least one use below.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-local_gl_dir=gl
-
 # Honor $PERL, but work even if there is none.
 PERL="${PERL-perl}"
 
-me=$0
-
-default_gnulib_url=git://git.sv.gnu.org/gnulib
-
-usage() {
-  cat <<EOF
-Usage: $me [OPTION]...
-Bootstrap this package from the checked-out sources.
-
-Options:
- --gnulib-srcdir=DIRNAME  specify the local directory where gnulib
-                          sources reside.  Use this if you already
-                          have gnulib sources on your machine, and
-                          do not want to waste your bandwidth downloading
-                          them again.  Defaults to \$GNULIB_SRCDIR
- --bootstrap-sync         if this bootstrap script is not identical to
-                          the version in the local gnulib sources,
-                          update this script, and then restart it with
-                          /bin/sh or the shell \$CONFIG_SHELL
- --no-bootstrap-sync      do not check whether bootstrap is out of sync
- --copy                   copy files instead of creating symbolic links
- --force                  attempt to bootstrap even if the sources seem
-                          not to have been checked out
- --no-git                 do not use git to update gnulib.  Requires that
-                          --gnulib-srcdir point to a correct gnulib snapshot
- --skip-po                do not download po files
-EOF
-  bootstrap_print_option_usage_hook
-  cat <<EOF
-If the file $me.conf exists in the same directory as this script, its
-contents are read as shell variables to configure the bootstrap.
-
-For build prerequisites, environment variables like \$AUTOCONF and \$AMTAR
-are honored.
-
-Gnulib sources can be fetched in various ways:
-
- * If this package is in a git repository with a 'gnulib' submodule
-   configured, then that submodule is initialized and updated and sources
-   are fetched from there.  If \$GNULIB_SRCDIR is set (directly or via
-   --gnulib-srcdir) and is a git repository, then it is used as a reference.
+default_gnulib_url=https://git.savannah.gnu.org/git/gnulib.git
 
- * Otherwise, if \$GNULIB_SRCDIR is set (directly or via --gnulib-srcdir),
-   then sources are fetched from that local directory.  If it is a git
-   repository and \$GNULIB_REVISION is set, then that revision is checked
-   out.
-
- * Otherwise, if this package is in a git repository with a 'gnulib'
-   submodule configured, then that submodule is initialized and updated and
-   sources are fetched from there.
-
- * Otherwise, if the 'gnulib' directory does not exist, Gnulib sources are
-   cloned into that directory using git from \$GNULIB_URL, defaulting to
-   $default_gnulib_url.
-   If \$GNULIB_REVISION is set, then that revision is checked out.
-
- * Otherwise, the existing Gnulib sources in the 'gnulib' directory are
-   used.  If it is a git repository and \$GNULIB_REVISION is set, then that
-   revision is checked out.
-
-If you maintain a package and want to pin a particular revision of the
-Gnulib sources that has been tested with your package, then there are two
-possible approaches: either configure a 'gnulib' submodule with the
-appropriate revision, or set \$GNULIB_REVISION (and if necessary
-\$GNULIB_URL) in $me.conf.
-
-Running without arguments will suffice in most cases.
-EOF
-}
+# Copyright year, for the --version output.
+copyright_year=`echo "$scriptlibversion" | sed -e 's/[^0-9].*//'`
+copyright="Copyright (C) ${copyright_year} 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."
 
 # warnf_ FORMAT-STRING ARG1...
 warnf_ ()
@@ -142,9 +108,13 @@ warn_ ()
 # die WORD1...
 die() { warn_ "$@"; exit 1; }
 
-# Configuration.
+# ------------------------------ Configuration. ------------------------------
+
+# Directory that contains package-specific gnulib modules and/or overrides.
+local_gl_dir=gl
 
 # Name of the Makefile.am
+# XXX Not used.
 gnulib_mk=gnulib.mk
 
 # List of gnulib modules needed.
@@ -153,21 +123,20 @@ gnulib_modules=
 # Any gnulib files needed that are not in modules.
 gnulib_files=
 
-: ${AUTOPOINT=autopoint}
-: ${AUTORECONF=autoreconf}
-
 # A function to be called for each unrecognized option.  Returns 0 if
 # the option in $1 has been processed by the function.  Returns 1 if
 # the option has not been processed by the function.  Override it via
 # your own definition in bootstrap.conf
-
 bootstrap_option_hook() { return 1; }
 
 # A function to be called in order to print the --help information
 # corresponding to user-defined command-line options.
-
 bootstrap_print_option_usage_hook() { :; }
 
+# A function to be called at the end of autopull.sh.
+# Override it via your own definition in bootstrap.conf.
+bootstrap_post_pull_hook() { :; }
+
 # A function to be called right after gnulib-tool is run.
 # Override it via your own definition in bootstrap.conf.
 bootstrap_post_import_hook() { :; }
@@ -184,7 +153,7 @@ po_download_command_format=\
  https://translationproject.org/latest/%s/"
 
 # Prefer a non-empty tarname (4th argument of AC_INIT if given), else
-# fall back to the package name (1st argument with munging)
+# fall back to the package name (1st argument with munging).
 extract_package_name='
   /^AC_INIT(\[*/{
      s///
@@ -201,8 +170,11 @@ extract_package_name='
      p
   }
 '
-package=$(sed -n "$extract_package_name" configure.ac) \
-  || die 'cannot find package name in configure.ac'
+package=$(${AUTOCONF:-autoconf} --trace AC_INIT:\$4 configure.ac 2>/dev/null)
+if test -z "$package"; then
+  package=$(sed -n "$extract_package_name" configure.ac) \
+      || die 'cannot find package name in configure.ac'
+fi
 gnulib_name=lib$package
 
 build_aux=build-aux
@@ -238,15 +210,13 @@ COPYRIGHT_HOLDER='Free Software Foundation, Inc.'
 MSGID_BUGS_ADDRESS=bug-$package@gnu.org
 
 # Files we don't want to import.
+# XXX Not used.
 excluded_files=
 
 # File that should exist in the top directory of a checked out hierarchy,
 # but not in a distribution tarball.
 checkout_only_file=README-hacking
 
-# Whether to use copies instead of symlinks.
-copy=false
-
 # Set this to '.cvsignore .gitignore' in bootstrap.conf if you want
 # those files to be generated in directories like lib/, m4/, and po/.
 # Or set it to 'auto' to make this script select which to use based
@@ -257,8 +227,13 @@ vc_ignore=auto
 # default.
 bootstrap_sync=false
 
-# Use git to update gnulib sources
-use_git=true
+# Override the default configuration, if necessary.
+# Make sure that bootstrap.conf is sourced from the current directory
+# if we were invoked as "sh bootstrap".
+conffile=`dirname "$me"`/bootstrap.conf
+test -r "$conffile" && . "$conffile"
+
+# ------------------------- Build-time prerequisites -------------------------
 
 check_exists() {
   if test "$1" = "--verbose"; then
@@ -275,151 +250,6 @@ check_exists() {
   test $? -lt 126
 }
 
-# find_tool ENVVAR NAMES...
-# -------------------------
-# Search for a required program.  Use the value of ENVVAR, if set,
-# otherwise find the first of the NAMES that can be run.
-# If found, set ENVVAR to the program name, die otherwise.
-#
-# FIXME: code duplication, see also gnu-web-doc-update.
-find_tool ()
-{
-  find_tool_envvar=$1
-  shift
-  find_tool_names=$@
-  eval "find_tool_res=\$$find_tool_envvar"
-  if test x"$find_tool_res" = x; then
-    for i; do
-      if check_exists $i; then
-        find_tool_res=$i
-        break
-      fi
-    done
-  fi
-  if test x"$find_tool_res" = x; then
-    warn_ "one of these is required: $find_tool_names;"
-    die   "alternatively set $find_tool_envvar to a compatible tool"
-  fi
-  eval "$find_tool_envvar=\$find_tool_res"
-  eval "export $find_tool_envvar"
-}
-
-# Override the default configuration, if necessary.
-# Make sure that bootstrap.conf is sourced from the current directory
-# if we were invoked as "sh bootstrap".
-case "$0" in
-  */*) test -r "$0.conf" && . "$0.conf" ;;
-  *) test -r "$0.conf" && . ./"$0.conf" ;;
-esac
-
-if test "$vc_ignore" = auto; then
-  vc_ignore=
-  test -d .git && vc_ignore=.gitignore
-  test -d CVS && vc_ignore="$vc_ignore .cvsignore"
-fi
-
-if test x"$gnulib_modules$gnulib_files$gnulib_extra_files" = x; then
-  use_gnulib=false
-else
-  use_gnulib=true
-fi
-
-# Translate configuration into internal form.
-
-# Parse options.
-
-for option
-do
-  case $option in
-  --help)
-    usage
-    exit;;
-  --gnulib-srcdir=*)
-    GNULIB_SRCDIR=${option#--gnulib-srcdir=};;
-  --skip-po)
-    SKIP_PO=t;;
-  --force)
-    checkout_only_file=;;
-  --copy)
-    copy=true;;
-  --bootstrap-sync)
-    bootstrap_sync=true;;
-  --no-bootstrap-sync)
-    bootstrap_sync=false;;
-  --no-git)
-    use_git=false;;
-  *)
-    bootstrap_option_hook $option || die "$option: unknown option";;
-  esac
-done
-
-$use_git || test -d "$GNULIB_SRCDIR" \
-  || die "Error: --no-git requires --gnulib-srcdir"
-
-if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then
-  die "Bootstrapping from a non-checked-out distribution is risky."
-fi
-
-# Strip blank and comment lines to leave significant entries.
-gitignore_entries() {
-  sed '/^#/d; /^$/d' "$@"
-}
-
-# If $STR is not already on a line by itself in $FILE, insert it at the start.
-# Entries are inserted at the start of the ignore list to ensure existing
-# entries starting with ! are not overridden.  Such entries support
-# whitelisting exceptions after a more generic blacklist pattern.
-insert_if_absent() {
-  file=$1
-  str=$2
-  test -f $file || touch $file
-  test -r $file || die "Error: failed to read ignore file: $file"
-  duplicate_entries=$(gitignore_entries $file | sort | uniq -d)
-  if [ "$duplicate_entries" ] ; then
-    die "Error: Duplicate entries in $file: " $duplicate_entries
-  fi
-  linesold=$(gitignore_entries $file | wc -l)
-  linesnew=$( { echo "$str"; cat $file; } | gitignore_entries | sort -u | wc -l)
-  if [ $linesold != $linesnew ] ; then
-    { echo "$str" | cat - $file > $file.bak && mv $file.bak $file; } \
-      || die "insert_if_absent $file $str: failed"
-  fi
-}
-
-# Adjust $PATTERN for $VC_IGNORE_FILE and insert it with
-# insert_if_absent.
-insert_vc_ignore() {
-  vc_ignore_file="$1"
-  pattern="$2"
-  case $vc_ignore_file in
-  *.gitignore)
-    # A .gitignore entry that does not start with '/' applies
-    # recursively to subdirectories, so prepend '/' to every
-    # .gitignore entry.
-    pattern=$(echo "$pattern" | sed s,^,/,);;
-  esac
-  insert_if_absent "$vc_ignore_file" "$pattern"
-}
-
-# Die if there is no AC_CONFIG_AUX_DIR($build_aux) line in configure.ac.
-found_aux_dir=no
-grep '^[        ]*AC_CONFIG_AUX_DIR(\['"$build_aux"'\])' configure.ac \
-    >/dev/null && found_aux_dir=yes
-grep '^[        ]*AC_CONFIG_AUX_DIR('"$build_aux"')' configure.ac \
-    >/dev/null && found_aux_dir=yes
-test $found_aux_dir = yes \
-  || die "configure.ac lacks 'AC_CONFIG_AUX_DIR([$build_aux])'; add it"
-
-# If $build_aux doesn't exist, create it now, otherwise some bits
-# below will malfunction.  If creating it, also mark it as ignored.
-if test ! -d $build_aux; then
-  mkdir $build_aux
-  for dot_ig in x $vc_ignore; do
-    test $dot_ig = x && continue
-    insert_vc_ignore $dot_ig $build_aux
-  done
-fi
-
 # Note this deviates from the version comparison in automake
 # in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a
 # but this should suffice as we won't be specifying old
@@ -447,7 +277,7 @@ sort_ver() { # sort -V is not generally available
       elif [ "$p2" -gt "$p1" ] 2>/dev/null; then # numeric comparison
         echo "$1 $2"
       else # numeric, then lexicographic comparison
-        lp=$(printf "$p1\n$p2\n" | LANG=C sort -n | tail -n1)
+        lp=$(printf "%s\n%s\n" "$p1" "$p2" | LANG=C sort -n | tail -n1)
         if [ "$lp" = "$p2" ]; then
           echo "$1 $2"
         else
@@ -494,9 +324,9 @@ check_versions() {
     if test "$app" = libtool; then
       app=libtoolize
     fi
-    # Exempt git if --no-git is in effect.
+    # Exempt git if git is not needed.
     if test "$app" = git; then
-      $use_git || continue
+      $check_git || continue
     fi
     # Honor $APP variables ($TAR, $AUTOCONF, etc.)
     appvar=$(echo $app | LC_ALL=C tr '[a-z]-' '[A-Z]_')
@@ -569,83 +399,89 @@ print_versions() {
   # can't depend on column -t
 }
 
-# Find sha1sum, named gsha1sum on MacPorts, shasum on Mac OS X 10.6.
-# Also find the compatible sha1 utility on the BSDs
-if test x"$SKIP_PO" = x; then
-  find_tool SHA1SUM sha1sum gsha1sum shasum sha1
-fi
-
-use_libtool=0
-# We'd like to use grep -E, to see if any of LT_INIT,
-# AC_PROG_LIBTOOL, AM_PROG_LIBTOOL is used in configure.ac,
-# but that's not portable enough (e.g., for Solaris).
-grep '^[        ]*A[CM]_PROG_LIBTOOL' configure.ac >/dev/null \
-  && use_libtool=1
-grep '^[        ]*LT_INIT' configure.ac >/dev/null \
-  && use_libtool=1
-if test $use_libtool = 1; then
-  find_tool LIBTOOLIZE glibtoolize libtoolize
-fi
+# check_build_prerequisites check_git
+check_build_prerequisites()
+{
+  check_git="$1"
 
-# gnulib-tool requires at least automake and autoconf.
-# If either is not listed, add it (with minimum version) as a prerequisite.
-case $buildreq in
-  *automake*) ;;
-  *) buildreq="automake 1.9
-$buildreq" ;;
-esac
-case $buildreq in
-  *autoconf*) ;;
-  *) buildreq="autoconf 2.59
+  # gnulib-tool requires at least automake and autoconf.
+  # If either is not listed, add it (with minimum version) as a prerequisite.
+  case $buildreq in
+    *automake*) ;;
+    *) buildreq="automake 1.9
 $buildreq" ;;
-esac
-
-# When we can deduce that gnulib-tool will require patch,
-# and when patch is not already listed as a prerequisite, add it, too.
-if test -d "$local_gl_dir" \
-    && ! find "$local_gl_dir" -name '*.diff' -exec false {} +; then
+  esac
   case $buildreq in
-    *patch*) ;;
-    *) buildreq="patch -
+    *autoconf*) ;;
+    *) buildreq="autoconf 2.59
 $buildreq" ;;
   esac
-fi
 
-if ! printf "$buildreq" | check_versions; then
-  echo >&2
-  if test -f README-prereq; then
-    die "See README-prereq for how to get the prerequisite programs"
-  else
-    die "Please install the prerequisite programs"
+  # When we can deduce that gnulib-tool will require patch,
+  # and when patch is not already listed as a prerequisite, add it, too.
+  if test -d "$local_gl_dir" \
+     && ! find "$local_gl_dir" -name '*.diff' -exec false {} +; then
+    case $buildreq in
+      *patch*) ;;
+      *) buildreq="patch -
+$buildreq" ;;
+    esac
   fi
-fi
 
-# Warn the user if autom4te appears to be broken; this causes known
-# issues with at least gettext 0.18.3.
-probe=$(echo 'm4_quote([hi])' | autom4te -l M4sugar -t 'm4_quote:$%' -)
-if test "x$probe" != xhi; then
-  warn_ "WARNING: your autom4te wrapper eats stdin;"
-  warn_ "if bootstrap fails, consider upgrading your autotools"
-fi
+  if ! printf '%s' "$buildreq" | check_versions; then
+    echo >&2
+    if test -f README-prereq; then
+      die "See README-prereq for how to get the prerequisite programs"
+    else
+      die "Please install the prerequisite programs"
+    fi
+  fi
 
-echo "$0: Bootstrapping from checked-out $package sources..."
+  # Warn the user if autom4te appears to be broken; this causes known
+  # issues with at least gettext 0.18.3.
+  probe=$(echo 'm4_quote([hi])' | autom4te -l M4sugar -t 'm4_quote:$%' -)
+  if test "x$probe" != xhi; then
+    warn_ "WARNING: your autom4te wrapper eats stdin;"
+    warn_ "if bootstrap fails, consider upgrading your autotools"
+  fi
+}
 
-# See if we can use gnulib's git-merge-changelog merge driver.
-if $use_git && test -d .git && check_exists git; then
-  if git config merge.merge-changelog.driver >/dev/null ; then
-    :
-  elif check_exists git-merge-changelog; then
-    echo "$0: initializing git-merge-changelog driver"
-    git config merge.merge-changelog.name 'GNU-style ChangeLog merge driver'
-    git config merge.merge-changelog.driver 'git-merge-changelog %O %A %B'
-  else
-    echo "$0: consider installing git-merge-changelog from gnulib"
+# find_tool ENVVAR NAMES...
+# -------------------------
+# Search for a required program.  Use the value of ENVVAR, if set,
+# otherwise find the first of the NAMES that can be run.
+# If found, set ENVVAR to the program name, die otherwise.
+#
+# FIXME: code duplication, see also gnu-web-doc-update.
+find_tool ()
+{
+  find_tool_envvar=$1
+  shift
+  find_tool_names=$@
+  eval "find_tool_res=\$$find_tool_envvar"
+  if test x"$find_tool_res" = x; then
+    for i; do
+      if check_exists $i; then
+        find_tool_res=$i
+        break
+      fi
+    done
   fi
-fi
+  if test x"$find_tool_res" = x; then
+    warn_ "one of these is required: $find_tool_names;"
+    die   "alternatively set $find_tool_envvar to a compatible tool"
+  fi
+  eval "$find_tool_envvar=\$find_tool_res"
+  eval "export $find_tool_envvar"
+}
 
+# --------------------- Preparing GNULIB_SRCDIR for use. ---------------------
+# This is part of autopull.sh, but bootstrap needs it too, for self-upgrading.
 
 cleanup_gnulib() {
   status=$?
+  # XXX It's a bad idea to erase the submodule directory if it contains local
+  #     modifications.
   rm -fr "$gnulib_path"
   exit $status
 }
@@ -654,47 +490,28 @@ git_modules_config () {
   test -f .gitmodules && git config --file .gitmodules "$@"
 }
 
-if $use_gnulib; then
-  if $use_git; then
+prepare_GNULIB_SRCDIR ()
+{
+  if test -n "$GNULIB_SRCDIR"; then
+    # Use GNULIB_SRCDIR directly.
+    # We already checked that $GNULIB_SRCDIR references a directory.
+    # Verify that it contains a gnulib checkout.
+    test -f "$GNULIB_SRCDIR/gnulib-tool" \
+      || die "Error: --gnulib-srcdir or \$GNULIB_SRCDIR is specified, but does not contain gnulib-tool"
+  elif $use_git; then
     gnulib_path=$(git_modules_config submodule.gnulib.path)
     test -z "$gnulib_path" && gnulib_path=gnulib
-  fi
-
-  # Get gnulib files.  Populate $GNULIB_SRCDIR, possibly updating a
-  # submodule, for use in the rest of the script.
-
-  case ${GNULIB_SRCDIR--} in
-  -)
-    # Note that $use_git is necessarily true in this case.
-    if git_modules_config submodule.gnulib.url >/dev/null; then
-      echo "$0: getting gnulib files..."
-      git submodule init -- "$gnulib_path" || exit $?
-      git submodule update -- "$gnulib_path" || exit $?
 
-    elif [ ! -d "$gnulib_path" ]; then
-      echo "$0: getting gnulib files..."
-
-      trap cleanup_gnulib 1 2 13 15
-
-      shallow=
-      if test -z "$GNULIB_REVISION"; then
-        git clone -h 2>&1 | grep -- --depth > /dev/null && shallow='--depth 2'
-      fi
-      git clone $shallow ${GNULIB_URL:-$default_gnulib_url} "$gnulib_path" \
-        || cleanup_gnulib
+    # Get gnulib files.  Populate $gnulib_path, possibly updating a
+    # submodule, for use in the rest of the script.
 
-      trap - 1 2 13 15
-    fi
-    GNULIB_SRCDIR=$gnulib_path
-    ;;
-  *)
-    # Use GNULIB_SRCDIR directly or as a reference.
-    if $use_git && test -d "$GNULIB_SRCDIR"/.git && \
-          git_modules_config submodule.gnulib.url >/dev/null; then
+    if test -n "$GNULIB_REFDIR" && test -d "$GNULIB_REFDIR"/.git \
+       && git_modules_config submodule.gnulib.url >/dev/null; then
+      # Use GNULIB_REFDIR as a reference.
       echo "$0: getting gnulib files..."
       if git submodule -h|grep -- --reference > /dev/null; then
         # Prefer the one-liner available in git 1.6.4 or newer.
-        git submodule update --init --reference "$GNULIB_SRCDIR" \
+        git submodule update --init --reference "$GNULIB_REFDIR" \
           "$gnulib_path" || exit $?
       else
         # This fallback allows at least git 1.5.5.
@@ -704,18 +521,63 @@ if $use_gnulib; then
         else
           # Older git can't clone into an empty directory.
           rmdir "$gnulib_path" 2>/dev/null
-          git clone --reference "$GNULIB_SRCDIR" \
+          git clone --reference "$GNULIB_REFDIR" \
             "$(git_modules_config submodule.gnulib.url)" "$gnulib_path" \
             && git submodule init -- "$gnulib_path" \
             && git submodule update -- "$gnulib_path" \
             || exit $?
         fi
       fi
-      GNULIB_SRCDIR=$gnulib_path
+    else
+      # GNULIB_REFDIR is not set or not usable. Ignore it.
+      if git_modules_config submodule.gnulib.url >/dev/null; then
+        echo "$0: getting gnulib files..."
+        git submodule init -- "$gnulib_path" || exit $?
+        git submodule update -- "$gnulib_path" || exit $?
+
+      elif [ ! -d "$gnulib_path" ]; then
+        echo "$0: getting gnulib files..."
+
+        trap cleanup_gnulib HUP INT PIPE TERM
+
+        shallow=
+        if test -z "$GNULIB_REVISION"; then
+          if git clone -h 2>&1 | grep -- --depth > /dev/null; then
+            shallow='--depth 2'
+          fi
+          git clone $shallow ${GNULIB_URL:-$default_gnulib_url} "$gnulib_path" \
+            || cleanup_gnulib
+        else
+          if git fetch -h 2>&1 | grep -- --depth > /dev/null; then
+            shallow='--depth 2'
+          fi
+          mkdir -p "$gnulib_path"
+          # Only want a shallow checkout of $GNULIB_REVISION, but git does not
+          # support cloning by commit hash. So attempt a shallow fetch by commit
+          # hash to minimize the amount of data downloaded and changes needed to
+          # be processed, which can drastically reduce download and processing
+          # time for checkout. If the fetch by commit fails, a shallow fetch can
+          # not be performed because we do not know what the depth of the commit
+          # is without fetching all commits. So fallback to fetching all commits.
+          git -C "$gnulib_path" init
+          git -C "$gnulib_path" remote add origin \
+              ${GNULIB_URL:-$default_gnulib_url}
+          git -C "$gnulib_path" fetch $shallow origin "$GNULIB_REVISION" \
+            || git -C "$gnulib_path" fetch origin \
+            || cleanup_gnulib
+          git -C "$gnulib_path" reset --hard FETCH_HEAD
+        fi
+
+        trap - HUP INT PIPE TERM
+      fi
     fi
-    ;;
-  esac
+    GNULIB_SRCDIR=$gnulib_path
+    # Verify that the submodule contains a gnulib checkout.
+    test -f "$gnulib_path/gnulib-tool" \
+      || die "Error: $gnulib_path is supposed to contain a gnulib checkout, but does not contain gnulib-tool"
+  fi
 
+  # XXX Should this be done if $use_git is false?
   if test -d "$GNULIB_SRCDIR"/.git && test -n "$GNULIB_REVISION" \
      && ! git_modules_config submodule.gnulib.url >/dev/null; then
     (cd "$GNULIB_SRCDIR" && git checkout "$GNULIB_REVISION") || cleanup_gnulib
@@ -723,26 +585,242 @@ if $use_gnulib; then
 
   # $GNULIB_SRCDIR now points to the version of gnulib to use, and
   # we no longer need to use git or $gnulib_path below here.
+}
 
-  if $bootstrap_sync; then
-    cmp -s "$0" "$GNULIB_SRCDIR/build-aux/bootstrap" || {
-      echo "$0: updating bootstrap and restarting..."
-      case $(sh -c 'echo "$1"' -- a) in
-        a) ignored=--;;
-        *) ignored=ignored;;
-      esac
-      exec sh -c \
-        'cp "$1" "$2" && shift && exec "${CONFIG_SHELL-/bin/sh}" "$@"' \
-        $ignored "$GNULIB_SRCDIR/build-aux/bootstrap" \
-        "$0" "$@" --no-bootstrap-sync
+# -------- Upgrading bootstrap to the version found in GNULIB_SRCDIR. --------
+
+upgrade_bootstrap ()
+{
+  if test -f "$medir"/bootstrap-funclib.sh; then
+    update_lib=true
+    { cmp -s "$medir"/bootstrap "$GNULIB_SRCDIR/top/bootstrap" \
+      && cmp -s "$medir"/bootstrap-funclib.sh "$GNULIB_SRCDIR/top/bootstrap-funclib.sh" \
+      && cmp -s "$medir"/autopull.sh "$GNULIB_SRCDIR/top/autopull.sh" \
+      && cmp -s "$medir"/autogen.sh "$GNULIB_SRCDIR/top/autogen.sh"; \
     }
-  fi
+  else
+    update_lib=false
+    cmp -s "$medir"/bootstrap "$GNULIB_SRCDIR/build-aux/bootstrap"
+  fi || {
+    if $update_lib; then
+      echo "$0: updating bootstrap & companions and restarting..."
+    else
+      echo "$0: updating bootstrap and restarting..."
+    fi
+    case $(sh -c 'echo "$1"' -- a) in
+      a) ignored=--;;
+      *) ignored=ignored;;
+    esac
+    exec sh -c \
+      '{ if '$update_lib' && test -f "$1"; then cp "$1" "$3"; else cp "$2" "$3"; fi; } && { if '$update_lib' && test -f "$4"; then cp "$4" "$5"; else rm -f "$5"; fi; } && { if '$update_lib' && test -f "$6"; then cp "$6" "$7"; else rm -f "$7"; fi; } && { if '$update_lib' && test -f "$8"; then cp "$8" "$9"; else rm -f "$9"; fi; } && shift && shift && shift && shift && shift && shift && shift && shift && shift && exec "${CONFIG_SHELL-/bin/sh}" "$@"' \
+      $ignored \
+      "$GNULIB_SRCDIR/top/bootstrap" "$GNULIB_SRCDIR/build-aux/bootstrap" "$medir/bootstrap" \
+      "$GNULIB_SRCDIR/top/bootstrap-funclib.sh" "$medir/bootstrap-funclib.sh" \
+      "$GNULIB_SRCDIR/top/autopull.sh" "$medir/autopull.sh" \
+      "$GNULIB_SRCDIR/top/autogen.sh" "$medir/autogen.sh" \
+      "$0" "$@" --no-bootstrap-sync
+  }
+}
+
+# ----------------------------------------------------------------------------
 
-  gnulib_tool=$GNULIB_SRCDIR/gnulib-tool
-  <$gnulib_tool || exit $?
+if test x"$gnulib_modules$gnulib_files$gnulib_extra_files" = x; then
+  use_gnulib=false
+else
+  use_gnulib=true
 fi
 
-# Get translations.
+# -------- Fetch auxiliary files from the network.  --------------------------
+
+autopull_usage() {
+  cat <<EOF
+Usage: $me [OPTION]...
+Bootstrap this package from the checked-out sources.
+
+Optional environment variables:
+  GNULIB_SRCDIR            Specifies the local directory where gnulib
+                           sources reside.  Use this if you already
+                           have gnulib sources on your machine, and
+                           you want to use these sources.
+  GNULIB_REFDIR            Specifies the local directory where a gnulib
+                           repository (with a .git subdirectory) resides.
+                           Use this if you already have gnulib sources
+                           and history on your machine, and do not want
+                           to waste your bandwidth downloading them again.
+  GNULIB_URL               Cloneable URL of the gnulib repository.
+
+Options:
+  --bootstrap-sync         if this bootstrap script is not identical to
+                           the version in the local gnulib sources,
+                           update this script, and then restart it with
+                           /bin/sh or the shell \$CONFIG_SHELL
+  --no-bootstrap-sync      do not check whether bootstrap is out of sync
+  --force                  attempt to bootstrap even if the sources seem
+                           not to have been checked out
+  --no-git                 do not use git to update gnulib.  Requires that
+                           \$GNULIB_SRCDIR or the --gnulib-srcdir option
+                           points to a gnulib repository with the correct
+                           revision
+  --skip-po                do not download po files
+EOF
+  bootstrap_print_option_usage_hook
+  cat <<EOF
+If the file bootstrap.conf exists in the same directory as this script, its
+contents are read as shell variables to configure the bootstrap.
+
+For build prerequisites, environment variables like \$AUTOCONF and \$AMTAR
+are honored.
+
+Gnulib sources can be fetched in various ways:
+
+ * If the environment variable GNULIB_SRCDIR is set (either as an
+   environment variable or via the --gnulib-srcdir option), then sources
+   are fetched from that local directory.  If it is a git repository and
+   the configuration variable GNULIB_REVISION is set in bootstrap.conf,
+   then that revision is checked out.
+
+ * Otherwise, if this package is in a git repository with a 'gnulib'
+   submodule configured, then that submodule is initialized and updated
+   and sources are fetched from there.  If GNULIB_REFDIR is set (either
+   as an environment variable or via the --gnulib-refdir option) and is
+   a git repository, then it is used as a reference.
+
+ * Otherwise, if the 'gnulib' directory does not exist, Gnulib sources
+   are cloned into that directory using git from \$GNULIB_URL, defaulting
+   to $default_gnulib_url.
+   If the configuration variable GNULIB_REVISION is set in bootstrap.conf,
+   then that revision is checked out.
+
+ * Otherwise, the existing Gnulib sources in the 'gnulib' directory are
+   used.  If it is a git repository and the configuration variable
+   GNULIB_REVISION is set in bootstrap.conf, then that revision is
+   checked out.
+
+If you maintain a package and want to pin a particular revision of the
+Gnulib sources that has been tested with your package, then there are
+two possible approaches: either configure a 'gnulib' submodule with the
+appropriate revision, or set GNULIB_REVISION (and if necessary
+GNULIB_URL) in bootstrap.conf.
+
+Running without arguments will suffice in most cases.
+EOF
+}
+
+# Fetch auxiliary files that are omitted from the version control
+# repository of this package.
+autopull()
+{
+  # Ensure that CDPATH is not set.  Otherwise, the output from cd
+  # would cause trouble in at least one use below.
+  (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+  # Parse options.
+
+  # Use git to update gnulib sources
+  use_git=true
+
+  for option
+  do
+    case $option in
+    --help)
+      autopull_usage
+      return;;
+    --version)
+      set -e
+      echo "autopull.sh $scriptlibversion"
+      echo "$copyright"
+      return 0
+      ;;
+    --skip-po)
+      SKIP_PO=t;;
+    --force)
+      checkout_only_file=;;
+    --bootstrap-sync)
+      bootstrap_sync=true;;
+    --no-bootstrap-sync)
+      bootstrap_sync=false;;
+    --no-git)
+      use_git=false;;
+    *)
+      bootstrap_option_hook $option || die "$option: unknown option";;
+    esac
+  done
+
+  $use_git || test -n "$GNULIB_SRCDIR" \
+    || die "Error: --no-git requires \$GNULIB_SRCDIR environment variable or --gnulib-srcdir option"
+  test -z "$GNULIB_SRCDIR" || test -d "$GNULIB_SRCDIR" \
+    || die "Error: \$GNULIB_SRCDIR environment variable or --gnulib-srcdir option is specified, but does not denote a directory"
+
+  if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then
+    die "Running this script from a non-checked-out distribution is risky."
+  fi
+
+  check_build_prerequisites $use_git
+
+  if $use_gnulib || $bootstrap_sync; then
+    prepare_GNULIB_SRCDIR
+    if $bootstrap_sync; then
+      upgrade_bootstrap
+    fi
+  fi
+
+  # Find sha1sum, named gsha1sum on MacPorts, shasum on Mac OS X 10.6.
+  # Also find the compatible sha1 utility on the BSDs
+  if test x"$SKIP_PO" = x; then
+    find_tool SHA1SUM sha1sum gsha1sum shasum sha1
+  fi
+
+  # See if we can use gnulib's git-merge-changelog merge driver.
+  if $use_git && test -d .git && check_exists git; then
+    if git config merge.merge-changelog.driver >/dev/null ; then
+      :
+    elif check_exists git-merge-changelog; then
+      echo "$0: initializing git-merge-changelog driver"
+      git config merge.merge-changelog.name 'GNU-style ChangeLog merge driver'
+      git config merge.merge-changelog.driver 'git-merge-changelog %O %A %B'
+    else
+      echo "$0: consider installing git-merge-changelog from gnulib"
+    fi
+  fi
+
+  case $SKIP_PO in
+  '')
+    if test -d po; then
+      update_po_files po $package || return
+    fi
+
+    if test -d runtime-po; then
+      update_po_files runtime-po $package-runtime || return
+    fi;;
+  esac
+
+  # ---------------------------------------------------------------------------
+
+  bootstrap_post_pull_hook \
+    || die "bootstrap_post_pull_hook failed"
+
+  # Don't proceed if there are uninitialized submodules.  In particular,
+  # autogen.sh will remove dangling links, which might be links into
+  # uninitialized submodules.
+  # But it's OK if the 'gnulib' submodule is uninitialized, as long as
+  # GNULIB_SRCDIR is set.
+  if $use_git; then
+    # Uninitialized submodules are listed with an initial dash.
+    uninitialized=`git submodule | grep '^-' | awk '{ print $2 }'`
+    if test -n "$GNULIB_SRCDIR"; then
+      uninitialized=`echo "$uninitialized" | grep -v '^gnulib$'`
+    fi
+    if test -n "$uninitialized"; then
+      die "Some git submodules are not initialized: "`echo "$uninitialized" | tr '\n' ',' | sed -e 's|,$|.|'`" Either use option '--no-git', or run 'git submodule update --init' and bootstrap again."
+    fi
+  fi
+
+  if test -f "$medir"/autogen.sh; then
+    echo "$0: done.  Now you can run '$medir/autogen.sh'."
+  fi
+}
+
+# ----------------------------- Get translations. -----------------------------
 
 download_po_files() {
   subdir=$1
@@ -787,16 +865,98 @@ update_po_files() {
   done
 }
 
-case $SKIP_PO in
-'')
-  if test -d po; then
-    update_po_files po $package || exit
+# -------- Generate files automatically from existing sources.  --------------
+
+autogen_usage() {
+  cat <<EOF
+Usage: $me [OPTION]...
+Bootstrap this package from the checked-out sources.
+
+Optional environment variables:
+  GNULIB_SRCDIR            Specifies the local directory where gnulib
+                           sources reside.  Use this if you already
+                           have gnulib sources on your machine, and
+                           you want to use these sources.
+
+Options:
+  --copy                   copy files instead of creating symbolic links
+  --force                  attempt to bootstrap even if the sources seem
+                           not to have been checked out
+EOF
+  bootstrap_print_option_usage_hook
+  cat <<EOF
+If the file bootstrap.conf exists in the same directory as this script, its
+contents are read as shell variables to configure the bootstrap.
+
+For build prerequisites, environment variables like \$AUTOCONF and \$AMTAR
+are honored.
+
+Gnulib sources are assumed to be present:
+  * in \$GNULIB_SRCDIR, if that environment variable is set,
+  * otherwise, in the 'gnulib' submodule, if such a submodule is configured,
+  * otherwise, in the 'gnulib' subdirectory.
+
+Running without arguments will suffice in most cases.
+EOF
+}
+
+
+version_controlled_file() {
+  parent=$1
+  file=$2
+  if test -d .git; then
+    git rm -n "$file" > /dev/null 2>&1
+  elif test -d .svn; then
+    svn log -r HEAD "$file" > /dev/null 2>&1
+  elif test -d CVS; then
+    grep -F "/${file##*/}/" "$parent/CVS/Entries" 2>/dev/null |
+             grep '^/[^/]*/[0-9]' > /dev/null
+  else
+    warn_ "no version control for $file?"
+    false
   fi
+}
+
+# Strip blank and comment lines to leave significant entries.
+gitignore_entries() {
+  sed '/^#/d; /^$/d' "$@"
+}
 
-  if test -d runtime-po; then
-    update_po_files runtime-po $package-runtime || exit
-  fi;;
-esac
+# If $STR is not already on a line by itself in $FILE, insert it at the start.
+# Entries are inserted at the start of the ignore list to ensure existing
+# entries starting with ! are not overridden.  Such entries support
+# whitelisting exceptions after a more generic blacklist pattern.
+insert_if_absent() {
+  file=$1
+  str=$2
+  test -f $file || touch $file
+  test -r $file || die "Error: failed to read ignore file: $file"
+  duplicate_entries=$(gitignore_entries $file | sort | uniq -d)
+  if [ "$duplicate_entries" ] ; then
+    die "Error: Duplicate entries in $file: " $duplicate_entries
+  fi
+  linesold=$(gitignore_entries $file | wc -l)
+  linesnew=$( { echo "$str"; cat $file; } | gitignore_entries | sort -u | wc -l)
+  if [ $linesold != $linesnew ] ; then
+    { echo "$str" | cat - $file > $file.bak && mv $file.bak $file; } \
+      || die "insert_if_absent $file $str: failed"
+  fi
+}
+
+# Adjust $PATTERN for $VC_IGNORE_FILE and insert it with
+# insert_if_absent.
+insert_vc_ignore() {
+  vc_ignore_file="$1"
+  pattern="$2"
+  case $vc_ignore_file in
+  *.gitignore)
+    # A .gitignore entry that does not start with '/' applies
+    # recursively to subdirectories, so prepend '/' to every
+    # .gitignore entry.
+    pattern=$(echo "$pattern" | sed s,^,/,);;
+  esac
+  insert_if_absent "$vc_ignore_file" "$pattern"
+}
 
 symlink_to_dir()
 {
@@ -867,218 +1027,486 @@ symlink_to_dir()
   }
 }
 
-version_controlled_file() {
-  parent=$1
-  file=$2
-  if test -d .git; then
-    git rm -n "$file" > /dev/null 2>&1
-  elif test -d .svn; then
-    svn log -r HEAD "$file" > /dev/null 2>&1
-  elif test -d CVS; then
-    grep -F "/${file##*/}/" "$parent/CVS/Entries" 2>/dev/null |
-             grep '^/[^/]*/[0-9]' > /dev/null
-  else
-    warn_ "no version control for $file?"
-    false
+# Regenerate all autogeneratable files that are omitted from the
+# version control repository.  In particular, regenerate all
+# aclocal.m4, config.h.in, Makefile.in, configure files with new
+# versions of autoconf or automake.
+autogen()
+{
+  # Ensure that CDPATH is not set.  Otherwise, the output from cd
+  # would cause trouble in at least one use below.
+  (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+  # Environment variables that may be set by the user.
+  : "${AUTOPOINT=autopoint}"
+  : "${AUTORECONF=autoreconf}"
+
+  if test "$vc_ignore" = auto; then
+    vc_ignore=
+    test -d .git && vc_ignore=.gitignore
+    test -d CVS && vc_ignore="$vc_ignore .cvsignore"
   fi
-}
 
-# NOTE: we have to be careful to run both autopoint and libtoolize
-# before gnulib-tool, since gnulib-tool is likely to provide newer
-# versions of files "installed" by these two programs.
-# Then, *after* gnulib-tool (see below), we have to be careful to
-# run autoreconf in such a way that it does not run either of these
-# two just-pre-run programs.
 
-# Import from gettext.
-with_gettext=yes
-grep '^[        ]*AM_GNU_GETTEXT_VERSION(' configure.ac >/dev/null || \
-    with_gettext=no
+  # Parse options.
+
+  # Whether to use copies instead of symlinks.
+  copy=false
+
+  for option
+  do
+    case $option in
+    --help)
+      autogen_usage
+      return;;
+    --version)
+      set -e
+      echo "autogen.sh $scriptlibversion"
+      echo "$copyright"
+      return 0
+      ;;
+    --force)
+      checkout_only_file=;;
+    --copy)
+      copy=true;;
+    *)
+      bootstrap_option_hook $option || die "$option: unknown option";;
+    esac
+  done
 
-if test $with_gettext = yes || test $use_libtool = 1; then
+  test -z "$GNULIB_SRCDIR" || test -d "$GNULIB_SRCDIR" \
+    || die "Error: \$GNULIB_SRCDIR environment variable or --gnulib-srcdir option is specified, but does not denote a directory"
 
-  tempbase=.bootstrap$$
-  trap "rm -f $tempbase.0 $tempbase.1" 1 2 13 15
+  if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then
+    die "Running this script from a non-checked-out distribution is risky."
+  fi
 
-  > $tempbase.0 > $tempbase.1 &&
-  find . ! -type d -print | sort > $tempbase.0 || exit
+  if $use_gnulib; then
+    if test -z "$GNULIB_SRCDIR"; then
+      gnulib_path=$(test -f .gitmodules && git config --file .gitmodules submodule.gnulib.path)
+      test -z "$gnulib_path" && gnulib_path=gnulib
+      GNULIB_SRCDIR=$gnulib_path
+    fi
+  fi
 
-  if test $with_gettext = yes; then
-    # Released autopoint has the tendency to install macros that have been
-    # obsoleted in current gnulib, so run this before gnulib-tool.
-    echo "$0: $AUTOPOINT --force"
-    $AUTOPOINT --force || exit
+  # Die if there is no AC_CONFIG_AUX_DIR($build_aux) line in configure.ac.
+  found_aux_dir=no
+  grep '^[      ]*AC_CONFIG_AUX_DIR(\['"$build_aux"'])' configure.ac \
+      >/dev/null && found_aux_dir=yes
+  grep '^[      ]*AC_CONFIG_AUX_DIR('"$build_aux"')' configure.ac \
+      >/dev/null && found_aux_dir=yes
+  test $found_aux_dir = yes \
+    || die "configure.ac lacks 'AC_CONFIG_AUX_DIR([$build_aux])'; add it"
+
+  # If $build_aux doesn't exist, create it now, otherwise some bits
+  # below will malfunction.  If creating it, also mark it as ignored.
+  if test ! -d $build_aux; then
+    mkdir $build_aux
+    for dot_ig in x $vc_ignore; do
+      test $dot_ig = x && continue
+      insert_vc_ignore $dot_ig $build_aux
+    done
   fi
 
-  # Autoreconf runs aclocal before libtoolize, which causes spurious
-  # warnings if the initial aclocal is confused by the libtoolized
-  # (or worse out-of-date) macro directory.
-  # libtoolize 1.9b added the --install option; but we support back
-  # to libtoolize 1.5.22, where the install action was default.
+  check_build_prerequisites false
+
+  use_libtool=0
+  # We'd like to use grep -E, to see if any of LT_INIT,
+  # AC_PROG_LIBTOOL, AM_PROG_LIBTOOL is used in configure.ac,
+  # but that's not portable enough (e.g., for Solaris).
+  grep '^[      ]*A[CM]_PROG_LIBTOOL' configure.ac >/dev/null \
+    && use_libtool=1
+  grep '^[      ]*LT_INIT' configure.ac >/dev/null \
+    && use_libtool=1
   if test $use_libtool = 1; then
-    install=
-    case $($LIBTOOLIZE --help) in
-      *--install*) install=--install ;;
-    esac
-    echo "running: $LIBTOOLIZE $install --copy"
-    $LIBTOOLIZE $install --copy
+    find_tool LIBTOOLIZE glibtoolize libtoolize
   fi
 
-  find . ! -type d -print | sort >$tempbase.1
-  old_IFS=$IFS
-  IFS=$nl
-  for file in $(comm -13 $tempbase.0 $tempbase.1); do
-    IFS=$old_IFS
-    parent=${file%/*}
-    version_controlled_file "$parent" "$file" || {
-      for dot_ig in x $vc_ignore; do
-        test $dot_ig = x && continue
-        ig=$parent/$dot_ig
-        insert_vc_ignore "$ig" "${file##*/}"
-      done
-    }
-  done
-  IFS=$old_IFS
+  if $use_gnulib; then
+    gnulib_tool=$GNULIB_SRCDIR/gnulib-tool
+    <$gnulib_tool || return
+  fi
 
-  rm -f $tempbase.0 $tempbase.1
-  trap - 1 2 13 15
-fi
+  # NOTE: we have to be careful to run both autopoint and libtoolize
+  # before gnulib-tool, since gnulib-tool is likely to provide newer
+  # versions of files "installed" by these two programs.
+  # Then, *after* gnulib-tool (see below), we have to be careful to
+  # run autoreconf in such a way that it does not run either of these
+  # two just-pre-run programs.
 
-# Import from gnulib.
-
-if $use_gnulib; then
-  gnulib_tool_options="\
-   --no-changelog\
-   --aux-dir=$build_aux\
-   --doc-base=$doc_base\
-   --lib=$gnulib_name\
-   --m4-base=$m4_base/\
-   --source-base=$source_base/\
-   --tests-base=$tests_base\
-   --local-dir=$local_gl_dir\
-   $gnulib_tool_option_extras\
-  "
-  if test $use_libtool = 1; then
-    case "$gnulib_tool_options " in
-      *' --libtool '*) ;;
-      *) gnulib_tool_options="$gnulib_tool_options --libtool" ;;
-    esac
-  fi
-  echo "$0: $gnulib_tool $gnulib_tool_options --import ..."
-  $gnulib_tool $gnulib_tool_options --import $gnulib_modules \
-    || die "gnulib-tool failed"
+  # Import from gettext.
+  with_gettext=yes
+  grep '^[      ]*AM_GNU_GETTEXT_VERSION(' configure.ac >/dev/null || \
+      with_gettext=no
 
-  for file in $gnulib_files; do
-    symlink_to_dir "$GNULIB_SRCDIR" $file \
-      || die "failed to symlink $file"
-  done
-fi
+  if test $with_gettext = yes || test $use_libtool = 1; then
 
-bootstrap_post_import_hook \
-  || die "bootstrap_post_import_hook failed"
+    tempbase=.bootstrap$$
+    trap "rm -f $tempbase.0 $tempbase.1" HUP INT PIPE TERM
 
-# Don't proceed if there are uninitialized submodules.  In particular,
-# the next step will remove dangling links, which might be links into
-# uninitialized submodules.
-#
-# Uninitialized submodules are listed with an initial dash.
-if $use_git && git submodule | grep '^-' >/dev/null; then
-  die "some git submodules are not initialized. "     \
-      "Run 'git submodule update --init' and bootstrap again."
-fi
+    > $tempbase.0 > $tempbase.1 &&
+    find . ! -type d -print | sort > $tempbase.0 || return
 
-# Remove any dangling symlink matching "*.m4" or "*.[ch]" in some
-# gnulib-populated directories.  Such .m4 files would cause aclocal to fail.
-# The following requires GNU find 4.2.3 or newer.  Considering the usual
-# portability constraints of this script, that may seem a very demanding
-# requirement, but it should be ok.  Ignore any failure, which is fine,
-# since this is only a convenience to help developers avoid the relatively
-# unusual case in which a symlinked-to .m4 file is git-removed from gnulib
-# between successive runs of this script.
-find "$m4_base" "$source_base" \
-  -depth \( -name '*.m4' -o -name '*.[ch]' \) \
-  -type l -xtype l -delete > /dev/null 2>&1
-
-# Invoke autoreconf with --force --install to ensure upgrades of tools
-# such as ylwrap.
-AUTORECONFFLAGS="--verbose --install --force -I $m4_base $ACLOCAL_FLAGS"
-
-# Some systems (RHEL 5) are using ancient autotools, for which the
-# --no-recursive option had not been invented.  Detect that lack and
-# omit the option when it's not supported.  FIXME in 2017: remove this
-# hack when RHEL 5 autotools are updated, or when they become irrelevant.
-case $($AUTORECONF --help) in
-  *--no-recursive*) AUTORECONFFLAGS="$AUTORECONFFLAGS --no-recursive";;
-esac
-
-# Tell autoreconf not to invoke autopoint or libtoolize; they were run above.
-echo "running: AUTOPOINT=true LIBTOOLIZE=true $AUTORECONF $AUTORECONFFLAGS"
-AUTOPOINT=true LIBTOOLIZE=true $AUTORECONF $AUTORECONFFLAGS \
-  || die "autoreconf failed"
-
-# Get some extra files from gnulib, overriding existing files.
-for file in $gnulib_extra_files; do
-  case $file in
-  */INSTALL) dst=INSTALL;;
-  build-aux/*) dst=$build_aux/${file#build-aux/};;
-  *) dst=$file;;
-  esac
-  symlink_to_dir "$GNULIB_SRCDIR" $file $dst \
-    || die "failed to symlink $file"
-done
+    if test $with_gettext = yes; then
+      # Released autopoint has the tendency to install macros that have been
+      # obsoleted in current gnulib, so run this before gnulib-tool.
+      echo "$0: $AUTOPOINT --force"
+      $AUTOPOINT --force || return
+    fi
 
-if test $with_gettext = yes; then
-  # Create gettext configuration.
-  echo "$0: Creating po/Makevars from po/Makevars.template ..."
-  rm -f po/Makevars
-  sed '
-    /^EXTRA_LOCALE_CATEGORIES *=/s/=.*/= '"$EXTRA_LOCALE_CATEGORIES"'/
-    /^COPYRIGHT_HOLDER *=/s/=.*/= '"$COPYRIGHT_HOLDER"'/
-    /^MSGID_BUGS_ADDRESS *=/s|=.*|= '"$MSGID_BUGS_ADDRESS"'|
-    /^XGETTEXT_OPTIONS *=/{
-      s/$/ \\/
-      a\
-          '"$XGETTEXT_OPTIONS"' $${end_of_xgettext_options+}
-    }
-  ' po/Makevars.template >po/Makevars \
-    || die 'cannot generate po/Makevars'
-
-  # If the 'gettext' module is in use, grab the latest Makefile.in.in.
-  # If only the 'gettext-h' module is in use, assume autopoint already
-  # put the correct version of this file into place.
-  case $gnulib_modules in
-  *gettext-h*) ;;
-  *gettext*)
-    cp $GNULIB_SRCDIR/build-aux/po/Makefile.in.in po/Makefile.in.in \
-      || die "cannot create po/Makefile.in.in"
-    ;;
+    # Autoreconf runs aclocal before libtoolize, which causes spurious
+    # warnings if the initial aclocal is confused by the libtoolized
+    # (or worse out-of-date) macro directory.
+    # libtoolize 1.9b added the --install option; but we support back
+    # to libtoolize 1.5.22, where the install action was default.
+    if test $use_libtool = 1; then
+      install=
+      case $($LIBTOOLIZE --help) in
+        *--install*) install=--install ;;
+      esac
+      echo "running: $LIBTOOLIZE $install --copy"
+      $LIBTOOLIZE $install --copy
+    fi
+
+    find . ! -type d -print | sort >$tempbase.1
+    old_IFS=$IFS
+    IFS=$nl
+    for file in $(comm -13 $tempbase.0 $tempbase.1); do
+      IFS=$old_IFS
+      parent=${file%/*}
+      version_controlled_file "$parent" "$file" || {
+        for dot_ig in x $vc_ignore; do
+          test $dot_ig = x && continue
+          ig=$parent/$dot_ig
+          insert_vc_ignore "$ig" "${file##*/}"
+        done
+      }
+    done
+    IFS=$old_IFS
+
+    rm -f $tempbase.0 $tempbase.1
+    trap - HUP INT PIPE TERM
+  fi
+
+  # Import from gnulib.
+
+  if $use_gnulib; then
+    gnulib_tool_options="\
+     --no-changelog\
+     --aux-dir=$build_aux\
+     --doc-base=$doc_base\
+     --lib=$gnulib_name\
+     --m4-base=$m4_base/\
+     --source-base=$source_base/\
+     --tests-base=$tests_base\
+     --local-dir=$local_gl_dir\
+     $gnulib_tool_option_extras\
+    "
+    if test $use_libtool = 1; then
+      case "$gnulib_tool_options " in
+        *' --libtool '*) ;;
+        *) gnulib_tool_options="$gnulib_tool_options --libtool" ;;
+      esac
+    fi
+    echo "$0: $gnulib_tool $gnulib_tool_options --import ..."
+    $gnulib_tool $gnulib_tool_options --import $gnulib_modules \
+      || die "gnulib-tool failed"
+
+    for file in $gnulib_files; do
+      symlink_to_dir "$GNULIB_SRCDIR" $file \
+        || die "failed to symlink $file"
+    done
+  fi
+
+  bootstrap_post_import_hook \
+    || die "bootstrap_post_import_hook failed"
+
+  # Remove any dangling symlink matching "*.m4" or "*.[ch]" in some
+  # gnulib-populated directories.  Such .m4 files would cause aclocal to fail.
+  # The following requires GNU find 4.2.3 or newer.  Considering the usual
+  # portability constraints of this script, that may seem a very demanding
+  # requirement, but it should be ok.  Ignore any failure, which is fine,
+  # since this is only a convenience to help developers avoid the relatively
+  # unusual case in which a symlinked-to .m4 file is git-removed from gnulib
+  # between successive runs of this script.
+  find "$m4_base" "$source_base" \
+    -depth \( -name '*.m4' -o -name '*.[ch]' \) \
+    -type l -xtype l -delete > /dev/null 2>&1
+
+  # Invoke autoreconf with --force --install to ensure upgrades of tools
+  # such as ylwrap.
+  AUTORECONFFLAGS="--verbose --install --force -I $m4_base $ACLOCAL_FLAGS"
+
+  # Some systems (RHEL 5) are using ancient autotools, for which the
+  # --no-recursive option had not been invented.  Detect that lack and
+  # omit the option when it's not supported.  FIXME in 2017: remove this
+  # hack when RHEL 5 autotools are updated, or when they become irrelevant.
+  case $($AUTORECONF --help) in
+    *--no-recursive*) AUTORECONFFLAGS="$AUTORECONFFLAGS --no-recursive";;
   esac
 
-  if test -d runtime-po; then
-    # Similarly for runtime-po/Makevars, but not quite the same.
-    rm -f runtime-po/Makevars
+  # Tell autoreconf not to invoke autopoint or libtoolize; they were run above.
+  echo "running: AUTOPOINT=true LIBTOOLIZE=true $AUTORECONF $AUTORECONFFLAGS"
+  AUTOPOINT=true LIBTOOLIZE=true $AUTORECONF $AUTORECONFFLAGS \
+    || die "autoreconf failed"
+
+  # Get some extra files from gnulib, overriding existing files.
+  for file in $gnulib_extra_files; do
+    case $file in
+      */INSTALL) dst=INSTALL;;
+      build-aux/*) dst=$build_aux/${file#build-aux/};;
+      *) dst=$file;;
+    esac
+    symlink_to_dir "$GNULIB_SRCDIR" $file $dst \
+      || die "failed to symlink $file"
+  done
+
+  if test $with_gettext = yes; then
+    # Create gettext configuration.
+    echo "$0: Creating po/Makevars from po/Makevars.template ..."
+    rm -f po/Makevars
     sed '
-      /^DOMAIN *=.*/s/=.*/= '"$package"'-runtime/
-      /^subdir *=.*/s/=.*/= runtime-po/
-      /^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-'"$package"'@gnu.org/
+      /^EXTRA_LOCALE_CATEGORIES *=/s/=.*/= '"$EXTRA_LOCALE_CATEGORIES"'/
+      /^COPYRIGHT_HOLDER *=/s/=.*/= '"$COPYRIGHT_HOLDER"'/
+      /^MSGID_BUGS_ADDRESS *=/s|=.*|= '"$MSGID_BUGS_ADDRESS"'|
       /^XGETTEXT_OPTIONS *=/{
         s/$/ \\/
         a\
-            '"$XGETTEXT_OPTIONS_RUNTIME"' $${end_of_xgettext_options+}
+            '"$XGETTEXT_OPTIONS"' $${end_of_xgettext_options+}
       }
-    ' po/Makevars.template >runtime-po/Makevars \
-    || die 'cannot generate runtime-po/Makevars'
+    ' po/Makevars.template >po/Makevars \
+      || die 'cannot generate po/Makevars'
+
+    # If the 'gettext' module is in use, grab the latest Makefile.in.in.
+    # If only the 'gettext-h' module is in use, assume autopoint already
+    # put the correct version of this file into place.
+    case $gnulib_modules in
+      *gettext-h*) ;;
+      *gettext*)
+        cp $GNULIB_SRCDIR/build-aux/po/Makefile.in.in po/Makefile.in.in \
+          || die "cannot create po/Makefile.in.in"
+        ;;
+    esac
+
+    if test -d runtime-po; then
+      # Similarly for runtime-po/Makevars, but not quite the same.
+      rm -f runtime-po/Makevars
+      sed '
+        /^DOMAIN *=.*/s/=.*/= '"$package"'-runtime/
+        /^subdir *=.*/s/=.*/= runtime-po/
+        /^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-'"$package"'@gnu.org/
+        /^XGETTEXT_OPTIONS *=/{
+          s/$/ \\/
+          a\
+              '"$XGETTEXT_OPTIONS_RUNTIME"' $${end_of_xgettext_options+}
+        }
+      ' po/Makevars.template >runtime-po/Makevars \
+      || die 'cannot generate runtime-po/Makevars'
 
-    # Copy identical files from po to runtime-po.
-    (cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po)
+      # Copy identical files from po to runtime-po.
+      (cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po)
+    fi
   fi
+
+  bootstrap_epilogue
+
+  echo "$0: done.  Now you can run './configure'."
+}
+
+# ----------------------------------------------------------------------------
+
+# Local Variables:
+# eval: (add-hook 'before-save-hook 'time-stamp)
+# time-stamp-start: "scriptlibversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC0"
+# time-stamp-end: "; # UTC"
+# End:
+
+usage() {
+  cat <<EOF
+Usage: $me [OPTION]...
+Bootstrap this package from the checked-out sources.
+
+Optional environment variables:
+  GNULIB_SRCDIR            Specifies the local directory where gnulib
+                           sources reside.  Use this if you already
+                           have gnulib sources on your machine, and
+                           do not want to waste your bandwidth downloading
+                           them again.
+  GNULIB_URL               Cloneable URL of the gnulib repository.
+
+Options:
+
+  --pull                   Do phase 1: pull files from network
+  --gen                    Do phase 2: generate from local files.
+                           (The default is to do both phases.)
+
+  --gnulib-srcdir=DIRNAME  specify the local directory where gnulib
+                           sources reside.  Use this if you already
+                           have gnulib sources on your machine, and
+                           you want to use these sources.  Defaults
+                           to \$GNULIB_SRCDIR
+  --gnulib-refdir=DIRNAME  specify the local directory where a gnulib
+                           repository (with a .git subdirectory) resides.
+                           Use this if you already have gnulib sources
+                           and history on your machine, and do not want
+                           to waste your bandwidth downloading them again.
+                           Defaults to \$GNULIB_REFDIR
+
+  --bootstrap-sync         if this bootstrap script is not identical to
+                           the version in the local gnulib sources,
+                           update this script, and then restart it with
+                           /bin/sh or the shell \$CONFIG_SHELL
+  --no-bootstrap-sync      do not check whether bootstrap is out of sync
+
+  --copy                   copy files instead of creating symbolic links
+  --force                  attempt to bootstrap even if the sources seem
+                           not to have been checked out
+  --no-git                 do not use git to update gnulib.  Requires that
+                           \$GNULIB_SRCDIR or the --gnulib-srcdir option
+                           points to a gnulib repository with the correct
+                           revision
+  --skip-po                do not download po files
+EOF
+  bootstrap_print_option_usage_hook
+  cat <<EOF
+If the file bootstrap.conf exists in the same directory as this script, its
+contents are read as shell variables to configure the bootstrap.
+
+For build prerequisites, environment variables like \$AUTOCONF and \$AMTAR
+are honored.
+
+Gnulib sources can be fetched in various ways:
+
+ * If the environment variable GNULIB_SRCDIR is set (either as an
+   environment variable or via the --gnulib-srcdir option), then sources
+   are fetched from that local directory.  If it is a git repository and
+   the configuration variable GNULIB_REVISION is set in bootstrap.conf,
+   then that revision is checked out.
+
+ * Otherwise, if this package is in a git repository with a 'gnulib'
+   submodule configured, then that submodule is initialized and updated
+   and sources are fetched from there.  If GNULIB_REFDIR is set (either
+   as an environment variable or via the --gnulib-refdir option) and is
+   a git repository, then it is used as a reference.
+
+ * Otherwise, if the 'gnulib' directory does not exist, Gnulib sources
+   are cloned into that directory using git from \$GNULIB_URL, defaulting
+   to $default_gnulib_url.
+   If the configuration variable GNULIB_REVISION is set in bootstrap.conf,
+   then that revision is checked out.
+
+ * Otherwise, the existing Gnulib sources in the 'gnulib' directory are
+   used.  If it is a git repository and the configuration variable
+   GNULIB_REVISION is set in bootstrap.conf, then that revision is
+   checked out.
+
+If you maintain a package and want to pin a particular revision of the
+Gnulib sources that has been tested with your package, then there are
+two possible approaches: either configure a 'gnulib' submodule with the
+appropriate revision, or set GNULIB_REVISION (and if necessary
+GNULIB_URL) in bootstrap.conf.
+
+Running without arguments will suffice in most cases.
+EOF
+}
+
+# Parse options.
+
+# Whether to pull and generate.
+pull=false
+gen=false
+
+# Whether to use copies instead of symlinks.
+copy=false
+
+# Use git to update gnulib sources
+use_git=true
+
+for option
+do
+  case $option in
+  --help)
+    usage
+    exit;;
+  --version)
+    set -e
+    echo "bootstrap $scriptversion lib $scriptlibversion"
+    echo "$copyright"
+    exit 0
+    ;;
+  --pull)
+    pull=true;;
+  --gen)
+    gen=true;;
+  --gnulib-srcdir=*)
+    GNULIB_SRCDIR=${option#--gnulib-srcdir=};;
+  --gnulib-refdir=*)
+    GNULIB_REFDIR=${option#--gnulib-refdir=};;
+  --skip-po)
+    SKIP_PO=t;;
+  --force)
+    checkout_only_file=;;
+  --copy)
+    copy=true;;
+  --bootstrap-sync)
+    bootstrap_sync=true;;
+  --no-bootstrap-sync)
+    bootstrap_sync=false;;
+  --no-git)
+    use_git=false;;
+  *)
+    bootstrap_option_hook $option || die "$option: unknown option";;
+  esac
+done
+
+# Default is to do both.
+$pull || $gen || pull=true gen=true
+
+$use_git || test -n "$GNULIB_SRCDIR" \
+  || die "Error: --no-git requires \$GNULIB_SRCDIR environment variable or --gnulib-srcdir option"
+test -z "$GNULIB_SRCDIR" || test -d "$GNULIB_SRCDIR" \
+  || die "Error: \$GNULIB_SRCDIR environment variable or --gnulib-srcdir option is specified, but does not denote a directory"
+
+if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then
+  die "Bootstrapping from a non-checked-out distribution is risky."
+fi
+
+check_build_prerequisites $use_git
+
+if $bootstrap_sync; then
+  prepare_GNULIB_SRCDIR
+  upgrade_bootstrap
+  # Since we have now upgraded if needed, no need to try it a second time below.
+  bootstrap_sync=false
 fi
 
-bootstrap_epilogue
+echo "$0: Bootstrapping from checked-out $package sources..."
+
+# Pass GNULIB_SRCDIR and GNULIB_REFDIR to any subsidiary commands that care.
+export GNULIB_SRCDIR
+export GNULIB_REFDIR
+
+if $pull && { $use_git || test -z "$SKIP_PO"; }; then
+  autopull \
+      `if $bootstrap_sync; then echo ' --bootstrap-sync'; else echo ' --no-bootstrap-sync'; fi` \
+      `if test -z "$checkout_only_file"; then echo ' --force'; fi` \
+      `if ! $use_git; then echo ' --no-git'; fi` \
+      `if test -n "$SKIP_PO"; then echo ' --skip-po'; fi` \
+    || die "could not fetch auxiliary files"
+fi
+
+if $gen; then
+ autogen \
+    `if $copy; then echo ' --copy'; fi` \
+    `if test -z "$checkout_only_file"; then echo ' --force'; fi` \
+  || die "could not generate auxiliary files"
+fi
 
-echo "$0: done.  Now you can run './configure'."
+# ----------------------------------------------------------------------------
 
-# Local variables:
+# Local Variables:
 # eval: (add-hook 'before-save-hook 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
index daa478c..850619a 100755 (executable)
@@ -3,7 +3,7 @@
 
 # Generate a release announcement message.
 
-# Copyright (C) 2002-2021 Free Software Foundation, Inc.
+# Copyright (C) 2002-2023 Free Software Foundation, Inc.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
 eval 'exec perl -wSx "$0" "$@"'
      if 0;
 
-my $VERSION = '2021-04-11 8:42'; # UTC
+my $VERSION = '2023-02-26 17:15'; # UTC
 # The definition above must lie within the first 8 lines in order
 # for the Emacs time-stamp write hook (at end) to update it.
 # If you change this file with Emacs, please let the write hook
 # do its job.  Otherwise, update this string manually.
 
-my $copyright_year = '2021';
+my $copyright_year = '2022';
 
 use strict;
 use Getopt::Long;
@@ -51,12 +51,6 @@ use POSIX qw(strftime);
 
 my %valid_release_types = map {$_ => 1} qw (alpha beta stable);
 my @archive_suffixes = qw (tar.gz tar.bz2 tar.lz tar.lzma tar.xz);
-my %digest_classes =
-  (
-   'md5' => (eval { require Digest::MD5; } and 'Digest::MD5'),
-   'sha1' => ((eval { require Digest::SHA; } and 'Digest::SHA')
-              or (eval { require Digest::SHA1; } and 'Digest::SHA1'))
-  );
 my $srcdir = '.';
 
 sub usage ($)
@@ -96,7 +90,11 @@ The following are optional:
                                 VERSION is the result of running git describe
                                 in the gnulib source directory.
                                 required if gnulib is in TOOL_LIST.
-   --no-print-checksums         do not emit MD5 or SHA1 checksums
+   --gpg-key-email=EMAIL        The email address of the key used to
+                                sign the tarballs
+   --gpg-keyring-url=URL        URL pointing to keyring containing the key used
+                                to sign the tarballs
+   --no-print-checksums         do not emit SHA1 or SHA256 checksums
    --archive-suffix=SUF         add SUF to the list of archive suffixes
    --mail-headers=HEADERS       a space-separated list of mail headers, e.g.,
                                 To: x\@example.com Cc: y-announce\@example.com,...
@@ -163,31 +161,37 @@ sub print_locations ($\@\%@)
 
 =item C<print_checksums (@file)
 
-Print the MD5 and SHA1 signature section for each C<@file>.
+Print the SHA1 and SHA256 signature section for each C<@file>.
 
 =cut
 
+# This digest function omits the "=" padding that is required by cksum,
+# so add the 0..2 bytes of padding required for each of Digest's algorithms.
+sub digest_file_base64_wrap ($$)
+{
+  my ($file, $alg) = @_;
+  my $h = digest_file_base64($file, $alg);
+  $alg =~ tr{-}{}d;
+  my %pad = (MD5 => 2, SHA1 => 1, SHA256 => 1, SHA384 => 0, SHA512 => 2);
+  return $h . '=' x $pad{$alg};
+}
+
 sub print_checksums (@)
 {
   my (@file) = @_;
 
-  print "Here are the MD5 and SHA1 checksums:\n";
+  print "Here are the SHA1 and SHA256 checksums:\n";
   print "\n";
 
-  foreach my $meth (qw (md5 sha1))
+  use Digest::file qw(digest_file_hex digest_file_base64);
+
+  foreach my $f (@file)
     {
-      my $class = $digest_classes{$meth} or next;
-      foreach my $f (@file)
-        {
-          open IN, '<', $f
-            or die "$ME: $f: cannot open for reading: $!\n";
-          binmode IN;
-          my $dig = $class->new->addfile(*IN)->hexdigest;
-          close IN;
-          print "$dig  $f\n";
-        }
+      print '  ', digest_file_hex ($f, "SHA-1"), "  $f\n";
+      print '  ', digest_file_base64_wrap ($f, "SHA-256"), "  $f\n";
     }
-  print "\n";
+  print "\nVerify the base64 SHA256 checksum with cksum -a sha256 --check\n";
+  print "from coreutils-9.2 or OpenBSD's cksum since 2007.\n\n";
 }
 
 =item C<print_news_deltas ($news_file, $prev_version, $curr_version)
@@ -372,6 +376,38 @@ sub get_tool_versions ($$)
   return @tool_version_pair;
 }
 
+# Print a more human-friendly representation of $SEC seconds.
+sub readable_interval0($)
+{
+  my $sec = shift;
+  $sec < 60 and return "$sec seconds";
+
+  my $min = int($sec / 60); $sec %= 60;
+  30 < $sec and $min++;
+  $min < 60 and return "$min minutes";
+
+  my $hr = int($min / 60); $min %= 60;
+  30 < $min and $hr++;
+  $hr < 24 and return "$hr hours";
+
+  my $day = int($hr / 24); $hr %= 24;
+  12 < $hr and $day++;
+  $day < 50 and return "$day days";
+
+  my $wk = int($day / 7); $day %= 7;
+  4 < $day and $wk++;
+  return "$wk weeks";
+}
+
+# Convert e.g., "1 weeks", to "1 week".
+sub readable_interval($)
+{
+  my $interval_str = shift;
+  my $i = readable_interval0 $interval_str;
+  $i =~ m{^1 \w+s$} and chop $i;
+  return $i;
+}
+
 {
   # Use the C locale so that, for instance, "du" does not
   # print "1,2" instead of "1.2", which would confuse our regexps.
@@ -388,6 +424,8 @@ sub get_tool_versions ($$)
   my $bootstrap_tools;
   my $gnulib_version;
   my $print_checksums_p = 1;
+  my $gpg_key_email;
+  my $gpg_keyring_url;
 
   # Reformat the warnings before displaying them.
   local $SIG{__WARN__} = sub
@@ -406,6 +444,8 @@ sub get_tool_versions ($$)
      'previous-version=s' => \$prev_version,
      'current-version=s'  => \$curr_version,
      'gpg-key-id=s'       => \$gpg_key_id,
+     'gpg-key-email=s'    => \$gpg_key_email,
+     'gpg-keyring-url=s'  => \$gpg_keyring_url,
      'url-directory=s'    => \@url_dir_list,
      'news=s'             => \@news_file,
      'srcdir=s'           => \$srcdir,
@@ -448,11 +488,15 @@ sub get_tool_versions ($$)
   my @tool_list = split ',', $bootstrap_tools
     if $bootstrap_tools;
 
-  grep (/^gnulib$/, @tool_list) ^ defined $gnulib_version
+  grep (/^gnulib$/, @tool_list) && ! defined $gnulib_version
     and (warn "when specifying gnulib as a tool, you must also specify\n"
         . "--gnulib-version=V, where V is the result of running git describe\n"
         . "in the gnulib source directory.\n"), $fail = 1;
 
+  ! grep (/^gnulib$/, @tool_list) && defined $gnulib_version
+    and (warn "with --gnulib-version=V you must use --bootstrap-tools=...\n"
+         . "including gnulib in that list"), $fail = 1;
+
   !$release_type || exists $valid_release_types{$release_type}
     or (warn "'$release_type': invalid release type\n"), $fail = 1;
 
@@ -492,16 +536,54 @@ sub get_tool_versions ($$)
 ${headers}Subject: $my_distdir released [$release_type]
 
 <\#secure method=pgpmime mode=sign>
+This is to announce $package_name-$curr_version, a $release_type release.
 
 FIXME: put comments here
 
 EOF
 
+  my $v0 = $prev_version;
+  my $v1 = $curr_version;
+
+  (my $first_name = `git config --global user.name|cut -d' ' -f1`)
+    =~ m{\S} or die "no name? set user.name in ~/.gitconfig\n";
+
+  chomp (my $n_ci = `git rev-list "v$v0..v$v1" | wc -l`);
+  chomp (my $n_p = `git shortlog "v$v0..v$v1" | grep -c '^[^ ]'`);
+
+  my $prev_release_date = `git log --pretty=%ct -1 "v$v0"`;
+  my $this_release_date = `git log --pretty=%ct -1 "v$v1"`;
+  my $n_seconds = $this_release_date - $prev_release_date;
+  my $time_since_prev = readable_interval $n_seconds;
+  my $names = `git shortlog "v$v0..v$v1"|perl -lne '/^(\\w.*):/ and print "  ".\$1'`;
+
+  print <<EOF;
+There have been $n_ci commits by $n_p people in the $time_since_prev since $v0.
+
+See the NEWS below for a brief summary.
+
+Thanks to everyone who has contributed!
+The following people contributed changes to this release:
+
+$names
+$first_name [on behalf of the $package_name maintainers]
+==================================================================
+
+Here is the GNU $package_name home page:
+    http://gnu.org/s/$package_name/
+
+For a summary of changes and contributors, see:
+  http://git.sv.gnu.org/gitweb/?p=$package_name.git;a=shortlog;h=v$v1
+or run this command from a git-cloned $package_name directory:
+  git shortlog v$v0..v$v1
+
+EOF
+
   if (@url_dir_list == 1 && @tarballs == 1)
     {
       # When there's only one tarball and one URL, use a more concise form.
       my $m = "$url_dir_list[0]/$tarballs[0]";
-      print "Here are the compressed sources and a GPG detached signature[*]:\n"
+      print "Here are the compressed sources and a GPG detached signature:\n"
         . "  $m\n"
         . "  $m.sig\n\n";
     }
@@ -513,7 +595,7 @@ EOF
                              . "please tell bug-gnulib\@gnu.org)",
                              @url_dir_list, %size, $xd);
       my @sig_files = map { "$_.sig" } @tarballs;
-      print_locations ("GPG detached signatures[*]", @url_dir_list, %size,
+      print_locations ("GPG detached signatures", @url_dir_list, %size,
                        @sig_files);
     }
 
@@ -538,18 +620,54 @@ EOF
     and print_checksums (@sizable);
 
   print <<EOF;
-[*] Use a .sig file to verify that the corresponding file (without the
+Use a .sig file to verify that the corresponding file (without the
 .sig suffix) is intact.  First, be sure to download both the .sig file
 and the corresponding tarball.  Then, run a command like this:
 
   gpg --verify $tarballs[0].sig
 
+EOF
+  my $gpg_fingerprint = `LC_ALL=C gpg --fingerprint $gpg_key_id | grep -v ^sub`;
+  if ($gpg_fingerprint =~ /^pub/)
+    {
+      chop $gpg_fingerprint;
+      $gpg_fingerprint =~ s/ \[expires:.*//mg;
+      $gpg_fingerprint =~ s/^uid           \[ultimate\]/uid  /mg;
+      $gpg_fingerprint =~ s/^/  /mg;
+      print<<EOF
+The signature should match the fingerprint of the following key:
+
+$gpg_fingerprint
+EOF
+    }
+  print <<EOF;
 If that command fails because you don't have the required public key,
-then run this command to import it:
+or that public key has expired, try the following commands to retrieve
+or refresh it, and then rerun the 'gpg --verify' command.
+EOF
+  if ($gpg_key_email) {
+    print <<EOF;
+
+  gpg --locate-external-key $gpg_key_email
+EOF
+    }
+  print <<EOF;
+
+  gpg --recv-keys $gpg_key_id
+EOF
+    if ($gpg_keyring_url) {
+      print <<EOF;
+
+  wget -q -O- '$gpg_keyring_url' | gpg --import -
+EOF
+      }
+  print <<EOF;
 
-  gpg --keyserver keys.gnupg.net --recv-keys $gpg_key_id
+As a last resort to find the key, you can try the official GNU
+keyring:
 
-and rerun the 'gpg --verify' command.
+  wget -q https://ftp.gnu.org/gnu/gnu-keyring.gpg
+  gpg --keyring gnu-keyring.gpg --verify $tarballs[0].sig
 EOF
 
   my @tool_versions = get_tool_versions (\@tool_list, $gnulib_version);
index df363c8..ba883b5 100755 (executable)
@@ -3,7 +3,7 @@
 
 scriptversion=2018-03-07.03; # UTC
 
-# Copyright (C) 1999-2021 Free Software Foundation, Inc.
+# Copyright (C) 1999-2023 Free Software Foundation, Inc.
 # Written by Tom Tromey <tromey@cygnus.com>.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -256,6 +256,7 @@ EOF
     exit $?
     ;;
   cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
+  clang-cl | *[/\\]clang-cl | clang-cl.exe | *[/\\]clang-cl.exe | \
   icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
     func_cl_wrapper "$@"      # Doesn't return...
     ;;
index e81d3ae..69188da 100755 (executable)
@@ -1,14 +1,14 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
-#   Copyright 1992-2021 Free Software Foundation, Inc.
+#   Copyright 1992-2023 Free Software Foundation, Inc.
 
 # shellcheck disable=SC2006,SC2268 # see below for rationale
 
-timestamp='2021-06-03'
+timestamp='2023-01-01'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
+# 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
@@ -60,7 +60,7 @@ version="\
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright 1992-2021 Free Software Foundation, Inc.
+Copyright 1992-2023 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -437,7 +437,7 @@ case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in
        # This test works for both compilers.
        if test "$CC_FOR_BUILD" != no_compiler_found; then
            if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
-               (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+               (CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \
                grep IS_64BIT_ARCH >/dev/null
            then
                SUN_ARCH=x86_64
@@ -929,6 +929,9 @@ EOF
     i*:PW*:*)
        GUESS=$UNAME_MACHINE-pc-pw32
        ;;
+    *:SerenityOS:*:*)
+        GUESS=$UNAME_MACHINE-pc-serenity
+        ;;
     *:Interix*:*)
        case $UNAME_MACHINE in
            x86)
@@ -963,6 +966,12 @@ EOF
        GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
        GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC
        ;;
+    x86_64:[Mm]anagarm:*:*|i?86:[Mm]anagarm:*:*)
+       GUESS="$UNAME_MACHINE-pc-managarm-mlibc"
+       ;;
+    *:[Mm]anagarm:*:*)
+       GUESS="$UNAME_MACHINE-unknown-managarm-mlibc"
+       ;;
     *:Minix:*:*)
        GUESS=$UNAME_MACHINE-unknown-minix
        ;;
@@ -1033,7 +1042,7 @@ EOF
     k1om:Linux:*:*)
        GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
        ;;
-    loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*)
+    loongarch32:Linux:*:* | loongarch64:Linux:*:*)
        GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
        ;;
     m32r*:Linux:*:*)
@@ -1148,16 +1157,27 @@ EOF
        ;;
     x86_64:Linux:*:*)
        set_cc_for_build
+       CPU=$UNAME_MACHINE
        LIBCABI=$LIBC
        if test "$CC_FOR_BUILD" != no_compiler_found; then
-           if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \
-               (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
-               grep IS_X32 >/dev/null
-           then
-               LIBCABI=${LIBC}x32
-           fi
+           ABI=64
+           sed 's/^        //' << EOF > "$dummy.c"
+           #ifdef __i386__
+           ABI=x86
+           #else
+           #ifdef __ILP32__
+           ABI=x32
+           #endif
+           #endif
+EOF
+           cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'`
+           eval "$cc_set_abi"
+           case $ABI in
+               x86) CPU=i686 ;;
+               x32) LIBCABI=${LIBC}x32 ;;
+           esac
        fi
-       GUESS=$UNAME_MACHINE-pc-linux-$LIBCABI
+       GUESS=$CPU-pc-linux-$LIBCABI
        ;;
     xtensa*:Linux:*:*)
        GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
@@ -1364,8 +1384,11 @@ EOF
     BePC:Haiku:*:*)    # Haiku running on Intel PC compatible.
        GUESS=i586-pc-haiku
        ;;
-    x86_64:Haiku:*:*)
-       GUESS=x86_64-unknown-haiku
+    ppc:Haiku:*:*)     # Haiku running on Apple PowerPC
+       GUESS=powerpc-apple-haiku
+       ;;
+    *:Haiku:*:*)       # Haiku modern gcc (not bound by BeOS compat)
+       GUESS=$UNAME_MACHINE-unknown-haiku
        ;;
     SX-4:SUPER-UX:*:*)
        GUESS=sx4-nec-superux$UNAME_RELEASE
@@ -1522,6 +1545,9 @@ EOF
     i*86:rdos:*:*)
        GUESS=$UNAME_MACHINE-pc-rdos
        ;;
+    i*86:Fiwix:*:*)
+       GUESS=$UNAME_MACHINE-pc-fiwix
+       ;;
     *:AROS:*:*)
        GUESS=$UNAME_MACHINE-unknown-aros
        ;;
index 4b7dc49..1e2595f 100755 (executable)
@@ -2,7 +2,7 @@
 # Output a system dependent set of variables, describing how to set the
 # run time search path of shared libraries in an executable.
 #
-#   Copyright 1996-2021 Free Software Foundation, Inc.
+#   Copyright 1996-2023 Free Software Foundation, Inc.
 #   Taken from GNU libtool, 2001
 #   Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
 #
index d80c5d7..de4259e 100755 (executable)
@@ -1,14 +1,14 @@
 #! /bin/sh
 # Configuration validation subroutine script.
-#   Copyright 1992-2021 Free Software Foundation, Inc.
+#   Copyright 1992-2023 Free Software Foundation, Inc.
 
 # shellcheck disable=SC2006,SC2268 # see below for rationale
 
-timestamp='2021-07-03'
+timestamp='2023-01-21'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
+# 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
@@ -76,7 +76,7 @@ Report bugs and patches to <config-patches@gnu.org>."
 version="\
 GNU config.sub ($timestamp)
 
-Copyright 1992-2021 Free Software Foundation, Inc.
+Copyright 1992-2023 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -121,9 +121,11 @@ esac
 
 # Split fields of configuration type
 # shellcheck disable=SC2162
+saved_IFS=$IFS
 IFS="-" read field1 field2 field3 field4 <<EOF
 $1
 EOF
+IFS=$saved_IFS
 
 # Separate into logical components for further validation
 case $1 in
@@ -143,7 +145,7 @@ case $1 in
                        nto-qnx* | linux-* | uclinux-uclibc* \
                        | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
                        | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
-                       | storm-chaos* | os2-emx* | rtmk-nova*)
+                       | storm-chaos* | os2-emx* | rtmk-nova* | managarm-*)
                                basic_machine=$field1
                                basic_os=$maybe_os
                                ;;
@@ -172,6 +174,10 @@ case $1 in
                                                basic_machine=$field1
                                                basic_os=$field2
                                                ;;
+                                       zephyr*)
+                                               basic_machine=$field1-unknown
+                                               basic_os=$field2
+                                               ;;
                                        # Manufacturers
                                        dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
                                        | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
@@ -931,9 +937,11 @@ case $basic_machine in
 
        *-*)
                # shellcheck disable=SC2162
+               saved_IFS=$IFS
                IFS="-" read cpu vendor <<EOF
 $basic_machine
 EOF
+               IFS=$saved_IFS
                ;;
        # We use `pc' rather than `unknown'
        # because (1) that's what they normally are, and
@@ -1012,6 +1020,11 @@ case $cpu-$vendor in
                ;;
 
        # Here we normalize CPU types with a missing or matching vendor
+       armh-unknown | armh-alt)
+               cpu=armv7l
+               vendor=alt
+               basic_os=${basic_os:-linux-gnueabihf}
+               ;;
        dpx20-unknown | dpx20-bull)
                cpu=rs6000
                vendor=bull
@@ -1062,7 +1075,7 @@ case $cpu-$vendor in
        pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
                cpu=i586
                ;;
-       pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
+       pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*)
                cpu=i686
                ;;
        pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
@@ -1113,7 +1126,7 @@ case $cpu-$vendor in
        xscale-* | xscalee[bl]-*)
                cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
                ;;
-       arm64-*)
+       arm64-* | aarch64le-*)
                cpu=aarch64
                ;;
 
@@ -1194,7 +1207,7 @@ case $cpu-$vendor in
                        | k1om \
                        | le32 | le64 \
                        | lm32 \
-                       | loongarch32 | loongarch64 | loongarchx32 \
+                       | loongarch32 | loongarch64 \
                        | m32c | m32r | m32rle \
                        | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
                        | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
@@ -1296,7 +1309,7 @@ esac
 if test x$basic_os != x
 then
 
-# First recognize some ad-hoc caes, or perhaps split kernel-os, or else just
+# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just
 # set os.
 case $basic_os in
        gnu/linux*)
@@ -1313,9 +1326,11 @@ case $basic_os in
                ;;
        *-*)
                # shellcheck disable=SC2162
+               saved_IFS=$IFS
                IFS="-" read kernel os <<EOF
 $basic_os
 EOF
+               IFS=$saved_IFS
                ;;
        # Default OS when just kernel was specified
        nto*)
@@ -1326,6 +1341,10 @@ EOF
                kernel=linux
                os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
                ;;
+       managarm*)
+               kernel=managarm
+               os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'`
+               ;;
        *)
                kernel=
                os=$basic_os
@@ -1697,7 +1716,7 @@ fi
 # Now, validate our (potentially fixed-up) OS.
 case $os in
        # Sometimes we do "kernel-libc", so those need to count as OSes.
-       musl* | newlib* | uclibc*)
+       musl* | newlib* | relibc* | uclibc*)
                ;;
        # Likewise for "kernel-abi"
        eabi* | gnueabi*)
@@ -1738,7 +1757,8 @@ case $os in
             | skyos* | haiku* | rdos* | toppers* | drops* | es* \
             | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
             | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
-            | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx*)
+            | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
+            | fiwix* | mlibc* )
                ;;
        # This one is extra strict with allowed versions
        sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
@@ -1746,6 +1766,9 @@ case $os in
                ;;
        none)
                ;;
+       kernel* )
+               # Restricted further below
+               ;;
        *)
                echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
                exit 1
@@ -1755,16 +1778,27 @@ esac
 # As a final step for OS-related things, validate the OS-kernel combination
 # (given a valid OS), if there is a kernel.
 case $kernel-$os in
-       linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* | linux-musl* | linux-uclibc* )
+       linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \
+                  | linux-musl* | linux-relibc* | linux-uclibc* | linux-mlibc* )
                ;;
        uclinux-uclibc* )
                ;;
-       -dietlibc* | -newlib* | -musl* | -uclibc* )
+       managarm-mlibc* | managarm-kernel* )
+               ;;
+       -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* | -mlibc* )
                # These are just libc implementations, not actual OSes, and thus
                # require a kernel.
                echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
                exit 1
                ;;
+       -kernel* )
+               echo "Invalid configuration \`$1': \`$os' needs explicit kernel." 1>&2
+               exit 1
+               ;;
+       *-kernel* )
+               echo "Invalid configuration \`$1': \`$kernel' does not support \`$os'." 1>&2
+               exit 1
+               ;;
        kfreebsd*-gnu* | kopensolaris*-gnu*)
                ;;
        vxworks-simlinux | vxworks-simwindows | vxworks-spe)
index 715e343..ce5c2f7 100755 (executable)
@@ -1,9 +1,9 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2018-03-07.03; # UTC
+scriptversion=2022-09-18.14; # UTC
 
-# Copyright (C) 1999-2021 Free Software Foundation, Inc.
+# Copyright (C) 1999-2023 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -113,7 +113,6 @@ nl='
 # These definitions help.
 upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
 lower=abcdefghijklmnopqrstuvwxyz
-digits=0123456789
 alpha=${upper}${lower}
 
 if test -z "$depmode" || test -z "$source" || test -z "$object"; then
@@ -198,7 +197,7 @@ gcc3)
   ;;
 
 gcc)
-## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
+## Note that this doesn't just cater to obsolete pre-3.x GCC compilers.
 ## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
 ## (see the conditional assignment to $gccflag above).
 ## There are various ways to get dependency output from gcc.  Here's
index 5605f42..3402bae 100755 (executable)
@@ -7,7 +7,7 @@ VERSION=2018-03-07.03 # UTC
 
 # Note: this is a bash script (could be zsh or dash)
 
-# Copyright (C) 2009-2021 Free Software Foundation, Inc.
+# Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -125,7 +125,7 @@ prev_ver=$(cat .prev-version) \
   || die 'failed to determine previous version number from .prev-version'
 
 # Verify that $ver is sensible (> .prev-version).
-case $(printf "$prev_ver\n$ver\n"|sort -V -u|tr '\n' ':') in
+case $(printf "%s\n%s\n" "$prev_ver" "$ver"|sort -V -u|tr '\n' ':') in
   "$prev_ver:$ver:") ;;
   *) die "invalid version: $ver (<= $prev_ver)";;
 esac
@@ -165,7 +165,7 @@ perl -MPOSIX -ni -e 'my $today = strftime "%F", localtime time;' \
  -e 'print $.==3 ? "$pfx $ver ($today) [$type]\n" : $_' \
      NEWS || die 'failed to update NEWS'
 
-printf "version $ver\n\n* NEWS: Record release date.\n" \
+printf "version %s\n\n* NEWS: Record release date.\n" "$ver" \
     | git commit -F -  -a || die 'git commit failed'
 git tag -s -m "$pkg $ver" v$ver HEAD || die 'git tag failed'
 
index 1241ee3..1ad5cf4 100755 (executable)
@@ -2,13 +2,13 @@
 # gendocs.sh -- generate a GNU manual in many formats.  This script is
 #   mentioned in maintain.texi.  See the help message below for usage details.
 
-scriptversion=2021-07-19.18
+scriptversion=2023-01-21.00
 
-# Copyright 2003-2021 Free Software Foundation, Inc.
+# Copyright 2003-2023 Free Software Foundation, Inc.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
+# the Free Software Foundation, either version 3 of the License, or
 # (at your option) any later version.
 #
 # This program is distributed in the hope that it will be useful,
@@ -40,22 +40,22 @@ srcdir=`pwd`
 scripturl="https://git.savannah.gnu.org/cgit/gnulib.git/plain/build-aux/gendocs.sh"
 templateurl="https://git.savannah.gnu.org/cgit/gnulib.git/plain/doc/gendocs_template"
 
-: ${SETLANG="env LANG= LC_MESSAGES= LC_ALL= LANGUAGE="}
-: ${MAKEINFO="makeinfo"}
-: ${TEXI2DVI="texi2dvi"}
-: ${DOCBOOK2HTML="docbook2html"}
-: ${DOCBOOK2PDF="docbook2pdf"}
-: ${DOCBOOK2TXT="docbook2txt"}
-: ${GENDOCS_TEMPLATE_DIR="."}
-: ${PERL='perl'}
-: ${TEXI2HTML="texi2html"}
+: "${SETLANG="env LANG= LC_TIME= LC_MESSAGES= LC_ALL= LANGUAGE="}"
+: "${MAKEINFO="makeinfo"}"
+: "${TEXI2DVI="texi2dvi"}"
+: "${DOCBOOK2HTML="docbook2html"}"
+: "${DOCBOOK2PDF="docbook2pdf"}"
+: "${DOCBOOK2TXT="docbook2txt"}"
+: "${GENDOCS_TEMPLATE_DIR="."}"
+: "${PERL="perl"}"
+: "${TEXI2HTML="texi2html"}"
 unset CDPATH
 unset use_texi2html
 
 MANUAL_TITLE=
 PACKAGE=
 EMAIL=webmasters@gnu.org  # please override with --email
-commonarg= # passed to all makeinfo/texi2html invcations.
+commonarg= # passed to all makeinfo/texi2html invocations.
 dirargs=   # passed to all tools (-I dir).
 dirs=      # -I directories.
 htmlarg="--css-ref=https://www.gnu.org/software/gnulib/manual.css -c TOP_NODE_UP_URL=/manual"
@@ -73,7 +73,7 @@ texarg="-t @finalout"
 
 version="gendocs.sh $scriptversion
 
-Copyright 2021 Free Software Foundation, Inc.
+Copyright 2023 Free Software Foundation, Inc.
 There is NO warranty.  You may redistribute this software
 under the terms of the GNU General Public License.
 For more information about these matters, see the files named COPYING."
@@ -304,7 +304,7 @@ fi  # end info
 # \f
 if $generate_tex; then
   cmd="$SETLANG $TEXI2DVI $dirargs $texarg \"$srcfile\""
-  printf "\nGenerating dvi... ($cmd)\n"
+  printf "\nGenerating dvi... (%s)\n" "$cmd"
   eval "$cmd"
   # compress/finish dvi:
   gzip -f -9 $PACKAGE.dvi
@@ -313,7 +313,7 @@ if $generate_tex; then
   ls -l "$outdir/$PACKAGE.dvi.gz"
 
   cmd="$SETLANG $TEXI2DVI --pdf $dirargs $texarg \"$srcfile\""
-  printf "\nGenerating pdf... ($cmd)\n"
+  printf "\nGenerating pdf... (%s)\n" "$cmd"
   eval "$cmd"
   pdf_size=`calcsize $PACKAGE.pdf`
   mv $PACKAGE.pdf "$outdir/"
@@ -324,7 +324,7 @@ fi # end tex (dvi + pdf)
 if $generate_ascii; then
   opt="-o $PACKAGE.txt --no-split --no-headers $commonarg"
   cmd="$SETLANG $MAKEINFO $opt \"$srcfile\""
-  printf "\nGenerating ascii... ($cmd)\n"
+  printf "\nGenerating ascii... (%s)\n" "$cmd"
   eval "$cmd"
   ascii_size=`calcsize $PACKAGE.txt`
   gzip -f -9 -c $PACKAGE.txt >"$outdir/$PACKAGE.txt.gz"
@@ -341,7 +341,7 @@ html_split()
 {
   opt="--split=$1 --node-files $commonarg $htmlarg"
   cmd="$SETLANG $TEXI2HTML --output $PACKAGE.html $opt \"$srcfile\""
-  printf "\nGenerating html by $1... ($cmd)\n"
+  printf "\nGenerating html by %s... (%s)\n" "$1" "$cmd"
   eval "$cmd"
   split_html_dir=$PACKAGE.html
   (
@@ -359,7 +359,7 @@ html_split()
 if test -z "$use_texi2html"; then
   opt="--no-split --html -o $PACKAGE.html $commonarg $htmlarg"
   cmd="$SETLANG $MAKEINFO $opt \"$srcfile\""
-  printf "\nGenerating monolithic html... ($cmd)\n"
+  printf "\nGenerating monolithic html... (%s)\n" "$cmd"
   rm -rf $PACKAGE.html  # in case a directory is left over
   eval "$cmd"
   html_mono_size=`calcsize $PACKAGE.html`
@@ -380,7 +380,7 @@ if test -z "$use_texi2html"; then
   #
   opt="--html -o $PACKAGE.html $split_arg $commonarg $htmlarg"
   cmd="$SETLANG $MAKEINFO $opt \"$srcfile\""
-  printf "\nGenerating html by $split... ($cmd)\n"
+  printf "\nGenerating html by %s... (%s)\n" "$split" "$cmd"
   eval "$cmd"
   split_html_dir=$PACKAGE.html
   copy_images $split_html_dir/ $split_html_dir/*.html
@@ -398,7 +398,7 @@ if test -z "$use_texi2html"; then
 else # use texi2html:
   opt="--output $PACKAGE.html $commonarg $htmlarg"
   cmd="$SETLANG $TEXI2HTML $opt \"$srcfile\""
-  printf "\nGenerating monolithic html with texi2html... ($cmd)\n"
+  printf "\nGenerating monolithic html with texi2html... (%s)\n" "$cmd"
   rm -rf $PACKAGE.html  # in case a directory is left over
   eval "$cmd"
   html_mono_size=`calcsize $PACKAGE.html`
@@ -428,7 +428,7 @@ texi_tgz_size=`calcsize "$outdir/$PACKAGE.texi.tar.gz"`
 if test -n "$docbook"; then
   opt="-o - --docbook $commonarg"
   cmd="$SETLANG $MAKEINFO $opt \"$srcfile\" >${srcdir}/$PACKAGE-db.xml"
-  printf "\nGenerating docbook XML... ($cmd)\n"
+  printf "\nGenerating docbook XML... (%s)\n" "$cmd"
   eval "$cmd"
   docbook_xml_size=`calcsize $PACKAGE-db.xml`
   gzip -f -9 -c $PACKAGE-db.xml >"$outdir/$PACKAGE-db.xml.gz"
@@ -438,7 +438,7 @@ if test -n "$docbook"; then
   split_html_db_dir=html_node_db
   opt="$commonarg -o $split_html_db_dir"
   cmd="$DOCBOOK2HTML $opt \"${outdir}/$PACKAGE-db.xml\""
-  printf "\nGenerating docbook HTML... ($cmd)\n"
+  printf "\nGenerating docbook HTML... (%s)\n" "$cmd"
   eval "$cmd"
   (
     cd ${split_html_db_dir} || exit 1
@@ -451,20 +451,20 @@ if test -n "$docbook"; then
   rmdir ${split_html_db_dir}
 
   cmd="$DOCBOOK2TXT \"${outdir}/$PACKAGE-db.xml\""
-  printf "\nGenerating docbook ASCII... ($cmd)\n"
+  printf "\nGenerating docbook ASCII... (%s)\n" "$cmd"
   eval "$cmd"
   docbook_ascii_size=`calcsize $PACKAGE-db.txt`
   mv $PACKAGE-db.txt "$outdir/"
 
   cmd="$DOCBOOK2PDF \"${outdir}/$PACKAGE-db.xml\""
-  printf "\nGenerating docbook PDF... ($cmd)\n"
+  printf "\nGenerating docbook PDF... (%s)\n" "$cmd"
   eval "$cmd"
   docbook_pdf_size=`calcsize $PACKAGE-db.pdf`
   mv $PACKAGE-db.pdf "$outdir/"
 fi
 
 # \f
-printf "\nMaking index.html for $PACKAGE...\n"
+printf "\nMaking index.html for %s...\n" "$PACKAGE"
 if test -z "$use_texi2html"; then
   CONDS="/%%IF  *HTML_SECTION%%/,/%%ENDIF  *HTML_SECTION%%/d;\
          /%%IF  *HTML_CHAPTER%%/,/%%ENDIF  *HTML_CHAPTER%%/d"
index da525aa..a72057b 100755 (executable)
@@ -1,12 +1,12 @@
 #!/bin/sh
 # Print a version string.
-scriptversion=2019-10-13.15; # UTC
+scriptversion=2022-07-09.08; # UTC
 
-# Copyright (C) 2007-2021 Free Software Foundation, Inc.
+# Copyright (C) 2007-2023 Free Software Foundation, Inc.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
+# the Free Software Foundation, either version 3 of the License, or
 # (at your option) any later version.
 #
 # This program is distributed in the hope that it will be useful,
@@ -65,9 +65,10 @@ scriptversion=2019-10-13.15; # UTC
 # EXTRA_DIST = $(top_srcdir)/.version
 # BUILT_SOURCES = $(top_srcdir)/.version
 # $(top_srcdir)/.version:
-#      echo $(VERSION) > $@-t && mv $@-t $@
+#      echo '$(VERSION)' > $@-t
+#      mv $@-t $@
 # dist-hook:
-#      echo $(VERSION) > $(distdir)/.tarball-version
+#      echo '$(VERSION)' > $(distdir)/.tarball-version
 
 
 me=$0
@@ -93,7 +94,7 @@ Options:
    --help             display this help and exit
    --version          output version information and exit
 
-Running without arguments will suffice in most cases."
+Send patches and bug reports to <bug-gnulib@gnu.org>."
 
 prefix=v
 fallback=
index 9ff15f6..4678bad 100755 (executable)
@@ -3,7 +3,7 @@
 
 # Convert git log output to ChangeLog format.
 
-# Copyright (C) 2008-2021 Free Software Foundation, Inc.
+# Copyright (C) 2008-2023 Free Software Foundation, Inc.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -35,7 +35,7 @@
 eval 'exec perl -wSx "$0" "$@"'
      if 0;
 
-my $VERSION = '2021-02-24 23:42'; # UTC
+my $VERSION = '2022-01-27 18:49'; # UTC
 # The definition above must lie within the first 8 lines in order
 # for the Emacs time-stamp write hook (at end) to update it.
 # If you change this file with Emacs, please let the write hook
index cc553f9..a804031 100755 (executable)
@@ -2,9 +2,9 @@
 # Run this after each non-alpha release, to update the web documentation at
 # https://www.gnu.org/software/$pkg/manual/
 
-VERSION=2021-01-09.09; # UTC
+VERSION=2023-03-23.02; # UTC
 
-# Copyright (C) 2009-2021 Free Software Foundation, Inc.
+# Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -153,8 +153,8 @@ cleanup()
   $GIT branch -d $tmp_branch
   exit $__st
 }
-trap cleanup 0
-trap 'exit $?' 1 2 13 15
+trap cleanup EXIT
+trap 'exit $?' HUP INT PIPE TERM
 
 # We must build using sources for which --version reports the
 # just-released version number, not some string like 7.6.18-20761.
@@ -175,10 +175,13 @@ set +e
 
 tmp=$(mktemp -d web-doc-update.XXXXXX) || exit 1
 ( cd $tmp \
-    && $CVS -d $cvs_user@cvs.sv.gnu.org:/webcvs/$pkg co $pkg )
+    && $CVS -d $cvs_user@cvs.savannah.gnu.org:/webcvs/$pkg co $pkg )
 $RSYNC -avP "$builddir"/doc/manual/ $tmp/$pkg/manual
 
 (
+  cd $tmp/$pkg
+  test -d manual/CVS || $dryrun $CVS add -ko manual
+
   cd $tmp/$pkg/manual
 
   # Add all the files.  This is simpler than trying to add only the
index e7822ae..3e8f102 100755 (executable)
@@ -1,9 +1,9 @@
 #!/bin/sh
 # Sign files and upload them.
 
-scriptversion=2021-04-11.09; # UTC
+scriptversion=2022-01-27.18; # UTC
 
-# Copyright (C) 2004-2021 Free Software Foundation, Inc.
+# Copyright (C) 2004-2023 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -398,7 +398,7 @@ upload ()
       for f in $files $base.directive.asc
       do
         echo put $f
-      done | $dbg sftp -b - puszcza.gnu.org.ua:/incoming/$destdir_topdir
+      done | $dbg sftp -b - download.gnu.org.ua:/incoming/$destdir_topdir
       ;;
     /*)
       dest_host=`echo "$dest" | sed 's,:.*,,'`
index e6d572d..6947add 100755 (executable)
@@ -3,7 +3,7 @@
 
 scriptversion=2018-03-07.03; # UTC
 
-# Copyright (C) 1995-2021 Free Software Foundation, Inc.
+# Copyright (C) 1995-2023 Free Software Foundation, Inc.
 # written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, June 1995
 #
 # This program is free software; you can redistribute it and/or modify
index 1fe1611..9181a21 100755 (executable)
@@ -3,7 +3,7 @@
 
 scriptversion=2018-03-07.03; # UTC
 
-# Copyright (C) 1996-2021 Free Software Foundation, Inc.
+# Copyright (C) 1996-2023 Free Software Foundation, Inc.
 # Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
 
 # This program is free software; you can redistribute it and/or modify
index be73b80..720c084 100755 (executable)
@@ -3,7 +3,7 @@
 
 scriptversion=2018-03-07.03; # UTC
 
-# Copyright (C) 2011-2021 Free Software Foundation, Inc.
+# Copyright (C) 2011-2023 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
index e48383d..a32c841 100644 (file)
@@ -3,9 +3,9 @@
 % Load plain if necessary, i.e., if running under initex.
 \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
 %
-\def\texinfoversion{2021-04-25.21}
+\def\texinfoversion{2023-03-27.21}
 %
-% Copyright 1985, 1986, 1988, 1990-2021 Free Software Foundation, Inc.
+% Copyright 1985, 1986, 1988, 1990-2023 Free Software Foundation, Inc.
 %
 % This texinfo.tex file is free software: you can redistribute it and/or
 % modify it under the terms of the GNU General Public License as
 
 \message{Loading texinfo [version \texinfoversion]:}
 
-% If in a .fmt file, print the version number
-% and turn on active characters that we couldn't do earlier because
-% they might have appeared in the input file name.
-\everyjob{\message{[Texinfo version \texinfoversion]}%
-  \catcode`+=\active \catcode`\_=\active}
-
 % LaTeX's \typeout.  This ensures that the messages it is used for
 % are identical in format to the corresponding ones from latex/pdflatex.
 \def\typeout{\immediate\write17}%
 %
 \def\finalout{\overfullrule=0pt }
 
-\newdimen\outerhsize \newdimen\outervsize % set by the paper size routines
-\newdimen\topandbottommargin \topandbottommargin=.75in
-
 % Output a mark which sets \thischapter, \thissection and \thiscolor.
 % We dump everything together because we only have one kind of mark.
 % This works because we only use \botmark / \topmark, not \firstmark.
 \newbox\footlinebox
 
 % When outputting the double column layout for indices, an output routine
-% is run several times, which hides the original value of \topmark.  This
-% can lead to a page heading being output and duplicating the chapter heading
-% of the index.  Hence, save the contents of \topmark at the beginning of
-% the output routine.  The saved contents are valid until we actually
-% \shipout a page.
-%
-% (We used to run a short output routine to actually set \topmark and
-% \firstmark to the right values, but if this was called with an empty page
-% containing whatsits for writing index entries, the whatsits would be thrown
-% away and the index auxiliary file would remain empty.)
+% is run several times, hiding the original value of \topmark.  Hence, save
+% \topmark at the beginning.
 %
 \newtoks\savedtopmark
 \newif\iftopmarksaved
   %
   \checkchapterpage
   %
-  % Retrieve the information for the headings from the marks in the page,
-  % and call Plain TeX's \makeheadline and \makefootline, which use the
-  % values in \headline and \footline.
-  %
-  % Common context changes for both heading and footing.
-  % Do this outside of the \shipout so @code etc. will be expanded in
-  % the headline as they should be, not taken literally (outputting ''code).
+  % Make the heading and footing.  \makeheadline and \makefootline
+  % use the contents of \headline and \footline.
   \def\commonheadfootline{\let\hsize=\txipagewidth \texinfochars}
-  %
   \ifodd\pageno \getoddheadingmarks \else \getevenheadingmarks \fi
   \global\setbox\headlinebox = \vbox{\commonheadfootline \makeheadline}%
   \ifodd\pageno \getoddfootingmarks \else \getevenfootingmarks \fi
 
 % ... but they get defined via ``\envdef\foo{...}'':
 \long\def\envdef#1#2{\def#1{\startenvironment#1#2}}
-\def\envparseargdef#1#2{\parseargdef#1{\startenvironment#1#2}}
+\long\def\envparseargdef#1#2{\parseargdef#1{\startenvironment#1#2}}
 
 % Check whether we're in the right environment:
 \def\checkenv#1{%
 % @/ allows a line break.
 \let\/=\allowbreak
 
+% @- allows explicit insertion of hyphenation points
+\def\-{\discretionary{\normaldash}{}{}}%
+
 % @. is an end-of-sentence period.
 \def\.{.\spacefactor=\endofsentencespacefactor\space}
 
 % @? is an end-of-sentence query.
 \def\?{?\spacefactor=\endofsentencespacefactor\space}
 
-% @frenchspacing on|off  says whether to put extra space after punctuation.
-%
-\def\onword{on}
-\def\offword{off}
-%
-\parseargdef\frenchspacing{%
-  \def\temp{#1}%
-  \ifx\temp\onword \plainfrenchspacing
-  \else\ifx\temp\offword \plainnonfrenchspacing
-  \else
-    \errhelp = \EMsimple
-    \errmessage{Unknown @frenchspacing option `\temp', must be on|off}%
-  \fi\fi
-}
-
 % @w prevents a word break.  Without the \leavevmode, @w at the
 % beginning of a paragraph, when TeX is still in vertical mode, would
 % produce a whole line of output instead of starting the paragraph.
@@ -725,32 +690,22 @@ where each line of input produces a line of output.}
   \dimen2 = \ht\strutbox
   \advance\dimen2 by \dp\strutbox
   \ifdim\dimen0 > \dimen2
+    % This is similar to the 'needspace' module in LaTeX.
+    % The first penalty allows a break if the end of the page is
+    % not too far away.  Following penalties and skips are discarded.
+    % Otherwise, require at least \dimen0 of vertical space.
     %
-    % Do a \strut just to make the height of this box be normal, so the
-    % normal leading is inserted relative to the preceding line.
-    % And a page break here is fine.
-    \vtop to #1\mil{\strut\vfil}%
-    %
-    % TeX does not even consider page breaks if a penalty added to the
-    % main vertical list is 10000 or more.  But in order to see if the
-    % empty box we just added fits on the page, we must make it consider
-    % page breaks.  On the other hand, we don't want to actually break the
-    % page after the empty box.  So we use a penalty of 9999.
-    %
-    % There is an extremely small chance that TeX will actually break the
-    % page at this \penalty, if there are no other feasible breakpoints in
-    % sight.  (If the user is using lots of big @group commands, which
-    % almost-but-not-quite fill up a page, TeX will have a hard time doing
-    % good page breaking, for example.)  However, I could not construct an
-    % example where a page broke at this \penalty; if it happens in a real
-    % document, then we can reconsider our strategy.
+    % (We used to use a \vtop to reserve space, but this had spacing issues
+    % when followed by a section heading, as it was not a "discardable item".
+    % This also has the benefit of providing glue before the page break if
+    % there isn't enough space.)
+    \vskip0pt plus \dimen0
+    \penalty-100
+    \vskip0pt plus -\dimen0
+    \vskip \dimen0
     \penalty9999
-    %
-    % Back up by the size of the box, whether we did a page break or not.
-    \kern -#1\mil
-    %
-    % Do not allow a page break right after this kern.
-    \nobreak
+    \vskip -\dimen0
+    \penalty0\relax % this hides the above glue from \safewhatsit and \dobreak
   \fi
 }
 
@@ -1147,27 +1102,33 @@ where each line of input produces a line of output.}
 
 % Output page labels information.
 % See PDF reference v.1.7 p.594, section 8.3.1.
+% Page label ranges must be increasing.
 \ifpdf
 \def\pagelabels{%
   \def\title{0 << /P (T-) /S /D >>}%
-  \edef\roman{\the\romancount << /S /r >>}%
-  \edef\arabic{\the\arabiccount << /S /D >>}%
-  %
-  % Page label ranges must be increasing.  Remove any duplicates.
-  % (There is a slight chance of this being wrong if e.g. there is
-  % a @contents but no @titlepage, etc.)
   %
-  \ifnum\romancount=0 \def\roman{}\fi
-  \ifnum\arabiccount=0 \def\title{}%
-  \else
-    \ifnum\romancount=\arabiccount \def\roman{}\fi
-  \fi
-  %
-  \ifnum\romancount<\arabiccount
-    \pdfcatalog{/PageLabels << /Nums [\title \roman \arabic ] >> }\relax
+  % support @contents at very end of document
+  \ifnum\contentsendcount=\pagecount
+    \ifnum\arabiccount<\romancount
+      \pdfcatalog{/PageLabels << /Nums
+                  [\title
+                   \the\arabiccount << /S /D >>
+                   \the\romancount << /S /r >>
+                  ] >> }\relax
+    \fi
+  % no contents in document
+  \else\ifnum\contentsendcount=0
+    \pdfcatalog{/PageLabels << /Nums
+                [\title
+                 \the\arabiccount << /S /D >>
+                ] >> }\relax
   \else
-    \pdfcatalog{/PageLabels << /Nums [\title \arabic \roman ] >> }\relax
-  \fi
+    \pdfcatalog{/PageLabels << /Nums
+                [\title
+                 \the\romancount << /S /r >>
+                 \the\contentsendcount << /S /D >>
+                ] >> }\relax
+  \fi\fi
 }
 \else
   \let\pagelabels\relax
@@ -1176,6 +1137,8 @@ where each line of input produces a line of output.}
 \newcount\pagecount \pagecount=0
 \newcount\romancount \romancount=0
 \newcount\arabiccount \arabiccount=0
+\newcount\contentsendcount \contentsendcount=0
+
 \ifpdf
   \let\ptxadvancepageno\advancepageno
   \def\advancepageno{%
@@ -1239,13 +1202,17 @@ output) for that.)}
   %
   % Set color, and create a mark which defines \thiscolor accordingly,
   % so that \makeheadline knows which color to restore.
+  \def\curcolor{0 0 0}%
   \def\setcolor#1{%
-    \xdef\currentcolordefs{\gdef\noexpand\thiscolor{#1}}%
-    \domark
-    \pdfsetcolor{#1}%
+    \ifx#1\curcolor\else
+      \xdef\currentcolordefs{\gdef\noexpand\thiscolor{#1}}%
+      \domark
+      \pdfsetcolor{#1}%
+      \xdef\curcolor{#1}%
+    \fi
   }
   %
-  \def\maincolor{\rgbBlack}
+  \let\maincolor\rgbBlack
   \pdfsetcolor{\maincolor}
   \edef\thiscolor{\maincolor}
   \def\currentcolordefs{}
@@ -1401,7 +1368,7 @@ output) for that.)}
   %
   % by default, use black for everything.
   \def\urlcolor{\rgbBlack}
-  \def\linkcolor{\rgbBlack}
+  \let\linkcolor\rgbBlack
   \def\endlink{\setcolor{\maincolor}\pdfendlink}
   %
   % Adding outlines to PDF; macros for calculating structure of outlines
@@ -1579,9 +1546,10 @@ output) for that.)}
     \next}
   \def\makelink{\addtokens{\toksB}%
     {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0}
-  \def\pdflink#1{%
+  \def\pdflink#1{\pdflinkpage{#1}{#1}}%
+  \def\pdflinkpage#1#2{%
     \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}}
-    \setcolor{\linkcolor}#1\endlink}
+    \setcolor{\linkcolor}#2\endlink}
   \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st}
 \else
   % non-pdf mode
@@ -1828,10 +1796,11 @@ output) for that.)}
     \next}
   \def\makelink{\addtokens{\toksB}%
     {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0}
-  \def\pdflink#1{%
+  \def\pdflink#1{\pdflinkpage{#1}{#1}}%
+  \def\pdflinkpage#1#2{%
     \special{pdf:bann << /Border [0 0 0]
       /Type /Annot /Subtype /Link /A << /S /GoTo /D (#1) >> >>}%
-    \setcolor{\linkcolor}#1\endlink}
+    \setcolor{\linkcolor}#2\endlink}
   \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st}
 %
   %
@@ -2176,6 +2145,11 @@ end
     \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}%
   }%
 \fi\fi
+%
+% This is what gets called when #5 of \setfont is empty.
+\let\cmap\gobble
+%
+% (end of cmaps)
 
 
 % Set the font macro #1 to the font named \fontprefix#2.
@@ -2191,11 +2165,10 @@ end
 \def\setfont#1#2#3#4#5{%
   \font#1=\fontprefix#2#3 scaled #4
   \csname cmap#5\endcsname#1%
+  \ifx#2\ttshape\hyphenchar#1=-1 \fi
+  \ifx#2\ttbshape\hyphenchar#1=-1 \fi
+  \ifx#2\ttslshape\hyphenchar#1=-1 \fi
 }
-% This is what gets called when #5 of \setfont is empty.
-\let\cmap\gobble
-%
-% (end of cmaps)
 
 % Use cm as the default font prefix.
 % To specify the font prefix, you must define \fontprefix
@@ -2558,7 +2531,7 @@ end
 \def\it{\fam=\itfam \setfontstyle{it}}
 \def\sl{\fam=\slfam \setfontstyle{sl}}
 \def\bf{\fam=\bffam \setfontstyle{bf}}\def\bfstylename{bf}
-\def\tt{\fam=\ttfam \setfontstyle{tt}}\def\ttstylename{tt}
+\def\tt{\fam=\ttfam \setfontstyle{tt}}
 
 % Texinfo sort of supports the sans serif font style, which plain TeX does not.
 % So we set up a \sf.
@@ -2586,34 +2559,30 @@ end
   \scriptfont\sffam=\sevensf
 }
 
-%
 
-% The font-changing commands (all called \...fonts) redefine the meanings
-% of \STYLEfont, instead of just \STYLE.  We do this because \STYLE needs
-% to also set the current \fam for math mode.  Our \STYLE (e.g., \rm)
-% commands hardwire \STYLEfont to set the current font.
-%
-% The fonts used for \ifont are for "math italics"  (\itfont is for italics
-% in regular text).  \syfont is also used in math mode only.
-%
-% Each font-changing command also sets the names \lsize (one size lower)
-% and \lllsize (three sizes lower).  These relative commands are used
-% in, e.g., the LaTeX logo and acronyms.
-%
-% This all needs generalizing, badly.
+
+% \defineassignfonts{SIZE} -
+%   Define sequence \assignfontsSIZE, which switches between font sizes
+% by redefining the meanings of \STYLEfont.  (Just \STYLE additionally sets
+% the current \fam for math mode.)
 %
+\def\defineassignfonts#1{%
+  \expandafter\edef\csname assignfonts#1\endcsname{%
+    \let\noexpand\rmfont\csname #1rm\endcsname
+    \let\noexpand\itfont\csname #1it\endcsname
+    \let\noexpand\slfont\csname #1sl\endcsname
+    \let\noexpand\bffont\csname #1bf\endcsname
+    \let\noexpand\ttfont\csname #1tt\endcsname
+    \let\noexpand\smallcaps\csname #1sc\endcsname
+    \let\noexpand\sffont  \csname #1sf\endcsname
+    \let\noexpand\ifont   \csname #1i\endcsname
+    \let\noexpand\syfont  \csname #1sy\endcsname
+    \let\noexpand\ttslfont\csname #1ttsl\endcsname
+  }
+}
 
 \def\assignfonts#1{%
-  \expandafter\let\expandafter\rmfont\csname #1rm\endcsname
-  \expandafter\let\expandafter\itfont\csname #1it\endcsname
-  \expandafter\let\expandafter\slfont\csname #1sl\endcsname
-  \expandafter\let\expandafter\bffont\csname #1bf\endcsname
-  \expandafter\let\expandafter\ttfont\csname #1tt\endcsname
-  \expandafter\let\expandafter\smallcaps\csname #1sc\endcsname
-  \expandafter\let\expandafter\sffont  \csname #1sf\endcsname
-  \expandafter\let\expandafter\ifont   \csname #1i\endcsname
-  \expandafter\let\expandafter\syfont  \csname #1sy\endcsname
-  \expandafter\let\expandafter\ttslfont\csname #1ttsl\endcsname
+  \csname assignfonts#1\endcsname
 }
 
 \newif\ifrmisbold
@@ -2637,12 +2606,21 @@ end
    \csname\curfontstyle\endcsname
 }%
 
+% Define the font-changing commands (all called \...fonts).
+% Each font-changing command also sets the names \lsize (one size lower)
+% and \lllsize (three sizes lower).  These relative commands are used
+% in, e.g., the LaTeX logo and acronyms.
+%
+% Note: The fonts used for \ifont are for "math italics"  (\itfont is for
+% italics in regular text).  \syfont is also used in math mode only.
+%
 \def\definefontsetatsize#1#2#3#4#5{%
+  \defineassignfonts{#1}%
 \expandafter\def\csname #1fonts\endcsname{%
   \def\curfontsize{#1}%
   \def\lsize{#2}\def\lllsize{#3}%
   \csname rmisbold#5\endcsname
-  \assignfonts{#1}%
+  \csname assignfonts#1\endcsname
   \resetmathfonts
   \setleading{#4}%
 }}
@@ -2687,9 +2665,22 @@ end
 % Check if we are currently using a typewriter font.  Since all the
 % Computer Modern typewriter fonts have zero interword stretch (and
 % shrink), and it is reasonable to expect all typewriter fonts to have
-% this property, we can check that font parameter.
-%
-\def\ifmonospace{\ifdim\fontdimen3\font=0pt }
+% this property, we can check that font parameter. #1 is what to
+% print if we are indeed using \tt; #2 is what to print otherwise.
+\def\ifusingtt#1#2{\ifdim \fontdimen3\font=0pt #1\else #2\fi}
+
+% Same as above, but check for italic font.  Actually this also catches
+% non-italic slanted fonts since it is impossible to distinguish them from
+% italic fonts.  But since this is only used by $ and it uses \sl anyway
+% this is not a problem.
+\def\ifusingit#1#2{\ifdim \fontdimen1\font>0pt #1\else #2\fi}
+
+
+% Check if internal flag is clear, i.e. has not been @set.
+\def\ifflagclear#1#2#3{%
+  \expandafter\ifx\csname SET#1\endcsname\relax
+  #2\else#3\fi
+}
 
 {
 \catcode`\'=\active
@@ -2698,41 +2689,33 @@ end
 \gdef\setcodequotes{\let`\codequoteleft \let'\codequoteright}
 \gdef\setregularquotes{\let`\lq \let'\rq}
 }
+\setregularquotes
 
-% Allow an option to not use regular directed right quote/apostrophe
-% (char 0x27), but instead the undirected quote from cmtt (char 0x0d).
-% The undirected quote is ugly, so don't make it the default, but it
-% works for pasting with more pdf viewers (at least evince), the
-% lilypond developers report.  xpdf does work with the regular 0x27.
+% output for ' in @code
+% in tt font hex 0D (undirected) or 27 (curly right quote)
 %
 \def\codequoteright{%
-  \ifmonospace
-    \expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax
-      \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax
-        '%
-      \else \char'15 \fi
-    \else \char'15 \fi
-   \else
-     '%
-   \fi
+  \ifusingtt
+      {\ifflagclear{txicodequoteundirected}%
+          {\ifflagclear{codequoteundirected}%
+              {'}%
+              {\char"0D }}%
+          {\char"0D }}%
+      {'}%
 }
-%
-% and a similar option for the left quote char vs. a grave accent.
-% Modern fonts display ASCII 0x60 as a grave accent, so some people like
-% the code environments to do likewise.
+
+% output for ` in @code
+% in tt font hex 12 (grave accent) or 60 (curly left quote)
+% \relax disables Spanish ligatures ?` and !` of \tt font.
 %
 \def\codequoteleft{%
-  \ifmonospace
-    \expandafter\ifx\csname SETtxicodequotebacktick\endcsname\relax
-      \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax
-        % [Knuth] pp. 380,381,391
-        % \relax disables Spanish ligatures ?` and !` of \tt font.
-        \relax`%
-      \else \char'22 \fi
-    \else \char'22 \fi
-   \else
-     \relax`%
-   \fi
+  \ifusingtt
+      {\ifflagclear{txicodequotebacktick}%
+          {\ifflagclear{codequotebacktick}%
+              {\relax`}%
+              {\char"12 }}%
+          {\char"12 }}%
+      {\relax`}%
 }
 
 % Commands to set the quote options.
@@ -2750,7 +2733,7 @@ end
     \errmessage{Unknown @codequoteundirected value `\temp', must be on|off}%
   \fi\fi
 }
-%
+
 \parseargdef\codequotebacktick{%
   \def\temp{#1}%
   \ifx\temp\onword
@@ -2765,6 +2748,11 @@ end
   \fi\fi
 }
 
+% Turn them on by default
+\let\SETtxicodequoteundirected = t
+\let\SETtxicodequotebacktick = t
+
+
 % [Knuth] pp. 380,381,391, disable Spanish ligatures ?` and !` of \tt font.
 \def\noligaturesquoteleft{\relax\lq}
 
@@ -2779,15 +2767,16 @@ end
 \def\dosmartslant#1#2{%
   \ifusingtt
     {{\ttsl #2}\let\next=\relax}%
-    {\def\next{{#1#2}\futurelet\next\smartitaliccorrection}}%
+    {\def\next{{#1#2}\smartitaliccorrection}}%
   \next
 }
 \def\smartslanted{\dosmartslant\sl}
 \def\smartitalic{\dosmartslant\it}
 
-% Output an italic correction unless \next (presumed to be the following
-% character) is such as not to need one.
-\def\smartitaliccorrection{%
+% Output an italic correction unless the following character is such as
+% not to need one.
+\def\smartitaliccorrection{\futurelet\next\smartitaliccorrectionx}
+\def\smartitaliccorrectionx{%
   \ifx\next,%
   \else\ifx\next-%
   \else\ifx\next.%
@@ -2798,27 +2787,41 @@ end
   \aftersmartic
 }
 
-% Unconditional use \ttsl, and no ic.  @var is set to this for defuns.
-\def\ttslanted#1{{\ttsl #1}}
-
-% @cite is like \smartslanted except unconditionally use \sl.  We never want
-% ttsl for book titles, do we?
-\def\cite#1{{\sl #1}\futurelet\next\smartitaliccorrection}
+% @cite unconditionally uses \sl with \smartitaliccorrection.
+\def\cite#1{{\sl #1}\smartitaliccorrection}
 
+% @var unconditionally uses \sl.  This gives consistency for
+% parameter names whether they are in @def, @table @code or a
+% regular paragraph.
+%  To get ttsl font for @var when used in code context, @set txicodevaristt.
+% The \null is to reset \spacefactor.
 \def\aftersmartic{}
 \def\var#1{%
   \let\saveaftersmartic = \aftersmartic
   \def\aftersmartic{\null\let\aftersmartic=\saveaftersmartic}%
-  \smartslanted{#1}%
+  %
+  \ifflagclear{txicodevaristt}%
+    {\def\varnext{{{\sl #1}}\smartitaliccorrection}}%
+    {\def\varnext{\smartslanted{#1}}}%
+  \varnext
 }
 
+% To be removed after next release
+\def\SETtxicodevaristt{}% @set txicodevaristt
+
 \let\i=\smartitalic
 \let\slanted=\smartslanted
 \let\dfn=\smartslanted
 \let\emph=\smartitalic
 
-% Explicit font changes: @r, @sc, undocumented @ii.
-\def\r#1{{\rm #1}}              % roman font
+% @r for roman font, used for code comment
+\def\r#1{{%
+  \usenormaldash % get --, --- ligatures even if in @code
+  \defcharsdefault  % in case on def line
+  \rm #1}}
+{\catcode`-=\active \gdef\usenormaldash{\let-\normaldash}}
+
+% @sc, undocumented @ii.
 \def\sc#1{{\smallcaps#1}}       % smallcaps font
 \def\ii#1{{\it #1}}             % italic font
 
@@ -2829,12 +2832,8 @@ end
 % @sansserif, explicit sans.
 \def\sansserif#1{{\sf #1}}
 
-% We can't just use \exhyphenpenalty, because that only has effect at
-% the end of a paragraph.  Restore normal hyphenation at the end of the
-% group within which \nohyphenation is presumably called.
-%
-\def\nohyphenation{\hyphenchar\font = -1  \aftergroup\restorehyphenation}
-\def\restorehyphenation{\hyphenchar\font = `- }
+\newif\iffrenchspacing
+\frenchspacingfalse
 
 % Set sfcode to normal for the chars that usually have another value.
 % Can't use plain's \frenchspacing because it uses the `\x notation, and
@@ -2842,21 +2841,45 @@ end
 %
 \catcode`@=11
   \def\plainfrenchspacing{%
-    \sfcode`\.=\@m \sfcode`\?=\@m \sfcode`\!=\@m
-    \sfcode`\:=\@m \sfcode`\;=\@m \sfcode`\,=\@m
-    \def\endofsentencespacefactor{1000}% for @. and friends
+    \iffrenchspacing\else
+      \frenchspacingtrue
+      \sfcode`\.=\@m \sfcode`\?=\@m \sfcode`\!=\@m
+      \sfcode`\:=\@m \sfcode`\;=\@m \sfcode`\,=\@m
+      \def\endofsentencespacefactor{1000}% for @. and friends
+    \fi
   }
   \def\plainnonfrenchspacing{%
-    \sfcode`\.3000\sfcode`\?3000\sfcode`\!3000
-    \sfcode`\:2000\sfcode`\;1500\sfcode`\,1250
-    \def\endofsentencespacefactor{3000}% for @. and friends
+    \iffrenchspacing
+      \frenchspacingfalse
+       \sfcode`\.3000\sfcode`\?3000\sfcode`\!3000
+       \sfcode`\:2000\sfcode`\;1500\sfcode`\,1250
+       \def\endofsentencespacefactor{3000}% for @. and friends
+    \fi
   }
 \catcode`@=\other
 \def\endofsentencespacefactor{3000}% default
 
+% @frenchspacing on|off  says whether to put extra space after punctuation.
+%
+\def\onword{on}
+\def\offword{off}
+%
+\let\frenchspacingsetting\plainnonfrenchspacing % used in output routine
+\parseargdef\frenchspacing{%
+  \def\temp{#1}%
+  \ifx\temp\onword \let\frenchspacingsetting\plainfrenchspacing
+  \else\ifx\temp\offword \let\frenchspacingsetting\plainnonfrenchspacing
+  \else
+    \errhelp = \EMsimple
+    \errmessage{Unknown @frenchspacing option `\temp', must be on|off}%
+  \fi\fi
+  \frenchspacingsetting
+}
+
+
 % @t, explicit typewriter.
 \def\t#1{%
-  {\tt \plainfrenchspacing #1}%
+  {\tt \defcharsdefault \plainfrenchspacing #1}%
   \null
 }
 
@@ -2877,27 +2900,29 @@ end
     % Switch to typewriter.
     \tt
     %
-    % But `\ ' produces the large typewriter interword space.
+    % `\ ' produces the large typewriter interword space.
     \def\ {{\spaceskip = 0pt{} }}%
     %
-    % Turn off hyphenation.
-    \nohyphenation
-    %
     \plainfrenchspacing
     #1%
   }%
   \null % reset spacefactor to 1000
 }
 
-% We *must* turn on hyphenation at `-' and `_' in @code.
-% (But see \codedashfinish below.)
+% This is for LuaTeX: It is not sufficient to disable hyphenation at
+% explicit dashes by setting `\hyphenchar` to -1.
+\def\dashnobreak{%
+  \normaldash
+  \penalty 10000 }
+
+% We must turn on hyphenation at `-' and `_' in @code.
 % Otherwise, it is too hard to avoid overfull hboxes
 % in the Emacs manual, the Library manual, etc.
+% We explicitly allow hyphenation at these characters
+% using \discretionary.
 %
-% Unfortunately, TeX uses one parameter (\hyphenchar) to control
-% both hyphenation at - and hyphenation within words.
-% We must therefore turn them both off (\tclose does that)
-% and arrange explicitly to hyphenate at a dash. -- rms.
+% Hyphenation at - and hyphenation within words was turned off
+% by default for the tt fonts using the \hyphenchar parameter of TeX.
 {
   \catcode`\-=\active \catcode`\_=\active
   \catcode`\'=\active \catcode`\`=\active
@@ -2910,13 +2935,9 @@ end
      \let-\codedash
      \let_\codeunder
     \else
-     \let-\normaldash
+     \let-\dashnobreak
      \let_\realunder
     \fi
-    % Given -foo (with a single dash), we do not want to allow a break
-    % after the hyphen.
-    \global\let\codedashprev=\codedash
-    %
     \codex
   }
   %
@@ -2926,21 +2947,30 @@ end
     %
     % Now, output a discretionary to allow a line break, unless
     % (a) the next character is a -, or
-    % (b) the preceding character is a -.
+    % (b) the preceding character is a -, or
+    % (c) we are at the start of the string.
+    % In both cases (b) and (c), \codedashnobreak should be set to \codedash.
+    %
     % E.g., given --posix, we do not want to allow a break after either -.
     % Given --foo-bar, we do want to allow a break between the - and the b.
     \ifx\next\codedash \else
-      \ifx\codedashprev\codedash
+      \ifx\codedashnobreak\codedash
       \else \discretionary{}{}{}\fi
     \fi
     % we need the space after the = for the case when \next itself is a
     % space token; it would get swallowed otherwise.  As in @code{- a}.
-    \global\let\codedashprev= \next
+    \global\let\codedashnobreak= \next
   }
 }
 \def\normaldash{-}
 %
-\def\codex #1{\tclose{#1}\endgroup}
+\def\codex #1{\tclose{%
+  % Given -foo (with a single dash), we do not want to allow a break
+  % after the -.  \codedashnobreak is set to the first character in
+  % @code.
+  \futurelet\codedashnobreak\relax
+  #1%
+}\endgroup}
 
 \def\codeunder{%
   % this is all so @math{@code{var_name}+1} can work.  In math mode, _
@@ -3171,16 +3201,8 @@ end
 % Default is `distinct'.
 \kbdinputstyle distinct
 
-% @kbd is like @code, except that if the argument is just one @key command,
-% then @kbd has no effect.
-\def\kbd#1{{\def\look{#1}\expandafter\kbdsub\look??\par}}
-
-\def\xkey{\key}
-\def\kbdsub#1#2#3\par{%
-  \def\one{#1}\def\three{#3}\def\threex{??}%
-  \ifx\one\xkey\ifx\threex\three \key{#2}%
-  \else{\tclose{\kbdfont\setcodequotes\look}}\fi
-  \else{\tclose{\kbdfont\setcodequotes\look}}\fi
+\def\kbd#1{%
+  \tclose{\kbdfont\setcodequotes#1}%
 }
 
 % definition of @key that produces a lozenge.  Doesn't adjust to text size.
@@ -3193,14 +3215,9 @@ end
 %    \kern-0.4pt\hrule}%
 %  \kern-.06em\raise0.4pt\hbox{\angleright}}}}
 
-% definition of @key with no lozenge.  If the current font is already
-% monospace, don't change it; that way, we respect @kbdinputstyle.  But
-% if it isn't monospace, then use \tt.
+% definition of @key with no lozenge.
 %
-\def\key#1{{\setregularquotes
-  \nohyphenation
-  \ifmonospace\else\tt\fi
-  #1}\null}
+\def\key#1{{\setregularquotes \tt #1}\null}
 
 % @clicksequence{File @click{} Open ...}
 \def\clicksequence#1{\begingroup #1\endgroup}
@@ -3403,8 +3420,8 @@ $$%
 \let\atchar=\@
 
 % @{ @} @lbracechar{} @rbracechar{} all generate brace characters.
-\def\lbracechar{{\ifmonospace\char123\else\ensuremath\lbrace\fi}}
-\def\rbracechar{{\ifmonospace\char125\else\ensuremath\rbrace\fi}}
+\def\lbracechar{{\ifusingtt{\char123}{\ensuremath\lbrace}}}
+\def\rbracechar{{\ifusingtt{\char125}{\ensuremath\rbrace}}}
 \let\{=\lbracechar
 \let\}=\rbracechar
 
@@ -3458,8 +3475,13 @@ $$%
        % Revert to plain's \scriptsize, which is 7pt.
        \count255=\the\fam $\fam\count255 \scriptstyle A$%
      \else
-       % For 11pt, we can use our lllsize.
-       \switchtolllsize A%
+       \ifx\curfontsize\smallword
+         % For footnotes and indices
+         \count255=\the\fam $\fam\count255 \scriptstyle A$%
+       \else
+         % For 11pt, we can use our lllsize.
+         \switchtolllsize A%
+       \fi
      \fi
      }%
      \vss
@@ -3467,6 +3489,7 @@ $$%
   \kern-.15em
   \TeX
 }
+\def\smallword{small}
 
 % Some math mode symbols.  Define \ensuremath to switch into math mode
 % unless we are already there.  Expansion tricks may not be needed here,
@@ -3545,7 +3568,7 @@ $$%
 
 % @pounds{} is a sterling sign, which Knuth put in the CM italic font.
 %
-\def\pounds{\ifmonospace{\ecfont\char"BF}\else{\it\$}\fi}
+\def\pounds{{\ifusingtt{\ecfont\char"BF}{\it\$}}}
 
 % @euro{} comes from a separate font, depending on the current style.
 % We use the free feym* fonts from the eurosym package by Henrik
@@ -3614,6 +3637,9 @@ $$%
 \def\quotedblbase{{\ecfont \char"12}}
 \def\quotesinglbase{{\ecfont \char"0D}}
 %
+\def\L{{\ecfont \char"8A}} % L with stroke
+\def\l{{\ecfont \char"AA}} % l with stroke
+%
 % This positioning is not perfect (see the ogonek LaTeX package), but
 % we have the precomposed glyphs for the most common cases.  We put the
 % tests to use those glyphs in the single \ogonek macro so we have fewer
@@ -3656,18 +3682,17 @@ $$%
   % hopefully nobody will notice/care.
   \edef\ecsize{\csname\curfontsize ecsize\endcsname}%
   \edef\nominalsize{\csname\curfontsize nominalsize\endcsname}%
-  \ifmonospace
-    % typewriter:
-    \font\thisecfont = #1ctt\ecsize \space at \nominalsize
-  \else
-    \ifx\curfontstyle\bfstylename
-      % bold:
-      \font\thisecfont = #1cb\ifusingit{i}{x}\ecsize \space at \nominalsize
-    \else
-      % regular:
-      \font\thisecfont = #1c\ifusingit{ti}{rm}\ecsize \space at \nominalsize
-    \fi
-  \fi
+  \ifusingtt
+      % typewriter:
+     {\font\thisecfont = #1ctt\ecsize \space at \nominalsize}%
+  % else
+     {\ifx\curfontstyle\bfstylename
+        % bold:
+        \font\thisecfont = #1cb\ifusingit{i}{x}\ecsize \space at \nominalsize
+      \else
+        % regular:
+        \font\thisecfont = #1c\ifusingit{ti}{rm}\ecsize \space at \nominalsize
+      \fi}%
   \thisecfont
 }
 
@@ -3683,7 +3708,10 @@ $$%
 
 % @textdegree - the normal degrees sign.
 %
-\def\textdegree{$^\circ$}
+\def\textdegree{%
+   \ifmmode ^\circ
+   \else {\tcfont \char 176}%
+   \fi}
 
 % Laurent Siebenmann reports \Orb undefined with:
 %  Textures 1.7.7 (preloaded format=plain 93.10.14)  (68K)  16 APR 2004 02:38
@@ -3700,11 +3728,11 @@ $$%
 % only change font for tt for correct kerning and to avoid using
 % \ecfont unless necessary.
 \def\quotedblleft{%
-  \ifmonospace{\ecfont\char"10}\else{\char"5C}\fi
+  \ifusingtt{{\ecfont\char"10}}{{\char"5C}}%
 }
 
 \def\quotedblright{%
-  \ifmonospace{\ecfont\char"11}\else{\char`\"}\fi
+  \ifusingtt{{\ecfont\char"11}}{{\char`\"}}%
 }
 
 
@@ -3729,13 +3757,14 @@ $$%
               want the contents after the title page.}}%
 
 \parseargdef\shorttitlepage{%
-  \begingroup \hbox{}\vskip 1.5in \chaprm \centerline{#1}%
-  \endgroup\page\hbox{}\page}
+  {\headingsoff \begingroup \hbox{}\vskip 1.5in \chaprm \centerline{#1}%
+  \endgroup\page\hbox{}\page}\pageone}
 
 \envdef\titlepage{%
   % Open one extra group, as we want to close it in the middle of \Etitlepage.
   \begingroup
     \parindent=0pt \textfonts
+    \headingsoff
     % Leave some space at the very top of the page.
     \vglue\titlepagetopglue
     % No rule at page bottom unless we print one at the top with @title.
@@ -3763,11 +3792,9 @@ $$%
     % If we use the new definition of \page, we always get a blank page
     % after the title page, which we certainly don't want.
     \oldpage
+    \pageone
   \endgroup
   %
-  % Need this before the \...aftertitlepage checks so that if they are
-  % in effect the toc pages will come out with page numbers.
-  \HEADINGSon
 }
 
 \def\finishtitlepage{%
@@ -3834,15 +3861,16 @@ $$%
 \newtoks\oddfootline     % footline on odd pages
 
 % Now make \makeheadline and \makefootline in Plain TeX use those variables
-\headline={{\textfonts\rm
+\headline={{\textfonts\rm\frenchspacingsetting
             \ifchapterpage
               \ifodd\pageno\the\oddchapheadline\else\the\evenchapheadline\fi
             \else
               \ifodd\pageno\the\oddheadline\else\the\evenheadline\fi
             \fi}}
 
-\footline={{\textfonts\rm \ifodd\pageno \the\oddfootline
-                            \else \the\evenfootline \fi}\HEADINGShook}
+\footline={{\textfonts\rm\frenchspacingsetting
+            \ifodd\pageno \the\oddfootline \else \the\evenfootline \fi}%
+           \HEADINGShook}
 \let\HEADINGShook=\relax
 
 % Commands to set those variables.
@@ -3935,46 +3963,37 @@ $$%
 }
 
 \def\HEADINGSoff{{\globaldefs=1 \headingsoff}} % global setting
-\HEADINGSoff  % it's the default
 
-% When we turn headings on, set the page number to 1.
+% Set the page number to 1.
 \def\pageone{
   \global\pageno=1
   \global\arabiccount = \pagecount
 }
 
+\let\contentsalignmacro = \chappager
+
+% \def\HEADINGSon{\HEADINGSdouble} % defined by \CHAPPAGon
+
 % For double-sided printing, put current file name in lower left corner,
 % chapter name on inside top of right hand pages, document
 % title on inside top of left hand pages, and page numbers on outside top
 % edge of all pages.
-\def\HEADINGSdouble{%
-\pageone
-\HEADINGSdoublex
-}
-\let\contentsalignmacro = \chappager
-
-% For single-sided printing, chapter title goes across top left of page,
-% page number on top right.
-\def\HEADINGSsingle{%
-\pageone
-\HEADINGSsinglex
-}
-\def\HEADINGSon{\HEADINGSdouble}
-
-\def\HEADINGSafter{\let\HEADINGShook=\HEADINGSdoublex}
+\def\HEADINGSafter{\let\HEADINGShook=\HEADINGSdouble}
 \let\HEADINGSdoubleafter=\HEADINGSafter
-\def\HEADINGSdoublex{%
+\def\HEADINGSdouble{%
 \global\evenfootline={\hfil}
 \global\oddfootline={\hfil}
 \global\evenheadline={\line{\folio\hfil\thistitle}}
 \global\oddheadline={\line{\thischapter\hfil\folio}}
-\global\evenchapheadline={\line{\folio\hfil}}
+\global\evenchapheadline={\line{\folio\hfil\thistitle}}
 \global\oddchapheadline={\line{\hfil\folio}}
 \global\let\contentsalignmacro = \chapoddpage
 }
 
-\def\HEADINGSsingleafter{\let\HEADINGShook=\HEADINGSsinglex}
-\def\HEADINGSsinglex{%
+% For single-sided printing, chapter title goes across top left of page,
+% page number on top right.
+\def\HEADINGSsingleafter{\let\HEADINGShook=\HEADINGSsingle}
+\def\HEADINGSsingle{%
 \global\evenfootline={\hfil}
 \global\oddfootline={\hfil}
 \global\evenheadline={\line{\thischapter\hfil\folio}}
@@ -3986,7 +4005,6 @@ $$%
 
 % for @setchapternewpage off
 \def\HEADINGSsinglechapoff{%
-\pageone
 \global\evenfootline={\hfil}
 \global\oddfootline={\hfil}
 \global\evenheadline={\line{\thischapter\hfil\folio}}
@@ -4356,8 +4374,7 @@ $$%
 % undo it ourselves.
 \def\headitemfont{\b}% for people to use in the template row; not changeable
 \def\headitem{%
-  \checkenv\multitable
-  \crcr
+  \crcr % must appear first
   \gdef\headitemcrhook{\nobreak}% attempt to avoid page break after headings
   \global\everytab={\bf}% can't use \headitemfont since the parsing differs
   \the\everytab % for the first item
@@ -4419,7 +4436,7 @@ $$%
       % Find the correct column width
       \hsize=\expandafter\csname col\the\colcount\endcsname
       %
-      \rightskip=0pt
+      \advance\rightskip by -1\rightskip % Zero leaving only any stretch
       \ifnum\colcount=1
         \advance\hsize by\leftskip % Add indent of surrounding text
       \else
@@ -4442,7 +4459,7 @@ $$%
 
 \message{conditionals,}
 
-% @iftex, @ifnotdocbook, @ifnothtml, @ifnotinfo, @ifnotplaintext,
+% @iftex, @ifnotdocbook, @ifnothtml, @ifnotinfo, @ifnotlatex, @ifnotplaintext,
 % @ifnotxml always succeed.  They currently do nothing; we don't
 % attempt to check whether the conditionals are properly nested.  But we
 % have to remember that they are conditionals, so that @end doesn't
@@ -4456,6 +4473,7 @@ $$%
 \makecond{ifnotdocbook}
 \makecond{ifnothtml}
 \makecond{ifnotinfo}
+\makecond{ifnotlatex}
 \makecond{ifnotplaintext}
 \makecond{ifnotxml}
 
@@ -4468,10 +4486,12 @@ $$%
 \def\ifdocbook{\doignore{ifdocbook}}
 \def\ifhtml{\doignore{ifhtml}}
 \def\ifinfo{\doignore{ifinfo}}
+\def\iflatex{\doignore{iflatex}}
 \def\ifnottex{\doignore{ifnottex}}
 \def\ifplaintext{\doignore{ifplaintext}}
 \def\ifxml{\doignore{ifxml}}
 \def\ignore{\doignore{ignore}}
+\def\latex{\doignore{latex}}
 \def\menu{\doignore{menu}}
 \def\xml{\doignore{xml}}
 
@@ -4710,13 +4730,11 @@ $$%
 % except not \outer, so it can be used within macros and \if's.
 \edef\newwrite{\makecsname{ptexnewwrite}}
 
-% \newindex {foo} defines an index named IX.
+% \newindex {IX} defines an index named IX.
 % It automatically defines \IXindex such that
 % \IXindex ...rest of line... puts an entry in the index IX.
 % It also defines \IXindfile to be the number of the output channel for
 % the file that accumulates this index.  The file's extension is IX.
-% The name of an index should be no more than 2 characters long
-% for the sake of vms.
 %
 \def\newindex#1{%
   \expandafter\chardef\csname#1indfile\endcsname=0
@@ -4779,21 +4797,6 @@ $$%
 \def\docodeindexxxx #1{\docind{\indexname}{#1}}
 
 
-% Used for the aux, toc and index files to prevent expansion of Texinfo
-% commands.
-%
-\def\atdummies{%
-  \definedummyletter\@%
-  \definedummyletter\ %
-  \definedummyletter\{%
-  \definedummyletter\}%
-  \definedummyletter\&%
-  %
-  % Do the redefinitions.
-  \definedummies
-  \otherbackslash
-}
-
 % \definedummyword defines \#1 as \string\#1\space, thus effectively
 % preventing its expansion.  This is used only for control words,
 % not control letters, because the \space would be incorrect for
@@ -4809,110 +4812,91 @@ $$%
 %
 \def\definedummyword  #1{\def#1{\string#1\space}}%
 \def\definedummyletter#1{\def#1{\string#1}}%
-\let\definedummyaccent\definedummyletter
 
-% Called from \atdummies to prevent the expansion of commands.
+% Used for the aux, toc and index files to prevent expansion of Texinfo
+% commands.  Most of the commands are controlled through the
+% \ifdummies conditional.
 %
-\def\definedummies{%
+\def\atdummies{%
+  \dummiestrue
   %
-  \let\commondummyword\definedummyword
-  \let\commondummyletter\definedummyletter
-  \let\commondummyaccent\definedummyaccent
-  \commondummiesnofonts
+  \definedummyletter\@%
+  \definedummyletter\ %
+  \definedummyletter\{%
+  \definedummyletter\}%
+  \definedummyletter\&%
   %
   \definedummyletter\_%
   \definedummyletter\-%
   %
-  % Non-English letters.
-  \definedummyword\AA
-  \definedummyword\AE
-  \definedummyword\DH
-  \definedummyword\L
-  \definedummyword\O
-  \definedummyword\OE
-  \definedummyword\TH
-  \definedummyword\aa
-  \definedummyword\ae
-  \definedummyword\dh
-  \definedummyword\exclamdown
-  \definedummyword\l
-  \definedummyword\o
-  \definedummyword\oe
-  \definedummyword\ordf
-  \definedummyword\ordm
-  \definedummyword\questiondown
-  \definedummyword\ss
-  \definedummyword\th
-  %
-  % Although these internal commands shouldn't show up, sometimes they do.
-  \definedummyword\bf
-  \definedummyword\gtr
-  \definedummyword\hat
-  \definedummyword\less
-  \definedummyword\sf
-  \definedummyword\sl
-  \definedummyword\tclose
-  \definedummyword\tt
-  %
-  \definedummyword\LaTeX
-  \definedummyword\TeX
-  %
-  % Assorted special characters.
-  \definedummyword\ampchar
-  \definedummyword\atchar
-  \definedummyword\arrow
-  \definedummyword\backslashchar
-  \definedummyword\bullet
-  \definedummyword\comma
-  \definedummyword\copyright
-  \definedummyword\registeredsymbol
-  \definedummyword\dots
-  \definedummyword\enddots
-  \definedummyword\entrybreak
-  \definedummyword\equiv
-  \definedummyword\error
-  \definedummyword\euro
-  \definedummyword\expansion
-  \definedummyword\geq
-  \definedummyword\guillemetleft
-  \definedummyword\guillemetright
-  \definedummyword\guilsinglleft
-  \definedummyword\guilsinglright
-  \definedummyword\lbracechar
-  \definedummyword\leq
-  \definedummyword\mathopsup
-  \definedummyword\minus
-  \definedummyword\ogonek
-  \definedummyword\pounds
-  \definedummyword\point
-  \definedummyword\print
-  \definedummyword\quotedblbase
-  \definedummyword\quotedblleft
-  \definedummyword\quotedblright
-  \definedummyword\quoteleft
-  \definedummyword\quoteright
-  \definedummyword\quotesinglbase
-  \definedummyword\rbracechar
-  \definedummyword\result
-  \definedummyword\sub
-  \definedummyword\sup
-  \definedummyword\textdegree
-  %
   \definedummyword\subentry
   %
   % We want to disable all macros so that they are not expanded by \write.
+  \let\commondummyword\definedummyword
   \macrolist
   \let\value\dummyvalue
   %
-  \normalturnoffactive
-}
-
-% \commondummiesnofonts: common to \definedummies and \indexnofonts.
-% Define \commondummyletter, \commondummyaccent and \commondummyword before
-% using.  Used for accents, font commands, and various control letters.
-%
-\def\commondummiesnofonts{%
-  % Control letters and accents.
+  \turnoffactive
+}
+
+\newif\ifdummies
+\newif\ifindexnofonts
+
+\def\commondummyletter#1{%
+  \expandafter\let\csname\string#1:impl\endcsname#1%
+  \edef#1{%
+    \noexpand\ifindexnofonts
+      % empty expansion
+    \noexpand\else
+      \noexpand\ifdummies\string#1%
+      \noexpand\else
+        \noexpand\jumptwofi % dispose of the \fi
+        \expandafter\noexpand\csname\string#1:impl\endcsname
+      \noexpand\fi
+    \noexpand\fi}%
+}
+
+\def\commondummyaccent#1{%
+  \expandafter\let\csname\string#1:impl\endcsname#1%
+  \edef#1{%
+    \noexpand\ifindexnofonts
+      \noexpand\expandafter % dispose of \else ... \fi
+      \noexpand\asis
+    \noexpand\else
+      \noexpand\ifdummies\string#1%
+      \noexpand\else
+        \noexpand\jumptwofi % dispose of the \fi
+        \expandafter\noexpand\csname\string#1:impl\endcsname
+      \noexpand\fi
+    \noexpand\fi}%
+}
+
+% Like \commondummyaccent but add a \space at the end of the dummy expansion
+% #2 is the expansion used for \indexnofonts.  #2 is always followed by
+% \asis to remove a pair of following braces.
+\def\commondummyword#1#2{%
+  \expandafter\let\csname\string#1:impl\endcsname#1%
+  \expandafter\def\csname\string#1:ixnf\endcsname{#2\asis}%
+  \edef#1{%
+    \noexpand\ifindexnofonts
+      \noexpand\expandafter % dispose of \else ... \fi
+      \expandafter\noexpand\csname\string#1:ixnf\endcsname
+    \noexpand\else
+      \noexpand\ifdummies\string#1\space
+      \noexpand\else
+        \noexpand\jumptwofi % dispose of the \fi \fi
+        \expandafter\noexpand\csname\string#1:impl\endcsname
+      \noexpand\fi
+    \noexpand\fi}%
+}
+\def\jumptwofi#1\fi\fi{\fi\fi#1}
+
+% For \atdummies and \indexnofonts.  \atdummies sets
+% \dummiestrue and \indexnofonts sets \indexnofontstrue.
+\def\definedummies{
+  % @-sign is always an escape character when reading auxiliary files
+  \escapechar = `\@
+  %
   \commondummyletter\!%
   \commondummyaccent\"%
   \commondummyaccent\'%
@@ -4926,58 +4910,123 @@ $$%
   \commondummyaccent\^%
   \commondummyaccent\`%
   \commondummyaccent\~%
-  \commondummyword\u
-  \commondummyword\v
-  \commondummyword\H
-  \commondummyword\dotaccent
-  \commondummyword\ogonek
-  \commondummyword\ringaccent
-  \commondummyword\tieaccent
-  \commondummyword\ubaraccent
-  \commondummyword\udotaccent
-  \commondummyword\dotless
+  %
+  % Control letters and accents.
+  \commondummyword\u          {}%
+  \commondummyword\v          {}%
+  \commondummyword\H          {}%
+  \commondummyword\dotaccent  {}%
+  \commondummyword\ogonek     {}%
+  \commondummyword\ringaccent {}%
+  \commondummyword\tieaccent  {}%
+  \commondummyword\ubaraccent {}%
+  \commondummyword\udotaccent {}%
+  \commondummyword\dotless    {}%
   %
   % Texinfo font commands.
-  \commondummyword\b
-  \commondummyword\i
-  \commondummyword\r
-  \commondummyword\sansserif
-  \commondummyword\sc
-  \commondummyword\slanted
-  \commondummyword\t
+  \commondummyword\b          {}%
+  \commondummyword\i          {}%
+  \commondummyword\r          {}%
+  \commondummyword\sansserif  {}%
+  \commondummyword\sc         {}%
+  \commondummyword\slanted    {}%
+  \commondummyword\t          {}%
   %
   % Commands that take arguments.
-  \commondummyword\abbr
-  \commondummyword\acronym
-  \commondummyword\anchor
-  \commondummyword\cite
-  \commondummyword\code
-  \commondummyword\command
-  \commondummyword\dfn
-  \commondummyword\dmn
-  \commondummyword\email
-  \commondummyword\emph
-  \commondummyword\env
-  \commondummyword\file
-  \commondummyword\image
-  \commondummyword\indicateurl
-  \commondummyword\inforef
-  \commondummyword\kbd
-  \commondummyword\key
-  \commondummyword\math
-  \commondummyword\option
-  \commondummyword\pxref
-  \commondummyword\ref
-  \commondummyword\samp
-  \commondummyword\strong
-  \commondummyword\tie
-  \commondummyword\U
-  \commondummyword\uref
-  \commondummyword\url
-  \commondummyword\var
-  \commondummyword\verb
-  \commondummyword\w
-  \commondummyword\xref
+  \commondummyword\abbr       {}%
+  \commondummyword\acronym    {}%
+  \commondummyword\anchor     {}%
+  \commondummyword\cite       {}%
+  \commondummyword\code       {}%
+  \commondummyword\command    {}%
+  \commondummyword\dfn        {}%
+  \commondummyword\dmn        {}%
+  \commondummyword\email      {}%
+  \commondummyword\emph       {}%
+  \commondummyword\env        {}%
+  \commondummyword\file       {}%
+  \commondummyword\image      {}%
+  \commondummyword\indicateurl{}%
+  \commondummyword\inforef    {}%
+  \commondummyword\kbd        {}%
+  \commondummyword\key        {}%
+  \commondummyword\math       {}%
+  \commondummyword\option     {}%
+  \commondummyword\pxref      {}%
+  \commondummyword\ref        {}%
+  \commondummyword\samp       {}%
+  \commondummyword\strong     {}%
+  \commondummyword\tie        {}%
+  \commondummyword\U          {}%
+  \commondummyword\uref       {}%
+  \commondummyword\url        {}%
+  \commondummyword\var        {}%
+  \commondummyword\verb       {}%
+  \commondummyword\w          {}%
+  \commondummyword\xref       {}%
+  %
+  \commondummyword\AA               {AA}%
+  \commondummyword\AE               {AE}%
+  \commondummyword\DH               {DZZ}%
+  \commondummyword\L                {L}%
+  \commondummyword\O                {O}%
+  \commondummyword\OE               {OE}%
+  \commondummyword\TH               {TH}%
+  \commondummyword\aa               {aa}%
+  \commondummyword\ae               {ae}%
+  \commondummyword\dh               {dzz}%
+  \commondummyword\exclamdown       {!}%
+  \commondummyword\l                {l}%
+  \commondummyword\o                {o}%
+  \commondummyword\oe               {oe}%
+  \commondummyword\ordf             {a}%
+  \commondummyword\ordm             {o}%
+  \commondummyword\questiondown     {?}%
+  \commondummyword\ss               {ss}%
+  \commondummyword\th               {th}%
+  %
+  \commondummyword\LaTeX            {LaTeX}%
+  \commondummyword\TeX              {TeX}%
+  %
+  % Assorted special characters.
+  \commondummyword\ampchar          {\normalamp}%
+  \commondummyword\atchar           {\@}%
+  \commondummyword\arrow            {->}%
+  \commondummyword\backslashchar    {\realbackslash}%
+  \commondummyword\bullet           {bullet}%
+  \commondummyword\comma            {,}%
+  \commondummyword\copyright        {copyright}%
+  \commondummyword\dots             {...}%
+  \commondummyword\enddots          {...}%
+  \commondummyword\entrybreak       {}%
+  \commondummyword\equiv            {===}%
+  \commondummyword\error            {error}%
+  \commondummyword\euro             {euro}%
+  \commondummyword\expansion        {==>}%
+  \commondummyword\geq              {>=}%
+  \commondummyword\guillemetleft    {<<}%
+  \commondummyword\guillemetright   {>>}%
+  \commondummyword\guilsinglleft    {<}%
+  \commondummyword\guilsinglright   {>}%
+  \commondummyword\lbracechar       {\{}%
+  \commondummyword\leq              {<=}%
+  \commondummyword\mathopsup        {sup}%
+  \commondummyword\minus            {-}%
+  \commondummyword\pounds           {pounds}%
+  \commondummyword\point            {.}%
+  \commondummyword\print            {-|}%
+  \commondummyword\quotedblbase     {"}%
+  \commondummyword\quotedblleft     {"}%
+  \commondummyword\quotedblright    {"}%
+  \commondummyword\quoteleft        {`}%
+  \commondummyword\quoteright       {'}%
+  \commondummyword\quotesinglbase   {,}%
+  \commondummyword\rbracechar       {\}}%
+  \commondummyword\registeredsymbol {R}%
+  \commondummyword\result           {=>}%
+  \commondummyword\sub              {}%
+  \commondummyword\sup              {}%
+  \commondummyword\textdegree       {o}%
 }
 
 \let\indexlbrace\relax
@@ -4995,25 +5044,24 @@ $$%
 \catcode`\-=13
 \catcode`\`=13
   \gdef\indexnonalnumdisappear{%
-    \expandafter\ifx\csname SETtxiindexlquoteignore\endcsname\relax\else
+    \ifflagclear{txiindexlquoteignore}{}{%
       % @set txiindexlquoteignore makes us ignore left quotes in the sort term.
       % (Introduced for FSFS 2nd ed.)
       \let`=\empty
-    \fi
+    }%
     %
-    \expandafter\ifx\csname SETtxiindexbackslashignore\endcsname\relax\else
+    \ifflagclear{txiindexbackslashignore}{}{%
       \backslashdisappear
-    \fi
-    %
-    \expandafter\ifx\csname SETtxiindexhyphenignore\endcsname\relax\else
+    }%
+    \ifflagclear{txiindexhyphenignore}{}{%
       \def-{}%
-    \fi
-    \expandafter\ifx\csname SETtxiindexlessthanignore\endcsname\relax\else
+    }%
+    \ifflagclear{txiindexlessthanignore}{}{%
       \def<{}%
-    \fi
-    \expandafter\ifx\csname SETtxiindexatsignignore\endcsname\relax\else
+    }%
+    \ifflagclear{txiindexatsignignore}{}{%
       \def\@{}%
-    \fi
+    }%
   }
 
   \gdef\indexnonalnumreappear{%
@@ -5029,18 +5077,7 @@ $$%
 % would be for a given command (usually its argument).
 %
 \def\indexnofonts{%
-  % Accent commands should become @asis.
-  \def\commondummyaccent##1{\let##1\asis}%
-  % We can just ignore other control letters.
-  \def\commondummyletter##1{\let##1\empty}%
-  % All control words become @asis by default; overrides below.
-  \let\commondummyword\commondummyaccent
-  \commondummiesnofonts
-  %
-  % Don't no-op \tt, since it isn't a user-level command
-  % and is used in the definitions of the active chars like <, >, |, etc.
-  % Likewise with the other plain tex font commands.
-  %\let\tt=\asis
+  \indexnofontstrue
   %
   \def\ { }%
   \def\@{@}%
@@ -5052,84 +5089,19 @@ $$%
   \let\lbracechar\{%
   \let\rbracechar\}%
   %
-  % Non-English letters.
-  \def\AA{AA}%
-  \def\AE{AE}%
-  \def\DH{DZZ}%
-  \def\L{L}%
-  \def\OE{OE}%
-  \def\O{O}%
-  \def\TH{TH}%
-  \def\aa{aa}%
-  \def\ae{ae}%
-  \def\dh{dzz}%
-  \def\exclamdown{!}%
-  \def\l{l}%
-  \def\oe{oe}%
-  \def\ordf{a}%
-  \def\ordm{o}%
-  \def\o{o}%
-  \def\questiondown{?}%
-  \def\ss{ss}%
-  \def\th{th}%
-  %
-  \let\do\indexnofontsdef
-  %
-  \do\LaTeX{LaTeX}%
-  \do\TeX{TeX}%
-  %
-  % Assorted special characters.
-  \do\atchar{@}%
-  \do\arrow{->}%
-  \do\bullet{bullet}%
-  \do\comma{,}%
-  \do\copyright{copyright}%
-  \do\dots{...}%
-  \do\enddots{...}%
-  \do\equiv{==}%
-  \do\error{error}%
-  \do\euro{euro}%
-  \do\expansion{==>}%
-  \do\geq{>=}%
-  \do\guillemetleft{<<}%
-  \do\guillemetright{>>}%
-  \do\guilsinglleft{<}%
-  \do\guilsinglright{>}%
-  \do\leq{<=}%
-  \do\lbracechar{\{}%
-  \do\minus{-}%
-  \do\point{.}%
-  \do\pounds{pounds}%
-  \do\print{-|}%
-  \do\quotedblbase{"}%
-  \do\quotedblleft{"}%
-  \do\quotedblright{"}%
-  \do\quoteleft{`}%
-  \do\quoteright{'}%
-  \do\quotesinglbase{,}%
-  \do\rbracechar{\}}%
-  \do\registeredsymbol{R}%
-  \do\result{=>}%
-  \do\textdegree{o}%
   %
   % We need to get rid of all macros, leaving only the arguments (if present).
   % Of course this is not nearly correct, but it is the best we can do for now.
-  % makeinfo does not expand macros in the argument to @deffn, which ends up
-  % writing an index entry, and texindex isn't prepared for an index sort entry
-  % that starts with \.
   %
   % Since macro invocations are followed by braces, we can just redefine them
   % to take a single TeX argument.  The case of a macro invocation that
   % goes to end-of-line is not handled.
   %
+  \def\commondummyword##1{\let##1\asis}%
   \macrolist
   \let\value\indexnofontsvalue
 }
 
-% Give the control sequence a definition that removes the {} that follows
-% its use, e.g. @AA{} -> AA
-\def\indexnofontsdef#1#2{\def#1##1{#2}}%
-
 
 
 
@@ -5260,7 +5232,10 @@ $$%
         \xdef\trimmed{\segment}%
         \xdef\trimmed{\expandafter\eatspaces\expandafter{\trimmed}}%
         \xdef\indexsortkey{\trimmed}%
-        \ifx\indexsortkey\empty\xdef\indexsortkey{ }\fi
+        \ifx\indexsortkey\empty
+          \message{Empty index sort key near line \the\inputlineno}%
+          \xdef\indexsortkey{ }%
+        \fi
       }\fi
       %
       % Append to \fullindexsortkey.
@@ -5305,9 +5280,7 @@ $$%
   %
   \atdummies
   %
-  \expandafter\ifx\csname SETtxiindexescapeisbackslash\endcsname\relax\else
-    \escapeisbackslash
-  \fi
+  \ifflagclear{txiindexescapeisbackslash}{}{\escapeisbackslash}%
   %
   % For texindex which always views { and } as separators.
   \def\{{\lbracechar{}}%
@@ -5491,9 +5464,9 @@ $$%
 % old index files using \ as the escape character.  Reading this would
 % at best lead to typesetting garbage, at worst a TeX syntax error.
 \def\printindexzz#1#2\finish{%
-  \expandafter\ifx\csname SETtxiindexescapeisbackslash\endcsname\relax
+  \ifflagclear{txiindexescapeisbackslash}{%
     \uccode`\~=`\\ \uppercase{\if\noexpand~}\noexpand#1
-      \expandafter\ifx\csname SETtxiskipindexfileswithbackslash\endcsname\relax
+      \ifflagclear{txiskipindexfileswithbackslash}{%
 \errmessage{%
 ERROR: A sorted index file in an obsolete format was skipped.
 To fix this problem, please upgrade your version of 'texi2dvi'
@@ -5509,15 +5482,15 @@ this, Texinfo will try to use index files in the old format.
 If you continue to have problems, deleting the index files and starting again
 might help (with 'rm \jobname.?? \jobname.??s')%
 }%
-      \else
+      }{%
         (Skipped sorted index file in obsolete format)
-      \fi
+      }%
     \else
       \begindoublecolumns
       \input \jobname.\indexname s
       \enddoublecolumns
     \fi
-  \else
+  }{%
     \begindoublecolumns
     \catcode`\\=0\relax
     %
@@ -5527,7 +5500,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
     \catcode`\@=0\relax
     \input \jobname.\indexname s
     \enddoublecolumns
-  \fi
+  }%
 }
 
 % These macros are used by the sorted index file itself.
@@ -5602,6 +5575,11 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 \newdimen\entryrightmargin
 \entryrightmargin=0pt
 
+% for PDF output, whether to make the text of the entry a link to the page
+% number.  set for @contents and @shortcontents where there is only one
+% page number.
+\newif\iflinkentrytext
+
 % \entry typesets a paragraph consisting of the text (#1), dot leaders, and
 % then page number (#2) flushed to the right margin.  It is used for index
 % and table of contents entries.  The paragraph is indented by \leftskip.
@@ -5628,7 +5606,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 }
 \def\entrybreak{\unskip\space\ignorespaces}%
 \def\doentry{%
-    % Save the text of the entry
+    % Save the text of the entry in \boxA
     \global\setbox\boxA=\hbox\bgroup
     \bgroup % Instead of the swallowed brace.
       \noindent
@@ -5638,12 +5616,21 @@ might help (with 'rm \jobname.?? \jobname.??s')%
       % with catcodes occurring.
 }
 {\catcode`\@=11
+% #1 is the page number
 \gdef\finishentry#1{%
-    \egroup % end box A
+    \egroup % end \boxA
     \dimen@ = \wd\boxA % Length of text of entry
+    % add any leaders and page number to \boxA.
     \global\setbox\boxA=\hbox\bgroup
-      \unhbox\boxA
-      % #1 is the page number.
+      \ifpdforxetex
+        \iflinkentrytext
+          \pdflinkpage{#1}{\unhbox\boxA}%
+        \else
+          \unhbox\boxA
+        \fi
+      \else
+        \unhbox\boxA
+      \fi
       %
       % Get the width of the page numbers, and only use
       % leaders if they are present.
@@ -5662,6 +5649,8 @@ might help (with 'rm \jobname.?? \jobname.??s')%
         \fi
       \fi
     \egroup % end \boxA
+    %
+    % now output
     \ifdim\wd\boxB = 0pt
       \noindent\unhbox\boxA\par
       \nobreak
@@ -5963,7 +5952,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 % Chapters, sections, etc.
 
 % Let's start with @part.
-\outer\parseargdef\part{\partzzz{#1}}
+\parseargdef\part{\partzzz{#1}}
 \def\partzzz#1{%
   \chapoddpage
   \null
@@ -6361,7 +6350,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
   \fi
 }
 
-\parseargdef\setchapternewpage{\csname CHAPPAG#1\endcsname}
+\parseargdef\setchapternewpage{\csname CHAPPAG#1\endcsname\HEADINGSon}
 
 \def\CHAPPAGoff{%
 \global\let\contentsalignmacro = \chappager
@@ -6378,7 +6367,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 \global\let\pchapsepmacro=\chapoddpage
 \global\def\HEADINGSon{\HEADINGSdouble}}
 
-\CHAPPAGon
+\setchapternewpage on
 
 % \chapmacro - Chapter opening.
 %
@@ -6391,6 +6380,16 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 \def\Yappendixkeyword{Yappendix}
 \def\Yomitfromtockeyword{Yomitfromtoc}
 %
+%
+% Definitions for @thischapter. These can be overridden in translation
+% files.
+\def\thischapterAppendix{%
+  \putwordAppendix{} \thischapternum: \thischaptername}
+
+\def\thischapterChapter{%
+  \putwordChapter{} \thischapternum: \thischaptername}
+%
+%
 \def\chapmacro#1#2#3{%
   \expandafter\ifx\thisenv\titlepage\else
     \checkenv{}% chapters, etc., should not start inside an environment.
@@ -6413,22 +6412,14 @@ might help (with 'rm \jobname.?? \jobname.??s')%
     \xdef\currentchapterdefs{%
       \gdef\noexpand\thischaptername{\the\toks0}%
       \gdef\noexpand\thischapternum{\appendixletter}%
-      % \noexpand\putwordAppendix avoids expanding indigestible
-      % commands in some of the translations.
-      \gdef\noexpand\thischapter{\noexpand\putwordAppendix{}
-                                 \noexpand\thischapternum:
-                                 \noexpand\thischaptername}%
+      \let\noexpand\thischapter\noexpand\thischapterAppendix
     }%
   \else
     \toks0={#1}%
     \xdef\currentchapterdefs{%
       \gdef\noexpand\thischaptername{\the\toks0}%
       \gdef\noexpand\thischapternum{\the\chapno}%
-      % \noexpand\putwordChapter avoids expanding indigestible
-      % commands in some of the translations.
-      \gdef\noexpand\thischapter{\noexpand\putwordChapter{}
-                                 \noexpand\thischapternum:
-                                 \noexpand\thischaptername}%
+      \let\noexpand\thischapter\noexpand\thischapterChapter
     }%
   \fi\fi\fi
   %
@@ -6514,6 +6505,12 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 \def\subsubsecheadingskip{\subsecheadingskip}
 \def\subsubsecheadingbreak{\subsecheadingbreak}
 
+% Definition for @thissection. This can be overridden in translation
+% files.
+\def\thissectionDef{%
+  \putwordSection{} \thissectionnum: \thissectionname}
+%
+
 
 % Print any size, any type, section title.
 %
@@ -6555,11 +6552,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
         \xdef\currentsectiondefs{%
           \gdef\noexpand\thissectionname{\the\toks0}%
           \gdef\noexpand\thissectionnum{#4}%
-          % \noexpand\putwordSection avoids expanding indigestible
-          % commands in some of the translations.
-          \gdef\noexpand\thissection{\noexpand\putwordSection{}
-                                     \noexpand\thissectionnum:
-                                     \noexpand\thissectionname}%
+          \let\noexpand\thissection\noexpand\thissectionDef
         }%
       \fi
     \else
@@ -6568,11 +6561,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
         \xdef\currentsectiondefs{%
           \gdef\noexpand\thissectionname{\the\toks0}%
           \gdef\noexpand\thissectionnum{#4}%
-          % \noexpand\putwordSection avoids expanding indigestible
-          % commands in some of the translations.
-          \gdef\noexpand\thissection{\noexpand\putwordSection{}
-                                     \noexpand\thissectionnum:
-                                     \noexpand\thissectionname}%
+          \let\noexpand\thissection\noexpand\thissectionDef
         }%
       \fi
     \fi\fi\fi
@@ -6758,8 +6747,14 @@ might help (with 'rm \jobname.?? \jobname.??s')%
     \def\thistitle{}% no title in double-sided headings
     % Record where the Roman numerals started.
     \ifnum\romancount=0 \global\romancount=\pagecount \fi
+    \linkentrytexttrue
 }
 
+% \raggedbottom in plain.tex hardcodes \topskip so override it
+\catcode`\@=11
+\def\raggedbottom{\advance\topskip by 0pt plus60pt \r@ggedbottomtrue}
+\catcode`\@=\other
+
 % redefined for the two-volume lispref.  We always output on
 % \jobname.toc even if this is redefined.
 %
@@ -6822,12 +6817,8 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 % Get ready to use Arabic numerals again
 \def\contentsendroman{%
   \lastnegativepageno = \pageno
-  \global\pageno = \savepageno
-  %
-  % If \romancount > \arabiccount, the contents are at the end of the
-  % document.  Otherwise, advance where the Arabic numerals start for
-  % the page numbers.
-  \ifnum\romancount>\arabiccount\else\global\arabiccount=\pagecount\fi
+  \global\pageno=1
+  \contentsendcount = \pagecount
 }
 
 % Typeset the label for a chapter or appendix for the short contents.
@@ -6880,7 +6871,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 % Chapters, in the short toc.
 % See comments in \dochapentry re vbox and related settings.
 \def\shortchapentry#1#2#3#4{%
-  \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#4\egroup}%
+  \tocentry{\shortchaplabel{#2}\labelspace #1}{#4}%
 }
 
 % Appendices, in the main contents.
@@ -6895,7 +6886,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 
 % Unnumbered chapters.
 \def\unnchapentry#1#2#3#4{\dochapentry{#1}{#4}}
-\def\shortunnchapentry#1#2#3#4{\tocentry{#1}{\doshortpageno\bgroup#4\egroup}}
+\def\shortunnchapentry#1#2#3#4{\tocentry{#1}{#4}}
 
 % Sections.
 \def\numsecentry#1#2#3#4{\dosecentry{#2\labelspace#1}{#4}}
@@ -6927,24 +6918,24 @@ might help (with 'rm \jobname.?? \jobname.??s')%
      % Move the page numbers slightly to the right
      \advance\entryrightmargin by -0.05em
      \chapentryfonts
-     \tocentry{#1}{\dopageno\bgroup#2\egroup}%
+     \tocentry{#1}{#2}%
    \endgroup
    \nobreak\vskip .25\baselineskip plus.1\baselineskip
 }
 
 \def\dosecentry#1#2{\begingroup
   \secentryfonts \leftskip=\tocindent
-  \tocentry{#1}{\dopageno\bgroup#2\egroup}%
+  \tocentry{#1}{#2}%
 \endgroup}
 
 \def\dosubsecentry#1#2{\begingroup
   \subsecentryfonts \leftskip=2\tocindent
-  \tocentry{#1}{\dopageno\bgroup#2\egroup}%
+  \tocentry{#1}{#2}%
 \endgroup}
 
 \def\dosubsubsecentry#1#2{\begingroup
   \subsubsecentryfonts \leftskip=3\tocindent
-  \tocentry{#1}{\dopageno\bgroup#2\egroup}%
+  \tocentry{#1}{#2}%
 \endgroup}
 
 % We use the same \entry macro as for the index entries.
@@ -6953,9 +6944,6 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 % Space between chapter (or whatever) number and the title.
 \def\labelspace{\hskip1em \relax}
 
-\def\dopageno#1{{\rm #1}}
-\def\doshortpageno#1{{\rm #1}}
-
 \def\chapentryfonts{\secfonts \rm}
 \def\secentryfonts{\textfonts}
 \def\subsecentryfonts{\textfonts}
@@ -7100,19 +7088,25 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 \newdimen\cartouter\newdimen\cartinner
 \newskip\normbskip\newskip\normpskip\newskip\normlskip
 
-
-\envdef\cartouche{%
+\envparseargdef\cartouche{%
   \cartouchefontdefs
   \ifhmode\par\fi  % can't be in the midst of a paragraph.
   \startsavinginserts
   \lskip=\leftskip \rskip=\rightskip
   \leftskip=0pt\rightskip=0pt % we want these *outside*.
+  %
+  % Set paragraph width for text inside cartouche.  There are
+  % left and right margins of 3pt each plus two vrules 0.4pt each.
   \cartinner=\hsize \advance\cartinner by-\lskip
   \advance\cartinner by-\rskip
+  \advance\cartinner by -6.8pt
+  %
+  % For drawing top and bottom of cartouche.  Each corner char
+  % adds 6pt and we take off the width of a rule to line up with the
+  % right boundary perfectly.
   \cartouter=\hsize
-  \advance\cartouter by 18.4pt % allow for 3pt kerns on either
-                               % side, and for 6pt waste from
-                               % each corner char, and rule thickness
+  \advance\cartouter by 11.6pt
+  %
   \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip
   %
   % If this cartouche directly follows a sectioning command, we need the
@@ -7120,20 +7114,23 @@ might help (with 'rm \jobname.?? \jobname.??s')%
   % collide with the section heading.
   \ifnum\lastpenalty>10000 \vskip\parskip \penalty\lastpenalty \fi
   %
-  \setbox\groupbox=\vbox\bgroup
+  \setbox\groupbox=\vtop\bgroup
       \baselineskip=0pt\parskip=0pt\lineskip=0pt
       \carttop
       \hbox\bgroup
-         \hskip\lskip
-         \vrule\kern3pt
-         \vbox\bgroup
-             \kern3pt
-             \hsize=\cartinner
-             \baselineskip=\normbskip
-             \lineskip=\normlskip
-             \parskip=\normpskip
-             \vskip -\parskip
-             \comment % For explanation, see the end of def\group.
+          \hskip\lskip
+          \vrule\kern3pt
+          \vbox\bgroup
+              \hsize=\cartinner
+              \baselineskip=\normbskip
+              \lineskip=\normlskip
+              \parskip=\normpskip
+              \def\arg{#1}%
+              \ifx\arg\empty\else
+                \centerV{\hfil \bf #1 \hfil}%
+              \fi
+              \kern3pt
+              \vskip -\parskip
 }
 \def\Ecartouche{%
               \ifhmode\par\fi
@@ -7287,22 +7284,6 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 }
 \let\Eraggedright\par
 
-\envdef\raggedleft{%
-  \parindent=0pt \leftskip0pt plus2em
-  \spaceskip.3333em \xspaceskip.5em \parfillskip=0pt
-  \hbadness=10000 % Last line will usually be underfull, so turn off
-                  % badness reporting.
-}
-\let\Eraggedleft\par
-
-\envdef\raggedcenter{%
-  \parindent=0pt \rightskip0pt plus1em \leftskip0pt plus1em
-  \spaceskip.3333em \xspaceskip.5em \parfillskip=0pt
-  \hbadness=10000 % Last line will usually be underfull, so turn off
-                  % badness reporting.
-}
-\let\Eraggedcenter\par
-
 
 % @quotation does normal linebreaking (hence we can't use \nonfillstart)
 % and narrows the margins.  We keep \parskip nonzero in general, since
@@ -7400,8 +7381,9 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 \endgroup
 %
 \def\setupverb{%
-  \tt  % easiest (and conventionally used) font for verbatim
+  \tt
   \def\par{\leavevmode\endgraf}%
+  \parindent = 0pt
   \setcodequotes
   \tabeightspaces
   % Respect line breaks,
@@ -7525,9 +7507,11 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 % file; b) letting users define the frontmatter in as flexible order as
 % possible is desirable.
 %
-\def\copying{\checkenv{}\begingroup\scanargctxt\docopying}
-\def\docopying#1@end copying{\endgroup\def\copyingtext{#1}}
-%
+\def\copying{\checkenv{}\begingroup\macrobodyctxt\docopying}
+{\catcode`\ =\other
+\gdef\docopying#1@end copying{\endgroup\def\copyingtext{#1}}
+}
+
 \def\insertcopying{%
   \begingroup
     \parindent = 0pt  % paragraph indentation looks wrong on title page
@@ -7575,31 +7559,19 @@ might help (with 'rm \jobname.?? \jobname.??s')%
   \exdentamount=\defbodyindent
 }
 
-\def\dodefunx#1{%
-  % First, check whether we are in the right environment:
-  \checkenv#1%
-  %
-  % As above, allow line break if we have multiple x headers in a row.
-  % It's not a great place, though.
-  \ifnum\lastpenalty=10002 \penalty3000 \else \defunpenalty=10002 \fi
-  %
-  % And now, it's time to reuse the body of the original defun:
-  \expandafter\gobbledefun#1%
-}
-\def\gobbledefun#1\startdefun{}
-
-% \printdefunline \deffnheader{text}
+% Called as \printdefunline \deffooheader{text}
 %
 \def\printdefunline#1#2{%
   \begingroup
-    % call \deffnheader:
+    \plainfrenchspacing
+    % call \deffooheader:
     #1#2 \endheader
     % common ending:
     \interlinepenalty = 10000
     \advance\rightskip by 0pt plus 1fil\relax
     \endgraf
     \nobreak\vskip -\parskip
-    \penalty\defunpenalty  % signal to \startdefun and \dodefunx
+    \penalty\defunpenalty  % signal to \startdefun and \deffoox
     % Some of the @defun-type tags do not enable magic parentheses,
     % rendering the following check redundant.  But we don't optimize.
     \checkparencounts
@@ -7608,29 +7580,51 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 
 \def\Edefun{\endgraf\medbreak}
 
-% \makedefun{deffn} creates \deffn, \deffnx and \Edeffn;
-% the only thing remaining is to define \deffnheader.
+% @defblock, @defline do not automatically create index entries
+\envdef\defblock{%
+  \startdefun
+}
+\let\Edefblock\Edefun
+
+\def\defline{%
+  \doingtypefnfalse
+  \parseargusing\activeparens{\printdefunline\deflineheader}%
+}
+\def\deflineheader#1 #2 #3\endheader{%
+  \printdefname{#1}{}{#2}\magicamp\defunargs{#3\unskip}%
+}
+\def\deftypeline{%
+  \doingtypefntrue
+  \parseargusing\activeparens{\printdefunline\deflineheader}%
+}
+
+% \makedefun{deffoo} (\deffooheader parameters) { (\deffooheader expansion) }
 %
+% Define \deffoo, \deffoox  \Edeffoo and \deffooheader.
 \def\makedefun#1{%
   \expandafter\let\csname E#1\endcsname = \Edefun
   \edef\temp{\noexpand\domakedefun
     \makecsname{#1}\makecsname{#1x}\makecsname{#1header}}%
   \temp
 }
-
-% \domakedefun \deffn \deffnx \deffnheader { (defn. of \deffnheader) }
-%
-% Define \deffn and \deffnx, without parameters.
-% \deffnheader has to be defined explicitly.
-%
 \def\domakedefun#1#2#3{%
   \envdef#1{%
     \startdefun
     \doingtypefnfalse    % distinguish typed functions from all else
     \parseargusing\activeparens{\printdefunline#3}%
   }%
-  \def#2{\dodefunx#1}%
-  \def#3%
+  \def#2{%
+    % First, check whether we are in the right environment:
+    \checkenv#1%
+    %
+    % As in \startdefun, allow line break if we have multiple x headers
+    % in a row.  It's not a great place, though.
+    \ifnum\lastpenalty=10002 \penalty3000 \else \defunpenalty=10002 \fi
+    %
+    \doingtypefnfalse    % distinguish typed functions from all else
+    \parseargusing\activeparens{\printdefunline#3}%
+  }%
+  \def#3% definition of \deffooheader follows
 }
 
 \newif\ifdoingtypefn       % doing typed function?
@@ -7655,74 +7649,51 @@ might help (with 'rm \jobname.?? \jobname.??s')%
   \fi\fi
 }
 
-% \dosubind {index}{topic}{subtopic}
-%
-% If SUBTOPIC is present, precede it with a space, and call \doind.
-% (At some time during the 20th century, this made a two-level entry in an
-% index such as the operation index.  Nobody seemed to notice the change in
-% behaviour though.)
-\def\dosubind#1#2#3{%
-  \def\thirdarg{#3}%
-  \ifx\thirdarg\empty
-    \doind{#1}{#2}%
-  \else
-    \doind{#1}{#2\space#3}%
-  \fi
-}
-
 % Untyped functions:
 
 % @deffn category name args
-\makedefun{deffn}{\deffngeneral{}}
-
-% @deffn category class name args
-\makedefun{defop}#1 {\defopon{#1\ \putwordon}}
-
-% \defopon {category on}class name args
-\def\defopon#1#2 {\deffngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} }
+\makedefun{deffn}#1 #2 #3\endheader{%
+  \doind{fn}{\code{#2}}%
+  \printdefname{#1}{}{#2}\magicamp\defunargs{#3\unskip}%
+}
 
-% \deffngeneral {subind}category name args
-%
-\def\deffngeneral#1#2 #3 #4\endheader{%
-  \dosubind{fn}{\code{#3}}{#1}%
-  \defname{#2}{}{#3}\magicamp\defunargs{#4\unskip}%
+% @defop category class name args
+\makedefun{defop}#1 {\defopheaderx{#1\ \putwordon}}
+\def\defopheaderx#1#2 #3 #4\endheader{%
+  \doind{fn}{\code{#3}\space\putwordon\ \code{#2}}%
+  \printdefname{#1\ \code{#2}}{}{#3}\magicamp\defunargs{#4\unskip}%
 }
 
 % Typed functions:
 
 % @deftypefn category type name args
-\makedefun{deftypefn}{\deftypefngeneral{}}
+\makedefun{deftypefn}#1 #2 #3 #4\endheader{%
+  \doind{fn}{\code{#3}}%
+  \doingtypefntrue
+  \printdefname{#1}{#2}{#3}\defunargs{#4\unskip}%
+}
 
 % @deftypeop category class type name args
-\makedefun{deftypeop}#1 {\deftypeopon{#1\ \putwordon}}
-
-% \deftypeopon {category on}class type name args
-\def\deftypeopon#1#2 {\deftypefngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} }
-
-% \deftypefngeneral {subind}category type name args
-%
-\def\deftypefngeneral#1#2 #3 #4 #5\endheader{%
-  \dosubind{fn}{\code{#4}}{#1}%
+\makedefun{deftypeop}#1 {\deftypeopheaderx{#1\ \putwordon}}
+\def\deftypeopheaderx#1#2 #3 #4 #5\endheader{%
+  \doind{fn}{\code{#4}\space\putwordon\ \code{#1\ \code{#2}}}%
   \doingtypefntrue
-  \defname{#2}{#3}{#4}\defunargs{#5\unskip}%
+  \printdefname{#1\ \code{#2}}{#3}{#4}\defunargs{#5\unskip}%
 }
 
 % Typed variables:
 
 % @deftypevr category type var args
-\makedefun{deftypevr}{\deftypecvgeneral{}}
+\makedefun{deftypevr}#1 #2 #3 #4\endheader{%
+  \doind{vr}{\code{#3}}%
+  \printdefname{#1}{#2}{#3}\defunargs{#4\unskip}%
+}
 
 % @deftypecv category class type var args
-\makedefun{deftypecv}#1 {\deftypecvof{#1\ \putwordof}}
-
-% \deftypecvof {category of}class type var args
-\def\deftypecvof#1#2 {\deftypecvgeneral{\putwordof\ \code{#2}}{#1\ \code{#2}} }
-
-% \deftypecvgeneral {subind}category type var args
-%
-\def\deftypecvgeneral#1#2 #3 #4 #5\endheader{%
-  \dosubind{vr}{\code{#4}}{#1}%
-  \defname{#2}{#3}{#4}\defunargs{#5\unskip}%
+\makedefun{deftypecv}#1 {\deftypecvheaderx{#1\ \putwordof}}
+\def\deftypecvheaderx#1#2 #3 #4 #5\endheader{%
+  \doind{vr}{\code{#4}\space\putwordof\ \code{#2}}%
+  \printdefname{#1\ \code{#2}}{#3}{#4}\defunargs{#5\unskip}%
 }
 
 % Untyped variables:
@@ -7731,17 +7702,15 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 \makedefun{defvr}#1 {\deftypevrheader{#1} {} }
 
 % @defcv category class var args
-\makedefun{defcv}#1 {\defcvof{#1\ \putwordof}}
-
-% \defcvof {category of}class var args
-\def\defcvof#1#2 {\deftypecvof{#1}#2 {} }
+\makedefun{defcv}#1 {\defcvheaderx{#1\ \putwordof}}
+\def\defcvheaderx#1#2 {\deftypecvheaderx{#1}#2 {} }
 
 % Types:
 
 % @deftp category name args
 \makedefun{deftp}#1 #2 #3\endheader{%
   \doind{tp}{\code{#2}}%
-  \defname{#1}{}{#2}\defunargs{#3\unskip}%
+  \printdefname{#1}{}{#2}\defunargs{#3\unskip}%
 }
 
 % Remaining @defun-like shortcuts:
@@ -7752,19 +7721,19 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 \makedefun{defvar}{\defvrheader{\putwordDefvar} }
 \makedefun{defopt}{\defvrheader{\putwordDefopt} }
 \makedefun{deftypevar}{\deftypevrheader{\putwordDefvar} }
-\makedefun{defmethod}{\defopon\putwordMethodon}
-\makedefun{deftypemethod}{\deftypeopon\putwordMethodon}
-\makedefun{defivar}{\defcvof\putwordInstanceVariableof}
-\makedefun{deftypeivar}{\deftypecvof\putwordInstanceVariableof}
+\makedefun{defmethod}{\defopheaderx\putwordMethodon}
+\makedefun{deftypemethod}{\deftypeopheaderx\putwordMethodon}
+\makedefun{defivar}{\defcvheaderx\putwordInstanceVariableof}
+\makedefun{deftypeivar}{\deftypecvheaderx\putwordInstanceVariableof}
 
-% \defname, which formats the name of the @def (not the args).
+% \printdefname, which formats the name of the @def (not the args).
 % #1 is the category, such as "Function".
 % #2 is the return type, if any.
 % #3 is the function name.
 %
 % We are followed by (but not passed) the arguments, if any.
 %
-\def\defname#1#2#3{%
+\def\printdefname#1#2#3{%
   \par
   % Get the values of \leftskip and \rightskip as they were outside the @def...
   \advance\leftskip by -\defbodyindent
@@ -7774,9 +7743,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
   \rettypeownlinefalse
   \ifdoingtypefn  % doing a typed function specifically?
     % then check user option for putting return type on its own line:
-    \expandafter\ifx\csname SETtxideftypefnnl\endcsname\relax \else
-      \rettypeownlinetrue
-    \fi
+    \ifflagclear{txideftypefnnl}{}{\rettypeownlinetrue}%
   \fi
   %
   % How we'll format the category name.  Putting it in brackets helps
@@ -7841,30 +7808,22 @@ might help (with 'rm \jobname.?? \jobname.??s')%
     \fi           % no return type
     #3% output function name
   }%
-  {\rm\enskip}% hskip 0.5 em of \rmfont
+  \ifflagclear{txidefnamenospace}{%
+    {\rm\enskip}% hskip 0.5 em of \rmfont
+  }{}%
   %
   \boldbrax
   % arguments will be output next, if any.
 }
 
-% Print arguments in slanted roman (not ttsl), inconsistently with using
-% tt for the name.  This is because literal text is sometimes needed in
-% the argument list (groff manual), and ttsl and tt are not very
-% distinguishable.  Prevent hyphenation at `-' chars.
-%
+% Print arguments.  Use slanted for @def*, typewriter for @deftype*.
 \def\defunargs#1{%
-  % use sl by default (not ttsl),
-  % tt for the names.
-  \df \sl \hyphenchar\font=0
-  %
-  % On the other hand, if an argument has two dashes (for instance), we
-  % want a way to get ttsl.  We used to recommend @var for that, so
-  % leave the code in, but it's strange for @var to lead to typewriter.
-  % Nowadays we recommend @code, since the difference between a ttsl hyphen
-  % and a tt hyphen is pretty tiny.  @code also disables ?` !`.
-  \def\var##1{{\setregularquotes\ttslanted{##1}}}%
-  #1%
-  \sl\hyphenchar\font=45
+  \bgroup
+    \df \ifdoingtypefn \tt \else \sl \fi
+    \ifflagclear{txicodevaristt}{}%
+       {\def\var##1{{\setregularquotes \ttsl ##1}}}%
+    #1%
+  \egroup
 }
 
 % We want ()&[] to print specially on the defun line.
@@ -7883,9 +7842,12 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 % so TeX would otherwise complain about undefined control sequence.
 {
   \activeparens
-  \global\let(=\lparen \global\let)=\rparen
-  \global\let[=\lbrack \global\let]=\rbrack
-  \global\let& = \&
+  \gdef\defcharsdefault{%
+    \let(=\lparen \let)=\rparen
+    \let[=\lbrack \let]=\rbrack
+    \let& = \&%
+  }
+  \globaldefs=1 \defcharsdefault
 
   \gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb}
   \gdef\magicamp{\let&=\amprm}
@@ -7896,7 +7858,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 
 % If we encounter &foo, then turn on ()-hacking afterwards
 \newif\ifampseen
-\def\amprm#1 {\ampseentrue{\bf\&#1 }}
+\def\amprm#1 {\ampseentrue{\rm\&#1 }}
 
 \def\parenfont{%
   \ifampseen
@@ -8069,24 +8031,17 @@ might help (with 'rm \jobname.?? \jobname.??s')%
   \catcode`\_=\other
   \catcode`\|=\other
   \catcode`\~=\other
-  \passthroughcharstrue
-}
-
-\def\scanargctxt{% used for copying and captions, not macros.
-  \scanctxt
   \catcode`\@=\other
-  \catcode`\\=\other
   \catcode`\^^M=\other
+  \catcode`\\=\active
+  \passthroughcharstrue
 }
 
-\def\macrobodyctxt{% used for @macro definitions
+\def\macrobodyctxt{% used for @macro definitions and @copying
   \scanctxt
   \catcode`\ =\other
-  \catcode`\@=\other
   \catcode`\{=\other
   \catcode`\}=\other
-  \catcode`\^^M=\other
-  \usembodybackslash
 }
 
 % Used when scanning braced macro arguments.  Note, however, that catcode
@@ -8095,14 +8050,10 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 \def\macroargctxt{%
   \scanctxt
   \catcode`\ =\active
-  \catcode`\@=\other
-  \catcode`\^^M=\other
-  \catcode`\\=\active
 }
 
 \def\macrolineargctxt{% used for whole-line arguments without braces
   \scanctxt
-  \catcode`\@=\other
   \catcode`\{=\other
   \catcode`\}=\other
 }
@@ -8146,7 +8097,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
      \global\expandafter\let\csname ismacro.\the\macname\endcsname=1%
      \addtomacrolist{\the\macname}%
   \fi
-  \begingroup \macrobodyctxt
+  \begingroup \macrobodyctxt \usembodybackslash
   \ifrecursive \expandafter\parsermacbody
   \else \expandafter\parsemacbody
   \fi}
@@ -8231,12 +8182,12 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 %
 % We are in \macrobodyctxt, and the \xdef causes backslashshes in the macro
 % body to be transformed.
-% Set \macrobody to the body of the macro, and call \defmacro.
+% Set \macrobody to the body of the macro, and call \macrodef.
 %
 {\catcode`\ =\other\long\gdef\parsemacbody#1@end macro{%
-\xdef\macrobody{\eatcr{#1}}\endgroup\defmacro}}%
+\xdef\macrobody{\eatcr{#1}}\endgroup\macrodef}}%
 {\catcode`\ =\other\long\gdef\parsermacbody#1@end rmacro{%
-\xdef\macrobody{\eatcr{#1}}\endgroup\defmacro}}%
+\xdef\macrobody{\eatcr{#1}}\endgroup\macrodef}}%
 
 % Make @ a letter, so that we can make private-to-Texinfo macro names.
 \edef\texiatcatcode{\the\catcode`\@}
@@ -8455,35 +8406,36 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 % \xdef is used so that macro definitions will survive the file
 % they're defined in: @include reads the file inside a group.
 %
-\def\defmacro{%
+\def\macrodef{%
   \let\hash=##% convert placeholders to macro parameter chars
   \ifnum\paramno=1
-    \def\xeatspaces##1{##1}%
-    % This removes the pair of braces around the argument.  We don't
-    % use \eatspaces, because this can cause ends of lines to be lost
-    % when the argument to \eatspaces is read, leading to line-based
-    % commands like "@itemize" not being read correctly.
+    \long\def\xeatspaces##1{##1}%
+    % We don't use \xeatspaces for single-argument macros, because we
+    % want to keep ends of lines.  This definition removes \xeatspaces
+    % when \macrobody is expanded below.
   \else
-    \let\xeatspaces\relax % suppress expansion
+    \def\xeatspaces{\string\xeatspaces}%
+    % This expands \xeatspaces as a sequence of character tokens, which
+    % stops \scantokens inserting an extra space after the control sequence.
   \fi
   \ifcase\paramno
   % 0
     \expandafter\xdef\csname\the\macname\endcsname{%
-      \bgroup
+      \begingroup
         \noexpand\spaceisspace
         \noexpand\endlineisspace
         \noexpand\expandafter % skip any whitespace after the macro name.
         \expandafter\noexpand\csname\the\macname @@@\endcsname}%
     \expandafter\xdef\csname\the\macname @@@\endcsname{%
-      \egroup
+      \endgroup
       \noexpand\scanmacro{\macrobody}}%
   \or % 1
     \expandafter\xdef\csname\the\macname\endcsname{%
-       \bgroup
+       \begingroup
        \noexpand\braceorline
        \expandafter\noexpand\csname\the\macname @@@\endcsname}%
     \expandafter\xdef\csname\the\macname @@@\endcsname##1{%
-      \egroup
+      \endgroup
       \noexpand\scanmacro{\macrobody}%
       }%
   \else % at most 9
@@ -8494,7 +8446,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
       % @MACNAME@@@ removes braces surrounding the argument list.
       % @MACNAME@@@@ scans the macro body with arguments substituted.
       \expandafter\xdef\csname\the\macname\endcsname{%
-        \bgroup
+        \begingroup
         \noexpand\expandafter  % This \expandafter skip any spaces after the
         \noexpand\macroargctxt % macro before we change the catcode of space.
         \noexpand\expandafter
@@ -8508,7 +8460,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
       \expandafter\xdef
       \expandafter\expandafter
         \csname\the\macname @@@@\endcsname\paramlist{%
-          \egroup\noexpand\scanmacro{\macrobody}}%
+          \endgroup\noexpand\scanmacro{\macrobody}}%
     \else % 10 or more:
       \expandafter\xdef\csname\the\macname\endcsname{%
         \noexpand\getargvals@{\the\macname}{\argl}%
@@ -8630,6 +8582,75 @@ might help (with 'rm \jobname.?? \jobname.??s')%
   \fi \macnamexxx}
 
 
+% @linemacro
+
+\parseargdef\linemacro{%
+  \getargs{#1}% now \macname is the macname and \argl the arglist
+  \ifx\argl\empty
+    \paramno=0
+    \let\hash\relax
+    \def\paramlist{\hash 1\endlinemacro}%
+  \else
+    \expandafter\linegetparamlist\argl;%
+  \fi
+  \begingroup \macrobodyctxt \usembodybackslash
+  \parselinemacrobody
+}
+
+% Build up \paramlist which will be used as the parameter text for the macro.
+% At the end it will be like "#1 #2 #3\endlinemacro".
+\def\linegetparamlist#1;{%
+  \paramno=0\def\paramlist{}%
+  \let\hash\relax
+  \linegetparamlistxxx#1,;,%
+}
+\def\linegetparamlistxxx#1,{%
+  \if#1;\let\next=\linegetparamlistxxxx
+  \else \let\next=\linegetparamlistxxx
+    \advance\paramno by 1
+    \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname
+        {\hash\the\paramno}%
+    \edef\paramlist{\paramlist\hash\the\paramno\space}%
+  \fi\next}
+\def\linegetparamlistxxxx{%
+  \expandafter\fixparamlist\paramlist\fixparamlist
+}
+% Replace final space token
+\def\fixparamlist#1 \fixparamlist{%
+  \def\paramlist{#1\endlinemacro}%
+}
+
+% Read the body of the macro, replacing backslash-surrounded variables
+%
+{\catcode`\ =\other\long\gdef\parselinemacrobody#1@end linemacro{%
+\xdef\macrobody{#1}%
+\endgroup
+\linemacrodef
+}}
+
+% Make the definition
+\def\linemacrodef{%
+  \let\hash=##%
+  \expandafter\xdef\csname\the\macname\endcsname{%
+    \bgroup
+    \noexpand\parsearg
+    \expandafter\noexpand\csname\the\macname @@\endcsname
+  }
+  \expandafter\xdef\csname\the\macname @@\endcsname##1{%
+    \egroup
+    \expandafter\noexpand
+    \csname\the\macname @@@\endcsname##1\noexpand\endlinemacro
+  }
+  \expandafter\expandafter
+  \expandafter\xdef
+  \expandafter\expandafter\csname\the\macname @@@\endcsname\paramlist{%
+    \newlinechar=13 % split \macrobody into lines
+    \noexpand\scantokens{\macrobody}%
+  }
+}
+
+
+
 % @alias.
 % We need some trickery to remove the optional spaces around the equal
 % sign.  Make them active and then expand them all to nothing.
@@ -8681,9 +8702,11 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 }
 \def\wordTop{Top}
 
-% Until the next @node or @bye command, divert output to a box that is not
-% output.
-\def\ignorenode{\setbox\dummybox\vbox\bgroup\def\node{\egroup\node}%
+% Until the next @node, @part or @bye command, divert output to a box that
+% is not output.
+\def\ignorenode{\setbox\dummybox\vbox\bgroup
+\def\part{\egroup\part}%
+\def\node{\egroup\node}%
 \ignorenodebye
 }
 
@@ -8948,12 +8971,11 @@ might help (with 'rm \jobname.?? \jobname.??s')%
       % output the `[mynode]' via the macro below so it can be overridden.
       \xrefprintnodename\printedrefname
       %
-      \expandafter\ifx\csname SETtxiomitxrefpg\endcsname\relax
-        % But we always want a comma and a space:
-        ,\space
-        %
+      \ifflagclear{txiomitxrefpg}{%
+        % We always want a comma
+        ,%
         % output the `page 3'.
-        \turnoffactive \putwordpage\tie\refx{#1-pg}%
+        \turnoffactive \putpageref{#1}%
         % Add a , if xref followed by a space
         \if\space\noexpand\tokenafterxref ,%
         \else\ifx\     \tokenafterxref ,% @TAB
@@ -8963,12 +8985,16 @@ might help (with 'rm \jobname.?? \jobname.??s')%
                   \tokenafterxref ,%    @NL
         \else\ifx\tie\tokenafterxref ,% @tie
         \fi\fi\fi\fi\fi\fi
-      \fi
+      }{}%
     \fi\fi
   \fi
   \endlink
 \endgroup}
 
+% can be overridden in translation files
+\def\putpageref#1{%
+  \space\putwordpage\tie\refx{#1-pg}}
+
 % Output a cross-manual xref to #1.  Used just above (twice).
 %
 % Only include the text "Section ``foo'' in" if the foo is neither
@@ -9380,6 +9406,12 @@ might help (with 'rm \jobname.?? \jobname.??s')%
     \imagexxx #1,,,,,\finish
   \fi
 }
+
+% Approximate height of a line in the standard text font.
+\newdimen\capheight
+\setbox0=\vbox{\tenrm H}
+\capheight=\ht0
+
 %
 % Arguments to @image:
 % #1 is (mandatory) image filename; we tack on .eps extension.
@@ -9392,32 +9424,30 @@ might help (with 'rm \jobname.?? \jobname.??s')%
   \catcode`\^^M = 5     % in case we're inside an example
   \normalturnoffactive  % allow _ et al. in names
   \makevalueexpandable
-  % If the image is by itself, center it.
   \ifvmode
     \imagevmodetrue
-  \else \ifx\centersub\centerV
-    % for @center @image, we need a vbox so we can have our vertical space
-    \imagevmodetrue
-    \vbox\bgroup % vbox has better behavior than vtop herev
-  \fi\fi
-  %
-  \ifimagevmode
-    \nobreak\medskip
+    \medskip
     % Usually we'll have text after the image which will insert
     % \parskip glue, so insert it here too to equalize the space
     % above and below.
-    \nobreak\vskip\parskip
-    \nobreak
+    \vskip\parskip
+    %
+    % Place image in a \vtop for a top page margin that is (close to) correct,
+    % as \topskip glue is relative to the first baseline.
+    \vtop\bgroup \kern -\capheight \vskip-\parskip
   \fi
   %
-  % Leave vertical mode so that indentation from an enclosing
-  %  environment such as @quotation is respected.
-  % However, if we're at the top level, we don't want the
-  %  normal paragraph indentation.
-  % On the other hand, if we are in the case of @center @image, we don't
-  %  want to start a paragraph, which will create a hsize-width box and
-  %  eradicate the centering.
-  \ifx\centersub\centerV \else \imageindent \fi
+  \ifx\centersub\centerV
+    % For @center @image, enter vertical mode and add vertical space
+    % Enter an extra \parskip because @center doesn't add space itself.
+    \vbox\bgroup\vskip\parskip\medskip\vskip\parskip
+  \else
+    % Enter horizontal mode so that indentation from an enclosing
+    %  environment such as @quotation is respected.
+    % However, if we're at the top level, we don't want the
+    %  normal paragraph indentation.
+    \imageindent
+  \fi
   %
   % Output the image.
   \ifpdf
@@ -9439,9 +9469,13 @@ might help (with 'rm \jobname.?? \jobname.??s')%
   \fi
   %
   \ifimagevmode
+    \egroup
     \medskip  % space after a standalone image
   \fi
-  \ifx\centersub\centerV \egroup \fi
+  \ifx\centersub\centerV % @center @image
+    \medskip
+    \egroup % close \vbox
+  \fi
 \endgroup}
 
 
@@ -9608,8 +9642,8 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 %
 \def\caption{\docaption\thiscaption}
 \def\shortcaption{\docaption\thisshortcaption}
-\def\docaption{\checkenv\float \bgroup\scanargctxt\defcaption}
-\def\defcaption#1#2{\egroup \def#1{#2}}
+\def\docaption{\checkenv\float \bgroup\scanctxt\docaptionz}
+\def\docaptionz#1#2{\egroup \def#1{#2}}
 
 % The parameter is the control sequence identifying the counter we are
 % going to use.  Create it if it doesn't exist and assign it to \floatno.
@@ -9898,12 +9932,10 @@ directory should work if nowhere else does.}
        % For native Unicode handling (XeTeX and LuaTeX)
        \nativeunicodechardefs
      \else
-       % For treating UTF-8 as byte sequences (TeX, eTeX and pdfTeX)
+       % For treating UTF-8 as byte sequences (TeX, eTeX and pdfTeX).
+       % Since we already invoke \utfeightchardefs at the top level,
+       % making non-ascii chars active is sufficient.
        \setnonasciicharscatcode\active
-       % since we already invoked \utfeightchardefs at the top level
-       % (below), do not re-invoke it, otherwise our check for duplicated
-       % definitions gets triggered.  Making non-ascii chars active is
-       % sufficient.
      \fi
   %
   \else
@@ -9928,7 +9960,6 @@ directory should work if nowhere else does.}
   \fi
 }
 
-% emacs-page
 % A message to be logged when using a character that isn't available
 % the default font encoding (OT1).
 %
@@ -9937,12 +9968,6 @@ directory should work if nowhere else does.}
 % Take account of \c (plain) vs. \, (Texinfo) difference.
 \def\cedilla#1{\ifx\c\ptexc\c{#1}\else\,{#1}\fi}
 
-% First, make active non-ASCII characters in order for them to be
-% correctly categorized when TeX reads the replacement text of
-% macros containing the character definitions.
-\setnonasciicharscatcode\active
-%
-
 \def\gdefchar#1#2{%
 \gdef#1{%
    \ifpassthroughchars
@@ -9952,8 +9977,14 @@ directory should work if nowhere else does.}
    \fi
 }}
 
+\begingroup
+
+% Make non-ASCII characters active for defining the character definition
+% macros.
+\setnonasciicharscatcode\active
+
 % Latin1 (ISO-8859-1) character definitions.
-\def\latonechardefs{%
+\gdef\latonechardefs{%
   \gdefchar^^a0{\tie}
   \gdefchar^^a1{\exclamdown}
   \gdefchar^^a2{{\tcfont \char162}} % cent
@@ -10058,7 +10089,7 @@ directory should work if nowhere else does.}
 }
 
 % Latin9 (ISO-8859-15) encoding character definitions.
-\def\latninechardefs{%
+\gdef\latninechardefs{%
   % Encoding is almost identical to Latin1.
   \latonechardefs
   %
@@ -10073,7 +10104,7 @@ directory should work if nowhere else does.}
 }
 
 % Latin2 (ISO-8859-2) character definitions.
-\def\lattwochardefs{%
+\gdef\lattwochardefs{%
   \gdefchar^^a0{\tie}
   \gdefchar^^a1{\ogonek{A}}
   \gdefchar^^a2{\u{}}
@@ -10091,7 +10122,7 @@ directory should work if nowhere else does.}
   \gdefchar^^ae{\v Z}
   \gdefchar^^af{\dotaccent Z}
   %
-  \gdefchar^^b0{\textdegree{}}
+  \gdefchar^^b0{\textdegree}
   \gdefchar^^b1{\ogonek{a}}
   \gdefchar^^b2{\ogonek{ }}
   \gdefchar^^b3{\l}
@@ -10177,6 +10208,8 @@ directory should work if nowhere else does.}
   \gdefchar^^ff{\dotaccent{}}
 }
 
+\endgroup % active chars
+
 % UTF-8 character definitions.
 %
 % This code to support UTF-8 is based on LaTeX's utf8.def, with some
@@ -10328,9 +10361,9 @@ directory should work if nowhere else does.}
   % Given the value in \countUTFz as a Unicode code point, set \UTFviiiTmp
   % to the corresponding UTF-8 sequence.
   \gdef\parseXMLCharref{%
-    \ifnum\countUTFz < "A0\relax
+    \ifnum\countUTFz < "20\relax
       \errhelp = \EMsimple
-      \errmessage{Cannot define Unicode char value < 00A0}%
+      \errmessage{Cannot define Unicode char value < 0020}%
     \else\ifnum\countUTFz < "800\relax
       \parseUTFviiiA,%
       \parseUTFviiiB C\UTFviiiTwoOctetsName.,%
@@ -10400,6 +10433,103 @@ directory should work if nowhere else does.}
 % least make most of the characters not bomb out.
 %
 \def\unicodechardefs{%
+  \DeclareUnicodeCharacter{0020}{ } % space
+  \DeclareUnicodeCharacter{0021}{\char"21 }% % space to terminate number
+  \DeclareUnicodeCharacter{0022}{\char"22 }%
+  \DeclareUnicodeCharacter{0023}{\char"23 }%
+  \DeclareUnicodeCharacter{0024}{\char"24 }%
+  \DeclareUnicodeCharacter{0025}{\char"25 }%
+  \DeclareUnicodeCharacter{0026}{\char"26 }%
+  \DeclareUnicodeCharacter{0027}{\char"27 }%
+  \DeclareUnicodeCharacter{0028}{\char"28 }%
+  \DeclareUnicodeCharacter{0029}{\char"29 }%
+  \DeclareUnicodeCharacter{002A}{\char"2A }%
+  \DeclareUnicodeCharacter{002B}{\char"2B }%
+  \DeclareUnicodeCharacter{002C}{\char"2C }%
+  \DeclareUnicodeCharacter{002D}{\char"2D }%
+  \DeclareUnicodeCharacter{002E}{\char"2E }%
+  \DeclareUnicodeCharacter{002F}{\char"2F }%
+  \DeclareUnicodeCharacter{0030}{0}%
+  \DeclareUnicodeCharacter{0031}{1}%
+  \DeclareUnicodeCharacter{0032}{2}%
+  \DeclareUnicodeCharacter{0033}{3}%
+  \DeclareUnicodeCharacter{0034}{4}%
+  \DeclareUnicodeCharacter{0035}{5}%
+  \DeclareUnicodeCharacter{0036}{6}%
+  \DeclareUnicodeCharacter{0037}{7}%
+  \DeclareUnicodeCharacter{0038}{8}%
+  \DeclareUnicodeCharacter{0039}{9}%
+  \DeclareUnicodeCharacter{003A}{\char"3A }%
+  \DeclareUnicodeCharacter{003B}{\char"3B }%
+  \DeclareUnicodeCharacter{003C}{\char"3C }%
+  \DeclareUnicodeCharacter{003D}{\char"3D }%
+  \DeclareUnicodeCharacter{003E}{\char"3E }%
+  \DeclareUnicodeCharacter{003F}{\char"3F }%
+  \DeclareUnicodeCharacter{0040}{\char"40 }%
+  \DeclareUnicodeCharacter{0041}{A}%
+  \DeclareUnicodeCharacter{0042}{B}%
+  \DeclareUnicodeCharacter{0043}{C}%
+  \DeclareUnicodeCharacter{0044}{D}%
+  \DeclareUnicodeCharacter{0045}{E}%
+  \DeclareUnicodeCharacter{0046}{F}%
+  \DeclareUnicodeCharacter{0047}{G}%
+  \DeclareUnicodeCharacter{0048}{H}%
+  \DeclareUnicodeCharacter{0049}{I}%
+  \DeclareUnicodeCharacter{004A}{J}%
+  \DeclareUnicodeCharacter{004B}{K}%
+  \DeclareUnicodeCharacter{004C}{L}%
+  \DeclareUnicodeCharacter{004D}{M}%
+  \DeclareUnicodeCharacter{004E}{N}%
+  \DeclareUnicodeCharacter{004F}{O}%
+  \DeclareUnicodeCharacter{0050}{P}%
+  \DeclareUnicodeCharacter{0051}{Q}%
+  \DeclareUnicodeCharacter{0052}{R}%
+  \DeclareUnicodeCharacter{0053}{S}%
+  \DeclareUnicodeCharacter{0054}{T}%
+  \DeclareUnicodeCharacter{0055}{U}%
+  \DeclareUnicodeCharacter{0056}{V}%
+  \DeclareUnicodeCharacter{0057}{W}%
+  \DeclareUnicodeCharacter{0058}{X}%
+  \DeclareUnicodeCharacter{0059}{Y}%
+  \DeclareUnicodeCharacter{005A}{Z}%
+  \DeclareUnicodeCharacter{005B}{\char"5B }%
+  \DeclareUnicodeCharacter{005C}{\char"5C }%
+  \DeclareUnicodeCharacter{005D}{\char"5D }%
+  \DeclareUnicodeCharacter{005E}{\char"5E }%
+  \DeclareUnicodeCharacter{005F}{\char"5F }%
+  \DeclareUnicodeCharacter{0060}{\char"60 }%
+  \DeclareUnicodeCharacter{0061}{a}%
+  \DeclareUnicodeCharacter{0062}{b}%
+  \DeclareUnicodeCharacter{0063}{c}%
+  \DeclareUnicodeCharacter{0064}{d}%
+  \DeclareUnicodeCharacter{0065}{e}%
+  \DeclareUnicodeCharacter{0066}{f}%
+  \DeclareUnicodeCharacter{0067}{g}%
+  \DeclareUnicodeCharacter{0068}{h}%
+  \DeclareUnicodeCharacter{0069}{i}%
+  \DeclareUnicodeCharacter{006A}{j}%
+  \DeclareUnicodeCharacter{006B}{k}%
+  \DeclareUnicodeCharacter{006C}{l}%
+  \DeclareUnicodeCharacter{006D}{m}%
+  \DeclareUnicodeCharacter{006E}{n}%
+  \DeclareUnicodeCharacter{006F}{o}%
+  \DeclareUnicodeCharacter{0070}{p}%
+  \DeclareUnicodeCharacter{0071}{q}%
+  \DeclareUnicodeCharacter{0072}{r}%
+  \DeclareUnicodeCharacter{0073}{s}%
+  \DeclareUnicodeCharacter{0074}{t}%
+  \DeclareUnicodeCharacter{0075}{u}%
+  \DeclareUnicodeCharacter{0076}{v}%
+  \DeclareUnicodeCharacter{0077}{w}%
+  \DeclareUnicodeCharacter{0078}{x}%
+  \DeclareUnicodeCharacter{0079}{y}%
+  \DeclareUnicodeCharacter{007A}{z}%
+  \DeclareUnicodeCharacter{007B}{\char"7B }%
+  \DeclareUnicodeCharacter{007C}{\char"7C }%
+  \DeclareUnicodeCharacter{007D}{\char"7D }%
+  \DeclareUnicodeCharacter{007E}{\char"7E }%
+  % \DeclareUnicodeCharacter{007F}{} % DEL
+  %
   \DeclareUnicodeCharacter{00A0}{\tie}%
   \DeclareUnicodeCharacter{00A1}{\exclamdown}%
   \DeclareUnicodeCharacter{00A2}{{\tcfont \char162}}% 0242=cent
@@ -10417,7 +10547,7 @@ directory should work if nowhere else does.}
   \DeclareUnicodeCharacter{00AE}{\registeredsymbol{}}%
   \DeclareUnicodeCharacter{00AF}{\={ }}%
   %
-  \DeclareUnicodeCharacter{00B0}{\ringaccent{ }}%
+  \DeclareUnicodeCharacter{00B0}{\textdegree}%
   \DeclareUnicodeCharacter{00B1}{\ensuremath\pm}%
   \DeclareUnicodeCharacter{00B2}{$^2$}%
   \DeclareUnicodeCharacter{00B3}{$^3$}%
@@ -10899,6 +11029,9 @@ directory should work if nowhere else does.}
   \DeclareUnicodeCharacter{1EF8}{\~Y}%
   \DeclareUnicodeCharacter{1EF9}{\~y}%
   %
+  % Exotic spaces
+  \DeclareUnicodeCharacter{2007}{\hphantom{0}}%
+  %
   % Punctuation
   \DeclareUnicodeCharacter{2013}{--}%
   \DeclareUnicodeCharacter{2014}{---}%
@@ -10918,7 +11051,7 @@ directory should work if nowhere else does.}
   %
   \DeclareUnicodeCharacter{20AC}{\euro{}}%
   %
-  \DeclareUnicodeCharacter{2192}{\expansion{}}%
+  \DeclareUnicodeCharacter{2192}{\arrow}%
   \DeclareUnicodeCharacter{21D2}{\result{}}%
   %
   % Mathematical symbols
@@ -11081,24 +11214,26 @@ directory should work if nowhere else does.}
 % provide a definition macro to replace/pass-through a Unicode character
 %
 \def\DeclareUnicodeCharacterNative#1#2{%
-  \catcode"#1=\active
-  \def\dodeclareunicodecharacternative##1##2##3{%
+  \ifnum"#1>"7F % only make non-ASCII chars active
+    \catcode"#1=\active
+    \def\dodeclareunicodecharacternative##1##2##3{%
+      \begingroup
+        \uccode`\~="##2\relax
+        \uppercase{\gdef~}{%
+          \ifpassthroughchars
+            ##1%
+          \else
+            ##3%
+          \fi
+        }
+      \endgroup
+    }
     \begingroup
-      \uccode`\~="##2\relax
-      \uppercase{\gdef~}{%
-        \ifpassthroughchars
-          ##1%
-        \else
-          ##3%
-        \fi
-      }
+      \uccode`\.="#1\relax
+      \uppercase{\def\UTFNativeTmp{.}}%
+      \expandafter\dodeclareunicodecharacternative\UTFNativeTmp{#1}{#2}%
     \endgroup
-  }
-  \begingroup
-    \uccode`\.="#1\relax
-    \uppercase{\def\UTFNativeTmp{.}}%
-    \expandafter\dodeclareunicodecharacternative\UTFNativeTmp{#1}{#2}%
-  \endgroup
+  \fi
 }
 
 % Native Unicode handling (XeTeX and LuaTeX) character replacing definition.
@@ -11127,14 +11262,14 @@ directory should work if nowhere else does.}
    \relax
 }
 
-% Define all Unicode characters we know about.  This makes UTF-8 the default
-% input encoding and allows @U to work.
+% Define all Unicode characters we know about
 \iftxinativeunicodecapable
   \nativeunicodechardefsatu
 \else
   \utfeightchardefs
 \fi
 
+
 \message{formatting,}
 
 \newdimen\defaultparindent \defaultparindent = 15pt
@@ -11181,13 +11316,9 @@ directory should work if nowhere else does.}
   %
   \vsize = #1\relax
   \advance\vsize by \topskip
-  \outervsize = \vsize
-  \advance\outervsize by 2\topandbottommargin
   \txipageheight = \vsize
   %
   \hsize = #2\relax
-  \outerhsize = \hsize
-  \advance\outerhsize by 0.5in
   \txipagewidth = \hsize
   %
   \normaloffset = #4\relax
@@ -11244,23 +11375,6 @@ directory should work if nowhere else does.}
   \defbodyindent = .5cm
 }}
 
-% Use @smallerbook to reset parameters for 6x9 trim size.
-% (Just testing, parameters still in flux.)
-\def\smallerbook{{\globaldefs = 1
-  \parskip = 1.5pt plus 1pt
-  \textleading = 12pt
-  %
-  \internalpagesizes{7.4in}{4.8in}%
-                    {-.2in}{-.4in}%
-                    {0pt}{14pt}%
-                    {9in}{6in}%
-  %
-  \lispnarrowing = 0.25in
-  \tolerance = 700
-  \contentsrightmargin = 0pt
-  \defbodyindent = .4cm
-}}
-
 % Use @afourpaper to print on European A4 paper.
 \def\afourpaper{{\globaldefs = 1
   \parskip = 3pt plus 2pt minus 1pt
@@ -11294,7 +11408,7 @@ directory should work if nowhere else does.}
   \textleading = 12.5pt
   %
   \internalpagesizes{160mm}{120mm}%
-                    {\voffset}{\hoffset}%
+                    {\voffset}{-11.4mm}%
                     {\bindingoffset}{8pt}%
                     {210mm}{148mm}%
   %
@@ -11373,9 +11487,138 @@ directory should work if nowhere else does.}
 \hfuzz = 1pt
 
 
+\message{microtype,}
+
+% protrusion, from Thanh's protcode.tex.
+\def\mtsetprotcode#1{%
+  \rpcode#1`\!=200  \rpcode#1`\,=700  \rpcode#1`\-=700  \rpcode#1`\.=700
+  \rpcode#1`\;=500  \rpcode#1`\:=500  \rpcode#1`\?=200
+  \rpcode#1`\'=700
+  \rpcode#1 34=500  % ''
+  \rpcode#1 123=300 % --
+  \rpcode#1 124=200 % ---
+  \rpcode#1`\)=50   \rpcode#1`\A=50   \rpcode#1`\F=50   \rpcode#1`\K=50
+  \rpcode#1`\L=50   \rpcode#1`\T=50   \rpcode#1`\V=50   \rpcode#1`\W=50
+  \rpcode#1`\X=50   \rpcode#1`\Y=50   \rpcode#1`\k=50   \rpcode#1`\r=50
+  \rpcode#1`\t=50   \rpcode#1`\v=50   \rpcode#1`\w=50   \rpcode#1`\x=50
+  \rpcode#1`\y=50
+  %
+  \lpcode#1`\`=700
+  \lpcode#1 92=500  % ``
+  \lpcode#1`\(=50   \lpcode#1`\A=50   \lpcode#1`\J=50   \lpcode#1`\T=50
+  \lpcode#1`\V=50   \lpcode#1`\W=50   \lpcode#1`\X=50   \lpcode#1`\Y=50
+  \lpcode#1`\v=50   \lpcode#1`\w=50   \lpcode#1`\x=50   \lpcode#1`\y=0
+  %
+  \mtadjustprotcode#1\relax
+}
+
+\newcount\countC
+\def\mtadjustprotcode#1{%
+  \countC=0
+  \loop
+    \ifcase\lpcode#1\countC\else
+      \mtadjustcp\lpcode#1\countC
+    \fi
+    \ifcase\rpcode#1\countC\else
+      \mtadjustcp\rpcode#1\countC
+    \fi
+    \advance\countC 1
+  \ifnum\countC < 256 \repeat
+}
+
+\newcount\countB
+\def\mtadjustcp#1#2#3{%
+  \setbox\boxA=\hbox{%
+    \ifx#2\font\else#2\fi
+    \char#3}%
+  \countB=\wd\boxA
+  \multiply\countB #1#2#3\relax
+  \divide\countB \fontdimen6 #2\relax
+  #1#2#3=\countB\relax
+}
+
+\ifx\XeTeXrevision\thisisundefined
+  \ifx\luatexversion\thisisundefined
+    \ifpdf % pdfTeX
+      \mtsetprotcode\textrm
+      \def\mtfontexpand#1{\pdffontexpand#1 20 20 1 autoexpand\relax}
+    \else % TeX
+      \def\mtfontexpand#1{}
+    \fi
+  \else % LuaTeX
+    \mtsetprotcode\textrm
+    \def\mtfontexpand#1{\expandglyphsinfont#1 20 20 1\relax}
+  \fi
+\else % XeTeX
+  \mtsetprotcode\textrm
+  \def\mtfontexpand#1{}
+\fi
+
+
+\newif\ifmicrotype
+
+\def\microtypeON{%
+  \microtypetrue
+  %
+  \ifx\XeTeXrevision\thisisundefined
+    \ifx\luatexversion\thisisundefined
+      \ifpdf % pdfTeX
+        \pdfadjustspacing=2
+        \pdfprotrudechars=2
+      \fi
+    \else % LuaTeX
+      \adjustspacing=2
+      \protrudechars=2
+    \fi
+  \else % XeTeX
+    \XeTeXprotrudechars=2
+  \fi
+  %
+  \mtfontexpand\textrm
+  \mtfontexpand\textsl
+  \mtfontexpand\textbf
+}
+
+\def\microtypeOFF{%
+  \microtypefalse
+  %
+  \ifx\XeTeXrevision\thisisundefined
+    \ifx\luatexversion\thisisundefined
+      \ifpdf % pdfTeX
+        \pdfadjustspacing=0
+        \pdfprotrudechars=0
+      \fi
+    \else % LuaTeX
+      \adjustspacing=0
+      \protrudechars=0
+    \fi
+  \else % XeTeX
+    \XeTeXprotrudechars=0
+  \fi
+}
+
+\microtypeOFF
+
+\parseargdef\microtype{%
+  \def\txiarg{#1}%
+  \ifx\txiarg\onword
+    \microtypeON
+  \else\ifx\txiarg\offword
+    \microtypeOFF
+  \else
+    \errhelp = \EMsimple
+    \errmessage{Unknown @microtype option `\txiarg', must be on|off}%
+  \fi\fi
+}
+
+
 \message{and turning on texinfo input format.}
 
+% Make UTF-8 the default encoding.
+\documentencodingzzz{UTF-8}
+
 \def^^L{\par} % remove \outer, so ^L can appear in an @comment
+\catcode`\^^K = 10 % treat vertical tab as whitespace
 
 % DEL is a comment character, in case @c does not suffice.
 \catcode`\^^? = 14
@@ -11391,23 +11634,6 @@ directory should work if nowhere else does.}
 \catcode`\|=\other \def\normalverticalbar{|}
 \catcode`\~=\other \def\normaltilde{~}
 
-% This macro is used to make a character print one way in \tt
-% (where it can probably be output as-is), and another way in other fonts,
-% where something hairier probably needs to be done.
-%
-% #1 is what to print if we are indeed using \tt; #2 is what to print
-% otherwise.  Since all the Computer Modern typewriter fonts have zero
-% interword stretch (and shrink), and it is reasonable to expect all
-% typewriter fonts to have this, we can check that font parameter.
-%
-\def\ifusingtt#1#2{\ifdim \fontdimen3\font=0pt #1\else #2\fi}
-
-% Same as above, but check for italic font.  Actually this also catches
-% non-italic slanted fonts since it is impossible to distinguish them from
-% italic fonts.  But since this is only used by $ and it uses \sl anyway
-% this is not a problem.
-\def\ifusingit#1#2{\ifdim \fontdimen1\font>0pt #1\else #2\fi}
-
 % Set catcodes for Texinfo file
 
 % Active characters for printing the wanted glyph.
@@ -11453,23 +11679,32 @@ directory should work if nowhere else does.}
 % Used sometimes to turn off (effectively) the active characters even after
 % parsing them.
 \def\turnoffactive{%
-  \normalturnoffactive
+  \passthroughcharstrue
+  \let-=\normaldash
+  \let"=\normaldoublequote
+  \let$=\normaldollar %$ font-lock fix
+  \let+=\normalplus
+  \let<=\normalless
+  \let>=\normalgreater
+  \let^=\normalcaret
+  \let_=\normalunderscore
+  \let|=\normalverticalbar
+  \let~=\normaltilde
   \otherbackslash
+  \setregularquotes
+  \unsepspaces
 }
 
-\catcode`\@=0
+% If a .fmt file is being used, characters that might appear in a file
+% name cannot be active until we have parsed the command line.
+% So turn them off again, and have \loadconf turn them back on.
+\catcode`+=\other \catcode`\_=\other
+
 
 % \backslashcurfont outputs one backslash character in current font,
 % as in \char`\\.
 \global\chardef\backslashcurfont=`\\
 
-% \realbackslash is an actual character `\' with catcode other.
-{\catcode`\\=\other @gdef@realbackslash{\}}
-
-% In Texinfo, backslash is an active character; it prints the backslash
-% in fixed width font.
-\catcode`\\=\active  % @ for escape char from now on.
-
 % Print a typewriter backslash.  For math mode, we can't simply use
 % \backslashcurfont: the story here is that in math mode, the \char
 % of \backslashcurfont ends up printing the roman \ from the math symbol
@@ -11479,109 +11714,120 @@ directory should work if nowhere else does.}
 % ignored family value; char position "5C).  We can't use " for the
 % usual hex value because it has already been made active.
 
-@def@ttbackslash{{@tt @ifmmode @mathchar29020 @else @backslashcurfont @fi}}
-@let@backslashchar = @ttbackslash % @backslashchar{} is for user documents.
-
-% \otherbackslash defines an active \ to be a literal `\' character with
-% catcode other.
-@gdef@otherbackslash{@let\=@realbackslash}
-
-% Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of
-% the literal character `\'.
-%
-{@catcode`- = @active
- @gdef@normalturnoffactive{%
-   @passthroughcharstrue
-   @let-=@normaldash
-   @let"=@normaldoublequote
-   @let$=@normaldollar %$ font-lock fix
-   @let+=@normalplus
-   @let<=@normalless
-   @let>=@normalgreater
-   @let^=@normalcaret
-   @let_=@normalunderscore
-   @let|=@normalverticalbar
-   @let~=@normaltilde
-   @let\=@ttbackslash
-   @setregularquotes
-   @unsepspaces
- }
-}
+\def\ttbackslash{{\tt \ifmmode \mathchar29020 \else \backslashcurfont \fi}}
+\let\backslashchar = \ttbackslash % \backslashchar{} is for user documents.
 
-% If a .fmt file is being used, characters that might appear in a file
-% name cannot be active until we have parsed the command line.
-% So turn them off again, and have @fixbackslash turn them back on.
-@catcode`+=@other @catcode`@_=@other
-
-% \enablebackslashhack - allow file to begin `\input texinfo'
-%
-% If a .fmt file is being used, we don't want the `\input texinfo' to show up.
-% That is what \eatinput is for; after that, the `\' should revert to printing
-% a backslash.
-% If the file did not have a `\input texinfo', then it is turned off after
-% the first line; otherwise the first `\' in the file would cause an error.
-% This is used on the very last line of this file, texinfo.tex.
-% We also use @c to call @fixbackslash, in case ends of lines are hidden.
-{
-@catcode`@^=7
-@catcode`@^^M=13@gdef@enablebackslashhack{%
-  @global@let\ = @eatinput%
-  @catcode`@^^M=13%
-  @def@c{@fixbackslash@c}%
-  % Definition for the newline at the end of this file.
-  @def ^^M{@let^^M@secondlinenl}%
-  % Definition for a newline in the main Texinfo file.
-  @gdef @secondlinenl{@fixbackslash}%
+% These are made active for url-breaking, so need
+% active definitions as the normal characters.
+\def\normaldot{.}
+\def\normalquest{?}
+\def\normalslash{/}
+
+% \newlinesloadsconf - call \loadconf as soon as possible in the
+% file, e.g. at the first newline.
+%
+{\catcode`\^=7
+\catcode`\^^M=13
+\gdef\newlineloadsconf{%
+  \catcode`\^^M=13 %
+  \newlineloadsconfzz%
+}
+\gdef\newlineloadsconfzz#1^^M{%
+  \def\c{\loadconf\c}%
+  % Definition for the first newline read in the file
+  \def ^^M{\loadconf}%
   % In case the first line has a whole-line command on it
-  @let@originalparsearg@parsearg
-  @def@parsearg{@fixbackslash@originalparsearg}
+  \let\originalparsearg\parsearg%
+  \def\parsearg{\loadconf\originalparsearg}%
 }}
 
-{@catcode`@^=7 @catcode`@^^M=13%
-@gdef@eatinput input texinfo#1^^M{@fixbackslash}}
 
 % Emergency active definition of newline, in case an active newline token
 % appears by mistake.
-{@catcode`@^=7 @catcode13=13%
-@gdef@enableemergencynewline{%
-  @gdef^^M{%
-    @par%
-    %<warning: active newline>@par%
+{\catcode`\^=7 \catcode13=13%
+\gdef\enableemergencynewline{%
+  \gdef^^M{%
+    \par%
+    %<warning: active newline>\par%
 }}}
 
 
-@gdef@fixbackslash{%
-  @ifx\@eatinput @let\ = @ttbackslash @fi
-  @catcode13=5 % regular end of line
-  @enableemergencynewline
-  @let@c=@comment
-  @let@parsearg@originalparsearg
+% \loadconf gets called at the beginning of every Texinfo file.
+% If texinfo.cnf is present on the system, read it.  Useful for site-wide
+% @afourpaper, etc.  Not opening texinfo.cnf directly in texinfo.tex
+% makes it possible to make a format file for Texinfo.
+%
+\gdef\loadconf{%
+  \relax  % Terminate the filename if running as "tex '&texinfo' FILE.texi".
+  %
+  % Turn off the definitions that trigger \loadconf
+  \everyjobreset
+  \catcode13=5 % regular end of line
+  \enableemergencynewline
+  \let\c=\comment
+  \let\parsearg\originalparsearg
+  %
   % Also turn back on active characters that might appear in the input
   % file name, in case not using a pre-dumped format.
-  @catcode`+=@active
-  @catcode`@_=@active
-  %
-  % If texinfo.cnf is present on the system, read it.
-  % Useful for site-wide @afourpaper, etc.  This macro, @fixbackslash, gets
-  % called at the beginning of every Texinfo file.  Not opening texinfo.cnf
-  % directly in this file, texinfo.tex, makes it possible to make a format
-  % file for Texinfo.
+  \catcode`+=\active
+  \catcode`\_=\active
   %
-  @openin 1 texinfo.cnf
-  @ifeof 1 @else @input texinfo.cnf @fi
-  @closein 1
+  \openin 1 texinfo.cnf
+  \ifeof 1 \else \input texinfo.cnf \fi
+  \closein 1
 }
 
+% Redefine some control sequences to be controlled by the \ifdummies
+% and \ifindexnofonts switches.  Do this at the end so that the control
+% sequences are all defined.
+\definedummies
+
+
+
+
+\catcode`\@=0
+
+% \realbackslash is an actual character `\' with catcode other.
+{\catcode`\\=\other @gdef@realbackslash{\}}
+
+% In Texinfo, backslash is an active character; it prints the backslash
+% in fixed width font.
+\catcode`\\=\active  % @ for escape char from now on.
+
+@let\ = @ttbackslash
+
+% If in a .fmt file, print the version number.
+% \eatinput stops the `\input texinfo' from showing up.
+% After that, `\' should revert to printing a backslash.
+% Turn on active characters that we couldn't do earlier because
+% they might have appeared in the input file name.
+%
+@everyjob{@message{[Texinfo version @texinfoversion]}%
+  @global@let\ = @eatinput
+  @catcode`+=@active @catcode`@_=@active}
+
+{@catcode`@^=7 @catcode`@^^M=13%
+@gdef@eatinput input texinfo#1^^M{@loadconf}}
+
+@def@everyjobreset{@ifx\@eatinput @let\ = @ttbackslash @fi}
+
+% \otherbackslash defines an active \ to be a literal `\' character with
+% catcode other.
+@gdef@otherbackslash{@let\=@realbackslash}
+
+% Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of
+% the literal character `\'.
+%
+{@catcode`- = @active
+ @gdef@normalturnoffactive{%
+   @turnoffactive
+   @let\=@ttbackslash
+ }
+}
 
 % Say @foo, not \foo, in error messages.
 @escapechar = `@@
 
-% These (along with & and #) are made active for url-breaking, so need
-% active definitions as the normal characters.
-@def@normaldot{.}
-@def@normalquest{?}
-@def@normalslash{/}
-
 % These look ok in all fonts, so just make them not special.
 % @hashchar{} gets its own user-level command, because of #line.
 @catcode`@& = @other @def@normalamp{&}
@@ -11596,17 +11842,11 @@ directory should work if nowhere else does.}
 @c Do this last of all since we use ` in the previous @catcode assignments.
 @catcode`@'=@active
 @catcode`@`=@active
-@setregularquotes
 
 @c Local variables:
-@c eval: (add-hook 'before-save-hook 'time-stamp)
-@c page-delimiter: "^\\\\message\\|emacs-page"
-@c time-stamp-start: "def\\\\texinfoversion{"
-@c time-stamp-format: "%:y-%02m-%02d.%02H"
-@c time-stamp-end: "}"
+@c eval: (add-hook 'before-save-hook 'time-stamp nil t)
+@c time-stamp-pattern: "texinfoversion{%Y-%02m-%02d.%02H}"
+@c page-delimiter: "^\\\\message"
 @c End:
 
-@c vim:sw=2:
-
-@enablebackslashhack
-
+@newlineloadsconf
index fae3a5f..99196fc 100755 (executable)
@@ -3,11 +3,11 @@
 
 # Update an FSF copyright year list to include the current year.
 
-# Copyright (C) 2009-2021 Free Software Foundation, Inc.
+# Copyright (C) 2009-2023 Free Software Foundation, Inc.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3, or (at your option)
+# the Free Software Foundation, either version 3, or (at your option)
 # any later version.
 #
 # This program is distributed in the hope that it will be useful,
 eval 'exec perl -wSx -0777 -pi "$0" "$@"'
      if 0;
 
-my $VERSION = '2020-04-04.15:07'; # UTC
+my $VERSION = '2023-01-11.04:24'; # UTC
 # The definition above must lie within the first 8 lines in order
 # for the Emacs time-stamp write hook (at end) to update it.
 # If you change this file with Emacs, please let the write hook
@@ -280,7 +280,7 @@ if (defined $stmt_re)
           }
 
         # Replace the old copyright statement.
-        s/$stmt_re/$stmt_wrapped/;
+        s/$stmt_re/$stmt_wrapped/g;
       }
   }
 else
index 5bbbc44..f4908ba 100755 (executable)
@@ -4,7 +4,7 @@
 # Detect instances of "if (p) free (p);".
 # Likewise "if (p != 0)", "if (0 != p)", or with NULL; and with braces.
 
-# Copyright (C) 2008-2021 Free Software Foundation, Inc.
+# Copyright (C) 2008-2023 Free Software Foundation, Inc.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
 eval 'exec perl -wSx "$0" "$@"'
      if 0;
 
-my $VERSION = '2021-04-11 10:11'; # UTC
+my $VERSION = '2022-01-27 18:51'; # UTC
 # The definition above must lie within the first 8 lines in order
 # for the Emacs time-stamp write hook (at end) to update it.
 # If you change this file with Emacs, please let the write hook
 # do its job.  Otherwise, update this string manually.
 
-my $copyright_year = '2021';
+my $copyright_year = '2022';
 
 use strict;
 use warnings;
index cf168ea..5ed2b14 100755 (executable)
@@ -4,7 +4,7 @@
 # Print a version string.
 scriptversion=2018-03-07.03; # UTC
 
-# Copyright (C) 2006-2021 Free Software Foundation, Inc.
+# Copyright (C) 2006-2023 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/cfg.mk b/cfg.mk
index 970af0a..b58175e 100644 (file)
--- a/cfg.mk
+++ b/cfg.mk
@@ -1,5 +1,5 @@
 # Customize maint.mk                           -*- makefile -*-
-# Copyright (C) 2003-2013, 2015-2021 Free Software Foundation, Inc.
+# Copyright (C) 2003-2013, 2015-2023 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -24,7 +24,8 @@ manual_title = Comparing and Merging Files
 # Tests not to run as part of "make distcheck".
 local-checks-to-skip =         \
   sc_error_message_period      \
-  sc_error_message_uppercase
+  sc_error_message_uppercase   \
+  sc_indent
 
 # Tools used to bootstrap this package, used for "announcement".
 bootstrap-tools = autoconf,automake,gnulib
@@ -35,7 +36,7 @@ announcement_Cc_ = $(translation_project_), $(PACKAGE)-devel@gnu.org
 # Now that we have better tests, make this the default.
 export VERBOSE = yes
 
-old_NEWS_hash = 883954bcb25c48755004736540de39e7
+old_NEWS_hash = cf070086af56e7394cc5a0c862d0cd11
 
 # Tell maint.mk's syntax-check rules that diff gets config.h directly or
 # via diff.h or system.h.
@@ -70,6 +71,7 @@ config-save:
        cp lib/config.h config.status $(_cf_state_dir)/latest
 
 exclude_file_name_regexp--sc_space_tab = ^gl/lib/.*\.c\.diff$$
+exclude_file_name_regexp--sc_prohibit_doubled_word = ^tests/y2038-vs-32bit$$
 
 # Tell gnulib's tight_scope rule that we mark externs with XTERN
-export _gl_TS_extern = extern|XTERN
+export _gl_TS_extern = extern|XTERN|DIFF_INLINE
index ee2c39a..5cddf21 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,11 +1,11 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for GNU diffutils 3.8.
+# Generated by GNU Autoconf 2.72c.20-9c018 for GNU diffutils 3.10.
 #
 # Report bugs to <bug-diffutils@gnu.org>.
 #
 #
-# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
+# Copyright (C) 1992-1996, 1998-2017, 2020-2023 Free Software Foundation,
 # Inc.
 #
 #
@@ -17,7 +17,6 @@
 
 # Be more Bourne compatible
 DUALCASE=1; export DUALCASE # for MKS sh
-as_nop=:
 if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
 then :
   emulate sh
@@ -26,12 +25,13 @@ then :
   # is contrary to our usage.  Disable this feature.
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
-else $as_nop
-  case `(set -o) 2>/dev/null` in #(
+else case e in #(
+  e) case `(set -o) 2>/dev/null` in #(
   *posix*) :
     set -o posix ;; #(
   *) :
      ;;
+esac ;;
 esac
 fi
 
@@ -103,7 +103,7 @@ IFS=$as_save_IFS
 
      ;;
 esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
+# We did not find ourselves, most probably we were run as 'sh COMMAND'
 # in which case we are not to be found in the path.
 if test "x$as_myself" = x; then
   as_myself=$0
@@ -133,15 +133,14 @@ case $- in # ((((
 esac
 exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
 # Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
+# out after a failed 'exec'.
 printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
 exit 255
   fi
   # We don't want this to propagate to other subprocesses.
           { _as_can_reexec=; unset _as_can_reexec;}
 if test "x$CONFIG_SHELL" = x; then
-  as_bourne_compatible="as_nop=:
-if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+  as_bourne_compatible="if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
 then :
   emulate sh
   NULLCMD=:
@@ -149,12 +148,13 @@ then :
   # is contrary to our usage.  Disable this feature.
   alias -g '\${1+\"\$@\"}'='\"\$@\"'
   setopt NO_GLOB_SUBST
-else \$as_nop
-  case \`(set -o) 2>/dev/null\` in #(
+else case e in #(
+  e) case \`(set -o) 2>/dev/null\` in #(
   *posix*) :
     set -o posix ;; #(
   *) :
      ;;
+esac ;;
 esac
 fi
 "
@@ -172,8 +172,9 @@ as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
 if ( set x; as_fn_ret_success y && test x = \"\$1\" )
 then :
 
-else \$as_nop
-  exitcode=1; echo positional parameters were not saved.
+else case e in #(
+  e) exitcode=1; echo positional parameters were not saved. ;;
+esac
 fi
 test x\$exitcode = x0 || exit 1
 blah=\$(echo \$(echo blah))
@@ -187,14 +188,15 @@ test \$(( 1 + 1 )) = 2 || exit 1"
   if (eval "$as_required") 2>/dev/null
 then :
   as_have_required=yes
-else $as_nop
-  as_have_required=no
+else case e in #(
+  e) as_have_required=no ;;
+esac
 fi
   if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null
 then :
 
-else $as_nop
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+else case e in #(
+  e) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 as_found=false
 for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
 do
@@ -227,12 +229,13 @@ IFS=$as_save_IFS
 if $as_found
 then :
 
-else $as_nop
-  if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+else case e in #(
+  e) if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
              as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null
 then :
   CONFIG_SHELL=$SHELL as_have_required=yes
-fi
+fi ;;
+esac
 fi
 
 
@@ -254,7 +257,7 @@ case $- in # ((((
 esac
 exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
 # Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
+# out after a failed 'exec'.
 printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
 exit 255
 fi
@@ -274,7 +277,8 @@ $0: a modern shell, or manually run the script under such a
 $0: shell if you do have one."
   fi
   exit 1
-fi
+fi ;;
+esac
 fi
 fi
 SHELL=${CONFIG_SHELL-/bin/sh}
@@ -313,14 +317,6 @@ as_fn_exit ()
   as_fn_set_status $1
   exit $1
 } # as_fn_exit
-# as_fn_nop
-# ---------
-# Do nothing but, unlike ":", preserve the value of $?.
-as_fn_nop ()
-{
-  return $?
-}
-as_nop=as_fn_nop
 
 # as_fn_mkdir_p
 # -------------
@@ -389,11 +385,12 @@ then :
   {
     eval $1+=\$2
   }'
-else $as_nop
-  as_fn_append ()
+else case e in #(
+  e) as_fn_append ()
   {
     eval $1=\$$1\$2
-  }
+  } ;;
+esac
 fi # as_fn_append
 
 # as_fn_arith ARG...
@@ -407,21 +404,14 @@ then :
   {
     as_val=$(( $* ))
   }'
-else $as_nop
-  as_fn_arith ()
+else case e in #(
+  e) as_fn_arith ()
   {
     as_val=`expr "$@" || test $? -eq 1`
-  }
+  } ;;
+esac
 fi # as_fn_arith
 
-# as_fn_nop
-# ---------
-# Do nothing but, unlike ":", preserve the value of $?.
-as_fn_nop ()
-{
-  return $?
-}
-as_nop=as_fn_nop
 
 # as_fn_error STATUS ERROR [LINENO LOG_FD]
 # ----------------------------------------
@@ -495,6 +485,8 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
     /[$]LINENO/=
   ' <$as_myself |
     sed '
+      t clear
+      :clear
       s/[$]LINENO.*/&-/
       t lineno
       b
@@ -543,7 +535,6 @@ esac
 as_echo='printf %s\n'
 as_echo_n='printf %s'
 
-
 rm -f conf$$ conf$$.exe conf$$.file
 if test -d conf$$.dir; then
   rm -f conf$$.dir/conf$$.file
@@ -555,9 +546,9 @@ if (echo >conf$$.file) 2>/dev/null; then
   if ln -s conf$$.file conf$$ 2>/dev/null; then
     as_ln_s='ln -s'
     # ... but there are two gotchas:
-    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -pR'.
+    # 1) On MSYS, both 'ln -s file dir' and 'ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; 'ln -s' creates a wrapper executable.
+    # In both cases, we have to default to 'cp -pR'.
     ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
       as_ln_s='cp -pR'
   elif ln conf$$.file conf$$ 2>/dev/null; then
@@ -582,10 +573,12 @@ as_test_x='test -x'
 as_executable_p=as_fn_executable_p
 
 # Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+as_sed_cpp="y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
+as_tr_cpp="eval sed '$as_sed_cpp'" # deprecated
 
 # Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+as_sed_sh="y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+as_tr_sh="eval sed '$as_sed_sh'" # deprecated
 
 
 test -n "$DJDIR" || exec 7<&0 </dev/null
@@ -611,8 +604,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='GNU diffutils'
 PACKAGE_TARNAME='diffutils'
-PACKAGE_VERSION='3.8'
-PACKAGE_STRING='GNU diffutils 3.8'
+PACKAGE_VERSION='3.10'
+PACKAGE_STRING='GNU diffutils 3.10'
 PACKAGE_BUGREPORT='bug-diffutils@gnu.org'
 PACKAGE_URL='https://www.gnu.org/software/diffutils/'
 
@@ -650,13 +643,17 @@ ac_includes_default="\
 
 ac_header_c_list=
 gl_use_threads_default=
-gl_use_winpthreads_default=
+gl_use_winpthreads_default=no
+ac_config_libobj_dir=gnulib-tests
 ac_func_c_list=
 gl_fnmatch_required=POSIX
 gl_getopt_required=POSIX
 gt_needs=
-ac_subst_vars='gltests_LTLIBOBJS
+enable_year2038=yes
+ac_subst_vars='gltests_LIBOBJDEPS
+gltests_LTLIBOBJS
 gltests_LIBOBJS
+gl_LIBOBJDEPS
 gl_LTLIBOBJS
 gl_LIBOBJS
 CONFIG_INCLUDE
@@ -685,15 +682,37 @@ WERROR_CFLAGS
 LIBTESTS_LIBDEPS
 LIBDIFFUTILS_LTLIBDEPS
 LIBDIFFUTILS_LIBDEPS
+GL_CFLAG_GNULIB_WARNINGS
+GL_COND_OBJ_WINDOWS_TLS_FALSE
+GL_COND_OBJ_WINDOWS_TLS_TRUE
+GL_COND_OBJ_WINDOWS_THREAD_FALSE
+GL_COND_OBJ_WINDOWS_THREAD_TRUE
+GL_COND_OBJ_WCTOMB_FALSE
+GL_COND_OBJ_WCTOMB_TRUE
+GL_COND_OBJ_WCTOB_FALSE
+GL_COND_OBJ_WCTOB_TRUE
 abs_aux_dir
+GL_COND_OBJ_TIME_FALSE
+GL_COND_OBJ_TIME_TRUE
 HAVE_SYS_UIO_H
 NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H
 NEXT_SYS_UIO_H
 NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H
 NEXT_SYS_IOCTL_H
 HAVE_SYS_IOCTL_H
-GL_GNULIB_SELECT
-GL_GNULIB_PSELECT
+GL_COND_OBJ_SYMLINK_FALSE
+GL_COND_OBJ_SYMLINK_TRUE
+GL_COND_OBJ_SOCKET_FALSE
+GL_COND_OBJ_SOCKET_TRUE
+GL_COND_OBJ_SLEEP_FALSE
+GL_COND_OBJ_SLEEP_TRUE
+GL_COND_OBJ_SETSOCKOPT_FALSE
+GL_COND_OBJ_SETSOCKOPT_TRUE
+GL_COND_OBJ_SELECT_FALSE
+GL_COND_OBJ_SELECT_TRUE
+LIB_SELECT
+SELECT_LIB
+LIBSOCKET
 GL_GNULIB_SCHED_YIELD
 HAVE_STRUCT_SCHED_PARAM
 HAVE_SCHED_H
@@ -701,7 +720,14 @@ NEXT_AS_FIRST_DIRECTIVE_SCHED_H
 NEXT_SCHED_H
 REPLACE_SCHED_YIELD
 HAVE_SCHED_YIELD
+GL_COND_OBJ_PUTENV_FALSE
+GL_COND_OBJ_PUTENV_TRUE
+GL_COND_OBJ_PTHREAD_SIGMASK_FALSE
+GL_COND_OBJ_PTHREAD_SIGMASK_TRUE
 LIB_PTHREAD_SIGMASK
+PTHREAD_SIGMASK_LIB
+GL_COND_OBJ_PTHREAD_THREAD_FALSE
+GL_COND_OBJ_PTHREAD_THREAD_TRUE
 GL_GNULIB_PTHREAD_MUTEX_TIMEDLOCK
 GL_GNULIB_PTHREAD_SPIN
 GL_GNULIB_PTHREAD_TSS
@@ -822,24 +848,61 @@ HAVE_PTHREAD_MUTEX_RECURSIVE
 HAVE_PTHREAD_CREATE_DETACHED
 HAVE_PTHREAD_SPINLOCK_T
 HAVE_PTHREAD_T
+GL_GNULIB_SELECT
+GL_GNULIB_PSELECT
+GL_COND_OBJ_PSELECT_FALSE
+GL_COND_OBJ_PSELECT_TRUE
+HAVE_SYS_SELECT_H
+NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H
+NEXT_SYS_SELECT_H
+REPLACE_SELECT
+REPLACE_PSELECT
+HAVE_PSELECT
+GL_COND_OBJ_PIPE_FALSE
+GL_COND_OBJ_PIPE_TRUE
+GL_COND_OBJ_PERROR_FALSE
+GL_COND_OBJ_PERROR_TRUE
 GL_GENERATE_NETINET_IN_H_FALSE
 GL_GENERATE_NETINET_IN_H_TRUE
 NETINET_IN_H
 HAVE_NETINET_IN_H
 NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H
 NEXT_NETINET_IN_H
+GL_COND_OBJ_NANOSLEEP_FALSE
+GL_COND_OBJ_NANOSLEEP_TRUE
 LIB_NANOSLEEP
-LIB_SELECT
-LIBSOCKET
-HAVE_SYS_SELECT_H
-NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H
-NEXT_SYS_SELECT_H
-REPLACE_SELECT
-REPLACE_PSELECT
-HAVE_PSELECT
+NANOSLEEP_LIB
+GL_COND_OBJ_LISTEN_FALSE
+GL_COND_OBJ_LISTEN_TRUE
 GL_GNULIB_IOCTL
+GL_COND_OBJ_IOCTL_FALSE
+GL_COND_OBJ_IOCTL_TRUE
+GL_COND_OBJ_INET_PTON_FALSE
+GL_COND_OBJ_INET_PTON_TRUE
 INET_PTON_LIB
+GL_COND_OBJ_GETCWD_LGPL_FALSE
+GL_COND_OBJ_GETCWD_LGPL_TRUE
+GL_COND_OBJ_FTRUNCATE_FALSE
+GL_COND_OBJ_FTRUNCATE_TRUE
+GL_COND_OBJ_ITOLD_FALSE
+GL_COND_OBJ_ITOLD_TRUE
+GL_COND_OBJ_FLOAT_FALSE
+GL_COND_OBJ_FLOAT_TRUE
+GL_GENERATE_FLOAT_H_FALSE
+GL_GENERATE_FLOAT_H_TRUE
+FLOAT_H
+REPLACE_ITOLD
+NEXT_AS_FIRST_DIRECTIVE_FLOAT_H
+NEXT_FLOAT_H
+GL_COND_OBJ_FDOPEN_FALSE
+GL_COND_OBJ_FDOPEN_TRUE
+GL_COND_OBJ_CONNECT_FALSE
+GL_COND_OBJ_CONNECT_TRUE
 LOCALE_TR_UTF8
+GL_COND_OBJ_BIND_FALSE
+GL_COND_OBJ_BIND_TRUE
+GL_COND_OBJ_ATOLL_FALSE
+GL_COND_OBJ_ATOLL_TRUE
 GL_GNULIB_INET_PTON
 GL_GNULIB_INET_NTOP
 NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H
@@ -864,6 +927,8 @@ GL_GNULIB_BIND
 GL_GNULIB_ACCEPT
 GL_GNULIB_CONNECT
 GL_GNULIB_SOCKET
+GL_COND_OBJ_ACCEPT_FALSE
+GL_COND_OBJ_ACCEPT_TRUE
 HAVE_WS2TCPIP_H
 HAVE_SYS_SOCKET_H
 NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H
@@ -875,9 +940,27 @@ HAVE_STRUCT_SOCKADDR_STORAGE
 gltests_WITNESS
 GL_CXXFLAG_ALLOW_WARNINGS
 GL_CFLAG_ALLOW_WARNINGS
+GL_COND_OBJ_WMEMPCPY_FALSE
+GL_COND_OBJ_WMEMPCPY_TRUE
+GL_COND_OBJ_WMEMCHR_FALSE
+GL_COND_OBJ_WMEMCHR_TRUE
+GL_COND_OBJ_WINDOWS_RWLOCK_FALSE
+GL_COND_OBJ_WINDOWS_RWLOCK_TRUE
+GL_COND_OBJ_WINDOWS_RECMUTEX_FALSE
+GL_COND_OBJ_WINDOWS_RECMUTEX_TRUE
+GL_COND_OBJ_WINDOWS_ONCE_FALSE
+GL_COND_OBJ_WINDOWS_ONCE_TRUE
+GL_COND_OBJ_WINDOWS_MUTEX_FALSE
+GL_COND_OBJ_WINDOWS_MUTEX_TRUE
+GL_COND_OBJ_WCWIDTH_FALSE
+GL_COND_OBJ_WCWIDTH_TRUE
+GL_COND_OBJ_WCRTOMB_FALSE
+GL_COND_OBJ_WCRTOMB_TRUE
+HAVE_FEATURES_H
 NEXT_AS_FIRST_DIRECTIVE_WCHAR_H
 NEXT_WCHAR_H
-HAVE_FEATURES_H
+GL_COND_OBJ_UNSETENV_FALSE
+GL_COND_OBJ_UNSETENV_TRUE
 LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_FALSE
 LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE
 LIBUNISTRING_UNIWIDTH_H
@@ -887,9 +970,18 @@ LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE
 LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_FALSE
 LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE
 LIBUNISTRING_UNISTR_H
+HAVE_UNISTRING_WOE32DLL_H
 HAVE_UNISTD_H
 NEXT_AS_FIRST_DIRECTIVE_UNISTD_H
 NEXT_UNISTD_H
+GL_COND_OBJ_TZSET_FALSE
+GL_COND_OBJ_TZSET_TRUE
+GL_COND_OBJ_TIMEGM_FALSE
+GL_COND_OBJ_TIMEGM_TRUE
+GL_COND_OBJ_TIME_RZ_FALSE
+GL_COND_OBJ_TIME_RZ_TRUE
+GL_COND_OBJ_TIME_R_FALSE
+GL_COND_OBJ_TIME_R_TRUE
 TIME_H_DEFINES_TIME_UTC
 UNISTD_H_DEFINES_STRUCT_TIMESPEC
 PTHREAD_H_DEFINES_STRUCT_TIMESPEC
@@ -907,45 +999,83 @@ NEXT_SYS_TYPES_H
 HAVE_SYS_RANDOM_H
 NEXT_AS_FIRST_DIRECTIVE_SYS_RANDOM_H
 NEXT_SYS_RANDOM_H
+GL_COND_OBJ_STRTOLL_FALSE
+GL_COND_OBJ_STRTOLL_TRUE
+GL_COND_OBJ_STRTOIMAX_FALSE
+GL_COND_OBJ_STRTOIMAX_TRUE
+GL_COND_OBJ_STRPTIME_FALSE
+GL_COND_OBJ_STRPTIME_TRUE
+GL_COND_OBJ_STRNLEN_FALSE
+GL_COND_OBJ_STRNLEN_TRUE
 GL_GNULIB_FFS
 HAVE_STRINGS_H
 NEXT_AS_FIRST_DIRECTIVE_STRINGS_H
 NEXT_STRINGS_H
 NEXT_AS_FIRST_DIRECTIVE_STRING_H
 NEXT_STRING_H
+GL_COND_OBJ_STRERROR_OVERRIDE_FALSE
+GL_COND_OBJ_STRERROR_OVERRIDE_TRUE
+GL_COND_OBJ_STRERROR_FALSE
+GL_COND_OBJ_STRERROR_TRUE
+GL_COND_OBJ_STRNCASECMP_FALSE
+GL_COND_OBJ_STRNCASECMP_TRUE
+GL_COND_OBJ_STRCASECMP_FALSE
+GL_COND_OBJ_STRCASECMP_TRUE
 HAVE_DECL_STRNCASECMP
 HAVE_STRCASECMP
 HAVE_FFS
+GL_COND_OBJ_STPCPY_FALSE
+GL_COND_OBJ_STPCPY_TRUE
 NEXT_AS_FIRST_DIRECTIVE_STDLIB_H
 NEXT_STDLIB_H
+GL_COND_OBJ_STDIO_WRITE_FALSE
+GL_COND_OBJ_STDIO_WRITE_TRUE
+GL_COND_OBJ_STDIO_READ_FALSE
+GL_COND_OBJ_STDIO_READ_TRUE
 NEXT_AS_FIRST_DIRECTIVE_STDIO_H
 NEXT_STDIO_H
-HAVE__BOOL
-GL_GENERATE_STDBOOL_H_FALSE
-GL_GENERATE_STDBOOL_H_TRUE
-STDBOOL_H
+GL_GENERATE_STDINT_H_FALSE
+GL_GENERATE_STDINT_H_TRUE
+STDINT_H
+GL_GENERATE_STDDEF_H_FALSE
+GL_GENERATE_STDDEF_H_TRUE
+STDDEF_H
+GL_GENERATE_STDCKDINT_H_FALSE
+GL_GENERATE_STDCKDINT_H_TRUE
+STDCKDINT_H
 GL_GENERATE_STDARG_H_FALSE
 GL_GENERATE_STDARG_H_TRUE
 STDARG_H
 NEXT_AS_FIRST_DIRECTIVE_STDARG_H
 NEXT_STDARG_H
-GL_GENERATE_STDALIGN_H_FALSE
-GL_GENERATE_STDALIGN_H_TRUE
-STDALIGN_H
+GL_COND_OBJ_STAT_FALSE
+GL_COND_OBJ_STAT_TRUE
 GL_GENERATE_SIGSEGV_H_FALSE
 GL_GENERATE_SIGSEGV_H_TRUE
 SIGSEGV_H
-LIBSIGSEGV_PREFIX
-LTLIBSIGSEGV
-LIBSIGSEGV
-HAVE_LIBSIGSEGV
+GL_COND_OBJ_SIGPROCMASK_FALSE
+GL_COND_OBJ_SIGPROCMASK_TRUE
 NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H
 NEXT_SIGNAL_H
+GL_COND_OBJ_SETLOCALE_LOCK_FALSE
+GL_COND_OBJ_SETLOCALE_LOCK_TRUE
+GL_COND_OBJ_SETENV_FALSE
+GL_COND_OBJ_SETENV_TRUE
+GL_COND_OBJ_REGEX_FALSE
+GL_COND_OBJ_REGEX_TRUE
+GL_COND_OBJ_REALLOCARRAY_FALSE
+GL_COND_OBJ_REALLOCARRAY_TRUE
+GL_COND_OBJ_READLINK_FALSE
+GL_COND_OBJ_READLINK_TRUE
+GL_COND_OBJ_RAWMEMCHR_FALSE
+GL_COND_OBJ_RAWMEMCHR_TRUE
 GL_GNULIB_SIGACTION
 GL_GNULIB_SIGPROCMASK
 GL_GNULIB_SIGNAL_H_SIGPIPE
 GL_GNULIB_RAISE
 GL_GNULIB_PTHREAD_SIGMASK
+GL_COND_OBJ_RAISE_FALSE
+GL_COND_OBJ_RAISE_TRUE
 REPLACE_RAISE
 REPLACE_PTHREAD_SIGMASK
 HAVE_SIGHANDLER_T
@@ -957,13 +1087,26 @@ HAVE_SIGSET_T
 HAVE_RAISE
 HAVE_PTHREAD_SIGMASK
 HAVE_POSIX_SIGNALBLOCKING
+PERL
+GL_COND_OBJ_OPEN_FALSE
+GL_COND_OBJ_OPEN_TRUE
+GL_COND_OBJ_NL_LANGINFO_LOCK_FALSE
+GL_COND_OBJ_NL_LANGINFO_LOCK_TRUE
+GL_COND_OBJ_NL_LANGINFO_FALSE
+GL_COND_OBJ_NL_LANGINFO_TRUE
 LIB_NL_LANGINFO
+GL_COND_OBJ_MSVC_NOTHROW_FALSE
+GL_COND_OBJ_MSVC_NOTHROW_TRUE
+GL_COND_OBJ_MSVC_INVAL_FALSE
+GL_COND_OBJ_MSVC_INVAL_TRUE
 GL_GNULIB_MDA_TZSET
 GL_GNULIB_TZSET
 GL_GNULIB_TIME_RZ
 GL_GNULIB_TIME_R
+GL_GNULIB_TIMESPEC_GETRES
 GL_GNULIB_TIMESPEC_GET
 GL_GNULIB_TIMEGM
+GL_GNULIB_TIME
 GL_GNULIB_STRPTIME
 GL_GNULIB_STRFTIME
 GL_GNULIB_NANOSLEEP
@@ -974,18 +1117,35 @@ REPLACE_LOCALTIME
 REPLACE_GMTIME
 GNULIB_GETTIMEOFDAY
 REPLACE_TZSET
+REPLACE_TIMESPEC_GET
 REPLACE_TIMEGM
+REPLACE_TIME
 REPLACE_STRFTIME
 REPLACE_NANOSLEEP
 REPLACE_MKTIME
 REPLACE_LOCALTIME_R
 REPLACE_CTIME
 HAVE_TIMEZONE_T
+HAVE_TIMESPEC_GETRES
 HAVE_TIMESPEC_GET
 HAVE_TIMEGM
 HAVE_STRPTIME
 HAVE_NANOSLEEP
 HAVE_DECL_LOCALTIME_R
+GL_COND_OBJ_MKSTEMP_FALSE
+GL_COND_OBJ_MKSTEMP_TRUE
+GL_COND_OBJ_MKDIR_FALSE
+GL_COND_OBJ_MKDIR_TRUE
+GL_COND_OBJ_MEMPCPY_FALSE
+GL_COND_OBJ_MEMPCPY_TRUE
+GL_COND_OBJ_MEMCHR_FALSE
+GL_COND_OBJ_MEMCHR_TRUE
+GL_COND_OBJ_MBTOWC_FALSE
+GL_COND_OBJ_MBTOWC_TRUE
+GL_COND_OBJ_MBSRTOWCS_FALSE
+GL_COND_OBJ_MBSRTOWCS_TRUE
+GL_COND_OBJ_MBSINIT_FALSE
+GL_COND_OBJ_MBSINIT_TRUE
 UNDEFINE_STRTOK_R
 REPLACE_STRSIGNAL
 REPLACE_STRERRORNAME_NP
@@ -1000,6 +1160,8 @@ REPLACE_STRNCAT
 REPLACE_STRDUP
 REPLACE_STRCHRNUL
 REPLACE_STPNCPY
+REPLACE_STPCPY
+REPLACE_MEMPCPY
 REPLACE_MEMMEM
 REPLACE_MEMCHR
 REPLACE_FFSLL
@@ -1021,6 +1183,7 @@ HAVE_STPNCPY
 HAVE_STPCPY
 HAVE_RAWMEMCHR
 HAVE_DECL_MEMRCHR
+HAVE_MEMSET_EXPLICIT
 HAVE_MEMPCPY
 HAVE_DECL_MEMMEM
 HAVE_FFSLL
@@ -1063,6 +1226,7 @@ GL_GNULIB_STRCHRNUL
 GL_GNULIB_STPNCPY
 GL_GNULIB_STPCPY
 GL_GNULIB_RAWMEMCHR
+GL_GNULIB_MEMSET_EXPLICIT
 GL_GNULIB_MEMRCHR
 GL_GNULIB_MEMPCPY
 GL_GNULIB_MEMMEM
@@ -1072,13 +1236,21 @@ GL_GNULIB_FFSL
 GL_GNULIB_EXPLICIT_BZERO
 HAVE_VISIBILITY
 CFLAG_VISIBILITY
+GL_COND_OBJ_MBRTOWC_FALSE
+GL_COND_OBJ_MBRTOWC_TRUE
 LIB_MBRTOWC
+MBRTOWC_LIB
+GREP
 SED
+GL_COND_OBJ_LSTAT_FALSE
+GL_COND_OBJ_LSTAT_TRUE
 LTLIBMULTITHREAD
 LIBMULTITHREAD
 LTLIBTHREAD
 LIBTHREAD
 LIBSTDTHREAD
+GL_COND_OBJ_LOCALECONV_FALSE
+GL_COND_OBJ_LOCALECONV_TRUE
 GL_GNULIB_LOCALENAME
 GL_GNULIB_DUPLOCALE
 GL_GNULIB_SETLOCALE_NULL
@@ -1089,9 +1261,6 @@ NEXT_LOCALE_H
 HAVE_XLOCALE_H
 NEXT_AS_FIRST_DIRECTIVE_STDDEF_H
 NEXT_STDDEF_H
-GL_GENERATE_STDDEF_H_FALSE
-GL_GENERATE_STDDEF_H_TRUE
-STDDEF_H
 HAVE_WCHAR_T
 HAVE_MAX_ALIGN_T
 REPLACE_NULL
@@ -1106,6 +1275,9 @@ HAVE_FREELOCALE
 HAVE_DUPLOCALE
 HAVE_NEWLOCALE
 LOCALCHARSET_TESTS_ENVIRONMENT
+GL_GENERATE_LIMITS_H_FALSE
+GL_GENERATE_LIMITS_H_TRUE
+LIMITS_H
 GL_GNULIB_NL_LANGINFO
 HAVE_LANGINFO_YESEXPR
 HAVE_LANGINFO_ERA
@@ -1117,6 +1289,10 @@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H
 NEXT_LANGINFO_H
 REPLACE_NL_LANGINFO
 HAVE_NL_LANGINFO
+GL_COND_OBJ_ISWXDIGIT_FALSE
+GL_COND_OBJ_ISWXDIGIT_TRUE
+GL_COND_OBJ_ISWDIGIT_FALSE
+GL_COND_OBJ_ISWDIGIT_TRUE
 LOCALE_ZH_CN
 LOCALE_FR_UTF8
 LOCALE_JA
@@ -1127,6 +1303,8 @@ GL_GNULIB_WCTYPE
 GL_GNULIB_ISWXDIGIT
 GL_GNULIB_ISWDIGIT
 GL_GNULIB_ISWBLANK
+GL_COND_OBJ_ISWBLANK_FALSE
+GL_COND_OBJ_ISWBLANK_TRUE
 REPLACE_TOWLOWER
 REPLACE_ISWCNTRL
 HAVE_WCTYPE_H
@@ -1141,6 +1319,8 @@ REPLACE_ISWBLANK
 HAVE_WCTRANS_T
 HAVE_WCTYPE_T
 HAVE_ISWBLANK
+GL_COND_OBJ_ISBLANK_FALSE
+GL_COND_OBJ_ISBLANK_TRUE
 GL_GNULIB_STRTOUMAX
 GL_GNULIB_STRTOIMAX
 GL_GNULIB_IMAXDIV
@@ -1154,14 +1334,15 @@ INT64_MAX_EQ_LONG_MAX
 INT32_MAX_LT_INTMAX_MAX
 REPLACE_STRTOUMAX
 REPLACE_STRTOIMAX
+REPLACE_IMAXDIV
+REPLACE_IMAXABS
+HAVE_IMAXDIV
+HAVE_IMAXABS
 HAVE_IMAXDIV_T
 HAVE_DECL_STRTOUMAX
 HAVE_DECL_STRTOIMAX
 HAVE_DECL_IMAXDIV
 HAVE_DECL_IMAXABS
-GL_GENERATE_STDINT_H_FALSE
-GL_GENERATE_STDINT_H_TRUE
-STDINT_H
 HAVE_SYS_INTTYPES_H
 HAVE_SYS_BITYPES_H
 HAVE_C99_STDINT_H
@@ -1186,17 +1367,18 @@ HAVE_SYS_TYPES_H
 HAVE_INTTYPES_H
 HAVE_WCHAR_H
 GNULIBHEADERS_OVERRIDE_WINT_T
-GL_GENERATE_LIMITS_H_FALSE
-GL_GENERATE_LIMITS_H_TRUE
-LIMITS_H
 NEXT_AS_FIRST_DIRECTIVE_LIMITS_H
 NEXT_LIMITS_H
-NEXT_AS_FIRST_DIRECTIVE_ICONV_H
-NEXT_ICONV_H
-GL_GNULIB_ICONV
+GL_COND_OBJ_ICONV_FALSE
+GL_COND_OBJ_ICONV_TRUE
+GL_COND_OBJ_ICONV_OPEN_FALSE
+GL_COND_OBJ_ICONV_OPEN_TRUE
 GL_GENERATE_ICONV_H_FALSE
 GL_GENERATE_ICONV_H_TRUE
 ICONV_H
+NEXT_AS_FIRST_DIRECTIVE_ICONV_H
+NEXT_ICONV_H
+GL_GNULIB_ICONV
 REPLACE_ICONV_UTF
 REPLACE_ICONV_OPEN
 REPLACE_ICONV
@@ -1206,13 +1388,18 @@ LIBICONV
 HOST_CPU_C_ABI
 HOST_CPU
 LIB_HARD_LOCALE
+HARD_LOCALE_LIB
 LIB_SETLOCALE_NULL
+SETLOCALE_NULL_LIB
 LIB_SCHED_YIELD
+SCHED_YIELD_LIB
 LIBPMULTITHREAD
 LIBPTHREAD
 GNU_MAKE_FALSE
 GNU_MAKE_TRUE
 GL_GNULIB_GETTIMEOFDAY
+GL_COND_OBJ_GETTIMEOFDAY_FALSE
+GL_COND_OBJ_GETTIMEOFDAY_TRUE
 NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H
 NEXT_SYS_TIME_H
 REPLACE_STRUCT_TIMEVAL
@@ -1223,15 +1410,30 @@ HAVE_GETTIMEOFDAY
 LTLIBINTL
 LIBINTL
 GL_GNULIB_GETRANDOM
+GL_COND_OBJ_GETRANDOM_FALSE
+GL_COND_OBJ_GETRANDOM_TRUE
 LIB_GETRANDOM
+GETRANDOM_LIB
 REPLACE_GETRANDOM
 HAVE_GETRANDOM
+GL_COND_OBJ_GETPROGNAME_FALSE
+GL_COND_OBJ_GETPROGNAME_TRUE
+GL_COND_OBJ_GETPAGESIZE_FALSE
+GL_COND_OBJ_GETPAGESIZE_TRUE
+GL_COND_OBJ_GETOPT_FALSE
+GL_COND_OBJ_GETOPT_TRUE
+GL_GENERATE_GETOPT_CDEFS_H_FALSE
+GL_GENERATE_GETOPT_CDEFS_H_TRUE
 GETOPT_CDEFS_H
+GL_GENERATE_GETOPT_H_FALSE
+GL_GENERATE_GETOPT_H_TRUE
 GETOPT_H
 HAVE_SYS_CDEFS_H
 HAVE_GETOPT_H
 NEXT_AS_FIRST_DIRECTIVE_GETOPT_H
 NEXT_GETOPT_H
+GL_COND_OBJ_GETDTABLESIZE_FALSE
+GL_COND_OBJ_GETDTABLESIZE_TRUE
 GL_GNULIB_MDA_UMASK
 GL_GNULIB_MDA_MKDIR
 GL_GNULIB_MDA_CHMOD
@@ -1251,10 +1453,13 @@ GL_GNULIB_FUTIMENS
 GL_GNULIB_FSTATAT
 GL_GNULIB_FSTAT
 GL_GNULIB_FCHMODAT
+GL_GNULIB_CHMOD
 WINDOWS_64_BIT_ST_SIZE
 WINDOWS_STAT_TIMESPEC
 NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H
 NEXT_SYS_STAT_H
+GL_COND_OBJ_FSTAT_FALSE
+GL_COND_OBJ_FSTAT_TRUE
 REPLACE_UTIMENSAT
 REPLACE_STAT
 REPLACE_MKNODAT
@@ -1267,6 +1472,7 @@ REPLACE_FUTIMENS
 REPLACE_FSTATAT
 REPLACE_FSTAT
 REPLACE_FCHMODAT
+REPLACE_CHMOD
 HAVE_UTIMENSAT
 HAVE_MKNODAT
 HAVE_MKNOD
@@ -1279,6 +1485,10 @@ HAVE_GETUMASK
 HAVE_FUTIMENS
 HAVE_FSTATAT
 HAVE_FCHMODAT
+GL_COND_OBJ_FREOPEN_FALSE
+GL_COND_OBJ_FREOPEN_TRUE
+GL_COND_OBJ_FREE_FALSE
+GL_COND_OBJ_FREE_TRUE
 GL_GNULIB_MDA_TEMPNAM
 GL_GNULIB_MDA_PUTW
 GL_GNULIB_MDA_GETW
@@ -1331,6 +1541,7 @@ GL_GNULIB_FPUTC
 GL_GNULIB_FPURGE
 GL_GNULIB_FPRINTF_POSIX
 GL_GNULIB_FPRINTF
+GL_GNULIB_FOPEN_GNU
 GL_GNULIB_FOPEN
 GL_GNULIB_FGETS
 GL_GNULIB_FGETC
@@ -1365,6 +1576,7 @@ REPLACE_FSEEK
 REPLACE_FREOPEN
 REPLACE_FPURGE
 REPLACE_FPRINTF
+REPLACE_FOPEN_FOR_FOPEN_GNU
 REPLACE_FOPEN
 REPLACE_FFLUSH
 REPLACE_FDOPEN
@@ -1380,28 +1592,24 @@ HAVE_FSEEKO
 HAVE_DPRINTF
 HAVE_DECL_VSNPRINTF
 HAVE_DECL_SNPRINTF
+HAVE_DECL_PUTW
 HAVE_DECL_OBSTACK_PRINTF
+HAVE_DECL_GETW
 HAVE_DECL_GETLINE
 HAVE_DECL_GETDELIM
 HAVE_DECL_FTELLO
 HAVE_DECL_FSEEKO
 HAVE_DECL_FPURGE
 HAVE_DECL_FCLOSEALL
-GL_GNULIB_FNMATCH
 GL_GENERATE_FNMATCH_H_FALSE
 GL_GENERATE_FNMATCH_H_TRUE
 FNMATCH_H
+GL_GNULIB_FNMATCH
 HAVE_FNMATCH_H
 NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H
 NEXT_FNMATCH_H
 REPLACE_FNMATCH
 HAVE_FNMATCH
-REPLACE_ITOLD
-GL_GENERATE_FLOAT_H_FALSE
-GL_GENERATE_FLOAT_H_TRUE
-FLOAT_H
-NEXT_AS_FIRST_DIRECTIVE_FLOAT_H
-NEXT_FLOAT_H
 NEXT_AS_FIRST_DIRECTIVE_FCNTL_H
 NEXT_FCNTL_H
 GL_GNULIB_MDA_OPEN
@@ -1411,30 +1619,42 @@ GL_GNULIB_OPEN
 GL_GNULIB_NONBLOCKING
 GL_GNULIB_FCNTL
 GL_GNULIB_CREAT
+GL_COND_OBJ_FCNTL_FALSE
+GL_COND_OBJ_FCNTL_TRUE
 REPLACE_OPENAT
 REPLACE_OPEN
 REPLACE_FCNTL
 REPLACE_CREAT
 HAVE_OPENAT
 HAVE_FCNTL
+GL_GENERATE_ERROR_H_FALSE
+GL_GENERATE_ERROR_H_TRUE
+ERROR_H
+GL_COND_OBJ_ERROR_FALSE
+GL_COND_OBJ_ERROR_TRUE
+REPLACE_ERROR_AT_LINE
+REPLACE_ERROR
+HAVE_ERROR_AT_LINE
+HAVE_ERROR
+HAVE_ERROR_H
+NEXT_AS_FIRST_DIRECTIVE_ERROR_H
+NEXT_ERROR_H
+GL_GENERATE_ERRNO_H_FALSE
+GL_GENERATE_ERRNO_H_TRUE
+ERRNO_H
 EOVERFLOW_VALUE
 EOVERFLOW_HIDDEN
 ENOLINK_VALUE
 ENOLINK_HIDDEN
 EMULTIHOP_VALUE
 EMULTIHOP_HIDDEN
-GL_GENERATE_ERRNO_H_FALSE
-GL_GENERATE_ERRNO_H_TRUE
-ERRNO_H
 NEXT_AS_FIRST_DIRECTIVE_ERRNO_H
 NEXT_ERRNO_H
+GL_COND_OBJ_DUP2_FALSE
+GL_COND_OBJ_DUP2_TRUE
 GL_GNULIB_ISBLANK
 NEXT_AS_FIRST_DIRECTIVE_CTYPE_H
 NEXT_CTYPE_H
-PRAGMA_COLUMNS
-PRAGMA_SYSTEM_HEADER
-INCLUDE_NEXT_AS_FIRST_DIRECTIVE
-INCLUDE_NEXT
 HAVE_ISBLANK
 GL_GNULIB_MDA_WRITE
 GL_GNULIB_MDA_UNLINK
@@ -1485,6 +1705,7 @@ GL_GNULIB_LCHOWN
 GL_GNULIB_ISATTY
 GL_GNULIB_GROUP_MEMBER
 GL_GNULIB_GETUSERSHELL
+GL_GNULIB_GETPASS_GNU
 GL_GNULIB_GETPASS
 GL_GNULIB_GETPAGESIZE
 GL_GNULIB_GETOPT_POSIX
@@ -1519,6 +1740,8 @@ GL_GNULIB_CLOSE
 GL_GNULIB_CHOWN
 GL_GNULIB_CHDIR
 GL_GNULIB_ACCESS
+GL_COND_OBJ_CLOSE_FALSE
+GL_COND_OBJ_CLOSE_TRUE
 HAVE_WINSOCK2_H
 REPLACE_IOCTL
 SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS
@@ -1536,25 +1759,30 @@ REPLACE_TRUNCATE
 REPLACE_SYMLINKAT
 REPLACE_SYMLINK
 REPLACE_SLEEP
+REPLACE_SETHOSTNAME
 REPLACE_RMDIR
 REPLACE_READLINKAT
 REPLACE_READLINK
 REPLACE_READ
 REPLACE_PWRITE
 REPLACE_PREAD
+REPLACE_PIPE2
 REPLACE_LSEEK
 REPLACE_LINKAT
 REPLACE_LINK
 REPLACE_LCHOWN
 REPLACE_ISATTY
+REPLACE_GETPASS_FOR_GETPASS_GNU
 REPLACE_GETPASS
 REPLACE_GETPAGESIZE
 REPLACE_GETGROUPS
 REPLACE_GETLOGIN_R
+REPLACE_GETENTROPY
 REPLACE_GETDTABLESIZE
 REPLACE_GETDOMAINNAME
 REPLACE_GETCWD
 REPLACE_FTRUNCATE
+REPLACE_FDATASYNC
 REPLACE_FCHOWNAT
 REPLACE_FACCESSAT
 REPLACE_EXECVPE
@@ -1564,8 +1792,10 @@ REPLACE_EXECV
 REPLACE_EXECLP
 REPLACE_EXECLE
 REPLACE_EXECL
+REPLACE_DUP3
 REPLACE_DUP2
 REPLACE_DUP
+REPLACE_COPY_FILE_RANGE
 REPLACE_CLOSE
 REPLACE_CHOWN
 REPLACE_ACCESS
@@ -1618,51 +1848,13 @@ HAVE_DUP3
 HAVE_COPY_FILE_RANGE
 HAVE_CHOWN
 LIB_CLOCK_GETTIME
-GL_GNULIB_MDA_PUTENV
-GL_GNULIB_MDA_MKTEMP
-GL_GNULIB_MDA_GCVT
-GL_GNULIB_MDA_FCVT
-GL_GNULIB_MDA_ECVT
-GL_GNULIB_WCTOMB
-GL_GNULIB_UNSETENV
-GL_GNULIB_UNLOCKPT
-GL_GNULIB_SYSTEM_POSIX
-GL_GNULIB_STRTOULL
-GL_GNULIB_STRTOUL
-GL_GNULIB_STRTOLL
-GL_GNULIB_STRTOLD
-GL_GNULIB_STRTOL
-GL_GNULIB_STRTOD
-GL_GNULIB_SETENV
-GL_GNULIB_SECURE_GETENV
-GL_GNULIB_RPMATCH
-GL_GNULIB_REALPATH
-GL_GNULIB_REALLOC_POSIX
-GL_GNULIB_REALLOCARRAY
-GL_GNULIB_RANDOM_R
-GL_GNULIB_RANDOM
-GL_GNULIB_QSORT_R
-GL_GNULIB_PUTENV
-GL_GNULIB_PTSNAME_R
-GL_GNULIB_PTSNAME
-GL_GNULIB_POSIX_OPENPT
-GL_GNULIB_POSIX_MEMALIGN
-GL_GNULIB_MKSTEMPS
-GL_GNULIB_MKSTEMP
-GL_GNULIB_MKOSTEMPS
-GL_GNULIB_MKOSTEMP
-GL_GNULIB_MKDTEMP
-GL_GNULIB_MBTOWC
-GL_GNULIB_MALLOC_POSIX
-GL_GNULIB_GRANTPT
-GL_GNULIB_GETSUBOPT
-GL_GNULIB_GETLOADAVG
-GL_GNULIB_FREE_POSIX
-GL_GNULIB_CANONICALIZE_FILE_NAME
-GL_GNULIB_CALLOC_POSIX
-GL_GNULIB_ATOLL
-GL_GNULIB_ALIGNED_ALLOC
-GL_GNULIB__EXIT
+CLOCK_TIME_LIB
+LTLIBCSTACK
+LIBCSTACK
+LIBSIGSEGV_PREFIX
+LTLIBSIGSEGV
+LIBSIGSEGV
+HAVE_LIBSIGSEGV
 REPLACE_WCTOMB
 REPLACE_UNSETENV
 REPLACE_STRTOULL
@@ -1675,22 +1867,34 @@ REPLACE_SETSTATE
 REPLACE_SETENV
 REPLACE_REALPATH
 REPLACE_REALLOCARRAY
-REPLACE_REALLOC
+REPLACE_REALLOC_FOR_REALLOC_POSIX
+REPLACE_REALLOC_FOR_REALLOC_GNU
 REPLACE_RANDOM_R
 REPLACE_RANDOM
 REPLACE_QSORT_R
 REPLACE_PUTENV
 REPLACE_PTSNAME_R
 REPLACE_PTSNAME
+REPLACE_POSIX_OPENPT
 REPLACE_POSIX_MEMALIGN
 REPLACE_MKSTEMP
+REPLACE_MKOSTEMPS
+REPLACE_MKOSTEMP
 REPLACE_MBTOWC
-REPLACE_MALLOC
+REPLACE_MBSTOWCS
+REPLACE_MB_CUR_MAX
+REPLACE_MALLOC_FOR_MALLOC_POSIX
+REPLACE_MALLOC_FOR_MALLOC_GNU
 REPLACE_INITSTATE
+REPLACE_GETSUBOPT
+REPLACE_GETPROGNAME
+REPLACE_GETLOADAVG
 REPLACE_FREE
 REPLACE_CANONICALIZE_FILE_NAME
-REPLACE_CALLOC
+REPLACE_CALLOC_FOR_CALLOC_POSIX
+REPLACE_CALLOC_FOR_CALLOC_GNU
 REPLACE_ALIGNED_ALLOC
+REPLACE__EXIT
 HAVE_DECL_UNSETENV
 HAVE_UNLOCKPT
 HAVE_SYS_LOADAVG_H
@@ -1727,6 +1931,8 @@ HAVE_DECL_INITSTATE
 HAVE_INITSTATE
 HAVE_GRANTPT
 HAVE_GETSUBOPT
+HAVE_GETPROGNAME
+HAVE_DECL_PROGRAM_INVOCATION_NAME
 HAVE_DECL_GETLOADAVG
 HAVE_DECL_GCVT
 HAVE_DECL_FCVT
@@ -1735,8 +1941,56 @@ HAVE_CANONICALIZE_FILE_NAME
 HAVE_ATOLL
 HAVE_ALIGNED_ALLOC
 HAVE__EXIT
-LTLIBCSTACK
-LIBCSTACK
+GL_GNULIB_MDA_PUTENV
+GL_GNULIB_MDA_MKTEMP
+GL_GNULIB_MDA_GCVT
+GL_GNULIB_MDA_FCVT
+GL_GNULIB_MDA_ECVT
+GL_GNULIB_WCTOMB
+GL_GNULIB_UNSETENV
+GL_GNULIB_UNLOCKPT
+GL_GNULIB_SYSTEM_POSIX
+GL_GNULIB_STRTOULL
+GL_GNULIB_STRTOUL
+GL_GNULIB_STRTOLL
+GL_GNULIB_STRTOLD
+GL_GNULIB_STRTOL
+GL_GNULIB_STRTOD
+GL_GNULIB_SETENV
+GL_GNULIB_SECURE_GETENV
+GL_GNULIB_RPMATCH
+GL_GNULIB_REALPATH
+GL_GNULIB_REALLOC_POSIX
+GL_GNULIB_REALLOC_GNU
+GL_GNULIB_REALLOCARRAY
+GL_GNULIB_RANDOM_R
+GL_GNULIB_RANDOM
+GL_GNULIB_QSORT_R
+GL_GNULIB_PUTENV
+GL_GNULIB_PTSNAME_R
+GL_GNULIB_PTSNAME
+GL_GNULIB_POSIX_OPENPT
+GL_GNULIB_POSIX_MEMALIGN
+GL_GNULIB_MKSTEMPS
+GL_GNULIB_MKSTEMP
+GL_GNULIB_MKOSTEMPS
+GL_GNULIB_MKOSTEMP
+GL_GNULIB_MKDTEMP
+GL_GNULIB_MBTOWC
+GL_GNULIB_MBSTOWCS
+GL_GNULIB_MALLOC_POSIX
+GL_GNULIB_MALLOC_GNU
+GL_GNULIB_GRANTPT
+GL_GNULIB_GETSUBOPT
+GL_GNULIB_GETPROGNAME
+GL_GNULIB_GETLOADAVG
+GL_GNULIB_FREE_POSIX
+GL_GNULIB_CANONICALIZE_FILE_NAME
+GL_GNULIB_CALLOC_POSIX
+GL_GNULIB_CALLOC_GNU
+GL_GNULIB_ATOLL
+GL_GNULIB_ALIGNED_ALLOC
+GL_GNULIB__EXIT
 GL_GNULIB_MDA_WCSDUP
 GL_GNULIB_WCSFTIME
 GL_GNULIB_WCSWIDTH
@@ -1779,8 +2033,15 @@ GL_GNULIB_MBRTOWC
 GL_GNULIB_MBSINIT
 GL_GNULIB_WCTOB
 GL_GNULIB_BTOWC
+GL_COND_OBJ_BTOWC_FALSE
+GL_COND_OBJ_BTOWC_TRUE
 LOCALE_FR
+REPLACE_WMEMPCPY
+REPLACE_WMEMCMP
 REPLACE_WCSTOK
+REPLACE_WCSSTR
+REPLACE_WCSNCMP
+REPLACE_WCSCMP
 REPLACE_WCSFTIME
 REPLACE_WCSWIDTH
 REPLACE_WCWIDTH
@@ -1837,17 +2098,24 @@ HAVE_MBRLEN
 HAVE_MBRTOWC
 HAVE_MBSINIT
 HAVE_BTOWC
-HAVE_ALLOCA_H
+GL_GENERATE_ASSERT_H_FALSE
+GL_GENERATE_ASSERT_H_TRUE
+ASSERT_H
+NEXT_AS_FIRST_DIRECTIVE_ASSERT_H
+NEXT_ASSERT_H
+PRAGMA_COLUMNS
+PRAGMA_SYSTEM_HEADER
+INCLUDE_NEXT_AS_FIRST_DIRECTIVE
+INCLUDE_NEXT
 GL_GENERATE_ALLOCA_H_FALSE
 GL_GENERATE_ALLOCA_H_TRUE
 ALLOCA_H
+HAVE_ALLOCA_H
 ALLOCA
 GL_COND_LIBTOOL_FALSE
 GL_COND_LIBTOOL_TRUE
 ARFLAGS
 AR
-EGREP
-GREP
 CPP
 host_os
 host_vendor
@@ -1875,6 +2143,8 @@ CPPFLAGS
 LDFLAGS
 CFLAGS
 CC
+am__xargs_n
+am__rm_f_notfound
 AM_BACKSLASH
 AM_DEFAULT_VERBOSITY
 AM_DEFAULT_V
@@ -1951,21 +2221,21 @@ enable_option_checking
 enable_silent_rules
 enable_dependency_tracking
 enable_largefile
-enable_year2038
 enable_threads
 enable_cross_guesses
+with_libsigsegv
 with_gnu_ld
 enable_rpath
+with_libsigsegv_prefix
 with_libiconv_prefix
 with_included_regex
-with_libsigsegv
-with_libsigsegv_prefix
 with_packager
 with_packager_version
 with_packager_bug_reports
 enable_gcc_warnings
 enable_nls
 with_libintl_prefix
+enable_year2038
 '
       ac_precious_vars='build_alias
 host_alias
@@ -2084,7 +2354,7 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid feature name: \`$ac_useropt'"
+      as_fn_error $? "invalid feature name: '$ac_useropt'"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -2110,7 +2380,7 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid feature name: \`$ac_useropt'"
+      as_fn_error $? "invalid feature name: '$ac_useropt'"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -2323,7 +2593,7 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid package name: \`$ac_useropt'"
+      as_fn_error $? "invalid package name: '$ac_useropt'"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -2339,7 +2609,7 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid package name: \`$ac_useropt'"
+      as_fn_error $? "invalid package name: '$ac_useropt'"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -2369,8 +2639,8 @@ do
   | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
     x_libraries=$ac_optarg ;;
 
-  -*) as_fn_error $? "unrecognized option: \`$ac_option'
-Try \`$0 --help' for more information"
+  -*) as_fn_error $? "unrecognized option: '$ac_option'
+Try '$0 --help' for more information"
     ;;
 
   *=*)
@@ -2378,7 +2648,7 @@ Try \`$0 --help' for more information"
     # Reject names that are not valid shell variable names.
     case $ac_envvar in #(
       '' | [0-9]* | *[!_$as_cr_alnum]* )
-      as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
+      as_fn_error $? "invalid variable name: '$ac_envvar'" ;;
     esac
     eval $ac_envvar=\$ac_optarg
     export $ac_envvar ;;
@@ -2428,7 +2698,7 @@ do
   as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
 done
 
-# There might be people who depend on the old broken behavior: `$host'
+# There might be people who depend on the old broken behavior: '$host'
 # used to hold the argument of --host etc.
 # FIXME: To remove some day.
 build=$build_alias
@@ -2496,7 +2766,7 @@ if test ! -r "$srcdir/$ac_unique_file"; then
   test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
   as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
 fi
-ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_msg="sources are in $srcdir, but 'cd $srcdir' does not work"
 ac_abs_confdir=`(
        cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
        pwd)`
@@ -2524,7 +2794,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures GNU diffutils 3.8 to adapt to many kinds of systems.
+'configure' configures GNU diffutils 3.10 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -2538,11 +2808,11 @@ Configuration:
       --help=short        display options specific to this package
       --help=recursive    display the short help of all the included packages
   -V, --version           display version information and exit
-  -q, --quiet, --silent   do not print \`checking ...' messages
+  -q, --quiet, --silent   do not print 'checking ...' messages
       --cache-file=FILE   cache test results in FILE [disabled]
-  -C, --config-cache      alias for \`--cache-file=config.cache'
+  -C, --config-cache      alias for '--cache-file=config.cache'
   -n, --no-create         do not create output files
-      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
+      --srcdir=DIR        find the sources in DIR [configure dir or '..']
 
 Installation directories:
   --prefix=PREFIX         install architecture-independent files in PREFIX
@@ -2550,10 +2820,10 @@ Installation directories:
   --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
                           [PREFIX]
 
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
+By default, 'make install' will install all the files in
+'$ac_default_prefix/bin', '$ac_default_prefix/lib' etc.  You can specify
+an installation prefix other than '$ac_default_prefix' using '--prefix',
+for instance '--prefix=\$HOME'.
 
 For better control, use the options below.
 
@@ -2595,7 +2865,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GNU diffutils 3.8:";;
+     short | recursive ) echo "Configuration of GNU diffutils 3.10:";;
    esac
   cat <<\_ACEOF
 
@@ -2610,7 +2880,6 @@ Optional Features:
   --disable-dependency-tracking
                           speeds up one-time build
   --disable-largefile     omit support for large files
-  --disable-year2038      omit support for timestamps past the year 2038
   --enable-threads={isoc|posix|isoc+posix|windows}
                           specify multithreading API
   --disable-threads       build without multithread safety
@@ -2619,21 +2888,22 @@ Optional Features:
   --disable-rpath         do not hardcode runtime library paths
   --enable-gcc-warnings   turn on lots of GCC warnings (for developers)
   --disable-nls           do not use Native Language Support
+  --disable-year2038      don't support timestamps after 2038
 
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
   --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --with-libsigsegv       use the GNU libsigsegv library, when present,
+                          instead of the gnulib module 'sigsegv'
   --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
+  --with-libsigsegv-prefix[=DIR]  search for libsigsegv in DIR/include and DIR/lib
+  --without-libsigsegv-prefix     don't search for libsigsegv in includedir and libdir
   --with-libiconv-prefix[=DIR]  search for libiconv in DIR/include and DIR/lib
   --without-libiconv-prefix     don't search for libiconv in includedir and libdir
   --without-included-regex
                           don't compile regex; this is the default on systems
                           with recent-enough versions of the GNU C Library
                           (use with caution on other systems).
-  --with-libsigsegv       use the GNU libsigsegv library, when present,
-                          instead of the gnulib module 'sigsegv'
-  --with-libsigsegv-prefix[=DIR]  search for libsigsegv in DIR/include and DIR/lib
-  --without-libsigsegv-prefix     don't search for libsigsegv in includedir and libdir
   --with-packager         String identifying the packager of this software
   --with-packager-version Packager-specific version information
   --with-packager-bug-reports
@@ -2651,7 +2921,7 @@ Some influential environment variables:
               you have headers in a nonstandard directory <include dir>
   CPP         C preprocessor
 
-Use these variables to override the choices made by `configure' or to help
+Use these variables to override the choices made by 'configure' or to help
 it to find libraries and programs with nonstandard names/locations.
 
 Report bugs to <bug-diffutils@gnu.org>.
@@ -2720,10 +2990,10 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-GNU diffutils configure 3.8
-generated by GNU Autoconf 2.71
+GNU diffutils configure 3.10
+generated by GNU Autoconf 2.72c.20-9c018
 
-Copyright (C) 2021 Free Software Foundation, Inc.
+Copyright (C) 2023 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
 _ACEOF
@@ -2762,11 +3032,12 @@ printf "%s\n" "$ac_try_echo"; } >&5
        } && test -s conftest.$ac_objext
 then :
   ac_retval=0
-else $as_nop
-  printf "%s\n" "$as_me: failed program was:" >&5
+else case e in #(
+  e) printf "%s\n" "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_retval=1
+       ac_retval=1 ;;
+esac
 fi
   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
@@ -2785,8 +3056,8 @@ printf %s "checking for $2... " >&6; }
 if eval test \${$3+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $4
 #include <$2>
@@ -2794,10 +3065,12 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   eval "$3=yes"
-else $as_nop
-  eval "$3=no"
+else case e in #(
+  e) eval "$3=no" ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 eval ac_res=\$$3
               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
@@ -2833,11 +3106,12 @@ printf "%s\n" "$ac_try_echo"; } >&5
        }
 then :
   ac_retval=0
-else $as_nop
-  printf "%s\n" "$as_me: failed program was:" >&5
+else case e in #(
+  e) printf "%s\n" "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-    ac_retval=1
+    ac_retval=1 ;;
+esac
 fi
   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
@@ -2856,8 +3130,8 @@ printf %s "checking for $2... " >&6; }
 if eval test \${$3+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  eval "$3=no"
+else case e in #(
+  e) eval "$3=no"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $4
@@ -2887,12 +3161,14 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
 
-else $as_nop
-  eval "$3=yes"
+else case e in #(
+  e) eval "$3=yes" ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 eval ac_res=\$$3
               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
@@ -2932,11 +3208,12 @@ printf "%s\n" "$ac_try_echo"; } >&5
        }
 then :
   ac_retval=0
-else $as_nop
-  printf "%s\n" "$as_me: failed program was:" >&5
+else case e in #(
+  e) printf "%s\n" "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_retval=1
+       ac_retval=1 ;;
+esac
 fi
   # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
   # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
@@ -2978,12 +3255,13 @@ printf "%s\n" "$ac_try_echo"; } >&5
   test $ac_status = 0; }; }
 then :
   ac_retval=0
-else $as_nop
-  printf "%s\n" "$as_me: program exited with status $ac_status" >&5
+else case e in #(
+  e) printf "%s\n" "$as_me: program exited with status $ac_status" >&5
        printf "%s\n" "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_retval=$ac_status
+       ac_retval=$ac_status ;;
+esac
 fi
   rm -rf conftest.dSYM conftest_ipa8_conftest.oo
   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
@@ -3002,15 +3280,15 @@ printf %s "checking for $2... " >&6; }
 if eval test \${$3+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 /* Define $2 to an innocuous variant, in case <limits.h> declares $2.
    For example, HP-UX 11i <limits.h> declares gettimeofday.  */
 #define $2 innocuous_$2
 
 /* System header to define __stub macros and hopefully few prototypes,
-   which can conflict with char $2 (); below.  */
+   which can conflict with char $2 (void); below.  */
 
 #include <limits.h>
 #undef $2
@@ -3021,7 +3299,7 @@ else $as_nop
 #ifdef __cplusplus
 extern "C"
 #endif
-char $2 ();
+char $2 (void);
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
@@ -3040,11 +3318,13 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   eval "$3=yes"
-else $as_nop
-  eval "$3=no"
+else case e in #(
+  e) eval "$3=no" ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
-    conftest$ac_exeext conftest.$ac_ext
+    conftest$ac_exeext conftest.$ac_ext ;;
+esac
 fi
 eval ac_res=\$$3
               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
@@ -3053,6 +3333,65 @@ printf "%s\n" "$ac_res" >&6; }
 
 } # ac_fn_c_check_func
 
+# ac_fn_check_decl LINENO SYMBOL VAR INCLUDES EXTRA-OPTIONS FLAG-VAR
+# ------------------------------------------------------------------
+# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
+# accordingly. Pass EXTRA-OPTIONS to the compiler, using FLAG-VAR.
+ac_fn_check_decl ()
+{
+  ac_save_ac_compile="$ac_compile"
+  if test -n "$ac_compile_for_check_decl"; then
+    ac_compile="$ac_compile_for_check_decl"
+  fi
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  as_decl_name=`echo $2|sed 's/ *(.*//'`
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
+printf %s "checking whether $as_decl_name is declared... " >&6; }
+if eval test \${$3+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
+  eval ac_save_FLAGS=\$$6
+  as_fn_append $6 " $5"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main (void)
+{
+#ifndef $as_decl_name
+#ifdef __cplusplus
+  (void) $as_decl_use;
+#else
+  (void) $as_decl_name;
+#endif
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  eval "$3=yes"
+else case e in #(
+  e) eval "$3=no" ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+  eval $6=\$ac_save_FLAGS
+ ;;
+esac
+fi
+eval ac_res=\$$3
+              { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  ac_compile="$ac_save_ac_compile"
+
+} # ac_fn_check_decl
+
 # ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
 # --------------------------------------------
 # Tries to find the compile-time value of EXPR in a program that includes
@@ -3098,18 +3437,19 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   ac_hi=$ac_mid; break
-else $as_nop
-  as_fn_arith $ac_mid + 1 && ac_lo=$as_val
+else case e in #(
+  e) as_fn_arith $ac_mid + 1 && ac_lo=$as_val
                        if test $ac_lo -le $ac_mid; then
                          ac_lo= ac_hi=
                          break
                        fi
-                       as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val
+                       as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
   done
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $4
 int
@@ -3144,20 +3484,23 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   ac_lo=$ac_mid; break
-else $as_nop
-  as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
+else case e in #(
+  e) as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
                        if test $ac_mid -le $ac_hi; then
                          ac_lo= ac_hi=
                          break
                        fi
-                       as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val
+                       as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
   done
-else $as_nop
-  ac_lo= ac_hi=
+else case e in #(
+  e) ac_lo= ac_hi= ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
 # Binary search between lo and hi bounds.
@@ -3180,8 +3523,9 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   ac_hi=$ac_mid
-else $as_nop
-  as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
+else case e in #(
+  e) as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
 done
@@ -3229,8 +3573,9 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   echo >>conftest.val; read $3 <conftest.val; ac_retval=0
-else $as_nop
-  ac_retval=1
+else case e in #(
+  e) ac_retval=1 ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
   conftest.$ac_objext conftest.beam conftest.$ac_ext
@@ -3242,63 +3587,6 @@ rm -f conftest.val
 
 } # ac_fn_c_compute_int
 
-# ac_fn_check_decl LINENO SYMBOL VAR INCLUDES EXTRA-OPTIONS FLAG-VAR
-# ------------------------------------------------------------------
-# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
-# accordingly. Pass EXTRA-OPTIONS to the compiler, using FLAG-VAR.
-ac_fn_check_decl ()
-{
-  ac_save_ac_compile="$ac_compile"
-  if test -n "$ac_compile_for_check_decl"; then
-    ac_compile="$ac_compile_for_check_decl"
-  fi
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  as_decl_name=`echo $2|sed 's/ *(.*//'`
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
-printf %s "checking whether $as_decl_name is declared... " >&6; }
-if eval test \${$3+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
-  eval ac_save_FLAGS=\$$6
-  as_fn_append $6 " $5"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main (void)
-{
-#ifndef $as_decl_name
-#ifdef __cplusplus
-  (void) $as_decl_use;
-#else
-  (void) $as_decl_name;
-#endif
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  eval "$3=yes"
-else $as_nop
-  eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-  eval $6=\$ac_save_FLAGS
-
-fi
-eval ac_res=\$$3
-              { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  ac_compile="$ac_save_ac_compile"
-
-} # ac_fn_check_decl
-
 # ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES
 # ----------------------------------------------------
 # Tries to find if the field MEMBER exists in type AGGR, after including
@@ -3311,8 +3599,8 @@ printf %s "checking for $2.$3... " >&6; }
 if eval test \${$4+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $5
 int
@@ -3328,8 +3616,8 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   eval "$4=yes"
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $5
 int
@@ -3345,12 +3633,15 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   eval "$4=yes"
-else $as_nop
-  eval "$4=no"
+else case e in #(
+  e) eval "$4=no" ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 eval ac_res=\$$4
               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
@@ -3382,8 +3673,8 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by GNU diffutils $as_me 3.8, which was
-generated by GNU Autoconf 2.71.  Invocation command line was
+It was created by GNU diffutils $as_me 3.10, which was
+generated by GNU Autoconf 2.72c.20-9c018.  Invocation command line was
 
   $ $0$ac_configure_args_raw
 
@@ -3629,10 +3920,10 @@ esac
 printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;}
     sed 's/^/| /' "$ac_site_file" >&5
     . "$ac_site_file" \
-      || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+      || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
 as_fn_error $? "failed to load site script $ac_site_file
-See \`config.log' for more details" "$LINENO" 5; }
+See 'config.log' for more details" "$LINENO" 5; }
   fi
 done
 
@@ -3668,9 +3959,7 @@ struct stat;
 /* Most of the following tests are stolen from RCS 5.7 src/conf.sh.  */
 struct buf { int x; };
 struct buf * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
-     char **p;
-     int i;
+static char *e (char **p, int i)
 {
   return p[i];
 }
@@ -3684,6 +3973,21 @@ static char *f (char * (*g) (char **, int), char **p, ...)
   return s;
 }
 
+/* C89 style stringification. */
+#define noexpand_stringify(a) #a
+const char *stringified = noexpand_stringify(arbitrary+token=sequence);
+
+/* C89 style token pasting.  Exercises some of the corner cases that
+   e.g. old MSVC gets wrong, but not very hard. */
+#define noexpand_concat(a,b) a##b
+#define expand_concat(a,b) noexpand_concat(a,b)
+extern int vA;
+extern int vbee;
+#define aye A
+#define bee B
+int *pvA = &expand_concat(v,aye);
+int *pvbee = &noexpand_concat(v,bee);
+
 /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
    function prototypes and stuff, but not \xHH hex character constants.
    These do not provoke an error unfortunately, instead are silently treated
@@ -3721,6 +4025,7 @@ extern int puts (const char *);
 extern int printf (const char *, ...);
 extern int dprintf (int, const char *, ...);
 extern void *malloc (size_t);
+extern void free (void *);
 
 // Check varargs macros.  These examples are taken from C99 6.10.3.5.
 // dprintf is used instead of fprintf to avoid needing to declare
@@ -3836,6 +4141,8 @@ ac_c_conftest_c99_main='
   ia->datasize = 10;
   for (int i = 0; i < ia->datasize; ++i)
     ia->data[i] = i * 1.234;
+  // Work around memory leak warnings.
+  free (ia);
 
   // Check named initializers.
   struct named_init ni = {
@@ -3973,12 +4280,12 @@ as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H"
 as_fn_append ac_header_c_list " wchar.h wchar_h HAVE_WCHAR_H"
 as_fn_append ac_header_c_list " minix/config.h minix_config_h HAVE_MINIX_CONFIG_H"
 as_fn_append ac_func_c_list " btowc HAVE_BTOWC"
-as_fn_append ac_func_c_list " readlinkat HAVE_READLINKAT"
+as_fn_append ac_func_c_list " mbrtowc HAVE_MBRTOWC"
 as_fn_append ac_func_c_list " _set_invalid_parameter_handler HAVE__SET_INVALID_PARAMETER_HANDLER"
 as_fn_append ac_header_c_list " sys/socket.h sys_socket_h HAVE_SYS_SOCKET_H"
+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 " symlink HAVE_SYMLINK"
-as_fn_append ac_func_c_list " mempcpy HAVE_MEMPCPY"
 as_fn_append ac_header_c_list " fnmatch.h fnmatch_h HAVE_FNMATCH_H"
 as_fn_append ac_func_c_list " fnmatch HAVE_FNMATCH"
 as_fn_append ac_func_c_list " mbsrtowcs HAVE_MBSRTOWCS"
@@ -3987,11 +4294,9 @@ as_fn_append ac_func_c_list " getdtablesize HAVE_GETDTABLESIZE"
 gl_getopt_required=GNU
 as_fn_append ac_header_c_list " getopt.h getopt_h HAVE_GETOPT_H"
 as_fn_append ac_header_c_list " sys/cdefs.h sys_cdefs_h HAVE_SYS_CDEFS_H"
-as_fn_append ac_func_c_list " getprogname HAVE_GETPROGNAME"
 as_fn_append ac_func_c_list " getexecname HAVE_GETEXECNAME"
-as_fn_append ac_func_c_list " getrandom HAVE_GETRANDOM"
-as_fn_append ac_func_c_list " gettimeofday HAVE_GETTIMEOFDAY"
 as_fn_append ac_header_c_list " sys/time.h sys_time_h HAVE_SYS_TIME_H"
+as_fn_append ac_func_c_list " gettimeofday HAVE_GETTIMEOFDAY"
 as_fn_append ac_header_c_list " threads.h threads_h HAVE_THREADS_H"
 as_fn_append ac_header_c_list " iconv.h iconv_h HAVE_ICONV_H"
 as_fn_append ac_header_c_list " limits.h limits_h HAVE_LIMITS_H"
@@ -3999,17 +4304,14 @@ as_fn_append ac_func_c_list " isblank HAVE_ISBLANK"
 as_fn_append ac_func_c_list " iswcntrl HAVE_ISWCNTRL"
 as_fn_append ac_header_c_list " crtdefs.h crtdefs_h HAVE_CRTDEFS_H"
 as_fn_append ac_header_c_list " wctype.h wctype_h HAVE_WCTYPE_H"
-as_fn_append ac_func_c_list " iswblank HAVE_ISWBLANK"
 as_fn_append ac_header_c_list " langinfo.h langinfo_h HAVE_LANGINFO_H"
 as_fn_append ac_header_c_list " xlocale.h xlocale_h HAVE_XLOCALE_H"
 as_fn_append ac_func_c_list " lstat HAVE_LSTAT"
 as_fn_append ac_func_c_list " mbsinit HAVE_MBSINIT"
-as_fn_append ac_func_c_list " mbrtowc HAVE_MBRTOWC"
 as_fn_append ac_func_c_list " mbslen HAVE_MBSLEN"
 as_fn_append ac_header_c_list " sys/mman.h sys_mman_h HAVE_SYS_MMAN_H"
 as_fn_append ac_func_c_list " mprotect HAVE_MPROTECT"
 as_fn_append ac_func_c_list " mkstemp HAVE_MKSTEMP"
-as_fn_append ac_func_c_list " nl_langinfo HAVE_NL_LANGINFO"
 as_fn_append ac_header_c_list " sys/param.h sys_param_h HAVE_SYS_PARAM_H"
 as_fn_append ac_func_c_list " readlink HAVE_READLINK"
 as_fn_append ac_header_c_list " malloc.h malloc_h HAVE_MALLOC_H"
@@ -4018,38 +4320,33 @@ as_fn_append ac_func_c_list " setenv HAVE_SETENV"
 as_fn_append ac_func_c_list " sigaltstack HAVE_SIGALTSTACK"
 as_fn_append ac_func_c_list " setrlimit HAVE_SETRLIMIT"
 as_fn_append ac_func_c_list " getrlimit HAVE_GETRLIMIT"
-as_fn_append ac_func_c_list " strerror_r HAVE_STRERROR_R"
+as_fn_append ac_header_c_list " stdbool.h stdbool_h HAVE_STDBOOL_H"
+as_fn_append ac_header_c_list " stdckdint.h stdckdint_h HAVE_STDCKDINT_H"
 as_fn_append ac_func_c_list " __xpg_strerror_r HAVE___XPG_STRERROR_R"
 as_fn_append ac_func_c_list " strptime HAVE_STRPTIME"
 as_fn_append ac_func_c_list " strtoimax HAVE_STRTOIMAX"
 as_fn_append ac_header_c_list " sys/random.h sys_random_h HAVE_SYS_RANDOM_H"
 as_fn_append ac_header_c_list " sys/wait.h sys_wait_h HAVE_SYS_WAIT_H"
 as_fn_append ac_func_c_list " localtime_r HAVE_LOCALTIME_R"
-as_fn_append ac_func_c_list " timegm HAVE_TIMEGM"
-as_fn_append ac_func_c_list " vasnprintf HAVE_VASNPRINTF"
 as_fn_append ac_header_c_list " features.h features_h HAVE_FEATURES_H"
-as_fn_append ac_func_c_list " snprintf HAVE_SNPRINTF"
 as_fn_append ac_func_c_list " wcrtomb HAVE_WCRTOMB"
 as_fn_append ac_func_c_list " wcwidth HAVE_WCWIDTH"
-as_fn_append ac_func_c_list " wmempcpy HAVE_WMEMPCPY"
 as_fn_append ac_header_c_list " arpa/inet.h arpa_inet_h HAVE_ARPA_INET_H"
-as_fn_append ac_func_c_list " ftruncate HAVE_FTRUNCATE"
-as_fn_append ac_func_c_list " duplocale HAVE_DUPLOCALE"
 as_fn_append ac_header_c_list " netdb.h netdb_h HAVE_NETDB_H"
 as_fn_append ac_header_c_list " netinet/in.h netinet_in_h HAVE_NETINET_IN_H"
-as_fn_append ac_func_c_list " newlocale HAVE_NEWLOCALE"
-as_fn_append ac_header_c_list " sys/select.h sys_select_h HAVE_SYS_SELECT_H"
 as_fn_append ac_func_c_list " pipe HAVE_PIPE"
+as_fn_append ac_header_c_list " sys/select.h sys_select_h HAVE_SYS_SELECT_H"
+as_fn_append ac_func_c_list " pselect HAVE_PSELECT"
 as_fn_append ac_header_c_list " pthread.h pthread_h HAVE_PTHREAD_H"
 as_fn_append ac_func_c_list " pthread_sigmask HAVE_PTHREAD_SIGMASK"
-as_fn_append ac_func_c_list " sigaction HAVE_SIGACTION"
-as_fn_append ac_func_c_list " siginterrupt HAVE_SIGINTERRUPT"
 as_fn_append ac_func_c_list " sleep HAVE_SLEEP"
-as_fn_append ac_func_c_list " catgets HAVE_CATGETS"
+as_fn_append ac_func_c_list " snprintf HAVE_SNPRINTF"
 as_fn_append ac_header_c_list " sys/ioctl.h sys_ioctl_h HAVE_SYS_IOCTL_H"
 as_fn_append ac_func_c_list " shutdown HAVE_SHUTDOWN"
 as_fn_append ac_header_c_list " sys/uio.h sys_uio_h HAVE_SYS_UIO_H"
+as_fn_append ac_func_c_list " vasnprintf HAVE_VASNPRINTF"
 as_fn_append ac_func_c_list " wctob HAVE_WCTOB"
+as_fn_append ac_func_c_list " sigaction HAVE_SIGACTION"
 as_fn_append ac_func_c_list " sigprocmask HAVE_SIGPROCMASK"
 as_fn_append ac_func_c_list " strcasecoll HAVE_STRCASECOLL"
 as_fn_append ac_func_c_list " stricoll HAVE_STRICOLL"
@@ -4136,8 +4433,9 @@ IFS=$as_save_IFS
 if $as_found
 then :
 
-else $as_nop
-  as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5
+else case e in #(
+  e) as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5 ;;
+esac
 fi
 
 
@@ -4165,12 +4463,12 @@ for ac_var in $ac_precious_vars; do
   eval ac_new_val=\$ac_env_${ac_var}_value
   case $ac_old_set,$ac_new_set in
     set,)
-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&5
+printf "%s\n" "$as_me: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&2;}
       ac_cache_corrupted=: ;;
     ,set)
-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
-printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was not set in the previous run" >&5
+printf "%s\n" "$as_me: error: '$ac_var' was not set in the previous run" >&2;}
       ac_cache_corrupted=: ;;
     ,);;
     *)
@@ -4179,18 +4477,18 @@ printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
        ac_old_val_w=`echo x $ac_old_val`
        ac_new_val_w=`echo x $ac_new_val`
        if test "$ac_old_val_w" != "$ac_new_val_w"; then
-         { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
-printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+         { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' has changed since the previous run:" >&5
+printf "%s\n" "$as_me: error: '$ac_var' has changed since the previous run:" >&2;}
          ac_cache_corrupted=:
        else
-         { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+         { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in '$ac_var' since the previous run:" >&5
+printf "%s\n" "$as_me: warning: ignoring whitespace changes in '$ac_var' since the previous run:" >&2;}
          eval $ac_var=\$ac_old_val
        fi
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
-printf "%s\n" "$as_me:   former value:  \`$ac_old_val'" >&2;}
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
-printf "%s\n" "$as_me:   current value: \`$ac_new_val'" >&2;}
+       { printf "%s\n" "$as_me:${as_lineno-$LINENO}:   former value:  '$ac_old_val'" >&5
+printf "%s\n" "$as_me:   former value:  '$ac_old_val'" >&2;}
+       { printf "%s\n" "$as_me:${as_lineno-$LINENO}:   current value: '$ac_new_val'" >&5
+printf "%s\n" "$as_me:   current value: '$ac_new_val'" >&2;}
       fi;;
   esac
   # Pass precious variables to config.status.
@@ -4206,11 +4504,11 @@ printf "%s\n" "$as_me:   current value: \`$ac_new_val'" >&2;}
   fi
 done
 if $ac_cache_corrupted; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
 printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;}
-  as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file'
+  as_fn_error $? "run '${MAKE-make} distclean' and/or 'rm $cache_file'
            and start over" "$LINENO" 5
 fi
 ## -------------------- ##
@@ -4253,8 +4551,8 @@ if test -z "$INSTALL"; then
 if test ${ac_cv_path_install+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+else case e in #(
+  e) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
@@ -4308,7 +4606,8 @@ esac
 IFS=$as_save_IFS
 
 rm -rf conftest.one conftest.two conftest.dir
-
+ ;;
+esac
 fi
   if test ${ac_cv_path_install+y}; then
     INSTALL=$ac_cv_path_install
@@ -4331,9 +4630,76 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
 
 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether sleep supports fractional seconds" >&5
+printf %s "checking whether sleep supports fractional seconds... " >&6; }
+if test ${am_cv_sleep_fractional_seconds+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if sleep 0.001 2>/dev/null
+then :
+  am_cv_sleep_fractional_seconds=true
+else case e in #(
+  e) am_cv_sleep_fractional_seconds=false ;;
+esac
+fi
+ ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_sleep_fractional_seconds" >&5
+printf "%s\n" "$am_cv_sleep_fractional_seconds" >&6; }
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the filesystem timestamp resolution" >&5
+printf %s "checking the filesystem timestamp resolution... " >&6; }
+if test ${am_cv_filesystem_timestamp_resolution+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) # Use names that lexically sort older-first when the timestamps are equal.
+rm -f conftest.file.a conftest.file.b
+: > conftest.file.a
+if $am_cv_sleep_fractional_seconds
+then :
+    am_try_sleep=0.1 am_try_loops=20
+
+else case e in #(
+  e)   am_try_sleep=1   am_try_loops=2
+ ;;
+esac
+fi
+am_try=0
+while :; do
+  as_fn_arith $am_try + 1 && am_try=$as_val
+  echo "timestamp $am_try" > conftest.file.b
+  set X `ls -t conftest.file.a conftest.file.b`
+  if test "$2" = conftest.file.b || test $am_try -eq $am_try_loops; then
+    break
+  fi
+  sleep $am_try_sleep
+done
+rm -f conftest.file.a conftest.file.b
+am_cv_filesystem_timestamp_resolution=$am_try
+if $am_cv_sleep_fractional_seconds
+then :
+    as_fn_arith $am_try / 10 && am_cv_filesystem_timestamp_resolution=$as_val
+  as_fn_arith $am_try % 10 && am_fraction=$as_val
+  as_fn_append am_cv_filesystem_timestamp_resolution .$am_fraction
+
+fi
+ ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_filesystem_timestamp_resolution" >&5
+printf "%s\n" "$am_cv_filesystem_timestamp_resolution" >&6; }
+
+rm -f conftest.file
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
 printf %s "checking whether build environment is sane... " >&6; }
-# Reject unsafe characters in $srcdir or the absolute working directory
+if test ${am_cv_build_env_is_sane+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) # Reject unsafe characters in $srcdir or the absolute working directory
 # name.  Accept space and tab only in the latter.
 am_lf='
 '
@@ -4374,25 +4740,27 @@ if (
        break
      fi
      # Just in case.
-     sleep 1
+     sleep $am_cv_filesystem_timestamp_resolution
      am_has_slept=yes
    done
    test "$2" = conftest.file
    )
 then
-   # Ok.
-   :
+  am_cv_build_env_is_sane=yes
 else
    as_fn_error $? "newly created file is older than distributed files!
 Check your system clock" "$LINENO" 5
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_build_env_is_sane" >&5
+printf "%s\n" "$am_cv_build_env_is_sane" >&6; }
 # If we didn't sleep, we still need to ensure time stamps of config.status and
 # generated files are strictly newer.
 am_sleep_pid=
-if grep 'slept: no' conftest.file >/dev/null 2>&1; then
-  ( sleep 1 ) &
+if ! test -e conftest.file || grep 'slept: no' conftest.file >/dev/null 2>&1; then
+  ( sleep $am_cv_filesystem_timestamp_resolution ) &
   am_sleep_pid=$!
 fi
 
@@ -4404,7 +4772,7 @@ test "$program_prefix" != NONE &&
 test "$program_suffix" != NONE &&
   program_transform_name="s&\$&$program_suffix&;$program_transform_name"
 # Double any \ or $.
-# By default was `s,x,x', remove it if useless.
+# By default was 's,x,x', remove it if useless.
 ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
 program_transform_name=`printf "%s\n" "$program_transform_name" | sed "$ac_script"`
 
@@ -4447,8 +4815,8 @@ printf %s "checking for $ac_word... " >&6; }
 if test ${ac_cv_prog_STRIP+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$STRIP"; then
+else case e in #(
+  e) if test -n "$STRIP"; then
   ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -4470,7 +4838,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 STRIP=$ac_cv_prog_STRIP
 if test -n "$STRIP"; then
@@ -4492,8 +4861,8 @@ printf %s "checking for $ac_word... " >&6; }
 if test ${ac_cv_prog_ac_ct_STRIP+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$ac_ct_STRIP"; then
+else case e in #(
+  e) if test -n "$ac_ct_STRIP"; then
   ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -4515,7 +4884,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
 if test -n "$ac_ct_STRIP"; then
@@ -4551,8 +4921,8 @@ if test -z "$MKDIR_P"; then
   if test ${ac_cv_path_mkdir+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+else case e in #(
+  e) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
 do
   IFS=$as_save_IFS
@@ -4575,18 +4945,17 @@ do
        done
   done
 IFS=$as_save_IFS
-
+ ;;
+esac
 fi
 
   test -d ./--version && rmdir ./--version
   if test ${ac_cv_path_mkdir+y}; then
     MKDIR_P="$ac_cv_path_mkdir -p"
   else
-    # As a last resort, use the slow shell script.  Don't cache a
-    # value for MKDIR_P within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the value is a relative name.
-    MKDIR_P="$ac_install_sh -d"
+    # As a last resort, use plain mkdir -p,
+    # in the hope it doesn't have the bugs of ancient mkdir.
+    MKDIR_P='mkdir -p'
   fi
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
@@ -4601,8 +4970,8 @@ printf %s "checking for $ac_word... " >&6; }
 if test ${ac_cv_prog_AWK+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$AWK"; then
+else case e in #(
+  e) if test -n "$AWK"; then
   ac_cv_prog_AWK="$AWK" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -4624,7 +4993,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 AWK=$ac_cv_prog_AWK
 if test -n "$AWK"; then
@@ -4646,8 +5016,8 @@ ac_make=`printf "%s\n" "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
 if eval test \${ac_cv_prog_make_${ac_make}_set+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat >conftest.make <<\_ACEOF
+else case e in #(
+  e) cat >conftest.make <<\_ACEOF
 SHELL = /bin/sh
 all:
        @echo '@@@%%%=$(MAKE)=@@@%%%'
@@ -4659,7 +5029,8 @@ case `${MAKE-make} -f conftest.make 2>/dev/null` in
   *)
     eval ac_cv_prog_make_${ac_make}_set=no;;
 esac
-rm -f conftest.make
+rm -f conftest.make ;;
+esac
 fi
 if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
@@ -4680,25 +5051,21 @@ else
 fi
 rmdir .tst 2>/dev/null
 
+AM_DEFAULT_VERBOSITY=1
 # Check whether --enable-silent-rules was given.
 if test ${enable_silent_rules+y}
 then :
   enableval=$enable_silent_rules;
 fi
 
-case $enable_silent_rules in # (((
-  yes) AM_DEFAULT_VERBOSITY=0;;
-   no) AM_DEFAULT_VERBOSITY=1;;
-    *) AM_DEFAULT_VERBOSITY=1;;
-esac
 am_make=${MAKE-make}
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
 printf %s "checking whether $am_make supports nested variables... " >&6; }
 if test ${am_cv_make_support_nested_variables+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if printf "%s\n" 'TRUE=$(BAR$(V))
+else case e in #(
+  e) if printf "%s\n" 'TRUE=$(BAR$(V))
 BAR0=false
 BAR1=true
 V=1
@@ -4708,19 +5075,50 @@ am__doit:
   am_cv_make_support_nested_variables=yes
 else
   am_cv_make_support_nested_variables=no
-fi
+fi ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
 printf "%s\n" "$am_cv_make_support_nested_variables" >&6; }
-if test $am_cv_make_support_nested_variables = yes; then
-    AM_V='$(V)'
-  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
-else
-  AM_V=$AM_DEFAULT_VERBOSITY
-  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
-fi
 AM_BACKSLASH='\'
 
+am__rm_f_notfound=
+if (rm -f && rm -fr && rm -rf) 2>/dev/null
+then :
+
+else case e in #(
+  e) am__rm_f_notfound='""' ;;
+esac
+fi
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking xargs -n works" >&5
+printf %s "checking xargs -n works... " >&6; }
+if test ${am_cv_xargs_n_works+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test "`echo 1 2 3 | xargs -n2 echo`" = "1 2
+3"
+then :
+  am_cv_xargs_n_works=yes
+else case e in #(
+  e) am_cv_xargs_n_works=no ;;
+esac
+fi ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_xargs_n_works" >&5
+printf "%s\n" "$am_cv_xargs_n_works" >&6; }
+if test "$am_cv_xargs_n_works" = yes
+then :
+  am__xargs_n='xargs -n'
+else case e in #(
+  e)   am__xargs_n='am__xargs_n () { shift; sed "s/ /\\n/g" | while read am__xargs_n_arg; do "" "$am__xargs_n_arg"; done; }'
+ ;;
+esac
+fi
+
 if test "`cd $srcdir && pwd`" != "`pwd`"; then
   # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
   # is not polluted with repeated "-I."
@@ -4743,7 +5141,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='diffutils'
- VERSION='3.8'
+ VERSION='3.10'
 
 
 printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -4804,89 +5202,12 @@ fi
 
 
 
-# POSIX will say in a future version that running "rm -f" with no argument
-# is OK; and we want to be able to make that assumption in our Makefile
-# recipes.  So use an aggressive probe to check that the usage we want is
-# actually supported "in the wild" to an acceptable degree.
-# See automake bug#10828.
-# To make any issue more visible, cause the running configure to be aborted
-# by default if the 'rm' program in use doesn't match our expectations; the
-# user can still override this though.
-if rm -f && rm -fr && rm -rf; then : OK; else
-  cat >&2 <<'END'
-Oops!
-
-Your 'rm' program seems unable to run without file operands specified
-on the command line, even when the '-f' option is present.  This is contrary
-to the behaviour of most rm programs out there, and not conforming with
-the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
 
-Please tell bug-automake@gnu.org about your system, including the value
-of your $PATH and any error possibly output before this message.  This
-can help us improve future automake versions.
-
-END
-  if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
-    echo 'Configuration will proceed anyway, since you have set the' >&2
-    echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
-    echo >&2
-  else
-    cat >&2 <<'END'
-Aborting the configuration process, to ensure you take notice of the issue.
 
-You can download and install GNU coreutils to get an 'rm' implementation
-that behaves properly: <https://www.gnu.org/software/coreutils/>.
 
-If you want to complete the configuration process using your problematic
-'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
-to "yes", and re-run configure.
 
-END
-    as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
-  fi
-fi
 
-# Check whether --enable-silent-rules was given.
-if test ${enable_silent_rules+y}
-then :
-  enableval=$enable_silent_rules;
-fi
-
-case $enable_silent_rules in # (((
-  yes) AM_DEFAULT_VERBOSITY=0;;
-   no) AM_DEFAULT_VERBOSITY=1;;
-    *) AM_DEFAULT_VERBOSITY=0;;
-esac
-am_make=${MAKE-make}
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
-printf %s "checking whether $am_make supports nested variables... " >&6; }
-if test ${am_cv_make_support_nested_variables+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  if printf "%s\n" 'TRUE=$(BAR$(V))
-BAR0=false
-BAR1=true
-V=1
-am__doit:
-       @$(TRUE)
-.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
-  am_cv_make_support_nested_variables=yes
-else
-  am_cv_make_support_nested_variables=no
-fi
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
-printf "%s\n" "$am_cv_make_support_nested_variables" >&6; }
-if test $am_cv_make_support_nested_variables = yes; then
-    AM_V='$(V)'
-  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
-else
-  AM_V=$AM_DEFAULT_VERBOSITY
-  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
-fi
-AM_BACKSLASH='\'
- # make --enable-silent-rules the default.
+AM_DEFAULT_VERBOSITY=0 # make --enable-silent-rules the default.
 
 ac_config_headers="$ac_config_headers lib/config.h:lib/config.hin"
 
@@ -4900,8 +5221,8 @@ printf %s "checking for $ac_word... " >&6; }
 if test ${ac_cv_prog_AWK+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$AWK"; then
+else case e in #(
+  e) if test -n "$AWK"; then
   ac_cv_prog_AWK="$AWK" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -4923,7 +5244,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 AWK=$ac_cv_prog_AWK
 if test -n "$AWK"; then
@@ -4960,8 +5282,8 @@ printf %s "checking for $ac_word... " >&6; }
 if test ${ac_cv_prog_CC+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$CC"; then
+else case e in #(
+  e) if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -4983,7 +5305,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
@@ -5005,8 +5328,8 @@ printf %s "checking for $ac_word... " >&6; }
 if test ${ac_cv_prog_ac_ct_CC+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$ac_ct_CC"; then
+else case e in #(
+  e) if test -n "$ac_ct_CC"; then
   ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -5028,7 +5351,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
@@ -5063,8 +5387,8 @@ printf %s "checking for $ac_word... " >&6; }
 if test ${ac_cv_prog_CC+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$CC"; then
+else case e in #(
+  e) if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -5086,7 +5410,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
@@ -5108,8 +5433,8 @@ printf %s "checking for $ac_word... " >&6; }
 if test ${ac_cv_prog_CC+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$CC"; then
+else case e in #(
+  e) if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
   ac_prog_rejected=no
@@ -5148,7 +5473,8 @@ if test $ac_prog_rejected = yes; then
     ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@"
   fi
 fi
-fi
+fi ;;
+esac
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
@@ -5172,8 +5498,8 @@ printf %s "checking for $ac_word... " >&6; }
 if test ${ac_cv_prog_CC+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$CC"; then
+else case e in #(
+  e) if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -5195,7 +5521,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
@@ -5221,8 +5548,8 @@ printf %s "checking for $ac_word... " >&6; }
 if test ${ac_cv_prog_ac_ct_CC+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$ac_ct_CC"; then
+else case e in #(
+  e) if test -n "$ac_ct_CC"; then
   ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -5244,7 +5571,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
@@ -5282,8 +5610,8 @@ printf %s "checking for $ac_word... " >&6; }
 if test ${ac_cv_prog_CC+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$CC"; then
+else case e in #(
+  e) if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -5305,7 +5633,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
@@ -5327,8 +5656,8 @@ printf %s "checking for $ac_word... " >&6; }
 if test ${ac_cv_prog_ac_ct_CC+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$ac_ct_CC"; then
+else case e in #(
+  e) if test -n "$ac_ct_CC"; then
   ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -5350,7 +5679,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
@@ -5379,10 +5709,10 @@ fi
 fi
 
 
-test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
 as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
+See 'config.log' for more details" "$LINENO" 5; }
 
 # Provide some information about the compiler.
 printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -5454,8 +5784,8 @@ printf "%s\n" "$ac_try_echo"; } >&5
   printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }
 then :
-  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
-# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+  # Autoconf-2.13 could set the ac_cv_exeext variable to 'no'.
+# So ignore a value of 'no', otherwise this would lead to 'EXEEXT = no'
 # in a Makefile.  We should not override ac_cv_exeext if it was cached,
 # so that the user can short-circuit this test for compilers unknown to
 # Autoconf.
@@ -5475,7 +5805,7 @@ do
           ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
        fi
        # We set ac_cv_exeext here because the later test for it is not
-       # safe: cross compilers may not add the suffix if given an `-o'
+       # safe: cross compilers may not add the suffix if given an '-o'
        # argument, so we may need to know it at that point already.
        # Even if this section looks crufty: it has the advantage of
        # actually working.
@@ -5486,8 +5816,9 @@ do
 done
 test "$ac_cv_exeext" = no && ac_cv_exeext=
 
-else $as_nop
-  ac_file=''
+else case e in #(
+  e) ac_file='' ;;
+esac
 fi
 if test -z "$ac_file"
 then :
@@ -5496,13 +5827,14 @@ printf "%s\n" "no" >&6; }
 printf "%s\n" "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
 as_fn_error 77 "C compiler cannot create executables
-See \`config.log' for more details" "$LINENO" 5; }
-else $as_nop
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+See 'config.log' for more details" "$LINENO" 5; }
+else case e in #(
+  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; } ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
 printf %s "checking for C compiler default output file name... " >&6; }
@@ -5526,10 +5858,10 @@ printf "%s\n" "$ac_try_echo"; } >&5
   printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }
 then :
-  # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
+  # If both 'conftest.exe' and 'conftest' are 'present' (well, observable)
+# catch 'conftest.exe'.  For instance with Cygwin, 'ls conftest' will
+# work properly (i.e., refer to 'conftest.exe'), while it won't with
+# 'rm'.
 for ac_file in conftest.exe conftest conftest.*; do
   test -f "$ac_file" || continue
   case $ac_file in
@@ -5539,11 +5871,12 @@ for ac_file in conftest.exe conftest conftest.*; do
     * ) break;;
   esac
 done
-else $as_nop
-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+else case e in #(
+  e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
 as_fn_error $? "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details" "$LINENO" 5; }
+See 'config.log' for more details" "$LINENO" 5; } ;;
+esac
 fi
 rm -f conftest conftest$ac_cv_exeext
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
@@ -5598,26 +5931,27 @@ printf "%s\n" "$ac_try_echo"; } >&5
     if test "$cross_compiling" = maybe; then
        cross_compiling=yes
     else
-       { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+       { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
 as_fn_error 77 "cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details" "$LINENO" 5; }
+If you meant to cross compile, use '--host'.
+See 'config.log' for more details" "$LINENO" 5; }
     fi
   fi
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
 printf "%s\n" "$cross_compiling" >&6; }
 
-rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
+rm -f conftest.$ac_ext conftest$ac_cv_exeext \
+  conftest.o conftest.obj conftest.out
 ac_clean_files=$ac_clean_files_save
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
 printf %s "checking for suffix of object files... " >&6; }
 if test ${ac_cv_objext+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -5649,16 +5983,18 @@ then :
        break;;
   esac
 done
-else $as_nop
-  printf "%s\n" "$as_me: failed program was:" >&5
+else case e in #(
+  e) printf "%s\n" "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
 as_fn_error $? "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details" "$LINENO" 5; }
+See 'config.log' for more details" "$LINENO" 5; } ;;
+esac
 fi
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
+rm -f conftest.$ac_cv_objext conftest.$ac_ext ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
 printf "%s\n" "$ac_cv_objext" >&6; }
@@ -5669,8 +6005,8 @@ printf %s "checking whether the compiler supports GNU C... " >&6; }
 if test ${ac_cv_c_compiler_gnu+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -5687,12 +6023,14 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   ac_compiler_gnu=yes
-else $as_nop
-  ac_compiler_gnu=no
+else case e in #(
+  e) ac_compiler_gnu=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
 ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
 printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; }
@@ -5710,8 +6048,8 @@ printf %s "checking whether $CC accepts -g... " >&6; }
 if test ${ac_cv_prog_cc_g+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_save_c_werror_flag=$ac_c_werror_flag
+else case e in #(
+  e) ac_save_c_werror_flag=$ac_c_werror_flag
    ac_c_werror_flag=yes
    ac_cv_prog_cc_g=no
    CFLAGS="-g"
@@ -5729,8 +6067,8 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   ac_cv_prog_cc_g=yes
-else $as_nop
-  CFLAGS=""
+else case e in #(
+  e) CFLAGS=""
       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -5745,8 +6083,8 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
 
-else $as_nop
-  ac_c_werror_flag=$ac_save_c_werror_flag
+else case e in #(
+  e) ac_c_werror_flag=$ac_save_c_werror_flag
         CFLAGS="-g"
         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -5763,12 +6101,15 @@ if ac_fn_c_try_compile "$LINENO"
 then :
   ac_cv_prog_cc_g=yes
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-   ac_c_werror_flag=$ac_save_c_werror_flag
+   ac_c_werror_flag=$ac_save_c_werror_flag ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
 printf "%s\n" "$ac_cv_prog_cc_g" >&6; }
@@ -5795,8 +6136,8 @@ printf %s "checking for $CC option to enable C11 features... " >&6; }
 if test ${ac_cv_prog_cc_c11+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_cv_prog_cc_c11=no
+else case e in #(
+  e) ac_cv_prog_cc_c11=no
 ac_save_CC=$CC
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -5813,25 +6154,28 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam
   test "x$ac_cv_prog_cc_c11" != "xno" && break
 done
 rm -f conftest.$ac_ext
-CC=$ac_save_CC
+CC=$ac_save_CC ;;
+esac
 fi
 
 if test "x$ac_cv_prog_cc_c11" = xno
 then :
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
 printf "%s\n" "unsupported" >&6; }
-else $as_nop
-  if test "x$ac_cv_prog_cc_c11" = x
+else case e in #(
+  e) if test "x$ac_cv_prog_cc_c11" = x
 then :
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
 printf "%s\n" "none needed" >&6; }
-else $as_nop
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
+else case e in #(
+  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
 printf "%s\n" "$ac_cv_prog_cc_c11" >&6; }
-     CC="$CC $ac_cv_prog_cc_c11"
+     CC="$CC $ac_cv_prog_cc_c11" ;;
+esac
 fi
   ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11
-  ac_prog_cc_stdc=c11
+  ac_prog_cc_stdc=c11 ;;
+esac
 fi
 fi
 if test x$ac_prog_cc_stdc = xno
@@ -5841,8 +6185,8 @@ printf %s "checking for $CC option to enable C99 features... " >&6; }
 if test ${ac_cv_prog_cc_c99+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_cv_prog_cc_c99=no
+else case e in #(
+  e) ac_cv_prog_cc_c99=no
 ac_save_CC=$CC
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -5859,25 +6203,28 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam
   test "x$ac_cv_prog_cc_c99" != "xno" && break
 done
 rm -f conftest.$ac_ext
-CC=$ac_save_CC
+CC=$ac_save_CC ;;
+esac
 fi
 
 if test "x$ac_cv_prog_cc_c99" = xno
 then :
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
 printf "%s\n" "unsupported" >&6; }
-else $as_nop
-  if test "x$ac_cv_prog_cc_c99" = x
+else case e in #(
+  e) if test "x$ac_cv_prog_cc_c99" = x
 then :
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
 printf "%s\n" "none needed" >&6; }
-else $as_nop
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
+else case e in #(
+  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
 printf "%s\n" "$ac_cv_prog_cc_c99" >&6; }
-     CC="$CC $ac_cv_prog_cc_c99"
+     CC="$CC $ac_cv_prog_cc_c99" ;;
+esac
 fi
   ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
-  ac_prog_cc_stdc=c99
+  ac_prog_cc_stdc=c99 ;;
+esac
 fi
 fi
 if test x$ac_prog_cc_stdc = xno
@@ -5887,8 +6234,8 @@ printf %s "checking for $CC option to enable C89 features... " >&6; }
 if test ${ac_cv_prog_cc_c89+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_cv_prog_cc_c89=no
+else case e in #(
+  e) ac_cv_prog_cc_c89=no
 ac_save_CC=$CC
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -5905,25 +6252,28 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam
   test "x$ac_cv_prog_cc_c89" != "xno" && break
 done
 rm -f conftest.$ac_ext
-CC=$ac_save_CC
+CC=$ac_save_CC ;;
+esac
 fi
 
 if test "x$ac_cv_prog_cc_c89" = xno
 then :
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
 printf "%s\n" "unsupported" >&6; }
-else $as_nop
-  if test "x$ac_cv_prog_cc_c89" = x
+else case e in #(
+  e) if test "x$ac_cv_prog_cc_c89" = x
 then :
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
 printf "%s\n" "none needed" >&6; }
-else $as_nop
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+else case e in #(
+  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
 printf "%s\n" "$ac_cv_prog_cc_c89" >&6; }
-     CC="$CC $ac_cv_prog_cc_c89"
+     CC="$CC $ac_cv_prog_cc_c89" ;;
+esac
 fi
   ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
-  ac_prog_cc_stdc=c89
+  ac_prog_cc_stdc=c89 ;;
+esac
 fi
 fi
 
@@ -5944,8 +6294,8 @@ printf %s "checking whether $CC understands -c and -o together... " >&6; }
 if test ${am_cv_prog_cc_c_o+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -5975,7 +6325,8 @@ _ACEOF
     fi
   done
   rm -f core conftest*
-  unset am_i
+  unset am_i ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
 printf "%s\n" "$am_cv_prog_cc_c_o" >&6; }
@@ -6000,8 +6351,8 @@ printf %s "checking whether the compiler is clang... " >&6; }
 if test ${gl_cv_compiler_clang+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-                 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e)                cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
            #ifdef __clang__
@@ -6020,11 +6371,13 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_compiler_clang=no
-else $as_nop
-  gl_cv_compiler_clang=yes
+else case e in #(
+  e) gl_cv_compiler_clang=yes ;;
+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_compiler_clang" >&5
 printf "%s\n" "$gl_cv_compiler_clang" >&6; }
@@ -6035,8 +6388,8 @@ printf %s "checking for compiler option needed when checking for declarations...
 if test ${gl_cv_compiler_check_decl_option+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test $gl_cv_compiler_clang = yes; then
+else case e in #(
+  e) if test $gl_cv_compiler_clang = yes; then
                      save_ac_compile="$ac_compile"
        ac_compile="$ac_compile -Werror=implicit-function-declaration"
                      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -6053,15 +6406,17 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_compiler_check_decl_option='-Werror=implicit-function-declaration'
-else $as_nop
-  gl_cv_compiler_check_decl_option=none
+else case e in #(
+  e) gl_cv_compiler_check_decl_option=none ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
        ac_compile="$save_ac_compile"
      else
        gl_cv_compiler_check_decl_option=none
      fi
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_compiler_check_decl_option" >&5
 printf "%s\n" "$gl_cv_compiler_check_decl_option" >&6; }
@@ -6143,8 +6498,8 @@ printf %s "checking dependency style of $depcc... " >&6; }
 if test ${am_cv_CC_dependencies_compiler_type+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+else case e in #(
+  e) if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
   # We make a subdir and do the tests there.  Otherwise we can end up
   # making bogus files that we don't know about and never remove.  For
   # instance it was reported that on HP-UX the gcc test will end up
@@ -6248,7 +6603,8 @@ else $as_nop
 else
   am_cv_CC_dependencies_compiler_type=none
 fi
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
 printf "%s\n" "$am_cv_CC_dependencies_compiler_type" >&6; }
@@ -6277,8 +6633,8 @@ printf %s "checking for $ac_word... " >&6; }
 if test ${ac_cv_prog_RANLIB+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$RANLIB"; then
+else case e in #(
+  e) if test -n "$RANLIB"; then
   ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -6300,7 +6656,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 RANLIB=$ac_cv_prog_RANLIB
 if test -n "$RANLIB"; then
@@ -6322,8 +6679,8 @@ printf %s "checking for $ac_word... " >&6; }
 if test ${ac_cv_prog_ac_ct_RANLIB+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$ac_ct_RANLIB"; then
+else case e in #(
+  e) if test -n "$ac_ct_RANLIB"; then
   ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -6345,7 +6702,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
 if test -n "$ac_ct_RANLIB"; then
@@ -6412,8 +6770,8 @@ printf %s "checking whether it is safe to define __EXTENSIONS__... " >&6; }
 if test ${ac_cv_safe_to_define___extensions__+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #         define __EXTENSIONS__ 1
@@ -6429,10 +6787,12 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   ac_cv_safe_to_define___extensions__=yes
-else $as_nop
-  ac_cv_safe_to_define___extensions__=no
+else case e in #(
+  e) ac_cv_safe_to_define___extensions__=no ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
 printf "%s\n" "$ac_cv_safe_to_define___extensions__" >&6; }
@@ -6442,8 +6802,8 @@ printf %s "checking whether _XOPEN_SOURCE should be defined... " >&6; }
 if test ${ac_cv_should_define__xopen_source+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_cv_should_define__xopen_source=no
+else case e in #(
+  e) ac_cv_should_define__xopen_source=no
     if test $ac_cv_header_wchar_h = yes
 then :
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -6462,8 +6822,8 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
             #define _XOPEN_SOURCE 500
@@ -6481,10 +6841,12 @@ if ac_fn_c_try_compile "$LINENO"
 then :
   ac_cv_should_define__xopen_source=yes
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
+fi ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5
 printf "%s\n" "$ac_cv_should_define__xopen_source" >&6; }
@@ -6509,6 +6871,8 @@ printf "%s\n" "$ac_cv_should_define__xopen_source" >&6; }
 
   printf "%s\n" "#define __STDC_WANT_IEC_60559_DFP_EXT__ 1" >>confdefs.h
 
+  printf "%s\n" "#define __STDC_WANT_IEC_60559_EXT__ 1" >>confdefs.h
+
   printf "%s\n" "#define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1" >>confdefs.h
 
   printf "%s\n" "#define __STDC_WANT_IEC_60559_TYPES_EXT__ 1" >>confdefs.h
@@ -6528,8 +6892,9 @@ then :
 
     printf "%s\n" "#define _POSIX_1_SOURCE 2" >>confdefs.h
 
-else $as_nop
-  MINIX=
+else case e in #(
+  e) MINIX= ;;
+esac
 fi
   if test $ac_cv_safe_to_define___extensions__ = yes
 then :
@@ -6553,15 +6918,16 @@ printf %s "checking build system type... " >&6; }
 if test ${ac_cv_build+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_build_alias=$build_alias
+else case e in #(
+  e) ac_build_alias=$build_alias
 test "x$ac_build_alias" = x &&
   ac_build_alias=`$SHELL "${ac_aux_dir}config.guess"`
 test "x$ac_build_alias" = x &&
   as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
 ac_cv_build=`$SHELL "${ac_aux_dir}config.sub" $ac_build_alias` ||
   as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $ac_build_alias failed" "$LINENO" 5
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
 printf "%s\n" "$ac_cv_build" >&6; }
@@ -6588,14 +6954,15 @@ printf %s "checking host system type... " >&6; }
 if test ${ac_cv_host+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test "x$host_alias" = x; then
+else case e in #(
+  e) if test "x$host_alias" = x; then
   ac_cv_host=$ac_cv_build
 else
   ac_cv_host=`$SHELL "${ac_aux_dir}config.sub" $host_alias` ||
     as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $host_alias failed" "$LINENO" 5
 fi
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
 printf "%s\n" "$ac_cv_host" >&6; }
@@ -6644,8 +7011,8 @@ if test -z "$CPP"; then
   if test ${ac_cv_prog_CPP+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-      # Double quotes because $CC needs to be expanded
+else case e in #(
+  e)     # Double quotes because $CC needs to be expanded
     for CPP in "$CC -E" "$CC -E -traditional-cpp" cpp /lib/cpp
     do
       ac_preproc_ok=false
@@ -6663,9 +7030,10 @@ _ACEOF
 if ac_fn_c_try_cpp "$LINENO"
 then :
 
-else $as_nop
-  # Broken: fails on valid input.
-continue
+else case e in #(
+  e) # Broken: fails on valid input.
+continue ;;
+esac
 fi
 rm -f conftest.err conftest.i conftest.$ac_ext
 
@@ -6679,15 +7047,16 @@ if ac_fn_c_try_cpp "$LINENO"
 then :
   # Broken: success on invalid input.
 continue
-else $as_nop
-  # Passes both tests.
+else case e in #(
+  e) # Passes both tests.
 ac_preproc_ok=:
-break
+break ;;
+esac
 fi
 rm -f conftest.err conftest.i conftest.$ac_ext
 
 done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+# Because of 'break', _AC_PREPROC_IFELSE's cleaning code was skipped.
 rm -f conftest.i conftest.err conftest.$ac_ext
 if $ac_preproc_ok
 then :
@@ -6696,7 +7065,8 @@ fi
 
     done
     ac_cv_prog_CPP=$CPP
-
+   ;;
+esac
 fi
   CPP=$ac_cv_prog_CPP
 else
@@ -6719,9 +7089,10 @@ _ACEOF
 if ac_fn_c_try_cpp "$LINENO"
 then :
 
-else $as_nop
-  # Broken: fails on valid input.
-continue
+else case e in #(
+  e) # Broken: fails on valid input.
+continue ;;
+esac
 fi
 rm -f conftest.err conftest.i conftest.$ac_ext
 
@@ -6735,24 +7106,26 @@ if ac_fn_c_try_cpp "$LINENO"
 then :
   # Broken: success on invalid input.
 continue
-else $as_nop
-  # Passes both tests.
+else case e in #(
+  e) # Passes both tests.
 ac_preproc_ok=:
-break
+break ;;
+esac
 fi
 rm -f conftest.err conftest.i conftest.$ac_ext
 
 done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+# Because of 'break', _AC_PREPROC_IFELSE's cleaning code was skipped.
 rm -f conftest.i conftest.err conftest.$ac_ext
 if $ac_preproc_ok
 then :
 
-else $as_nop
-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+else case e in #(
+  e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
 as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
+See 'config.log' for more details" "$LINENO" 5; } ;;
+esac
 fi
 
 ac_ext=c
@@ -6762,14 +7135,14 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-printf %s "checking for grep that handles long lines and -e... " >&6; }
-if test ${ac_cv_path_GREP+y}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep -e" >&5
+printf %s "checking for egrep -e... " >&6; }
+if test ${ac_cv_path_EGREP_TRADITIONAL+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -z "$GREP"; then
-  ac_path_GREP_found=false
+else case e in #(
+  e) if test -z "$EGREP_TRADITIONAL"; then
+  ac_path_EGREP_TRADITIONAL_found=false
   # Loop through the user's path and test for each of PROGNAME-LIST
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
@@ -6783,13 +7156,14 @@ do
     for ac_prog in grep ggrep
    do
     for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_GREP="$as_dir$ac_prog$ac_exec_ext"
-      as_fn_executable_p "$ac_path_GREP" || continue
-# Check for GNU ac_path_GREP and select it if it is found.
-  # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
+      ac_path_EGREP_TRADITIONAL="$as_dir$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_EGREP_TRADITIONAL" || continue
+# Check for GNU ac_path_EGREP_TRADITIONAL and select it if it is found.
+  # Check for GNU $ac_path_EGREP_TRADITIONAL
+case `"$ac_path_EGREP_TRADITIONAL" --version 2>&1` in #(
 *GNU*)
-  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+  ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL" ac_path_EGREP_TRADITIONAL_found=:;;
+#(
 *)
   ac_count=0
   printf %s 0123456789 >"conftest.in"
@@ -6798,14 +7172,14 @@ case `"$ac_path_GREP" --version 2>&1` in
     cat "conftest.in" "conftest.in" >"conftest.tmp"
     mv "conftest.tmp" "conftest.in"
     cp "conftest.in" "conftest.nl"
-    printf "%s\n" 'GREP' >> "conftest.nl"
-    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    printf "%s\n" 'EGREP_TRADITIONAL' >> "conftest.nl"
+    "$ac_path_EGREP_TRADITIONAL" -E 'EGR(EP|AC)_TRADITIONAL$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
     diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
     as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_GREP_max-0}; then
+    if test $ac_count -gt ${ac_path_EGREP_TRADITIONAL_max-0}; then
       # Best one so far, save it but keep looking for a better one
-      ac_cv_path_GREP="$ac_path_GREP"
-      ac_path_GREP_max=$ac_count
+      ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL"
+      ac_path_EGREP_TRADITIONAL_max=$ac_count
     fi
     # 10*(2^10) chars as input seems more than enough
     test $ac_count -gt 10 && break
@@ -6813,35 +7187,24 @@ case `"$ac_path_GREP" --version 2>&1` in
   rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
 esac
 
-      $ac_path_GREP_found && break 3
+      $ac_path_EGREP_TRADITIONAL_found && break 3
     done
   done
   done
 IFS=$as_save_IFS
-  if test -z "$ac_cv_path_GREP"; then
-    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+  if test -z "$ac_cv_path_EGREP_TRADITIONAL"; then
+    :
   fi
 else
-  ac_cv_path_GREP=$GREP
-fi
-
+  ac_cv_path_EGREP_TRADITIONAL=$EGREP_TRADITIONAL
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-printf "%s\n" "$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
-
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
-printf %s "checking for egrep... " >&6; }
-if test ${ac_cv_path_EGREP+y}
+    if test "$ac_cv_path_EGREP_TRADITIONAL"
 then :
-  printf %s "(cached) " >&6
-else $as_nop
-  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
-   then ac_cv_path_EGREP="$GREP -E"
-   else
-     if test -z "$EGREP"; then
-  ac_path_EGREP_found=false
+  ac_cv_path_EGREP_TRADITIONAL="$ac_cv_path_EGREP_TRADITIONAL -E"
+else case e in #(
+  e) if test -z "$EGREP_TRADITIONAL"; then
+  ac_path_EGREP_TRADITIONAL_found=false
   # Loop through the user's path and test for each of PROGNAME-LIST
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
@@ -6855,13 +7218,14 @@ do
     for ac_prog in egrep
    do
     for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_EGREP="$as_dir$ac_prog$ac_exec_ext"
-      as_fn_executable_p "$ac_path_EGREP" || continue
-# Check for GNU ac_path_EGREP and select it if it is found.
-  # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
+      ac_path_EGREP_TRADITIONAL="$as_dir$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_EGREP_TRADITIONAL" || continue
+# Check for GNU ac_path_EGREP_TRADITIONAL and select it if it is found.
+  # Check for GNU $ac_path_EGREP_TRADITIONAL
+case `"$ac_path_EGREP_TRADITIONAL" --version 2>&1` in #(
 *GNU*)
-  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+  ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL" ac_path_EGREP_TRADITIONAL_found=:;;
+#(
 *)
   ac_count=0
   printf %s 0123456789 >"conftest.in"
@@ -6870,14 +7234,14 @@ case `"$ac_path_EGREP" --version 2>&1` in
     cat "conftest.in" "conftest.in" >"conftest.tmp"
     mv "conftest.tmp" "conftest.in"
     cp "conftest.in" "conftest.nl"
-    printf "%s\n" 'EGREP' >> "conftest.nl"
-    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    printf "%s\n" 'EGREP_TRADITIONAL' >> "conftest.nl"
+    "$ac_path_EGREP_TRADITIONAL" 'EGR(EP|AC)_TRADITIONAL$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
     diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
     as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+    if test $ac_count -gt ${ac_path_EGREP_TRADITIONAL_max-0}; then
       # Best one so far, save it but keep looking for a better one
-      ac_cv_path_EGREP="$ac_path_EGREP"
-      ac_path_EGREP_max=$ac_count
+      ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL"
+      ac_path_EGREP_TRADITIONAL_max=$ac_count
     fi
     # 10*(2^10) chars as input seems more than enough
     test $ac_count -gt 10 && break
@@ -6885,24 +7249,25 @@ case `"$ac_path_EGREP" --version 2>&1` in
   rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
 esac
 
-      $ac_path_EGREP_found && break 3
+      $ac_path_EGREP_TRADITIONAL_found && break 3
     done
   done
   done
 IFS=$as_save_IFS
-  if test -z "$ac_cv_path_EGREP"; then
+  if test -z "$ac_cv_path_EGREP_TRADITIONAL"; then
     as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
   fi
 else
-  ac_cv_path_EGREP=$EGREP
+  ac_cv_path_EGREP_TRADITIONAL=$EGREP_TRADITIONAL
 fi
-
-   fi
+ ;;
+esac
+fi ;;
+esac
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
-printf "%s\n" "$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
-
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP_TRADITIONAL" >&5
+printf "%s\n" "$ac_cv_path_EGREP_TRADITIONAL" >&6; }
+ EGREP_TRADITIONAL=$ac_cv_path_EGREP_TRADITIONAL
 
 
 
@@ -6912,8 +7277,8 @@ printf %s "checking for Minix Amsterdam compiler... " >&6; }
 if test ${gl_cv_c_amsterdam_compiler+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -6923,15 +7288,17 @@ Amsterdam
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Amsterdam" >/dev/null 2>&1
+  $EGREP_TRADITIONAL "Amsterdam" >/dev/null 2>&1
 then :
   gl_cv_c_amsterdam_compiler=yes
-else $as_nop
-  gl_cv_c_amsterdam_compiler=no
+else case e in #(
+  e) gl_cv_c_amsterdam_compiler=no ;;
+esac
 fi
 rm -rf conftest*
 
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c_amsterdam_compiler" >&5
 printf "%s\n" "$gl_cv_c_amsterdam_compiler" >&6; }
@@ -6955,8 +7322,8 @@ printf %s "checking for $ac_word... " >&6; }
 if test ${ac_cv_prog_AR+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$AR"; then
+else case e in #(
+  e) if test -n "$AR"; then
   ac_cv_prog_AR="$AR" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -6978,7 +7345,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 AR=$ac_cv_prog_AR
 if test -n "$AR"; then
@@ -7000,8 +7368,8 @@ printf %s "checking for $ac_word... " >&6; }
 if test ${ac_cv_prog_ac_ct_AR+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$ac_ct_AR"; then
+else case e in #(
+  e) if test -n "$ac_ct_AR"; then
   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -7023,7 +7391,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 ac_ct_AR=$ac_cv_prog_ac_ct_AR
 if test -n "$ac_ct_AR"; then
@@ -7067,8 +7436,8 @@ printf %s "checking for $ac_word... " >&6; }
 if test ${ac_cv_prog_RANLIB+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$RANLIB"; then
+else case e in #(
+  e) if test -n "$RANLIB"; then
   ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -7090,7 +7459,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 RANLIB=$ac_cv_prog_RANLIB
 if test -n "$RANLIB"; then
@@ -7112,8 +7482,8 @@ printf %s "checking for $ac_word... " >&6; }
 if test ${ac_cv_prog_ac_ct_RANLIB+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$ac_ct_RANLIB"; then
+else case e in #(
+  e) if test -n "$ac_ct_RANLIB"; then
   ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -7135,7 +7505,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
 if test -n "$ac_ct_RANLIB"; then
@@ -7199,98 +7570,23 @@ if test ${enable_largefile+y}
 then :
   enableval=$enable_largefile;
 fi
-
-if test "$enable_largefile" != no
+if test "$enable_largefile,$enable_year2038" != no,no
 then :
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
-printf %s "checking for special C compiler options needed for large files... " >&6; }
-if test ${ac_cv_sys_largefile_CC+y}
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable large file support" >&5
+printf %s "checking for $CC option to enable large file support... " >&6; }
+if test ${ac_cv_sys_largefile_opts+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_cv_sys_largefile_CC=no
-     if test "$GCC" != yes; then
-       ac_save_CC=$CC
-       while :; do
-         # IRIX 6.2 and later do not support large files by default,
-         # so use the C compiler's -n32 option if that helps.
-         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
-    We can't simply define LARGE_OFF_T to be 9223372036854775807,
-    since some C++ compilers masquerading as C compilers
-    incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
-  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
-                      && LARGE_OFF_T % 2147483647 == 1)
-                     ? 1 : -1];
-int
-main (void)
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-         if ac_fn_c_try_compile "$LINENO"
+else case e in #(
+  e) ac_save_CC="$CC"
+  ac_opt_found=no
+  for ac_opt in "none needed" "-D_FILE_OFFSET_BITS=64" "-D_LARGE_FILES=1" "-n32"; do
+    if test x"$ac_opt" != x"none needed"
 then :
-  break
+  CC="$ac_save_CC $ac_opt"
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam
-         CC="$CC -n32"
-         if ac_fn_c_try_compile "$LINENO"
-then :
-  ac_cv_sys_largefile_CC=' -n32'; break
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam
-         break
-       done
-       CC=$ac_save_CC
-       rm -f conftest.$ac_ext
-    fi
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
-printf "%s\n" "$ac_cv_sys_largefile_CC" >&6; }
-  if test "$ac_cv_sys_largefile_CC" != no; then
-    CC=$CC$ac_cv_sys_largefile_CC
-  fi
-
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
-printf %s "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
-if test ${ac_cv_sys_file_offset_bits+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  while :; do
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
-    We can't simply define LARGE_OFF_T to be 9223372036854775807,
-    since some C++ compilers masquerading as C compilers
-    incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
-  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
-                      && LARGE_OFF_T % 2147483647 == 1)
-                     ? 1 : -1];
-int
-main (void)
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  ac_cv_sys_file_offset_bits=no; break
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#undef _FILE_OFFSET_BITS
-#define _FILE_OFFSET_BITS 64
 #include <sys/types.h>
  /* Check that off_t can represent 2**63 - 1 correctly.
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
@@ -7310,228 +7606,131 @@ main (void)
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
-  ac_cv_sys_file_offset_bits=64; break
+  ac_cv_sys_largefile_opts="$ac_opt"
+      ac_opt_found=yes
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-  ac_cv_sys_file_offset_bits=unknown
-  break
-done
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5
-printf "%s\n" "$ac_cv_sys_file_offset_bits" >&6; }
-case $ac_cv_sys_file_offset_bits in #(
-  no | unknown) ;;
-  *)
-printf "%s\n" "#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits" >>confdefs.h
-;;
-esac
-rm -rf conftest*
-  case $ac_cv_sys_file_offset_bits in #(
-  unknown) :
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
-printf %s "checking for _LARGE_FILES value needed for large files... " >&6; }
-if test ${ac_cv_sys_large_files+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  while :; do
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
-    We can't simply define LARGE_OFF_T to be 9223372036854775807,
-    since some C++ compilers masquerading as C compilers
-    incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
-  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
-                      && LARGE_OFF_T % 2147483647 == 1)
-                     ? 1 : -1];
-int
-main (void)
-{
+    test $ac_opt_found = no || break
+  done
+  CC="$ac_save_CC"
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  ac_cv_sys_large_files=no; break
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#undef _LARGE_FILES
-#define _LARGE_FILES 1
-#include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
-    We can't simply define LARGE_OFF_T to be 9223372036854775807,
-    since some C++ compilers masquerading as C compilers
-    incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
-  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
-                      && LARGE_OFF_T % 2147483647 == 1)
-                     ? 1 : -1];
-int
-main (void)
-{
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  ac_cv_sys_large_files=1; break
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-  ac_cv_sys_large_files=unknown
-  break
-done
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
-printf "%s\n" "$ac_cv_sys_large_files" >&6; }
-case $ac_cv_sys_large_files in #(
-  no | unknown) ;;
-  *)
-printf "%s\n" "#define _LARGE_FILES $ac_cv_sys_large_files" >>confdefs.h
-;;
+    if test $ac_opt_found != yes; then
+      case $host_os in #(
+  mingw*) :
+    ac_cv_sys_largefile_opts="supported through gnulib"
+           ac_opt_found=yes
+       ;; #(
+  *) :
+     ;;
 esac
-rm -rf conftest* ;; #(
-  64) :
+    fi
 
- # Check whether --enable-year2038 was given.
-if test ${enable_year2038+y}
-then :
-  enableval=$enable_year2038;
+  test $ac_opt_found = yes || ac_cv_sys_largefile_opts="support not detected" ;;
+esac
 fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_opts" >&5
+printf "%s\n" "$ac_cv_sys_largefile_opts" >&6; }
 
- if test "$enable_year2038" != no
-then :
+ac_have_largefile=yes
+case $ac_cv_sys_largefile_opts in #(
+  "none needed") :
+     ;; #(
+  "supported through gnulib") :
+     ;; #(
+  "support not detected") :
+    ac_have_largefile=no ;; #(
+  "-D_FILE_OFFSET_BITS=64") :
 
-                            { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for 64-bit time_t" >&5
-printf %s "checking for 64-bit time_t... " >&6; }
-if test ${gl_cv_type_time_t_64+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+printf "%s\n" "#define _FILE_OFFSET_BITS 64" >>confdefs.h
+ ;; #(
+  "-D_LARGE_FILES=1") :
 
-  #include <time.h>
-  /* Check that time_t can represent 2**63 - 1 correctly.
-     We can't simply define LARGE_TIME_T to be 9223372036854775807,
-     since some C++ compilers masquerading as C compilers
-     incorrectly reject 9223372036854775807.  */
-  #define LARGE_TIME_T (((time_t) 1 << 31 << 31) - 1 + ((time_t) 1 << 31 << 31))
-  int verify_time_t_range[(LARGE_TIME_T % 2147483629 == 721
-                           && LARGE_TIME_T % 2147483647 == 1)
-                          ? 1 : -1];
+printf "%s\n" "#define _LARGE_FILES 1" >>confdefs.h
+ ;; #(
+  "-n32") :
+    CC="$CC -n32" ;; #(
+  *) :
+    as_fn_error $? "internal error: bad value for \$ac_cv_sys_largefile_opts" "$LINENO" 5 ;;
+esac
 
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
+if test "$enable_year2038" != no
 then :
-  gl_cv_type_time_t_64=yes
-else $as_nop
-  gl_cv_type_time_t_64=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_time_t_64" >&5
-printf "%s\n" "$gl_cv_type_time_t_64" >&6; }
-  if test "$gl_cv_type_time_t_64" = no; then
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for 64-bit time_t with _TIME_BITS=64" >&5
-printf %s "checking for 64-bit time_t with _TIME_BITS=64... " >&6; }
-if test ${gl_cv_type_time_t_bits_macro+y}
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option for timestamps after 2038" >&5
+printf %s "checking for $CC option for timestamps after 2038... " >&6; }
+if test ${ac_cv_sys_year2038_opts+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) ac_save_CPPFLAGS="$CPPFLAGS"
+  ac_opt_found=no
+  for ac_opt in "none needed" "-D_TIME_BITS=64" "-D__MINGW_USE_VC2005_COMPAT" "-U_USE_32_BIT_TIME_T -D__MINGW_USE_VC2005_COMPAT"; do
+    if test x"$ac_opt" != x"none needed"
+then :
+  CPPFLAGS="$ac_save_CPPFLAGS $ac_opt"
+fi
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#define _TIME_BITS 64
-                           #define _FILE_OFFSET_BITS 64
 
   #include <time.h>
-  /* Check that time_t can represent 2**63 - 1 correctly.
-     We can't simply define LARGE_TIME_T to be 9223372036854775807,
-     since some C++ compilers masquerading as C compilers
-     incorrectly reject 9223372036854775807.  */
-  #define LARGE_TIME_T (((time_t) 1 << 31 << 31) - 1 + ((time_t) 1 << 31 << 31))
-  int verify_time_t_range[(LARGE_TIME_T % 2147483629 == 721
-                           && LARGE_TIME_T % 2147483647 == 1)
+  /* Check that time_t can represent 2**32 - 1 correctly.  */
+  #define LARGE_TIME_T \\
+    ((time_t) (((time_t) 1 << 30) - 1 + 3 * ((time_t) 1 << 30)))
+  int verify_time_t_range[(LARGE_TIME_T / 65537 == 65535
+                           && LARGE_TIME_T % 65537 == 0)
                           ? 1 : -1];
 
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  gl_cv_type_time_t_bits_macro=yes
-else $as_nop
-  gl_cv_type_time_t_bits_macro=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_time_t_bits_macro" >&5
-printf "%s\n" "$gl_cv_type_time_t_bits_macro" >&6; }
-    if test "$gl_cv_type_time_t_bits_macro" = yes; then
-
-printf "%s\n" "#define _TIME_BITS 64" >>confdefs.h
-
-
-printf "%s\n" "#define _FILE_OFFSET_BITS 64" >>confdefs.h
-
-      gl_cv_type_time_t_64=yes
-    fi
-  fi
-  if test $gl_cv_type_time_t_64 = no; then
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifdef _USE_32BIT_TIME_T
-             int ok;
-           #else
-             error fail
-           #endif
+int
+main (void)
+{
 
+  ;
+  return 0;
+}
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "This package requires a 64-bit 'time_t' type. Remove _USE_32BIT_TIME_T from the compiler flags.
-See \`config.log' for more details" "$LINENO" 5; }
-else $as_nop
-  # If not cross-compiling and  says we should check,
-       # and 'touch' works with a large timestamp, then evidently 64-bit time_t
-       # is desired and supported, so fail and ask the builder to fix the
-       # problem.  Otherwise, just warn the builder.
-
-       if test "$gl_warned_about_64_bit_time_t" != yes; then
-         { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: This package requires a 64-bit 'time_t' type if there is any way to access timestamps outside the year range 1901-2038 on your platform. Perhaps you should configure with 'CPPFLAGS=\"-m64\" LDFLAGS=\"-m64\"'?" >&5
-printf "%s\n" "$as_me: WARNING: This package requires a 64-bit 'time_t' type if there is any way to access timestamps outside the year range 1901-2038 on your platform. Perhaps you should configure with 'CPPFLAGS=\"-m64\" LDFLAGS=\"-m64\"'?" >&2;}
-         gl_warned_about_64_bit_time_t=yes
-       fi
-
+  ac_cv_sys_year2038_opts="$ac_opt"
+      ac_opt_found=yes
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-  fi
-fi
- ;; #(
-  *) :
-     ;;
+    test $ac_opt_found = no || break
+  done
+  CPPFLAGS="$ac_save_CPPFLAGS"
+  test $ac_opt_found = yes || ac_cv_sys_year2038_opts="support not detected" ;;
 esac
 fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_year2038_opts" >&5
+printf "%s\n" "$ac_cv_sys_year2038_opts" >&6; }
 
+ac_have_year2038=yes
+case $ac_cv_sys_year2038_opts in #(
+  "none needed") :
+     ;; #(
+  "support not detected") :
+    ac_have_year2038=no ;; #(
+  "-D_TIME_BITS=64") :
 
-
-  case "$host_os" in
-    mingw*)
+printf "%s\n" "#define _TIME_BITS 64" >>confdefs.h
+ ;; #(
+  "-D__MINGW_USE_VC2005_COMPAT") :
 
 printf "%s\n" "#define __MINGW_USE_VC2005_COMPAT 1" >>confdefs.h
+ ;; #(
+  "-U_USE_32_BIT_TIME_T"*) :
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+as_fn_error $? "the 'time_t' type is currently forced to be 32-bit. It
+will stop working after mid-January 2038. Remove
+_USE_32BIT_TIME_T from the compiler flags.
+See 'config.log' for more details" "$LINENO" 5; } ;; #(
+  *) :
+    as_fn_error $? "internal error: bad value for \$ac_cv_sys_year2038_opts" "$LINENO" 5 ;;
+esac
 
-      ;;
-  esac
+fi
 
+fi
 
 
 
@@ -7542,8 +7741,8 @@ printf "%s\n" "#define __MINGW_USE_VC2005_COMPAT 1" >>confdefs.h
 if test ${enable_threads+y}
 then :
   enableval=$enable_threads; gl_use_threads=$enableval
-else $as_nop
-  if test -n "$gl_use_threads_default"; then
+else case e in #(
+  e) if test -n "$gl_use_threads_default"; then
        gl_use_threads="$gl_use_threads_default"
      else
        case "$host_os" in
@@ -7564,7 +7763,8 @@ else $as_nop
          *)    gl_use_threads=yes ;;
        esac
      fi
-
+     ;;
+esac
 fi
 
   if test "$gl_use_threads" = yes \
@@ -7598,16 +7798,44 @@ fi
 
   fi
 
+if test "$enable_year2038,$ac_have_year2038,$cross_compiling" = yes,no,no
+then :
+  # If we're not cross compiling and 'touch' works with a large
+  # timestamp, then we can presume the system supports wider time_t
+  # *somehow* and we just weren't able to detect it.  One common
+  # case that we deliberately *don't* probe for is a system that
+  # supports both 32- and 64-bit ABIs but only the 64-bit ABI offers
+  # wide time_t.  (It would be inappropriate for us to override an
+  # intentional use of -m32.)  Error out, demanding use of
+  # --disable-year2038 if this is intentional.
+  if TZ=UTC0 touch -t 210602070628.15 conftest.time 2>/dev/null
+then :
+  case `TZ=UTC0 LC_ALL=C ls -l conftest.time 2>/dev/null` in #(
+  *'Feb  7  2106'* | *'Feb  7 17:10'*) :
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+as_fn_error $? "this system appears to support timestamps after
+mid-January 2038, but no mechanism for enabling wide
+'time_t' was detected. Did you mean to build a 64-bit
+binary? (E.g., 'CC=\"${CC} -m64\"'.) To proceed with
+32-bit time_t, configure with '--disable-year2038'.
+See 'config.log' for more details" "$LINENO" 5; } ;; #(
+  *) :
+     ;;
+esac
+fi
+fi
 
 
   # Pre-early section.
 
 
 
-
   # Code from module absolute-header:
   # Code from module accept:
   # Code from module accept-tests:
+  # Code from module alignasof:
+  # Code from module alignasof-tests:
   # Code from module alloca:
   # Code from module alloca-opt:
   # Code from module alloca-opt-tests:
@@ -7619,6 +7847,8 @@ fi
   # Code from module argmatch-tests:
   # Code from module arpa_inet:
   # Code from module arpa_inet-tests:
+  # Code from module assert-h:
+  # Code from module assert-h-tests:
   # Code from module assure:
   # Code from module atoll:
   # Code from module attribute:
@@ -7639,6 +7869,8 @@ fi
   # Code from module c-strcase:
   # Code from module c-strcase-tests:
   # Code from module c-strcaseeq:
+  # Code from module c-strcasestr:
+  # Code from module c-strcasestr-tests:
   # Code from module c99:
   # Code from module calloc-gnu:
   # Code from module calloc-gnu-tests:
@@ -7663,13 +7895,13 @@ fi
   # Code from module dtotimespec:
   # Code from module dup2:
   # Code from module dup2-tests:
-  # Code from module dynarray:
-  # Code from module dynarray-tests:
   # Code from module environ:
   # Code from module environ-tests:
   # Code from module errno:
   # Code from module errno-tests:
   # Code from module error:
+  # Code from module error-h:
+  # Code from module error-tests:
   # Code from module exclude:
   # Code from module exclude-tests:
   # Code from module exitfail:
@@ -7680,7 +7912,6 @@ fi
   # Code from module fcntl-h-tests:
   # Code from module fcntl-tests:
   # Code from module fd-hook:
-  # Code from module fdl:
   # Code from module fdopen:
   # Code from module fdopen-tests:
   # Code from module fgetc-tests:
@@ -7715,6 +7946,7 @@ fi
   # Code from module ftruncate:
   # Code from module ftruncate-tests:
   # Code from module fwrite-tests:
+  # Code from module gen-header:
   # Code from module gendocs:
   # Code from module getcwd-lgpl:
   # Code from module getcwd-lgpl-tests:
@@ -7735,6 +7967,8 @@ fi
   # Code from module gettimeofday-tests:
   # Code from module git-version-gen:
   # Code from module gitlog-to-changelog:
+  # Code from module glibc-internal/dynarray:
+  # Code from module glibc-internal/dynarray-tests:
   # Code from module gnu-make:
   # Code from module gnu-web-doc-update:
   # Code from module gnumakefile:
@@ -7781,7 +8015,7 @@ fi
   # Code from module langinfo-tests:
   # Code from module largefile:
 
-
+  # Code from module largefile-tests:
   # Code from module libc-config:
   # Code from module limits-h:
   # Code from module limits-h-tests:
@@ -7839,16 +8073,21 @@ fi
   # Code from module nocrash:
   # Code from module nstrftime:
   # Code from module nstrftime-tests:
+  # Code from module nullptr:
+  # Code from module nullptr-tests:
   # Code from module open:
   # Code from module open-tests:
   # Code from module pathmax:
   # Code from module pathmax-tests:
+  # Code from module perl:
   # Code from module perror:
   # Code from module perror-tests:
   # Code from module pipe-posix:
   # Code from module pipe-posix-tests:
   # Code from module progname:
   # Code from module propername:
+  # Code from module pselect:
+  # Code from module pselect-tests:
   # Code from module pthread-h:
 
 
@@ -7911,8 +8150,6 @@ fi
   # Code from module setsockopt-tests:
   # Code from module sh-quote:
   # Code from module sh-quote-tests:
-  # Code from module sigaction:
-  # Code from module sigaction-tests:
   # Code from module signal:
   # Code from module signal-h:
   # Code from module signal-h-tests:
@@ -7941,8 +8178,6 @@ fi
   # Code from module stat-time:
   # Code from module stat-time-tests:
   # Code from module std-gnu11:
-  # Code from module stdalign:
-  # Code from module stdalign-tests:
   # Code from module stdarg:
 
 
@@ -7950,15 +8185,23 @@ fi
   # Code from module stdarg-tests:
   # Code from module stdbool:
   # Code from module stdbool-tests:
+  # Code from module stdckdint:
+  # Code from module stdckdint-tests:
   # Code from module stddef:
   # Code from module stddef-tests:
   # Code from module stdint:
   # Code from module stdint-tests:
   # Code from module stdio:
+
+
+  printf "%s\n" "#define __USE_MINGW_ANSI_STDIO 1" >>confdefs.h
+
+
   # Code from module stdio-tests:
   # Code from module stdlib:
   # Code from module stdlib-tests:
   # Code from module stdopen:
+  # Code from module stpcpy:
   # Code from module strcase:
   # Code from module streq:
   # Code from module strerror:
@@ -8011,6 +8254,8 @@ fi
 
 
   # Code from module time:
+  # Code from module time-h:
+  # Code from module time-h-tests:
   # Code from module time-tests:
   # Code from module time_r:
   # Code from module time_rz:
@@ -8020,6 +8265,7 @@ fi
   # Code from module timespec-sub:
   # Code from module timespec-tests:
   # Code from module trim:
+  # Code from module trim-tests:
   # Code from module tzset:
   # Code from module unistd:
   # Code from module unistd-tests:
@@ -8039,10 +8285,9 @@ fi
   # Code from module update-copyright:
   # Code from module update-copyright-tests:
   # Code from module useless-if-before-free:
+  # Code from module vararrays:
   # Code from module vasnprintf:
   # Code from module vasnprintf-tests:
-  # Code from module vasprintf:
-  # Code from module vasprintf-tests:
   # Code from module vc-list-files:
   # Code from module vc-list-files-tests:
   # Code from module verify:
@@ -8085,8 +8330,12 @@ fi
   # Code from module xstrtol:
   # Code from module xstrtol-error:
   # Code from module xstrtol-tests:
-  # Code from module xvasprintf:
-  # Code from module xvasprintf-tests:
+  # Code from module year2038:
+
+  # Code from module year2038-tests:
+
+
+
 
 
 
@@ -8106,8 +8355,9 @@ printf "%s\n" "$as_me: WARNING: invalid argument supplied to --enable-cross-gues
        enableval=conservative
      fi
      gl_cross_guesses="$enableval"
-else $as_nop
-  gl_cross_guesses=conservative
+else case e in #(
+  e) gl_cross_guesses=conservative ;;
+esac
 fi
 
   if test $gl_cross_guesses = risky; then
@@ -8125,10 +8375,11 @@ ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
 if test "x$ac_cv_type_size_t" = xyes
 then :
 
-else $as_nop
-
+else case e in #(
+  e)
 printf "%s\n" "#define size_t unsigned int" >>confdefs.h
-
+ ;;
+esac
 fi
 
 # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
@@ -8138,8 +8389,8 @@ printf %s "checking for working alloca.h... " >&6; }
 if test ${ac_cv_working_alloca_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <alloca.h>
 int
@@ -8154,11 +8405,13 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   ac_cv_working_alloca_h=yes
-else $as_nop
-  ac_cv_working_alloca_h=no
+else case e in #(
+  e) ac_cv_working_alloca_h=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
-    conftest$ac_exeext conftest.$ac_ext
+    conftest$ac_exeext conftest.$ac_ext ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5
 printf "%s\n" "$ac_cv_working_alloca_h" >&6; }
@@ -8173,10 +8426,10 @@ printf %s "checking for alloca... " >&6; }
 if test ${ac_cv_func_alloca_works+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test $ac_cv_working_alloca_h = yes; then
-  ac_cv_func_alloca_works=yes
-else
+else case e in #(
+  e) ac_cv_func_alloca_works=$ac_cv_working_alloca_h
+if test "$ac_cv_func_alloca_works" != yes
+then :
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdlib.h>
@@ -8207,15 +8460,14 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   ac_cv_func_alloca_works=yes
-else $as_nop
-  ac_cv_func_alloca_works=no
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
+fi ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5
 printf "%s\n" "$ac_cv_func_alloca_works" >&6; }
-fi
 
 if test $ac_cv_func_alloca_works = yes; then
 
@@ -8241,12 +8493,12 @@ printf %s "checking stack direction for C alloca... " >&6; }
 if test ${ac_cv_c_stack_direction+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test "$cross_compiling" = yes
+else case e in #(
+  e) if test "$cross_compiling" = yes
 then :
   ac_cv_c_stack_direction=0
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $ac_includes_default
 int
@@ -8269,13 +8521,16 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   ac_cv_c_stack_direction=1
-else $as_nop
-  ac_cv_c_stack_direction=-1
+else case e in #(
+  e) ac_cv_c_stack_direction=-1 ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5
 printf "%s\n" "$ac_cv_c_stack_direction" >&6; }
@@ -8285,6 +8540,131 @@ printf "%s\n" "#define STACK_DIRECTION $ac_cv_c_stack_direction" >>confdefs.h
 fi
 
 
+
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the preprocessor supports include_next" >&5
+printf %s "checking whether the preprocessor supports include_next... " >&6; }
+if test ${gl_cv_have_include_next+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) rm -rf conftestd1a conftestd1b conftestd2
+     mkdir conftestd1a conftestd1b conftestd2
+                                                  cat <<EOF > conftestd1a/conftest.h
+#define DEFINED_IN_CONFTESTD1
+#include_next <conftest.h>
+#ifdef DEFINED_IN_CONFTESTD2
+int foo;
+#else
+#error "include_next doesn't work"
+#endif
+EOF
+     cat <<EOF > conftestd1b/conftest.h
+#define DEFINED_IN_CONFTESTD1
+#include <stdio.h>
+#include_next <conftest.h>
+#ifdef DEFINED_IN_CONFTESTD2
+int foo;
+#else
+#error "include_next doesn't work"
+#endif
+EOF
+     cat <<EOF > conftestd2/conftest.h
+#ifndef DEFINED_IN_CONFTESTD1
+#error "include_next test doesn't work"
+#endif
+#define DEFINED_IN_CONFTESTD2
+EOF
+     gl_save_CPPFLAGS="$CPPFLAGS"
+     CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1b -Iconftestd2"
+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <conftest.h>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  gl_cv_have_include_next=yes
+else case e in #(
+  e) CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1a -Iconftestd2"
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <conftest.h>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  gl_cv_have_include_next=buggy
+else case e in #(
+  e) gl_cv_have_include_next=no ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+        ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+     CPPFLAGS="$gl_save_CPPFLAGS"
+     rm -rf conftestd1a conftestd1b conftestd2
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_include_next" >&5
+printf "%s\n" "$gl_cv_have_include_next" >&6; }
+  PRAGMA_SYSTEM_HEADER=
+  if test $gl_cv_have_include_next = yes; then
+    INCLUDE_NEXT=include_next
+    INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next
+    if test -n "$GCC"; then
+      PRAGMA_SYSTEM_HEADER='#pragma GCC system_header'
+    fi
+  else
+    if test $gl_cv_have_include_next = buggy; then
+      INCLUDE_NEXT=include
+      INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next
+    else
+      INCLUDE_NEXT=include
+      INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include
+    fi
+  fi
+
+
+
+
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether source code line length is unlimited" >&5
+printf %s "checking whether source code line length is unlimited... " >&6; }
+if test ${gl_cv_source_line_length_unlimited+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#ifdef __TANDEM
+choke me
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP_TRADITIONAL "choke me" >/dev/null 2>&1
+then :
+  gl_cv_source_line_length_unlimited=no
+else case e in #(
+  e) gl_cv_source_line_length_unlimited=yes ;;
+esac
+fi
+rm -rf conftest*
+
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_source_line_length_unlimited" >&5
+printf "%s\n" "$gl_cv_source_line_length_unlimited" >&6; }
+  if test $gl_cv_source_line_length_unlimited = no; then
+    PRAGMA_COLUMNS="#pragma COLUMNS 10000"
+  else
+    PRAGMA_COLUMNS=
+  fi
+
+
+
     HAVE_BTOWC=1;
   HAVE_MBSINIT=1;
   HAVE_MBRTOWC=1;
@@ -8341,7 +8721,12 @@ fi
   REPLACE_WCWIDTH=0;
   REPLACE_WCSWIDTH=0;
   REPLACE_WCSFTIME=0;
+  REPLACE_WCSCMP=0;
+  REPLACE_WCSNCMP=0;
+  REPLACE_WCSSTR=0;
   REPLACE_WCSTOK=0;
+  REPLACE_WMEMCMP=0;
+  REPLACE_WMEMPCPY=0;
 
 
 
@@ -8350,8 +8735,8 @@ printf %s "checking whether <wchar.h> uses 'inline' correctly... " >&6; }
 if test ${gl_cv_header_wchar_h_correct_inline+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  gl_cv_header_wchar_h_correct_inline=yes
+else case e in #(
+  e) gl_cv_header_wchar_h_correct_inline=yes
      case "$host_os" in
        *-gnu* | gnu*)
          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -8399,7 +8784,8 @@ _ACEOF
          rm -f conftest12.c conftest12.$ac_objext conftest$ac_exeext
          ;;
      esac
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_wchar_h_correct_inline" >&5
 printf "%s\n" "$gl_cv_header_wchar_h_correct_inline" >&6; }
@@ -8434,8 +8820,8 @@ printf %s "checking for nl_langinfo and CODESET... " >&6; }
 if test ${am_cv_langinfo_codeset+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <langinfo.h>
 int
@@ -8449,12 +8835,14 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   am_cv_langinfo_codeset=yes
-else $as_nop
-  am_cv_langinfo_codeset=no
+else case e in #(
+  e) am_cv_langinfo_codeset=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_langinfo_codeset" >&5
 printf "%s\n" "$am_cv_langinfo_codeset" >&6; }
@@ -8472,8 +8860,8 @@ printf %s "checking for a traditional french locale... " >&6; }
 if test ${gt_cv_locale_fr+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -8600,7 +8988,8 @@ _ACEOF
       esac
     fi
     rm -fr conftest*
-
+   ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5
 printf "%s\n" "$gt_cv_locale_fr" >&6; }
@@ -8609,6 +8998,7 @@ printf "%s\n" "$gt_cv_locale_fr" >&6; }
 
 
 
+
   GL_GNULIB_BTOWC=0
 
 
@@ -8778,215 +9168,60 @@ printf "%s\n" "$gt_cv_locale_fr" >&6; }
 
 
 
-    HAVE__EXIT=1;
-  HAVE_ALIGNED_ALLOC=1;
-  HAVE_ATOLL=1;
-  HAVE_CANONICALIZE_FILE_NAME=1;
-  HAVE_DECL_ECVT=1;
-  HAVE_DECL_FCVT=1;
-  HAVE_DECL_GCVT=1;
-  HAVE_DECL_GETLOADAVG=1;
-  HAVE_GETSUBOPT=1;
-  HAVE_GRANTPT=1;
-  HAVE_INITSTATE=1;
-  HAVE_DECL_INITSTATE=1;
-  HAVE_MBTOWC=1;
-  HAVE_MKDTEMP=1;
-  HAVE_MKOSTEMP=1;
-  HAVE_MKOSTEMPS=1;
-  HAVE_MKSTEMP=1;
-  HAVE_MKSTEMPS=1;
-  HAVE_POSIX_MEMALIGN=1;
-  HAVE_POSIX_OPENPT=1;
-  HAVE_PTSNAME=1;
-  HAVE_PTSNAME_R=1;
-  HAVE_QSORT_R=1;
-  HAVE_RANDOM=1;
-  HAVE_RANDOM_H=1;
-  HAVE_RANDOM_R=1;
-  HAVE_REALLOCARRAY=1;
-  HAVE_REALPATH=1;
-  HAVE_RPMATCH=1;
-  HAVE_SECURE_GETENV=1;
-  HAVE_SETENV=1;
-  HAVE_DECL_SETENV=1;
-  HAVE_SETSTATE=1;
-  HAVE_DECL_SETSTATE=1;
-  HAVE_STRTOD=1;
-  HAVE_STRTOL=1;
-  HAVE_STRTOLD=1;
-  HAVE_STRTOLL=1;
-  HAVE_STRTOUL=1;
-  HAVE_STRTOULL=1;
-  HAVE_STRUCT_RANDOM_DATA=1;
-  HAVE_SYS_LOADAVG_H=0;
-  HAVE_UNLOCKPT=1;
-  HAVE_DECL_UNSETENV=1;
-  REPLACE_ALIGNED_ALLOC=0;
-  REPLACE_CALLOC=0;
-  REPLACE_CANONICALIZE_FILE_NAME=0;
-  REPLACE_FREE=0;
-  REPLACE_INITSTATE=0;
-  REPLACE_MALLOC=0;
-  REPLACE_MBTOWC=0;
-  REPLACE_MKSTEMP=0;
-  REPLACE_POSIX_MEMALIGN=0;
-  REPLACE_PTSNAME=0;
-  REPLACE_PTSNAME_R=0;
-  REPLACE_PUTENV=0;
-  REPLACE_QSORT_R=0;
-  REPLACE_RANDOM=0;
-  REPLACE_RANDOM_R=0;
-  REPLACE_REALLOC=0;
-  REPLACE_REALLOCARRAY=0;
-  REPLACE_REALPATH=0;
-  REPLACE_SETENV=0;
-  REPLACE_SETSTATE=0;
-  REPLACE_STRTOD=0;
-  REPLACE_STRTOL=0;
-  REPLACE_STRTOLD=0;
-  REPLACE_STRTOLL=0;
-  REPLACE_STRTOUL=0;
-  REPLACE_STRTOULL=0;
-  REPLACE_UNSETENV=0;
-  REPLACE_WCTOMB=0;
-
-
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether malloc is ptrdiff_t safe" >&5
-printf %s "checking whether malloc is ptrdiff_t safe... " >&6; }
-if test ${gl_cv_malloc_ptrdiff+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdint.h>
-
-int
-main (void)
-{
-/* 64-bit ptrdiff_t is so wide that no practical platform
-               can exceed it.  */
-            #define WIDE_PTRDIFF (PTRDIFF_MAX >> 31 >> 31 != 0)
-
-            /* On rare machines where size_t fits in ptrdiff_t there
-               is no problem.  */
-            #define NARROW_SIZE (SIZE_MAX <= PTRDIFF_MAX)
-
-            /* glibc 2.30 and later malloc refuses to exceed ptrdiff_t
-               bounds even on 32-bit platforms.  We don't know which
-               non-glibc systems are safe.  */
-            #define KNOWN_SAFE (2 < __GLIBC__ + (30 <= __GLIBC_MINOR__))
-
-            #if WIDE_PTRDIFF || NARROW_SIZE || KNOWN_SAFE
-              return 0;
-            #else
-              #error "malloc might not be ptrdiff_t safe"
-              syntax error
-            #endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  gl_cv_malloc_ptrdiff=yes
-else $as_nop
-  gl_cv_malloc_ptrdiff=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_malloc_ptrdiff" >&5
-printf "%s\n" "$gl_cv_malloc_ptrdiff" >&6; }
-
-
-
-
-  test "$gl_cv_malloc_ptrdiff" = yes || REPLACE_MALLOC=1
-
-
-
-  { 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; }
-if test ${gl_cv_func_malloc_posix+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-
-                                    case "$host_os" in
-        mingw*)
-          gl_cv_func_malloc_posix=no ;;
-        irix* | solaris*)
-
-          gl_cv_func_malloc_posix=no ;;
-        *)
-          gl_cv_func_malloc_posix=yes ;;
-      esac
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_malloc_posix" >&5
-printf "%s\n" "$gl_cv_func_malloc_posix" >&6; }
-
 
+  GL_GNULIB__EXIT=0
 
 
 
-  if test "$gl_cv_func_malloc_posix" = yes; then
+  GL_GNULIB_ALIGNED_ALLOC=0
 
-printf "%s\n" "#define HAVE_MALLOC_POSIX 1" >>confdefs.h
 
-  else
-    REPLACE_MALLOC=1
-  fi
 
+  GL_GNULIB_ATOLL=0
 
 
 
-  if test $REPLACE_MALLOC = 1; then
-    REPLACE_CALLOC=1
-  fi
+  GL_GNULIB_CALLOC_GNU=0
 
 
 
-  GL_GNULIB__EXIT=0
+  GL_GNULIB_CALLOC_POSIX=0
 
 
 
-  GL_GNULIB_ALIGNED_ALLOC=0
+  GL_GNULIB_CANONICALIZE_FILE_NAME=0
 
 
 
-  GL_GNULIB_ATOLL=0
+  GL_GNULIB_FREE_POSIX=0
 
 
 
-  GL_GNULIB_CALLOC_POSIX=0
+  GL_GNULIB_GETLOADAVG=0
 
 
 
-  GL_GNULIB_CANONICALIZE_FILE_NAME=0
+  GL_GNULIB_GETPROGNAME=0
 
 
 
-  GL_GNULIB_FREE_POSIX=0
+  GL_GNULIB_GETSUBOPT=0
 
 
 
-  GL_GNULIB_GETLOADAVG=0
+  GL_GNULIB_GRANTPT=0
 
 
 
-  GL_GNULIB_GETSUBOPT=0
+  GL_GNULIB_MALLOC_GNU=0
 
 
 
-  GL_GNULIB_GRANTPT=0
+  GL_GNULIB_MALLOC_POSIX=0
 
 
 
-  GL_GNULIB_MALLOC_POSIX=0
+  GL_GNULIB_MBSTOWCS=0
 
 
 
@@ -9050,6 +9285,10 @@ printf "%s\n" "#define HAVE_MALLOC_POSIX 1" >>confdefs.h
 
 
 
+  GL_GNULIB_REALLOC_GNU=0
+
+
+
   GL_GNULIB_REALLOC_POSIX=0
 
 
@@ -9130,845 +9369,2328 @@ printf "%s\n" "#define HAVE_MALLOC_POSIX 1" >>confdefs.h
 
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C/C++ restrict keyword" >&5
-printf %s "checking for C/C++ restrict keyword... " >&6; }
-if test ${ac_cv_c_restrict+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  ac_cv_c_restrict=no
-   # Put '__restrict__' first, to avoid problems with glibc and non-GCC; see:
-   # https://lists.gnu.org/archive/html/bug-autoconf/2016-02/msg00006.html
-   # Put 'restrict' last, because C++ lacks it.
-   for ac_kw in __restrict__ __restrict _Restrict restrict; do
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-typedef int *int_ptr;
-          int foo (int_ptr $ac_kw ip) { return ip[0]; }
-          int bar (int [$ac_kw]); /* Catch GCC bug 14050.  */
-          int bar (int ip[$ac_kw]) { return ip[0]; }
-
-int
-main (void)
-{
-int s[1];
-          int *$ac_kw t = s;
-          t[0] = 0;
-          return foo (t) + bar (t);
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  ac_cv_c_restrict=$ac_kw
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-     test "$ac_cv_c_restrict" != no && break
-   done
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_restrict" >&5
-printf "%s\n" "$ac_cv_c_restrict" >&6; }
-
- case $ac_cv_c_restrict in
-   restrict) ;;
-   no) printf "%s\n" "#define restrict /**/" >>confdefs.h
- ;;
-   *)  printf "%s\n" "#define restrict $ac_cv_c_restrict" >>confdefs.h
- ;;
- esac
-
-
-
-    HAVE_CHOWN=1;
-  HAVE_COPY_FILE_RANGE=1;
-  HAVE_DUP3=1;
-  HAVE_EUIDACCESS=1;
-  HAVE_EXECVPE=1;
-  HAVE_FACCESSAT=1;
-  HAVE_FCHDIR=1;
-  HAVE_FCHOWNAT=1;
-  HAVE_FDATASYNC=1;
-  HAVE_FSYNC=1;
-  HAVE_FTRUNCATE=1;
-  HAVE_GETDTABLESIZE=1;
-  HAVE_GETENTROPY=1;
-  HAVE_GETGROUPS=1;
-  HAVE_GETHOSTNAME=1;
-  HAVE_GETLOGIN=1;
-  HAVE_GETPAGESIZE=1;
-  HAVE_GETPASS=1;
-  HAVE_GROUP_MEMBER=1;
-  HAVE_LCHOWN=1;
-  HAVE_LINK=1;
-  HAVE_LINKAT=1;
-  HAVE_PIPE=1;
-  HAVE_PIPE2=1;
-  HAVE_PREAD=1;
-  HAVE_PWRITE=1;
-  HAVE_READLINK=1;
-  HAVE_READLINKAT=1;
-  HAVE_SETHOSTNAME=1;
-  HAVE_SLEEP=1;
-  HAVE_SYMLINK=1;
-  HAVE_SYMLINKAT=1;
-  HAVE_UNLINKAT=1;
-  HAVE_USLEEP=1;
-  HAVE_DECL_ENVIRON=1;
-  HAVE_DECL_EXECVPE=1;
-  HAVE_DECL_FCHDIR=1;
-  HAVE_DECL_FDATASYNC=1;
-  HAVE_DECL_GETDOMAINNAME=1;
-  HAVE_DECL_GETLOGIN=1;
-  HAVE_DECL_GETLOGIN_R=1;
-  HAVE_DECL_GETPAGESIZE=1;
-  HAVE_DECL_GETUSERSHELL=1;
-  HAVE_DECL_SETHOSTNAME=1;
-  HAVE_DECL_TRUNCATE=1;
-  HAVE_DECL_TTYNAME_R=1;
-  HAVE_OS_H=0;
-  HAVE_SYS_PARAM_H=0;
-  REPLACE_ACCESS=0;
-  REPLACE_CHOWN=0;
-  REPLACE_CLOSE=0;
-  REPLACE_DUP=0;
-  REPLACE_DUP2=0;
-  REPLACE_EXECL=0;
-  REPLACE_EXECLE=0;
-  REPLACE_EXECLP=0;
-  REPLACE_EXECV=0;
-  REPLACE_EXECVE=0;
-  REPLACE_EXECVP=0;
-  REPLACE_EXECVPE=0;
-  REPLACE_FACCESSAT=0;
-  REPLACE_FCHOWNAT=0;
-  REPLACE_FTRUNCATE=0;
-  REPLACE_GETCWD=0;
-  REPLACE_GETDOMAINNAME=0;
-  REPLACE_GETDTABLESIZE=0;
-  REPLACE_GETLOGIN_R=0;
-  REPLACE_GETGROUPS=0;
-  REPLACE_GETPAGESIZE=0;
-  REPLACE_GETPASS=0;
-  REPLACE_ISATTY=0;
-  REPLACE_LCHOWN=0;
-  REPLACE_LINK=0;
-  REPLACE_LINKAT=0;
-  REPLACE_LSEEK=0;
-  REPLACE_PREAD=0;
-  REPLACE_PWRITE=0;
-  REPLACE_READ=0;
-  REPLACE_READLINK=0;
-  REPLACE_READLINKAT=0;
-  REPLACE_RMDIR=0;
-  REPLACE_SLEEP=0;
-  REPLACE_SYMLINK=0;
-  REPLACE_SYMLINKAT=0;
-  REPLACE_TRUNCATE=0;
-  REPLACE_TTYNAME_R=0;
-  REPLACE_UNLINK=0;
-  REPLACE_UNLINKAT=0;
-  REPLACE_USLEEP=0;
-  REPLACE_WRITE=0;
-  UNISTD_H_HAVE_SYS_RANDOM_H=0;
-  UNISTD_H_HAVE_WINSOCK2_H=0;
-  UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0;
-
-
-
-
 
-  if test $ac_cv_func__set_invalid_parameter_handler = yes; then
-    HAVE_MSVC_INVALID_PARAMETER_HANDLER=1
+    HAVE__EXIT=1;
+  HAVE_ALIGNED_ALLOC=1;
+  HAVE_ATOLL=1;
+  HAVE_CANONICALIZE_FILE_NAME=1;
+  HAVE_DECL_ECVT=1;
+  HAVE_DECL_FCVT=1;
+  HAVE_DECL_GCVT=1;
+  HAVE_DECL_GETLOADAVG=1;
+  HAVE_DECL_PROGRAM_INVOCATION_NAME=1;
+  HAVE_GETPROGNAME=1;
+  HAVE_GETSUBOPT=1;
+  HAVE_GRANTPT=1;
+  HAVE_INITSTATE=1;
+  HAVE_DECL_INITSTATE=1;
+  HAVE_MBTOWC=1;
+  HAVE_MKDTEMP=1;
+  HAVE_MKOSTEMP=1;
+  HAVE_MKOSTEMPS=1;
+  HAVE_MKSTEMP=1;
+  HAVE_MKSTEMPS=1;
+  HAVE_POSIX_MEMALIGN=1;
+  HAVE_POSIX_OPENPT=1;
+  HAVE_PTSNAME=1;
+  HAVE_PTSNAME_R=1;
+  HAVE_QSORT_R=1;
+  HAVE_RANDOM=1;
+  HAVE_RANDOM_H=1;
+  HAVE_RANDOM_R=1;
+  HAVE_REALLOCARRAY=1;
+  HAVE_REALPATH=1;
+  HAVE_RPMATCH=1;
+  HAVE_SECURE_GETENV=1;
+  HAVE_SETENV=1;
+  HAVE_DECL_SETENV=1;
+  HAVE_SETSTATE=1;
+  HAVE_DECL_SETSTATE=1;
+  HAVE_STRTOD=1;
+  HAVE_STRTOL=1;
+  HAVE_STRTOLD=1;
+  HAVE_STRTOLL=1;
+  HAVE_STRTOUL=1;
+  HAVE_STRTOULL=1;
+  HAVE_STRUCT_RANDOM_DATA=1;
+  HAVE_SYS_LOADAVG_H=0;
+  HAVE_UNLOCKPT=1;
+  HAVE_DECL_UNSETENV=1;
+  REPLACE__EXIT=0;
+  REPLACE_ALIGNED_ALLOC=0;
+  REPLACE_CALLOC_FOR_CALLOC_GNU=0;
+  REPLACE_CALLOC_FOR_CALLOC_POSIX=0;
+  REPLACE_CANONICALIZE_FILE_NAME=0;
+  REPLACE_FREE=0;
+  REPLACE_GETLOADAVG=0;
+  REPLACE_GETPROGNAME=0;
+  REPLACE_GETSUBOPT=0;
+  REPLACE_INITSTATE=0;
+  REPLACE_MALLOC_FOR_MALLOC_GNU=0;
+  REPLACE_MALLOC_FOR_MALLOC_POSIX=0;
+  REPLACE_MB_CUR_MAX=0;
+  REPLACE_MBSTOWCS=0;
+  REPLACE_MBTOWC=0;
+  REPLACE_MKOSTEMP=0;
+  REPLACE_MKOSTEMPS=0;
+  REPLACE_MKSTEMP=0;
+  REPLACE_POSIX_MEMALIGN=0;
+  REPLACE_POSIX_OPENPT=0;
+  REPLACE_PTSNAME=0;
+  REPLACE_PTSNAME_R=0;
+  REPLACE_PUTENV=0;
+  REPLACE_QSORT_R=0;
+  REPLACE_RANDOM=0;
+  REPLACE_RANDOM_R=0;
+  REPLACE_REALLOC_FOR_REALLOC_GNU=0;
+  REPLACE_REALLOC_FOR_REALLOC_POSIX=0;
+  REPLACE_REALLOCARRAY=0;
+  REPLACE_REALPATH=0;
+  REPLACE_SETENV=0;
+  REPLACE_SETSTATE=0;
+  REPLACE_STRTOD=0;
+  REPLACE_STRTOL=0;
+  REPLACE_STRTOLD=0;
+  REPLACE_STRTOLL=0;
+  REPLACE_STRTOUL=0;
+  REPLACE_STRTOULL=0;
+  REPLACE_UNSETENV=0;
+  REPLACE_WCTOMB=0;
 
-printf "%s\n" "#define HAVE_MSVC_INVALID_PARAMETER_HANDLER 1" >>confdefs.h
 
+      if test "X$prefix" = "XNONE"; then
+    acl_final_prefix="$ac_default_prefix"
   else
-    HAVE_MSVC_INVALID_PARAMETER_HANDLER=0
+    acl_final_prefix="$prefix"
   fi
+  if test "X$exec_prefix" = "XNONE"; then
+    acl_final_exec_prefix='${prefix}'
+  else
+    acl_final_exec_prefix="$exec_prefix"
+  fi
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
+  prefix="$acl_save_prefix"
 
 
 
-    SYS_IOCTL_H_HAVE_WINSOCK2_H=0;
-  SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0;
-
-  REPLACE_IOCTL=0;
-
-
-
+# Check whether --with-gnu-ld was given.
+if test ${with_gnu_ld+y}
+then :
+  withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
+else case e in #(
+  e) with_gnu_ld=no ;;
+esac
+fi
 
-  GL_GNULIB_ACCESS=0
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which
+  # contains only /bin. Note that ksh looks also at the FPATH variable,
+  # so we have to set that as well for the test.
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \
+    && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \
+           || PATH_SEPARATOR=';'
+       }
+fi
 
+if test -n "$LD"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld" >&5
+printf %s "checking for ld... " >&6; }
+elif test "$GCC" = yes; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
+printf %s "checking for ld used by $CC... " >&6; }
+elif test "$with_gnu_ld" = yes; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+printf %s "checking for GNU ld... " >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+printf %s "checking for non-GNU ld... " >&6; }
+fi
+if test -n "$LD"; then
+  # Let the user override the test with a path.
+  :
+else
+  if test ${acl_cv_path_LD+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+    acl_cv_path_LD= # Final result of this test
+    ac_prog=ld # Program to search in $PATH
+    if test "$GCC" = yes; then
+      # Check if gcc -print-prog-name=ld gives a path.
+      case $host in
+        *-*-mingw*)
+          # gcc leaves a trailing carriage return which upsets mingw
+          acl_output=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+        *)
+          acl_output=`($CC -print-prog-name=ld) 2>&5` ;;
+      esac
+      case $acl_output in
+        # Accept absolute paths.
+        [\\/]* | ?:[\\/]*)
+          re_direlt='/[^/][^/]*/\.\./'
+          # Canonicalize the pathname of ld
+          acl_output=`echo "$acl_output" | sed 's%\\\\%/%g'`
+          while echo "$acl_output" | grep "$re_direlt" > /dev/null 2>&1; do
+            acl_output=`echo $acl_output | sed "s%$re_direlt%/%"`
+          done
+          # Got the pathname. No search in PATH is needed.
+          acl_cv_path_LD="$acl_output"
+          ac_prog=
+          ;;
+        "")
+          # If it fails, then pretend we aren't using GCC.
+          ;;
+        *)
+          # If it is relative, then search for the first ld in PATH.
+          with_gnu_ld=unknown
+          ;;
+      esac
+    fi
+    if test -n "$ac_prog"; then
+      # Search for $ac_prog in $PATH.
+      acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+      for ac_dir in $PATH; do
+        IFS="$acl_save_ifs"
+        test -z "$ac_dir" && ac_dir=.
+        if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+          acl_cv_path_LD="$ac_dir/$ac_prog"
+          # Check to see if the program is GNU ld.  I'd rather use --version,
+          # but apparently some variants of GNU ld only accept -v.
+          # Break only if it was the GNU/non-GNU ld that we prefer.
+          case `"$acl_cv_path_LD" -v 2>&1 </dev/null` in
+            *GNU* | *'with BFD'*)
+              test "$with_gnu_ld" != no && break
+              ;;
+            *)
+              test "$with_gnu_ld" != yes && break
+              ;;
+          esac
+        fi
+      done
+      IFS="$acl_save_ifs"
+    fi
+    case $host in
+      *-*-aix*)
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#if defined __powerpc64__ || defined __LP64__
+                int ok;
+               #else
+                error fail
+               #endif
 
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  # The compiler produces 64-bit code. Add option '-b64' so that the
+           # linker groks 64-bit object files.
+           case "$acl_cv_path_LD " in
+             *" -b64 "*) ;;
+             *) acl_cv_path_LD="$acl_cv_path_LD -b64" ;;
+           esac
 
-  GL_GNULIB_CHDIR=0
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+        ;;
+      sparc64-*-netbsd*)
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#if defined __sparcv9 || defined __arch64__
+                int ok;
+               #else
+                error fail
+               #endif
 
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
 
+else case e in #(
+  e) # The compiler produces 32-bit code. Add option '-m elf32_sparc'
+           # so that the linker groks 32-bit object files.
+           case "$acl_cv_path_LD " in
+             *" -m elf32_sparc "*) ;;
+             *) acl_cv_path_LD="$acl_cv_path_LD -m elf32_sparc" ;;
+           esac
+           ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+        ;;
+    esac
+   ;;
+esac
+fi
 
-  GL_GNULIB_CHOWN=0
+  LD="$acl_cv_path_LD"
+fi
+if test -n "$LD"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+printf "%s\n" "$LD" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+  as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+printf %s "checking if the linker ($LD) is GNU ld... " >&6; }
+if test ${acl_cv_prog_gnu_ld+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) # I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  acl_cv_prog_gnu_ld=yes
+  ;;
+*)
+  acl_cv_prog_gnu_ld=no
+  ;;
+esac ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $acl_cv_prog_gnu_ld" >&5
+printf "%s\n" "$acl_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$acl_cv_prog_gnu_ld
 
 
 
-  GL_GNULIB_CLOSE=0
 
 
+                                                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5
+printf %s "checking for shared library run path origin... " >&6; }
+if test ${acl_cv_rpath+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+    CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
+    ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
+    . ./conftest.sh
+    rm -f ./conftest.sh
+    acl_cv_rpath=done
+   ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5
+printf "%s\n" "$acl_cv_rpath" >&6; }
+  wl="$acl_cv_wl"
+  acl_libext="$acl_cv_libext"
+  acl_shlibext="$acl_cv_shlibext"
+  acl_libname_spec="$acl_cv_libname_spec"
+  acl_library_names_spec="$acl_cv_library_names_spec"
+  acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
+  acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
+  acl_hardcode_direct="$acl_cv_hardcode_direct"
+  acl_hardcode_minus_L="$acl_cv_hardcode_minus_L"
+    # Check whether --enable-rpath was given.
+if test ${enable_rpath+y}
+then :
+  enableval=$enable_rpath; :
+else case e in #(
+  e) enable_rpath=yes ;;
+esac
+fi
 
-  GL_GNULIB_COPY_FILE_RANGE=0
 
 
 
-  GL_GNULIB_DUP=0
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking 32-bit host C ABI" >&5
+printf %s "checking 32-bit host C ABI... " >&6; }
+if test ${gl_cv_host_cpu_c_abi_32bit+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test -n "$gl_cv_host_cpu_c_abi"; then
+       case "$gl_cv_host_cpu_c_abi" in
+         i386 | x86_64-x32 | arm | armhf | arm64-ilp32 | hppa | ia64-ilp32 | mips | mipsn32 | powerpc | riscv*-ilp32* | s390 | sparc)
+           gl_cv_host_cpu_c_abi_32bit=yes ;;
+         x86_64 | alpha | arm64 | hppa64 | ia64 | mips64 | powerpc64 | powerpc64-elfv2 | riscv*-lp64* | s390x | sparc64 )
+           gl_cv_host_cpu_c_abi_32bit=no ;;
+         *)
+           gl_cv_host_cpu_c_abi_32bit=unknown ;;
+       esac
+     else
+       case "$host_cpu" in
 
+         # CPUs that only support a 32-bit ABI.
+         arc \
+         | bfin \
+         | cris* \
+         | csky \
+         | epiphany \
+         | ft32 \
+         | h8300 \
+         | m68k \
+         | microblaze | microblazeel \
+         | nds32 | nds32le | nds32be \
+         | nios2 | nios2eb | nios2el \
+         | or1k* \
+         | or32 \
+         | sh | sh1234 | sh1234elb \
+         | tic6x \
+         | xtensa* )
+           gl_cv_host_cpu_c_abi_32bit=yes
+           ;;
 
+         # CPUs that only support a 64-bit ABI.
+         alpha | alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] \
+         | mmix )
+           gl_cv_host_cpu_c_abi_32bit=no
+           ;;
 
-  GL_GNULIB_DUP2=0
+         i[34567]86 )
+           gl_cv_host_cpu_c_abi_32bit=yes
+           ;;
 
+         x86_64 )
+           # On x86_64 systems, the C compiler may be generating code in one of
+           # these ABIs:
+           # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64.
+           # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64
+           #   with native Windows (mingw, MSVC).
+           # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32.
+           # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386.
+           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#if (defined __x86_64__ || defined __amd64__ \
+                       || defined _M_X64 || defined _M_AMD64) \
+                      && !(defined __ILP32__ || defined _ILP32)
+                   int ok;
+                  #else
+                   error fail
+                  #endif
 
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  gl_cv_host_cpu_c_abi_32bit=no
+else case e in #(
+  e) gl_cv_host_cpu_c_abi_32bit=yes ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+           ;;
 
-  GL_GNULIB_DUP3=0
-
-
-
-  GL_GNULIB_ENVIRON=0
-
-
-
-  GL_GNULIB_EUIDACCESS=0
-
-
-
-  GL_GNULIB_EXECL=0
-
-
-
-  GL_GNULIB_EXECLE=0
-
-
-
-  GL_GNULIB_EXECLP=0
-
-
-
-  GL_GNULIB_EXECV=0
-
-
-
-  GL_GNULIB_EXECVE=0
-
-
-
-  GL_GNULIB_EXECVP=0
-
-
-
-  GL_GNULIB_EXECVPE=0
-
+         arm* | aarch64 )
+           # Assume arm with EABI.
+           # On arm64 systems, the C compiler may be generating code in one of
+           # these ABIs:
+           # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64.
+           # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32.
+           # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf.
+           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#if defined __aarch64__ && !(defined __ILP32__ || defined _ILP32)
+                   int ok;
+                  #else
+                   error fail
+                  #endif
 
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  gl_cv_host_cpu_c_abi_32bit=no
+else case e in #(
+  e) gl_cv_host_cpu_c_abi_32bit=yes ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+           ;;
 
-  GL_GNULIB_FACCESSAT=0
+         hppa1.0 | hppa1.1 | hppa2.0* | hppa64 )
+           # On hppa, the C compiler may be generating 32-bit code or 64-bit
+           # code. In the latter case, it defines _LP64 and __LP64__.
+           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef __LP64__
+                   int ok;
+                  #else
+                   error fail
+                  #endif
 
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  gl_cv_host_cpu_c_abi_32bit=no
+else case e in #(
+  e) gl_cv_host_cpu_c_abi_32bit=yes ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+           ;;
 
+         ia64* )
+           # On ia64 on HP-UX, the C compiler may be generating 64-bit code or
+           # 32-bit code. In the latter case, it defines _ILP32.
+           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef _ILP32
+                   int ok;
+                  #else
+                   error fail
+                  #endif
 
-  GL_GNULIB_FCHDIR=0
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  gl_cv_host_cpu_c_abi_32bit=yes
+else case e in #(
+  e) gl_cv_host_cpu_c_abi_32bit=no ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+           ;;
 
+         mips* )
+           # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this
+           # at 32.
+           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64)
+                   int ok;
+                  #else
+                   error fail
+                  #endif
 
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  gl_cv_host_cpu_c_abi_32bit=no
+else case e in #(
+  e) gl_cv_host_cpu_c_abi_32bit=yes ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+           ;;
 
-  GL_GNULIB_FCHOWNAT=0
+         powerpc* )
+           # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD.
+           # No need to distinguish them here; the caller may distinguish
+           # them based on the OS.
+           # On powerpc64 systems, the C compiler may still be generating
+           # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may
+           # be generating 64-bit code.
+           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#if defined __powerpc64__ || defined __LP64__
+                   int ok;
+                  #else
+                   error fail
+                  #endif
 
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  gl_cv_host_cpu_c_abi_32bit=no
+else case e in #(
+  e) gl_cv_host_cpu_c_abi_32bit=yes ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+           ;;
 
+         rs6000 )
+           gl_cv_host_cpu_c_abi_32bit=yes
+           ;;
 
-  GL_GNULIB_FDATASYNC=0
+         riscv32 | riscv64 )
+           # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d.
+           # Size of 'long' and 'void *':
+           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#if defined __LP64__
+                    int ok;
+                  #else
+                    error fail
+                  #endif
 
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  gl_cv_host_cpu_c_abi_32bit=no
+else case e in #(
+  e) gl_cv_host_cpu_c_abi_32bit=yes ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+           ;;
 
+         s390* )
+           # On s390x, the C compiler may be generating 64-bit (= s390x) code
+           # or 31-bit (= s390) code.
+           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#if defined __LP64__ || defined __s390x__
+                    int ok;
+                  #else
+                    error fail
+                  #endif
 
-  GL_GNULIB_FSYNC=0
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  gl_cv_host_cpu_c_abi_32bit=no
+else case e in #(
+  e) gl_cv_host_cpu_c_abi_32bit=yes ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+           ;;
 
+         sparc | sparc64 )
+           # UltraSPARCs running Linux have `uname -m` = "sparc64", but the
+           # C compiler still generates 32-bit code.
+           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#if defined __sparcv9 || defined __arch64__
+                   int ok;
+                  #else
+                   error fail
+                  #endif
 
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  gl_cv_host_cpu_c_abi_32bit=no
+else case e in #(
+  e) gl_cv_host_cpu_c_abi_32bit=yes ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+           ;;
 
-  GL_GNULIB_FTRUNCATE=0
+         *)
+           gl_cv_host_cpu_c_abi_32bit=unknown
+           ;;
+       esac
+     fi
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_host_cpu_c_abi_32bit" >&5
+printf "%s\n" "$gl_cv_host_cpu_c_abi_32bit" >&6; }
 
+  HOST_CPU_C_ABI_32BIT="$gl_cv_host_cpu_c_abi_32bit"
 
 
-  GL_GNULIB_GETCWD=0
 
 
 
-  GL_GNULIB_GETDOMAINNAME=0
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ELF binary format" >&5
+printf %s "checking for ELF binary format... " >&6; }
+if test ${gl_cv_elf+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#if defined __ELF__ || (defined __linux__ && defined __EDG__)
+        Extensible Linking Format
+        #endif
 
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP_TRADITIONAL "Extensible Linking Format" >/dev/null 2>&1
+then :
+  gl_cv_elf=yes
+else case e in #(
+  e) gl_cv_elf=no ;;
+esac
+fi
+rm -rf conftest*
 
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_elf" >&5
+printf "%s\n" "$gl_cv_elf" >&6; }
+  if test $gl_cv_elf = yes; then
+    # Extract the ELF class of a file (5th byte) in decimal.
+    # Cf. https://en.wikipedia.org/wiki/Executable_and_Linkable_Format#File_header
+    if od -A x < /dev/null >/dev/null 2>/dev/null; then
+      # Use POSIX od.
+      func_elfclass ()
+      {
+        od -A n -t d1 -j 4 -N 1
+      }
+    else
+      # Use BSD hexdump.
+      func_elfclass ()
+      {
+        dd bs=1 count=1 skip=4 2>/dev/null | hexdump -e '1/1 "%3d "'
+        echo
+      }
+    fi
+    # Use 'expr', not 'test', to compare the values of func_elfclass, because on
+    # Solaris 11 OpenIndiana and Solaris 11 OmniOS, the result is 001 or 002,
+    # not 1 or 2.
+    case $HOST_CPU_C_ABI_32BIT in
+      yes)
+        # 32-bit ABI.
+        acl_is_expected_elfclass ()
+        {
+          expr "`func_elfclass | sed -e 's/[   ]//g'`" = 1 > /dev/null
+        }
+        ;;
+      no)
+        # 64-bit ABI.
+        acl_is_expected_elfclass ()
+        {
+          expr "`func_elfclass | sed -e 's/[   ]//g'`" = 2 > /dev/null
+        }
+        ;;
+      *)
+        # Unknown.
+        acl_is_expected_elfclass ()
+        {
+          :
+        }
+        ;;
+    esac
+  else
+    acl_is_expected_elfclass ()
+    {
+      :
+    }
+  fi
 
-  GL_GNULIB_GETDTABLESIZE=0
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the common suffixes of directories in the library search path" >&5
+printf %s "checking for the common suffixes of directories in the library search path... " >&6; }
+if test ${acl_cv_libdirstems+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)           acl_libdirstem=lib
+     acl_libdirstem2=
+     acl_libdirstem3=
+     case "$host_os" in
+       solaris*)
+                                                      if test $HOST_CPU_C_ABI_32BIT = no; then
+           acl_libdirstem2=lib/64
+           case "$host_cpu" in
+             sparc*)        acl_libdirstem3=lib/sparcv9 ;;
+             i*86 | x86_64) acl_libdirstem3=lib/amd64 ;;
+           esac
+         fi
+         ;;
+       *)
+                                                                                 searchpath=`(LC_ALL=C $CC $CPPFLAGS $CFLAGS -print-search-dirs) 2>/dev/null \
+                     | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
+         if test $HOST_CPU_C_ABI_32BIT != no; then
+           # 32-bit or unknown ABI.
+           if test -d /usr/lib32; then
+             acl_libdirstem2=lib32
+           fi
+         fi
+         if test $HOST_CPU_C_ABI_32BIT != yes; then
+           # 64-bit or unknown ABI.
+           if test -d /usr/lib64; then
+             acl_libdirstem3=lib64
+           fi
+         fi
+         if test -n "$searchpath"; then
+           acl_save_IFS="${IFS=        }"; IFS=":"
+           for searchdir in $searchpath; do
+             if test -d "$searchdir"; then
+               case "$searchdir" in
+                 */lib32/ | */lib32 ) acl_libdirstem2=lib32 ;;
+                 */lib64/ | */lib64 ) acl_libdirstem3=lib64 ;;
+                 */../ | */.. )
+                   # Better ignore directories of this form. They are misleading.
+                   ;;
+                 *) searchdir=`cd "$searchdir" && pwd`
+                    case "$searchdir" in
+                      */lib32 ) acl_libdirstem2=lib32 ;;
+                      */lib64 ) acl_libdirstem3=lib64 ;;
+                    esac ;;
+               esac
+             fi
+           done
+           IFS="$acl_save_IFS"
+           if test $HOST_CPU_C_ABI_32BIT = yes; then
+             # 32-bit ABI.
+             acl_libdirstem3=
+           fi
+           if test $HOST_CPU_C_ABI_32BIT = no; then
+             # 64-bit ABI.
+             acl_libdirstem2=
+           fi
+         fi
+         ;;
+     esac
+     test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
+     test -n "$acl_libdirstem3" || acl_libdirstem3="$acl_libdirstem"
+     acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2,$acl_libdirstem3"
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $acl_cv_libdirstems" >&5
+printf "%s\n" "$acl_cv_libdirstems" >&6; }
+      acl_libdirstem=`echo "$acl_cv_libdirstems" | sed -e 's/,.*//'`
+  acl_libdirstem2=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,//' -e 's/,.*//'`
+  acl_libdirstem3=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,[^,]*,//' -e 's/,.*//'`
 
 
 
-  GL_GNULIB_GETENTROPY=0
+# Check whether --with-libsigsegv was given.
+if test ${with_libsigsegv+y}
+then :
+  withval=$with_libsigsegv;
+fi
 
+  if test "$with_libsigsegv" = yes; then
 
 
-  GL_GNULIB_GETGROUPS=0
 
 
 
-  GL_GNULIB_GETHOSTNAME=0
 
 
 
-  GL_GNULIB_GETLOGIN=0
 
 
 
-  GL_GNULIB_GETLOGIN_R=0
 
 
+    use_additional=yes
 
-  GL_GNULIB_GETOPT_POSIX=0
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
 
+    eval additional_includedir=\"$includedir\"
+    eval additional_libdir=\"$libdir\"
+    eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\"
+    eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\"
 
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
 
-  GL_GNULIB_GETPAGESIZE=0
 
+# Check whether --with-libsigsegv-prefix was given.
+if test ${with_libsigsegv_prefix+y}
+then :
+  withval=$with_libsigsegv_prefix;
+    if test "X$withval" = "Xno"; then
+      use_additional=no
+    else
+      if test "X$withval" = "X"; then
 
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
 
-  GL_GNULIB_GETPASS=0
+          eval additional_includedir=\"$includedir\"
+          eval additional_libdir=\"$libdir\"
+          eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\"
+          eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\"
 
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
 
+      else
+        additional_includedir="$withval/include"
+        additional_libdir="$withval/$acl_libdirstem"
+        additional_libdir2="$withval/$acl_libdirstem2"
+        additional_libdir3="$withval/$acl_libdirstem3"
+      fi
+    fi
 
-  GL_GNULIB_GETUSERSHELL=0
+fi
 
+  if test "X$additional_libdir2" = "X$additional_libdir"; then
+    additional_libdir2=
+  fi
+  if test "X$additional_libdir3" = "X$additional_libdir"; then
+    additional_libdir3=
+  fi
+      LIBSIGSEGV=
+  LTLIBSIGSEGV=
+  INCSIGSEGV=
+  LIBSIGSEGV_PREFIX=
+      HAVE_LIBSIGSEGV=
+  rpathdirs=
+  ltrpathdirs=
+  names_already_handled=
+  names_next_round='sigsegv '
+  while test -n "$names_next_round"; do
+    names_this_round="$names_next_round"
+    names_next_round=
+    for name in $names_this_round; do
+      already_handled=
+      for n in $names_already_handled; do
+        if test "$n" = "$name"; then
+          already_handled=yes
+          break
+        fi
+      done
+      if test -z "$already_handled"; then
+        names_already_handled="$names_already_handled $name"
+                        uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'`
+        eval value=\"\$HAVE_LIB$uppername\"
+        if test -n "$value"; then
+          if test "$value" = yes; then
+            eval value=\"\$LIB$uppername\"
+            test -z "$value" || LIBSIGSEGV="${LIBSIGSEGV}${LIBSIGSEGV:+ }$value"
+            eval value=\"\$LTLIB$uppername\"
+            test -z "$value" || LTLIBSIGSEGV="${LTLIBSIGSEGV}${LTLIBSIGSEGV:+ }$value"
+          else
+                                    :
+          fi
+        else
+                              found_dir=
+          found_la=
+          found_so=
+          found_a=
+          eval libname=\"$acl_libname_spec\"    # typically: libname=lib$name
+          if test -n "$acl_shlibext"; then
+            shrext=".$acl_shlibext"             # typically: shrext=.so
+          else
+            shrext=
+          fi
+          if test $use_additional = yes; then
+            for additional_libdir_variable in additional_libdir additional_libdir2 additional_libdir3; do
+              if test "X$found_dir" = "X"; then
+                eval dir=\$$additional_libdir_variable
+                if test -n "$dir"; then
+                                                      if test -n "$acl_shlibext"; then
+                    if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then
+                      found_dir="$dir"
+                      found_so="$dir/$libname$shrext"
+                    else
+                      if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+                        ver=`(cd "$dir" && \
+                              for f in "$libname$shrext".*; do echo "$f"; done \
+                              | sed -e "s,^$libname$shrext\\\\.,," \
+                              | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+                              | sed 1q ) 2>/dev/null`
+                        if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then
+                          found_dir="$dir"
+                          found_so="$dir/$libname$shrext.$ver"
+                        fi
+                      else
+                        eval library_names=\"$acl_library_names_spec\"
+                        for f in $library_names; do
+                          if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then
+                            found_dir="$dir"
+                            found_so="$dir/$f"
+                            break
+                          fi
+                        done
+                      fi
+                    fi
+                  fi
+                                    if test "X$found_dir" = "X"; then
+                    if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then
+                      found_dir="$dir"
+                      found_a="$dir/$libname.$acl_libext"
+                    fi
+                  fi
+                  if test "X$found_dir" != "X"; then
+                    if test -f "$dir/$libname.la"; then
+                      found_la="$dir/$libname.la"
+                    fi
+                  fi
+                fi
+              fi
+            done
+          fi
+          if test "X$found_dir" = "X"; then
+            for x in $LDFLAGS $LTLIBSIGSEGV; do
 
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
 
-  GL_GNULIB_GROUP_MEMBER=0
-
-
-
-  GL_GNULIB_ISATTY=0
-
+              case "$x" in
+                -L*)
+                  dir=`echo "X$x" | sed -e 's/^X-L//'`
+                                    if test -n "$acl_shlibext"; then
+                    if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then
+                      found_dir="$dir"
+                      found_so="$dir/$libname$shrext"
+                    else
+                      if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+                        ver=`(cd "$dir" && \
+                              for f in "$libname$shrext".*; do echo "$f"; done \
+                              | sed -e "s,^$libname$shrext\\\\.,," \
+                              | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+                              | sed 1q ) 2>/dev/null`
+                        if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then
+                          found_dir="$dir"
+                          found_so="$dir/$libname$shrext.$ver"
+                        fi
+                      else
+                        eval library_names=\"$acl_library_names_spec\"
+                        for f in $library_names; do
+                          if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then
+                            found_dir="$dir"
+                            found_so="$dir/$f"
+                            break
+                          fi
+                        done
+                      fi
+                    fi
+                  fi
+                                    if test "X$found_dir" = "X"; then
+                    if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then
+                      found_dir="$dir"
+                      found_a="$dir/$libname.$acl_libext"
+                    fi
+                  fi
+                  if test "X$found_dir" != "X"; then
+                    if test -f "$dir/$libname.la"; then
+                      found_la="$dir/$libname.la"
+                    fi
+                  fi
+                  ;;
+              esac
+              if test "X$found_dir" != "X"; then
+                break
+              fi
+            done
+          fi
+          if test "X$found_dir" != "X"; then
+                        LTLIBSIGSEGV="${LTLIBSIGSEGV}${LTLIBSIGSEGV:+ }-L$found_dir -l$name"
+            if test "X$found_so" != "X"; then
+                                                        if test "$enable_rpath" = no \
+                 || test "X$found_dir" = "X/usr/$acl_libdirstem" \
+                 || test "X$found_dir" = "X/usr/$acl_libdirstem2" \
+                 || test "X$found_dir" = "X/usr/$acl_libdirstem3"; then
+                                LIBSIGSEGV="${LIBSIGSEGV}${LIBSIGSEGV:+ }$found_so"
+              else
+                                                                                haveit=
+                for x in $ltrpathdirs; do
+                  if test "X$x" = "X$found_dir"; then
+                    haveit=yes
+                    break
+                  fi
+                done
+                if test -z "$haveit"; then
+                  ltrpathdirs="$ltrpathdirs $found_dir"
+                fi
+                                if test "$acl_hardcode_direct" = yes; then
+                                                      LIBSIGSEGV="${LIBSIGSEGV}${LIBSIGSEGV:+ }$found_so"
+                else
+                  if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
+                                                            LIBSIGSEGV="${LIBSIGSEGV}${LIBSIGSEGV:+ }$found_so"
+                                                            haveit=
+                    for x in $rpathdirs; do
+                      if test "X$x" = "X$found_dir"; then
+                        haveit=yes
+                        break
+                      fi
+                    done
+                    if test -z "$haveit"; then
+                      rpathdirs="$rpathdirs $found_dir"
+                    fi
+                  else
+                                                                                haveit=
+                    for x in $LDFLAGS $LIBSIGSEGV; do
 
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
 
-  GL_GNULIB_LCHOWN=0
+                      if test "X$x" = "X-L$found_dir"; then
+                        haveit=yes
+                        break
+                      fi
+                    done
+                    if test -z "$haveit"; then
+                      LIBSIGSEGV="${LIBSIGSEGV}${LIBSIGSEGV:+ }-L$found_dir"
+                    fi
+                    if test "$acl_hardcode_minus_L" != no; then
+                                                                                        LIBSIGSEGV="${LIBSIGSEGV}${LIBSIGSEGV:+ }$found_so"
+                    else
+                                                                                                                                                                                LIBSIGSEGV="${LIBSIGSEGV}${LIBSIGSEGV:+ }-l$name"
+                    fi
+                  fi
+                fi
+              fi
+            else
+              if test "X$found_a" != "X"; then
+                                LIBSIGSEGV="${LIBSIGSEGV}${LIBSIGSEGV:+ }$found_a"
+              else
+                                                LIBSIGSEGV="${LIBSIGSEGV}${LIBSIGSEGV:+ }-L$found_dir -l$name"
+              fi
+            fi
+                        additional_includedir=
+            case "$found_dir" in
+              */$acl_libdirstem | */$acl_libdirstem/)
+                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
+                if test "$name" = 'sigsegv'; then
+                  LIBSIGSEGV_PREFIX="$basedir"
+                fi
+                additional_includedir="$basedir/include"
+                ;;
+              */$acl_libdirstem2 | */$acl_libdirstem2/)
+                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'`
+                if test "$name" = 'sigsegv'; then
+                  LIBSIGSEGV_PREFIX="$basedir"
+                fi
+                additional_includedir="$basedir/include"
+                ;;
+              */$acl_libdirstem3 | */$acl_libdirstem3/)
+                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem3/"'*$,,'`
+                if test "$name" = 'sigsegv'; then
+                  LIBSIGSEGV_PREFIX="$basedir"
+                fi
+                additional_includedir="$basedir/include"
+                ;;
+            esac
+            if test "X$additional_includedir" != "X"; then
+                                                                                                                if test "X$additional_includedir" != "X/usr/include"; then
+                haveit=
+                if test "X$additional_includedir" = "X/usr/local/include"; then
+                  if test -n "$GCC"; then
+                    case $host_os in
+                      linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+                    esac
+                  fi
+                fi
+                if test -z "$haveit"; then
+                  for x in $CPPFLAGS $INCSIGSEGV; do
 
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
 
+                    if test "X$x" = "X-I$additional_includedir"; then
+                      haveit=yes
+                      break
+                    fi
+                  done
+                  if test -z "$haveit"; then
+                    if test -d "$additional_includedir"; then
+                                            INCSIGSEGV="${INCSIGSEGV}${INCSIGSEGV:+ }-I$additional_includedir"
+                    fi
+                  fi
+                fi
+              fi
+            fi
+                        if test -n "$found_la"; then
+                                                        save_libdir="$libdir"
+              case "$found_la" in
+                */* | *\\*) . "$found_la" ;;
+                *) . "./$found_la" ;;
+              esac
+              libdir="$save_libdir"
+                            for dep in $dependency_libs; do
+                case "$dep" in
+                  -L*)
+                    dependency_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+                                                                                                                                                                if test "X$dependency_libdir" != "X/usr/$acl_libdirstem" \
+                       && test "X$dependency_libdir" != "X/usr/$acl_libdirstem2" \
+                       && test "X$dependency_libdir" != "X/usr/$acl_libdirstem3"; then
+                      haveit=
+                      if test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem" \
+                         || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem2" \
+                         || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem3"; then
+                        if test -n "$GCC"; then
+                          case $host_os in
+                            linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+                          esac
+                        fi
+                      fi
+                      if test -z "$haveit"; then
+                        haveit=
+                        for x in $LDFLAGS $LIBSIGSEGV; do
 
-  GL_GNULIB_LINK=0
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
 
+                          if test "X$x" = "X-L$dependency_libdir"; then
+                            haveit=yes
+                            break
+                          fi
+                        done
+                        if test -z "$haveit"; then
+                          if test -d "$dependency_libdir"; then
+                                                        LIBSIGSEGV="${LIBSIGSEGV}${LIBSIGSEGV:+ }-L$dependency_libdir"
+                          fi
+                        fi
+                        haveit=
+                        for x in $LDFLAGS $LTLIBSIGSEGV; do
 
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
 
-  GL_GNULIB_LINKAT=0
+                          if test "X$x" = "X-L$dependency_libdir"; then
+                            haveit=yes
+                            break
+                          fi
+                        done
+                        if test -z "$haveit"; then
+                          if test -d "$dependency_libdir"; then
+                                                        LTLIBSIGSEGV="${LTLIBSIGSEGV}${LTLIBSIGSEGV:+ }-L$dependency_libdir"
+                          fi
+                        fi
+                      fi
+                    fi
+                    ;;
+                  -R*)
+                    dir=`echo "X$dep" | sed -e 's/^X-R//'`
+                    if test "$enable_rpath" != no; then
+                                                                  haveit=
+                      for x in $rpathdirs; do
+                        if test "X$x" = "X$dir"; then
+                          haveit=yes
+                          break
+                        fi
+                      done
+                      if test -z "$haveit"; then
+                        rpathdirs="$rpathdirs $dir"
+                      fi
+                                                                  haveit=
+                      for x in $ltrpathdirs; do
+                        if test "X$x" = "X$dir"; then
+                          haveit=yes
+                          break
+                        fi
+                      done
+                      if test -z "$haveit"; then
+                        ltrpathdirs="$ltrpathdirs $dir"
+                      fi
+                    fi
+                    ;;
+                  -l*)
+                                                                                                                                                                dep=`echo "X$dep" | sed -e 's/^X-l//'`
+                    if test "X$dep" != Xc \
+                       || case $host_os in
+                            linux* | gnu* | k*bsd*-gnu) false ;;
+                            *)                          true ;;
+                          esac; then
+                      names_next_round="$names_next_round $dep"
+                    fi
+                    ;;
+                  *.la)
+                                                                                names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
+                    ;;
+                  *)
+                                        LIBSIGSEGV="${LIBSIGSEGV}${LIBSIGSEGV:+ }$dep"
+                    LTLIBSIGSEGV="${LTLIBSIGSEGV}${LTLIBSIGSEGV:+ }$dep"
+                    ;;
+                esac
+              done
+            fi
+          else
+                                                            LIBSIGSEGV="${LIBSIGSEGV}${LIBSIGSEGV:+ }-l$name"
+            LTLIBSIGSEGV="${LTLIBSIGSEGV}${LTLIBSIGSEGV:+ }-l$name"
+          fi
+        fi
+      fi
+    done
+  done
+  if test "X$rpathdirs" != "X"; then
+    if test -n "$acl_hardcode_libdir_separator"; then
+                        alldirs=
+      for found_dir in $rpathdirs; do
+        alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
+      done
+            acl_save_libdir="$libdir"
+      libdir="$alldirs"
+      eval flag=\"$acl_hardcode_libdir_flag_spec\"
+      libdir="$acl_save_libdir"
+      LIBSIGSEGV="${LIBSIGSEGV}${LIBSIGSEGV:+ }$flag"
+    else
+            for found_dir in $rpathdirs; do
+        acl_save_libdir="$libdir"
+        libdir="$found_dir"
+        eval flag=\"$acl_hardcode_libdir_flag_spec\"
+        libdir="$acl_save_libdir"
+        LIBSIGSEGV="${LIBSIGSEGV}${LIBSIGSEGV:+ }$flag"
+      done
+    fi
+  fi
+  if test "X$ltrpathdirs" != "X"; then
+            for found_dir in $ltrpathdirs; do
+      LTLIBSIGSEGV="${LTLIBSIGSEGV}${LTLIBSIGSEGV:+ }-R$found_dir"
+    done
+  fi
 
 
 
-  GL_GNULIB_LSEEK=0
 
 
 
-  GL_GNULIB_PIPE=0
+        ac_save_CPPFLAGS="$CPPFLAGS"
 
+  for element in $INCSIGSEGV; do
+    haveit=
+    for x in $CPPFLAGS; do
 
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
 
-  GL_GNULIB_PIPE2=0
+      if test "X$x" = "X$element"; then
+        haveit=yes
+        break
+      fi
+    done
+    if test -z "$haveit"; then
+      CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
+    fi
+  done
 
 
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libsigsegv" >&5
+printf %s "checking for libsigsegv... " >&6; }
+if test ${ac_cv_libsigsegv+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+    ac_save_LIBS="$LIBS"
+                                case " $LIBSIGSEGV" in
+      *" -l"*) LIBS="$LIBS $LIBSIGSEGV" ;;
+      *)       LIBS="$LIBSIGSEGV $LIBS" ;;
+    esac
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sigsegv.h>
+int
+main (void)
+{
+sigsegv_deinstall_handler();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+  ac_cv_libsigsegv=yes
+else case e in #(
+  e) ac_cv_libsigsegv='no, consider installing GNU libsigsegv' ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+    conftest$ac_exeext conftest.$ac_ext
+    LIBS="$ac_save_LIBS"
+   ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_libsigsegv" >&5
+printf "%s\n" "$ac_cv_libsigsegv" >&6; }
+  if test "$ac_cv_libsigsegv" = yes; then
+    HAVE_LIBSIGSEGV=yes
 
-  GL_GNULIB_PREAD=0
+printf "%s\n" "#define HAVE_LIBSIGSEGV 1" >>confdefs.h
 
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to link with libsigsegv" >&5
+printf %s "checking how to link with libsigsegv... " >&6; }
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIBSIGSEGV" >&5
+printf "%s\n" "$LIBSIGSEGV" >&6; }
+  else
+    HAVE_LIBSIGSEGV=no
+            CPPFLAGS="$ac_save_CPPFLAGS"
+    LIBSIGSEGV=
+    LTLIBSIGSEGV=
+    LIBSIGSEGV_PREFIX=
+  fi
 
 
-  GL_GNULIB_PWRITE=0
 
 
 
-  GL_GNULIB_READ=0
 
 
+    gl_cv_lib_sigsegv="$ac_cv_libsigsegv"
 
-  GL_GNULIB_READLINK=0
+    gl_sigsegv_uses_libsigsegv="$gl_cv_lib_sigsegv"
+  else
+    gl_sigsegv_uses_libsigsegv=no
+  fi
 
 
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether malloc is ptrdiff_t safe" >&5
+printf %s "checking whether malloc is ptrdiff_t safe... " >&6; }
+if test ${gl_cv_malloc_ptrdiff+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdint.h>
 
-  GL_GNULIB_READLINKAT=0
+int
+main (void)
+{
+/* 64-bit ptrdiff_t is so wide that no practical platform
+               can exceed it.  */
+            #define WIDE_PTRDIFF (PTRDIFF_MAX >> 31 >> 31 != 0)
 
+            /* On rare machines where size_t fits in ptrdiff_t there
+               is no problem.  */
+            #define NARROW_SIZE (SIZE_MAX <= PTRDIFF_MAX)
 
+            /* glibc 2.30 and later malloc refuses to exceed ptrdiff_t
+               bounds even on 32-bit platforms.  We don't know which
+               non-glibc systems are safe.  */
+            #define KNOWN_SAFE (2 < __GLIBC__ + (30 <= __GLIBC_MINOR__))
 
-  GL_GNULIB_RMDIR=0
+            #if WIDE_PTRDIFF || NARROW_SIZE || KNOWN_SAFE
+              return 0;
+            #else
+              #error "malloc might not be ptrdiff_t safe"
+              syntax error
+            #endif
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  gl_cv_malloc_ptrdiff=yes
+else case e in #(
+  e) gl_cv_malloc_ptrdiff=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_malloc_ptrdiff" >&5
+printf "%s\n" "$gl_cv_malloc_ptrdiff" >&6; }
 
 
-  GL_GNULIB_SETHOSTNAME=0
 
 
+  test "$gl_cv_malloc_ptrdiff" = yes || REPLACE_MALLOC_FOR_MALLOC_POSIX=1
 
-  GL_GNULIB_SLEEP=0
 
 
+  { 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; }
+if test ${gl_cv_func_malloc_posix+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+                                    case "$host_os" in
+        mingw*)
+          gl_cv_func_malloc_posix=no ;;
+        irix* | solaris*)
 
-  GL_GNULIB_SYMLINK=0
+          gl_cv_func_malloc_posix=no ;;
+        *)
+          gl_cv_func_malloc_posix=yes ;;
+      esac
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_malloc_posix" >&5
+printf "%s\n" "$gl_cv_func_malloc_posix" >&6; }
 
 
 
-  GL_GNULIB_SYMLINKAT=0
 
 
+  if test "$gl_cv_func_malloc_posix" = yes; then
 
-  GL_GNULIB_TRUNCATE=0
+printf "%s\n" "#define HAVE_MALLOC_POSIX 1" >>confdefs.h
 
+  else
+    REPLACE_MALLOC_FOR_MALLOC_POSIX=1
+  fi
 
 
-  GL_GNULIB_TTYNAME_R=0
 
 
+  if test $REPLACE_MALLOC_FOR_MALLOC_POSIX = 1; then
+    REPLACE_CALLOC_FOR_CALLOC_POSIX=1
+  fi
 
-  GL_GNULIB_UNISTD_H_GETOPT=0
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C/C++ restrict keyword" >&5
+printf %s "checking for C/C++ restrict keyword... " >&6; }
+if test ${ac_cv_c_restrict+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) ac_cv_c_restrict=no
+   # Put '__restrict__' first, to avoid problems with glibc and non-GCC; see:
+   # https://lists.gnu.org/archive/html/bug-autoconf/2016-02/msg00006.html
+   # Put 'restrict' last, because C++ lacks it.
+   for ac_kw in __restrict__ __restrict _Restrict restrict; do
+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+typedef int *int_ptr;
+          int foo (int_ptr $ac_kw ip) { return ip[0]; }
+          int bar (int [$ac_kw]); /* Catch GCC bug 14050.  */
+          int bar (int ip[$ac_kw]) { return ip[0]; }
 
+int
+main (void)
+{
+int s[1];
+          int *$ac_kw t = s;
+          t[0] = 0;
+          return foo (t) + bar (t);
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  ac_cv_c_restrict=$ac_kw
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+     test "$ac_cv_c_restrict" != no && break
+   done
+   ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_restrict" >&5
+printf "%s\n" "$ac_cv_c_restrict" >&6; }
 
-  GL_GNULIB_UNISTD_H_NONBLOCKING=0
+ case $ac_cv_c_restrict in
+   restrict) ;;
+   no) printf "%s\n" "#define restrict /**/" >>confdefs.h
+ ;;
+   *)  printf "%s\n" "#define restrict $ac_cv_c_restrict" >>confdefs.h
+ ;;
+ esac
 
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5
+printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; }
+if test ${ac_cv_c_undeclared_builtin_options+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) ac_save_CFLAGS=$CFLAGS
+   ac_cv_c_undeclared_builtin_options='cannot detect'
+   for ac_arg in '' -fno-builtin; do
+     CFLAGS="$ac_save_CFLAGS $ac_arg"
+     # This test program should *not* compile successfully.
+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+int
+main (void)
+{
+(void) strchr;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
 
-  GL_GNULIB_UNISTD_H_SIGPIPE=0
+else case e in #(
+  e) # This test program should compile successfully.
+        # No library function is consistently available on
+        # freestanding implementations, so test against a dummy
+        # declaration.  Include always-available headers on the
+        # off chance that they somehow elicit warnings.
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <float.h>
+#include <limits.h>
+#include <stdarg.h>
+#include <stddef.h>
+extern void ac_decl (int, char *);
 
+int
+main (void)
+{
+(void) ac_decl (0, (char *) 0);
+  (void) ac_decl;
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  if test x"$ac_arg" = x
+then :
+  ac_cv_c_undeclared_builtin_options='none needed'
+else case e in #(
+  e) ac_cv_c_undeclared_builtin_options=$ac_arg ;;
+esac
+fi
+          break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+    done
+    CFLAGS=$ac_save_CFLAGS
+   ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_undeclared_builtin_options" >&5
+printf "%s\n" "$ac_cv_c_undeclared_builtin_options" >&6; }
+  case $ac_cv_c_undeclared_builtin_options in #(
+  'cannot detect') :
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+as_fn_error $? "cannot make $CC report undeclared builtins
+See 'config.log' for more details" "$LINENO" 5; } ;; #(
+  'none needed') :
+    ac_c_undeclared_builtin_options='' ;; #(
+  *) :
+    ac_c_undeclared_builtin_options=$ac_cv_c_undeclared_builtin_options ;;
+esac
 
-  GL_GNULIB_UNLINK=0
 
+    HAVE_CHOWN=1;
+  HAVE_COPY_FILE_RANGE=1;
+  HAVE_DUP3=1;
+  HAVE_EUIDACCESS=1;
+  HAVE_EXECVPE=1;
+  HAVE_FACCESSAT=1;
+  HAVE_FCHDIR=1;
+  HAVE_FCHOWNAT=1;
+  HAVE_FDATASYNC=1;
+  HAVE_FSYNC=1;
+  HAVE_FTRUNCATE=1;
+  HAVE_GETDTABLESIZE=1;
+  HAVE_GETENTROPY=1;
+  HAVE_GETGROUPS=1;
+  HAVE_GETHOSTNAME=1;
+  HAVE_GETLOGIN=1;
+  HAVE_GETPAGESIZE=1;
+  HAVE_GETPASS=1;
+  HAVE_GROUP_MEMBER=1;
+  HAVE_LCHOWN=1;
+  HAVE_LINK=1;
+  HAVE_LINKAT=1;
+  HAVE_PIPE=1;
+  HAVE_PIPE2=1;
+  HAVE_PREAD=1;
+  HAVE_PWRITE=1;
+  HAVE_READLINK=1;
+  HAVE_READLINKAT=1;
+  HAVE_SETHOSTNAME=1;
+  HAVE_SLEEP=1;
+  HAVE_SYMLINK=1;
+  HAVE_SYMLINKAT=1;
+  HAVE_UNLINKAT=1;
+  HAVE_USLEEP=1;
+  HAVE_DECL_ENVIRON=1;
+  HAVE_DECL_EXECVPE=1;
+  HAVE_DECL_FCHDIR=1;
+  HAVE_DECL_FDATASYNC=1;
+  HAVE_DECL_GETDOMAINNAME=1;
+  HAVE_DECL_GETLOGIN=1;
+  HAVE_DECL_GETLOGIN_R=1;
+  HAVE_DECL_GETPAGESIZE=1;
+  HAVE_DECL_GETUSERSHELL=1;
+  HAVE_DECL_SETHOSTNAME=1;
+  HAVE_DECL_TRUNCATE=1;
+  HAVE_DECL_TTYNAME_R=1;
+  HAVE_OS_H=0;
+  HAVE_SYS_PARAM_H=0;
+  REPLACE_ACCESS=0;
+  REPLACE_CHOWN=0;
+  REPLACE_CLOSE=0;
+  REPLACE_COPY_FILE_RANGE=0;
+  REPLACE_DUP=0;
+  REPLACE_DUP2=0;
+  REPLACE_DUP3=0;
+  REPLACE_EXECL=0;
+  REPLACE_EXECLE=0;
+  REPLACE_EXECLP=0;
+  REPLACE_EXECV=0;
+  REPLACE_EXECVE=0;
+  REPLACE_EXECVP=0;
+  REPLACE_EXECVPE=0;
+  REPLACE_FACCESSAT=0;
+  REPLACE_FCHOWNAT=0;
+  REPLACE_FDATASYNC=0;
+  REPLACE_FTRUNCATE=0;
+  REPLACE_GETCWD=0;
+  REPLACE_GETDOMAINNAME=0;
+  REPLACE_GETDTABLESIZE=0;
+  REPLACE_GETENTROPY=0;
+  REPLACE_GETLOGIN_R=0;
+  REPLACE_GETGROUPS=0;
+  REPLACE_GETPAGESIZE=0;
+  REPLACE_GETPASS=0;
+  REPLACE_GETPASS_FOR_GETPASS_GNU=0;
+  REPLACE_ISATTY=0;
+  REPLACE_LCHOWN=0;
+  REPLACE_LINK=0;
+  REPLACE_LINKAT=0;
+  REPLACE_LSEEK=0;
+  REPLACE_PIPE2=0;
+  REPLACE_PREAD=0;
+  REPLACE_PWRITE=0;
+  REPLACE_READ=0;
+  REPLACE_READLINK=0;
+  REPLACE_READLINKAT=0;
+  REPLACE_RMDIR=0;
+  REPLACE_SETHOSTNAME=0;
+  REPLACE_SLEEP=0;
+  REPLACE_SYMLINK=0;
+  REPLACE_SYMLINKAT=0;
+  REPLACE_TRUNCATE=0;
+  REPLACE_TTYNAME_R=0;
+  REPLACE_UNLINK=0;
+  REPLACE_UNLINKAT=0;
+  REPLACE_USLEEP=0;
+  REPLACE_WRITE=0;
+  UNISTD_H_HAVE_SYS_RANDOM_H=0;
+  UNISTD_H_HAVE_WINSOCK2_H=0;
+  UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0;
 
 
-  GL_GNULIB_UNLINKAT=0
 
 
 
-  GL_GNULIB_USLEEP=0
+  if test $ac_cv_func__set_invalid_parameter_handler = yes; then
+    HAVE_MSVC_INVALID_PARAMETER_HANDLER=1
 
+printf "%s\n" "#define HAVE_MSVC_INVALID_PARAMETER_HANDLER 1" >>confdefs.h
 
+  else
+    HAVE_MSVC_INVALID_PARAMETER_HANDLER=0
+  fi
 
-  GL_GNULIB_WRITE=0
 
 
+    SYS_IOCTL_H_HAVE_WINSOCK2_H=0;
+  SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0;
 
-  GL_GNULIB_MDA_ACCESS=1
+  REPLACE_IOCTL=0;
 
 
 
-  GL_GNULIB_MDA_CHDIR=1
 
 
 
-  GL_GNULIB_MDA_CLOSE=1
+    if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+      REPLACE_CLOSE=1
+    fi
 
 
 
-  GL_GNULIB_MDA_DUP=1
 
 
 
-  GL_GNULIB_MDA_DUP2=1
+  if test $ac_cv_header_sys_socket_h != yes; then
+                    ac_fn_c_check_header_compile "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default"
+if test "x$ac_cv_header_winsock2_h" = xyes
+then :
+  printf "%s\n" "#define HAVE_WINSOCK2_H 1" >>confdefs.h
 
+fi
 
+  fi
+  if test "$ac_cv_header_winsock2_h" = yes; then
+    HAVE_WINSOCK2_H=1
+    UNISTD_H_HAVE_WINSOCK2_H=1
+    SYS_IOCTL_H_HAVE_WINSOCK2_H=1
+  else
+    HAVE_WINSOCK2_H=0
+  fi
 
-  GL_GNULIB_MDA_EXECL=1
 
+    if test $UNISTD_H_HAVE_WINSOCK2_H = 1; then
+                        REPLACE_CLOSE=1
+    fi
 
 
-  GL_GNULIB_MDA_EXECLE=1
 
 
 
-  GL_GNULIB_MDA_EXECLP=1
+  GL_GNULIB_ACCESS=0
 
 
 
-  GL_GNULIB_MDA_EXECV=1
+  GL_GNULIB_CHDIR=0
 
 
 
-  GL_GNULIB_MDA_EXECVE=1
+  GL_GNULIB_CHOWN=0
 
 
 
-  GL_GNULIB_MDA_EXECVP=1
+  GL_GNULIB_CLOSE=0
 
 
 
-  GL_GNULIB_MDA_EXECVPE=1
+  GL_GNULIB_COPY_FILE_RANGE=0
 
 
 
-  GL_GNULIB_MDA_GETCWD=1
+  GL_GNULIB_DUP=0
 
 
 
-  GL_GNULIB_MDA_GETPID=1
+  GL_GNULIB_DUP2=0
 
 
 
-  GL_GNULIB_MDA_ISATTY=1
+  GL_GNULIB_DUP3=0
 
 
 
-  GL_GNULIB_MDA_LSEEK=1
+  GL_GNULIB_ENVIRON=0
 
 
 
-  GL_GNULIB_MDA_READ=1
+  GL_GNULIB_EUIDACCESS=0
 
 
 
-  GL_GNULIB_MDA_RMDIR=1
+  GL_GNULIB_EXECL=0
 
 
 
-  GL_GNULIB_MDA_SWAB=1
+  GL_GNULIB_EXECLE=0
 
 
 
-  GL_GNULIB_MDA_UNLINK=1
+  GL_GNULIB_EXECLP=0
 
 
 
-  GL_GNULIB_MDA_WRITE=1
+  GL_GNULIB_EXECV=0
 
 
 
+  GL_GNULIB_EXECVE=0
 
-    HAVE_ISBLANK=1;
 
 
+  GL_GNULIB_EXECVP=0
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the preprocessor supports include_next" >&5
-printf %s "checking whether the preprocessor supports include_next... " >&6; }
-if test ${gl_cv_have_include_next+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  rm -rf conftestd1a conftestd1b conftestd2
-     mkdir conftestd1a conftestd1b conftestd2
-                                                  cat <<EOF > conftestd1a/conftest.h
-#define DEFINED_IN_CONFTESTD1
-#include_next <conftest.h>
-#ifdef DEFINED_IN_CONFTESTD2
-int foo;
-#else
-#error "include_next doesn't work"
-#endif
-EOF
-     cat <<EOF > conftestd1b/conftest.h
-#define DEFINED_IN_CONFTESTD1
-#include <stdio.h>
-#include_next <conftest.h>
-#ifdef DEFINED_IN_CONFTESTD2
-int foo;
-#else
-#error "include_next doesn't work"
-#endif
-EOF
-     cat <<EOF > conftestd2/conftest.h
-#ifndef DEFINED_IN_CONFTESTD1
-#error "include_next test doesn't work"
-#endif
-#define DEFINED_IN_CONFTESTD2
-EOF
-     gl_save_CPPFLAGS="$CPPFLAGS"
-     CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1b -Iconftestd2"
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <conftest.h>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  gl_cv_have_include_next=yes
-else $as_nop
-  CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1a -Iconftestd2"
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <conftest.h>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  gl_cv_have_include_next=buggy
-else $as_nop
-  gl_cv_have_include_next=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
 
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-     CPPFLAGS="$gl_save_CPPFLAGS"
-     rm -rf conftestd1a conftestd1b conftestd2
 
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_include_next" >&5
-printf "%s\n" "$gl_cv_have_include_next" >&6; }
-  PRAGMA_SYSTEM_HEADER=
-  if test $gl_cv_have_include_next = yes; then
-    INCLUDE_NEXT=include_next
-    INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next
-    if test -n "$GCC"; then
-      PRAGMA_SYSTEM_HEADER='#pragma GCC system_header'
-    fi
-  else
-    if test $gl_cv_have_include_next = buggy; then
-      INCLUDE_NEXT=include
-      INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next
-    else
-      INCLUDE_NEXT=include
-      INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include
-    fi
-  fi
+  GL_GNULIB_EXECVPE=0
 
 
 
+  GL_GNULIB_FACCESSAT=0
 
-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether source code line length is unlimited" >&5
-printf %s "checking whether source code line length is unlimited... " >&6; }
-if test ${gl_cv_source_line_length_unlimited+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#ifdef __TANDEM
-choke me
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "choke me" >/dev/null 2>&1
-then :
-  gl_cv_source_line_length_unlimited=no
-else $as_nop
-  gl_cv_source_line_length_unlimited=yes
-fi
-rm -rf conftest*
+  GL_GNULIB_FCHDIR=0
 
 
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_source_line_length_unlimited" >&5
-printf "%s\n" "$gl_cv_source_line_length_unlimited" >&6; }
-  if test $gl_cv_source_line_length_unlimited = no; then
-    PRAGMA_COLUMNS="#pragma COLUMNS 10000"
-  else
-    PRAGMA_COLUMNS=
-  fi
 
+  GL_GNULIB_FCHOWNAT=0
 
 
 
+  GL_GNULIB_FDATASYNC=0
 
 
 
+  GL_GNULIB_FSYNC=0
 
 
 
+  GL_GNULIB_FTRUNCATE=0
 
 
 
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_ctype_h='<'ctype.h'>'
-     else
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <ctype.h>" >&5
-printf %s "checking absolute name of <ctype.h>... " >&6; }
-if test ${gl_cv_next_ctype_h+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+  GL_GNULIB_GETCWD=0
 
 
 
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ctype.h>
-_ACEOF
-                case "$host_os" in
-    aix*) gl_absname_cpp="$ac_cpp -C" ;;
-    *)    gl_absname_cpp="$ac_cpp" ;;
-  esac
+  GL_GNULIB_GETDOMAINNAME=0
 
-  case "$host_os" in
-    mingw*)
-                                          gl_dirsep_regex='[/\\]'
-      ;;
-    *)
-      gl_dirsep_regex='\/'
-      ;;
-  esac
-      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-  gl_header_literal_regex=`echo 'ctype.h' \
-                           | sed -e "$gl_make_literal_regex_sed"`
-  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
-      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
-      s|^/[^/]|//&|
-      p
-      q
-    }'
 
-        gl_cv_absolute_ctype_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-  sed -n "$gl_absolute_header_sed"`
 
-           gl_header=$gl_cv_absolute_ctype_h
-           gl_cv_next_ctype_h='"'$gl_header'"'
+  GL_GNULIB_GETDTABLESIZE=0
 
 
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_ctype_h" >&5
-printf "%s\n" "$gl_cv_next_ctype_h" >&6; }
-     fi
-     NEXT_CTYPE_H=$gl_cv_next_ctype_h
 
-     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
-       gl_next_as_first_directive='<'ctype.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_ctype_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_CTYPE_H=$gl_next_as_first_directive
+  GL_GNULIB_GETENTROPY=0
 
 
 
+  GL_GNULIB_GETGROUPS=0
 
 
 
+  GL_GNULIB_GETHOSTNAME=0
 
 
 
+  GL_GNULIB_GETLOGIN=0
 
 
-  GL_GNULIB_ISBLANK=0
 
+  GL_GNULIB_GETLOGIN_R=0
 
 
-gl_mda_defines='
-#if defined _WIN32 && !defined __CYGWIN__
-#define access    _access
-#define chdir     _chdir
-#define chmod     _chmod
-#define close     _close
-#define creat     _creat
-#define dup       _dup
-#define dup2      _dup2
-#define ecvt      _ecvt
-#define execl     _execl
-#define execle    _execle
-#define execlp    _execlp
-#define execv     _execv
-#define execve    _execve
-#define execvp    _execvp
-#define execvpe   _execvpe
-#define fcloseall _fcloseall
-#define fcvt      _fcvt
-#define fdopen    _fdopen
-#define fileno    _fileno
-#define gcvt      _gcvt
-#define getcwd    _getcwd
-#define getpid    _getpid
-#define getw      _getw
-#define isatty    _isatty
-#define j0        _j0
-#define j1        _j1
-#define jn        _jn
-#define lfind     _lfind
-#define lsearch   _lsearch
-#define lseek     _lseek
-#define memccpy   _memccpy
-#define mkdir     _mkdir
-#define mktemp    _mktemp
-#define open      _open
-#define putenv    _putenv
-#define putw      _putw
-#define read      _read
-#define rmdir     _rmdir
-#define strdup    _strdup
-#define swab      _swab
-#define tempnam   _tempnam
-#define tzset     _tzset
-#define umask     _umask
-#define unlink    _unlink
-#define utime     _utime
-#define wcsdup    _wcsdup
-#define write     _write
-#define y0        _y0
-#define y1        _y1
-#define yn        _yn
-#endif
-'
 
+  GL_GNULIB_GETOPT_POSIX=0
 
 
 
+  GL_GNULIB_GETPAGESIZE=0
 
 
 
+  GL_GNULIB_GETPASS=0
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if environ is properly declared" >&5
-printf %s "checking if environ is properly declared... " >&6; }
-if test ${gt_cv_var_environ_declaration+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#if HAVE_UNISTD_H
-     #include <unistd.h>
-     #endif
-     /* mingw, BeOS, Haiku declare environ in <stdlib.h>, not in <unistd.h>.  */
-     #include <stdlib.h>
 
-            typedef struct { int foo; } foo_t;
-            extern foo_t environ;
-int
-main (void)
-{
-environ.foo = 1;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  gt_cv_var_environ_declaration=no
-else $as_nop
-  gt_cv_var_environ_declaration=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_var_environ_declaration" >&5
-printf "%s\n" "$gt_cv_var_environ_declaration" >&6; }
-  if test $gt_cv_var_environ_declaration = yes; then
 
-printf "%s\n" "#define HAVE_ENVIRON_DECL 1" >>confdefs.h
+  GL_GNULIB_GETPASS_GNU=0
 
-  fi
 
 
-  if test $gt_cv_var_environ_declaration != yes; then
-    HAVE_DECL_ENVIRON=0
-  fi
+  GL_GNULIB_GETUSERSHELL=0
 
 
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for complete errno.h" >&5
-printf %s "checking for complete errno.h... " >&6; }
-if test ${gl_cv_header_errno_h_complete+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+  GL_GNULIB_GROUP_MEMBER=0
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <errno.h>
-#if !defined ETXTBSY
-booboo
-#endif
-#if !defined ENOMSG
-booboo
-#endif
-#if !defined EIDRM
-booboo
-#endif
+
+  GL_GNULIB_ISATTY=0
+
+
+
+  GL_GNULIB_LCHOWN=0
+
+
+
+  GL_GNULIB_LINK=0
+
+
+
+  GL_GNULIB_LINKAT=0
+
+
+
+  GL_GNULIB_LSEEK=0
+
+
+
+  GL_GNULIB_PIPE=0
+
+
+
+  GL_GNULIB_PIPE2=0
+
+
+
+  GL_GNULIB_PREAD=0
+
+
+
+  GL_GNULIB_PWRITE=0
+
+
+
+  GL_GNULIB_READ=0
+
+
+
+  GL_GNULIB_READLINK=0
+
+
+
+  GL_GNULIB_READLINKAT=0
+
+
+
+  GL_GNULIB_RMDIR=0
+
+
+
+  GL_GNULIB_SETHOSTNAME=0
+
+
+
+  GL_GNULIB_SLEEP=0
+
+
+
+  GL_GNULIB_SYMLINK=0
+
+
+
+  GL_GNULIB_SYMLINKAT=0
+
+
+
+  GL_GNULIB_TRUNCATE=0
+
+
+
+  GL_GNULIB_TTYNAME_R=0
+
+
+
+  GL_GNULIB_UNISTD_H_GETOPT=0
+
+
+
+  GL_GNULIB_UNISTD_H_NONBLOCKING=0
+
+
+
+  GL_GNULIB_UNISTD_H_SIGPIPE=0
+
+
+
+  GL_GNULIB_UNLINK=0
+
+
+
+  GL_GNULIB_UNLINKAT=0
+
+
+
+  GL_GNULIB_USLEEP=0
+
+
+
+  GL_GNULIB_WRITE=0
+
+
+
+  GL_GNULIB_MDA_ACCESS=1
+
+
+
+  GL_GNULIB_MDA_CHDIR=1
+
+
+
+  GL_GNULIB_MDA_CLOSE=1
+
+
+
+  GL_GNULIB_MDA_DUP=1
+
+
+
+  GL_GNULIB_MDA_DUP2=1
+
+
+
+  GL_GNULIB_MDA_EXECL=1
+
+
+
+  GL_GNULIB_MDA_EXECLE=1
+
+
+
+  GL_GNULIB_MDA_EXECLP=1
+
+
+
+  GL_GNULIB_MDA_EXECV=1
+
+
+
+  GL_GNULIB_MDA_EXECVE=1
+
+
+
+  GL_GNULIB_MDA_EXECVP=1
+
+
+
+  GL_GNULIB_MDA_EXECVPE=1
+
+
+
+  GL_GNULIB_MDA_GETCWD=1
+
+
+
+  GL_GNULIB_MDA_GETPID=1
+
+
+
+  GL_GNULIB_MDA_ISATTY=1
+
+
+
+  GL_GNULIB_MDA_LSEEK=1
+
+
+
+  GL_GNULIB_MDA_READ=1
+
+
+
+  GL_GNULIB_MDA_RMDIR=1
+
+
+
+  GL_GNULIB_MDA_SWAB=1
+
+
+
+  GL_GNULIB_MDA_UNLINK=1
+
+
+
+  GL_GNULIB_MDA_WRITE=1
+
+
+
+
+    HAVE_ISBLANK=1;
+
+
+
+
+
+
+
+
+
+
+
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_ctype_h='<'ctype.h'>'
+     else
+       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <ctype.h>" >&5
+printf %s "checking absolute name of <ctype.h>... " >&6; }
+if test ${gl_cv_next_ctype_h+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ctype.h>
+_ACEOF
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
+
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'ctype.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+
+        gl_cv_absolute_ctype_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
+
+          gl_header=$gl_cv_absolute_ctype_h
+          gl_cv_next_ctype_h='"'$gl_header'"'
+
+          ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_ctype_h" >&5
+printf "%s\n" "$gl_cv_next_ctype_h" >&6; }
+     fi
+     NEXT_CTYPE_H=$gl_cv_next_ctype_h
+
+     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
+       gl_next_as_first_directive='<'ctype.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_ctype_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_CTYPE_H=$gl_next_as_first_directive
+
+
+
+
+
+
+
+
+
+
+
+  GL_GNULIB_ISBLANK=0
+
+
+
+gl_mda_defines='
+#if defined _WIN32 && !defined __CYGWIN__
+#define access    _access
+#define chdir     _chdir
+#define chmod     _chmod
+#define close     _close
+#define creat     _creat
+#define dup       _dup
+#define dup2      _dup2
+#define ecvt      _ecvt
+#define execl     _execl
+#define execle    _execle
+#define execlp    _execlp
+#define execv     _execv
+#define execve    _execve
+#define execvp    _execvp
+#define execvpe   _execvpe
+#define fcloseall _fcloseall
+#define fcvt      _fcvt
+#define fdopen    _fdopen
+#define fileno    _fileno
+#define gcvt      _gcvt
+#define getcwd    _getcwd
+#define getpid    _getpid
+#define getw      _getw
+#define isatty    _isatty
+#define j0        _j0
+#define j1        _j1
+#define jn        _jn
+#define lfind     _lfind
+#define lsearch   _lsearch
+#define lseek     _lseek
+#define memccpy   _memccpy
+#define mkdir     _mkdir
+#define mktemp    _mktemp
+#define open      _open
+#define putenv    _putenv
+#define putw      _putw
+#define read      _read
+#define rmdir     _rmdir
+#define strdup    _strdup
+#define swab      _swab
+#define tempnam   _tempnam
+#define tzset     _tzset
+#define umask     _umask
+#define unlink    _unlink
+#define utime     _utime
+#define wcsdup    _wcsdup
+#define write     _write
+#define y0        _y0
+#define y1        _y1
+#define yn        _yn
+#endif
+'
+
+
+
+
+
+
+
+
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if environ is properly declared" >&5
+printf %s "checking if environ is properly declared... " >&6; }
+if test ${gt_cv_var_environ_declaration+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#if HAVE_UNISTD_H
+     #include <unistd.h>
+     #endif
+     /* mingw, BeOS, Haiku declare environ in <stdlib.h>, not in <unistd.h>.  */
+     #include <stdlib.h>
+
+            typedef struct { int foo; } foo_t;
+            extern foo_t environ;
+int
+main (void)
+{
+environ.foo = 1;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  gt_cv_var_environ_declaration=no
+else case e in #(
+  e) gt_cv_var_environ_declaration=yes ;;
+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: $gt_cv_var_environ_declaration" >&5
+printf "%s\n" "$gt_cv_var_environ_declaration" >&6; }
+  if test $gt_cv_var_environ_declaration = yes; then
+
+printf "%s\n" "#define HAVE_ENVIRON_DECL 1" >>confdefs.h
+
+  fi
+
+
+  if test $gt_cv_var_environ_declaration != yes; then
+    HAVE_DECL_ENVIRON=0
+  fi
+
+
+
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for complete errno.h" >&5
+printf %s "checking for complete errno.h... " >&6; }
+if test ${gl_cv_header_errno_h_complete+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <errno.h>
+#if !defined ETXTBSY
+booboo
+#endif
+#if !defined ENOMSG
+booboo
+#endif
+#if !defined EIDRM
+booboo
+#endif
 #if !defined ENOLINK
 booboo
 #endif
@@ -10014,20 +11736,22 @@ booboo
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "booboo" >/dev/null 2>&1
+  $EGREP_TRADITIONAL "booboo" >/dev/null 2>&1
 then :
   gl_cv_header_errno_h_complete=no
-else $as_nop
-  gl_cv_header_errno_h_complete=yes
+else case e in #(
+  e) gl_cv_header_errno_h_complete=yes ;;
+esac
 fi
 rm -rf conftest*
 
-
+   ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_complete" >&5
 printf "%s\n" "$gl_cv_header_errno_h_complete" >&6; }
   if test $gl_cv_header_errno_h_complete = yes; then
-    ERRNO_H=''
+    GL_GENERATE_ERRNO_H=false
   else
 
 
@@ -10045,8 +11769,8 @@ printf %s "checking absolute name of <errno.h>... " >&6; }
 if test ${gl_cv_next_errno_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
 
 
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -10079,10 +11803,11 @@ _ACEOF
         gl_cv_absolute_errno_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
   sed -n "$gl_absolute_header_sed"`
 
-           gl_header=$gl_cv_absolute_errno_h
-           gl_cv_next_errno_h='"'$gl_header'"'
-
+          gl_header=$gl_cv_absolute_errno_h
+          gl_cv_next_errno_h='"'$gl_header'"'
 
+          ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_errno_h" >&5
 printf "%s\n" "$gl_cv_next_errno_h" >&6; }
@@ -10101,26 +11826,17 @@ printf "%s\n" "$gl_cv_next_errno_h" >&6; }
 
 
 
-    ERRNO_H='errno.h'
+    GL_GENERATE_ERRNO_H=true
   fi
 
-   if test -n "$ERRNO_H"; then
-  GL_GENERATE_ERRNO_H_TRUE=
-  GL_GENERATE_ERRNO_H_FALSE='#'
-else
-  GL_GENERATE_ERRNO_H_TRUE='#'
-  GL_GENERATE_ERRNO_H_FALSE=
-fi
-
-
-  if test -n "$ERRNO_H"; then
+  if $GL_GENERATE_ERRNO_H; then
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for EMULTIHOP value" >&5
 printf %s "checking for EMULTIHOP value... " >&6; }
 if test ${gl_cv_header_errno_h_EMULTIHOP+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -10131,11 +11847,12 @@ yes
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "yes" >/dev/null 2>&1
+  $EGREP_TRADITIONAL "yes" >/dev/null 2>&1
 then :
   gl_cv_header_errno_h_EMULTIHOP=yes
-else $as_nop
-  gl_cv_header_errno_h_EMULTIHOP=no
+else case e in #(
+  e) gl_cv_header_errno_h_EMULTIHOP=no ;;
+esac
 fi
 rm -rf conftest*
 
@@ -10151,7 +11868,7 @@ yes
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "yes" >/dev/null 2>&1
+  $EGREP_TRADITIONAL "yes" >/dev/null 2>&1
 then :
   gl_cv_header_errno_h_EMULTIHOP=hidden
 fi
@@ -10171,7 +11888,8 @@ fi
 
         fi
       fi
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_EMULTIHOP" >&5
 printf "%s\n" "$gl_cv_header_errno_h_EMULTIHOP" >&6; }
@@ -10188,14 +11906,14 @@ printf "%s\n" "$gl_cv_header_errno_h_EMULTIHOP" >&6; }
   fi
 
 
-  if test -n "$ERRNO_H"; then
+  if $GL_GENERATE_ERRNO_H; then
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ENOLINK value" >&5
 printf %s "checking for ENOLINK value... " >&6; }
 if test ${gl_cv_header_errno_h_ENOLINK+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -10206,11 +11924,12 @@ yes
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "yes" >/dev/null 2>&1
+  $EGREP_TRADITIONAL "yes" >/dev/null 2>&1
 then :
   gl_cv_header_errno_h_ENOLINK=yes
-else $as_nop
-  gl_cv_header_errno_h_ENOLINK=no
+else case e in #(
+  e) gl_cv_header_errno_h_ENOLINK=no ;;
+esac
 fi
 rm -rf conftest*
 
@@ -10226,7 +11945,7 @@ yes
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "yes" >/dev/null 2>&1
+  $EGREP_TRADITIONAL "yes" >/dev/null 2>&1
 then :
   gl_cv_header_errno_h_ENOLINK=hidden
 fi
@@ -10246,7 +11965,8 @@ fi
 
         fi
       fi
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_ENOLINK" >&5
 printf "%s\n" "$gl_cv_header_errno_h_ENOLINK" >&6; }
@@ -10263,14 +11983,14 @@ printf "%s\n" "$gl_cv_header_errno_h_ENOLINK" >&6; }
   fi
 
 
-  if test -n "$ERRNO_H"; then
+  if $GL_GENERATE_ERRNO_H; then
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for EOVERFLOW value" >&5
 printf %s "checking for EOVERFLOW value... " >&6; }
 if test ${gl_cv_header_errno_h_EOVERFLOW+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -10281,11 +12001,12 @@ yes
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "yes" >/dev/null 2>&1
+  $EGREP_TRADITIONAL "yes" >/dev/null 2>&1
 then :
   gl_cv_header_errno_h_EOVERFLOW=yes
-else $as_nop
-  gl_cv_header_errno_h_EOVERFLOW=no
+else case e in #(
+  e) gl_cv_header_errno_h_EOVERFLOW=no ;;
+esac
 fi
 rm -rf conftest*
 
@@ -10301,7 +12022,7 @@ yes
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "yes" >/dev/null 2>&1
+  $EGREP_TRADITIONAL "yes" >/dev/null 2>&1
 then :
   gl_cv_header_errno_h_EOVERFLOW=hidden
 fi
@@ -10321,7 +12042,8 @@ fi
 
         fi
       fi
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_EOVERFLOW" >&5
 printf "%s\n" "$gl_cv_header_errno_h_EOVERFLOW" >&6; }
@@ -10338,112 +12060,356 @@ printf "%s\n" "$gl_cv_header_errno_h_EOVERFLOW" >&6; }
   fi
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5
-printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; }
-if test ${ac_cv_c_undeclared_builtin_options+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  ac_save_CFLAGS=$CFLAGS
-   ac_cv_c_undeclared_builtin_options='cannot detect'
-   for ac_arg in '' -fno-builtin; do
-     CFLAGS="$ac_save_CFLAGS $ac_arg"
-     # This test program should *not* compile successfully.
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-int
-main (void)
-{
-(void) strchr;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
 
-else $as_nop
-  # This test program should compile successfully.
-        # No library function is consistently available on
-        # freestanding implementations, so test against a dummy
-        # declaration.  Include always-available headers on the
-        # off chance that they somehow elicit warnings.
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <float.h>
-#include <limits.h>
-#include <stdarg.h>
-#include <stddef.h>
-extern void ac_decl (int, char *);
 
-int
-main (void)
-{
-(void) ac_decl (0, (char *) 0);
-  (void) ac_decl;
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  if test x"$ac_arg" = x
-then :
-  ac_cv_c_undeclared_builtin_options='none needed'
-else $as_nop
-  ac_cv_c_undeclared_builtin_options=$ac_arg
-fi
-          break
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-    done
-    CFLAGS=$ac_save_CFLAGS
 
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_undeclared_builtin_options" >&5
-printf "%s\n" "$ac_cv_c_undeclared_builtin_options" >&6; }
-  case $ac_cv_c_undeclared_builtin_options in #(
-  'cannot detect') :
-    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot make $CC report undeclared builtins
-See \`config.log' for more details" "$LINENO" 5; } ;; #(
-  'none needed') :
-    ac_c_undeclared_builtin_options='' ;; #(
-  *) :
-    ac_c_undeclared_builtin_options=$ac_cv_c_undeclared_builtin_options ;;
-esac
 
-ac_fn_check_decl "$LINENO" "strerror_r" "ac_cv_have_decl_strerror_r" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_strerror_r" = xyes
-then :
-  ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
-fi
-printf "%s\n" "#define HAVE_DECL_STRERROR_R $ac_have_decl" >>confdefs.h
 
 
-if test $ac_cv_have_decl_strerror_r = yes; then
-  # For backward compatibility's sake, define HAVE_STRERROR_R.
-  # (We used to run AC_CHECK_FUNCS_ONCE for strerror_r, as well
-  # as AC_CHECK_DECLS_ONCE.)
 
-printf "%s\n" "#define HAVE_STRERROR_R 1" >>confdefs.h
 
-fi
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether strerror_r returns char *" >&5
-printf %s "checking whether strerror_r returns char *... " >&6; }
-if test ${ac_cv_func_strerror_r_char_p+y}
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_error_h='<'error.h'>'
+     else
+       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <error.h>" >&5
+printf %s "checking absolute name of <error.h>... " >&6; }
+if test ${gl_cv_next_error_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
+else case e in #(
+  e)
+             if test $ac_cv_header_error_h = yes; then
 
+
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <error.h>
+_ACEOF
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
+
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'error.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+
+        gl_cv_absolute_error_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
+
+          gl_header=$gl_cv_absolute_error_h
+          gl_cv_next_error_h='"'$gl_header'"'
+          else
+               gl_cv_next_error_h='<'error.h'>'
+             fi
+
+          ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_error_h" >&5
+printf "%s\n" "$gl_cv_next_error_h" >&6; }
+     fi
+     NEXT_ERROR_H=$gl_cv_next_error_h
+
+     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
+       gl_next_as_first_directive='<'error.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_error_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_ERROR_H=$gl_next_as_first_directive
+
+
+
+
+  if test $ac_cv_header_error_h = yes; then
+    HAVE_ERROR_H=1
+  else
+    HAVE_ERROR_H=0
+  fi
+
+
+  REPLACE_ERROR=0
+
+
+
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for error" >&5
+printf %s "checking for error... " >&6; }
+if test ${gl_cv_onwards_func_error+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+  exec 9>&6 6>/dev/null
+
+       case "$host_os" in
+
+         linux*-android*)
+           ac_fn_check_decl "$LINENO" "error" "ac_cv_have_decl_error" "#include <error.h>
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_error" = xyes
+then :
+
+fi
+           if test $ac_cv_have_decl_error = yes; then
+             ac_fn_c_check_func "$LINENO" "error" "ac_cv_func_error"
+if test "x$ac_cv_func_error" = xyes
+then :
+
+fi
+
+             if test $ac_cv_func_error = yes; then
+               gl_cv_onwards_func_error=yes
+             else
+                                                            gl_cv_onwards_func_error='future OS version'
+             fi
+           else
+             gl_cv_onwards_func_error='future OS version'
+           fi
+           ;;
+
+
+         *)
+           ac_fn_c_check_func "$LINENO" "error" "ac_cv_func_error"
+if test "x$ac_cv_func_error" = xyes
+then :
+
+fi
+
+           gl_cv_onwards_func_error=$ac_cv_func_error
+           ;;
+
+       esac
+
+  exec 6>&9 9>&-
+
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_onwards_func_error" >&5
+printf "%s\n" "$gl_cv_onwards_func_error" >&6; }
+
+  case "$gl_cv_onwards_func_error" in
+    future*) ac_cv_func_error=no ;;
+    *)       ac_cv_func_error=$gl_cv_onwards_func_error ;;
+  esac
+  if test $ac_cv_func_error = yes; then
+
+printf "%s\n" "#define HAVE_ERROR 1" >>confdefs.h
+
+  fi
+
+
+  if test $ac_cv_func_error = yes; then
+    HAVE_ERROR=1
+  else
+    HAVE_ERROR=0
+    case "$gl_cv_onwards_func_error" in
+      future*) REPLACE_ERROR=1 ;;
+    esac
+  fi
+
+        ac_fn_check_decl "$LINENO" "error_at_line" "ac_cv_have_decl_error_at_line" "#include <error.h>
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_error_at_line" = xyes
+then :
+
+fi
+  if test $ac_cv_have_decl_error_at_line = yes; then
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for error_at_line" >&5
+printf %s "checking for error_at_line... " >&6; }
+if test ${ac_cv_lib_error_at_line+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <error.h>
+int
+main (void)
+{
+error_at_line (0, 0, "", 0, "an error occurred");
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+  ac_cv_lib_error_at_line=yes
+else case e in #(
+  e) ac_cv_lib_error_at_line=no ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+    conftest$ac_exeext conftest.$ac_ext ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_error_at_line" >&5
+printf "%s\n" "$ac_cv_lib_error_at_line" >&6; }
+  else
+    ac_cv_lib_error_at_line=no
+  fi
+  if test $ac_cv_lib_error_at_line = yes; then
+    HAVE_ERROR_AT_LINE=1
+  else
+    HAVE_ERROR_AT_LINE=0
+  fi
+  REPLACE_ERROR_AT_LINE=0
+
+  if test $ac_cv_func_error = yes && test $ac_cv_lib_error_at_line = yes; then
+            { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working error function" >&5
+printf %s "checking for working error function... " >&6; }
+if test ${gl_cv_func_working_error+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test $cross_compiling != yes; then
+         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+              #include <error.h>
+              static void print_no_progname (void) {}
+
+int
+main (void)
+{
+
+              error_print_progname = print_no_progname;
+              error (0, 0, "foo");
+
+  ;
+  return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+  rm -f conftest.out
+            if test -s conftest$ac_exeext \
+               && ./conftest$ac_exeext 2> conftest.out; then
+              if grep ' ' conftest.out >/dev/null; then
+                gl_cv_func_working_error=no
+              else
+                gl_cv_func_working_error=yes
+              fi
+            else
+              gl_cv_func_working_error=no
+            fi
+            rm -f conftest.out
+
+else case e in #(
+  e) gl_cv_func_working_error=no ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+    conftest$ac_exeext conftest.$ac_ext
+       else
+         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+              #include <error.h>
+
+int
+main (void)
+{
+
+              error (0, 0, "foo");
+
+  ;
+  return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  case "$host_os" in
+                               # Guess yes on glibc systems.
+              *-gnu* | gnu*)   gl_cv_func_working_error="guessing yes" ;;
+                               # Guess no on Android.
+              linux*-android*) gl_cv_func_working_error="guessing no" ;;
+                               # If we don't know, obey --enable-cross-guesses.
+              *)               gl_cv_func_working_error="$gl_cross_guess_normal" ;;
+            esac
+
+else case e in #(
+  e) gl_cv_func_working_error=no ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+       fi
+       ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_error" >&5
+printf "%s\n" "$gl_cv_func_working_error" >&6; }
+    case "$gl_cv_func_working_error" in
+      *no)
+        REPLACE_ERROR=1
+        REPLACE_ERROR_AT_LINE=1
+        ;;
+    esac
+  fi
+
+  if test $HAVE_ERROR = 0 || test $REPLACE_ERROR = 1 \
+     || test $HAVE_ERROR_AT_LINE = 0 || test $REPLACE_ERROR_AT_LINE = 1; then
+        GL_GENERATE_ERROR_H=true
+  else
+    GL_GENERATE_ERROR_H=false
+  fi
+
+
+
+
+
+
+ac_fn_check_decl "$LINENO" "strerror_r" "ac_cv_have_decl_strerror_r" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_strerror_r" = xyes
+then :
+  ac_have_decl=1
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
+fi
+printf "%s\n" "#define HAVE_DECL_STRERROR_R $ac_have_decl" >>confdefs.h
+
+
+if test $ac_cv_have_decl_strerror_r = yes; then
+  # For backward compatibility's sake, define HAVE_STRERROR_R.
+  # (We used to run AC_CHECK_FUNCS_ONCE for strerror_r, as well
+  # as AC_CHECK_DECLS_ONCE.)
+
+printf "%s\n" "#define HAVE_STRERROR_R 1" >>confdefs.h
+
+fi
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether strerror_r returns char *" >&5
+printf %s "checking whether strerror_r returns char *... " >&6; }
+if test ${ac_cv_func_strerror_r_char_p+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
     ac_cv_func_strerror_r_char_p=no
     if test $ac_cv_have_decl_strerror_r = yes; then
       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -10469,7 +12435,8 @@ fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
 
     fi
-
+   ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strerror_r_char_p" >&5
 printf "%s\n" "$ac_cv_func_strerror_r_char_p" >&6; }
   XGETTEXT_EXTRA_OPTIONS=
 
 
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ctype.h defines __header_inline" >&5
+printf %s "checking whether ctype.h defines __header_inline... " >&6; }
+if test ${gl_cv_have___header_inline+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ctype.h>
+                         #ifndef __header_inline
+                          #error "<ctype.h> does not define __header_inline"
+                         #endif
+
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"
+then :
+  gl_cv_have___header_inline=yes
+else case e in #(
+  e) gl_cv_have___header_inline=no ;;
+esac
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have___header_inline" >&5
+printf "%s\n" "$gl_cv_have___header_inline" >&6; }
+  if test "$gl_cv_have___header_inline" = yes; then
+
+printf "%s\n" "#define HAVE___HEADER_INLINE 1" >>confdefs.h
+
+  fi
+
 
 
 
@@ -10535,8 +12534,8 @@ printf %s "checking for working fcntl.h... " >&6; }
 if test ${gl_cv_header_working_fcntl_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test "$cross_compiling" = yes
+else case e in #(
+  e) if test "$cross_compiling" = yes
 then :
   case "$host_os" in
                   # Guess 'no' on native Windows.
@@ -10544,8 +12543,8 @@ then :
           *)      gl_cv_header_working_fcntl_h=cross-compiling ;;
         esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/types.h>
            #include <sys/stat.h>
@@ -10647,19 +12646,22 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_header_working_fcntl_h=yes
-else $as_nop
-  case $? in #(
+else case e in #(
+  e) case $? in #(
         4) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #(
         64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #(
         68) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #(
          *) gl_cv_header_working_fcntl_h='no';;
-        esac
+        esac ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_fcntl_h" >&5
 printf "%s\n" "$gl_cv_header_working_fcntl_h" >&6; }
@@ -10686,8 +12688,8 @@ printf "%s\n" "#define HAVE_WORKING_O_NOFOLLOW $ac_val" >>confdefs.h
 if test "x$ac_cv_type_pid_t" = xyes
 then :
 
-else $as_nop
-                                          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e)                                         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
           #if defined _WIN64 && !defined __CYGWIN__
@@ -10706,14 +12708,16 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   ac_pid_type='int'
-else $as_nop
-  ac_pid_type='__int64'
+else case e in #(
+  e) ac_pid_type='__int64' ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
 
 printf "%s\n" "#define pid_t $ac_pid_type" >>confdefs.h
 
-
+     ;;
+esac
 fi
 
 
@@ -10721,10 +12725,11 @@ ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default"
 if test "x$ac_cv_type_mode_t" = xyes
 then :
 
-else $as_nop
-
+else case e in #(
+  e)
 printf "%s\n" "#define mode_t int" >>confdefs.h
-
+ ;;
+esac
 fi
 
 
@@ -10746,8 +12751,8 @@ printf %s "checking absolute name of <fcntl.h>... " >&6; }
 if test ${gl_cv_next_fcntl_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
 
 
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -10780,10 +12785,11 @@ _ACEOF
         gl_cv_absolute_fcntl_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
   sed -n "$gl_absolute_header_sed"`
 
-           gl_header=$gl_cv_absolute_fcntl_h
-           gl_cv_next_fcntl_h='"'$gl_header'"'
-
+          gl_header=$gl_cv_absolute_fcntl_h
+          gl_cv_next_fcntl_h='"'$gl_header'"'
 
+          ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_fcntl_h" >&5
 printf "%s\n" "$gl_cv_next_fcntl_h" >&6; }
@@ -10814,6 +12820,73 @@ printf "%s\n" "$gl_cv_next_fcntl_h" >&6; }
 
 
 
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for mempcpy" >&5
+printf %s "checking for mempcpy... " >&6; }
+if test ${gl_cv_onwards_func_mempcpy+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+  exec 9>&6 6>/dev/null
+
+       case "$host_os" in
+
+         linux*-android*)
+           ac_fn_check_decl "$LINENO" "mempcpy" "ac_cv_have_decl_mempcpy" "#include <string.h>
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_mempcpy" = xyes
+then :
+
+fi
+           if test $ac_cv_have_decl_mempcpy = yes; then
+             ac_fn_c_check_func "$LINENO" "mempcpy" "ac_cv_func_mempcpy"
+if test "x$ac_cv_func_mempcpy" = xyes
+then :
+
+fi
+
+             if test $ac_cv_func_mempcpy = yes; then
+               gl_cv_onwards_func_mempcpy=yes
+             else
+                                                            gl_cv_onwards_func_mempcpy='future OS version'
+             fi
+           else
+             gl_cv_onwards_func_mempcpy='future OS version'
+           fi
+           ;;
+
+
+         *)
+           ac_fn_c_check_func "$LINENO" "mempcpy" "ac_cv_func_mempcpy"
+if test "x$ac_cv_func_mempcpy" = xyes
+then :
+
+fi
+
+           gl_cv_onwards_func_mempcpy=$ac_cv_func_mempcpy
+           ;;
+
+       esac
+
+  exec 6>&9 9>&-
+
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_onwards_func_mempcpy" >&5
+printf "%s\n" "$gl_cv_onwards_func_mempcpy" >&6; }
+
+  case "$gl_cv_onwards_func_mempcpy" in
+    future*) ac_cv_func_mempcpy=no ;;
+    *)       ac_cv_func_mempcpy=$gl_cv_onwards_func_mempcpy ;;
+  esac
+  if test $ac_cv_func_mempcpy = yes; then
+
+printf "%s\n" "#define HAVE_MEMPCPY 1" >>confdefs.h
+
+  fi
+
+
 
 
     HAVE_FNMATCH=1;
@@ -10841,8 +12914,8 @@ printf %s "checking absolute name of <fnmatch.h>... " >&6; }
 if test ${gl_cv_next_fnmatch_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
              if test $ac_cv_header_fnmatch_h = yes; then
 
 
@@ -10878,13 +12951,14 @@ _ACEOF
         gl_cv_absolute_fnmatch_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
   sed -n "$gl_absolute_header_sed"`
 
-           gl_header=$gl_cv_absolute_fnmatch_h
-           gl_cv_next_fnmatch_h='"'$gl_header'"'
+          gl_header=$gl_cv_absolute_fnmatch_h
+          gl_cv_next_fnmatch_h='"'$gl_header'"'
           else
                gl_cv_next_fnmatch_h='<'fnmatch.h'>'
              fi
 
-
+          ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_fnmatch_h" >&5
 printf "%s\n" "$gl_cv_next_fnmatch_h" >&6; }
@@ -10913,25 +12987,16 @@ printf "%s\n" "$gl_cv_next_fnmatch_h" >&6; }
   fi
 
 
-  FNMATCH_H=''
+  GL_GENERATE_FNMATCH_H=false
      if false; then
-              FNMATCH_H=fnmatch.h
+              GL_GENERATE_FNMATCH_H=true
      else
        if test $ac_cv_header_fnmatch_h != yes; then
-                  FNMATCH_H=fnmatch.h
+                  GL_GENERATE_FNMATCH_H=true
        fi
      fi
 
 
-   if test -n "$FNMATCH_H"; then
-  GL_GENERATE_FNMATCH_H_TRUE=
-  GL_GENERATE_FNMATCH_H_FALSE='#'
-else
-  GL_GENERATE_FNMATCH_H_TRUE='#'
-  GL_GENERATE_FNMATCH_H_FALSE=
-fi
-
-
 
 
 
@@ -10950,8 +13015,8 @@ printf %s "checking for mbstate_t... " >&6; }
 if test ${ac_cv_type_mbstate_t+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $ac_includes_default
              #include <wchar.h>
@@ -10966,10 +13031,12 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   ac_cv_type_mbstate_t=yes
-else $as_nop
-  ac_cv_type_mbstate_t=no
+else case e in #(
+  e) ac_cv_type_mbstate_t=no ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_mbstate_t" >&5
 printf "%s\n" "$ac_cv_type_mbstate_t" >&6; }
@@ -10991,7 +13058,9 @@ printf "%s\n" "#define mbstate_t int" >>confdefs.h
   HAVE_DECL_FTELLO=1;
   HAVE_DECL_GETDELIM=1;
   HAVE_DECL_GETLINE=1;
+  HAVE_DECL_GETW=1;
   HAVE_DECL_OBSTACK_PRINTF=1;
+  HAVE_DECL_PUTW=1;
   HAVE_DECL_SNPRINTF=1;
   HAVE_DECL_VSNPRINTF=1;
   HAVE_DPRINTF=1;
@@ -11007,6 +13076,7 @@ printf "%s\n" "#define mbstate_t int" >>confdefs.h
   REPLACE_FDOPEN=0;
   REPLACE_FFLUSH=0;
   REPLACE_FOPEN=0;
+  REPLACE_FOPEN_FOR_FOPEN_GNU=0;
   REPLACE_FPRINTF=0;
   REPLACE_FPURGE=0;
   REPLACE_FREOPEN=0;
@@ -11037,6 +13107,292 @@ printf "%s\n" "#define mbstate_t int" >>confdefs.h
 
 
 
+
+  case "$host_os" in
+    mingw* | pw*)
+            REPLACE_FOPEN=1
+            gl_cv_func_fopen_slash="guessing no"
+      ;;
+    *)
+                  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether fopen recognizes a trailing slash" >&5
+printf %s "checking whether fopen recognizes a trailing slash... " >&6; }
+if test ${gl_cv_func_fopen_slash+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+          if test "$cross_compiling" = yes
+then :
+
+             case "$host_os" in
+               aix* | hpux* | solaris2.[0-9] | solaris2.[0-9].*)
+                 gl_cv_func_fopen_slash="guessing no" ;;
+               *)
+                 gl_cv_func_fopen_slash="guessing yes" ;;
+             esac
+
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <stddef.h>
+#include <stdio.h>
+int main ()
+{
+  FILE *fp = fopen ("conftest.sl/", "w");
+  int result = (fp != NULL);
+  if (fp != NULL)
+    fclose (fp);
+  return result;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+  gl_cv_func_fopen_slash=yes
+else case e in #(
+  e) gl_cv_func_fopen_slash=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
+
+          rm -f conftest.sl
+         ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fopen_slash" >&5
+printf "%s\n" "$gl_cv_func_fopen_slash" >&6; }
+      ;;
+  esac
+  case "$gl_cv_func_fopen_slash" in
+    *no)
+
+printf "%s\n" "#define FOPEN_TRAILING_SLASH_BUG 1" >>confdefs.h
+
+      REPLACE_FOPEN=1
+      ;;
+  esac
+
+
+
+
+
+
+
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether fflush works on input streams" >&5
+printf %s "checking whether fflush works on input streams... " >&6; }
+if test ${gl_cv_func_fflush_stdin+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) echo hello world > conftest.txt
+     if test "$cross_compiling" = yes
+then :
+  case "$host_os" in
+                  # Guess no on native Windows.
+          mingw*) gl_cv_func_fflush_stdin="guessing no" ;;
+          *)      gl_cv_func_fflush_stdin=cross ;;
+        esac
+
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#else /* on Windows with MSVC */
+# include <io.h>
+#endif
+
+
+$gl_mda_defines
+
+int
+main (void)
+{
+FILE *f = fopen ("conftest.txt", "r");
+         char buffer[10];
+         int fd;
+         int c;
+         if (f == NULL)
+           return 1;
+         fd = fileno (f);
+         if (fd < 0 || fread (buffer, 1, 5, f) != 5)
+           { fclose (f); return 2; }
+         /* For deterministic results, ensure f read a bigger buffer.  */
+         if (lseek (fd, 0, SEEK_CUR) == 5)
+           { fclose (f); return 3; }
+         /* POSIX requires fflush-fseek to set file offset of fd.  This fails
+            on BSD systems and on mingw.  */
+         if (fflush (f) != 0 || fseek (f, 0, SEEK_CUR) != 0)
+           { fclose (f); return 4; }
+         if (lseek (fd, 0, SEEK_CUR) != 5)
+           { fclose (f); return 5; }
+         /* Verify behaviour of fflush after ungetc. See
+            <https://www.opengroup.org/austin/aardvark/latest/xshbug3.txt>  */
+         /* Verify behaviour of fflush after a backup ungetc.  This fails on
+            mingw.  */
+         c = fgetc (f);
+         ungetc (c, f);
+         fflush (f);
+         if (fgetc (f) != c)
+           { fclose (f); return 6; }
+         /* Verify behaviour of fflush after a non-backup ungetc.  This fails
+            on glibc 2.8 and on BSD systems.  */
+         c = fgetc (f);
+         ungetc ('@', f);
+         fflush (f);
+         if (fgetc (f) != c)
+           { fclose (f); return 7; }
+         fclose (f);
+         return 0;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+  gl_cv_func_fflush_stdin=yes
+else case e in #(
+  e) gl_cv_func_fflush_stdin=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
+
+     rm conftest.txt
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fflush_stdin" >&5
+printf "%s\n" "$gl_cv_func_fflush_stdin" >&6; }
+  case "$gl_cv_func_fflush_stdin" in
+    *yes) gl_func_fflush_stdin=1 ;;
+    *no)  gl_func_fflush_stdin=0 ;;
+    *)    gl_func_fflush_stdin='(-1)' ;;
+  esac
+
+printf "%s\n" "#define FUNC_FFLUSH_STDIN $gl_func_fflush_stdin" >>confdefs.h
+
+
+  case "$gl_cv_func_fflush_stdin" in
+    *yes) ;;
+    *) REPLACE_FCLOSE=1 ;;
+  esac
+
+
+  if test $REPLACE_CLOSE = 1; then
+    REPLACE_FCLOSE=1
+  fi
+
+  case "$host_os" in
+    openedition) REPLACE_FCLOSE=1 ;;
+  esac
+
+  if test $REPLACE_FCLOSE = 0; then
+
+
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether fclose works on input streams" >&5
+printf %s "checking whether fclose works on input streams... " >&6; }
+if test ${gl_cv_func_fclose_stdin+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) echo hello world > conftest.txt
+     if test "$cross_compiling" = yes
+then :
+  case "$host_os" in
+                              # Guess no on glibc systems.
+          *-gnu* | gnu*)      gl_cv_func_fclose_stdin="guessing no" ;;
+                              # Guess yes on musl systems.
+          *-musl* | midipix*) gl_cv_func_fclose_stdin="guessing yes" ;;
+                              # Guess no on native Windows.
+          mingw*)             gl_cv_func_fclose_stdin="guessing no" ;;
+                              # If we don't know, obey --enable-cross-guesses.
+          *)                  gl_cv_func_fclose_stdin="$gl_cross_guess_normal" ;;
+        esac
+
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <fcntl.h>
+            #include <stdio.h>
+            #if HAVE_UNISTD_H
+            # include <unistd.h>
+            #else /* on Windows with MSVC */
+            # include <io.h>
+            #endif
+
+
+$gl_mda_defines
+
+int
+main (void)
+{
+int fd;
+            int fd2;
+            FILE *fp;
+            fd = open ("conftest.txt", O_RDONLY);
+            if (fd < 0)
+              return 1;
+            if (lseek (fd, 1, SEEK_SET) != 1)
+              return 2;
+            fd2 = dup (fd);
+            if (fd2 < 0)
+              return 3;
+            fp = fdopen (fd2, "r");
+            if (fp == NULL)
+              return 4;
+            if (fgetc (fp) != 'e')
+              { fclose (fp); return 5; }
+            /* This fclose() call should reposition the underlying file
+               descriptor.  */
+            if (fclose (fp) != 0)
+              return 6;
+            if (lseek (fd2, 0, SEEK_CUR) != -1) /* should fail with EBADF */
+              return 7;
+            /* Verify the file position.  */
+            if (lseek (fd, 0, SEEK_CUR) != 2)
+              return 8;
+            return 0;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+  gl_cv_func_fclose_stdin=yes
+else case e in #(
+  e) gl_cv_func_fclose_stdin=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
+
+     rm conftest.txt
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fclose_stdin" >&5
+printf "%s\n" "$gl_cv_func_fclose_stdin" >&6; }
+
+    case "$gl_cv_func_fclose_stdin" in
+      *yes) ;;
+      *) REPLACE_FCLOSE=1 ;;
+    esac
+  fi
+
+
+
   GL_GNULIB_DPRINTF=0
 
 
@@ -11065,6 +13421,10 @@ printf "%s\n" "#define mbstate_t int" >>confdefs.h
 
 
 
+  GL_GNULIB_FOPEN_GNU=0
+
+
+
   GL_GNULIB_FPRINTF=0
 
 
@@ -11286,6 +13646,7 @@ printf "%s\n" "#define mbstate_t int" >>confdefs.h
   HAVE_MKNOD=1;
   HAVE_MKNODAT=1;
   HAVE_UTIMENSAT=1;
+  REPLACE_CHMOD=0;
   REPLACE_FCHMODAT=0;
   REPLACE_FSTAT=0;
   REPLACE_FSTATAT=0;
@@ -11304,8 +13665,8 @@ printf %s "checking whether stat file-mode macros are broken... " >&6; }
 if test ${ac_cv_header_stat_broken+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -11330,10 +13691,12 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   ac_cv_header_stat_broken=no
-else $as_nop
-  ac_cv_header_stat_broken=yes
+else case e in #(
+  e) ac_cv_header_stat_broken=yes ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stat_broken" >&5
 printf "%s\n" "$ac_cv_header_stat_broken" >&6; }
@@ -11352,8 +13715,8 @@ printf %s "checking for 64-bit off_t... " >&6; }
 if test ${gl_cv_type_off_t_64+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/types.h>
                 int verify_off_t_size[sizeof (off_t) >= 8 ? 1 : -1];
@@ -11369,11 +13732,13 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_type_off_t_64=yes
-else $as_nop
-  gl_cv_type_off_t_64=no
+else case e in #(
+  e) gl_cv_type_off_t_64=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_type_off_t_64" >&5
 printf "%s\n" "$gl_cv_type_off_t_64" >&6; }
@@ -11387,8 +13752,8 @@ printf %s "checking for 64-bit st_size... " >&6; }
 if test ${gl_cv_member_st_size_64+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/types.h>
                 struct stat buf;
@@ -11405,11 +13770,13 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_member_st_size_64=yes
-else $as_nop
-  gl_cv_member_st_size_64=no
+else case e in #(
+  e) gl_cv_member_st_size_64=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_member_st_size_64" >&5
 printf "%s\n" "$gl_cv_member_st_size_64" >&6; }
@@ -11447,8 +13814,8 @@ printf %s "checking absolute name of <sys/stat.h>... " >&6; }
 if test ${gl_cv_next_sys_stat_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
              if test $ac_cv_header_sys_stat_h = yes; then
 
 
@@ -11484,13 +13851,14 @@ _ACEOF
         gl_cv_absolute_sys_stat_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
   sed -n "$gl_absolute_header_sed"`
 
-           gl_header=$gl_cv_absolute_sys_stat_h
-           gl_cv_next_sys_stat_h='"'$gl_header'"'
+          gl_header=$gl_cv_absolute_sys_stat_h
+          gl_cv_next_sys_stat_h='"'$gl_header'"'
           else
                gl_cv_next_sys_stat_h='<'sys/stat.h'>'
              fi
 
-
+          ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_stat_h" >&5
 printf "%s\n" "$gl_cv_next_sys_stat_h" >&6; }
@@ -11528,10 +13896,11 @@ printf "%s\n" "$gl_cv_next_sys_stat_h" >&6; }
 if test "x$ac_cv_type_nlink_t" = xyes
 then :
 
-else $as_nop
-
+else case e in #(
+  e)
 printf "%s\n" "#define nlink_t int" >>confdefs.h
-
+ ;;
+esac
 fi
 
 
 
 
 
+  GL_GNULIB_CHMOD=0
+
+
+
   GL_GNULIB_FCHMODAT=0
 
 
@@ -11642,8 +14015,9 @@ ac_fn_check_decl "$LINENO" "getdtablesize" "ac_cv_have_decl_getdtablesize" "$ac_
 if test "x$ac_cv_have_decl_getdtablesize" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_GETDTABLESIZE $ac_have_decl" >>confdefs.h
 
@@ -11669,8 +14043,8 @@ printf %s "checking absolute name of <getopt.h>... " >&6; }
 if test ${gl_cv_next_getopt_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
              if test $ac_cv_header_getopt_h = yes; then
 
 
@@ -11706,13 +14080,14 @@ _ACEOF
         gl_cv_absolute_getopt_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
   sed -n "$gl_absolute_header_sed"`
 
-           gl_header=$gl_cv_absolute_getopt_h
-           gl_cv_next_getopt_h='"'$gl_header'"'
+          gl_header=$gl_cv_absolute_getopt_h
+          gl_cv_next_getopt_h='"'$gl_header'"'
           else
                gl_cv_next_getopt_h='<'getopt.h'>'
              fi
 
-
+          ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_getopt_h" >&5
 printf "%s\n" "$gl_cv_next_getopt_h" >&6; }
@@ -11748,8 +14123,9 @@ if test "x$ac_cv_header_getopt_h" = xyes
 then :
   printf "%s\n" "#define HAVE_GETOPT_H 1" >>confdefs.h
 
-else $as_nop
-  gl_replace_getopt=yes
+else case e in #(
+  e) gl_replace_getopt=yes ;;
+esac
 fi
 
 done
@@ -11764,8 +14140,9 @@ if test "x$ac_cv_func_getopt_long_only" = xyes
 then :
   printf "%s\n" "#define HAVE_GETOPT_LONG_ONLY 1" >>confdefs.h
 
-else $as_nop
-  gl_replace_getopt=yes
+else case e in #(
+  e) gl_replace_getopt=yes ;;
+esac
 fi
 
 done
@@ -11777,17 +14154,17 @@ printf %s "checking whether getopt is POSIX compatible... " >&6; }
 if test ${gl_cv_func_getopt_posix+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
                                                 if test $cross_compiling = no; then
                               if test "$cross_compiling" = yes
 then :
-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
 as_fn_error $? "cannot run test program while cross compiling
-See \`config.log' for more details" "$LINENO" 5; }
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+See 'config.log' for more details" "$LINENO" 5; }
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <unistd.h>
@@ -11819,22 +14196,24 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_getopt_posix=maybe
-else $as_nop
-  gl_cv_func_getopt_posix=no
+else case e in #(
+  e) gl_cv_func_getopt_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
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
           if test $gl_cv_func_getopt_posix = maybe; then
                                     if test "$cross_compiling" = yes
 then :
-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
 as_fn_error $? "cannot run test program while cross compiling
-See \`config.log' for more details" "$LINENO" 5; }
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+See 'config.log' for more details" "$LINENO" 5; }
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <unistd.h>
@@ -11880,23 +14259,25 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_getopt_posix=maybe
-else $as_nop
-  gl_cv_func_getopt_posix=no
+else case e in #(
+  e) gl_cv_func_getopt_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
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
           fi
           if test $gl_cv_func_getopt_posix = maybe; then
                         if test "$cross_compiling" = yes
 then :
-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
 as_fn_error $? "cannot run test program while cross compiling
-See \`config.log' for more details" "$LINENO" 5; }
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+See 'config.log' for more details" "$LINENO" 5; }
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <unistd.h>
@@ -11924,11 +14305,13 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_getopt_posix=yes
-else $as_nop
-  gl_cv_func_getopt_posix=no
+else case e in #(
+  e) gl_cv_func_getopt_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
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
           fi
@@ -11938,7 +14321,8 @@ fi
             *)                       gl_cv_func_getopt_posix="guessing yes";;
           esac
         fi
-
+       ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getopt_posix" >&5
 printf "%s\n" "$gl_cv_func_getopt_posix" >&6; }
@@ -11953,8 +14337,8 @@ printf %s "checking for working GNU getopt function... " >&6; }
 if test ${gl_cv_func_getopt_gnu+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  # Even with POSIXLY_CORRECT, the GNU extension of leading '-' in the
+else case e in #(
+  e) # Even with POSIXLY_CORRECT, the GNU extension of leading '-' in the
        # optstring is necessary for programs like m4 that have POSIX-mandated
        # semantics for supporting options interspersed with files.
        # Also, since getopt_long is a GNU extension, we require optind=0.
@@ -11972,8 +14356,8 @@ else $as_nop
 then :
                              gl_cv_func_getopt_gnu="$gl_cross_guess_normal"
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <getopt.h>
                            #include <stddef.h>
@@ -12175,11 +14559,13 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_getopt_gnu=yes
-else $as_nop
-  gl_cv_func_getopt_gnu=no
+else case e in #(
+  e) gl_cv_func_getopt_gnu=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
        case $gl_had_POSIXLY_CORRECT in
@@ -12187,7 +14573,8 @@ fi
          yes) { POSIXLY_CORRECT=; unset POSIXLY_CORRECT;}; POSIXLY_CORRECT=1 ;;
          *) { POSIXLY_CORRECT=; unset POSIXLY_CORRECT;} ;;
        esac
-
+       ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getopt_gnu" >&5
 printf "%s\n" "$gl_cv_func_getopt_gnu" >&6; }
@@ -12199,16 +14586,16 @@ printf %s "checking for working GNU getopt_long function... " >&6; }
 if test ${gl_cv_func_getopt_long_gnu+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test "$cross_compiling" = yes
+else case e in #(
+  e) if test "$cross_compiling" = yes
 then :
               case "$host_os" in
               openbsd*) gl_cv_func_getopt_long_gnu="guessing no";;
               *)        gl_cv_func_getopt_long_gnu="guessing yes";;
             esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <getopt.h>
                 #include <stddef.h>
@@ -12244,14 +14631,17 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_getopt_long_gnu=yes
-else $as_nop
-  gl_cv_func_getopt_long_gnu=no
+else case e in #(
+  e) gl_cv_func_getopt_long_gnu=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
-
+         ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getopt_long_gnu" >&5
 printf "%s\n" "$gl_cv_func_getopt_long_gnu" >&6; }
@@ -12265,13 +14655,11 @@ printf "%s\n" "$gl_cv_func_getopt_long_gnu" >&6; }
 
 
 
-
     HAVE_GETRANDOM=1;
   REPLACE_GETRANDOM=0;
 
 
 
-
   GL_GNULIB_GETRANDOM=0
 
 
@@ -12279,6 +14667,66 @@ printf "%s\n" "$gl_cv_func_getopt_long_gnu" >&6; }
 :
 
 
+
+
+
+          ac_fn_check_decl "$LINENO" "timespec_get" "ac_cv_have_decl_timespec_get" "#include <time.h>
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_timespec_get" = xyes
+then :
+
+fi
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for timespec_get" >&5
+printf %s "checking for timespec_get... " >&6; }
+if test ${gl_cv_onwards_func_timespec_get+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test $ac_cv_have_decl_timespec_get = yes; then
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <time.h>
+              struct timespec ts;
+
+int
+main (void)
+{
+return timespec_get (&ts, 0);
+  ;
+  return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+  gl_cv_onwards_func_timespec_get=yes
+else case e in #(
+  e) gl_cv_onwards_func_timespec_get=no ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+    conftest$ac_exeext conftest.$ac_ext
+     else
+       gl_cv_onwards_func_timespec_get=no
+     fi
+     case "$host_os" in
+       linux*-android*)
+         if test $gl_cv_onwards_func_timespec_get = no; then
+           gl_cv_onwards_func_timespec_get='future OS version'
+         fi
+         ;;
+     esac
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_onwards_func_timespec_get" >&5
+printf "%s\n" "$gl_cv_onwards_func_timespec_get" >&6; }
+  case "$gl_cv_onwards_func_timespec_get" in
+    future*) gl_cv_func_timespec_get=no ;;
+    *)       gl_cv_func_timespec_get=$gl_cv_onwards_func_timespec_get ;;
+  esac
+
+
     HAVE_GETTIMEOFDAY=1;
   HAVE_STRUCT_TIMEVAL=1;
   HAVE_SYS_TIME_H=1;
@@ -12307,8 +14755,8 @@ printf %s "checking absolute name of <sys/time.h>... " >&6; }
 if test ${gl_cv_next_sys_time_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
              if test $ac_cv_header_sys_time_h = yes; then
 
 
@@ -12344,13 +14792,14 @@ _ACEOF
         gl_cv_absolute_sys_time_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
   sed -n "$gl_absolute_header_sed"`
 
-           gl_header=$gl_cv_absolute_sys_time_h
-           gl_cv_next_sys_time_h='"'$gl_header'"'
+          gl_header=$gl_cv_absolute_sys_time_h
+          gl_cv_next_sys_time_h='"'$gl_header'"'
           else
                gl_cv_next_sys_time_h='<'sys/time.h'>'
              fi
 
-
+          ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_time_h" >&5
 printf "%s\n" "$gl_cv_next_sys_time_h" >&6; }
@@ -12401,8 +14850,8 @@ printf %s "checking for struct timeval... " >&6; }
 if test ${gl_cv_sys_struct_timeval+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #if HAVE_SYS_TIME_H
              #include <sys/time.h>
@@ -12423,11 +14872,13 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_sys_struct_timeval=yes
-else $as_nop
-  gl_cv_sys_struct_timeval=no
+else case e in #(
+  e) gl_cv_sys_struct_timeval=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_sys_struct_timeval" >&5
 printf "%s\n" "$gl_cv_sys_struct_timeval" >&6; }
@@ -12439,8 +14890,8 @@ printf %s "checking for wide-enough struct timeval.tv_sec member... " >&6; }
 if test ${gl_cv_sys_struct_timeval_tv_sec+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #if HAVE_SYS_TIME_H
                #include <sys/time.h>
@@ -12465,11 +14916,13 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_sys_struct_timeval_tv_sec=yes
-else $as_nop
-  gl_cv_sys_struct_timeval_tv_sec=no
+else case e in #(
+  e) gl_cv_sys_struct_timeval_tv_sec=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_sys_struct_timeval_tv_sec" >&5
 printf "%s\n" "$gl_cv_sys_struct_timeval_tv_sec" >&6; }
@@ -12484,6 +14937,7 @@ printf "%s\n" "$gl_cv_sys_struct_timeval_tv_sec" >&6; }
 
 
 
+
   GL_GNULIB_GETTIMEOFDAY=0
 
 
@@ -12502,8 +14956,9 @@ printf "%s\n" "$gl_cv_sys_struct_timeval_tv_sec" >&6; }
 if test "x$ac_cv_header_pthread_h" = xyes
 then :
   gl_have_pthread_h=yes
-else $as_nop
-  gl_have_pthread_h=no
+else case e in #(
+  e) gl_have_pthread_h=no ;;
+esac
 fi
 
     if test "$gl_have_pthread_h" = yes; then
@@ -12546,8 +15001,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \
         LIBS=$save_LIBS
         test $gl_pthread_api = yes && break
       done
-      echo "$as_me:12549: gl_pthread_api=$gl_pthread_api" >&5
-      echo "$as_me:12550: LIBPTHREAD=$LIBPTHREAD" >&5
+      echo "$as_me:15004: gl_pthread_api=$gl_pthread_api" >&5
+      echo "$as_me:15005: LIBPTHREAD=$LIBPTHREAD" >&5
 
       gl_pthread_in_glibc=no
       # On Linux with glibc >= 2.34, libc contains the fully functional
@@ -12565,7 +15020,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Lucky user" >/dev/null 2>&1
+  $EGREP_TRADITIONAL "Lucky user" >/dev/null 2>&1
 then :
   gl_pthread_in_glibc=yes
 fi
@@ -12573,7 +15028,7 @@ rm -rf conftest*
 
           ;;
       esac
-      echo "$as_me:12576: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5
+      echo "$as_me:15031: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5
 
       # Test for libpthread by looking for pthread_kill. (Not pthread_self,
       # since it is defined as a macro on OSF/1.)
@@ -12585,16 +15040,22 @@ printf %s "checking for pthread_kill in -lpthread... " >&6; }
 if test ${ac_cv_lib_pthread_pthread_kill+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_check_lib_save_LIBS=$LIBS
+else case e in #(
+  e) ac_check_lib_save_LIBS=$LIBS
 LIBS="-lpthread  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-char pthread_kill ();
+   builtin and then its argument prototype would still apply.
+   The 'extern "C"' is for builds by C++ compilers;
+   although this is not generally supported in C code supporting it here
+   has little cost and some practical benefit (sr 110532).  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char pthread_kill (void);
 int
 main (void)
 {
@@ -12606,12 +15067,14 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   ac_cv_lib_pthread_pthread_kill=yes
-else $as_nop
-  ac_cv_lib_pthread_pthread_kill=no
+else case e in #(
+  e) ac_cv_lib_pthread_pthread_kill=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+LIBS=$ac_check_lib_save_LIBS ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5
 printf "%s\n" "$ac_cv_lib_pthread_pthread_kill" >&6; }
@@ -12628,7 +15091,7 @@ then :
              # On Solaris 10 or newer, this test is no longer needed, because
              # libc contains the fully functional pthread functions.
              case "$host_os" in
-               solaris | solaris2.1-9 | solaris2.1-9.* | hpux*)
+               solaris | solaris2.[1-9] | solaris2.[1-9].* | hpux*)
 
 printf "%s\n" "#define PTHREAD_IN_USE_DETECTION_HARD 1" >>confdefs.h
 
@@ -12644,16 +15107,22 @@ printf %s "checking for pthread_kill in -lpthread... " >&6; }
 if test ${ac_cv_lib_pthread_pthread_kill+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_check_lib_save_LIBS=$LIBS
+else case e in #(
+  e) ac_check_lib_save_LIBS=$LIBS
 LIBS="-lpthread  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-char pthread_kill ();
+   builtin and then its argument prototype would still apply.
+   The 'extern "C"' is for builds by C++ compilers;
+   although this is not generally supported in C code supporting it here
+   has little cost and some practical benefit (sr 110532).  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char pthread_kill (void);
 int
 main (void)
 {
@@ -12665,12 +15134,14 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   ac_cv_lib_pthread_pthread_kill=yes
-else $as_nop
-  ac_cv_lib_pthread_pthread_kill=no
+else case e in #(
+  e) ac_cv_lib_pthread_pthread_kill=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+LIBS=$ac_check_lib_save_LIBS ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5
 printf "%s\n" "$ac_cv_lib_pthread_pthread_kill" >&6; }
@@ -12688,16 +15159,22 @@ printf %s "checking for pthread_kill in -lc_r... " >&6; }
 if test ${ac_cv_lib_c_r_pthread_kill+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_check_lib_save_LIBS=$LIBS
+else case e in #(
+  e) ac_check_lib_save_LIBS=$LIBS
 LIBS="-lc_r  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-char pthread_kill ();
+   builtin and then its argument prototype would still apply.
+   The 'extern "C"' is for builds by C++ compilers;
+   although this is not generally supported in C code supporting it here
+   has little cost and some practical benefit (sr 110532).  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char pthread_kill (void);
 int
 main (void)
 {
@@ -12709,12 +15186,14 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   ac_cv_lib_c_r_pthread_kill=yes
-else $as_nop
-  ac_cv_lib_c_r_pthread_kill=no
+else case e in #(
+  e) ac_cv_lib_c_r_pthread_kill=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+LIBS=$ac_check_lib_save_LIBS ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_r_pthread_kill" >&5
 printf "%s\n" "$ac_cv_lib_c_r_pthread_kill" >&6; }
@@ -12727,7 +15206,7 @@ fi
 
         fi
       fi
-      echo "$as_me:12730: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5
+      echo "$as_me:15209: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5
     fi
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether POSIX threads API is available" >&5
 printf %s "checking whether POSIX threads API is available... " >&6; }
@@ -12754,24 +15233,30 @@ sched_yield ();
 _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
-  LIB_SCHED_YIELD=
+  SCHED_YIELD_LIB=
 
-else $as_nop
-         { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lrt" >&5
+else case e in #(
+  e)        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lrt" >&5
 printf %s "checking for sched_yield in -lrt... " >&6; }
 if test ${ac_cv_lib_rt_sched_yield+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_check_lib_save_LIBS=$LIBS
+else case e in #(
+  e) ac_check_lib_save_LIBS=$LIBS
 LIBS="-lrt  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-char sched_yield ();
+   builtin and then its argument prototype would still apply.
+   The 'extern "C"' is for builds by C++ compilers;
+   although this is not generally supported in C code supporting it here
+   has little cost and some practical benefit (sr 110532).  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char sched_yield (void);
 int
 main (void)
 {
@@ -12783,34 +15268,42 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   ac_cv_lib_rt_sched_yield=yes
-else $as_nop
-  ac_cv_lib_rt_sched_yield=no
+else case e in #(
+  e) ac_cv_lib_rt_sched_yield=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+LIBS=$ac_check_lib_save_LIBS ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_sched_yield" >&5
 printf "%s\n" "$ac_cv_lib_rt_sched_yield" >&6; }
 if test "x$ac_cv_lib_rt_sched_yield" = xyes
 then :
-  LIB_SCHED_YIELD=-lrt
-else $as_nop
-            { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lposix4" >&5
+  SCHED_YIELD_LIB=-lrt
+else case e in #(
+  e)           { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lposix4" >&5
 printf %s "checking for sched_yield in -lposix4... " >&6; }
 if test ${ac_cv_lib_posix4_sched_yield+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_check_lib_save_LIBS=$LIBS
+else case e in #(
+  e) ac_check_lib_save_LIBS=$LIBS
 LIBS="-lposix4  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-char sched_yield ();
+   builtin and then its argument prototype would still apply.
+   The 'extern "C"' is for builds by C++ compilers;
+   although this is not generally supported in C code supporting it here
+   has little cost and some practical benefit (sr 110532).  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char sched_yield (void);
 int
 main (void)
 {
@@ -12822,27 +15315,33 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   ac_cv_lib_posix4_sched_yield=yes
-else $as_nop
-  ac_cv_lib_posix4_sched_yield=no
+else case e in #(
+  e) ac_cv_lib_posix4_sched_yield=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+LIBS=$ac_check_lib_save_LIBS ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix4_sched_yield" >&5
 printf "%s\n" "$ac_cv_lib_posix4_sched_yield" >&6; }
 if test "x$ac_cv_lib_posix4_sched_yield" = xyes
 then :
-  LIB_SCHED_YIELD=-lposix4
+  SCHED_YIELD_LIB=-lposix4
 fi
-
+ ;;
+esac
 fi
 
-
+       ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 
+        LIB_SCHED_YIELD="$SCHED_YIELD_LIB"
+
 
     gl_pthreadlib_body_done=done
   fi
@@ -12859,11 +15358,35 @@ printf %s "checking whether setlocale (LC_ALL, NULL) is multithread-safe... " >&
 if test ${gl_cv_func_setlocale_null_all_mtsafe+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  case "$host_os" in
-       # Guess no on musl libc, macOS, FreeBSD, NetBSD, OpenBSD, AIX, Haiku, Cygwin.
-       *-musl* | darwin* | freebsd* | midnightbsd* | netbsd* | openbsd* | aix* | haiku* | cygwin*)
+else case e in #(
+  e) case "$host_os" in
+       # Guess no on musl libc, macOS, FreeBSD, NetBSD, OpenBSD, AIX, Haiku.
+       *-musl* | midipix* | darwin* | freebsd* | midnightbsd* | netbsd* | openbsd* | aix* | haiku*)
          gl_cv_func_setlocale_null_all_mtsafe=no ;;
+       # Guess no on Cygwin < 3.4.6.
+       cygwin*)
+         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#if defined __CYGWIN__
+ #include <cygwin/version.h>
+ #if CYGWIN_VERSION_DLL_COMBINED >= CYGWIN_VERSION_DLL_MAKE_COMBINED (3004, 6)
+  Lucky user
+ #endif
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP_TRADITIONAL "Lucky user" >/dev/null 2>&1
+then :
+  gl_cv_func_setlocale_null_all_mtsafe=yes
+else case e in #(
+  e) gl_cv_func_setlocale_null_all_mtsafe=no ;;
+esac
+fi
+rm -rf conftest*
+
+        ;;
        # Guess yes on glibc, HP-UX, IRIX, Solaris, native Windows.
        *-gnu* | gnu* | hpux* | irix* | solaris* | mingw*)
          gl_cv_func_setlocale_null_all_mtsafe=yes ;;
@@ -12871,7 +15394,8 @@ else $as_nop
        *)
          gl_cv_func_setlocale_null_all_mtsafe="$gl_cross_guess_normal" ;;
      esac
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_setlocale_null_all_mtsafe" >&5
 printf "%s\n" "$gl_cv_func_setlocale_null_all_mtsafe" >&6; }
@@ -12896,19 +15420,20 @@ printf %s "checking whether setlocale (category, NULL) is multithread-safe... "
 if test ${gl_cv_func_setlocale_null_one_mtsafe+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  case "$host_os" in
+else case e in #(
+  e) case "$host_os" in
        # Guess no on OpenBSD, AIX.
        openbsd* | aix*)
          gl_cv_func_setlocale_null_one_mtsafe=no ;;
        # Guess yes on glibc, musl libc, macOS, FreeBSD, NetBSD, HP-UX, IRIX, Solaris, Haiku, Cygwin, native Windows.
-       *-gnu* | gnu* | *-musl* | darwin* | freebsd* | midnightbsd* | netbsd* | hpux* | irix* | solaris* | haiku* | cygwin* | mingw*)
+       *-gnu* | gnu* | *-musl* | midipix* | darwin* | freebsd* | midnightbsd* | netbsd* | hpux* | irix* | solaris* | haiku* | cygwin* | mingw*)
          gl_cv_func_setlocale_null_one_mtsafe=yes ;;
        # If we don't know, obey --enable-cross-guesses.
        *)
          gl_cv_func_setlocale_null_one_mtsafe="$gl_cross_guess_normal" ;;
      esac
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_setlocale_null_one_mtsafe" >&5
 printf "%s\n" "$gl_cv_func_setlocale_null_one_mtsafe" >&6; }
@@ -12930,7 +15455,7 @@ printf "%s\n" "#define SETLOCALE_NULL_ONE_MTSAFE $SETLOCALE_NULL_ONE_MTSAFE" >>c
 
     if test $SETLOCALE_NULL_ALL_MTSAFE = 0 || test $SETLOCALE_NULL_ONE_MTSAFE = 0; then
     case "$host_os" in
-      mingw*) LIB_SETLOCALE_NULL= ;;
+      mingw*) SETLOCALE_NULL_LIB= ;;
       *)
 
 
@@ -12939,9 +15464,14 @@ printf %s "checking whether imported symbols can be declared weak... " >&6; }
 if test ${gl_cv_have_weak+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  gl_cv_have_weak=no
-          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) case "$host_os" in
+       cygwin* | mingw*)
+                                             gl_cv_have_weak="guessing no"
+         ;;
+       *)
+         gl_cv_have_weak=no
+                  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 extern void xyzzy ();
 #pragma weak xyzzy
@@ -12959,28 +15489,29 @@ then :
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
-     if test $gl_cv_have_weak = maybe; then
-                     if test "$cross_compiling" = yes
+         if test $gl_cv_have_weak = maybe; then
+                                 if test "$cross_compiling" = yes
 then :
-                      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+                              cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #ifdef __ELF__
-             Extensible Linking Format
-             #endif
+                 Extensible Linking Format
+                 #endif
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Extensible Linking Format" >/dev/null 2>&1
+  $EGREP_TRADITIONAL "Extensible Linking Format" >/dev/null 2>&1
 then :
   gl_cv_have_weak="guessing yes"
-else $as_nop
-  gl_cv_have_weak="guessing no"
+else case e in #(
+  e) gl_cv_have_weak="guessing no" ;;
+esac
 fi
 rm -rf conftest*
 
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <stdio.h>
@@ -12993,14 +15524,18 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_have_weak=yes
-else $as_nop
-  gl_cv_have_weak=no
+else case e in #(
+  e) gl_cv_have_weak=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
-     fi
+         fi
+         ;;
+     esac
           case " $LDFLAGS " in
        *" -static "*) gl_cv_have_weak=no ;;
      esac
@@ -13025,7 +15560,8 @@ EOF
          esac
          ;;
      esac
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_weak" >&5
 printf "%s\n" "$gl_cv_have_weak" >&6; }
@@ -13038,15 +15574,17 @@ printf "%s\n" "#define HAVE_WEAK_SYMBOLS 1" >>confdefs.h
   esac
 
         case "$gl_cv_have_weak" in
-          *yes) LIB_SETLOCALE_NULL= ;;
-          *)    LIB_SETLOCALE_NULL="$LIBPTHREAD" ;;
+          *yes) SETLOCALE_NULL_LIB= ;;
+          *)    SETLOCALE_NULL_LIB="$LIBPTHREAD" ;;
         esac
         ;;
     esac
   else
-    LIB_SETLOCALE_NULL=
+    SETLOCALE_NULL_LIB=
   fi
 
+    LIB_SETLOCALE_NULL="$SETLOCALE_NULL_LIB"
+
 
 
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -13058,7 +15596,7 @@ MicrosoftCompiler
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "MicrosoftCompiler" >/dev/null 2>&1
+  $EGREP_TRADITIONAL "MicrosoftCompiler" >/dev/null 2>&1
 then :
             rm -f conftest*
      echo 'int dummy;' > conftest.c
@@ -13077,10 +15615,11 @@ then :
      fi
      rm -f conftest*
 
-else $as_nop
-  gl_asmext='s'
+else case e in #(
+  e) gl_asmext='s'
      gl_c_asm_opt='-S'
-
+     ;;
+esac
 fi
 rm -rf conftest*
 
@@ -13093,8 +15632,8 @@ printf %s "checking host CPU and C ABI... " >&6; }
 if test ${gl_cv_host_cpu_c_abi+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  case "$host_cpu" in
+else case e in #(
+  e) case "$host_cpu" in
 
        i[34567]86 )
          gl_cv_host_cpu_c_abi=i386
@@ -13132,12 +15671,14 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_host_cpu_c_abi=x86_64-x32
-else $as_nop
-  gl_cv_host_cpu_c_abi=x86_64
+else case e in #(
+  e) gl_cv_host_cpu_c_abi=x86_64 ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-else $as_nop
-  gl_cv_host_cpu_c_abi=i386
+else case e in #(
+  e) gl_cv_host_cpu_c_abi=i386 ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
          ;;
@@ -13176,12 +15717,13 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_host_cpu_c_abi=arm64-ilp32
-else $as_nop
-  gl_cv_host_cpu_c_abi=arm64
+else case e in #(
+  e) gl_cv_host_cpu_c_abi=arm64 ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-else $as_nop
-  # Don't distinguish little-endian and big-endian arm, since they
+else case e in #(
+  e) # Don't distinguish little-endian and big-endian arm, since they
             # don't require different machine code for simple operations and
             # since the user can distinguish them through the preprocessor
             # defines __ARMEL__ vs. __ARMEB__.
@@ -13206,7 +15748,8 @@ else $as_nop
               gl_cv_host_cpu_c_abi=arm
             fi
             rm -f conftest*
-
+            ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
          ;;
@@ -13226,8 +15769,9 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_host_cpu_c_abi=hppa64
-else $as_nop
-  gl_cv_host_cpu_c_abi=hppa
+else case e in #(
+  e) gl_cv_host_cpu_c_abi=hppa ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
          ;;
@@ -13247,8 +15791,9 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_host_cpu_c_abi=ia64-ilp32
-else $as_nop
-  gl_cv_host_cpu_c_abi=ia64
+else case e in #(
+  e) gl_cv_host_cpu_c_abi=ia64 ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
          ;;
@@ -13268,8 +15813,8 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_host_cpu_c_abi=mips64
-else $as_nop
-  # In the n32 ABI, _ABIN32 is defined, _ABIO32 is not defined (but
+else case e in #(
+  e) # In the n32 ABI, _ABIN32 is defined, _ABIO32 is not defined (but
             # may later get defined by <sgidefs.h>), and _MIPS_SIM == _ABIN32.
             # In the 32 ABI, _ABIO32 is defined, _ABIN32 is not defined (but
             # may later get defined by <sgidefs.h>), and _MIPS_SIM == _ABIO32.
@@ -13285,10 +15830,12 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_host_cpu_c_abi=mipsn32
-else $as_nop
-  gl_cv_host_cpu_c_abi=mips
+else case e in #(
+  e) gl_cv_host_cpu_c_abi=mips ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
          ;;
@@ -13325,13 +15872,15 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_host_cpu_c_abi=powerpc64-elfv2
-else $as_nop
-  gl_cv_host_cpu_c_abi=powerpc64
+else case e in #(
+  e) gl_cv_host_cpu_c_abi=powerpc64 ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
 
-else $as_nop
-  gl_cv_host_cpu_c_abi=powerpc
+else case e in #(
+  e) gl_cv_host_cpu_c_abi=powerpc ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
          ;;
@@ -13354,8 +15903,9 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   cpu=riscv64
-else $as_nop
-  cpu=riscv32
+else case e in #(
+  e) cpu=riscv32 ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
          # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d.
@@ -13372,8 +15922,9 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   main_abi=lp64
-else $as_nop
-  main_abi=ilp32
+else case e in #(
+  e) main_abi=ilp32 ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
          # Float ABIs:
@@ -13395,8 +15946,8 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   float_abi=d
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #if defined __riscv_float_abi_single
                      int ok;
@@ -13408,11 +15959,13 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   float_abi=f
-else $as_nop
-  float_abi=''
+else case e in #(
+  e) float_abi='' ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-
+            ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
          gl_cv_host_cpu_c_abi="${cpu}-${main_abi}${float_abi}"
@@ -13433,8 +15986,9 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_host_cpu_c_abi=s390x
-else $as_nop
-  gl_cv_host_cpu_c_abi=s390
+else case e in #(
+  e) gl_cv_host_cpu_c_abi=s390 ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
          ;;
@@ -13454,8 +16008,9 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_host_cpu_c_abi=sparc64
-else $as_nop
-  gl_cv_host_cpu_c_abi=sparc
+else case e in #(
+  e) gl_cv_host_cpu_c_abi=sparc ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
          ;;
@@ -13464,7 +16019,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
          gl_cv_host_cpu_c_abi="$host_cpu"
          ;;
      esac
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_host_cpu_c_abi" >&5
 printf "%s\n" "$gl_cv_host_cpu_c_abi" >&6; }
 
 
 
-      if test "X$prefix" = "XNONE"; then
-    acl_final_prefix="$ac_default_prefix"
-  else
-    acl_final_prefix="$prefix"
-  fi
-  if test "X$exec_prefix" = "XNONE"; then
-    acl_final_exec_prefix='${prefix}'
-  else
-    acl_final_exec_prefix="$exec_prefix"
-  fi
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
-  prefix="$acl_save_prefix"
-
-
-
-# Check whether --with-gnu-ld was given.
-if test ${with_gnu_ld+y}
-then :
-  withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
-else $as_nop
-  with_gnu_ld=no
-fi
-
-# Prepare PATH_SEPARATOR.
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which
-  # contains only /bin. Note that ksh looks also at the FPATH variable,
-  # so we have to set that as well for the test.
-  PATH_SEPARATOR=:
-  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \
-    && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \
-           || PATH_SEPARATOR=';'
-       }
-fi
-
-if test -n "$LD"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld" >&5
-printf %s "checking for ld... " >&6; }
-elif test "$GCC" = yes; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
-printf %s "checking for ld used by $CC... " >&6; }
-elif test "$with_gnu_ld" = yes; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
-printf %s "checking for GNU ld... " >&6; }
-else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
-printf %s "checking for non-GNU ld... " >&6; }
-fi
-if test -n "$LD"; then
-  # Let the user override the test with a path.
-  :
-else
-  if test ${acl_cv_path_LD+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-
-    acl_cv_path_LD= # Final result of this test
-    ac_prog=ld # Program to search in $PATH
-    if test "$GCC" = yes; then
-      # Check if gcc -print-prog-name=ld gives a path.
-      case $host in
-        *-*-mingw*)
-          # gcc leaves a trailing carriage return which upsets mingw
-          acl_output=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-        *)
-          acl_output=`($CC -print-prog-name=ld) 2>&5` ;;
-      esac
-      case $acl_output in
-        # Accept absolute paths.
-        [\\/]* | ?:[\\/]*)
-          re_direlt='/[^/][^/]*/\.\./'
-          # Canonicalize the pathname of ld
-          acl_output=`echo "$acl_output" | sed 's%\\\\%/%g'`
-          while echo "$acl_output" | grep "$re_direlt" > /dev/null 2>&1; do
-            acl_output=`echo $acl_output | sed "s%$re_direlt%/%"`
-          done
-          # Got the pathname. No search in PATH is needed.
-          acl_cv_path_LD="$acl_output"
-          ac_prog=
-          ;;
-        "")
-          # If it fails, then pretend we aren't using GCC.
-          ;;
-        *)
-          # If it is relative, then search for the first ld in PATH.
-          with_gnu_ld=unknown
-          ;;
-      esac
-    fi
-    if test -n "$ac_prog"; then
-      # Search for $ac_prog in $PATH.
-      acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-      for ac_dir in $PATH; do
-        IFS="$acl_save_ifs"
-        test -z "$ac_dir" && ac_dir=.
-        if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-          acl_cv_path_LD="$ac_dir/$ac_prog"
-          # Check to see if the program is GNU ld.  I'd rather use --version,
-          # but apparently some variants of GNU ld only accept -v.
-          # Break only if it was the GNU/non-GNU ld that we prefer.
-          case `"$acl_cv_path_LD" -v 2>&1 </dev/null` in
-            *GNU* | *'with BFD'*)
-              test "$with_gnu_ld" != no && break
-              ;;
-            *)
-              test "$with_gnu_ld" != yes && break
-              ;;
-          esac
-        fi
-      done
-      IFS="$acl_save_ifs"
-    fi
-    case $host in
-      *-*-aix*)
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#if defined __powerpc64__ || defined __LP64__
-                int ok;
-               #else
-                error fail
-               #endif
 
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  # The compiler produces 64-bit code. Add option '-b64' so that the
-           # linker groks 64-bit object files.
-           case "$acl_cv_path_LD " in
-             *" -b64 "*) ;;
-             *) acl_cv_path_LD="$acl_cv_path_LD -b64" ;;
-           esac
 
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-        ;;
-      sparc64-*-netbsd*)
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#if defined __sparcv9 || defined __arch64__
-                int ok;
-               #else
-                error fail
-               #endif
 
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
 
-else $as_nop
-  # The compiler produces 32-bit code. Add option '-m elf32_sparc'
-           # so that the linker groks 32-bit object files.
-           case "$acl_cv_path_LD " in
-             *" -m elf32_sparc "*) ;;
-             *) acl_cv_path_LD="$acl_cv_path_LD -m elf32_sparc" ;;
-           esac
 
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-        ;;
-    esac
 
-fi
 
-  LD="$acl_cv_path_LD"
-fi
-if test -n "$LD"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-printf "%s\n" "$LD" >&6; }
-else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-  as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
-printf %s "checking if the linker ($LD) is GNU ld... " >&6; }
-if test ${acl_cv_prog_gnu_ld+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  # I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
-  acl_cv_prog_gnu_ld=yes
-  ;;
-*)
-  acl_cv_prog_gnu_ld=no
-  ;;
-esac
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $acl_cv_prog_gnu_ld" >&5
-printf "%s\n" "$acl_cv_prog_gnu_ld" >&6; }
-with_gnu_ld=$acl_cv_prog_gnu_ld
 
 
+    use_additional=yes
 
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
 
+    eval additional_includedir=\"$includedir\"
+    eval additional_libdir=\"$libdir\"
+    eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\"
+    eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\"
 
-                                                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5
-printf %s "checking for shared library run path origin... " >&6; }
-if test ${acl_cv_rpath+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
 
-    CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
-    ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
-    . ./conftest.sh
-    rm -f ./conftest.sh
-    acl_cv_rpath=done
 
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5
-printf "%s\n" "$acl_cv_rpath" >&6; }
-  wl="$acl_cv_wl"
-  acl_libext="$acl_cv_libext"
-  acl_shlibext="$acl_cv_shlibext"
-  acl_libname_spec="$acl_cv_libname_spec"
-  acl_library_names_spec="$acl_cv_library_names_spec"
-  acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
-  acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
-  acl_hardcode_direct="$acl_cv_hardcode_direct"
-  acl_hardcode_minus_L="$acl_cv_hardcode_minus_L"
-    # Check whether --enable-rpath was given.
-if test ${enable_rpath+y}
+# Check whether --with-libiconv-prefix was given.
+if test ${with_libiconv_prefix+y}
 then :
-  enableval=$enable_rpath; :
-else $as_nop
-  enable_rpath=yes
-fi
-
-
+  withval=$with_libiconv_prefix;
+    if test "X$withval" = "Xno"; then
+      use_additional=no
+    else
+      if test "X$withval" = "X"; then
 
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking 32-bit host C ABI" >&5
-printf %s "checking 32-bit host C ABI... " >&6; }
-if test ${gl_cv_host_cpu_c_abi_32bit+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$gl_cv_host_cpu_c_abi"; then
-       case "$gl_cv_host_cpu_c_abi" in
-         i386 | x86_64-x32 | arm | armhf | arm64-ilp32 | hppa | ia64-ilp32 | mips | mipsn32 | powerpc | riscv*-ilp32* | s390 | sparc)
-           gl_cv_host_cpu_c_abi_32bit=yes ;;
-         x86_64 | alpha | arm64 | hppa64 | ia64 | mips64 | powerpc64 | powerpc64-elfv2 | riscv*-lp64* | s390x | sparc64 )
-           gl_cv_host_cpu_c_abi_32bit=no ;;
-         *)
-           gl_cv_host_cpu_c_abi_32bit=unknown ;;
-       esac
-     else
-       case "$host_cpu" in
+          eval additional_includedir=\"$includedir\"
+          eval additional_libdir=\"$libdir\"
+          eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\"
+          eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\"
 
-         # CPUs that only support a 32-bit ABI.
-         arc \
-         | bfin \
-         | cris* \
-         | csky \
-         | epiphany \
-         | ft32 \
-         | h8300 \
-         | m68k \
-         | microblaze | microblazeel \
-         | nds32 | nds32le | nds32be \
-         | nios2 | nios2eb | nios2el \
-         | or1k* \
-         | or32 \
-         | sh | sh1234 | sh1234elb \
-         | tic6x \
-         | xtensa* )
-           gl_cv_host_cpu_c_abi_32bit=yes
-           ;;
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
 
-         # CPUs that only support a 64-bit ABI.
-         alpha | alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] \
-         | mmix )
-           gl_cv_host_cpu_c_abi_32bit=no
-           ;;
+      else
+        additional_includedir="$withval/include"
+        additional_libdir="$withval/$acl_libdirstem"
+        additional_libdir2="$withval/$acl_libdirstem2"
+        additional_libdir3="$withval/$acl_libdirstem3"
+      fi
+    fi
 
-         i[34567]86 )
-           gl_cv_host_cpu_c_abi_32bit=yes
-           ;;
-
-         x86_64 )
-           # On x86_64 systems, the C compiler may be generating code in one of
-           # these ABIs:
-           # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64.
-           # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64
-           #   with native Windows (mingw, MSVC).
-           # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32.
-           # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386.
-           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#if (defined __x86_64__ || defined __amd64__ \
-                       || defined _M_X64 || defined _M_AMD64) \
-                      && !(defined __ILP32__ || defined _ILP32)
-                   int ok;
-                  #else
-                   error fail
-                  #endif
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  gl_cv_host_cpu_c_abi_32bit=no
-else $as_nop
-  gl_cv_host_cpu_c_abi_32bit=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-           ;;
-
-         arm* | aarch64 )
-           # Assume arm with EABI.
-           # On arm64 systems, the C compiler may be generating code in one of
-           # these ABIs:
-           # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64.
-           # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32.
-           # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf.
-           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#if defined __aarch64__ && !(defined __ILP32__ || defined _ILP32)
-                   int ok;
-                  #else
-                   error fail
-                  #endif
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  gl_cv_host_cpu_c_abi_32bit=no
-else $as_nop
-  gl_cv_host_cpu_c_abi_32bit=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-           ;;
-
-         hppa1.0 | hppa1.1 | hppa2.0* | hppa64 )
-           # On hppa, the C compiler may be generating 32-bit code or 64-bit
-           # code. In the latter case, it defines _LP64 and __LP64__.
-           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifdef __LP64__
-                   int ok;
-                  #else
-                   error fail
-                  #endif
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  gl_cv_host_cpu_c_abi_32bit=no
-else $as_nop
-  gl_cv_host_cpu_c_abi_32bit=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-           ;;
-
-         ia64* )
-           # On ia64 on HP-UX, the C compiler may be generating 64-bit code or
-           # 32-bit code. In the latter case, it defines _ILP32.
-           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifdef _ILP32
-                   int ok;
-                  #else
-                   error fail
-                  #endif
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  gl_cv_host_cpu_c_abi_32bit=yes
-else $as_nop
-  gl_cv_host_cpu_c_abi_32bit=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-           ;;
-
-         mips* )
-           # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this
-           # at 32.
-           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64)
-                   int ok;
-                  #else
-                   error fail
-                  #endif
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  gl_cv_host_cpu_c_abi_32bit=no
-else $as_nop
-  gl_cv_host_cpu_c_abi_32bit=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-           ;;
-
-         powerpc* )
-           # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD.
-           # No need to distinguish them here; the caller may distinguish
-           # them based on the OS.
-           # On powerpc64 systems, the C compiler may still be generating
-           # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may
-           # be generating 64-bit code.
-           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#if defined __powerpc64__ || defined __LP64__
-                   int ok;
-                  #else
-                   error fail
-                  #endif
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  gl_cv_host_cpu_c_abi_32bit=no
-else $as_nop
-  gl_cv_host_cpu_c_abi_32bit=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-           ;;
-
-         rs6000 )
-           gl_cv_host_cpu_c_abi_32bit=yes
-           ;;
-
-         riscv32 | riscv64 )
-           # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d.
-           # Size of 'long' and 'void *':
-           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#if defined __LP64__
-                    int ok;
-                  #else
-                    error fail
-                  #endif
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  gl_cv_host_cpu_c_abi_32bit=no
-else $as_nop
-  gl_cv_host_cpu_c_abi_32bit=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-           ;;
-
-         s390* )
-           # On s390x, the C compiler may be generating 64-bit (= s390x) code
-           # or 31-bit (= s390) code.
-           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#if defined __LP64__ || defined __s390x__
-                    int ok;
-                  #else
-                    error fail
-                  #endif
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  gl_cv_host_cpu_c_abi_32bit=no
-else $as_nop
-  gl_cv_host_cpu_c_abi_32bit=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-           ;;
-
-         sparc | sparc64 )
-           # UltraSPARCs running Linux have `uname -m` = "sparc64", but the
-           # C compiler still generates 32-bit code.
-           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#if defined __sparcv9 || defined __arch64__
-                   int ok;
-                  #else
-                   error fail
-                  #endif
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  gl_cv_host_cpu_c_abi_32bit=no
-else $as_nop
-  gl_cv_host_cpu_c_abi_32bit=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-           ;;
-
-         *)
-           gl_cv_host_cpu_c_abi_32bit=unknown
-           ;;
-       esac
-     fi
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_host_cpu_c_abi_32bit" >&5
-printf "%s\n" "$gl_cv_host_cpu_c_abi_32bit" >&6; }
-
-  HOST_CPU_C_ABI_32BIT="$gl_cv_host_cpu_c_abi_32bit"
-
-
-
-
-
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ELF binary format" >&5
-printf %s "checking for ELF binary format... " >&6; }
-if test ${gl_cv_elf+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifdef __ELF__
-        Extensible Linking Format
-        #endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Extensible Linking Format" >/dev/null 2>&1
-then :
-  gl_cv_elf=yes
-else $as_nop
-  gl_cv_elf=no
-fi
-rm -rf conftest*
-
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_elf" >&5
-printf "%s\n" "$gl_cv_elf" >&6; }
-  if test $gl_cv_elf = yes; then
-    # Extract the ELF class of a file (5th byte) in decimal.
-    # Cf. https://en.wikipedia.org/wiki/Executable_and_Linkable_Format#File_header
-    if od -A x < /dev/null >/dev/null 2>/dev/null; then
-      # Use POSIX od.
-      func_elfclass ()
-      {
-        od -A n -t d1 -j 4 -N 1
-      }
-    else
-      # Use BSD hexdump.
-      func_elfclass ()
-      {
-        dd bs=1 count=1 skip=4 2>/dev/null | hexdump -e '1/1 "%3d "'
-        echo
-      }
-    fi
-    # Use 'expr', not 'test', to compare the values of func_elfclass, because on
-    # Solaris 11 OpenIndiana and Solaris 11 OmniOS, the result is 001 or 002,
-    # not 1 or 2.
-    case $HOST_CPU_C_ABI_32BIT in
-      yes)
-        # 32-bit ABI.
-        acl_is_expected_elfclass ()
-        {
-          expr "`func_elfclass | sed -e 's/[   ]//g'`" = 1 > /dev/null
-        }
-        ;;
-      no)
-        # 64-bit ABI.
-        acl_is_expected_elfclass ()
-        {
-          expr "`func_elfclass | sed -e 's/[   ]//g'`" = 2 > /dev/null
-        }
-        ;;
-      *)
-        # Unknown.
-        acl_is_expected_elfclass ()
-        {
-          :
-        }
-        ;;
-    esac
-  else
-    acl_is_expected_elfclass ()
-    {
-      :
-    }
-  fi
-
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the common suffixes of directories in the library search path" >&5
-printf %s "checking for the common suffixes of directories in the library search path... " >&6; }
-if test ${acl_cv_libdirstems+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-            acl_libdirstem=lib
-     acl_libdirstem2=
-     acl_libdirstem3=
-     case "$host_os" in
-       solaris*)
-                                                      if test $HOST_CPU_C_ABI_32BIT = no; then
-           acl_libdirstem2=lib/64
-           case "$host_cpu" in
-             sparc*)        acl_libdirstem3=lib/sparcv9 ;;
-             i*86 | x86_64) acl_libdirstem3=lib/amd64 ;;
-           esac
-         fi
-         ;;
-       *)
-                                                                                 searchpath=`(LC_ALL=C $CC $CPPFLAGS $CFLAGS -print-search-dirs) 2>/dev/null \
-                     | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
-         if test $HOST_CPU_C_ABI_32BIT != no; then
-           # 32-bit or unknown ABI.
-           if test -d /usr/lib32; then
-             acl_libdirstem2=lib32
-           fi
-         fi
-         if test $HOST_CPU_C_ABI_32BIT != yes; then
-           # 64-bit or unknown ABI.
-           if test -d /usr/lib64; then
-             acl_libdirstem3=lib64
-           fi
-         fi
-         if test -n "$searchpath"; then
-           acl_save_IFS="${IFS=        }"; IFS=":"
-           for searchdir in $searchpath; do
-             if test -d "$searchdir"; then
-               case "$searchdir" in
-                 */lib32/ | */lib32 ) acl_libdirstem2=lib32 ;;
-                 */lib64/ | */lib64 ) acl_libdirstem3=lib64 ;;
-                 */../ | */.. )
-                   # Better ignore directories of this form. They are misleading.
-                   ;;
-                 *) searchdir=`cd "$searchdir" && pwd`
-                    case "$searchdir" in
-                      */lib32 ) acl_libdirstem2=lib32 ;;
-                      */lib64 ) acl_libdirstem3=lib64 ;;
-                    esac ;;
-               esac
-             fi
-           done
-           IFS="$acl_save_IFS"
-           if test $HOST_CPU_C_ABI_32BIT = yes; then
-             # 32-bit ABI.
-             acl_libdirstem3=
-           fi
-           if test $HOST_CPU_C_ABI_32BIT = no; then
-             # 64-bit ABI.
-             acl_libdirstem2=
-           fi
-         fi
-         ;;
-     esac
-     test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
-     test -n "$acl_libdirstem3" || acl_libdirstem3="$acl_libdirstem"
-     acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2,$acl_libdirstem3"
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $acl_cv_libdirstems" >&5
-printf "%s\n" "$acl_cv_libdirstems" >&6; }
-      acl_libdirstem=`echo "$acl_cv_libdirstems" | sed -e 's/,.*//'`
-  acl_libdirstem2=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,//' -e 's/,.*//'`
-  acl_libdirstem3=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,[^,]*,//' -e 's/,.*//'`
-
-
-
-
-
-
-
-
-
-
-
-    use_additional=yes
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-
-    eval additional_includedir=\"$includedir\"
-    eval additional_libdir=\"$libdir\"
-    eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\"
-    eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\"
-
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-
-# Check whether --with-libiconv-prefix was given.
-if test ${with_libiconv_prefix+y}
-then :
-  withval=$with_libiconv_prefix;
-    if test "X$withval" = "Xno"; then
-      use_additional=no
-    else
-      if test "X$withval" = "X"; then
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-
-          eval additional_includedir=\"$includedir\"
-          eval additional_libdir=\"$libdir\"
-          eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\"
-          eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\"
-
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-      else
-        additional_includedir="$withval/include"
-        additional_libdir="$withval/$acl_libdirstem"
-        additional_libdir2="$withval/$acl_libdirstem2"
-        additional_libdir3="$withval/$acl_libdirstem3"
-      fi
-    fi
-
-fi
+fi
 
   if test "X$additional_libdir2" = "X$additional_libdir"; then
     additional_libdir2=
   REPLACE_ICONV=0;
   REPLACE_ICONV_OPEN=0;
   REPLACE_ICONV_UTF=0;
-  ICONV_H='';
+  GL_GENERATE_ICONV_H=false
   if false; then
-              ICONV_H='iconv.h'
+              GL_GENERATE_ICONV_H=true
      fi
 
-   if test -n "$ICONV_H"; then
-  GL_GENERATE_ICONV_H_TRUE=
-  GL_GENERATE_ICONV_H_FALSE='#'
-else
-  GL_GENERATE_ICONV_H_TRUE='#'
-  GL_GENERATE_ICONV_H_FALSE=
-fi
-
 
 
 
@@ -14701,8 +16588,8 @@ printf %s "checking for iconv... " >&6; }
 if test ${am_cv_func_iconv+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
     am_cv_func_iconv="no, consider installing GNU libiconv"
     am_cv_lib_iconv=no
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -14755,7 +16642,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
       LIBS="$am_save_LIBS"
     fi
-
+   ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5
 printf "%s\n" "$am_cv_func_iconv" >&6; }
@@ -14765,8 +16653,8 @@ printf %s "checking for working iconv... " >&6; }
 if test ${am_cv_func_iconv_works+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
                   am_save_LIBS="$LIBS"
       if test $am_cv_lib_iconv = yes; then
         LIBS="$LIBS $LIBICONV"
@@ -14779,8 +16667,8 @@ then :
              aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
              *)            am_cv_func_iconv_works="guessing yes" ;;
            esac
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <iconv.h>
@@ -14909,13 +16797,15 @@ then :
   am_cv_func_iconv_works=yes
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
         test "$am_cv_func_iconv_works" = no || break
       done
       LIBS="$am_save_LIBS"
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5
 printf "%s\n" "$am_cv_func_iconv_works" >&6; }
@@ -14950,8 +16840,8 @@ printf %s "checking whether iconv is compatible with its POSIX signature... " >&
 if test ${gl_cv_iconv_nonconst+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <stdlib.h>
@@ -14973,11 +16863,13 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_iconv_nonconst=yes
-else $as_nop
-  gl_cv_iconv_nonconst=no
+else case e in #(
+  e) gl_cv_iconv_nonconst=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_iconv_nonconst" >&5
 printf "%s\n" "$gl_cv_iconv_nonconst" >&6; }
@@ -14998,6 +16890,20 @@ printf "%s\n" "#define ICONV_CONST $iconv_arg1" >>confdefs.h
      fi
 
 
+      if test "$am_func_iconv" = yes; then
+    if test -n "$LIBICONV"; then
+      am_cv_func_iconv_summary='yes, in libiconv'
+    else
+      am_cv_func_iconv_summary='yes, in libc'
+    fi
+  else
+    if test "$am_cv_func_iconv" = yes; then
+      am_cv_func_iconv_summary='not working, consider installing GNU libiconv'
+    else
+      am_cv_func_iconv_summary='no, consider installing GNU libiconv'
+    fi
+  fi
+
 
 
   GL_GNULIB_ICONV=0
@@ -15025,8 +16931,8 @@ printf %s "checking absolute name of <iconv.h>... " >&6; }
 if test ${gl_cv_next_iconv_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
              if test $ac_cv_header_iconv_h = yes; then
 
 
@@ -15062,13 +16968,14 @@ _ACEOF
         gl_cv_absolute_iconv_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
   sed -n "$gl_absolute_header_sed"`
 
-           gl_header=$gl_cv_absolute_iconv_h
-           gl_cv_next_iconv_h='"'$gl_header'"'
+          gl_header=$gl_cv_absolute_iconv_h
+          gl_cv_next_iconv_h='"'$gl_header'"'
           else
                gl_cv_next_iconv_h='<'iconv.h'>'
              fi
 
-
+          ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_iconv_h" >&5
 printf "%s\n" "$gl_cv_next_iconv_h" >&6; }
@@ -15099,8 +17006,8 @@ printf %s "checking for inline... " >&6; }
 if test ${ac_cv_c_inline+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_cv_c_inline=no
+else case e in #(
+  e) ac_cv_c_inline=no
 for ac_kw in inline __inline__ __inline; do
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -15118,7 +17025,8 @@ fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
   test "$ac_cv_c_inline" != no && break
 done
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
 printf "%s\n" "$ac_cv_c_inline" >&6; }
@@ -15142,10 +17050,11 @@ ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default"
 if test "x$ac_cv_type_off_t" = xyes
 then :
 
-else $as_nop
-
+else case e in #(
+  e)
 printf "%s\n" "#define off_t long int" >>confdefs.h
-
+ ;;
+esac
 fi
 
 
@@ -15167,8 +17076,8 @@ printf %s "checking absolute name of <limits.h>... " >&6; }
 if test ${gl_cv_next_limits_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
              if test $ac_cv_header_limits_h = yes; then
 
 
@@ -15204,13 +17113,14 @@ _ACEOF
         gl_cv_absolute_limits_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
   sed -n "$gl_absolute_header_sed"`
 
-           gl_header=$gl_cv_absolute_limits_h
-           gl_cv_next_limits_h='"'$gl_header'"'
+          gl_header=$gl_cv_absolute_limits_h
+          gl_cv_next_limits_h='"'$gl_header'"'
           else
                gl_cv_next_limits_h='<'limits.h'>'
              fi
 
-
+          ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_limits_h" >&5
 printf "%s\n" "$gl_cv_next_limits_h" >&6; }
@@ -15235,8 +17145,8 @@ printf %s "checking whether limits.h has WORD_BIT, BOOL_WIDTH etc.... " >&6; }
 if test ${gl_cv_header_limits_width+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #ifndef __STDC_WANT_IEC_60559_BFP_EXT__
              #define __STDC_WANT_IEC_60559_BFP_EXT__ 1
@@ -15246,6 +17156,8 @@ else $as_nop
             int wb = WORD_BIT;
             int ullw = ULLONG_WIDTH;
             int bw = BOOL_WIDTH;
+            int bm = BOOL_MAX;
+            int mblm = MB_LEN_MAX;
 
 int
 main (void)
@@ -15258,27 +17170,48 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_header_limits_width=yes
-else $as_nop
-  gl_cv_header_limits_width=no
+else case e in #(
+  e) gl_cv_header_limits_width=no ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+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_header_limits_width" >&5
 printf "%s\n" "$gl_cv_header_limits_width" >&6; }
-  if test "$gl_cv_header_limits_width" = yes; then
-    LIMITS_H=
-  else
-    LIMITS_H=limits.h
-  fi
+  GL_GENERATE_LIMITS_H=true
+  if test "$gl_cv_header_limits_width" = yes
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether limits.h has SSIZE_MAX" >&5
+printf %s "checking whether limits.h has SSIZE_MAX... " >&6; }
+if test ${gl_cv_header_limits_ssize_max+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <limits.h>
+               #ifndef SSIZE_MAX
+                 #error "SSIZE_MAX is not defined"
+               #endif
 
-   if test -n "$LIMITS_H"; then
-  GL_GENERATE_LIMITS_H_TRUE=
-  GL_GENERATE_LIMITS_H_FALSE='#'
-else
-  GL_GENERATE_LIMITS_H_TRUE='#'
-  GL_GENERATE_LIMITS_H_FALSE=
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  gl_cv_header_limits_ssize_max=yes
+else case e in #(
+  e) gl_cv_header_limits_ssize_max=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_header_limits_ssize_max" >&5
+printf "%s\n" "$gl_cv_header_limits_ssize_max" >&6; }
+     if test "$gl_cv_header_limits_ssize_max" = yes; then
+       GL_GENERATE_LIMITS_H=false
+     fi
 fi
-
 
 
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for wint_t" >&5
@@ -15286,8 +17219,8 @@ printf %s "checking for wint_t... " >&6; }
 if test ${gt_cv_c_wint_t+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <wchar.h>
             wint_t foo = (wchar_t)'\0';
@@ -15302,10 +17235,12 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gt_cv_c_wint_t=yes
-else $as_nop
-  gt_cv_c_wint_t=no
+else case e in #(
+  e) gt_cv_c_wint_t=no ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wint_t" >&5
 printf "%s\n" "$gt_cv_c_wint_t" >&6; }
@@ -15319,8 +17254,8 @@ printf %s "checking whether wint_t is large enough... " >&6; }
 if test ${gl_cv_type_wint_t_large_enough+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <wchar.h>
               int verify[sizeof (wint_t) < sizeof (int) ? -1 : 1];
@@ -15336,10 +17271,12 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_type_wint_t_large_enough=yes
-else $as_nop
-  gl_cv_type_wint_t_large_enough=no
+else case e in #(
+  e) gl_cv_type_wint_t_large_enough=no ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+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_type_wint_t_large_enough" >&5
 printf "%s\n" "$gl_cv_type_wint_t_large_enough" >&6; }
@@ -15359,8 +17296,8 @@ printf %s "checking whether the compiler produces multi-arch binaries... " >&6;
 if test ${gl_cv_c_multiarch+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  gl_cv_c_multiarch=no
+else case e in #(
+  e) gl_cv_c_multiarch=no
      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #ifndef __APPLE_CC__
@@ -15395,7 +17332,8 @@ then :
 
 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_c_multiarch" >&5
 printf "%s\n" "$gl_cv_c_multiarch" >&6; }
@@ -15459,8 +17397,8 @@ printf %s "checking absolute name of <stdint.h>... " >&6; }
 if test ${gl_cv_next_stdint_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
              if test $ac_cv_header_stdint_h = yes; then
 
 
@@ -15496,13 +17434,14 @@ _ACEOF
         gl_cv_absolute_stdint_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
   sed -n "$gl_absolute_header_sed"`
 
-           gl_header=$gl_cv_absolute_stdint_h
-           gl_cv_next_stdint_h='"'$gl_header'"'
+          gl_header=$gl_cv_absolute_stdint_h
+          gl_cv_next_stdint_h='"'$gl_header'"'
           else
                gl_cv_next_stdint_h='<'stdint.h'>'
              fi
 
-
+          ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdint_h" >&5
 printf "%s\n" "$gl_cv_next_stdint_h" >&6; }
@@ -15534,8 +17473,8 @@ printf %s "checking whether stdint.h conforms to C99... " >&6; }
 if test ${gl_cv_header_working_stdint_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  gl_cv_header_working_stdint_h=no
+else case e in #(
+  e) gl_cv_header_working_stdint_h=no
        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -15717,8 +17656,8 @@ then :
                  *)      gl_cv_header_working_stdint_h="guessing yes" ;;
                esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 
@@ -15796,13 +17735,15 @@ then :
   gl_cv_header_working_stdint_h=yes
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
 
 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_header_working_stdint_h" >&5
 printf "%s\n" "$gl_cv_header_working_stdint_h" >&6; }
@@ -15811,7 +17752,7 @@ printf "%s\n" "$gl_cv_header_working_stdint_h" >&6; }
   HAVE_C99_STDINT_H=0
   HAVE_SYS_BITYPES_H=0
   HAVE_SYS_INTTYPES_H=0
-  STDINT_H=stdint.h
+  GL_GENERATE_STDINT_H=true
   case "$gl_cv_header_working_stdint_h" in
     *yes)
       HAVE_C99_STDINT_H=1
@@ -15820,8 +17761,8 @@ printf %s "checking whether stdint.h works without ISO C predefines... " >&6; }
 if test ${gl_cv_header_stdint_without_STDC_macros+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  gl_cv_header_stdint_without_STDC_macros=no
+else case e in #(
+  e) gl_cv_header_stdint_without_STDC_macros=no
          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -15853,7 +17794,8 @@ then :
   gl_cv_header_stdint_without_STDC_macros=yes
 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_header_stdint_without_STDC_macros" >&5
 printf "%s\n" "$gl_cv_header_stdint_without_STDC_macros" >&6; }
@@ -15871,8 +17813,8 @@ printf %s "checking whether stdint.h has UINTMAX_WIDTH etc.... " >&6; }
 if test ${gl_cv_header_stdint_width+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  gl_cv_header_stdint_width=no
+else case e in #(
+  e) gl_cv_header_stdint_width=no
          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -15903,12 +17845,13 @@ if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_header_stdint_width=yes
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+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_header_stdint_width" >&5
 printf "%s\n" "$gl_cv_header_stdint_width" >&6; }
       if test "$gl_cv_header_stdint_width" = yes; then
-        STDINT_H=
+        GL_GENERATE_STDINT_H=false
       fi
       ;;
     *)
@@ -15942,8 +17885,8 @@ printf %s "checking for bit size of $gltype... " >&6; }
 if eval test \${gl_cv_bitsizeof_${gltype}+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result"        "
+else case e in #(
+  e) if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result"        "
   #include <stddef.h>
   #include <signal.h>
   #if HAVE_WCHAR_H
@@ -15953,12 +17896,14 @@ else $as_nop
 #include <limits.h>"
 then :
 
-else $as_nop
-  result=unknown
+else case e in #(
+  e) result=unknown ;;
+esac
 fi
 
        eval gl_cv_bitsizeof_${gltype}=\$result
-
+       ;;
+esac
 fi
 eval ac_res=\$gl_cv_bitsizeof_${gltype}
               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
@@ -15983,8 +17928,8 @@ printf %s "checking for bit size of $gltype... " >&6; }
 if eval test \${gl_cv_bitsizeof_${gltype}+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result"        "
+else case e in #(
+  e) if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result"        "
   #include <stddef.h>
   #include <signal.h>
   #if HAVE_WCHAR_H
@@ -15994,12 +17939,14 @@ else $as_nop
 #include <limits.h>"
 then :
 
-else $as_nop
-  result=unknown
+else case e in #(
+  e) result=unknown ;;
+esac
 fi
 
        eval gl_cv_bitsizeof_${gltype}=\$result
-
+       ;;
+esac
 fi
 eval ac_res=\$gl_cv_bitsizeof_${gltype}
               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
@@ -16023,8 +17970,8 @@ printf %s "checking whether $gltype is signed... " >&6; }
 if eval test \${gl_cv_type_${gltype}_signed+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
   #include <stddef.h>
@@ -16045,12 +17992,14 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   result=yes
-else $as_nop
-  result=no
+else case e in #(
+  e) result=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
        eval gl_cv_type_${gltype}_signed=\$result
-
+       ;;
+esac
 fi
 eval ac_res=\$gl_cv_type_${gltype}_signed
               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
@@ -16078,8 +18027,8 @@ printf %s "checking for $gltype integer literal suffix... " >&6; }
 if eval test \${gl_cv_type_${gltype}_suffix+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  eval gl_cv_type_${gltype}_suffix=no
+else case e in #(
+  e) eval gl_cv_type_${gltype}_suffix=no
        eval result=\$gl_cv_type_${gltype}_signed
        if test "$result" = yes; then
          glsufu=
@@ -16123,7 +18072,8 @@ fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
          eval result=\$gl_cv_type_${gltype}_suffix
          test "$result" != no && break
-       done
+       done ;;
+esac
 fi
 eval ac_res=\$gl_cv_type_${gltype}_suffix
               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
@@ -16146,8 +18096,8 @@ printf %s "checking for $gltype integer literal suffix... " >&6; }
 if eval test \${gl_cv_type_${gltype}_suffix+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  eval gl_cv_type_${gltype}_suffix=no
+else case e in #(
+  e) eval gl_cv_type_${gltype}_suffix=no
        eval result=\$gl_cv_type_${gltype}_signed
        if test "$result" = yes; then
          glsufu=
@@ -16191,7 +18141,8 @@ fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
          eval result=\$gl_cv_type_${gltype}_suffix
          test "$result" != no && break
-       done
+       done ;;
+esac
 fi
 eval ac_res=\$gl_cv_type_${gltype}_suffix
               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
@@ -16215,14 +18166,7 @@ printf "%s\n" "$ac_res" >&6; }
 
 
 
-  LIMITS_H='limits.h'
-   if test -n "$LIMITS_H"; then
-  GL_GENERATE_LIMITS_H_TRUE=
-  GL_GENERATE_LIMITS_H_FALSE='#'
-else
-  GL_GENERATE_LIMITS_H_TRUE='#'
-  GL_GENERATE_LIMITS_H_FALSE=
-fi
+  GL_GENERATE_LIMITS_H=true
 
 
 
 
 
 
-   if test -n "$STDINT_H"; then
-  GL_GENERATE_STDINT_H_TRUE=
-  GL_GENERATE_STDINT_H_FALSE='#'
-else
-  GL_GENERATE_STDINT_H_TRUE='#'
-  GL_GENERATE_STDINT_H_FALSE=
-fi
-
-
-
     HAVE_DECL_IMAXABS=1;
   HAVE_DECL_IMAXDIV=1;
   HAVE_DECL_STRTOIMAX=1;
   HAVE_DECL_STRTOUMAX=1;
   HAVE_IMAXDIV_T=1;
+  HAVE_IMAXABS=1;
+  HAVE_IMAXDIV=1;
+  REPLACE_IMAXABS=0;
+  REPLACE_IMAXDIV=0;
   REPLACE_STRTOIMAX=0;
   REPLACE_STRTOUMAX=0;
   INT32_MAX_LT_INTMAX_MAX=1;
@@ -16275,8 +18213,8 @@ printf %s "checking absolute name of <inttypes.h>... " >&6; }
 if test ${gl_cv_next_inttypes_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
              if test $ac_cv_header_inttypes_h = yes; then
 
 
@@ -16312,13 +18250,14 @@ _ACEOF
         gl_cv_absolute_inttypes_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
   sed -n "$gl_absolute_header_sed"`
 
-           gl_header=$gl_cv_absolute_inttypes_h
-           gl_cv_next_inttypes_h='"'$gl_header'"'
+          gl_header=$gl_cv_absolute_inttypes_h
+          gl_cv_next_inttypes_h='"'$gl_header'"'
           else
                gl_cv_next_inttypes_h='<'inttypes.h'>'
              fi
 
-
+          ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_inttypes_h" >&5
 printf "%s\n" "$gl_cv_next_inttypes_h" >&6; }
@@ -16350,7 +18289,7 @@ printf "%s\n" "$gl_cv_next_inttypes_h" >&6; }
 
 
   PRIPTR_PREFIX=
-  if test -n "$STDINT_H"; then
+  if $GL_GENERATE_STDINT_H; then
             cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -16370,8 +18309,9 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   PRIPTR_PREFIX='"l"'
-else $as_nop
-  PRIPTR_PREFIX='"ll"'
+else case e in #(
+  e) PRIPTR_PREFIX='"ll"' ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
   else
@@ -16411,8 +18351,8 @@ printf %s "checking whether INT32_MAX < INTMAX_MAX... " >&6; }
 if test ${gl_cv_test_INT32_MAX_LT_INTMAX_MAX+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 /* Work also in C++ mode.  */
             #define __STDC_LIMIT_MACROS 1
@@ -16442,10 +18382,12 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_test_INT32_MAX_LT_INTMAX_MAX=yes
-else $as_nop
-  gl_cv_test_INT32_MAX_LT_INTMAX_MAX=no
+else case e in #(
+  e) gl_cv_test_INT32_MAX_LT_INTMAX_MAX=no ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+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_test_INT32_MAX_LT_INTMAX_MAX" >&5
 printf "%s\n" "$gl_cv_test_INT32_MAX_LT_INTMAX_MAX" >&6; }
@@ -16463,8 +18405,8 @@ printf %s "checking whether INT64_MAX == LONG_MAX... " >&6; }
 if test ${gl_cv_test_INT64_MAX_EQ_LONG_MAX+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 /* Work also in C++ mode.  */
             #define __STDC_LIMIT_MACROS 1
@@ -16494,10 +18436,12 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_test_INT64_MAX_EQ_LONG_MAX=yes
-else $as_nop
-  gl_cv_test_INT64_MAX_EQ_LONG_MAX=no
+else case e in #(
+  e) gl_cv_test_INT64_MAX_EQ_LONG_MAX=no ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+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_test_INT64_MAX_EQ_LONG_MAX" >&5
 printf "%s\n" "$gl_cv_test_INT64_MAX_EQ_LONG_MAX" >&6; }
@@ -16517,8 +18461,8 @@ printf %s "checking whether UINT32_MAX < UINTMAX_MAX... " >&6; }
 if test ${gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 /* Work also in C++ mode.  */
             #define __STDC_LIMIT_MACROS 1
@@ -16548,10 +18492,12 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX=yes
-else $as_nop
-  gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX=no
+else case e in #(
+  e) gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX=no ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+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_test_UINT32_MAX_LT_UINTMAX_MAX" >&5
 printf "%s\n" "$gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX" >&6; }
@@ -16569,8 +18515,8 @@ printf %s "checking whether UINT64_MAX == ULONG_MAX... " >&6; }
 if test ${gl_cv_test_UINT64_MAX_EQ_ULONG_MAX+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 /* Work also in C++ mode.  */
             #define __STDC_LIMIT_MACROS 1
@@ -16600,10 +18546,12 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_test_UINT64_MAX_EQ_ULONG_MAX=yes
-else $as_nop
-  gl_cv_test_UINT64_MAX_EQ_ULONG_MAX=no
+else case e in #(
+  e) gl_cv_test_UINT64_MAX_EQ_ULONG_MAX=no ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+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_test_UINT64_MAX_EQ_ULONG_MAX" >&5
 printf "%s\n" "$gl_cv_test_UINT64_MAX_EQ_ULONG_MAX" >&6; }
@@ -16697,8 +18645,8 @@ printf %s "checking absolute name of <wctype.h>... " >&6; }
 if test ${gl_cv_next_wctype_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
              if test $ac_cv_header_wctype_h = yes; then
 
 
@@ -16734,13 +18682,14 @@ _ACEOF
         gl_cv_absolute_wctype_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
   sed -n "$gl_absolute_header_sed"`
 
-           gl_header=$gl_cv_absolute_wctype_h
-           gl_cv_next_wctype_h='"'$gl_header'"'
+          gl_header=$gl_cv_absolute_wctype_h
+          gl_cv_next_wctype_h='"'$gl_header'"'
           else
                gl_cv_next_wctype_h='<'wctype.h'>'
              fi
 
-
+          ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_wctype_h" >&5
 printf "%s\n" "$gl_cv_next_wctype_h" >&6; }
@@ -16766,8 +18715,8 @@ printf %s "checking whether iswcntrl works... " >&6; }
 if test ${gl_cv_func_iswcntrl_works+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
           if test "$cross_compiling" = yes
 then :
                cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -16787,13 +18736,14 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_func_iswcntrl_works="guessing yes"
-else $as_nop
-  gl_cv_func_iswcntrl_works="guessing no"
+else case e in #(
+  e) gl_cv_func_iswcntrl_works="guessing no" ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
                #include <wchar.h>
@@ -16804,14 +18754,17 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_iswcntrl_works=yes
-else $as_nop
-  gl_cv_func_iswcntrl_works=no
+else case e in #(
+  e) gl_cv_func_iswcntrl_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
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
-
+         ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_iswcntrl_works" >&5
 printf "%s\n" "$gl_cv_func_iswcntrl_works" >&6; }
@@ -16858,8 +18811,9 @@ fi
 if test "x$ac_cv_have_decl_towlower" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_TOWLOWER $ac_have_decl" >>confdefs.h
 
@@ -16881,8 +18835,8 @@ printf %s "checking for wctype_t... " >&6; }
 if test ${gl_cv_type_wctype_t+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <wchar.h>
             #if HAVE_WCTYPE_H
@@ -16901,11 +18855,13 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_type_wctype_t=yes
-else $as_nop
-  gl_cv_type_wctype_t=no
+else case e in #(
+  e) gl_cv_type_wctype_t=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_type_wctype_t" >&5
 printf "%s\n" "$gl_cv_type_wctype_t" >&6; }
@@ -16918,8 +18874,8 @@ printf %s "checking for wctrans_t... " >&6; }
 if test ${gl_cv_type_wctrans_t+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <wchar.h>
             #include <wctype.h>
@@ -16936,11 +18892,13 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_type_wctrans_t=yes
-else $as_nop
-  gl_cv_type_wctrans_t=no
+else case e in #(
+  e) gl_cv_type_wctrans_t=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_type_wctrans_t" >&5
 printf "%s\n" "$gl_cv_type_wctrans_t" >&6; }
@@ -16954,7 +18912,6 @@ printf "%s\n" "$gl_cv_type_wctrans_t" >&6; }
 
 
 
-
   GL_GNULIB_ISWBLANK=0
 
 
@@ -16991,8 +18948,8 @@ printf %s "checking for a traditional japanese locale... " >&6; }
 if test ${gt_cv_locale_ja+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -17125,7 +19082,8 @@ _ACEOF
       esac
     fi
     rm -fr conftest*
-
+   ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_ja" >&5
 printf "%s\n" "$gt_cv_locale_ja" >&6; }
@@ -17139,8 +19097,8 @@ printf %s "checking for a french Unicode locale... " >&6; }
 if test ${gt_cv_locale_fr_utf8+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -17254,7 +19212,8 @@ _ACEOF
       esac
     fi
     rm -fr conftest*
-
+   ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5
 printf "%s\n" "$gt_cv_locale_fr_utf8" >&6; }
@@ -17269,8 +19228,8 @@ printf %s "checking for a transitional chinese locale... " >&6; }
 if test ${gt_cv_locale_zh_CN+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -17397,7 +19356,8 @@ _ACEOF
       gt_cv_locale_zh_CN=none
     fi
     rm -fr conftest*
-
+   ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_zh_CN" >&5
 printf "%s\n" "$gt_cv_locale_zh_CN" >&6; }
@@ -17431,8 +19391,8 @@ printf %s "checking absolute name of <langinfo.h>... " >&6; }
 if test ${gl_cv_next_langinfo_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
              if test $ac_cv_header_langinfo_h = yes; then
 
 
@@ -17468,13 +19428,14 @@ _ACEOF
         gl_cv_absolute_langinfo_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
   sed -n "$gl_absolute_header_sed"`
 
-           gl_header=$gl_cv_absolute_langinfo_h
-           gl_cv_next_langinfo_h='"'$gl_header'"'
+          gl_header=$gl_cv_absolute_langinfo_h
+          gl_cv_next_langinfo_h='"'$gl_header'"'
           else
                gl_cv_next_langinfo_h='<'langinfo.h'>'
              fi
 
-
+          ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_langinfo_h" >&5
 printf "%s\n" "$gl_cv_next_langinfo_h" >&6; }
@@ -17507,8 +19468,8 @@ printf %s "checking whether langinfo.h defines CODESET... " >&6; }
 if test ${gl_cv_header_langinfo_codeset+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <langinfo.h>
 int a = CODESET;
@@ -17524,11 +19485,13 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_header_langinfo_codeset=yes
-else $as_nop
-  gl_cv_header_langinfo_codeset=no
+else case e in #(
+  e) gl_cv_header_langinfo_codeset=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_header_langinfo_codeset" >&5
 printf "%s\n" "$gl_cv_header_langinfo_codeset" >&6; }
@@ -17540,8 +19503,8 @@ printf %s "checking whether langinfo.h defines T_FMT_AMPM... " >&6; }
 if test ${gl_cv_header_langinfo_t_fmt_ampm+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <langinfo.h>
 int a = T_FMT_AMPM;
@@ -17557,11 +19520,13 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_header_langinfo_t_fmt_ampm=yes
-else $as_nop
-  gl_cv_header_langinfo_t_fmt_ampm=no
+else case e in #(
+  e) gl_cv_header_langinfo_t_fmt_ampm=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_header_langinfo_t_fmt_ampm" >&5
 printf "%s\n" "$gl_cv_header_langinfo_t_fmt_ampm" >&6; }
@@ -17573,8 +19538,8 @@ printf %s "checking whether langinfo.h defines ALTMON_1... " >&6; }
 if test ${gl_cv_header_langinfo_altmon+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <langinfo.h>
 int a = ALTMON_1;
@@ -17590,11 +19555,13 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_header_langinfo_altmon=yes
-else $as_nop
-  gl_cv_header_langinfo_altmon=no
+else case e in #(
+  e) gl_cv_header_langinfo_altmon=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_header_langinfo_altmon" >&5
 printf "%s\n" "$gl_cv_header_langinfo_altmon" >&6; }
@@ -17606,8 +19573,8 @@ printf %s "checking whether langinfo.h defines ERA... " >&6; }
 if test ${gl_cv_header_langinfo_era+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <langinfo.h>
 int a = ERA;
@@ -17623,11 +19590,13 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_header_langinfo_era=yes
-else $as_nop
-  gl_cv_header_langinfo_era=no
+else case e in #(
+  e) gl_cv_header_langinfo_era=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_header_langinfo_era" >&5
 printf "%s\n" "$gl_cv_header_langinfo_era" >&6; }
@@ -17639,8 +19608,8 @@ printf %s "checking whether langinfo.h defines YESEXPR... " >&6; }
 if test ${gl_cv_header_langinfo_yesexpr+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <langinfo.h>
 int a = YESEXPR;
@@ -17656,11 +19625,13 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_header_langinfo_yesexpr=yes
-else $as_nop
-  gl_cv_header_langinfo_yesexpr=no
+else case e in #(
+  e) gl_cv_header_langinfo_yesexpr=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_header_langinfo_yesexpr" >&5
 printf "%s\n" "$gl_cv_header_langinfo_yesexpr" >&6; }
@@ -17710,8 +19681,8 @@ printf %s "checking for wchar_t... " >&6; }
 if test ${gt_cv_c_wchar_t+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stddef.h>
             wchar_t foo = (wchar_t)'\0';
@@ -17726,10 +19697,12 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gt_cv_c_wchar_t=yes
-else $as_nop
-  gt_cv_c_wchar_t=no
+else case e in #(
+  e) gt_cv_c_wchar_t=no ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wchar_t" >&5
 printf "%s\n" "$gt_cv_c_wchar_t" >&6; }
@@ -17745,17 +19718,24 @@ printf "%s\n" "#define HAVE_WCHAR_T 1" >>confdefs.h
 
 
 
-  STDDEF_H=
+  GL_GENERATE_STDDEF_H=false
 
       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for good max_align_t" >&5
 printf %s "checking for good max_align_t... " >&6; }
 if test ${gl_cv_type_max_align_t+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <stddef.h>
+/* On FreeBSD 12.0/x86, max_align_t defined by <stddef.h> has
+               the correct alignment with the default (wrong) definition of
+               _Alignof, but a wrong alignment as soon as we activate an
+               ISO C compliant _Alignof definition.  */
+            #if ((defined __GNUC__ && 4 <= __GNUC__) || defined __clang__) && !defined __cplusplus
+             #define _Alignof(type) __builtin_offsetof (struct { char __a; type __b; }, __b)
+            #endif
+            #include <stddef.h>
             unsigned int s = sizeof (max_align_t);
             #if defined __GNUC__ || defined __clang__ || defined __IBM__ALIGNOF__
             int check1[2 * (__alignof__ (double) <= __alignof__ (max_align_t)) - 1];
@@ -17780,22 +19760,24 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_type_max_align_t=yes
-else $as_nop
-  gl_cv_type_max_align_t=no
+else case e in #(
+  e) gl_cv_type_max_align_t=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_type_max_align_t" >&5
 printf "%s\n" "$gl_cv_type_max_align_t" >&6; }
   if test $gl_cv_type_max_align_t = no; then
     HAVE_MAX_ALIGN_T=0
-    STDDEF_H=stddef.h
+    GL_GENERATE_STDDEF_H=true
   fi
 
   if test $gt_cv_c_wchar_t = no; then
     HAVE_WCHAR_T=0
-    STDDEF_H=stddef.h
+    GL_GENERATE_STDDEF_H=true
   fi
 
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether NULL can be used in arbitrary expressions" >&5
@@ -17803,8 +19785,8 @@ printf %s "checking whether NULL can be used in arbitrary expressions... " >&6;
 if test ${gl_cv_decl_null_works+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stddef.h>
       int test[2 * (sizeof NULL == sizeof (void *)) -1];
@@ -17820,28 +19802,58 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_decl_null_works=yes
-else $as_nop
-  gl_cv_decl_null_works=no
+else case e in #(
+  e) gl_cv_decl_null_works=no ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+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_decl_null_works" >&5
 printf "%s\n" "$gl_cv_decl_null_works" >&6; }
   if test $gl_cv_decl_null_works = no; then
     REPLACE_NULL=1
-    STDDEF_H=stddef.h
+    GL_GENERATE_STDDEF_H=true
   fi
 
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for unreachable" >&5
+printf %s "checking for unreachable... " >&6; }
+if test ${gl_cv_func_unreachable+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stddef.h>
 
-   if test -n "$STDDEF_H"; then
-  GL_GENERATE_STDDEF_H_TRUE=
-  GL_GENERATE_STDDEF_H_FALSE='#'
-else
-  GL_GENERATE_STDDEF_H_TRUE='#'
-  GL_GENERATE_STDDEF_H_FALSE=
+int
+main (void)
+{
+unreachable ();
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+  gl_cv_func_unreachable=yes
+else case e in #(
+  e) gl_cv_func_unreachable=no ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+    conftest$ac_exeext conftest.$ac_ext
+     ;;
+esac
 fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_unreachable" >&5
+printf "%s\n" "$gl_cv_func_unreachable" >&6; }
+  if test $gl_cv_func_unreachable = no; then
+    GL_GENERATE_STDDEF_H=true
+  fi
 
-  if test -n "$STDDEF_H"; then
+  if $GL_GENERATE_STDDEF_H; then
 
 
 
@@ -17858,8 +19870,8 @@ printf %s "checking absolute name of <stddef.h>... " >&6; }
 if test ${gl_cv_next_stddef_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
 
 
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -17892,10 +19904,11 @@ _ACEOF
         gl_cv_absolute_stddef_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
   sed -n "$gl_absolute_header_sed"`
 
-           gl_header=$gl_cv_absolute_stddef_h
-           gl_cv_next_stddef_h='"'$gl_header'"'
-
+          gl_header=$gl_cv_absolute_stddef_h
+          gl_cv_next_stddef_h='"'$gl_header'"'
 
+          ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stddef_h" >&5
 printf "%s\n" "$gl_cv_next_stddef_h" >&6; }
@@ -17925,8 +19938,8 @@ printf %s "checking whether locale.h defines locale_t... " >&6; }
 if test ${gl_cv_header_locale_has_locale_t+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <locale.h>
             locale_t x;
@@ -17941,11 +19954,13 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_header_locale_has_locale_t=yes
-else $as_nop
-  gl_cv_header_locale_has_locale_t=no
+else case e in #(
+  e) gl_cv_header_locale_has_locale_t=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_header_locale_has_locale_t" >&5
 printf "%s\n" "$gl_cv_header_locale_has_locale_t" >&6; }
@@ -17993,8 +20008,8 @@ printf %s "checking whether locale.h conforms to POSIX:2001... " >&6; }
 if test ${gl_cv_header_locale_h_posix2001+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <locale.h>
             int x = LC_MESSAGES;
@@ -18010,10 +20025,12 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_header_locale_h_posix2001=yes
-else $as_nop
-  gl_cv_header_locale_h_posix2001=no
+else case e in #(
+  e) gl_cv_header_locale_h_posix2001=no ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+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_header_locale_h_posix2001" >&5
 printf "%s\n" "$gl_cv_header_locale_h_posix2001" >&6; }
@@ -18023,8 +20040,8 @@ printf %s "checking whether struct lconv is properly defined... " >&6; }
 if test ${gl_cv_sys_struct_lconv_ok+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <locale.h>
             struct lconv l;
@@ -18041,11 +20058,13 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_sys_struct_lconv_ok=yes
-else $as_nop
-  gl_cv_sys_struct_lconv_ok=no
+else case e in #(
+  e) gl_cv_sys_struct_lconv_ok=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_sys_struct_lconv_ok" >&5
 printf "%s\n" "$gl_cv_sys_struct_lconv_ok" >&6; }
@@ -18061,11 +20080,12 @@ printf "%s\n" "$gl_cv_sys_struct_lconv_ok" >&6; }
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Special" >/dev/null 2>&1
+  $EGREP_TRADITIONAL "Special" >/dev/null 2>&1
 then :
 
-else $as_nop
-  REPLACE_STRUCT_LCONV=1
+else case e in #(
+  e) REPLACE_STRUCT_LCONV=1 ;;
+esac
 fi
 rm -rf conftest*
 
@@ -18090,8 +20110,8 @@ printf %s "checking absolute name of <locale.h>... " >&6; }
 if test ${gl_cv_next_locale_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
 
 
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -18124,10 +20144,11 @@ _ACEOF
         gl_cv_absolute_locale_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
   sed -n "$gl_absolute_header_sed"`
 
-           gl_header=$gl_cv_absolute_locale_h
-           gl_cv_next_locale_h='"'$gl_header'"'
-
+          gl_header=$gl_cv_absolute_locale_h
+          gl_cv_next_locale_h='"'$gl_header'"'
 
+          ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_locale_h" >&5
 printf "%s\n" "$gl_cv_next_locale_h" >&6; }
@@ -18188,9 +20209,14 @@ printf %s "checking whether imported symbols can be declared weak... " >&6; }
 if test ${gl_cv_have_weak+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  gl_cv_have_weak=no
-          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) case "$host_os" in
+       cygwin* | mingw*)
+                                             gl_cv_have_weak="guessing no"
+         ;;
+       *)
+         gl_cv_have_weak=no
+                  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 extern void xyzzy ();
 #pragma weak xyzzy
@@ -18208,28 +20234,29 @@ then :
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
-     if test $gl_cv_have_weak = maybe; then
-                     if test "$cross_compiling" = yes
+         if test $gl_cv_have_weak = maybe; then
+                                 if test "$cross_compiling" = yes
 then :
-                      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+                              cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #ifdef __ELF__
-             Extensible Linking Format
-             #endif
+                 Extensible Linking Format
+                 #endif
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Extensible Linking Format" >/dev/null 2>&1
+  $EGREP_TRADITIONAL "Extensible Linking Format" >/dev/null 2>&1
 then :
   gl_cv_have_weak="guessing yes"
-else $as_nop
-  gl_cv_have_weak="guessing no"
+else case e in #(
+  e) gl_cv_have_weak="guessing no" ;;
+esac
 fi
 rm -rf conftest*
 
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <stdio.h>
@@ -18242,14 +20269,18 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_have_weak=yes
-else $as_nop
-  gl_cv_have_weak=no
+else case e in #(
+  e) gl_cv_have_weak=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
-     fi
+         fi
+         ;;
+     esac
           case " $LDFLAGS " in
        *" -static "*) gl_cv_have_weak=no ;;
      esac
@@ -18274,7 +20305,8 @@ EOF
          esac
          ;;
      esac
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_weak" >&5
 printf "%s\n" "$gl_cv_have_weak" >&6; }
@@ -18309,8 +20341,9 @@ printf "%s\n" "#define HAVE_WEAK_SYMBOLS 1" >>confdefs.h
 if test "x$ac_cv_header_pthread_h" = xyes
 then :
   gl_have_pthread_h=yes
-else $as_nop
-  gl_have_pthread_h=no
+else case e in #(
+  e) gl_have_pthread_h=no ;;
+esac
 fi
 
     if test "$gl_have_pthread_h" = yes; then
@@ -18353,8 +20386,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \
         LIBS=$save_LIBS
         test $gl_pthread_api = yes && break
       done
-      echo "$as_me:18356: gl_pthread_api=$gl_pthread_api" >&5
-      echo "$as_me:18357: LIBPTHREAD=$LIBPTHREAD" >&5
+      echo "$as_me:20389: gl_pthread_api=$gl_pthread_api" >&5
+      echo "$as_me:20390: LIBPTHREAD=$LIBPTHREAD" >&5
 
       gl_pthread_in_glibc=no
       # On Linux with glibc >= 2.34, libc contains the fully functional
@@ -18372,7 +20405,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Lucky user" >/dev/null 2>&1
+  $EGREP_TRADITIONAL "Lucky user" >/dev/null 2>&1
 then :
   gl_pthread_in_glibc=yes
 fi
@@ -18380,7 +20413,7 @@ rm -rf conftest*
 
           ;;
       esac
-      echo "$as_me:18383: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5
+      echo "$as_me:20416: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5
 
       # Test for libpthread by looking for pthread_kill. (Not pthread_self,
       # since it is defined as a macro on OSF/1.)
@@ -18392,16 +20425,22 @@ printf %s "checking for pthread_kill in -lpthread... " >&6; }
 if test ${ac_cv_lib_pthread_pthread_kill+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_check_lib_save_LIBS=$LIBS
+else case e in #(
+  e) ac_check_lib_save_LIBS=$LIBS
 LIBS="-lpthread  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-char pthread_kill ();
+   builtin and then its argument prototype would still apply.
+   The 'extern "C"' is for builds by C++ compilers;
+   although this is not generally supported in C code supporting it here
+   has little cost and some practical benefit (sr 110532).  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char pthread_kill (void);
 int
 main (void)
 {
@@ -18413,12 +20452,14 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   ac_cv_lib_pthread_pthread_kill=yes
-else $as_nop
-  ac_cv_lib_pthread_pthread_kill=no
+else case e in #(
+  e) ac_cv_lib_pthread_pthread_kill=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+LIBS=$ac_check_lib_save_LIBS ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5
 printf "%s\n" "$ac_cv_lib_pthread_pthread_kill" >&6; }
@@ -18435,7 +20476,7 @@ then :
              # On Solaris 10 or newer, this test is no longer needed, because
              # libc contains the fully functional pthread functions.
              case "$host_os" in
-               solaris | solaris2.1-9 | solaris2.1-9.* | hpux*)
+               solaris | solaris2.[1-9] | solaris2.[1-9].* | hpux*)
 
 printf "%s\n" "#define PTHREAD_IN_USE_DETECTION_HARD 1" >>confdefs.h
 
@@ -18451,16 +20492,22 @@ printf %s "checking for pthread_kill in -lpthread... " >&6; }
 if test ${ac_cv_lib_pthread_pthread_kill+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_check_lib_save_LIBS=$LIBS
+else case e in #(
+  e) ac_check_lib_save_LIBS=$LIBS
 LIBS="-lpthread  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-char pthread_kill ();
+   builtin and then its argument prototype would still apply.
+   The 'extern "C"' is for builds by C++ compilers;
+   although this is not generally supported in C code supporting it here
+   has little cost and some practical benefit (sr 110532).  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char pthread_kill (void);
 int
 main (void)
 {
@@ -18472,12 +20519,14 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   ac_cv_lib_pthread_pthread_kill=yes
-else $as_nop
-  ac_cv_lib_pthread_pthread_kill=no
+else case e in #(
+  e) ac_cv_lib_pthread_pthread_kill=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+LIBS=$ac_check_lib_save_LIBS ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5
 printf "%s\n" "$ac_cv_lib_pthread_pthread_kill" >&6; }
@@ -18495,16 +20544,22 @@ printf %s "checking for pthread_kill in -lc_r... " >&6; }
 if test ${ac_cv_lib_c_r_pthread_kill+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_check_lib_save_LIBS=$LIBS
+else case e in #(
+  e) ac_check_lib_save_LIBS=$LIBS
 LIBS="-lc_r  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-char pthread_kill ();
+   builtin and then its argument prototype would still apply.
+   The 'extern "C"' is for builds by C++ compilers;
+   although this is not generally supported in C code supporting it here
+   has little cost and some practical benefit (sr 110532).  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char pthread_kill (void);
 int
 main (void)
 {
@@ -18516,12 +20571,14 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   ac_cv_lib_c_r_pthread_kill=yes
-else $as_nop
-  ac_cv_lib_c_r_pthread_kill=no
+else case e in #(
+  e) ac_cv_lib_c_r_pthread_kill=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+LIBS=$ac_check_lib_save_LIBS ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_r_pthread_kill" >&5
 printf "%s\n" "$ac_cv_lib_c_r_pthread_kill" >&6; }
@@ -18534,7 +20591,7 @@ fi
 
         fi
       fi
-      echo "$as_me:18537: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5
+      echo "$as_me:20594: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5
     fi
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether POSIX threads API is available" >&5
 printf %s "checking whether POSIX threads API is available... " >&6; }
@@ -18561,24 +20618,30 @@ sched_yield ();
 _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
-  LIB_SCHED_YIELD=
+  SCHED_YIELD_LIB=
 
-else $as_nop
-         { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lrt" >&5
+else case e in #(
+  e)        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lrt" >&5
 printf %s "checking for sched_yield in -lrt... " >&6; }
 if test ${ac_cv_lib_rt_sched_yield+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_check_lib_save_LIBS=$LIBS
+else case e in #(
+  e) ac_check_lib_save_LIBS=$LIBS
 LIBS="-lrt  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-char sched_yield ();
+   builtin and then its argument prototype would still apply.
+   The 'extern "C"' is for builds by C++ compilers;
+   although this is not generally supported in C code supporting it here
+   has little cost and some practical benefit (sr 110532).  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char sched_yield (void);
 int
 main (void)
 {
@@ -18590,34 +20653,42 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   ac_cv_lib_rt_sched_yield=yes
-else $as_nop
-  ac_cv_lib_rt_sched_yield=no
+else case e in #(
+  e) ac_cv_lib_rt_sched_yield=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+LIBS=$ac_check_lib_save_LIBS ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_sched_yield" >&5
 printf "%s\n" "$ac_cv_lib_rt_sched_yield" >&6; }
 if test "x$ac_cv_lib_rt_sched_yield" = xyes
 then :
-  LIB_SCHED_YIELD=-lrt
-else $as_nop
-            { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lposix4" >&5
+  SCHED_YIELD_LIB=-lrt
+else case e in #(
+  e)           { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lposix4" >&5
 printf %s "checking for sched_yield in -lposix4... " >&6; }
 if test ${ac_cv_lib_posix4_sched_yield+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_check_lib_save_LIBS=$LIBS
+else case e in #(
+  e) ac_check_lib_save_LIBS=$LIBS
 LIBS="-lposix4  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-char sched_yield ();
+   builtin and then its argument prototype would still apply.
+   The 'extern "C"' is for builds by C++ compilers;
+   although this is not generally supported in C code supporting it here
+   has little cost and some practical benefit (sr 110532).  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char sched_yield (void);
 int
 main (void)
 {
@@ -18629,27 +20700,33 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   ac_cv_lib_posix4_sched_yield=yes
-else $as_nop
-  ac_cv_lib_posix4_sched_yield=no
+else case e in #(
+  e) ac_cv_lib_posix4_sched_yield=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+LIBS=$ac_check_lib_save_LIBS ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix4_sched_yield" >&5
 printf "%s\n" "$ac_cv_lib_posix4_sched_yield" >&6; }
 if test "x$ac_cv_lib_posix4_sched_yield" = xyes
 then :
-  LIB_SCHED_YIELD=-lposix4
+  SCHED_YIELD_LIB=-lposix4
 fi
-
+ ;;
+esac
 fi
 
-
+       ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 
+        LIB_SCHED_YIELD="$SCHED_YIELD_LIB"
+
 
     gl_pthreadlib_body_done=done
   fi
@@ -18718,8 +20795,9 @@ printf "%s\n" "#define PTHREAD_IN_USE_DETECTION_HARD 1" >>confdefs.h
 if test "x$ac_cv_header_pthread_h" = xyes
 then :
   gl_have_pthread_h=yes
-else $as_nop
-  gl_have_pthread_h=no
+else case e in #(
+  e) gl_have_pthread_h=no ;;
+esac
 fi
 
     if test "$gl_have_pthread_h" = yes; then
@@ -18762,8 +20840,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \
         LIBS=$save_LIBS
         test $gl_pthread_api = yes && break
       done
-      echo "$as_me:18765: gl_pthread_api=$gl_pthread_api" >&5
-      echo "$as_me:18766: LIBPTHREAD=$LIBPTHREAD" >&5
+      echo "$as_me:20843: gl_pthread_api=$gl_pthread_api" >&5
+      echo "$as_me:20844: LIBPTHREAD=$LIBPTHREAD" >&5
 
       gl_pthread_in_glibc=no
       # On Linux with glibc >= 2.34, libc contains the fully functional
@@ -18781,7 +20859,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Lucky user" >/dev/null 2>&1
+  $EGREP_TRADITIONAL "Lucky user" >/dev/null 2>&1
 then :
   gl_pthread_in_glibc=yes
 fi
@@ -18789,7 +20867,7 @@ rm -rf conftest*
 
           ;;
       esac
-      echo "$as_me:18792: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5
+      echo "$as_me:20870: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5
 
       # Test for libpthread by looking for pthread_kill. (Not pthread_self,
       # since it is defined as a macro on OSF/1.)
@@ -18801,16 +20879,22 @@ printf %s "checking for pthread_kill in -lpthread... " >&6; }
 if test ${ac_cv_lib_pthread_pthread_kill+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_check_lib_save_LIBS=$LIBS
+else case e in #(
+  e) ac_check_lib_save_LIBS=$LIBS
 LIBS="-lpthread  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-char pthread_kill ();
+   builtin and then its argument prototype would still apply.
+   The 'extern "C"' is for builds by C++ compilers;
+   although this is not generally supported in C code supporting it here
+   has little cost and some practical benefit (sr 110532).  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char pthread_kill (void);
 int
 main (void)
 {
@@ -18822,12 +20906,14 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   ac_cv_lib_pthread_pthread_kill=yes
-else $as_nop
-  ac_cv_lib_pthread_pthread_kill=no
+else case e in #(
+  e) ac_cv_lib_pthread_pthread_kill=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+LIBS=$ac_check_lib_save_LIBS ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5
 printf "%s\n" "$ac_cv_lib_pthread_pthread_kill" >&6; }
@@ -18844,7 +20930,7 @@ then :
              # On Solaris 10 or newer, this test is no longer needed, because
              # libc contains the fully functional pthread functions.
              case "$host_os" in
-               solaris | solaris2.1-9 | solaris2.1-9.* | hpux*)
+               solaris | solaris2.[1-9] | solaris2.[1-9].* | hpux*)
 
 printf "%s\n" "#define PTHREAD_IN_USE_DETECTION_HARD 1" >>confdefs.h
 
@@ -18860,16 +20946,22 @@ printf %s "checking for pthread_kill in -lpthread... " >&6; }
 if test ${ac_cv_lib_pthread_pthread_kill+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_check_lib_save_LIBS=$LIBS
+else case e in #(
+  e) ac_check_lib_save_LIBS=$LIBS
 LIBS="-lpthread  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-char pthread_kill ();
+   builtin and then its argument prototype would still apply.
+   The 'extern "C"' is for builds by C++ compilers;
+   although this is not generally supported in C code supporting it here
+   has little cost and some practical benefit (sr 110532).  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char pthread_kill (void);
 int
 main (void)
 {
@@ -18881,12 +20973,14 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   ac_cv_lib_pthread_pthread_kill=yes
-else $as_nop
-  ac_cv_lib_pthread_pthread_kill=no
+else case e in #(
+  e) ac_cv_lib_pthread_pthread_kill=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+LIBS=$ac_check_lib_save_LIBS ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5
 printf "%s\n" "$ac_cv_lib_pthread_pthread_kill" >&6; }
@@ -18904,16 +20998,22 @@ printf %s "checking for pthread_kill in -lc_r... " >&6; }
 if test ${ac_cv_lib_c_r_pthread_kill+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_check_lib_save_LIBS=$LIBS
+else case e in #(
+  e) ac_check_lib_save_LIBS=$LIBS
 LIBS="-lc_r  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-char pthread_kill ();
+   builtin and then its argument prototype would still apply.
+   The 'extern "C"' is for builds by C++ compilers;
+   although this is not generally supported in C code supporting it here
+   has little cost and some practical benefit (sr 110532).  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char pthread_kill (void);
 int
 main (void)
 {
@@ -18925,12 +21025,14 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   ac_cv_lib_c_r_pthread_kill=yes
-else $as_nop
-  ac_cv_lib_c_r_pthread_kill=no
+else case e in #(
+  e) ac_cv_lib_c_r_pthread_kill=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+LIBS=$ac_check_lib_save_LIBS ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_r_pthread_kill" >&5
 printf "%s\n" "$ac_cv_lib_c_r_pthread_kill" >&6; }
@@ -18943,7 +21045,7 @@ fi
 
         fi
       fi
-      echo "$as_me:18946: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5
+      echo "$as_me:21048: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5
     fi
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether POSIX threads API is available" >&5
 printf %s "checking whether POSIX threads API is available... " >&6; }
@@ -18970,24 +21072,30 @@ sched_yield ();
 _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
-  LIB_SCHED_YIELD=
+  SCHED_YIELD_LIB=
 
-else $as_nop
-         { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lrt" >&5
+else case e in #(
+  e)        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lrt" >&5
 printf %s "checking for sched_yield in -lrt... " >&6; }
 if test ${ac_cv_lib_rt_sched_yield+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_check_lib_save_LIBS=$LIBS
+else case e in #(
+  e) ac_check_lib_save_LIBS=$LIBS
 LIBS="-lrt  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-char sched_yield ();
+   builtin and then its argument prototype would still apply.
+   The 'extern "C"' is for builds by C++ compilers;
+   although this is not generally supported in C code supporting it here
+   has little cost and some practical benefit (sr 110532).  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char sched_yield (void);
 int
 main (void)
 {
@@ -18999,34 +21107,42 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   ac_cv_lib_rt_sched_yield=yes
-else $as_nop
-  ac_cv_lib_rt_sched_yield=no
+else case e in #(
+  e) ac_cv_lib_rt_sched_yield=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+LIBS=$ac_check_lib_save_LIBS ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_sched_yield" >&5
 printf "%s\n" "$ac_cv_lib_rt_sched_yield" >&6; }
 if test "x$ac_cv_lib_rt_sched_yield" = xyes
 then :
-  LIB_SCHED_YIELD=-lrt
-else $as_nop
-            { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lposix4" >&5
+  SCHED_YIELD_LIB=-lrt
+else case e in #(
+  e)           { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lposix4" >&5
 printf %s "checking for sched_yield in -lposix4... " >&6; }
 if test ${ac_cv_lib_posix4_sched_yield+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_check_lib_save_LIBS=$LIBS
+else case e in #(
+  e) ac_check_lib_save_LIBS=$LIBS
 LIBS="-lposix4  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-char sched_yield ();
+   builtin and then its argument prototype would still apply.
+   The 'extern "C"' is for builds by C++ compilers;
+   although this is not generally supported in C code supporting it here
+   has little cost and some practical benefit (sr 110532).  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char sched_yield (void);
 int
 main (void)
 {
@@ -19038,39 +21154,107 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   ac_cv_lib_posix4_sched_yield=yes
-else $as_nop
-  ac_cv_lib_posix4_sched_yield=no
+else case e in #(
+  e) ac_cv_lib_posix4_sched_yield=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+LIBS=$ac_check_lib_save_LIBS ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix4_sched_yield" >&5
 printf "%s\n" "$ac_cv_lib_posix4_sched_yield" >&6; }
 if test "x$ac_cv_lib_posix4_sched_yield" = xyes
 then :
-  LIB_SCHED_YIELD=-lposix4
+  SCHED_YIELD_LIB=-lposix4
 fi
-
+ ;;
+esac
 fi
 
-
+       ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 
+        LIB_SCHED_YIELD="$SCHED_YIELD_LIB"
+
 
     gl_pthreadlib_body_done=done
   fi
 
         if test $ac_cv_header_threads_h = yes; then
-                                                            ac_fn_c_check_func "$LINENO" "thrd_create" "ac_cv_func_thrd_create"
+
+
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for thrd_create" >&5
+printf %s "checking for thrd_create... " >&6; }
+if test ${gl_cv_onwards_func_thrd_create+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+  exec 9>&6 6>/dev/null
+
+       case "$host_os" in
+
+         linux*-android*)
+           ac_fn_check_decl "$LINENO" "thrd_create" "ac_cv_have_decl_thrd_create" "#include <threads.h>
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_thrd_create" = xyes
+then :
+
+fi
+           if test $ac_cv_have_decl_thrd_create = yes; then
+             ac_fn_c_check_func "$LINENO" "thrd_create" "ac_cv_func_thrd_create"
 if test "x$ac_cv_func_thrd_create" = xyes
 then :
-  printf "%s\n" "#define HAVE_THRD_CREATE 1" >>confdefs.h
 
 fi
 
+             if test $ac_cv_func_thrd_create = yes; then
+               gl_cv_onwards_func_thrd_create=yes
+             else
+                                                            gl_cv_onwards_func_thrd_create='future OS version'
+             fi
+           else
+             gl_cv_onwards_func_thrd_create='future OS version'
+           fi
+           ;;
+
+
+         *)
+           ac_fn_c_check_func "$LINENO" "thrd_create" "ac_cv_func_thrd_create"
+if test "x$ac_cv_func_thrd_create" = xyes
+then :
+
+fi
+
+           gl_cv_onwards_func_thrd_create=$ac_cv_func_thrd_create
+           ;;
+
+       esac
+
+  exec 6>&9 9>&-
+
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_onwards_func_thrd_create" >&5
+printf "%s\n" "$gl_cv_onwards_func_thrd_create" >&6; }
+
+  case "$gl_cv_onwards_func_thrd_create" in
+    future*) ac_cv_func_thrd_create=no ;;
+    *)       ac_cv_func_thrd_create=$gl_cv_onwards_func_thrd_create ;;
+  esac
+  if test $ac_cv_func_thrd_create = yes; then
+
+printf "%s\n" "#define HAVE_THRD_CREATE 1" >>confdefs.h
+
+  fi
+
+
           if test $ac_cv_func_thrd_create = yes; then
             LIBSTDTHREAD=
           else
@@ -19079,16 +21263,22 @@ printf %s "checking for thrd_create in -lstdthreads... " >&6; }
 if test ${ac_cv_lib_stdthreads_thrd_create+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_check_lib_save_LIBS=$LIBS
+else case e in #(
+  e) ac_check_lib_save_LIBS=$LIBS
 LIBS="-lstdthreads  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-char thrd_create ();
+   builtin and then its argument prototype would still apply.
+   The 'extern "C"' is for builds by C++ compilers;
+   although this is not generally supported in C code supporting it here
+   has little cost and some practical benefit (sr 110532).  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char thrd_create (void);
 int
 main (void)
 {
@@ -19100,12 +21290,14 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   ac_cv_lib_stdthreads_thrd_create=yes
-else $as_nop
-  ac_cv_lib_stdthreads_thrd_create=no
+else case e in #(
+  e) ac_cv_lib_stdthreads_thrd_create=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+LIBS=$ac_check_lib_save_LIBS ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_stdthreads_thrd_create" >&5
 printf "%s\n" "$ac_cv_lib_stdthreads_thrd_create" >&6; }
@@ -19114,15 +21306,16 @@ then :
 
               LIBSTDTHREAD='-lstdthreads -lpthread'
 
-else $as_nop
-
+else case e in #(
+  e)
                             LIBSTDTHREAD="$LIBPMULTITHREAD"
-
+             ;;
+esac
 fi
 
           fi
         else
-                    LIBSTDTHREAD="$LIBPMULTITHREAD $LIB_SCHED_YIELD"
+                    LIBSTDTHREAD="$LIBPMULTITHREAD $SCHED_YIELD_LIB"
         fi
         ;;
     esac
@@ -19180,8 +21373,8 @@ printf %s "checking whether lstat correctly handles trailing slash... " >&6; }
 if test ${gl_cv_func_lstat_dereferences_slashed_symlink+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  rm -f conftest.sym conftest.file
+else case e in #(
+  e) rm -f conftest.sym conftest.file
      echo >conftest.file
      if test "$cross_compiling" = yes
 then :
@@ -19189,6 +21382,9 @@ then :
           linux-* | linux)
             # Guess yes on Linux systems.
             gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;;
+          midipix*)
+            # Guess yes on systems that emulate the Linux system calls.
+            gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;;
           *-gnu* | gnu*)
             # Guess yes on glibc systems.
             gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;;
@@ -19200,8 +21396,8 @@ then :
             gl_cv_func_lstat_dereferences_slashed_symlink="$gl_cross_guess_normal" ;;
         esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $ac_includes_default
 int
@@ -19222,15 +21418,18 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_lstat_dereferences_slashed_symlink=yes
-else $as_nop
-  gl_cv_func_lstat_dereferences_slashed_symlink=no
+else case e in #(
+  e) gl_cv_func_lstat_dereferences_slashed_symlink=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
      rm -f conftest.sym conftest.file
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_lstat_dereferences_slashed_symlink" >&5
 printf "%s\n" "$gl_cv_func_lstat_dereferences_slashed_symlink" >&6; }
@@ -19247,8 +21446,8 @@ printf %s "checking for a sed that does not truncate output... " >&6; }
 if test ${ac_cv_path_SED+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-            ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+else case e in #(
+  e)           ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
      for ac_i in 1 2 3 4 5 6 7; do
        ac_script="$ac_script$as_nl$ac_script"
      done
       as_fn_executable_p "$ac_path_SED" || continue
 # Check for GNU ac_path_SED and select it if it is found.
   # Check for GNU $ac_path_SED
-case `"$ac_path_SED" --version 2>&1` in
+case `"$ac_path_SED" --version 2>&1` in #(
 *GNU*)
   ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
+#(
 *)
   ac_count=0
   printf %s 0123456789 >"conftest.in"
@@ -19310,13 +21510,85 @@ IFS=$as_save_IFS
 else
   ac_cv_path_SED=$SED
 fi
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
 printf "%s\n" "$ac_cv_path_SED" >&6; }
  SED="$ac_cv_path_SED"
   rm -f conftest.sed
 
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+printf %s "checking for grep that handles long lines and -e... " >&6; }
+if test ${ac_cv_path_GREP+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test -z "$GREP"; then
+  ac_path_GREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_prog in grep ggrep
+   do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_GREP="$as_dir$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_GREP" || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+  # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in #(
+*GNU*)
+  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+#(
+*)
+  ac_count=0
+  printf %s 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    printf "%s\n" 'GREP' >> "conftest.nl"
+    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_GREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_GREP="$ac_path_GREP"
+      ac_path_GREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_GREP_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_GREP"; then
+    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+  fi
+else
+  ac_cv_path_GREP=$GREP
+fi
+ ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+printf "%s\n" "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
 
 
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether malloc (0) returns nonnull" >&5
@@ -19324,21 +21596,21 @@ printf %s "checking whether malloc (0) returns nonnull... " >&6; }
 if test ${ac_cv_func_malloc_0_nonnull+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test "$cross_compiling" = yes
+else case e in #(
+  e) if test "$cross_compiling" = yes
 then :
   case "$host_os" in
           # Guess yes on platforms where we know the result.
           *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \
-          | gnu* | *-musl* | midnightbsd* \
+          | gnu* | *-musl* | midipix* | midnightbsd* \
           | hpux* | solaris* | cygwin* | mingw* | msys* )
             ac_cv_func_malloc_0_nonnull="guessing yes" ;;
           # If we don't know, obey --enable-cross-guesses.
           *) ac_cv_func_malloc_0_nonnull="$gl_cross_guess_normal" ;;
         esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdlib.h>
 
@@ -19357,14 +21629,17 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   ac_cv_func_malloc_0_nonnull=yes
-else $as_nop
-  ac_cv_func_malloc_0_nonnull=no
+else case e in #(
+  e) ac_cv_func_malloc_0_nonnull=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5
 printf "%s\n" "$ac_cv_func_malloc_0_nonnull" >&6; }
@@ -19383,6 +21658,200 @@ printf "%s\n" "#define MALLOC_0_IS_NONNULL $gl_cv_func_malloc_0_nonnull" >>confd
 
 
 
+
+
+
+
+        if case "$host_os" in
+       mingw*) true ;;
+       *) test $ac_cv_func_mbsinit = yes ;;
+     esac \
+    && test $ac_cv_func_mbrtowc = yes; then
+
+
+
+
+     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5
+printf %s "checking whether mbrtowc handles incomplete characters... " >&6; }
+if test ${gl_cv_func_mbrtowc_incomplete_state+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+                  case "$host_os" in
+                     # Guess no on AIX and OSF/1.
+        aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;;
+                     # Guess yes otherwise.
+        *)           gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;;
+      esac
+      if test $LOCALE_JA != none; then
+        if test "$cross_compiling" = yes
+then :
+  :
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <string.h>
+#include <wchar.h>
+int main ()
+{
+  if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
+    {
+      const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */
+      mbstate_t state;
+      wchar_t wc;
+
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2))
+        if (mbsinit (&state))
+          return 2;
+    }
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+  gl_cv_func_mbrtowc_incomplete_state=yes
+else case e in #(
+  e) gl_cv_func_mbrtowc_incomplete_state=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
+
+      else
+        if test $LOCALE_FR_UTF8 != none; then
+          if test "$cross_compiling" = yes
+then :
+  :
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <string.h>
+#include <wchar.h>
+int main ()
+{
+  if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
+    {
+      const char input[] = "B\303\274\303\237er"; /* "Büßer" */
+      mbstate_t state;
+      wchar_t wc;
+
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2))
+        if (mbsinit (&state))
+          return 2;
+    }
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+  gl_cv_func_mbrtowc_incomplete_state=yes
+else case e in #(
+  e) gl_cv_func_mbrtowc_incomplete_state=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
+
+        fi
+      fi
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5
+printf "%s\n" "$gl_cv_func_mbrtowc_incomplete_state" >&6; }
+
+
+
+
+     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5
+printf %s "checking whether mbrtowc works as well as mbtowc... " >&6; }
+if test ${gl_cv_func_mbrtowc_sanitycheck+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+                  case "$host_os" in
+                    # Guess no on Solaris 8.
+        solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;;
+                    # Guess yes otherwise.
+        *)          gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;;
+      esac
+      if test $LOCALE_ZH_CN != none; then
+        if test "$cross_compiling" = yes
+then :
+  :
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <stdlib.h>
+#include <string.h>
+#include <wchar.h>
+int main ()
+{
+  /* This fails on Solaris 8:
+     mbrtowc returns 2, and sets wc to 0x00F0.
+     mbtowc returns 4 (correct) and sets wc to 0x5EDC.  */
+  if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
+    {
+      char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */
+      mbstate_t state;
+      wchar_t wc;
+
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbrtowc (&wc, input + 3, 6, &state) != 4
+          && mbtowc (&wc, input + 3, 6) == 4)
+        return 2;
+    }
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+  gl_cv_func_mbrtowc_sanitycheck=yes
+else case e in #(
+  e) gl_cv_func_mbrtowc_sanitycheck=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
+
+      fi
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5
+printf "%s\n" "$gl_cv_func_mbrtowc_sanitycheck" >&6; }
+
+    REPLACE_MBSTATE_T=0
+    case "$gl_cv_func_mbrtowc_incomplete_state" in
+      *yes) ;;
+      *) REPLACE_MBSTATE_T=1 ;;
+    esac
+    case "$gl_cv_func_mbrtowc_sanitycheck" in
+      *yes) ;;
+      *) REPLACE_MBSTATE_T=1 ;;
+    esac
+  else
+    REPLACE_MBSTATE_T=1
+  fi
+
+
+
   GL_GNULIB_EXPLICIT_BZERO=0
 
 
@@ -19411,6 +21880,10 @@ printf "%s\n" "#define MALLOC_0_IS_NONNULL $gl_cv_func_malloc_0_nonnull" >>confd
 
 
 
+  GL_GNULIB_MEMSET_EXPLICIT=0
+
+
+
   GL_GNULIB_RAWMEMCHR=0
 
 
@@ -19562,6 +22035,7 @@ printf "%s\n" "#define MALLOC_0_IS_NONNULL $gl_cv_func_malloc_0_nonnull" >>confd
   HAVE_FFSLL=1;
   HAVE_DECL_MEMMEM=1;
   HAVE_MEMPCPY=1;
+  HAVE_MEMSET_EXPLICIT=1;
   HAVE_DECL_MEMRCHR=1;
   HAVE_RAWMEMCHR=1;
   HAVE_STPCPY=1;
@@ -19583,6 +22057,8 @@ printf "%s\n" "#define MALLOC_0_IS_NONNULL $gl_cv_func_malloc_0_nonnull" >>confd
   REPLACE_FFSLL=0;
   REPLACE_MEMCHR=0;
   REPLACE_MEMMEM=0;
+  REPLACE_MEMPCPY=0;
+  REPLACE_STPCPY=0;
   REPLACE_STPNCPY=0;
   REPLACE_STRCHRNUL=0;
   REPLACE_STRDUP=0;
@@ -19609,8 +22085,9 @@ printf "%s\n" "#define MALLOC_0_IS_NONNULL $gl_cv_func_malloc_0_nonnull" >>confd
 if test "x$ac_cv_func_mmap" = xyes
 then :
   gl_have_mmap=yes
-else $as_nop
-  gl_have_mmap=no
+else case e in #(
+  e) gl_have_mmap=no ;;
+esac
 fi
 
 
@@ -19629,7 +22106,7 @@ printf %s "checking for MAP_ANONYMOUS... " >&6; }
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cannot identify this map" >/dev/null 2>&1
+  $EGREP_TRADITIONAL "I cannot identify this map" >/dev/null 2>&1
 then :
   gl_have_mmap_anonymous=yes
 fi
@@ -19646,7 +22123,7 @@ rm -rf conftest*
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cannot identify this map" >/dev/null 2>&1
+  $EGREP_TRADITIONAL "I cannot identify this map" >/dev/null 2>&1
 then :
 
 printf "%s\n" "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
@@ -19688,8 +22165,8 @@ printf %s "checking whether memchr works... " >&6; }
 if test ${gl_cv_func_memchr_works+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test "$cross_compiling" = yes
+else case e in #(
+  e) if test "$cross_compiling" = yes
 then :
   case "$host_os" in
                            # Guess no on Android.
@@ -19700,8 +22177,8 @@ then :
           *)               gl_cv_func_memchr_works="$gl_cross_guess_normal" ;;
         esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <string.h>
@@ -19772,14 +22249,17 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_memchr_works=yes
-else $as_nop
-  gl_cv_func_memchr_works=no
+else case e in #(
+  e) gl_cv_func_memchr_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
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_memchr_works" >&5
 printf "%s\n" "$gl_cv_func_memchr_works" >&6; }
@@ -19797,8 +22277,8 @@ printf %s "checking whether <limits.h> defines MIN and MAX... " >&6; }
 if test ${gl_cv_minmax_in_limits_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <limits.h>
             int x = MIN (42, 17);
@@ -19813,10 +22293,12 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_minmax_in_limits_h=yes
-else $as_nop
-  gl_cv_minmax_in_limits_h=no
+else case e in #(
+  e) gl_cv_minmax_in_limits_h=no ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+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_minmax_in_limits_h" >&5
 printf "%s\n" "$gl_cv_minmax_in_limits_h" >&6; }
@@ -19836,8 +22318,8 @@ printf %s "checking whether <sys/param.h> defines MIN and MAX... " >&6; }
 if test ${gl_cv_minmax_in_sys_param_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/param.h>
             int x = MIN (42, 17);
@@ -19852,10 +22334,12 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_minmax_in_sys_param_h=yes
-else $as_nop
-  gl_cv_minmax_in_sys_param_h=no
+else case e in #(
+  e) gl_cv_minmax_in_sys_param_h=no ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+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_minmax_in_sys_param_h" >&5
 printf "%s\n" "$gl_cv_minmax_in_sys_param_h" >&6; }
@@ -19875,13 +22359,16 @@ printf "%s\n" "#define HAVE_MINMAX_IN_SYS_PARAM_H 1" >>confdefs.h
   HAVE_STRPTIME=1;
   HAVE_TIMEGM=1;
   HAVE_TIMESPEC_GET=1;
+  HAVE_TIMESPEC_GETRES=1;
     HAVE_TIMEZONE_T=0;
         REPLACE_CTIME=GNULIB_PORTCHECK;
   REPLACE_LOCALTIME_R=GNULIB_PORTCHECK;
   REPLACE_MKTIME=GNULIB_PORTCHECK;
   REPLACE_NANOSLEEP=GNULIB_PORTCHECK;
   REPLACE_STRFTIME=GNULIB_PORTCHECK;
+  REPLACE_TIME=0;
   REPLACE_TIMEGM=GNULIB_PORTCHECK;
+  REPLACE_TIMESPEC_GET=GNULIB_PORTCHECK;
   REPLACE_TZSET=GNULIB_PORTCHECK;
 
       : ${GNULIB_GETTIMEOFDAY=0};
@@ -19894,8 +22381,8 @@ printf %s "checking whether time_t is signed... " >&6; }
 if test ${gl_cv_time_t_is_signed+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <time.h>
                           char time_t_signed[(time_t) -1 < 0 ? 1 : -1];
@@ -19910,10 +22397,12 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_time_t_is_signed=yes
-else $as_nop
-  gl_cv_time_t_is_signed=no
+else case e in #(
+  e) gl_cv_time_t_is_signed=no ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+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_time_t_is_signed" >&5
 printf "%s\n" "$gl_cv_time_t_is_signed" >&6; }
@@ -19927,8 +22416,9 @@ ac_fn_check_decl "$LINENO" "alarm" "ac_cv_have_decl_alarm" "$ac_includes_default
 if test "x$ac_cv_have_decl_alarm" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_ALARM $ac_have_decl" >>confdefs.h
 
@@ -19943,8 +22433,8 @@ printf %s "checking for working mktime... " >&6; }
 if test ${gl_cv_func_working_mktime+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test $APPLE_UNIVERSAL_BUILD = 1; then
+else case e in #(
+  e) if test $APPLE_UNIVERSAL_BUILD = 1; then
        # A universal build on Apple Mac OS X platforms.
        # The test result would be 'yes' in 32-bit mode and 'no' in 64-bit mode.
        # But we need a configuration result that is valid in both modes.
@@ -19958,8 +22448,8 @@ then :
             *)      gl_cv_func_working_mktime="$gl_cross_guess_normal" ;;
           esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 /* Test program from Paul Eggert and Tony Leneis.  */
 #include <limits.h>
@@ -20005,7 +22495,8 @@ spring_forward_gap ()
      instead of "TZ=America/Vancouver" in order to detect the bug even
      on systems that don't support the Olson extension, or don't have the
      full zoneinfo tables installed.  */
-  putenv ("TZ=PST8PDT,M4.1.0,M10.5.0");
+  if (putenv ("TZ=PST8PDT,M4.1.0,M10.5.0") != 0)
+    return -1;
 
   tm.tm_year = 98;
   tm.tm_mon = 3;
@@ -20093,7 +22584,8 @@ year_2050_test ()
      instead of "TZ=America/Vancouver" in order to detect the bug even
      on systems that don't support the Olson extension, or don't have the
      full zoneinfo tables installed.  */
-  putenv ("TZ=PST8PDT,M4.1.0,M10.5.0");
+  if (putenv ("TZ=PST8PDT,M4.1.0,M10.5.0") != 0)
+    return -1;
 
   t = mktime (&tm);
 
@@ -20104,6 +22596,25 @@ year_2050_test ()
           || (0 < t && answer - 120 <= t && t <= answer + 120));
 }
 
+static int
+indiana_test ()
+{
+  if (putenv ("TZ=America/Indiana/Indianapolis") != 0)
+    return -1;
+  struct tm tm;
+  tm.tm_year = 1986 - 1900; tm.tm_mon = 4 - 1; tm.tm_mday = 28;
+  tm.tm_hour = 16; tm.tm_min = 24; tm.tm_sec = 50; tm.tm_isdst = 0;
+  time_t std = mktime (&tm);
+  if (! (std == 515107490 || std == 515107503))
+    return 1;
+
+  /* This platform supports TZDB, either without or with leap seconds.
+     Return true if GNU Bug#48085 is absent.  */
+  tm.tm_isdst = 1;
+  time_t dst = mktime (&tm);
+  return std - dst == 60 * 60;
+}
+
 int
 main ()
 {
@@ -20159,7 +22670,7 @@ main ()
     result |= 16;
   if (! spring_forward_gap ())
     result |= 32;
-  if (! year_2050_test ())
+  if (! year_2050_test () || ! indiana_test ())
     result |= 64;
   return result;
 }
@@ -20167,15 +22678,18 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_working_mktime=yes
-else $as_nop
-  gl_cv_func_working_mktime=no
+else case e in #(
+  e) gl_cv_func_working_mktime=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
      fi
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_mktime" >&5
 printf "%s\n" "$gl_cv_func_working_mktime" >&6; }
@@ -20206,6 +22720,10 @@ printf "%s\n" "$gl_cv_func_working_mktime" >&6; }
 
 
 
+  GL_GNULIB_TIME=0
+
+
+
   GL_GNULIB_TIMEGM=0
 
 
@@ -20214,6 +22732,10 @@ printf "%s\n" "$gl_cv_func_working_mktime" >&6; }
 
 
 
+  GL_GNULIB_TIMESPEC_GETRES=0
+
+
+
   GL_GNULIB_TIME_R=0
 
 
@@ -20233,14 +22755,13 @@ printf "%s\n" "$gl_cv_func_working_mktime" >&6; }
 
 
 
-
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 printf %s "checking whether struct tm is in sys/time.h or time.h... " >&6; }
 if test ${ac_cv_struct_tm+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/types.h>
 #include <time.h>
@@ -20258,10 +22779,12 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   ac_cv_struct_tm=time.h
-else $as_nop
-  ac_cv_struct_tm=sys/time.h
+else case e in #(
+  e) ac_cv_struct_tm=sys/time.h ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5
 printf "%s\n" "$ac_cv_struct_tm" >&6; }
@@ -20293,8 +22816,9 @@ else
 if test "x$ac_cv_have_decl_tzname" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_TZNAME $ac_have_decl" >>confdefs.h
 
@@ -20303,8 +22827,8 @@ printf %s "checking for tzname... " >&6; }
 if test ${ac_cv_var_tzname+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <time.h>
 #if !HAVE_DECL_TZNAME
@@ -20322,11 +22846,13 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   ac_cv_var_tzname=yes
-else $as_nop
-  ac_cv_var_tzname=no
+else case e in #(
+  e) ac_cv_var_tzname=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
-    conftest$ac_exeext conftest.$ac_ext
+    conftest$ac_exeext conftest.$ac_ext ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_var_tzname" >&5
 printf "%s\n" "$ac_cv_var_tzname" >&6; }
@@ -20354,8 +22880,8 @@ printf %s "checking for O_CLOEXEC... " >&6; }
 if test ${gl_cv_macro_O_CLOEXEC+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <fcntl.h>
                           #ifndef O_CLOEXEC
@@ -20373,10 +22899,12 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_macro_O_CLOEXEC=yes
-else $as_nop
-  gl_cv_macro_O_CLOEXEC=no
+else case e in #(
+  e) gl_cv_macro_O_CLOEXEC=no ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+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_macro_O_CLOEXEC" >&5
 printf "%s\n" "$gl_cv_macro_O_CLOEXEC" >&6; }
@@ -20388,8 +22916,8 @@ printf %s "checking for promoted mode_t type... " >&6; }
 if test ${gl_cv_promoted_mode_t+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
                 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/types.h>
@@ -20404,11 +22932,13 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_promoted_mode_t='int'
-else $as_nop
-  gl_cv_promoted_mode_t='mode_t'
+else case e in #(
+  e) gl_cv_promoted_mode_t='mode_t' ;;
+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_promoted_mode_t" >&5
 printf "%s\n" "$gl_cv_promoted_mode_t" >&6; }
@@ -20445,8 +22975,9 @@ then :
 printf "%s\n" "#define HAVE_SIGSET_T 1" >>confdefs.h
 
 gl_cv_type_sigset_t=yes
-else $as_nop
-  gl_cv_type_sigset_t=no
+else case e in #(
+  e) gl_cv_type_sigset_t=no ;;
+esac
 fi
 
   if test $gl_cv_type_sigset_t != yes; then
@@ -20479,8 +23010,8 @@ fi
 
 
 
-  if test $REPLACE_MALLOC = 1; then
-    REPLACE_REALLOC=1
+  if test $REPLACE_MALLOC_FOR_MALLOC_POSIX = 1; then
+    REPLACE_REALLOC_FOR_REALLOC_POSIX=1
   fi
 
 
@@ -20489,8 +23020,9 @@ ac_fn_check_decl "$LINENO" "setenv" "ac_cv_have_decl_setenv" "$ac_includes_defau
 if test "x$ac_cv_have_decl_setenv" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_SETENV $ac_have_decl" >>confdefs.h
 
@@ -20513,45 +23045,97 @@ then :
 
 fi
 
-  ac_fn_c_check_func "$LINENO" "tsearch" "ac_cv_func_tsearch"
+
+
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for tsearch" >&5
+printf %s "checking for tsearch... " >&6; }
+if test ${gl_cv_onwards_func_tsearch+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+  exec 9>&6 6>/dev/null
+
+       case "$host_os" in
+
+         linux*-android*)
+           ac_fn_check_decl "$LINENO" "tsearch" "ac_cv_have_decl_tsearch" "#include <search.h>
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_tsearch" = xyes
+then :
+
+fi
+           if test $ac_cv_have_decl_tsearch = yes; then
+             ac_fn_c_check_func "$LINENO" "tsearch" "ac_cv_func_tsearch"
 if test "x$ac_cv_func_tsearch" = xyes
 then :
-  printf "%s\n" "#define HAVE_TSEARCH 1" >>confdefs.h
 
 fi
 
+             if test $ac_cv_func_tsearch = yes; then
+               gl_cv_onwards_func_tsearch=yes
+             else
+                                                            gl_cv_onwards_func_tsearch='future OS version'
+             fi
+           else
+             gl_cv_onwards_func_tsearch='future OS version'
+           fi
+           ;;
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5
-printf %s "checking for uid_t in sys/types.h... " >&6; }
-if test ${ac_cv_type_uid_t+y}
+         *)
+           ac_fn_c_check_func "$LINENO" "tsearch" "ac_cv_func_tsearch"
+if test "x$ac_cv_func_tsearch" = xyes
 then :
-  printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "uid_t" >/dev/null 2>&1
-then :
-  ac_cv_type_uid_t=yes
-else $as_nop
-  ac_cv_type_uid_t=no
 fi
-rm -rf conftest*
 
+           gl_cv_onwards_func_tsearch=$ac_cv_func_tsearch
+           ;;
+
+       esac
+
+  exec 6>&9 9>&-
+
+     ;;
+esac
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5
-printf "%s\n" "$ac_cv_type_uid_t" >&6; }
-if test $ac_cv_type_uid_t = no; then
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_onwards_func_tsearch" >&5
+printf "%s\n" "$gl_cv_onwards_func_tsearch" >&6; }
+
+  case "$gl_cv_onwards_func_tsearch" in
+    future*) ac_cv_func_tsearch=no ;;
+    *)       ac_cv_func_tsearch=$gl_cv_onwards_func_tsearch ;;
+  esac
+  if test $ac_cv_func_tsearch = yes; then
+
+printf "%s\n" "#define HAVE_TSEARCH 1" >>confdefs.h
 
+  fi
+
+
+
+
+ac_fn_c_check_type "$LINENO" "uid_t" "ac_cv_type_uid_t" "$ac_includes_default"
+if test "x$ac_cv_type_uid_t" = xyes
+then :
+
+else case e in #(
+  e)
 printf "%s\n" "#define uid_t int" >>confdefs.h
+ ;;
+esac
+fi
 
+ac_fn_c_check_type "$LINENO" "gid_t" "ac_cv_type_gid_t" "$ac_includes_default"
+if test "x$ac_cv_type_gid_t" = xyes
+then :
 
+else case e in #(
+  e)
 printf "%s\n" "#define gid_t int" >>confdefs.h
-
+ ;;
+esac
 fi
 
 
@@ -20573,8 +23157,8 @@ printf %s "checking absolute name of <signal.h>... " >&6; }
 if test ${gl_cv_next_signal_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
 
 
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -20607,10 +23191,11 @@ _ACEOF
         gl_cv_absolute_signal_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
   sed -n "$gl_absolute_header_sed"`
 
-           gl_header=$gl_cv_absolute_signal_h
-           gl_cv_next_signal_h='"'$gl_header'"'
-
+          gl_header=$gl_cv_absolute_signal_h
+          gl_cv_next_signal_h='"'$gl_header'"'
 
+          ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_signal_h" >&5
 printf "%s\n" "$gl_cv_next_signal_h" >&6; }
@@ -20639,8 +23224,9 @@ printf "%s\n" "$gl_cv_next_signal_h" >&6; }
 if test "x$ac_cv_type_volatile_sig_atomic_t" = xyes
 then :
 
-else $as_nop
-  HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=0
+else case e in #(
+  e) HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=0 ;;
+esac
 fi
 
 
@@ -20656,8 +23242,9 @@ fi
 if test "x$ac_cv_type_sighandler_t" = xyes
 then :
 
-else $as_nop
-  HAVE_SIGHANDLER_T=0
+else case e in #(
+  e) HAVE_SIGHANDLER_T=0 ;;
+esac
 fi
 
 
 
 
 
+  case "$host_os" in
+    *-musl* | midipix*)
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5
-printf %s "checking for stdbool.h that conforms to C99... " >&6; }
-if test ${ac_cv_header_stdbool_h+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+printf "%s\n" "#define MUSL_LIBC 1" >>confdefs.h
 
-             #include <stdbool.h>
+      ;;
+  esac
 
-             #ifdef __cplusplus
-              typedef bool Bool;
-             #else
-              typedef _Bool Bool;
-              #ifndef bool
-               "error: bool is not defined"
-              #endif
-              #ifndef false
-               "error: false is not defined"
-              #endif
-              #if false
-               "error: false is not 0"
-              #endif
-              #ifndef true
-               "error: true is not defined"
-              #endif
-              #if true != 1
-               "error: true is not 1"
-              #endif
-             #endif
 
-             #ifndef __bool_true_false_are_defined
-              "error: __bool_true_false_are_defined is not defined"
-             #endif
 
-             struct s { Bool s: 1; Bool t; bool u: 1; bool v; } s;
 
-             char a[true == 1 ? 1 : -1];
-             char b[false == 0 ? 1 : -1];
-             char c[__bool_true_false_are_defined == 1 ? 1 : -1];
-             char d[(bool) 0.5 == true ? 1 : -1];
-             /* See body of main program for 'e'.  */
-             char f[(Bool) 0.0 == false ? 1 : -1];
-             char g[true];
-             char h[sizeof (Bool)];
-             char i[sizeof s.t];
-             enum { j = false, k = true, l = false * true, m = true * 256 };
-             /* The following fails for
-                HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */
-             Bool n[m];
-             char o[sizeof n == m * sizeof n[0] ? 1 : -1];
-             char p[-1 - (Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1];
-             /* Catch a bug in an HP-UX C compiler.  See
-                https://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
-                https://lists.gnu.org/r/bug-coreutils/2005-11/msg00161.html
-              */
-             Bool q = true;
-             Bool *pq = &q;
-             bool *qq = &q;
-
-int
-main (void)
-{
-
-             bool e = &s;
-             *pq |= q; *pq |= ! q;
-             *qq |= q; *qq |= ! q;
-             /* Refer to every declared value, to avoid compiler optimizations.  */
-             return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l
-                     + !m + !n + !o + !p + !q + !pq + !qq);
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  ac_cv_header_stdbool_h=yes
-else $as_nop
-  ac_cv_header_stdbool_h=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5
-printf "%s\n" "$ac_cv_header_stdbool_h" >&6; }
-   ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default"
-if test "x$ac_cv_type__Bool" = xyes
-then :
-
-printf "%s\n" "#define HAVE__BOOL 1" >>confdefs.h
-
-
-fi
 
 
 
@@ -20772,15 +23275,33 @@ ac_fn_check_decl "$LINENO" "fcloseall" "ac_cv_have_decl_fcloseall" "$ac_includes
 if test "x$ac_cv_have_decl_fcloseall" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_FCLOSEALL $ac_have_decl" >>confdefs.h
 
+ac_fn_check_decl "$LINENO" "getw" "ac_cv_have_decl_getw" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_getw" = xyes
+then :
+  ac_have_decl=1
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
+fi
+printf "%s\n" "#define HAVE_DECL_GETW $ac_have_decl" >>confdefs.h
 
+ac_fn_check_decl "$LINENO" "putw" "ac_cv_have_decl_putw" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_putw" = xyes
+then :
+  ac_have_decl=1
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
+fi
+printf "%s\n" "#define HAVE_DECL_PUTW $ac_have_decl" >>confdefs.h
 
 
-  printf "%s\n" "#define __USE_MINGW_ANSI_STDIO 1" >>confdefs.h
 
 
 
@@ -20798,8 +23319,8 @@ printf %s "checking absolute name of <stdio.h>... " >&6; }
 if test ${gl_cv_next_stdio_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
 
 
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -20832,10 +23353,11 @@ _ACEOF
         gl_cv_absolute_stdio_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
   sed -n "$gl_absolute_header_sed"`
 
-           gl_header=$gl_cv_absolute_stdio_h
-           gl_cv_next_stdio_h='"'$gl_header'"'
-
+          gl_header=$gl_cv_absolute_stdio_h
+          gl_cv_next_stdio_h='"'$gl_header'"'
 
+          ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdio_h" >&5
 printf "%s\n" "$gl_cv_next_stdio_h" >&6; }
@@ -20860,8 +23382,8 @@ printf %s "checking which flavor of printf attribute matches inttypes macros...
 if test ${gl_cv_func_printf_attribute_flavor+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
        #define __STDC_FORMAT_MACROS 1
@@ -20886,10 +23408,12 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_func_printf_attribute_flavor=system
-else $as_nop
-  gl_cv_func_printf_attribute_flavor=gnu
+else case e in #(
+  e) gl_cv_func_printf_attribute_flavor=gnu ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+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_func_printf_attribute_flavor" >&5
 printf "%s\n" "$gl_cv_func_printf_attribute_flavor" >&6; }
@@ -20911,16 +23435,29 @@ printf "%s\n" "#define GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU 1" >>confdefs.h
 
 
 
+
+
   if test $ac_cv_have_decl_fcloseall = no; then
     HAVE_DECL_FCLOSEALL=0
   fi
 
+
+  if test $ac_cv_have_decl_getw = no; then
+    HAVE_DECL_GETW=0
+  fi
+
+
+  if test $ac_cv_have_decl_putw = no; then
+    HAVE_DECL_PUTW=0
+  fi
+
 ac_fn_check_decl "$LINENO" "ecvt" "ac_cv_have_decl_ecvt" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS"
 if test "x$ac_cv_have_decl_ecvt" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_ECVT $ac_have_decl" >>confdefs.h
 
@@ -20928,8 +23465,9 @@ ac_fn_check_decl "$LINENO" "fcvt" "ac_cv_have_decl_fcvt" "$ac_includes_default"
 if test "x$ac_cv_have_decl_fcvt" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_FCVT $ac_have_decl" >>confdefs.h
 
@@ -20937,8 +23475,9 @@ ac_fn_check_decl "$LINENO" "gcvt" "ac_cv_have_decl_gcvt" "$ac_includes_default"
 if test "x$ac_cv_have_decl_gcvt" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_GCVT $ac_have_decl" >>confdefs.h
 
@@ -20960,8 +23499,8 @@ printf %s "checking absolute name of <stdlib.h>... " >&6; }
 if test ${gl_cv_next_stdlib_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
 
 
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -20994,10 +23533,11 @@ _ACEOF
         gl_cv_absolute_stdlib_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
   sed -n "$gl_absolute_header_sed"`
 
-           gl_header=$gl_cv_absolute_stdlib_h
-           gl_cv_next_stdlib_h='"'$gl_header'"'
-
+          gl_header=$gl_cv_absolute_stdlib_h
+          gl_cv_next_stdlib_h='"'$gl_header'"'
 
+          ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdlib_h" >&5
 printf "%s\n" "$gl_cv_next_stdlib_h" >&6; }
@@ -21024,6 +23564,65 @@ printf "%s\n" "$gl_cv_next_stdlib_h" >&6; }
 
 
 
+
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether MB_CUR_MAX is correct" >&5
+printf %s "checking whether MB_CUR_MAX is correct... " >&6; }
+if test ${gl_cv_macro_MB_CUR_MAX_good+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+                  case "$host_os" in
+                  # Guess no on Solaris.
+        solaris*) gl_cv_macro_MB_CUR_MAX_good="guessing no" ;;
+                  # Guess yes otherwise.
+        *)        gl_cv_macro_MB_CUR_MAX_good="guessing yes" ;;
+      esac
+      if test $LOCALE_FR_UTF8 != none; then
+        if test "$cross_compiling" = yes
+then :
+  :
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <stdlib.h>
+int main ()
+{
+  int result = 0;
+  if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
+    {
+      if (MB_CUR_MAX < 4)
+        result |= 1;
+    }
+  return result;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+  gl_cv_macro_MB_CUR_MAX_good=yes
+else case e in #(
+  e) gl_cv_macro_MB_CUR_MAX_good=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
+
+      fi
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_macro_MB_CUR_MAX_good" >&5
+printf "%s\n" "$gl_cv_macro_MB_CUR_MAX_good" >&6; }
+  case "$gl_cv_macro_MB_CUR_MAX_good" in
+    *yes) ;;
+    *) REPLACE_MB_CUR_MAX=1 ;;
+  esac
+
+
   if test $ac_cv_have_decl_ecvt = no; then
     HAVE_DECL_ECVT=0
   fi
@@ -21048,22 +23647,22 @@ printf %s "checking whether strerror(0) succeeds... " >&6; }
 if test ${gl_cv_func_strerror_0_works+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test "$cross_compiling" = yes
+else case e in #(
+  e) if test "$cross_compiling" = yes
 then :
   case "$host_os" in
-                        # Guess yes on glibc systems.
-         *-gnu* | gnu*) gl_cv_func_strerror_0_works="guessing yes" ;;
-                        # Guess yes on musl systems.
-         *-musl*)       gl_cv_func_strerror_0_works="guessing yes" ;;
-                        # Guess yes on native Windows.
-         mingw*)        gl_cv_func_strerror_0_works="guessing yes" ;;
-                        # If we don't know, obey --enable-cross-guesses.
-         *)             gl_cv_func_strerror_0_works="$gl_cross_guess_normal" ;;
+                             # Guess yes on glibc systems.
+         *-gnu* | gnu*)      gl_cv_func_strerror_0_works="guessing yes" ;;
+                             # Guess yes on musl systems.
+         *-musl* | midipix*) gl_cv_func_strerror_0_works="guessing yes" ;;
+                             # Guess yes on native Windows.
+         mingw*)             gl_cv_func_strerror_0_works="guessing yes" ;;
+                             # If we don't know, obey --enable-cross-guesses.
+         *)                  gl_cv_func_strerror_0_works="$gl_cross_guess_normal" ;;
        esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <string.h>
            #include <errno.h>
@@ -21087,14 +23686,17 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_strerror_0_works=yes
-else $as_nop
-  gl_cv_func_strerror_0_works=no
+else case e in #(
+  e) gl_cv_func_strerror_0_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
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
-
+   ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strerror_0_works" >&5
 printf "%s\n" "$gl_cv_func_strerror_0_works" >&6; }
@@ -21115,15 +23717,85 @@ printf "%s\n" "#define REPLACE_STRERROR_0 1" >>confdefs.h
 
 
 
+
+
+
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for strerror_r" >&5
+printf %s "checking for strerror_r... " >&6; }
+if test ${gl_cv_onwards_func_strerror_r+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+  exec 9>&6 6>/dev/null
+
+       case "$host_os" in
+
+         linux*-android*)
+           ac_fn_check_decl "$LINENO" "strerror_r" "ac_cv_have_decl_strerror_r" "#include <string.h>
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_strerror_r" = xyes
+then :
+
+fi
+           if test $ac_cv_have_decl_strerror_r = yes; then
+             ac_fn_c_check_func "$LINENO" "strerror_r" "ac_cv_func_strerror_r"
+if test "x$ac_cv_func_strerror_r" = xyes
+then :
+
+fi
+
+             if test $ac_cv_func_strerror_r = yes; then
+               gl_cv_onwards_func_strerror_r=yes
+             else
+                                                            gl_cv_onwards_func_strerror_r='future OS version'
+             fi
+           else
+             gl_cv_onwards_func_strerror_r='future OS version'
+           fi
+           ;;
+
+
+         *)
+           ac_fn_c_check_func "$LINENO" "strerror_r" "ac_cv_func_strerror_r"
+if test "x$ac_cv_func_strerror_r" = xyes
+then :
+
+fi
+
+           gl_cv_onwards_func_strerror_r=$ac_cv_func_strerror_r
+           ;;
+
+       esac
+
+  exec 6>&9 9>&-
+
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_onwards_func_strerror_r" >&5
+printf "%s\n" "$gl_cv_onwards_func_strerror_r" >&6; }
+
+  case "$gl_cv_onwards_func_strerror_r" in
+    future*) ac_cv_func_strerror_r=no ;;
+    *)       ac_cv_func_strerror_r=$gl_cv_onwards_func_strerror_r ;;
+  esac
+  if test $ac_cv_func_strerror_r = yes; then
+
+printf "%s\n" "#define HAVE_STRERROR_R 1" >>confdefs.h
+
+  fi
+
+
   if test $ac_cv_func_strerror_r = yes; then
-    if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then
+    if test "$GL_GENERATE_ERRNO_H:$REPLACE_STRERROR_0" = false:0; then
                         { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for strerror_r with POSIX signature" >&5
 printf %s "checking for strerror_r with POSIX signature... " >&6; }
 if test ${gl_cv_func_strerror_r_posix_signature+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <string.h>
                 int strerror_r (int, char *, size_t);
@@ -21139,11 +23811,13 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_func_strerror_r_posix_signature=yes
-else $as_nop
-  gl_cv_func_strerror_r_posix_signature=no
+else case e in #(
+  e) gl_cv_func_strerror_r_posix_signature=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_func_strerror_r_posix_signature" >&5
 printf "%s\n" "$gl_cv_func_strerror_r_posix_signature" >&6; }
@@ -21153,8 +23827,8 @@ printf %s "checking whether strerror_r works... " >&6; }
 if test ${gl_cv_func_strerror_r_works+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test "$cross_compiling" = yes
+else case e in #(
+  e) if test "$cross_compiling" = yes
 then :
 
               case "$host_os" in
@@ -21168,8 +23842,8 @@ then :
                 *)     gl_cv_func_strerror_r_works="guessing yes";;
               esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <errno.h>
                   #include <string.h>
@@ -21208,14 +23882,17 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_strerror_r_works=yes
-else $as_nop
-  gl_cv_func_strerror_r_works=no
+else case e in #(
+  e) gl_cv_func_strerror_r_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
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
-
+           ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strerror_r_works" >&5
 printf "%s\n" "$gl_cv_func_strerror_r_works" >&6; }
@@ -21227,13 +23904,13 @@ printf %s "checking whether __xpg_strerror_r works... " >&6; }
 if test ${gl_cv_func_strerror_r_works+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test "$cross_compiling" = yes
+else case e in #(
+  e) if test "$cross_compiling" = yes
 then :
                                   gl_cv_func_strerror_r_works="$gl_cross_guess_normal"
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <errno.h>
                     #include <string.h>
@@ -21267,20 +23944,27 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_strerror_r_works=yes
-else $as_nop
-  gl_cv_func_strerror_r_works=no
+else case e in #(
+  e) gl_cv_func_strerror_r_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
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
-
+             ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strerror_r_works" >&5
 printf "%s\n" "$gl_cv_func_strerror_r_works" >&6; }
         fi
       fi
     fi
+  else
+    case "$gl_cv_onwards_func_strerror_r" in
+      future*) REPLACE_STRERROR_R=1 ;;
+    esac
   fi
 
 
@@ -21301,8 +23985,8 @@ printf %s "checking absolute name of <string.h>... " >&6; }
 if test ${gl_cv_next_string_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
 
 
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -21335,10 +24019,11 @@ _ACEOF
         gl_cv_absolute_string_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
   sed -n "$gl_absolute_header_sed"`
 
-           gl_header=$gl_cv_absolute_string_h
-           gl_cv_next_string_h='"'$gl_header'"'
-
+          gl_header=$gl_cv_absolute_string_h
+          gl_cv_next_string_h='"'$gl_header'"'
 
+          ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_string_h" >&5
 printf "%s\n" "$gl_cv_next_string_h" >&6; }
@@ -21384,8 +24069,8 @@ printf %s "checking absolute name of <strings.h>... " >&6; }
 if test ${gl_cv_next_strings_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
              if test $ac_cv_header_strings_h = yes; then
 
 
@@ -21421,13 +24106,14 @@ _ACEOF
         gl_cv_absolute_strings_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
   sed -n "$gl_absolute_header_sed"`
 
-           gl_header=$gl_cv_absolute_strings_h
-           gl_cv_next_strings_h='"'$gl_header'"'
+          gl_header=$gl_cv_absolute_strings_h
+          gl_cv_next_strings_h='"'$gl_header'"'
           else
                gl_cv_next_strings_h='<'strings.h'>'
              fi
 
-
+          ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_strings_h" >&5
 printf "%s\n" "$gl_cv_next_strings_h" >&6; }
@@ -21467,8 +24153,9 @@ ac_fn_check_decl "$LINENO" "strnlen" "ac_cv_have_decl_strnlen" "$ac_includes_def
 if test "x$ac_cv_have_decl_strnlen" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_STRNLEN $ac_have_decl" >>confdefs.h
 
@@ -21478,8 +24165,9 @@ ac_fn_check_decl "$LINENO" "strtoimax" "ac_cv_have_decl_strtoimax" "$ac_includes
 if test "x$ac_cv_have_decl_strtoimax" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_STRTOIMAX $ac_have_decl" >>confdefs.h
 
@@ -21503,8 +24191,8 @@ printf %s "checking absolute name of <sys/random.h>... " >&6; }
 if test ${gl_cv_next_sys_random_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
              if test $ac_cv_header_sys_random_h = yes; then
 
 
@@ -21540,13 +24228,14 @@ _ACEOF
         gl_cv_absolute_sys_random_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
   sed -n "$gl_absolute_header_sed"`
 
-           gl_header=$gl_cv_absolute_sys_random_h
-           gl_cv_next_sys_random_h='"'$gl_header'"'
+          gl_header=$gl_cv_absolute_sys_random_h
+          gl_cv_next_sys_random_h='"'$gl_header'"'
           else
                gl_cv_next_sys_random_h='<'sys/random.h'>'
              fi
 
-
+          ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_random_h" >&5
 printf "%s\n" "$gl_cv_next_sys_random_h" >&6; }
@@ -21612,8 +24301,8 @@ printf %s "checking absolute name of <sys/types.h>... " >&6; }
 if test ${gl_cv_next_sys_types_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
 
 
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -21646,10 +24335,11 @@ _ACEOF
         gl_cv_absolute_sys_types_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
   sed -n "$gl_absolute_header_sed"`
 
-           gl_header=$gl_cv_absolute_sys_types_h
-           gl_cv_next_sys_types_h='"'$gl_header'"'
-
+          gl_header=$gl_cv_absolute_sys_types_h
+          gl_cv_next_sys_types_h='"'$gl_header'"'
 
+          ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_types_h" >&5
 printf "%s\n" "$gl_cv_next_sys_types_h" >&6; }
@@ -21705,8 +24395,8 @@ printf %s "checking absolute name of <sys/wait.h>... " >&6; }
 if test ${gl_cv_next_sys_wait_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
              if test $ac_cv_header_sys_wait_h = yes; then
 
 
@@ -21742,13 +24432,14 @@ _ACEOF
         gl_cv_absolute_sys_wait_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
   sed -n "$gl_absolute_header_sed"`
 
-           gl_header=$gl_cv_absolute_sys_wait_h
-           gl_cv_next_sys_wait_h='"'$gl_header'"'
+          gl_header=$gl_cv_absolute_sys_wait_h
+          gl_cv_next_sys_wait_h='"'$gl_header'"'
           else
                gl_cv_next_sys_wait_h='<'sys/wait.h'>'
              fi
 
-
+          ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_wait_h" >&5
 printf "%s\n" "$gl_cv_next_sys_wait_h" >&6; }
@@ -21787,8 +24478,8 @@ printf %s "checking for struct timespec in <time.h>... " >&6; }
 if test ${gl_cv_sys_struct_timespec_in_time_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <time.h>
 
@@ -21803,10 +24494,12 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_sys_struct_timespec_in_time_h=yes
-else $as_nop
-  gl_cv_sys_struct_timespec_in_time_h=no
+else case e in #(
+  e) gl_cv_sys_struct_timespec_in_time_h=no ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+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_sys_struct_timespec_in_time_h" >&5
 printf "%s\n" "$gl_cv_sys_struct_timespec_in_time_h" >&6; }
@@ -21823,8 +24516,8 @@ printf %s "checking for struct timespec in <sys/time.h>... " >&6; }
 if test ${gl_cv_sys_struct_timespec_in_sys_time_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/time.h>
 
@@ -21839,10 +24532,12 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_sys_struct_timespec_in_sys_time_h=yes
-else $as_nop
-  gl_cv_sys_struct_timespec_in_sys_time_h=no
+else case e in #(
+  e) gl_cv_sys_struct_timespec_in_sys_time_h=no ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+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_sys_struct_timespec_in_sys_time_h" >&5
 printf "%s\n" "$gl_cv_sys_struct_timespec_in_sys_time_h" >&6; }
@@ -21854,8 +24549,8 @@ printf %s "checking for struct timespec in <pthread.h>... " >&6; }
 if test ${gl_cv_sys_struct_timespec_in_pthread_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <pthread.h>
 
@@ -21870,10 +24565,12 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_sys_struct_timespec_in_pthread_h=yes
-else $as_nop
-  gl_cv_sys_struct_timespec_in_pthread_h=no
+else case e in #(
+  e) gl_cv_sys_struct_timespec_in_pthread_h=no ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+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_sys_struct_timespec_in_pthread_h" >&5
 printf "%s\n" "$gl_cv_sys_struct_timespec_in_pthread_h" >&6; }
@@ -21885,8 +24582,8 @@ printf %s "checking for struct timespec in <unistd.h>... " >&6; }
 if test ${gl_cv_sys_struct_timespec_in_unistd_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <unistd.h>
 
@@ -21901,10 +24598,12 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_sys_struct_timespec_in_unistd_h=yes
-else $as_nop
-  gl_cv_sys_struct_timespec_in_unistd_h=no
+else case e in #(
+  e) gl_cv_sys_struct_timespec_in_unistd_h=no ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+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_sys_struct_timespec_in_unistd_h" >&5
 printf "%s\n" "$gl_cv_sys_struct_timespec_in_unistd_h" >&6; }
@@ -21938,8 +24637,8 @@ printf %s "checking absolute name of <time.h>... " >&6; }
 if test ${gl_cv_next_time_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
 
 
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -21972,10 +24671,11 @@ _ACEOF
         gl_cv_absolute_time_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
   sed -n "$gl_absolute_header_sed"`
 
-           gl_header=$gl_cv_absolute_time_h
-           gl_cv_next_time_h='"'$gl_header'"'
-
+          gl_header=$gl_cv_absolute_time_h
+          gl_cv_next_time_h='"'$gl_header'"'
 
+          ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_time_h" >&5
 printf "%s\n" "$gl_cv_next_time_h" >&6; }
@@ -21998,13 +24698,17 @@ printf "%s\n" "$gl_cv_next_time_h" >&6; }
 
 
 
+
+
+
+
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for TIME_UTC in <time.h>" >&5
 printf %s "checking for TIME_UTC in <time.h>... " >&6; }
 if test ${gl_cv_time_h_has_TIME_UTC+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <time.h>
 
@@ -22019,10 +24723,12 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_time_h_has_TIME_UTC=yes
-else $as_nop
-  gl_cv_time_h_has_TIME_UTC=no
+else case e in #(
+  e) gl_cv_time_h_has_TIME_UTC=no ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+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_time_h_has_TIME_UTC" >&5
 printf "%s\n" "$gl_cv_time_h_has_TIME_UTC" >&6; }
@@ -22034,13 +24740,13 @@ printf "%s\n" "$gl_cv_time_h_has_TIME_UTC" >&6; }
 
 
 
-
 ac_fn_check_decl "$LINENO" "execvpe" "ac_cv_have_decl_execvpe" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS"
 if test "x$ac_cv_have_decl_execvpe" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_EXECVPE $ac_have_decl" >>confdefs.h
 
@@ -22064,8 +24770,8 @@ printf %s "checking absolute name of <unistd.h>... " >&6; }
 if test ${gl_cv_next_unistd_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
              if test $ac_cv_header_unistd_h = yes; then
 
 
@@ -22101,13 +24807,14 @@ _ACEOF
         gl_cv_absolute_unistd_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
   sed -n "$gl_absolute_header_sed"`
 
-           gl_header=$gl_cv_absolute_unistd_h
-           gl_cv_next_unistd_h='"'$gl_header'"'
+          gl_header=$gl_cv_absolute_unistd_h
+          gl_cv_next_unistd_h='"'$gl_header'"'
           else
                gl_cv_next_unistd_h='<'unistd.h'>'
              fi
 
-
+          ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_unistd_h" >&5
 printf "%s\n" "$gl_cv_next_unistd_h" >&6; }
     LIBUNISTRING_VERSION_SUBMINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_subminor"`
   fi
 
+                if test "$HAVE_LIBUNISTRING" = yes; then
+              for ac_header in unistring/woe32dll.h
+do :
+  ac_fn_c_check_header_compile "$LINENO" "unistring/woe32dll.h" "ac_cv_header_unistring_woe32dll_h" "$ac_includes_default"
+if test "x$ac_cv_header_unistring_woe32dll_h" = xyes
+then :
+  printf "%s\n" "#define HAVE_UNISTRING_WOE32DLL_H 1" >>confdefs.h
+ HAVE_UNISTRING_WOE32DLL_H=1
+else case e in #(
+  e) HAVE_UNISTRING_WOE32DLL_H=0 ;;
+esac
+fi
+
+done
+     else
+       HAVE_UNISTRING_WOE32DLL_H=0
+     fi
+
+
+
 ac_fn_check_decl "$LINENO" "clearerr_unlocked" "ac_cv_have_decl_clearerr_unlocked" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS"
 if test "x$ac_cv_have_decl_clearerr_unlocked" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_CLEARERR_UNLOCKED $ac_have_decl" >>confdefs.h
 
@@ -22190,8 +24918,9 @@ ac_fn_check_decl "$LINENO" "feof_unlocked" "ac_cv_have_decl_feof_unlocked" "$ac_
 if test "x$ac_cv_have_decl_feof_unlocked" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_FEOF_UNLOCKED $ac_have_decl" >>confdefs.h
 
@@ -22199,8 +24928,9 @@ ac_fn_check_decl "$LINENO" "ferror_unlocked" "ac_cv_have_decl_ferror_unlocked" "
 if test "x$ac_cv_have_decl_ferror_unlocked" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_FERROR_UNLOCKED $ac_have_decl" >>confdefs.h
 
@@ -22208,8 +24938,9 @@ ac_fn_check_decl "$LINENO" "fflush_unlocked" "ac_cv_have_decl_fflush_unlocked" "
 if test "x$ac_cv_have_decl_fflush_unlocked" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_FFLUSH_UNLOCKED $ac_have_decl" >>confdefs.h
 
@@ -22217,8 +24948,9 @@ ac_fn_check_decl "$LINENO" "fgets_unlocked" "ac_cv_have_decl_fgets_unlocked" "$a
 if test "x$ac_cv_have_decl_fgets_unlocked" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_FGETS_UNLOCKED $ac_have_decl" >>confdefs.h
 
@@ -22226,8 +24958,9 @@ ac_fn_check_decl "$LINENO" "fputc_unlocked" "ac_cv_have_decl_fputc_unlocked" "$a
 if test "x$ac_cv_have_decl_fputc_unlocked" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_FPUTC_UNLOCKED $ac_have_decl" >>confdefs.h
 
@@ -22235,8 +24968,9 @@ ac_fn_check_decl "$LINENO" "fputs_unlocked" "ac_cv_have_decl_fputs_unlocked" "$a
 if test "x$ac_cv_have_decl_fputs_unlocked" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_FPUTS_UNLOCKED $ac_have_decl" >>confdefs.h
 
@@ -22244,8 +24978,9 @@ ac_fn_check_decl "$LINENO" "fread_unlocked" "ac_cv_have_decl_fread_unlocked" "$a
 if test "x$ac_cv_have_decl_fread_unlocked" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_FREAD_UNLOCKED $ac_have_decl" >>confdefs.h
 
@@ -22253,8 +24988,9 @@ ac_fn_check_decl "$LINENO" "fwrite_unlocked" "ac_cv_have_decl_fwrite_unlocked" "
 if test "x$ac_cv_have_decl_fwrite_unlocked" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_FWRITE_UNLOCKED $ac_have_decl" >>confdefs.h
 
@@ -22262,8 +24998,9 @@ ac_fn_check_decl "$LINENO" "getc_unlocked" "ac_cv_have_decl_getc_unlocked" "$ac_
 if test "x$ac_cv_have_decl_getc_unlocked" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_GETC_UNLOCKED $ac_have_decl" >>confdefs.h
 
@@ -22271,8 +25008,9 @@ ac_fn_check_decl "$LINENO" "getchar_unlocked" "ac_cv_have_decl_getchar_unlocked"
 if test "x$ac_cv_have_decl_getchar_unlocked" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_GETCHAR_UNLOCKED $ac_have_decl" >>confdefs.h
 
@@ -22280,8 +25018,9 @@ ac_fn_check_decl "$LINENO" "putc_unlocked" "ac_cv_have_decl_putc_unlocked" "$ac_
 if test "x$ac_cv_have_decl_putc_unlocked" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_PUTC_UNLOCKED $ac_have_decl" >>confdefs.h
 
@@ -22289,8 +25028,9 @@ ac_fn_check_decl "$LINENO" "putchar_unlocked" "ac_cv_have_decl_putchar_unlocked"
 if test "x$ac_cv_have_decl_putchar_unlocked" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_PUTCHAR_UNLOCKED $ac_have_decl" >>confdefs.h
 
@@ -22298,15 +25038,15 @@ ac_fn_check_decl "$LINENO" "unsetenv" "ac_cv_have_decl_unsetenv" "$ac_includes_d
 if test "x$ac_cv_have_decl_unsetenv" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_UNSETENV $ac_have_decl" >>confdefs.h
 
 
 
 
-
   if test $ac_cv_header_features_h = yes; then
     HAVE_FEATURES_H=1
   else
@@ -22315,226 +25055,257 @@ printf "%s\n" "#define HAVE_DECL_UNSETENV $ac_have_decl" >>confdefs.h
 
 
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inttypes.h" >&5
-printf %s "checking for inttypes.h... " >&6; }
-if test ${gl_cv_header_inttypes_h+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <sys/types.h>
-#include <inttypes.h>
 
-int
-main (void)
-{
-uintmax_t i = (uintmax_t) -1; return !i;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  gl_cv_header_inttypes_h=yes
-else $as_nop
-  gl_cv_header_inttypes_h=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_inttypes_h" >&5
-printf "%s\n" "$gl_cv_header_inttypes_h" >&6; }
-  if test $gl_cv_header_inttypes_h = yes; then
 
-printf "%s\n" "#define HAVE_INTTYPES_H_WITH_UINTMAX 1" >>confdefs.h
 
-  fi
 
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for stdint.h" >&5
-printf %s "checking for stdint.h... " >&6; }
-if test ${gl_cv_header_stdint_h+y}
+
+
+
+
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_wchar_h='<'wchar.h'>'
+     else
+       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <wchar.h>" >&5
+printf %s "checking absolute name of <wchar.h>... " >&6; }
+if test ${gl_cv_next_wchar_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
+else case e in #(
+  e)
+             if test $ac_cv_header_wchar_h = yes; then
+
+
+
+
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <sys/types.h>
-            #include <stdint.h>
-int
-main (void)
-{
-uintmax_t i = (uintmax_t) -1; return !i;
-  ;
-  return 0;
-}
+#include <wchar.h>
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  gl_cv_header_stdint_h=yes
-else $as_nop
-  gl_cv_header_stdint_h=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
+
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'wchar.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+
+        gl_cv_absolute_wchar_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
+
+          gl_header=$gl_cv_absolute_wchar_h
+          gl_cv_next_wchar_h='"'$gl_header'"'
+          else
+               gl_cv_next_wchar_h='<'wchar.h'>'
+             fi
+
+          ;;
+esac
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_stdint_h" >&5
-printf "%s\n" "$gl_cv_header_stdint_h" >&6; }
-  if test $gl_cv_header_stdint_h = yes; then
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_wchar_h" >&5
+printf "%s\n" "$gl_cv_next_wchar_h" >&6; }
+     fi
+     NEXT_WCHAR_H=$gl_cv_next_wchar_h
 
-printf "%s\n" "#define HAVE_STDINT_H_WITH_UINTMAX 1" >>confdefs.h
+     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
+       gl_next_as_first_directive='<'wchar.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_wchar_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_WCHAR_H=$gl_next_as_first_directive
 
+
+
+
+  if test $ac_cv_header_wchar_h = yes; then
+    HAVE_WCHAR_H=1
+  else
+    HAVE_WCHAR_H=0
   fi
 
 
 
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for intmax_t" >&5
-printf %s "checking for intmax_t... " >&6; }
-if test ${gt_cv_c_intmax_t+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <stddef.h>
-#include <stdlib.h>
-#if HAVE_STDINT_H_WITH_UINTMAX
-#include <stdint.h>
-#endif
-#if HAVE_INTTYPES_H_WITH_UINTMAX
-#include <inttypes.h>
-#endif
+  if test $gt_cv_c_wint_t = yes; then
+    HAVE_WINT_T=1
+  else
+    HAVE_WINT_T=0
+  fi
 
-int
-main (void)
-{
-intmax_t x = -1; return !x;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
+
+
+
+
+
+
+
+
+
+  ac_fn_check_decl "$LINENO" "wcsdup" "ac_cv_have_decl_wcsdup" "
+      #include <wchar.h>
+
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_wcsdup" = xyes
 then :
-  gt_cv_c_intmax_t=yes
-else $as_nop
-  gt_cv_c_intmax_t=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+  ac_have_decl=1
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_intmax_t" >&5
-printf "%s\n" "$gt_cv_c_intmax_t" >&6; }
-  if test $gt_cv_c_intmax_t = yes; then
+printf "%s\n" "#define HAVE_DECL_WCSDUP $ac_have_decl" >>confdefs.h
 
-printf "%s\n" "#define HAVE_INTMAX_T 1" >>confdefs.h
+  if test $ac_cv_have_decl_wcsdup = no; then
+    HAVE_DECL_WCSDUP=0
+  fi
 
-  else
 
-printf "%s\n" "#define intmax_t long long" >>confdefs.h
 
-  fi
 
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking where to find the exponent in a 'double'" >&5
-printf %s "checking where to find the exponent in a 'double'... " >&6; }
-if test ${gl_cv_cc_double_expbit0+y}
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler option to allow warnings" >&5
+printf %s "checking for C compiler option to allow warnings... " >&6; }
+if test ${gl_cv_cc_wallow+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
+else case e in #(
+  e) rm -f conftest*
+     echo 'int dummy;' > conftest.c
+     { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c 2>conftest1.err'
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; } >/dev/null
+     { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -Wno-error -c conftest.c 2>conftest2.err'
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; } >/dev/null
+                         if test $? = 0 && test `wc -l < conftest1.err` = `wc -l < conftest2.err`; then
+       gl_cv_cc_wallow='-Wno-error'
+     else
+       gl_cv_cc_wallow=none
+     fi
+     rm -f conftest*
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_wallow" >&5
+printf "%s\n" "$gl_cv_cc_wallow" >&6; }
+  case "$gl_cv_cc_wallow" in
+    none) GL_CFLAG_ALLOW_WARNINGS='' ;;
+    *)    GL_CFLAG_ALLOW_WARNINGS="$gl_cv_cc_wallow" ;;
+  esac
 
-      if test "$cross_compiling" = yes
+
+
+    if test -n "$CXX" && test "$CXX" != no; then
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C++ compiler option to allow warnings" >&5
+printf %s "checking for C++ compiler option to allow warnings... " >&6; }
+if test ${gl_cv_cxx_wallow+y}
 then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) rm -f conftest*
+       echo 'int dummy;' > conftest.cc
+       { ac_try='${CXX-c++} $CXXFLAGS $CPPFLAGS -c conftest.cc 2>conftest1.err'
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; } >/dev/null
+       { ac_try='${CXX-c++} $CXXFLAGS $CPPFLAGS -Wno-error -c conftest.cc 2>conftest2.err'
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; } >/dev/null
+                                   if test $? = 0 && test `wc -l < conftest1.err` = `wc -l < conftest2.err`; then
+         gl_cv_cxx_wallow='-Wno-error'
+       else
+         gl_cv_cxx_wallow=none
+       fi
+       rm -f conftest*
+       ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cxx_wallow" >&5
+printf "%s\n" "$gl_cv_cxx_wallow" >&6; }
+    case "$gl_cv_cxx_wallow" in
+      none) GL_CXXFLAG_ALLOW_WARNINGS='' ;;
+      *)    GL_CXXFLAG_ALLOW_WARNINGS="$gl_cv_cxx_wallow" ;;
+    esac
+  else
+    GL_CXXFLAG_ALLOW_WARNINGS=''
+  fi
 
-                                                                      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#if defined arm || defined __arm || defined __arm__
-  mixed_endianness
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "mixed_endianness" >/dev/null 2>&1
-then :
-  gl_cv_cc_double_expbit0="unknown"
-else $as_nop
+  HAVE_STRUCT_SOCKADDR_STORAGE=1;
+  HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=1;
 
-                                                         :
-if test ${ac_cv_c_bigendian+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  ac_cv_c_bigendian=unknown
-    # See if we're dealing with a universal compiler.
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifndef __APPLE_CC__
-              not a universal capable compiler
-            #endif
-            typedef int dummy;
+  HAVE_SA_FAMILY_T=1;
+  HAVE_ACCEPT4=1;
 
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
+
+   if test $ac_cv_header_sys_socket_h = no; then
+                         ac_fn_c_check_header_compile "$LINENO" "ws2tcpip.h" "ac_cv_header_ws2tcpip_h" "$ac_includes_default"
+if test "x$ac_cv_header_ws2tcpip_h" = xyes
 then :
+  printf "%s\n" "#define HAVE_WS2TCPIP_H 1" >>confdefs.h
 
-       # Check for potential -arch flags.  It is not universal unless
-       # there are at least two -arch flags with different values.
-       ac_arch=
-       ac_prev=
-       for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
-        if test -n "$ac_prev"; then
-          case $ac_word in
-            i?86 | x86_64 | ppc | ppc64)
-              if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
-                ac_arch=$ac_word
-              else
-                ac_cv_c_bigendian=universal
-                break
-              fi
-              ;;
-          esac
-          ac_prev=
-        elif test "x$ac_word" = "x-arch"; then
-          ac_prev=arch
-        fi
-       done
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-    if test $ac_cv_c_bigendian = unknown; then
-      # See if sys/param.h defines the BYTE_ORDER macro.
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
-            #include <sys/param.h>
 
-int
-main (void)
-{
-#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
-                    && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
-                    && LITTLE_ENDIAN)
-             bogus endian macros
-            #endif
+   fi
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
+
+
+
+
+        case "$host_os" in
+    osf*)
+
+printf "%s\n" "#define _POSIX_PII_SOCKET 1" >>confdefs.h
+
+      ;;
+  esac
+
+  GL_GENERATE_SYS_SOCKET_H=false
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether <sys/socket.h> is self-contained" >&5
+printf %s "checking whether <sys/socket.h> is self-contained... " >&6; }
+if test ${gl_cv_header_sys_socket_h_selfcontained+y}
 then :
-  # It does; now see whether it defined to BIG_ENDIAN or not.
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <sys/types.h>
-               #include <sys/param.h>
-
+#include <sys/socket.h>
 int
 main (void)
 {
-#if BYTE_ORDER != BIG_ENDIAN
-                not big endian
-               #endif
 
   ;
   return 0;
@@ -22542,1072 +25313,286 @@ main (void)
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
-  ac_cv_c_bigendian=yes
-else $as_nop
-  ac_cv_c_bigendian=no
+  gl_cv_header_sys_socket_h_selfcontained=yes
+else case e in #(
+  e) gl_cv_header_sys_socket_h_selfcontained=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+     ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-    fi
-    if test $ac_cv_c_bigendian = unknown; then
-      # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <limits.h>
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_sys_socket_h_selfcontained" >&5
+printf "%s\n" "$gl_cv_header_sys_socket_h_selfcontained" >&6; }
+  if test $gl_cv_header_sys_socket_h_selfcontained = yes; then
+            ac_fn_c_check_func "$LINENO" "shutdown" "ac_cv_func_shutdown"
+if test "x$ac_cv_func_shutdown" = xyes
+then :
+  printf "%s\n" "#define HAVE_SHUTDOWN 1" >>confdefs.h
 
-int
-main (void)
-{
-#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
-             bogus endian macros
-            #endif
+fi
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
+    if test $ac_cv_func_shutdown = yes; then
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether <sys/socket.h> defines the SHUT_* macros" >&5
+printf %s "checking whether <sys/socket.h> defines the SHUT_* macros... " >&6; }
+if test ${gl_cv_header_sys_socket_h_shut+y}
 then :
-  # It does; now see whether it defined to _BIG_ENDIAN or not.
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <limits.h>
-
+#include <sys/socket.h>
 int
 main (void)
 {
-#ifndef _BIG_ENDIAN
-                not big endian
-               #endif
-
+int a[] = { SHUT_RD, SHUT_WR, SHUT_RDWR };
   ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
-  ac_cv_c_bigendian=yes
-else $as_nop
-  ac_cv_c_bigendian=no
+  gl_cv_header_sys_socket_h_shut=yes
+else case e in #(
+  e) gl_cv_header_sys_socket_h_shut=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+         ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_sys_socket_h_shut" >&5
+printf "%s\n" "$gl_cv_header_sys_socket_h_shut" >&6; }
+      if test $gl_cv_header_sys_socket_h_shut = no; then
+        GL_GENERATE_SYS_SOCKET_H=true
+      fi
     fi
-    if test $ac_cv_c_bigendian = unknown; then
-      # Compile a test program.
-      if test "$cross_compiling" = yes
-then :
-  # Try to guess by grepping values from an object file.
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-unsigned short int ascii_mm[] =
-                 { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
-               unsigned short int ascii_ii[] =
-                 { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
-               int use_ascii (int i) {
-                 return ascii_mm[i] + ascii_ii[i];
-               }
-               unsigned short int ebcdic_ii[] =
-                 { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
-               unsigned short int ebcdic_mm[] =
-                 { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
-               int use_ebcdic (int i) {
-                 return ebcdic_mm[i] + ebcdic_ii[i];
-               }
-               extern int foo;
-
-int
-main (void)
-{
-return use_ascii (foo) == use_ebcdic (foo);
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
-             ac_cv_c_bigendian=yes
-           fi
-           if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
-             if test "$ac_cv_c_bigendian" = unknown; then
-               ac_cv_c_bigendian=no
-             else
-               # finding both strings is unlikely to happen, but who knows?
-               ac_cv_c_bigendian=unknown
-             fi
-           fi
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main (void)
-{
+  fi
+  # We need to check for ws2tcpip.h now.
 
-            /* Are we little or big endian?  From Harbison&Steele.  */
-            union
-            {
-              long int l;
-              char c[sizeof (long int)];
-            } u;
-            u.l = 1;
-            return u.c[sizeof (long int) - 1] == 1;
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
-  ac_cv_c_bigendian=no
-else $as_nop
-  ac_cv_c_bigendian=yes
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
 
-    fi
-fi
-:
- case $ac_cv_c_bigendian in #(
-   yes)
-     gl_cv_cc_double_expbit0="word 0 bit 20";; #(
-   no)
-     gl_cv_cc_double_expbit0="word 1 bit 20" ;; #(
-   universal)
 
-printf "%s\n" "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
 
-     ;; #(
-   *)
-     gl_cv_cc_double_expbit0="unknown" ;;
- esac
 
 
-fi
-rm -rf conftest*
 
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <float.h>
-#include <stddef.h>
-#include <stdio.h>
-#include <string.h>
-#define NWORDS \
-  ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
-typedef union { double value; unsigned int word[NWORDS]; } memory_double;
-static unsigned int ored_words[NWORDS];
-static unsigned int anded_words[NWORDS];
-static void add_to_ored_words (double x)
-{
-  memory_double m;
-  size_t i;
-  /* Clear it first, in case sizeof (double) < sizeof (memory_double).  */
-  memset (&m, 0, sizeof (memory_double));
-  m.value = x;
-  for (i = 0; i < NWORDS; i++)
-    {
-      ored_words[i] |= m.word[i];
-      anded_words[i] &= m.word[i];
-    }
-}
-int main ()
-{
-  size_t j;
-  FILE *fp = fopen ("conftest.out", "w");
-  if (fp == NULL)
-    return 1;
-  for (j = 0; j < NWORDS; j++)
-    anded_words[j] = ~ (unsigned int) 0;
-  add_to_ored_words (0.25);
-  add_to_ored_words (0.5);
-  add_to_ored_words (1.0);
-  add_to_ored_words (2.0);
-  add_to_ored_words (4.0);
-  /* Remove bits that are common (e.g. if representation of the first mantissa
-     bit is explicit).  */
-  for (j = 0; j < NWORDS; j++)
-    ored_words[j] &= ~anded_words[j];
-  /* Now find the nonzero word.  */
-  for (j = 0; j < NWORDS; j++)
-    if (ored_words[j] != 0)
-      break;
-  if (j < NWORDS)
-    {
-      size_t i;
-      for (i = j + 1; i < NWORDS; i++)
-        if (ored_words[i] != 0)
-          {
-            fprintf (fp, "unknown");
-            return (fclose (fp) != 0);
-          }
-      for (i = 0; ; i++)
-        if ((ored_words[j] >> i) & 1)
-          {
-            fprintf (fp, "word %d bit %d", (int) j, (int) i);
-            return (fclose (fp) != 0);
-          }
-    }
-  fprintf (fp, "unknown");
-  return (fclose (fp) != 0);
-}
 
-_ACEOF
-if ac_fn_c_try_run "$LINENO"
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_sys_socket_h='<'sys/socket.h'>'
+     else
+       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/socket.h>" >&5
+printf %s "checking absolute name of <sys/socket.h>... " >&6; }
+if test ${gl_cv_next_sys_socket_h+y}
 then :
-  gl_cv_cc_double_expbit0=`cat conftest.out`
-else $as_nop
-  gl_cv_cc_double_expbit0="unknown"
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-      rm -f conftest.out
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+             if test $ac_cv_header_sys_socket_h = yes; then
 
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_double_expbit0" >&5
-printf "%s\n" "$gl_cv_cc_double_expbit0" >&6; }
-  case "$gl_cv_cc_double_expbit0" in
-    word*bit*)
-      word=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word //' -e 's/ bit.*//'`
-      bit=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word.*bit //'`
 
-printf "%s\n" "#define DBL_EXPBIT0_WORD $word" >>confdefs.h
 
 
-printf "%s\n" "#define DBL_EXPBIT0_BIT $bit" >>confdefs.h
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/socket.h>
+_ACEOF
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
 
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
       ;;
   esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'sys/socket.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
 
+        gl_cv_absolute_sys_socket_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
 
+          gl_header=$gl_cv_absolute_sys_socket_h
+          gl_cv_next_sys_socket_h='"'$gl_header'"'
+          else
+               gl_cv_next_sys_socket_h='<'sys/socket.h'>'
+             fi
 
+          ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_socket_h" >&5
+printf "%s\n" "$gl_cv_next_sys_socket_h" >&6; }
+     fi
+     NEXT_SYS_SOCKET_H=$gl_cv_next_sys_socket_h
 
+     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
+       gl_next_as_first_directive='<'sys/socket.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_sys_socket_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H=$gl_next_as_first_directive
 
 
 
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether snprintf returns a byte count as in C99" >&5
-printf %s "checking whether snprintf returns a byte count as in C99... " >&6; }
-if test ${gl_cv_func_snprintf_retval_c99+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+  if test $ac_cv_header_sys_socket_h = yes; then
+    HAVE_SYS_SOCKET_H=1
+  else
+    HAVE_SYS_SOCKET_H=0
+  fi
 
-      if test "$cross_compiling" = yes
-then :
-  case "$host_os" in
-                                 # Guess yes on glibc systems.
-           *-gnu* | gnu*)        gl_cv_func_snprintf_retval_c99="guessing yes";;
-                                 # Guess yes on musl systems.
-           *-musl*)              gl_cv_func_snprintf_retval_c99="guessing yes";;
-                                 # Guess yes on FreeBSD >= 5.
-           freebsd[1-4].*)       gl_cv_func_snprintf_retval_c99="guessing no";;
-           freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
-           midnightbsd*)         gl_cv_func_snprintf_retval_c99="guessing yes";;
-                                 # Guess yes on Mac OS X >= 10.3.
-           darwin[1-6].*)        gl_cv_func_snprintf_retval_c99="guessing no";;
-           darwin*)              gl_cv_func_snprintf_retval_c99="guessing yes";;
-                                 # Guess yes on OpenBSD >= 3.9.
-           openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*)
-                                 gl_cv_func_snprintf_retval_c99="guessing no";;
-           openbsd*)             gl_cv_func_snprintf_retval_c99="guessing yes";;
-                                 # Guess yes on Solaris >= 2.10.
-           solaris2.[1-9][0-9]*) gl_cv_func_printf_sizes_c99="guessing yes";;
-           solaris*)             gl_cv_func_printf_sizes_c99="guessing no";;
-                                 # Guess yes on AIX >= 4.
-           aix[1-3]*)            gl_cv_func_snprintf_retval_c99="guessing no";;
-           aix*)                 gl_cv_func_snprintf_retval_c99="guessing yes";;
-                                 # Guess yes on NetBSD >= 3.
-           netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
-                                 gl_cv_func_snprintf_retval_c99="guessing no";;
-           netbsd*)              gl_cv_func_snprintf_retval_c99="guessing yes";;
-                                 # Guess yes on BeOS.
-           beos*)                gl_cv_func_snprintf_retval_c99="guessing yes";;
-                                 # Guess yes on Android.
-           linux*-android*)      gl_cv_func_snprintf_retval_c99="guessing yes";;
-                                 # Guess yes on MSVC, no on mingw.
-           mingw*)               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#ifdef _MSC_VER
- Known
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Known" >/dev/null 2>&1
-then :
-  gl_cv_func_snprintf_retval_c99="guessing yes"
-else $as_nop
-  gl_cv_func_snprintf_retval_c99="guessing no"
-fi
-rm -rf conftest*
+  if test $ac_cv_header_sys_socket_h = yes; then
+    HAVE_WS2TCPIP_H=0
+  else
+    if test $ac_cv_header_ws2tcpip_h = yes; then
+      HAVE_WS2TCPIP_H=1
+    else
+      HAVE_WS2TCPIP_H=0
+    fi
+  fi
 
-                                 ;;
-                                 # If we don't know, obey --enable-cross-guesses.
-           *)                    gl_cv_func_snprintf_retval_c99="$gl_cross_guess_normal";;
-         esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <stdio.h>
-#include <string.h>
-#if HAVE_SNPRINTF
-# define my_snprintf snprintf
-#else
-# include <stdarg.h>
-static int my_snprintf (char *buf, int size, const char *format, ...)
-{
-  va_list args;
-  int ret;
-  va_start (args, format);
-  ret = vsnprintf (buf, size, format, args);
-  va_end (args);
-  return ret;
-}
+  ac_fn_c_check_type "$LINENO" "struct sockaddr_storage" "ac_cv_type_struct_sockaddr_storage" "
+  /* sys/types.h is not needed according to POSIX, but the
+     sys/socket.h in i386-unknown-freebsd4.10 and
+     powerpc-apple-darwin5.5 required it. */
+#include <sys/types.h>
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_WS2TCPIP_H
+#include <ws2tcpip.h>
 #endif
-static char buf[100];
-int main ()
-{
-  strcpy (buf, "ABCDEF");
-  if (my_snprintf (buf, 3, "%d %d", 4567, 89) != 7)
-    return 1;
-  if (my_snprintf (buf, 0, "%d %d", 4567, 89) != 7)
-    return 2;
-  if (my_snprintf (NULL, 0, "%d %d", 4567, 89) != 7)
-    return 3;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
-  gl_cv_func_snprintf_retval_c99=yes
-else $as_nop
-  gl_cv_func_snprintf_retval_c99=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
 
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_snprintf_retval_c99" >&5
-printf "%s\n" "$gl_cv_func_snprintf_retval_c99" >&6; }
+"
+if test "x$ac_cv_type_struct_sockaddr_storage" = xyes
+then :
 
+printf "%s\n" "#define HAVE_STRUCT_SOCKADDR_STORAGE 1" >>confdefs.h
 
 
+fi
+ac_fn_c_check_type "$LINENO" "sa_family_t" "ac_cv_type_sa_family_t" "
+  /* sys/types.h is not needed according to POSIX, but the
+     sys/socket.h in i386-unknown-freebsd4.10 and
+     powerpc-apple-darwin5.5 required it. */
+#include <sys/types.h>
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_WS2TCPIP_H
+#include <ws2tcpip.h>
+#endif
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether snprintf truncates the result as in C99" >&5
-printf %s "checking whether snprintf truncates the result as in C99... " >&6; }
-if test ${gl_cv_func_snprintf_truncation_c99+y}
+"
+if test "x$ac_cv_type_sa_family_t" = xyes
 then :
-  printf %s "(cached) " >&6
-else $as_nop
 
-      if test "$cross_compiling" = yes
-then :
+printf "%s\n" "#define HAVE_SA_FAMILY_T 1" >>confdefs.h
 
-         case "$host_os" in
-                                 # Guess yes on glibc systems.
-           *-gnu* | gnu*)        gl_cv_func_snprintf_truncation_c99="guessing yes";;
-                                 # Guess yes on musl systems.
-           *-musl*)              gl_cv_func_snprintf_truncation_c99="guessing yes";;
-                                 # Guess yes on FreeBSD >= 5.
-           freebsd[1-4].*)       gl_cv_func_snprintf_truncation_c99="guessing no";;
-           freebsd* | kfreebsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
-           midnightbsd*)         gl_cv_func_snprintf_truncation_c99="guessing yes";;
-                                 # Guess yes on Mac OS X >= 10.3.
-           darwin[1-6].*)        gl_cv_func_snprintf_truncation_c99="guessing no";;
-           darwin*)              gl_cv_func_snprintf_truncation_c99="guessing yes";;
-                                 # Guess yes on OpenBSD >= 3.9.
-           openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*)
-                                 gl_cv_func_snprintf_truncation_c99="guessing no";;
-           openbsd*)             gl_cv_func_snprintf_truncation_c99="guessing yes";;
-                                 # Guess yes on Solaris >= 2.6.
-           solaris2.[0-5] | solaris2.[0-5].*)
-                                 gl_cv_func_snprintf_truncation_c99="guessing no";;
-           solaris*)             gl_cv_func_snprintf_truncation_c99="guessing yes";;
-                                 # Guess yes on AIX >= 4.
-           aix[1-3]*)            gl_cv_func_snprintf_truncation_c99="guessing no";;
-           aix*)                 gl_cv_func_snprintf_truncation_c99="guessing yes";;
-                                 # Guess yes on HP-UX >= 11.
-           hpux[7-9]* | hpux10*) gl_cv_func_snprintf_truncation_c99="guessing no";;
-           hpux*)                gl_cv_func_snprintf_truncation_c99="guessing yes";;
-                                 # Guess yes on IRIX >= 6.5.
-           irix6.5)              gl_cv_func_snprintf_truncation_c99="guessing yes";;
-                                 # Guess yes on OSF/1 >= 5.
-           osf[3-4]*)            gl_cv_func_snprintf_truncation_c99="guessing no";;
-           osf*)                 gl_cv_func_snprintf_truncation_c99="guessing yes";;
-                                 # Guess yes on NetBSD >= 3.
-           netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
-                                 gl_cv_func_snprintf_truncation_c99="guessing no";;
-           netbsd*)              gl_cv_func_snprintf_truncation_c99="guessing yes";;
-                                 # Guess yes on BeOS.
-           beos*)                gl_cv_func_snprintf_truncation_c99="guessing yes";;
-                                 # Guess yes on Android.
-           linux*-android*)      gl_cv_func_snprintf_truncation_c99="guessing yes";;
-                                 # Guess no on native Windows.
-           mingw*)               gl_cv_func_snprintf_truncation_c99="guessing no";;
-                                 # If we don't know, obey --enable-cross-guesses.
-           *)                    gl_cv_func_snprintf_truncation_c99="$gl_cross_guess_normal";;
-         esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+fi
 
-#include <stdio.h>
-#include <string.h>
-#if HAVE_SNPRINTF
-# define my_snprintf snprintf
-#else
-# include <stdarg.h>
-static int my_snprintf (char *buf, int size, const char *format, ...)
-{
-  va_list args;
-  int ret;
-  va_start (args, format);
-  ret = vsnprintf (buf, size, format, args);
-  va_end (args);
-  return ret;
-}
-#endif
-static char buf[100];
-int main ()
-{
-  strcpy (buf, "ABCDEF");
-  my_snprintf (buf, 3, "%d %d", 4567, 89);
-  if (memcmp (buf, "45\0DEF", 6) != 0)
-    return 1;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"
+  if test $ac_cv_type_struct_sockaddr_storage = no; then
+    HAVE_STRUCT_SOCKADDR_STORAGE=0
+  fi
+  if test $ac_cv_type_sa_family_t = no; then
+    HAVE_SA_FAMILY_T=0
+  fi
+  if test $ac_cv_type_struct_sockaddr_storage != no; then
+    ac_fn_c_check_member "$LINENO" "struct sockaddr_storage" "ss_family" "ac_cv_member_struct_sockaddr_storage_ss_family" "#include <sys/types.h>
+       #ifdef HAVE_SYS_SOCKET_H
+       #include <sys/socket.h>
+       #endif
+       #ifdef HAVE_WS2TCPIP_H
+       #include <ws2tcpip.h>
+       #endif
+
+"
+if test "x$ac_cv_member_struct_sockaddr_storage_ss_family" = xyes
 then :
-  gl_cv_func_snprintf_truncation_c99=yes
-else $as_nop
-  gl_cv_func_snprintf_truncation_c99=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
+
+printf "%s\n" "#define HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY 1" >>confdefs.h
 
 
+else case e in #(
+  e) HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=0 ;;
+esac
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_snprintf_truncation_c99" >&5
-printf "%s\n" "$gl_cv_func_snprintf_truncation_c99" >&6; }
 
+  fi
+  if test $HAVE_STRUCT_SOCKADDR_STORAGE = 0 || test $HAVE_SA_FAMILY_T = 0 \
+     || test $HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = 0; then
+    GL_GENERATE_SYS_SOCKET_H=true
+  fi
 
 
 
 
-  ac_fn_c_check_func "$LINENO" "snprintf" "ac_cv_func_snprintf"
-if test "x$ac_cv_func_snprintf" = xyes
+  if test $ac_cv_header_sys_socket_h != yes; then
+                    ac_fn_c_check_header_compile "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default"
+if test "x$ac_cv_header_winsock2_h" = xyes
 then :
-  printf "%s\n" "#define HAVE_SNPRINTF 1" >>confdefs.h
+  printf "%s\n" "#define HAVE_WINSOCK2_H 1" >>confdefs.h
 
 fi
-ac_fn_c_check_func "$LINENO" "strnlen" "ac_cv_func_strnlen"
-if test "x$ac_cv_func_strnlen" = xyes
-then :
-  printf "%s\n" "#define HAVE_STRNLEN 1" >>confdefs.h
 
-fi
-ac_fn_c_check_func "$LINENO" "wcslen" "ac_cv_func_wcslen"
-if test "x$ac_cv_func_wcslen" = xyes
-then :
-  printf "%s\n" "#define HAVE_WCSLEN 1" >>confdefs.h
+  fi
+  if test "$ac_cv_header_winsock2_h" = yes; then
+    HAVE_WINSOCK2_H=1
+    UNISTD_H_HAVE_WINSOCK2_H=1
+    SYS_IOCTL_H_HAVE_WINSOCK2_H=1
+  else
+    HAVE_WINSOCK2_H=0
+  fi
 
-fi
-ac_fn_c_check_func "$LINENO" "wcsnlen" "ac_cv_func_wcsnlen"
-if test "x$ac_cv_func_wcsnlen" = xyes
-then :
-  printf "%s\n" "#define HAVE_WCSNLEN 1" >>confdefs.h
 
-fi
-ac_fn_c_check_func "$LINENO" "mbrtowc" "ac_cv_func_mbrtowc"
-if test "x$ac_cv_func_mbrtowc" = xyes
-then :
-  printf "%s\n" "#define HAVE_MBRTOWC 1" >>confdefs.h
 
-fi
-ac_fn_c_check_func "$LINENO" "wcrtomb" "ac_cv_func_wcrtomb"
-if test "x$ac_cv_func_wcrtomb" = xyes
-then :
-  printf "%s\n" "#define HAVE_WCRTOMB 1" >>confdefs.h
 
-fi
 
-      ac_fn_check_decl "$LINENO" "_snprintf" "ac_cv_have_decl__snprintf" "#include <stdio.h>
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl__snprintf" = xyes
-then :
-  ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
-fi
-printf "%s\n" "#define HAVE_DECL__SNPRINTF $ac_have_decl" >>confdefs.h
 
 
 
-  case "$gl_cv_func_snprintf_retval_c99" in
-    *yes)
 
-printf "%s\n" "#define HAVE_SNPRINTF_RETVAL_C99 1" >>confdefs.h
 
-      ;;
-  esac
 
-  case "$gl_cv_func_snprintf_truncation_c99" in
-    *yes)
+  GL_GNULIB_SOCKET=0
 
-printf "%s\n" "#define HAVE_SNPRINTF_TRUNCATION_C99 1" >>confdefs.h
 
-      ;;
-  esac
 
+  GL_GNULIB_CONNECT=0
 
 
 
+  GL_GNULIB_ACCEPT=0
 
 
 
+  GL_GNULIB_BIND=0
 
 
 
-
-
-
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_wchar_h='<'wchar.h'>'
-     else
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <wchar.h>" >&5
-printf %s "checking absolute name of <wchar.h>... " >&6; }
-if test ${gl_cv_next_wchar_h+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-
-             if test $ac_cv_header_wchar_h = yes; then
-
-
-
-
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <wchar.h>
-_ACEOF
-                case "$host_os" in
-    aix*) gl_absname_cpp="$ac_cpp -C" ;;
-    *)    gl_absname_cpp="$ac_cpp" ;;
-  esac
-
-  case "$host_os" in
-    mingw*)
-                                          gl_dirsep_regex='[/\\]'
-      ;;
-    *)
-      gl_dirsep_regex='\/'
-      ;;
-  esac
-      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-  gl_header_literal_regex=`echo 'wchar.h' \
-                           | sed -e "$gl_make_literal_regex_sed"`
-  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
-      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
-      s|^/[^/]|//&|
-      p
-      q
-    }'
-
-        gl_cv_absolute_wchar_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-  sed -n "$gl_absolute_header_sed"`
-
-           gl_header=$gl_cv_absolute_wchar_h
-           gl_cv_next_wchar_h='"'$gl_header'"'
-          else
-               gl_cv_next_wchar_h='<'wchar.h'>'
-             fi
-
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_wchar_h" >&5
-printf "%s\n" "$gl_cv_next_wchar_h" >&6; }
-     fi
-     NEXT_WCHAR_H=$gl_cv_next_wchar_h
-
-     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
-       gl_next_as_first_directive='<'wchar.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_wchar_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_WCHAR_H=$gl_next_as_first_directive
-
-
-
-
-  if test $ac_cv_header_wchar_h = yes; then
-    HAVE_WCHAR_H=1
-  else
-    HAVE_WCHAR_H=0
-  fi
-
-
-
-
-
-  if test $gt_cv_c_wint_t = yes; then
-    HAVE_WINT_T=1
-  else
-    HAVE_WINT_T=0
-  fi
-
-
-
-
-
-
-
-
-
-
-  ac_fn_check_decl "$LINENO" "wcsdup" "ac_cv_have_decl_wcsdup" "
-      #include <wchar.h>
-
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_wcsdup" = xyes
-then :
-  ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
-fi
-printf "%s\n" "#define HAVE_DECL_WCSDUP $ac_have_decl" >>confdefs.h
-
-  if test $ac_cv_have_decl_wcsdup = no; then
-    HAVE_DECL_WCSDUP=0
-  fi
-
-
-
-
-
-
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler option to allow warnings" >&5
-printf %s "checking for C compiler option to allow warnings... " >&6; }
-if test ${gl_cv_cc_wallow+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  rm -f conftest*
-     echo 'int dummy;' > conftest.c
-     { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c 2>conftest1.err'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; } >/dev/null
-     { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -Wno-error -c conftest.c 2>conftest2.err'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; } >/dev/null
-                         if test $? = 0 && test `wc -l < conftest1.err` = `wc -l < conftest2.err`; then
-       gl_cv_cc_wallow='-Wno-error'
-     else
-       gl_cv_cc_wallow=none
-     fi
-     rm -f conftest*
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_wallow" >&5
-printf "%s\n" "$gl_cv_cc_wallow" >&6; }
-  case "$gl_cv_cc_wallow" in
-    none) GL_CFLAG_ALLOW_WARNINGS='' ;;
-    *)    GL_CFLAG_ALLOW_WARNINGS="$gl_cv_cc_wallow" ;;
-  esac
-
-
-
-    if test -n "$CXX" && test "$CXX" != no; then
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C++ compiler option to allow warnings" >&5
-printf %s "checking for C++ compiler option to allow warnings... " >&6; }
-if test ${gl_cv_cxx_wallow+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  rm -f conftest*
-       echo 'int dummy;' > conftest.cc
-       { ac_try='${CXX-c++} $CXXFLAGS $CPPFLAGS -c conftest.cc 2>conftest1.err'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; } >/dev/null
-       { ac_try='${CXX-c++} $CXXFLAGS $CPPFLAGS -Wno-error -c conftest.cc 2>conftest2.err'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; } >/dev/null
-                                   if test $? = 0 && test `wc -l < conftest1.err` = `wc -l < conftest2.err`; then
-         gl_cv_cxx_wallow='-Wno-error'
-       else
-         gl_cv_cxx_wallow=none
-       fi
-       rm -f conftest*
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cxx_wallow" >&5
-printf "%s\n" "$gl_cv_cxx_wallow" >&6; }
-    case "$gl_cv_cxx_wallow" in
-      none) GL_CXXFLAG_ALLOW_WARNINGS='' ;;
-      *)    GL_CXXFLAG_ALLOW_WARNINGS="$gl_cv_cxx_wallow" ;;
-    esac
-  else
-    GL_CXXFLAG_ALLOW_WARNINGS=''
-  fi
-
-
-
-  HAVE_STRUCT_SOCKADDR_STORAGE=1;
-  HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=1;
-
-  HAVE_SA_FAMILY_T=1;
-  HAVE_ACCEPT4=1;
-
-
-   if test $ac_cv_header_sys_socket_h = no; then
-                         ac_fn_c_check_header_compile "$LINENO" "ws2tcpip.h" "ac_cv_header_ws2tcpip_h" "$ac_includes_default"
-if test "x$ac_cv_header_ws2tcpip_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_WS2TCPIP_H 1" >>confdefs.h
-
-fi
-
-   fi
-
-
-
-
-
-        case "$host_os" in
-    osf*)
-
-printf "%s\n" "#define _POSIX_PII_SOCKET 1" >>confdefs.h
-
-      ;;
-  esac
-
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether <sys/socket.h> is self-contained" >&5
-printf %s "checking whether <sys/socket.h> is self-contained... " >&6; }
-if test ${gl_cv_header_sys_socket_h_selfcontained+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/socket.h>
-int
-main (void)
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  gl_cv_header_sys_socket_h_selfcontained=yes
-else $as_nop
-  gl_cv_header_sys_socket_h_selfcontained=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_sys_socket_h_selfcontained" >&5
-printf "%s\n" "$gl_cv_header_sys_socket_h_selfcontained" >&6; }
-  if test $gl_cv_header_sys_socket_h_selfcontained = yes; then
-            ac_fn_c_check_func "$LINENO" "shutdown" "ac_cv_func_shutdown"
-if test "x$ac_cv_func_shutdown" = xyes
-then :
-  printf "%s\n" "#define HAVE_SHUTDOWN 1" >>confdefs.h
-
-fi
-
-    if test $ac_cv_func_shutdown = yes; then
-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether <sys/socket.h> defines the SHUT_* macros" >&5
-printf %s "checking whether <sys/socket.h> defines the SHUT_* macros... " >&6; }
-if test ${gl_cv_header_sys_socket_h_shut+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-
-          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/socket.h>
-int
-main (void)
-{
-int a[] = { SHUT_RD, SHUT_WR, SHUT_RDWR };
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  gl_cv_header_sys_socket_h_shut=yes
-else $as_nop
-  gl_cv_header_sys_socket_h_shut=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_sys_socket_h_shut" >&5
-printf "%s\n" "$gl_cv_header_sys_socket_h_shut" >&6; }
-      if test $gl_cv_header_sys_socket_h_shut = no; then
-        SYS_SOCKET_H='sys/socket.h'
-      fi
-    fi
-  fi
-  # We need to check for ws2tcpip.h now.
-
-
-
-
-
-
-
-
-
-
-
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_sys_socket_h='<'sys/socket.h'>'
-     else
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/socket.h>" >&5
-printf %s "checking absolute name of <sys/socket.h>... " >&6; }
-if test ${gl_cv_next_sys_socket_h+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-
-             if test $ac_cv_header_sys_socket_h = yes; then
-
-
-
-
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/socket.h>
-_ACEOF
-                case "$host_os" in
-    aix*) gl_absname_cpp="$ac_cpp -C" ;;
-    *)    gl_absname_cpp="$ac_cpp" ;;
-  esac
-
-  case "$host_os" in
-    mingw*)
-                                          gl_dirsep_regex='[/\\]'
-      ;;
-    *)
-      gl_dirsep_regex='\/'
-      ;;
-  esac
-      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-  gl_header_literal_regex=`echo 'sys/socket.h' \
-                           | sed -e "$gl_make_literal_regex_sed"`
-  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
-      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
-      s|^/[^/]|//&|
-      p
-      q
-    }'
-
-        gl_cv_absolute_sys_socket_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-  sed -n "$gl_absolute_header_sed"`
-
-           gl_header=$gl_cv_absolute_sys_socket_h
-           gl_cv_next_sys_socket_h='"'$gl_header'"'
-          else
-               gl_cv_next_sys_socket_h='<'sys/socket.h'>'
-             fi
-
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_socket_h" >&5
-printf "%s\n" "$gl_cv_next_sys_socket_h" >&6; }
-     fi
-     NEXT_SYS_SOCKET_H=$gl_cv_next_sys_socket_h
-
-     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
-       gl_next_as_first_directive='<'sys/socket.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_sys_socket_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H=$gl_next_as_first_directive
-
-
-
-
-  if test $ac_cv_header_sys_socket_h = yes; then
-    HAVE_SYS_SOCKET_H=1
-  else
-    HAVE_SYS_SOCKET_H=0
-  fi
-
-
-
-  if test $ac_cv_header_sys_socket_h = yes; then
-    HAVE_WS2TCPIP_H=0
-  else
-    if test $ac_cv_header_ws2tcpip_h = yes; then
-      HAVE_WS2TCPIP_H=1
-    else
-      HAVE_WS2TCPIP_H=0
-    fi
-  fi
-
-
-
-  ac_fn_c_check_type "$LINENO" "struct sockaddr_storage" "ac_cv_type_struct_sockaddr_storage" "
-  /* sys/types.h is not needed according to POSIX, but the
-     sys/socket.h in i386-unknown-freebsd4.10 and
-     powerpc-apple-darwin5.5 required it. */
-#include <sys/types.h>
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_WS2TCPIP_H
-#include <ws2tcpip.h>
-#endif
-
-"
-if test "x$ac_cv_type_struct_sockaddr_storage" = xyes
-then :
-
-printf "%s\n" "#define HAVE_STRUCT_SOCKADDR_STORAGE 1" >>confdefs.h
-
-
-fi
-ac_fn_c_check_type "$LINENO" "sa_family_t" "ac_cv_type_sa_family_t" "
-  /* sys/types.h is not needed according to POSIX, but the
-     sys/socket.h in i386-unknown-freebsd4.10 and
-     powerpc-apple-darwin5.5 required it. */
-#include <sys/types.h>
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_WS2TCPIP_H
-#include <ws2tcpip.h>
-#endif
-
-"
-if test "x$ac_cv_type_sa_family_t" = xyes
-then :
-
-printf "%s\n" "#define HAVE_SA_FAMILY_T 1" >>confdefs.h
-
-
-fi
-
-  if test $ac_cv_type_struct_sockaddr_storage = no; then
-    HAVE_STRUCT_SOCKADDR_STORAGE=0
-  fi
-  if test $ac_cv_type_sa_family_t = no; then
-    HAVE_SA_FAMILY_T=0
-  fi
-  if test $ac_cv_type_struct_sockaddr_storage != no; then
-    ac_fn_c_check_member "$LINENO" "struct sockaddr_storage" "ss_family" "ac_cv_member_struct_sockaddr_storage_ss_family" "#include <sys/types.h>
-       #ifdef HAVE_SYS_SOCKET_H
-       #include <sys/socket.h>
-       #endif
-       #ifdef HAVE_WS2TCPIP_H
-       #include <ws2tcpip.h>
-       #endif
-
-"
-if test "x$ac_cv_member_struct_sockaddr_storage_ss_family" = xyes
-then :
-
-printf "%s\n" "#define HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY 1" >>confdefs.h
-
-
-else $as_nop
-  HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=0
-fi
-
-  fi
-  if test $HAVE_STRUCT_SOCKADDR_STORAGE = 0 || test $HAVE_SA_FAMILY_T = 0 \
-     || test $HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = 0; then
-    SYS_SOCKET_H='sys/socket.h'
-  fi
-
-
-
-
-  if test $ac_cv_header_sys_socket_h != yes; then
-                    ac_fn_c_check_header_compile "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default"
-if test "x$ac_cv_header_winsock2_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_WINSOCK2_H 1" >>confdefs.h
-
-fi
-
-  fi
-  if test "$ac_cv_header_winsock2_h" = yes; then
-    HAVE_WINSOCK2_H=1
-    UNISTD_H_HAVE_WINSOCK2_H=1
-    SYS_IOCTL_H_HAVE_WINSOCK2_H=1
-  else
-    HAVE_WINSOCK2_H=0
-  fi
-
-
-
-
-
-
-
-
-
-
-
-  GL_GNULIB_SOCKET=0
-
-
-
-  GL_GNULIB_CONNECT=0
-
-
-
-  GL_GNULIB_ACCEPT=0
-
-
-
-  GL_GNULIB_BIND=0
-
-
-
-  GL_GNULIB_GETPEERNAME=0
+  GL_GNULIB_GETPEERNAME=0
 
 
 
@@ -23685,8 +25670,8 @@ printf %s "checking absolute name of <arpa/inet.h>... " >&6; }
 if test ${gl_cv_next_arpa_inet_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
              if test $ac_cv_header_arpa_inet_h = yes; then
 
 
@@ -23722,13 +25707,14 @@ _ACEOF
         gl_cv_absolute_arpa_inet_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
   sed -n "$gl_absolute_header_sed"`
 
-           gl_header=$gl_cv_absolute_arpa_inet_h
-           gl_cv_next_arpa_inet_h='"'$gl_header'"'
+          gl_header=$gl_cv_absolute_arpa_inet_h
+          gl_cv_next_arpa_inet_h='"'$gl_header'"'
           else
                gl_cv_next_arpa_inet_h='<'arpa/inet.h'>'
              fi
 
-
+          ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_arpa_inet_h" >&5
 printf "%s\n" "$gl_cv_next_arpa_inet_h" >&6; }
@@ -23781,27 +25767,161 @@ printf "%s\n" "$gl_cv_next_arpa_inet_h" >&6; }
 
 
 
-   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether getcwd (NULL, 0) allocates memory for result" >&5
-printf %s "checking whether getcwd (NULL, 0) allocates memory for result... " >&6; }
-if test ${gl_cv_func_getcwd_null+y}
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a turkish Unicode locale" >&5
+printf %s "checking for a turkish Unicode locale... " >&6; }
+if test ${gt_cv_locale_tr_utf8+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test "$cross_compiling" = yes
-then :
-  case "$host_os" in
-                           # Guess yes on glibc systems.
-            *-gnu* | gnu*) gl_cv_func_getcwd_null="guessing yes";;
+else case e in #(
+  e)
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+#include <wctype.h>
+struct tm t;
+char buf[16];
+int main () {
+  /* On BeOS, locales are not implemented in libc.  Rather, libintl
+     imitates locale dependent behaviour by looking at the environment
+     variables, and all locales use the UTF-8 encoding.  But BeOS does not
+     implement the Turkish upper-/lowercase mappings.  Therefore, let this
+     program return 1 on BeOS.  */
+  /* Check whether the given locale name is recognized by the system.  */
+#if defined _WIN32 && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+#else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the tr_TR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.  */
+#if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
+      return 1;
+  }
+#endif
+#ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+#endif
+  /* Check whether in the abbreviation of the eighth month, the second
+     character (should be U+011F: LATIN SMALL LETTER G WITH BREVE) is
+     two bytes long, with UTF-8 encoding.  */
+  t.tm_year = 1992 - 1900; t.tm_mon = 8 - 1; t.tm_mday = 19;
+  if (strftime (buf, sizeof (buf), "%b", &t) < 4
+      || buf[1] != (char) 0xc4 || buf[2] != (char) 0x9f)
+    return 1;
+  /* Check whether the upper-/lowercase mappings are as expected for
+     Turkish.  */
+  if (towupper ('i') != 0x0130 || towlower (0x0130) != 'i'
+      || towupper(0x0131) != 'I' || towlower ('I') != 0x0131)
+    return 1;
+  return 0;
+}
+
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the hypothetical native Windows locale name.
+          if (LC_ALL=Turkish_Turkey.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_tr_utf8=Turkish_Turkey.65001
+          else
+            # None found.
+            gt_cv_locale_tr_utf8=none
+          fi
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the usual locale name.
+          if (LC_ALL=tr_TR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_tr_utf8=tr_TR
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=tr_TR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_tr_utf8=tr_TR.UTF-8
+            else
+              # Test for the Solaris 7 locale name.
+              if (LC_ALL=tr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_tr_utf8=tr.UTF-8
+              else
+                # None found.
+                gt_cv_locale_tr_utf8=none
+              fi
+            fi
+          fi
+          ;;
+      esac
+    else
+      gt_cv_locale_tr_utf8=none
+    fi
+    rm -fr conftest*
+   ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_tr_utf8" >&5
+printf "%s\n" "$gt_cv_locale_tr_utf8" >&6; }
+  LOCALE_TR_UTF8=$gt_cv_locale_tr_utf8
+
+
+
+
+   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether getcwd (NULL, 0) allocates memory for result" >&5
+printf %s "checking whether getcwd (NULL, 0) allocates memory for result... " >&6; }
+if test ${gl_cv_func_getcwd_null+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test "$cross_compiling" = yes
+then :
+  case "$host_os" in
+                           # Guess yes on glibc systems.
+            *-gnu* | gnu*) gl_cv_func_getcwd_null="guessing yes";;
                            # Guess yes on musl systems.
             *-musl*)       gl_cv_func_getcwd_null="guessing yes";;
+                           # Guess yes on systems that emulate the Linux system calls.
+            midipix*)      gl_cv_func_getcwd_null="guessing yes";;
                            # Guess yes on Cygwin.
             cygwin*)       gl_cv_func_getcwd_null="guessing yes";;
                            # If we don't know, obey --enable-cross-guesses.
             *)             gl_cv_func_getcwd_null="$gl_cross_guess_normal";;
           esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #       include <stdlib.h>
@@ -23849,13 +25969,16 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_getcwd_null=yes
-else $as_nop
-  gl_cv_func_getcwd_null=no
+else case e in #(
+  e) gl_cv_func_getcwd_null=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getcwd_null" >&5
 printf "%s\n" "$gl_cv_func_getcwd_null" >&6; }
@@ -23866,8 +25989,8 @@ printf %s "checking for getcwd with POSIX signature... " >&6; }
 if test ${gl_cv_func_getcwd_posix_signature+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <unistd.h>
 
@@ -23891,26 +26014,19 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_func_getcwd_posix_signature=yes
-else $as_nop
-  gl_cv_func_getcwd_posix_signature=no
+else case e in #(
+  e) gl_cv_func_getcwd_posix_signature=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_func_getcwd_posix_signature" >&5
 printf "%s\n" "$gl_cv_func_getcwd_posix_signature" >&6; }
 
 
 
-  case "$host_os" in
-    *-musl*)
-printf "%s\n" "#define MUSL_LIBC 1" >>confdefs.h
- ;;
-  esac
-
-
-
-
 
 
 
@@ -23920,8 +26036,8 @@ printf %s "checking for IPv4 sockets... " >&6; }
 if test ${gl_cv_socket_ipv4+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/types.h>
 #ifdef HAVE_SYS_SOCKET_H
@@ -23945,10 +26061,12 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_socket_ipv4=yes
-else $as_nop
-  gl_cv_socket_ipv4=no
+else case e in #(
+  e) gl_cv_socket_ipv4=no ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+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_socket_ipv4" >&5
 printf "%s\n" "$gl_cv_socket_ipv4" >&6; }
@@ -23963,8 +26081,8 @@ printf %s "checking for IPv6 sockets... " >&6; }
 if test ${gl_cv_socket_ipv6+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/types.h>
 #ifdef HAVE_SYS_SOCKET_H
@@ -23991,10 +26109,12 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_socket_ipv6=yes
-else $as_nop
-  gl_cv_socket_ipv6=no
+else case e in #(
+  e) gl_cv_socket_ipv6=no ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+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_socket_ipv6" >&5
 printf "%s\n" "$gl_cv_socket_ipv6" >&6; }
@@ -24012,6 +26132,29 @@ printf "%s\n" "#define HAVE_IPV6 1" >>confdefs.h
 
 
 
+
+
+
+  if test $ac_cv_have_decl_strerror_r = no; then
+    HAVE_DECL_STRERROR_R=0
+  fi
+
+  if test $ac_cv_func_strerror_r = yes; then
+    if test "$GL_GENERATE_ERRNO_H:$REPLACE_STRERROR_0" = false:0; then
+      if test $gl_cv_func_strerror_r_posix_signature = yes; then
+        case "$gl_cv_func_strerror_r_works" in
+                    *no) REPLACE_STRERROR_R=1 ;;
+        esac
+      else
+                REPLACE_STRERROR_R=1
+      fi
+    else
+                  REPLACE_STRERROR_R=1
+    fi
+  fi
+
+
+
     HAVE_PSELECT=1;
   REPLACE_PSELECT=0;
   REPLACE_SELECT=0;
@@ -24025,8 +26168,8 @@ printf %s "checking whether <sys/select.h> is self-contained... " >&6; }
 if test ${gl_cv_header_sys_select_h_selfcontained+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
                                     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/select.h>
@@ -24041,8 +26184,9 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_header_sys_select_h_selfcontained=yes
-else $as_nop
-  gl_cv_header_sys_select_h_selfcontained=no
+else case e in #(
+  e) gl_cv_header_sys_select_h_selfcontained=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
                         if test $gl_cv_header_sys_select_h_selfcontained = yes; then
@@ -24092,8 +26236,9 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
 
-else $as_nop
-  gl_cv_header_sys_select_h_selfcontained=no
+else case e in #(
+  e) gl_cv_header_sys_select_h_selfcontained=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
@@ -24101,7 +26246,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
       fi
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_sys_select_h_selfcontained" >&5
 printf "%s\n" "$gl_cv_header_sys_select_h_selfcontained" >&6; }
@@ -24122,8 +26268,8 @@ printf %s "checking absolute name of <sys/select.h>... " >&6; }
 if test ${gl_cv_next_sys_select_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
              if test $ac_cv_header_sys_select_h = yes; then
 
 
@@ -24159,13 +26305,14 @@ _ACEOF
         gl_cv_absolute_sys_select_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
   sed -n "$gl_absolute_header_sed"`
 
-           gl_header=$gl_cv_absolute_sys_select_h
-           gl_cv_next_sys_select_h='"'$gl_header'"'
+          gl_header=$gl_cv_absolute_sys_select_h
+          gl_cv_next_sys_select_h='"'$gl_header'"'
           else
                gl_cv_next_sys_select_h='<'sys/select.h'>'
              fi
 
-
+          ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_select_h" >&5
 printf "%s\n" "$gl_cv_next_sys_select_h" >&6; }
 
 
 
+  GL_GNULIB_PSELECT=0
 
 
-  if test $ac_cv_header_sys_socket_h != yes; then
-                    ac_fn_c_check_header_compile "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default"
-if test "x$ac_cv_header_winsock2_h" = xyes
+
+  GL_GNULIB_SELECT=0
+
+
+
+
+    HAVE_PTHREAD_T=1;
+  HAVE_PTHREAD_SPINLOCK_T=1;
+  HAVE_PTHREAD_CREATE_DETACHED=1;
+  HAVE_PTHREAD_MUTEX_RECURSIVE=1;
+  HAVE_PTHREAD_MUTEX_ROBUST=1;
+  HAVE_PTHREAD_PROCESS_SHARED=1;
+  HAVE_PTHREAD_CREATE=1;
+  HAVE_PTHREAD_ATTR_INIT=1;
+  HAVE_PTHREAD_ATTR_GETDETACHSTATE=1;
+  HAVE_PTHREAD_ATTR_SETDETACHSTATE=1;
+  HAVE_PTHREAD_ATTR_DESTROY=1;
+  HAVE_PTHREAD_SELF=1;
+  HAVE_PTHREAD_EQUAL=1;
+  HAVE_PTHREAD_DETACH=1;
+  HAVE_PTHREAD_JOIN=1;
+  HAVE_PTHREAD_EXIT=1;
+  HAVE_PTHREAD_ONCE=1;
+  HAVE_PTHREAD_MUTEX_INIT=1;
+  HAVE_PTHREAD_MUTEXATTR_INIT=1;
+  HAVE_PTHREAD_MUTEXATTR_GETTYPE=1;
+  HAVE_PTHREAD_MUTEXATTR_SETTYPE=1;
+  HAVE_PTHREAD_MUTEXATTR_GETROBUST=1;
+  HAVE_PTHREAD_MUTEXATTR_SETROBUST=1;
+  HAVE_PTHREAD_MUTEXATTR_DESTROY=1;
+  HAVE_PTHREAD_MUTEX_LOCK=1;
+  HAVE_PTHREAD_MUTEX_TRYLOCK=1;
+  HAVE_PTHREAD_MUTEX_TIMEDLOCK=1;
+  HAVE_PTHREAD_MUTEX_UNLOCK=1;
+  HAVE_PTHREAD_MUTEX_DESTROY=1;
+  HAVE_PTHREAD_RWLOCK_INIT=1;
+  HAVE_PTHREAD_RWLOCKATTR_INIT=1;
+  HAVE_PTHREAD_RWLOCKATTR_DESTROY=1;
+  HAVE_PTHREAD_RWLOCK_RDLOCK=1;
+  HAVE_PTHREAD_RWLOCK_WRLOCK=1;
+  HAVE_PTHREAD_RWLOCK_TRYRDLOCK=1;
+  HAVE_PTHREAD_RWLOCK_TRYWRLOCK=1;
+  HAVE_PTHREAD_RWLOCK_TIMEDRDLOCK=1;
+  HAVE_PTHREAD_RWLOCK_TIMEDWRLOCK=1;
+  HAVE_PTHREAD_RWLOCK_UNLOCK=1;
+  HAVE_PTHREAD_RWLOCK_DESTROY=1;
+  HAVE_PTHREAD_COND_INIT=1;
+  HAVE_PTHREAD_CONDATTR_INIT=1;
+  HAVE_PTHREAD_CONDATTR_DESTROY=1;
+  HAVE_PTHREAD_COND_WAIT=1;
+  HAVE_PTHREAD_COND_TIMEDWAIT=1;
+  HAVE_PTHREAD_COND_SIGNAL=1;
+  HAVE_PTHREAD_COND_BROADCAST=1;
+  HAVE_PTHREAD_COND_DESTROY=1;
+  HAVE_PTHREAD_KEY_CREATE=1;
+  HAVE_PTHREAD_SETSPECIFIC=1;
+  HAVE_PTHREAD_GETSPECIFIC=1;
+  HAVE_PTHREAD_KEY_DELETE=1;
+  HAVE_PTHREAD_SPIN_INIT=1;
+  HAVE_PTHREAD_SPIN_LOCK=1;
+  HAVE_PTHREAD_SPIN_TRYLOCK=1;
+  HAVE_PTHREAD_SPIN_UNLOCK=1;
+  HAVE_PTHREAD_SPIN_DESTROY=1;
+  REPLACE_PTHREAD_CREATE=0;
+  REPLACE_PTHREAD_ATTR_INIT=0;
+  REPLACE_PTHREAD_ATTR_GETDETACHSTATE=0;
+  REPLACE_PTHREAD_ATTR_SETDETACHSTATE=0;
+  REPLACE_PTHREAD_ATTR_DESTROY=0;
+  REPLACE_PTHREAD_SELF=0;
+  REPLACE_PTHREAD_EQUAL=0;
+  REPLACE_PTHREAD_DETACH=0;
+  REPLACE_PTHREAD_JOIN=0;
+  REPLACE_PTHREAD_EXIT=0;
+  REPLACE_PTHREAD_ONCE=0;
+  REPLACE_PTHREAD_MUTEX_INIT=0;
+  REPLACE_PTHREAD_MUTEXATTR_INIT=0;
+  REPLACE_PTHREAD_MUTEXATTR_GETTYPE=0;
+  REPLACE_PTHREAD_MUTEXATTR_SETTYPE=0;
+  REPLACE_PTHREAD_MUTEXATTR_GETROBUST=0;
+  REPLACE_PTHREAD_MUTEXATTR_SETROBUST=0;
+  REPLACE_PTHREAD_MUTEXATTR_DESTROY=0;
+  REPLACE_PTHREAD_MUTEX_LOCK=0;
+  REPLACE_PTHREAD_MUTEX_TRYLOCK=0;
+  REPLACE_PTHREAD_MUTEX_TIMEDLOCK=0;
+  REPLACE_PTHREAD_MUTEX_UNLOCK=0;
+  REPLACE_PTHREAD_MUTEX_DESTROY=0;
+  REPLACE_PTHREAD_RWLOCK_INIT=0;
+  REPLACE_PTHREAD_RWLOCKATTR_INIT=0;
+  REPLACE_PTHREAD_RWLOCKATTR_DESTROY=0;
+  REPLACE_PTHREAD_RWLOCK_RDLOCK=0;
+  REPLACE_PTHREAD_RWLOCK_WRLOCK=0;
+  REPLACE_PTHREAD_RWLOCK_TRYRDLOCK=0;
+  REPLACE_PTHREAD_RWLOCK_TRYWRLOCK=0;
+  REPLACE_PTHREAD_RWLOCK_TIMEDRDLOCK=0;
+  REPLACE_PTHREAD_RWLOCK_TIMEDWRLOCK=0;
+  REPLACE_PTHREAD_RWLOCK_UNLOCK=0;
+  REPLACE_PTHREAD_RWLOCK_DESTROY=0;
+  REPLACE_PTHREAD_COND_INIT=0;
+  REPLACE_PTHREAD_CONDATTR_INIT=0;
+  REPLACE_PTHREAD_CONDATTR_DESTROY=0;
+  REPLACE_PTHREAD_COND_WAIT=0;
+  REPLACE_PTHREAD_COND_TIMEDWAIT=0;
+  REPLACE_PTHREAD_COND_SIGNAL=0;
+  REPLACE_PTHREAD_COND_BROADCAST=0;
+  REPLACE_PTHREAD_COND_DESTROY=0;
+  REPLACE_PTHREAD_KEY_CREATE=0;
+  REPLACE_PTHREAD_SETSPECIFIC=0;
+  REPLACE_PTHREAD_GETSPECIFIC=0;
+  REPLACE_PTHREAD_KEY_DELETE=0;
+  REPLACE_PTHREAD_SPIN_INIT=0;
+  REPLACE_PTHREAD_SPIN_LOCK=0;
+  REPLACE_PTHREAD_SPIN_TRYLOCK=0;
+  REPLACE_PTHREAD_SPIN_UNLOCK=0;
+  REPLACE_PTHREAD_SPIN_DESTROY=0;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_pthread_h='<'pthread.h'>'
+     else
+       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <pthread.h>" >&5
+printf %s "checking absolute name of <pthread.h>... " >&6; }
+if test ${gl_cv_next_pthread_h+y}
 then :
-  printf "%s\n" "#define HAVE_WINSOCK2_H 1" >>confdefs.h
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+             if test $ac_cv_header_pthread_h = yes; then
+
+
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <pthread.h>
+_ACEOF
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
+
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'pthread.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+
+        gl_cv_absolute_pthread_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
+
+          gl_header=$gl_cv_absolute_pthread_h
+          gl_cv_next_pthread_h='"'$gl_header'"'
+          else
+               gl_cv_next_pthread_h='<'pthread.h'>'
+             fi
 
+          ;;
+esac
 fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_pthread_h" >&5
+printf "%s\n" "$gl_cv_next_pthread_h" >&6; }
+     fi
+     NEXT_PTHREAD_H=$gl_cv_next_pthread_h
+
+     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
+       gl_next_as_first_directive='<'pthread.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_pthread_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_PTHREAD_H=$gl_next_as_first_directive
+
+
+
+
+  if test $ac_cv_header_pthread_h = yes; then
+    HAVE_PTHREAD_H=1
+
+
+      if { case "$host_os" in mingw*) true;; *) false;; esac; } \
+         && test $gl_threads_api = windows; then
+        HAVE_PTHREAD_H=0
+      fi
 
-  fi
-  if test "$ac_cv_header_winsock2_h" = yes; then
-    HAVE_WINSOCK2_H=1
-    UNISTD_H_HAVE_WINSOCK2_H=1
-    SYS_IOCTL_H_HAVE_WINSOCK2_H=1
   else
-    HAVE_WINSOCK2_H=0
+    HAVE_PTHREAD_H=0
   fi
 
-   LIBSOCKET=
-  if test $HAVE_WINSOCK2_H = 1; then
-                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for WSAStartup" >&5
-printf %s "checking for WSAStartup... " >&6; }
-if test ${gl_cv_func_wsastartup+y}
+
+  ac_fn_c_check_type "$LINENO" "pthread_t" "ac_cv_type_pthread_t" "$ac_includes_default
+     #if HAVE_PTHREAD_H
+      #include <pthread.h>
+     #endif
+"
+if test "x$ac_cv_type_pthread_t" = xyes
 then :
-  printf %s "(cached) " >&6
-else $as_nop
 
-       gl_save_LIBS="$LIBS"
-       LIBS="$LIBS -lws2_32"
-       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+printf "%s\n" "#define HAVE_PTHREAD_T 1" >>confdefs.h
+
+
+fi
+ac_fn_c_check_type "$LINENO" "pthread_spinlock_t" "ac_cv_type_pthread_spinlock_t" "$ac_includes_default
+     #if HAVE_PTHREAD_H
+      #include <pthread.h>
+     #endif
+"
+if test "x$ac_cv_type_pthread_spinlock_t" = xyes
+then :
+
+printf "%s\n" "#define HAVE_PTHREAD_SPINLOCK_T 1" >>confdefs.h
+
+
+fi
+
+  if test $ac_cv_type_pthread_t != yes; then
+    HAVE_PTHREAD_T=0
+  fi
+  if test $ac_cv_type_pthread_spinlock_t != yes; then
+    HAVE_PTHREAD_SPINLOCK_T=0
+  fi
+
+
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PTHREAD_CREATE_DETACHED" >&5
+printf %s "checking for PTHREAD_CREATE_DETACHED... " >&6; }
+if test ${gl_cv_const_PTHREAD_CREATE_DETACHED+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
+#include <pthread.h>
+            int x = PTHREAD_CREATE_DETACHED;
 
-#ifdef HAVE_WINSOCK2_H
-# include <winsock2.h>
-#endif
 int
 main (void)
 {
 
-            WORD wVersionRequested = MAKEWORD(1, 1);
-            WSADATA wsaData;
-            int err = WSAStartup(wVersionRequested, &wsaData);
-            WSACleanup ();
-
   ;
   return 0;
 }
-
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
+if ac_fn_c_try_compile "$LINENO"
 then :
-  gl_cv_func_wsastartup=yes
-else $as_nop
-  gl_cv_func_wsastartup=no
+  gl_cv_const_PTHREAD_CREATE_DETACHED=yes
+else case e in #(
+  e) gl_cv_const_PTHREAD_CREATE_DETACHED=no ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
-    conftest$ac_exeext conftest.$ac_ext
-       LIBS="$gl_save_LIBS"
-
+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_func_wsastartup" >&5
-printf "%s\n" "$gl_cv_func_wsastartup" >&6; }
-    if test "$gl_cv_func_wsastartup" = "yes"; then
-
-printf "%s\n" "#define WINDOWS_SOCKETS 1" >>confdefs.h
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_const_PTHREAD_CREATE_DETACHED" >&5
+printf "%s\n" "$gl_cv_const_PTHREAD_CREATE_DETACHED" >&6; }
+  if test $gl_cv_const_PTHREAD_CREATE_DETACHED != yes; then
+    HAVE_PTHREAD_CREATE_DETACHED=0
+  fi
 
-      LIBSOCKET='-lws2_32'
-    fi
-  else
-                                    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing setsockopt" >&5
-printf %s "checking for library containing setsockopt... " >&6; }
-if test ${gl_cv_lib_socket+y}
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PTHREAD_MUTEX_RECURSIVE" >&5
+printf %s "checking for PTHREAD_MUTEX_RECURSIVE... " >&6; }
+if test ${gl_cv_const_PTHREAD_MUTEX_RECURSIVE+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
-      gl_cv_lib_socket=
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-extern
-#ifdef __cplusplus
-"C"
-#endif
-char setsockopt();
+#include <pthread.h>
+            int x = PTHREAD_MUTEX_RECURSIVE;
+
 int
 main (void)
 {
-setsockopt();
+
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
+if ac_fn_c_try_compile "$LINENO"
 then :
-
-else $as_nop
-  gl_save_LIBS="$LIBS"
-         LIBS="$gl_save_LIBS -lsocket"
-         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-extern
-#ifdef __cplusplus
-"C"
-#endif
-char setsockopt();
-int
-main (void)
-{
-setsockopt();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
-  gl_cv_lib_socket="-lsocket"
+  gl_cv_const_PTHREAD_MUTEX_RECURSIVE=yes
+else case e in #(
+  e) gl_cv_const_PTHREAD_MUTEX_RECURSIVE=no ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
-    conftest$ac_exeext conftest.$ac_ext
-         if test -z "$gl_cv_lib_socket"; then
-           LIBS="$gl_save_LIBS -lnetwork"
-           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+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_const_PTHREAD_MUTEX_RECURSIVE" >&5
+printf "%s\n" "$gl_cv_const_PTHREAD_MUTEX_RECURSIVE" >&6; }
+  if test $gl_cv_const_PTHREAD_MUTEX_RECURSIVE != yes; then
+    HAVE_PTHREAD_MUTEX_RECURSIVE=0
+  fi
+
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PTHREAD_MUTEX_ROBUST" >&5
+printf %s "checking for PTHREAD_MUTEX_ROBUST... " >&6; }
+if test ${gl_cv_const_PTHREAD_MUTEX_ROBUST+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-extern
-#ifdef __cplusplus
-"C"
-#endif
-char setsockopt();
+#include <pthread.h>
+            int x = PTHREAD_MUTEX_ROBUST;
+
 int
 main (void)
 {
-setsockopt();
+
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
+if ac_fn_c_try_compile "$LINENO"
 then :
-  gl_cv_lib_socket="-lnetwork"
+  gl_cv_const_PTHREAD_MUTEX_ROBUST=yes
+else case e in #(
+  e) gl_cv_const_PTHREAD_MUTEX_ROBUST=no ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
-    conftest$ac_exeext conftest.$ac_ext
-           if test -z "$gl_cv_lib_socket"; then
-             LIBS="$gl_save_LIBS -lnet"
-             cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+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_const_PTHREAD_MUTEX_ROBUST" >&5
+printf "%s\n" "$gl_cv_const_PTHREAD_MUTEX_ROBUST" >&6; }
+  if test $gl_cv_const_PTHREAD_MUTEX_ROBUST != yes; then
+    HAVE_PTHREAD_MUTEX_ROBUST=0
+  fi
+
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PTHREAD_PROCESS_SHARED" >&5
+printf %s "checking for PTHREAD_PROCESS_SHARED... " >&6; }
+if test ${gl_cv_const_PTHREAD_PROCESS_SHARED+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-extern
-#ifdef __cplusplus
-"C"
-#endif
-char setsockopt();
+#include <pthread.h>
+            int x = PTHREAD_PROCESS_SHARED;
+
 int
 main (void)
 {
-setsockopt();
+
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
+if ac_fn_c_try_compile "$LINENO"
 then :
-  gl_cv_lib_socket="-lnet"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
-    conftest$ac_exeext conftest.$ac_ext
-           fi
-         fi
-         LIBS="$gl_save_LIBS"
-
+  gl_cv_const_PTHREAD_PROCESS_SHARED=yes
+else case e in #(
+  e) gl_cv_const_PTHREAD_PROCESS_SHARED=no ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
-    conftest$ac_exeext conftest.$ac_ext
-      if test -z "$gl_cv_lib_socket"; then
-        gl_cv_lib_socket="none needed"
-      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_lib_socket" >&5
-printf "%s\n" "$gl_cv_lib_socket" >&6; }
-    if test "$gl_cv_lib_socket" != "none needed"; then
-      LIBSOCKET="$gl_cv_lib_socket"
-    fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_const_PTHREAD_PROCESS_SHARED" >&5
+printf "%s\n" "$gl_cv_const_PTHREAD_PROCESS_SHARED" >&6; }
+  if test $gl_cv_const_PTHREAD_PROCESS_SHARED != yes; then
+    HAVE_PTHREAD_PROCESS_SHARED=0
   fi
 
 
@@ -24410,314 +26768,65 @@ printf "%s\n" "$gl_cv_lib_socket" >&6; }
 
 
 
-  :
-
-
-
-
-
-
-  if test "$ac_cv_header_winsock2_h" = yes; then
-    REPLACE_SELECT=1
-  else
-
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether select supports a 0 argument" >&5
-printf %s "checking whether select supports a 0 argument... " >&6; }
-if test ${gl_cv_func_select_supports0+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-
-        if test "$cross_compiling" = yes
-then :
-
-           case "$host_os" in
-                       # Guess no on Interix.
-             interix*) gl_cv_func_select_supports0="guessing no";;
-                       # Guess yes otherwise.
-             *)        gl_cv_func_select_supports0="guessing yes";;
-           esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+    LIB_PTHREAD="$LIBPMULTITHREAD"
 
-#include <sys/types.h>
-#include <sys/time.h>
-#if HAVE_SYS_SELECT_H
-#include <sys/select.h>
-#endif
-int main ()
-{
-  struct timeval timeout;
-  timeout.tv_sec = 0;
-  timeout.tv_usec = 5;
-  return select (0, (fd_set *)0, (fd_set *)0, (fd_set *)0, &timeout) < 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
-  gl_cv_func_select_supports0=yes
-else $as_nop
-  gl_cv_func_select_supports0=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
 
 
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_select_supports0" >&5
-printf "%s\n" "$gl_cv_func_select_supports0" >&6; }
-    case "$gl_cv_func_select_supports0" in
-      *yes) ;;
-      *) REPLACE_SELECT=1 ;;
-    esac
 
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether select detects invalid fds" >&5
-printf %s "checking whether select detects invalid fds... " >&6; }
-if test ${gl_cv_func_select_detects_ebadf+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+  GL_GNULIB_PTHREAD_THREAD=0
 
-        if test "$cross_compiling" = yes
-then :
 
-           case "$host_os" in
-                             # Guess yes on Linux systems.
-            linux-* | linux) gl_cv_func_select_detects_ebadf="guessing yes" ;;
-                             # Guess yes on glibc systems.
-            *-gnu* | gnu*)   gl_cv_func_select_detects_ebadf="guessing yes" ;;
-                             # If we don't know, obey --enable-cross-guesses.
-            *)               gl_cv_func_select_detects_ebadf="$gl_cross_guess_normal" ;;
-           esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+  GL_GNULIB_PTHREAD_ONCE=0
 
-#include <sys/types.h>
-#include <sys/time.h>
-#if HAVE_SYS_SELECT_H
-# include <sys/select.h>
-#endif
-#include <unistd.h>
-#include <errno.h>
 
 
-$gl_mda_defines
+  GL_GNULIB_PTHREAD_MUTEX=0
 
-int
-main (void)
-{
 
-  fd_set set;
-  dup2(0, 16);
-  FD_ZERO(&set);
-  FD_SET(16, &set);
-  close(16);
-  struct timeval timeout;
-  timeout.tv_sec = 0;
-  timeout.tv_usec = 5;
-  return select (17, &set, NULL, NULL, &timeout) != -1 || errno != EBADF;
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
-  gl_cv_func_select_detects_ebadf=yes
-else $as_nop
-  gl_cv_func_select_detects_ebadf=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
+  GL_GNULIB_PTHREAD_RWLOCK=0
 
 
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_select_detects_ebadf" >&5
-printf "%s\n" "$gl_cv_func_select_detects_ebadf" >&6; }
-    case $gl_cv_func_select_detects_ebadf in
-      *yes) ;;
-      *) REPLACE_SELECT=1 ;;
-    esac
-  fi
 
-    LIB_SELECT="$LIBSOCKET"
-  if test $REPLACE_SELECT = 1; then
-    case "$host_os" in
-      mingw*)
-                                cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+  GL_GNULIB_PTHREAD_COND=0
 
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-int
-main ()
-{
-  MsgWaitForMultipleObjects (0, NULL, 0, 0, 0);
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
 
-else $as_nop
-  LIB_SELECT="$LIB_SELECT -luser32"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
-    conftest$ac_exeext conftest.$ac_ext
-        ;;
-    esac
-  fi
 
+  GL_GNULIB_PTHREAD_TSS=0
 
 
 
+  GL_GNULIB_PTHREAD_SPIN=0
 
 
 
+  GL_GNULIB_PTHREAD_MUTEX_TIMEDLOCK=0
 
 
-  if test $ac_cv_have_decl_strerror_r = no; then
-    HAVE_DECL_STRERROR_R=0
-  fi
 
-  if test $ac_cv_func_strerror_r = yes; then
-    if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then
-      if test $gl_cv_func_strerror_r_posix_signature = yes; then
-        case "$gl_cv_func_strerror_r_works" in
-                    *no) REPLACE_STRERROR_R=1 ;;
-        esac
-      else
-                REPLACE_STRERROR_R=1
-      fi
-    else
-                  REPLACE_STRERROR_R=1
-    fi
-  fi
 
 
+    HAVE_SCHED_YIELD=1;
+  REPLACE_SCHED_YIELD=0;
 
-    HAVE_PTHREAD_T=1;
-  HAVE_PTHREAD_SPINLOCK_T=1;
-  HAVE_PTHREAD_CREATE_DETACHED=1;
-  HAVE_PTHREAD_MUTEX_RECURSIVE=1;
-  HAVE_PTHREAD_MUTEX_ROBUST=1;
-  HAVE_PTHREAD_PROCESS_SHARED=1;
-  HAVE_PTHREAD_CREATE=1;
-  HAVE_PTHREAD_ATTR_INIT=1;
-  HAVE_PTHREAD_ATTR_GETDETACHSTATE=1;
-  HAVE_PTHREAD_ATTR_SETDETACHSTATE=1;
-  HAVE_PTHREAD_ATTR_DESTROY=1;
-  HAVE_PTHREAD_SELF=1;
-  HAVE_PTHREAD_EQUAL=1;
-  HAVE_PTHREAD_DETACH=1;
-  HAVE_PTHREAD_JOIN=1;
-  HAVE_PTHREAD_EXIT=1;
-  HAVE_PTHREAD_ONCE=1;
-  HAVE_PTHREAD_MUTEX_INIT=1;
-  HAVE_PTHREAD_MUTEXATTR_INIT=1;
-  HAVE_PTHREAD_MUTEXATTR_GETTYPE=1;
-  HAVE_PTHREAD_MUTEXATTR_SETTYPE=1;
-  HAVE_PTHREAD_MUTEXATTR_GETROBUST=1;
-  HAVE_PTHREAD_MUTEXATTR_SETROBUST=1;
-  HAVE_PTHREAD_MUTEXATTR_DESTROY=1;
-  HAVE_PTHREAD_MUTEX_LOCK=1;
-  HAVE_PTHREAD_MUTEX_TRYLOCK=1;
-  HAVE_PTHREAD_MUTEX_TIMEDLOCK=1;
-  HAVE_PTHREAD_MUTEX_UNLOCK=1;
-  HAVE_PTHREAD_MUTEX_DESTROY=1;
-  HAVE_PTHREAD_RWLOCK_INIT=1;
-  HAVE_PTHREAD_RWLOCKATTR_INIT=1;
-  HAVE_PTHREAD_RWLOCKATTR_DESTROY=1;
-  HAVE_PTHREAD_RWLOCK_RDLOCK=1;
-  HAVE_PTHREAD_RWLOCK_WRLOCK=1;
-  HAVE_PTHREAD_RWLOCK_TRYRDLOCK=1;
-  HAVE_PTHREAD_RWLOCK_TRYWRLOCK=1;
-  HAVE_PTHREAD_RWLOCK_TIMEDRDLOCK=1;
-  HAVE_PTHREAD_RWLOCK_TIMEDWRLOCK=1;
-  HAVE_PTHREAD_RWLOCK_UNLOCK=1;
-  HAVE_PTHREAD_RWLOCK_DESTROY=1;
-  HAVE_PTHREAD_COND_INIT=1;
-  HAVE_PTHREAD_CONDATTR_INIT=1;
-  HAVE_PTHREAD_CONDATTR_DESTROY=1;
-  HAVE_PTHREAD_COND_WAIT=1;
-  HAVE_PTHREAD_COND_TIMEDWAIT=1;
-  HAVE_PTHREAD_COND_SIGNAL=1;
-  HAVE_PTHREAD_COND_BROADCAST=1;
-  HAVE_PTHREAD_COND_DESTROY=1;
-  HAVE_PTHREAD_KEY_CREATE=1;
-  HAVE_PTHREAD_SETSPECIFIC=1;
-  HAVE_PTHREAD_GETSPECIFIC=1;
-  HAVE_PTHREAD_KEY_DELETE=1;
-  HAVE_PTHREAD_SPIN_INIT=1;
-  HAVE_PTHREAD_SPIN_LOCK=1;
-  HAVE_PTHREAD_SPIN_TRYLOCK=1;
-  HAVE_PTHREAD_SPIN_UNLOCK=1;
-  HAVE_PTHREAD_SPIN_DESTROY=1;
-  REPLACE_PTHREAD_CREATE=0;
-  REPLACE_PTHREAD_ATTR_INIT=0;
-  REPLACE_PTHREAD_ATTR_GETDETACHSTATE=0;
-  REPLACE_PTHREAD_ATTR_SETDETACHSTATE=0;
-  REPLACE_PTHREAD_ATTR_DESTROY=0;
-  REPLACE_PTHREAD_SELF=0;
-  REPLACE_PTHREAD_EQUAL=0;
-  REPLACE_PTHREAD_DETACH=0;
-  REPLACE_PTHREAD_JOIN=0;
-  REPLACE_PTHREAD_EXIT=0;
-  REPLACE_PTHREAD_ONCE=0;
-  REPLACE_PTHREAD_MUTEX_INIT=0;
-  REPLACE_PTHREAD_MUTEXATTR_INIT=0;
-  REPLACE_PTHREAD_MUTEXATTR_GETTYPE=0;
-  REPLACE_PTHREAD_MUTEXATTR_SETTYPE=0;
-  REPLACE_PTHREAD_MUTEXATTR_GETROBUST=0;
-  REPLACE_PTHREAD_MUTEXATTR_SETROBUST=0;
-  REPLACE_PTHREAD_MUTEXATTR_DESTROY=0;
-  REPLACE_PTHREAD_MUTEX_LOCK=0;
-  REPLACE_PTHREAD_MUTEX_TRYLOCK=0;
-  REPLACE_PTHREAD_MUTEX_TIMEDLOCK=0;
-  REPLACE_PTHREAD_MUTEX_UNLOCK=0;
-  REPLACE_PTHREAD_MUTEX_DESTROY=0;
-  REPLACE_PTHREAD_RWLOCK_INIT=0;
-  REPLACE_PTHREAD_RWLOCKATTR_INIT=0;
-  REPLACE_PTHREAD_RWLOCKATTR_DESTROY=0;
-  REPLACE_PTHREAD_RWLOCK_RDLOCK=0;
-  REPLACE_PTHREAD_RWLOCK_WRLOCK=0;
-  REPLACE_PTHREAD_RWLOCK_TRYRDLOCK=0;
-  REPLACE_PTHREAD_RWLOCK_TRYWRLOCK=0;
-  REPLACE_PTHREAD_RWLOCK_TIMEDRDLOCK=0;
-  REPLACE_PTHREAD_RWLOCK_TIMEDWRLOCK=0;
-  REPLACE_PTHREAD_RWLOCK_UNLOCK=0;
-  REPLACE_PTHREAD_RWLOCK_DESTROY=0;
-  REPLACE_PTHREAD_COND_INIT=0;
-  REPLACE_PTHREAD_CONDATTR_INIT=0;
-  REPLACE_PTHREAD_CONDATTR_DESTROY=0;
-  REPLACE_PTHREAD_COND_WAIT=0;
-  REPLACE_PTHREAD_COND_TIMEDWAIT=0;
-  REPLACE_PTHREAD_COND_SIGNAL=0;
-  REPLACE_PTHREAD_COND_BROADCAST=0;
-  REPLACE_PTHREAD_COND_DESTROY=0;
-  REPLACE_PTHREAD_KEY_CREATE=0;
-  REPLACE_PTHREAD_SETSPECIFIC=0;
-  REPLACE_PTHREAD_GETSPECIFIC=0;
-  REPLACE_PTHREAD_KEY_DELETE=0;
-  REPLACE_PTHREAD_SPIN_INIT=0;
-  REPLACE_PTHREAD_SPIN_LOCK=0;
-  REPLACE_PTHREAD_SPIN_TRYLOCK=0;
-  REPLACE_PTHREAD_SPIN_UNLOCK=0;
-  REPLACE_PTHREAD_SPIN_DESTROY=0;
 
 
 
 
 
 
+  ac_fn_c_check_header_compile "$LINENO" "sched.h" "ac_cv_header_sched_h" "#if HAVE_SYS_CDEFS_H
+       #include <sys/cdefs.h>
+      #endif
 
+"
+if test "x$ac_cv_header_sched_h" = xyes
+then :
+  printf "%s\n" "#define HAVE_SCHED_H 1" >>confdefs.h
 
+fi
 
 
 
@@ -24728,23 +26837,20 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \
 
 
      if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_pthread_h='<'pthread.h'>'
+       gl_cv_next_sched_h='<'sched.h'>'
      else
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <pthread.h>" >&5
-printf %s "checking absolute name of <pthread.h>... " >&6; }
-if test ${gl_cv_next_pthread_h+y}
+       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <sched.h>" >&5
+printf %s "checking absolute name of <sched.h>... " >&6; }
+if test ${gl_cv_next_sched_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
-             if test $ac_cv_header_pthread_h = yes; then
-
-
+else case e in #(
+  e)
 
 
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <pthread.h>
+#include <sched.h>
 _ACEOF
                 case "$host_os" in
     aix*) gl_absname_cpp="$ac_cpp -C" ;;
@@ -24760,7 +26866,7 @@ _ACEOF
       ;;
   esac
       gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-  gl_header_literal_regex=`echo 'pthread.h' \
+  gl_header_literal_regex=`echo 'sched.h' \
                            | sed -e "$gl_make_literal_regex_sed"`
   gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
       s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
@@ -24769,215 +26875,289 @@ _ACEOF
       q
     }'
 
-        gl_cv_absolute_pthread_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+        gl_cv_absolute_sched_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
   sed -n "$gl_absolute_header_sed"`
 
-           gl_header=$gl_cv_absolute_pthread_h
-           gl_cv_next_pthread_h='"'$gl_header'"'
-          else
-               gl_cv_next_pthread_h='<'pthread.h'>'
-             fi
-
+          gl_header=$gl_cv_absolute_sched_h
+          gl_cv_next_sched_h='"'$gl_header'"'
 
+          ;;
+esac
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_pthread_h" >&5
-printf "%s\n" "$gl_cv_next_pthread_h" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sched_h" >&5
+printf "%s\n" "$gl_cv_next_sched_h" >&6; }
      fi
-     NEXT_PTHREAD_H=$gl_cv_next_pthread_h
+     NEXT_SCHED_H=$gl_cv_next_sched_h
 
      if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
        # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
-       gl_next_as_first_directive='<'pthread.h'>'
+       gl_next_as_first_directive='<'sched.h'>'
      else
        # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_pthread_h
+       gl_next_as_first_directive=$gl_cv_next_sched_h
      fi
-     NEXT_AS_FIRST_DIRECTIVE_PTHREAD_H=$gl_next_as_first_directive
-
-
+     NEXT_AS_FIRST_DIRECTIVE_SCHED_H=$gl_next_as_first_directive
 
 
-  if test $ac_cv_header_pthread_h = yes; then
-    HAVE_PTHREAD_H=1
 
 
-      if { case "$host_os" in mingw*) true;; *) false;; esac; } \
-         && test $gl_threads_api = windows; then
-        HAVE_PTHREAD_H=0
-      fi
 
+  if test "$ac_cv_header_sched_h" = yes; then
+    HAVE_SCHED_H=1
   else
-    HAVE_PTHREAD_H=0
+    HAVE_SCHED_H=0
   fi
 
 
-  ac_fn_c_check_type "$LINENO" "pthread_t" "ac_cv_type_pthread_t" "$ac_includes_default
-     #if HAVE_PTHREAD_H
-      #include <pthread.h>
-     #endif
+  if test "$HAVE_SCHED_H" = 1; then
+    ac_fn_c_check_type "$LINENO" "struct sched_param" "ac_cv_type_struct_sched_param" "#if HAVE_SYS_CDEFS_H
+         #include <sys/cdefs.h>
+        #endif
+        #include <sched.h>
+
 "
-if test "x$ac_cv_type_pthread_t" = xyes
+if test "x$ac_cv_type_struct_sched_param" = xyes
 then :
-
-printf "%s\n" "#define HAVE_PTHREAD_T 1" >>confdefs.h
-
-
+  HAVE_STRUCT_SCHED_PARAM=1
+else case e in #(
+  e) HAVE_STRUCT_SCHED_PARAM=0 ;;
+esac
 fi
-ac_fn_c_check_type "$LINENO" "pthread_spinlock_t" "ac_cv_type_pthread_spinlock_t" "$ac_includes_default
-     #if HAVE_PTHREAD_H
-      #include <pthread.h>
-     #endif
+
+  else
+    HAVE_STRUCT_SCHED_PARAM=0
+    case "$host_os" in
+      os2*)
+                ac_fn_c_check_type "$LINENO" "struct sched_param" "ac_cv_type_struct_sched_param" "#include <spawn.h>
 "
-if test "x$ac_cv_type_pthread_spinlock_t" = xyes
+if test "x$ac_cv_type_struct_sched_param" = xyes
 then :
+  HAVE_STRUCT_SCHED_PARAM=1
+fi
 
-printf "%s\n" "#define HAVE_PTHREAD_SPINLOCK_T 1" >>confdefs.h
-
-
+        ;;
+      vms)
+                ac_fn_c_check_type "$LINENO" "struct sched_param" "ac_cv_type_struct_sched_param" "#include <pthread.h>
+"
+if test "x$ac_cv_type_struct_sched_param" = xyes
+then :
+  HAVE_STRUCT_SCHED_PARAM=1
 fi
 
-  if test $ac_cv_type_pthread_t != yes; then
-    HAVE_PTHREAD_T=0
+        ;;
+    esac
   fi
-  if test $ac_cv_type_pthread_spinlock_t != yes; then
-    HAVE_PTHREAD_SPINLOCK_T=0
+
+
+  if test "$ac_cv_header_sys_cdefs_h" = yes; then
+    HAVE_SYS_CDEFS_H=1
+  else
+    HAVE_SYS_CDEFS_H=0
   fi
 
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PTHREAD_CREATE_DETACHED" >&5
-printf %s "checking for PTHREAD_CREATE_DETACHED... " >&6; }
-if test ${gl_cv_const_PTHREAD_CREATE_DETACHED+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <pthread.h>
-            int x = PTHREAD_CREATE_DETACHED;
 
-int
-main (void)
-{
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  gl_cv_const_PTHREAD_CREATE_DETACHED=yes
-else $as_nop
-  gl_cv_const_PTHREAD_CREATE_DETACHED=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+
+
+
+
+
+
+  GL_GNULIB_SCHED_YIELD=0
+
+
+
+
+
+
+
+
+  if test $ac_cv_header_sys_socket_h != yes; then
+                    ac_fn_c_check_header_compile "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default"
+if test "x$ac_cv_header_winsock2_h" = xyes
+then :
+  printf "%s\n" "#define HAVE_WINSOCK2_H 1" >>confdefs.h
 
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_const_PTHREAD_CREATE_DETACHED" >&5
-printf "%s\n" "$gl_cv_const_PTHREAD_CREATE_DETACHED" >&6; }
-  if test $gl_cv_const_PTHREAD_CREATE_DETACHED != yes; then
-    HAVE_PTHREAD_CREATE_DETACHED=0
+
+  fi
+  if test "$ac_cv_header_winsock2_h" = yes; then
+    HAVE_WINSOCK2_H=1
+    UNISTD_H_HAVE_WINSOCK2_H=1
+    SYS_IOCTL_H_HAVE_WINSOCK2_H=1
+  else
+    HAVE_WINSOCK2_H=0
   fi
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PTHREAD_MUTEX_RECURSIVE" >&5
-printf %s "checking for PTHREAD_MUTEX_RECURSIVE... " >&6; }
-if test ${gl_cv_const_PTHREAD_MUTEX_RECURSIVE+y}
+   LIBSOCKET=
+  if test $HAVE_WINSOCK2_H = 1; then
+                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for WSAStartup" >&5
+printf %s "checking for WSAStartup... " >&6; }
+if test ${gl_cv_func_wsastartup+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e)
+       gl_save_LIBS="$LIBS"
+       LIBS="$LIBS -lws2_32"
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <pthread.h>
-            int x = PTHREAD_MUTEX_RECURSIVE;
 
+#ifdef HAVE_WINSOCK2_H
+# include <winsock2.h>
+#endif
 int
 main (void)
 {
 
+            WORD wVersionRequested = MAKEWORD(1, 1);
+            WSADATA wsaData;
+            int err = WSAStartup(wVersionRequested, &wsaData);
+            WSACleanup ();
+
   ;
   return 0;
 }
+
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
+if ac_fn_c_try_link "$LINENO"
 then :
-  gl_cv_const_PTHREAD_MUTEX_RECURSIVE=yes
-else $as_nop
-  gl_cv_const_PTHREAD_MUTEX_RECURSIVE=no
+  gl_cv_func_wsastartup=yes
+else case e in #(
+  e) gl_cv_func_wsastartup=no ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+    conftest$ac_exeext conftest.$ac_ext
+       LIBS="$gl_save_LIBS"
+       ;;
+esac
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_const_PTHREAD_MUTEX_RECURSIVE" >&5
-printf "%s\n" "$gl_cv_const_PTHREAD_MUTEX_RECURSIVE" >&6; }
-  if test $gl_cv_const_PTHREAD_MUTEX_RECURSIVE != yes; then
-    HAVE_PTHREAD_MUTEX_RECURSIVE=0
-  fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_wsastartup" >&5
+printf "%s\n" "$gl_cv_func_wsastartup" >&6; }
+    if test "$gl_cv_func_wsastartup" = "yes"; then
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PTHREAD_MUTEX_ROBUST" >&5
-printf %s "checking for PTHREAD_MUTEX_ROBUST... " >&6; }
-if test ${gl_cv_const_PTHREAD_MUTEX_ROBUST+y}
+printf "%s\n" "#define WINDOWS_SOCKETS 1" >>confdefs.h
+
+      LIBSOCKET='-lws2_32'
+    fi
+  else
+                                    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing setsockopt" >&5
+printf %s "checking for library containing setsockopt... " >&6; }
+if test ${gl_cv_lib_socket+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e)
+      gl_cv_lib_socket=
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <pthread.h>
-            int x = PTHREAD_MUTEX_ROBUST;
-
+extern
+#ifdef __cplusplus
+"C"
+#endif
+char setsockopt();
 int
 main (void)
 {
-
+setsockopt();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
+if ac_fn_c_try_link "$LINENO"
 then :
-  gl_cv_const_PTHREAD_MUTEX_ROBUST=yes
-else $as_nop
-  gl_cv_const_PTHREAD_MUTEX_ROBUST=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
 
+else case e in #(
+  e) gl_save_LIBS="$LIBS"
+         LIBS="$gl_save_LIBS -lsocket"
+         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+extern
+#ifdef __cplusplus
+"C"
+#endif
+char setsockopt();
+int
+main (void)
+{
+setsockopt();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+  gl_cv_lib_socket="-lsocket"
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_const_PTHREAD_MUTEX_ROBUST" >&5
-printf "%s\n" "$gl_cv_const_PTHREAD_MUTEX_ROBUST" >&6; }
-  if test $gl_cv_const_PTHREAD_MUTEX_ROBUST != yes; then
-    HAVE_PTHREAD_MUTEX_ROBUST=0
-  fi
-
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PTHREAD_PROCESS_SHARED" >&5
-printf %s "checking for PTHREAD_PROCESS_SHARED... " >&6; }
-if test ${gl_cv_const_PTHREAD_PROCESS_SHARED+y}
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+    conftest$ac_exeext conftest.$ac_ext
+         if test -z "$gl_cv_lib_socket"; then
+           LIBS="$gl_save_LIBS -lnetwork"
+           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+extern
+#ifdef __cplusplus
+"C"
+#endif
+char setsockopt();
+int
+main (void)
+{
+setsockopt();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
 then :
-  printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  gl_cv_lib_socket="-lnetwork"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+    conftest$ac_exeext conftest.$ac_ext
+           if test -z "$gl_cv_lib_socket"; then
+             LIBS="$gl_save_LIBS -lnet"
+             cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <pthread.h>
-            int x = PTHREAD_PROCESS_SHARED;
-
+extern
+#ifdef __cplusplus
+"C"
+#endif
+char setsockopt();
 int
 main (void)
 {
-
+setsockopt();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
+if ac_fn_c_try_link "$LINENO"
 then :
-  gl_cv_const_PTHREAD_PROCESS_SHARED=yes
-else $as_nop
-  gl_cv_const_PTHREAD_PROCESS_SHARED=no
+  gl_cv_lib_socket="-lnet"
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+    conftest$ac_exeext conftest.$ac_ext
+           fi
+         fi
+         LIBS="$gl_save_LIBS"
+         ;;
+esac
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_const_PTHREAD_PROCESS_SHARED" >&5
-printf "%s\n" "$gl_cv_const_PTHREAD_PROCESS_SHARED" >&6; }
-  if test $gl_cv_const_PTHREAD_PROCESS_SHARED != yes; then
-    HAVE_PTHREAD_PROCESS_SHARED=0
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+    conftest$ac_exeext conftest.$ac_ext
+      if test -z "$gl_cv_lib_socket"; then
+        gl_cv_lib_socket="none needed"
+      fi
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_lib_socket" >&5
+printf "%s\n" "$gl_cv_lib_socket" >&6; }
+    if test "$gl_cv_lib_socket" != "none needed"; then
+      LIBSOCKET="$gl_cv_lib_socket"
+    fi
   fi
 
 
@@ -24985,226 +27165,563 @@ printf "%s\n" "$gl_cv_const_PTHREAD_PROCESS_SHARED" >&6; }
 
 
 
-
-    LIB_PTHREAD="$LIBPMULTITHREAD"
-
-
-
-
-  GL_GNULIB_PTHREAD_THREAD=0
-
-
-
-  GL_GNULIB_PTHREAD_ONCE=0
-
+  :
 
 
-  GL_GNULIB_PTHREAD_MUTEX=0
 
 
 
-  GL_GNULIB_PTHREAD_RWLOCK=0
 
 
 
-  GL_GNULIB_PTHREAD_COND=0
 
 
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether snprintf returns a byte count as in C99" >&5
+printf %s "checking whether snprintf returns a byte count as in C99... " >&6; }
+if test ${gl_cv_func_snprintf_retval_c99+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+      if test "$cross_compiling" = yes
+then :
+  case "$host_os" in
+                                 # Guess yes on glibc systems.
+           *-gnu* | gnu*)        gl_cv_func_snprintf_retval_c99="guessing yes";;
+                                 # Guess yes on musl systems.
+           *-musl* | midipix*)   gl_cv_func_snprintf_retval_c99="guessing yes";;
+                                 # Guess yes on FreeBSD >= 5.
+           freebsd[1-4].*)       gl_cv_func_snprintf_retval_c99="guessing no";;
+           freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+           midnightbsd*)         gl_cv_func_snprintf_retval_c99="guessing yes";;
+                                 # Guess yes on Mac OS X >= 10.3.
+           darwin[1-6].*)        gl_cv_func_snprintf_retval_c99="guessing no";;
+           darwin*)              gl_cv_func_snprintf_retval_c99="guessing yes";;
+                                 # Guess yes on OpenBSD >= 3.9.
+           openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*)
+                                 gl_cv_func_snprintf_retval_c99="guessing no";;
+           openbsd*)             gl_cv_func_snprintf_retval_c99="guessing yes";;
+                                 # Guess yes on Solaris >= 2.10.
+           solaris2.[1-9][0-9]*) gl_cv_func_printf_sizes_c99="guessing yes";;
+           solaris*)             gl_cv_func_printf_sizes_c99="guessing no";;
+                                 # Guess yes on AIX >= 4.
+           aix[1-3]*)            gl_cv_func_snprintf_retval_c99="guessing no";;
+           aix*)                 gl_cv_func_snprintf_retval_c99="guessing yes";;
+                                 # Guess yes on NetBSD >= 3.
+           netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
+                                 gl_cv_func_snprintf_retval_c99="guessing no";;
+           netbsd*)              gl_cv_func_snprintf_retval_c99="guessing yes";;
+                                 # Guess yes on BeOS.
+           beos*)                gl_cv_func_snprintf_retval_c99="guessing yes";;
+                                 # Guess yes on Android.
+           linux*-android*)      gl_cv_func_snprintf_retval_c99="guessing yes";;
+                                 # Guess yes on MSVC, no on mingw.
+           mingw*)               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-  GL_GNULIB_PTHREAD_TSS=0
+#ifdef _MSC_VER
+ Known
+#endif
 
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP_TRADITIONAL "Known" >/dev/null 2>&1
+then :
+  gl_cv_func_snprintf_retval_c99="guessing yes"
+else case e in #(
+  e) gl_cv_func_snprintf_retval_c99="guessing no" ;;
+esac
+fi
+rm -rf conftest*
 
+                                 ;;
+                                 # If we don't know, obey --enable-cross-guesses.
+           *)                    gl_cv_func_snprintf_retval_c99="$gl_cross_guess_normal";;
+         esac
 
-  GL_GNULIB_PTHREAD_SPIN=0
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+#include <stdio.h>
+#include <string.h>
+#if HAVE_SNPRINTF
+# define my_snprintf snprintf
+#else
+# include <stdarg.h>
+static int my_snprintf (char *buf, int size, const char *format, ...)
+{
+  va_list args;
+  int ret;
+  va_start (args, format);
+  ret = vsnprintf (buf, size, format, args);
+  va_end (args);
+  return ret;
+}
+#endif
+static char buf[100];
+int main ()
+{
+  strcpy (buf, "ABCDEF");
+  if (my_snprintf (buf, 3, "%d %d", 4567, 89) != 7)
+    return 1;
+  if (my_snprintf (buf, 0, "%d %d", 4567, 89) != 7)
+    return 2;
+  if (my_snprintf (NULL, 0, "%d %d", 4567, 89) != 7)
+    return 3;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+  gl_cv_func_snprintf_retval_c99=yes
+else case e in #(
+  e) gl_cv_func_snprintf_retval_c99=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_snprintf_retval_c99" >&5
+printf "%s\n" "$gl_cv_func_snprintf_retval_c99" >&6; }
 
-  GL_GNULIB_PTHREAD_MUTEX_TIMEDLOCK=0
 
 
+     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether printf supports POSIX/XSI format strings with positions" >&5
+printf %s "checking whether printf supports POSIX/XSI format strings with positions... " >&6; }
+if test ${gl_cv_func_printf_positions+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+      if test "$cross_compiling" = yes
+then :
 
+         case "$host_os" in
+           netbsd[1-3]* | netbsdelf[1-3]* | netbsdaout[1-3]* | netbsdcoff[1-3]*)
+                            gl_cv_func_printf_positions="guessing no";;
+           beos*)           gl_cv_func_printf_positions="guessing no";;
+                            # Guess yes on Android.
+           linux*-android*) gl_cv_func_printf_positions="guessing yes";;
+                            # Guess no on native Windows.
+           mingw* | pw*)    gl_cv_func_printf_positions="guessing no";;
+           *)               gl_cv_func_printf_positions="guessing yes";;
+         esac
 
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-    HAVE_SCHED_YIELD=1;
-  REPLACE_SCHED_YIELD=0;
+#include <stdio.h>
+#include <string.h>
+/* The string "%2$d %1$d", with dollar characters protected from the shell's
+   dollar expansion (possibly an autoconf bug).  */
+static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' };
+static char buf[100];
+int main ()
+{
+  sprintf (buf, format, 33, 55);
+  return (strcmp (buf, "55 33") != 0);
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+  gl_cv_func_printf_positions=yes
+else case e in #(
+  e) gl_cv_func_printf_positions=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_printf_positions" >&5
+printf "%s\n" "$gl_cv_func_printf_positions" >&6; }
 
+ac_fn_check_decl "$LINENO" "snprintf" "ac_cv_have_decl_snprintf" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_snprintf" = xyes
+then :
+  ac_have_decl=1
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
+fi
+printf "%s\n" "#define HAVE_DECL_SNPRINTF $ac_have_decl" >>confdefs.h
 
 
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking where to find the exponent in a 'double'" >&5
+printf %s "checking where to find the exponent in a 'double'... " >&6; }
+if test ${gl_cv_cc_double_expbit0+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+      if test "$cross_compiling" = yes
+then :
 
+                                                                      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+#if defined arm || defined __arm || defined __arm__
+  mixed_endianness
+#endif
 
-  ac_fn_c_check_header_compile "$LINENO" "sched.h" "ac_cv_header_sched_h" "#if HAVE_SYS_CDEFS_H
-       #include <sys/cdefs.h>
-      #endif
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP_TRADITIONAL "mixed_endianness" >/dev/null 2>&1
+then :
+  gl_cv_cc_double_expbit0="unknown"
+else case e in #(
+  e)
+                                                         :
+if test ${ac_cv_c_bigendian+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) ac_cv_c_bigendian=unknown
+    # See if we're dealing with a universal compiler.
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifndef __APPLE_CC__
+              not a universal capable compiler
+            #endif
+            typedef int dummy;
 
-"
-if test "x$ac_cv_header_sched_h" = xyes
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
 then :
-  printf "%s\n" "#define HAVE_SCHED_H 1" >>confdefs.h
 
+       # Check for potential -arch flags.  It is not universal unless
+       # there are at least two -arch flags with different values.
+       ac_arch=
+       ac_prev=
+       for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
+        if test -n "$ac_prev"; then
+          case $ac_word in
+            i?86 | x86_64 | ppc | ppc64)
+              if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
+                ac_arch=$ac_word
+              else
+                ac_cv_c_bigendian=universal
+                break
+              fi
+              ;;
+          esac
+          ac_prev=
+        elif test "x$ac_word" = "x-arch"; then
+          ac_prev=arch
+        fi
+       done
 fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+    if test $ac_cv_c_bigendian = unknown; then
+      # See if sys/param.h defines the BYTE_ORDER macro.
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+            #include <sys/param.h>
 
+int
+main (void)
+{
+#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \\
+                    && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \\
+                    && LITTLE_ENDIAN)
+             bogus endian macros
+            #endif
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  # It does; now see whether it defined to BIG_ENDIAN or not.
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+               #include <sys/param.h>
 
+int
+main (void)
+{
+#if BYTE_ORDER != BIG_ENDIAN
+                not big endian
+               #endif
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  ac_cv_c_bigendian=yes
+else case e in #(
+  e) ac_cv_c_bigendian=no ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+    fi
+    if test $ac_cv_c_bigendian = unknown; then
+      # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <limits.h>
 
+int
+main (void)
+{
+#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
+             bogus endian macros
+            #endif
 
-
-
-
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_sched_h='<'sched.h'>'
-     else
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <sched.h>" >&5
-printf %s "checking absolute name of <sched.h>... " >&6; }
-if test ${gl_cv_next_sched_h+y}
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
 then :
-  printf %s "(cached) " >&6
-else $as_nop
-
+  # It does; now see whether it defined to _BIG_ENDIAN or not.
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <limits.h>
 
+int
+main (void)
+{
+#ifndef _BIG_ENDIAN
+                not big endian
+               #endif
 
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sched.h>
+  ;
+  return 0;
+}
 _ACEOF
-                case "$host_os" in
-    aix*) gl_absname_cpp="$ac_cpp -C" ;;
-    *)    gl_absname_cpp="$ac_cpp" ;;
-  esac
-
-  case "$host_os" in
-    mingw*)
-                                          gl_dirsep_regex='[/\\]'
-      ;;
-    *)
-      gl_dirsep_regex='\/'
-      ;;
-  esac
-      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-  gl_header_literal_regex=`echo 'sched.h' \
-                           | sed -e "$gl_make_literal_regex_sed"`
-  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
-      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
-      s|^/[^/]|//&|
-      p
-      q
-    }'
-
-        gl_cv_absolute_sched_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-  sed -n "$gl_absolute_header_sed"`
-
-           gl_header=$gl_cv_absolute_sched_h
-           gl_cv_next_sched_h='"'$gl_header'"'
-
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sched_h" >&5
-printf "%s\n" "$gl_cv_next_sched_h" >&6; }
-     fi
-     NEXT_SCHED_H=$gl_cv_next_sched_h
-
-     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
-       gl_next_as_first_directive='<'sched.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_sched_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_SCHED_H=$gl_next_as_first_directive
-
-
-
-
-
-  if test "$ac_cv_header_sched_h" = yes; then
-    HAVE_SCHED_H=1
-  else
-    HAVE_SCHED_H=0
-  fi
-
-
-  if test "$HAVE_SCHED_H" = 1; then
-    ac_fn_c_check_type "$LINENO" "struct sched_param" "ac_cv_type_struct_sched_param" "#if HAVE_SYS_CDEFS_H
-         #include <sys/cdefs.h>
-        #endif
-        #include <sched.h>
-
-"
-if test "x$ac_cv_type_struct_sched_param" = xyes
+if ac_fn_c_try_compile "$LINENO"
 then :
-  HAVE_STRUCT_SCHED_PARAM=1
-else $as_nop
-  HAVE_STRUCT_SCHED_PARAM=0
+  ac_cv_c_bigendian=yes
+else case e in #(
+  e) ac_cv_c_bigendian=no ;;
+esac
 fi
-
-  else
-    HAVE_STRUCT_SCHED_PARAM=0
-    case "$host_os" in
-      os2*)
-                ac_fn_c_check_type "$LINENO" "struct sched_param" "ac_cv_type_struct_sched_param" "#include <spawn.h>
-"
-if test "x$ac_cv_type_struct_sched_param" = xyes
-then :
-  HAVE_STRUCT_SCHED_PARAM=1
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-
-        ;;
-      vms)
-                ac_fn_c_check_type "$LINENO" "struct sched_param" "ac_cv_type_struct_sched_param" "#include <pthread.h>
-"
-if test "x$ac_cv_type_struct_sched_param" = xyes
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+    fi
+    if test $ac_cv_c_bigendian = unknown; then
+      # Compile a test program.
+      if test "$cross_compiling" = yes
 then :
-  HAVE_STRUCT_SCHED_PARAM=1
+  # Try to guess by grepping values from an object file.
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+unsigned short int ascii_mm[] =
+                 { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
+               unsigned short int ascii_ii[] =
+                 { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
+               int use_ascii (int i) {
+                 return ascii_mm[i] + ascii_ii[i];
+               }
+               unsigned short int ebcdic_ii[] =
+                 { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
+               unsigned short int ebcdic_mm[] =
+                 { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
+               int use_ebcdic (int i) {
+                 return ebcdic_mm[i] + ebcdic_ii[i];
+               }
+               int
+               main (int argc, char **argv)
+               {
+                 /* Intimidate the compiler so that it does not
+                    optimize the arrays away.  */
+                 char *p = argv[0];
+                 ascii_mm[1] = *p++; ebcdic_mm[1] = *p++;
+                 ascii_ii[1] = *p++; ebcdic_ii[1] = *p++;
+                 return use_ascii (argc) == use_ebcdic (*p);
+               }
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+  if grep BIGenDianSyS conftest$ac_exeext >/dev/null; then
+             ac_cv_c_bigendian=yes
+           fi
+           if grep LiTTleEnDian conftest$ac_exeext >/dev/null ; then
+             if test "$ac_cv_c_bigendian" = unknown; then
+               ac_cv_c_bigendian=no
+             else
+               # finding both strings is unlikely to happen, but who knows?
+               ac_cv_c_bigendian=unknown
+             fi
+           fi
 fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+    conftest$ac_exeext conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main (void)
+{
 
-        ;;
-    esac
-  fi
-
-
-  if test "$ac_cv_header_sys_cdefs_h" = yes; then
-    HAVE_SYS_CDEFS_H=1
-  else
-    HAVE_SYS_CDEFS_H=0
-  fi
-
-
-
-
-
-
-
-
-
-
-  GL_GNULIB_SCHED_YIELD=0
-
+            /* Are we little or big endian?  From Harbison&Steele.  */
+            union
+            {
+              long int l;
+              char c[sizeof (long int)];
+            } u;
+            u.l = 1;
+            return u.c[sizeof (long int) - 1] == 1;
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+  ac_cv_c_bigendian=no
+else case e in #(
+  e) ac_cv_c_bigendian=yes ;;
+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
 
+    fi ;;
+esac
+fi
+:
+ case $ac_cv_c_bigendian in #(
+   yes)
+     gl_cv_cc_double_expbit0="word 0 bit 20";; #(
+   no)
+     gl_cv_cc_double_expbit0="word 1 bit 20" ;; #(
+   universal)
 
+printf "%s\n" "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
 
-  GL_GNULIB_PSELECT=0
+     ;; #(
+   *)
+     gl_cv_cc_double_expbit0="unknown" ;;
+ esac
 
+                                                       ;;
+esac
+fi
+rm -rf conftest*
 
 
-  GL_GNULIB_SELECT=0
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+#include <float.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <string.h>
+#define NWORDS \
+  ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
+typedef union { double value; unsigned int word[NWORDS]; } memory_double;
+static unsigned int ored_words[NWORDS];
+static unsigned int anded_words[NWORDS];
+static void add_to_ored_words (double x)
+{
+  memory_double m;
+  size_t i;
+  /* Clear it first, in case sizeof (double) < sizeof (memory_double).  */
+  memset (&m, 0, sizeof (memory_double));
+  m.value = x;
+  for (i = 0; i < NWORDS; i++)
+    {
+      ored_words[i] |= m.word[i];
+      anded_words[i] &= m.word[i];
+    }
+}
+int main ()
+{
+  size_t j;
+  FILE *fp = fopen ("conftest.out", "w");
+  if (fp == NULL)
+    return 1;
+  for (j = 0; j < NWORDS; j++)
+    anded_words[j] = ~ (unsigned int) 0;
+  add_to_ored_words (0.25);
+  add_to_ored_words (0.5);
+  add_to_ored_words (1.0);
+  add_to_ored_words (2.0);
+  add_to_ored_words (4.0);
+  /* Remove bits that are common (e.g. if representation of the first mantissa
+     bit is explicit).  */
+  for (j = 0; j < NWORDS; j++)
+    ored_words[j] &= ~anded_words[j];
+  /* Now find the nonzero word.  */
+  for (j = 0; j < NWORDS; j++)
+    if (ored_words[j] != 0)
+      break;
+  if (j < NWORDS)
+    {
+      size_t i;
+      for (i = j + 1; i < NWORDS; i++)
+        if (ored_words[i] != 0)
+          {
+            fprintf (fp, "unknown");
+            return (fclose (fp) != 0);
+          }
+      for (i = 0; ; i++)
+        if ((ored_words[j] >> i) & 1)
+          {
+            fprintf (fp, "word %d bit %d", (int) j, (int) i);
+            return (fclose (fp) != 0);
+          }
+    }
+  fprintf (fp, "unknown");
+  return (fclose (fp) != 0);
+}
 
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+  gl_cv_cc_double_expbit0=`cat conftest.out`
+else case e in #(
+  e) gl_cv_cc_double_expbit0="unknown" ;;
+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
 
+      rm -f conftest.out
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_double_expbit0" >&5
+printf "%s\n" "$gl_cv_cc_double_expbit0" >&6; }
+  case "$gl_cv_cc_double_expbit0" in
+    word*bit*)
+      word=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word //' -e 's/ bit.*//'`
+      bit=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word.*bit //'`
 
+printf "%s\n" "#define DBL_EXPBIT0_WORD $word" >>confdefs.h
 
 
-ac_fn_check_decl "$LINENO" "snprintf" "ac_cv_have_decl_snprintf" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_snprintf" = xyes
-then :
-  ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
-fi
-printf "%s\n" "#define HAVE_DECL_SNPRINTF $ac_have_decl" >>confdefs.h
+printf "%s\n" "#define DBL_EXPBIT0_BIT $bit" >>confdefs.h
 
+      ;;
+  esac
 
 
 
@@ -25218,8 +27735,8 @@ printf %s "checking whether <sys/ioctl.h> declares ioctl... " >&6; }
 if test ${gl_cv_decl_ioctl_in_sys_ioctl_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e)        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/ioctl.h>
 int
@@ -25233,11 +27750,13 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_decl_ioctl_in_sys_ioctl_h=yes
-else $as_nop
-  gl_cv_decl_ioctl_in_sys_ioctl_h=no
+else case e in #(
+  e) gl_cv_decl_ioctl_in_sys_ioctl_h=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_decl_ioctl_in_sys_ioctl_h" >&5
 printf "%s\n" "$gl_cv_decl_ioctl_in_sys_ioctl_h" >&6; }
@@ -25262,8 +27781,8 @@ printf %s "checking absolute name of <sys/ioctl.h>... " >&6; }
 if test ${gl_cv_next_sys_ioctl_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
              if test $ac_cv_header_sys_ioctl_h = yes; then
 
 
@@ -25299,13 +27818,14 @@ _ACEOF
         gl_cv_absolute_sys_ioctl_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
   sed -n "$gl_absolute_header_sed"`
 
-           gl_header=$gl_cv_absolute_sys_ioctl_h
-           gl_cv_next_sys_ioctl_h='"'$gl_header'"'
+          gl_header=$gl_cv_absolute_sys_ioctl_h
+          gl_cv_next_sys_ioctl_h='"'$gl_header'"'
           else
                gl_cv_next_sys_ioctl_h='<'sys/ioctl.h'>'
              fi
 
-
+          ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_ioctl_h" >&5
 printf "%s\n" "$gl_cv_next_sys_ioctl_h" >&6; }
@@ -25352,8 +27872,8 @@ printf %s "checking absolute name of <sys/uio.h>... " >&6; }
 if test ${gl_cv_next_sys_uio_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
              if test $ac_cv_header_sys_uio_h = yes; then
 
 
@@ -25389,13 +27909,14 @@ _ACEOF
         gl_cv_absolute_sys_uio_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
   sed -n "$gl_absolute_header_sed"`
 
-           gl_header=$gl_cv_absolute_sys_uio_h
-           gl_cv_next_sys_uio_h='"'$gl_header'"'
+          gl_header=$gl_cv_absolute_sys_uio_h
+          gl_cv_next_sys_uio_h='"'$gl_header'"'
           else
                gl_cv_next_sys_uio_h='<'sys/uio.h'>'
              fi
 
-
+          ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_uio_h" >&5
 printf "%s\n" "$gl_cv_next_sys_uio_h" >&6; }
@@ -25425,417 +27946,548 @@ printf "%s\n" "$gl_cv_next_sys_uio_h" >&6; }
 
 
 
-   if false; then
-  GL_COND_LIBTOOL_TRUE=
-  GL_COND_LIBTOOL_FALSE='#'
-else
-  GL_COND_LIBTOOL_TRUE='#'
-  GL_COND_LIBTOOL_FALSE=
-fi
-
-  gl_cond_libtool=false
-  gl_libdeps=
-  gl_ltlibdeps=
-  gl_m4_base='m4'
-
-
-
-
-
-
-
-
-
-
-
-
-  gl_source_base='lib'
-
-
-  if test $ac_cv_func_alloca_works = no; then
-    :
-  fi
-
-  # Define an additional variable used in the Makefile substitution.
-  if test $ac_cv_working_alloca_h = yes; then
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for alloca as a compiler built-in" >&5
-printf %s "checking for alloca as a compiler built-in... " >&6; }
-if test ${gl_cv_rpl_alloca+y}
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inttypes.h" >&5
+printf %s "checking for inttypes.h... " >&6; }
+if test ${gl_cv_header_inttypes_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#if defined __GNUC__ || defined _AIX || defined _MSC_VER
-        Need own alloca
-#endif
+#include <sys/types.h>
+#include <inttypes.h>
 
+int
+main (void)
+{
+uintmax_t i = (uintmax_t) -1; return !i;
+  ;
+  return 0;
+}
 _ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Need own alloca" >/dev/null 2>&1
+if ac_fn_c_try_compile "$LINENO"
 then :
-  gl_cv_rpl_alloca=yes
-else $as_nop
-  gl_cv_rpl_alloca=no
-fi
-rm -rf conftest*
-
-
+  gl_cv_header_inttypes_h=yes
+else case e in #(
+  e) gl_cv_header_inttypes_h=no ;;
+esac
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_rpl_alloca" >&5
-printf "%s\n" "$gl_cv_rpl_alloca" >&6; }
-    if test $gl_cv_rpl_alloca = yes; then
-
-printf "%s\n" "#define HAVE_ALLOCA 1" >>confdefs.h
-
-      ALLOCA_H=alloca.h
-    else
-                  ALLOCA_H=
-    fi
-  else
-    ALLOCA_H=alloca.h
-  fi
-
-   if test -n "$ALLOCA_H"; then
-  GL_GENERATE_ALLOCA_H_TRUE=
-  GL_GENERATE_ALLOCA_H_FALSE='#'
-else
-  GL_GENERATE_ALLOCA_H_TRUE='#'
-  GL_GENERATE_ALLOCA_H_FALSE=
+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_header_inttypes_h" >&5
+printf "%s\n" "$gl_cv_header_inttypes_h" >&6; }
+  if test $gl_cv_header_inttypes_h = yes; then
 
+printf "%s\n" "#define HAVE_INTTYPES_H_WITH_UINTMAX 1" >>confdefs.h
 
-  if test $ac_cv_working_alloca_h = yes; then
-    HAVE_ALLOCA_H=1
-  else
-    HAVE_ALLOCA_H=0
   fi
 
 
-
-
-
-
-
-
-  if test $ac_cv_func_btowc = no; then
-    HAVE_BTOWC=0
-  else
-
-
-
-
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether btowc(0) is correct" >&5
-printf %s "checking whether btowc(0) is correct... " >&6; }
-if test ${gl_cv_func_btowc_nul+y}
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for stdint.h" >&5
+printf %s "checking for stdint.h... " >&6; }
+if test ${gl_cv_header_stdint_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
-        if test "$cross_compiling" = yes
-then :
-
-           case "$host_os" in
-                      # Guess no on Cygwin.
-             cygwin*) gl_cv_func_btowc_nul="guessing no" ;;
-                      # Guess yes on native Windows.
-             mingw*)  gl_cv_func_btowc_nul="guessing yes" ;;
-                      # Guess yes otherwise.
-             *)       gl_cv_func_btowc_nul="guessing yes" ;;
-           esac
-
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
-#include <wchar.h>
-int main ()
+#include <sys/types.h>
+            #include <stdint.h>
+int
+main (void)
 {
-  if (btowc ('\0') != 0)
-    return 1;
+uintmax_t i = (uintmax_t) -1; return !i;
+  ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"
+if ac_fn_c_try_compile "$LINENO"
 then :
-  gl_cv_func_btowc_nul=yes
-else $as_nop
-  gl_cv_func_btowc_nul=no
+  gl_cv_header_stdint_h=yes
+else case e in #(
+  e) gl_cv_header_stdint_h=no ;;
+esac
 fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+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_header_stdint_h" >&5
+printf "%s\n" "$gl_cv_header_stdint_h" >&6; }
+  if test $gl_cv_header_stdint_h = yes; then
 
+printf "%s\n" "#define HAVE_STDINT_H_WITH_UINTMAX 1" >>confdefs.h
 
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_btowc_nul" >&5
-printf "%s\n" "$gl_cv_func_btowc_nul" >&6; }
+  fi
 
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether btowc(EOF) is correct" >&5
-printf %s "checking whether btowc(EOF) is correct... " >&6; }
-if test ${gl_cv_func_btowc_eof+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
 
-                        case "$host_os" in
-                  # Guess no on IRIX.
-          irix*)  gl_cv_func_btowc_eof="guessing no" ;;
-                  # Guess yes on native Windows.
-          mingw*) gl_cv_func_btowc_eof="guessing yes" ;;
-                  # Guess yes otherwise.
-          *)      gl_cv_func_btowc_eof="guessing yes" ;;
-        esac
-        if test $LOCALE_FR != none; then
-          if test "$cross_compiling" = yes
+
+
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for intmax_t" >&5
+printf %s "checking for intmax_t... " >&6; }
+if test ${gt_cv_c_intmax_t+y}
 then :
-  :
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  printf %s "(cached) " >&6
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#include <locale.h>
-#include <stdio.h>
-#include <wchar.h>
-int main ()
+#include <stddef.h>
+#include <stdlib.h>
+#if HAVE_STDINT_H_WITH_UINTMAX
+#include <stdint.h>
+#endif
+#if HAVE_INTTYPES_H_WITH_UINTMAX
+#include <inttypes.h>
+#endif
+
+int
+main (void)
 {
-  if (setlocale (LC_ALL, "$LOCALE_FR") != NULL)
-    {
-      if (btowc (EOF) != WEOF)
-        return 1;
-    }
+intmax_t x = -1; return !x;
+  ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"
+if ac_fn_c_try_compile "$LINENO"
 then :
-  gl_cv_func_btowc_eof=yes
-else $as_nop
-  gl_cv_func_btowc_eof=no
+  gt_cv_c_intmax_t=yes
+else case e in #(
+  e) gt_cv_c_intmax_t=no ;;
+esac
 fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_intmax_t" >&5
+printf "%s\n" "$gt_cv_c_intmax_t" >&6; }
+  if test $gt_cv_c_intmax_t = yes; then
 
-        fi
+printf "%s\n" "#define HAVE_INTMAX_T 1" >>confdefs.h
 
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_btowc_eof" >&5
-printf "%s\n" "$gl_cv_func_btowc_eof" >&6; }
+  else
 
-    case "$gl_cv_func_btowc_nul" in
-      *yes) ;;
-      *) REPLACE_BTOWC=1 ;;
-    esac
-    case "$gl_cv_func_btowc_eof" in
-      *yes) ;;
-      *) REPLACE_BTOWC=1 ;;
-    esac
-  fi
+printf "%s\n" "#define intmax_t long long" >>confdefs.h
 
-  if test $HAVE_BTOWC = 0 || test $REPLACE_BTOWC = 1; then
+  fi
 
 
 
 
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether snprintf truncates the result as in C99" >&5
+printf %s "checking whether snprintf truncates the result as in C99... " >&6; }
+if test ${gl_cv_func_snprintf_truncation_c99+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+      if test "$cross_compiling" = yes
+then :
+
+         case "$host_os" in
+                                 # Guess yes on glibc systems.
+           *-gnu* | gnu*)        gl_cv_func_snprintf_truncation_c99="guessing yes";;
+                                 # Guess yes on musl systems.
+           *-musl* | midipix*)   gl_cv_func_snprintf_truncation_c99="guessing yes";;
+                                 # Guess yes on FreeBSD >= 5.
+           freebsd[1-4].*)       gl_cv_func_snprintf_truncation_c99="guessing no";;
+           freebsd* | kfreebsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
+           midnightbsd*)         gl_cv_func_snprintf_truncation_c99="guessing yes";;
+                                 # Guess yes on Mac OS X >= 10.3.
+           darwin[1-6].*)        gl_cv_func_snprintf_truncation_c99="guessing no";;
+           darwin*)              gl_cv_func_snprintf_truncation_c99="guessing yes";;
+                                 # Guess yes on OpenBSD >= 3.9.
+           openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*)
+                                 gl_cv_func_snprintf_truncation_c99="guessing no";;
+           openbsd*)             gl_cv_func_snprintf_truncation_c99="guessing yes";;
+                                 # Guess yes on Solaris >= 2.6.
+           solaris2.[0-5] | solaris2.[0-5].*)
+                                 gl_cv_func_snprintf_truncation_c99="guessing no";;
+           solaris*)             gl_cv_func_snprintf_truncation_c99="guessing yes";;
+                                 # Guess yes on AIX >= 4.
+           aix[1-3]*)            gl_cv_func_snprintf_truncation_c99="guessing no";;
+           aix*)                 gl_cv_func_snprintf_truncation_c99="guessing yes";;
+                                 # Guess yes on HP-UX >= 11.
+           hpux[7-9]* | hpux10*) gl_cv_func_snprintf_truncation_c99="guessing no";;
+           hpux*)                gl_cv_func_snprintf_truncation_c99="guessing yes";;
+                                 # Guess yes on IRIX >= 6.5.
+           irix6.5)              gl_cv_func_snprintf_truncation_c99="guessing yes";;
+                                 # Guess yes on OSF/1 >= 5.
+           osf[3-4]*)            gl_cv_func_snprintf_truncation_c99="guessing no";;
+           osf*)                 gl_cv_func_snprintf_truncation_c99="guessing yes";;
+                                 # Guess yes on NetBSD >= 3.
+           netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
+                                 gl_cv_func_snprintf_truncation_c99="guessing no";;
+           netbsd*)              gl_cv_func_snprintf_truncation_c99="guessing yes";;
+                                 # Guess yes on BeOS.
+           beos*)                gl_cv_func_snprintf_truncation_c99="guessing yes";;
+                                 # Guess yes on Android.
+           linux*-android*)      gl_cv_func_snprintf_truncation_c99="guessing yes";;
+                                 # Guess no on native Windows.
+           mingw*)               gl_cv_func_snprintf_truncation_c99="guessing no";;
+                                 # If we don't know, obey --enable-cross-guesses.
+           *)                    gl_cv_func_snprintf_truncation_c99="$gl_cross_guess_normal";;
+         esac
+
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+#include <stdio.h>
+#include <string.h>
+#if HAVE_SNPRINTF
+# define my_snprintf snprintf
+#else
+# include <stdarg.h>
+static int my_snprintf (char *buf, int size, const char *format, ...)
+{
+  va_list args;
+  int ret;
+  va_start (args, format);
+  ret = vsnprintf (buf, size, format, args);
+  va_end (args);
+  return ret;
+}
+#endif
+static char buf[100];
+int main ()
+{
+  strcpy (buf, "ABCDEF");
+  my_snprintf (buf, 3, "%d %d", 4567, 89);
+  if (memcmp (buf, "45\0DEF", 6) != 0)
+    return 1;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+  gl_cv_func_snprintf_truncation_c99=yes
+else case e in #(
+  e) gl_cv_func_snprintf_truncation_c99=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_snprintf_truncation_c99" >&5
+printf "%s\n" "$gl_cv_func_snprintf_truncation_c99" >&6; }
 
 
-  gl_LIBOBJS="$gl_LIBOBJS btowc.$ac_objext"
 
 
-  :
 
-  fi
+  ac_fn_c_check_func "$LINENO" "wcslen" "ac_cv_func_wcslen"
+if test "x$ac_cv_func_wcslen" = xyes
+then :
+  printf "%s\n" "#define HAVE_WCSLEN 1" >>confdefs.h
 
+fi
 
 
 
 
+  ac_fn_c_check_func "$LINENO" "snprintf" "ac_cv_func_snprintf"
+if test "x$ac_cv_func_snprintf" = xyes
+then :
+  printf "%s\n" "#define HAVE_SNPRINTF 1" >>confdefs.h
 
+fi
+ac_fn_c_check_func "$LINENO" "strnlen" "ac_cv_func_strnlen"
+if test "x$ac_cv_func_strnlen" = xyes
+then :
+  printf "%s\n" "#define HAVE_STRNLEN 1" >>confdefs.h
 
+fi
+ac_fn_c_check_func "$LINENO" "wcrtomb" "ac_cv_func_wcrtomb"
+if test "x$ac_cv_func_wcrtomb" = xyes
+then :
+  printf "%s\n" "#define HAVE_WCRTOMB 1" >>confdefs.h
 
+fi
 
-          GL_GNULIB_BTOWC=1
+      ac_fn_check_decl "$LINENO" "_snprintf" "ac_cv_have_decl__snprintf" "#include <stdio.h>
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl__snprintf" = xyes
+then :
+  ac_have_decl=1
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
+fi
+printf "%s\n" "#define HAVE_DECL__SNPRINTF $ac_have_decl" >>confdefs.h
 
 
+  case "$gl_cv_func_snprintf_retval_c99" in
+    *yes)
 
+printf "%s\n" "#define HAVE_SNPRINTF_RETVAL_C99 1" >>confdefs.h
 
+      ;;
+  esac
 
-printf "%s\n" "#define GNULIB_TEST_BTOWC 1" >>confdefs.h
+  case "$gl_cv_func_snprintf_truncation_c99" in
+    *yes)
 
+printf "%s\n" "#define HAVE_SNPRINTF_TRUNCATION_C99 1" >>confdefs.h
 
+      ;;
+  esac
 
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __builtin_expect" >&5
-printf %s "checking for __builtin_expect... " >&6; }
-if test ${gl_cv___builtin_expect+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-         int
-         main (int argc, char **argv)
-         {
-           argc = __builtin_expect (argc, 100);
-           return argv[argc != 100][0];
-         }
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
-  gl_cv___builtin_expect=yes
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-             #include <builtins.h>
-             int
-             main (int argc, char **argv)
-             {
-               argc = __builtin_expect (argc, 100);
-               return argv[argc != 100][0];
-             }
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
-  gl_cv___builtin_expect="in <builtins.h>"
-else $as_nop
-  gl_cv___builtin_expect=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
-    conftest$ac_exeext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
-    conftest$ac_exeext conftest.$ac_ext
+
+      GL_CFLAG_GNULIB_WARNINGS=''
+  if test -n "$GL_CFLAG_ALLOW_WARNINGS"; then
+                                                                            cat > conftest.c <<\EOF
+      #if __GNUC__ >= 3 || (__clang_major__ + (__clang_minor__ >= 9) > 3)
+      -Wno-cast-qual
+      -Wno-conversion
+      -Wno-float-equal
+      -Wno-sign-compare
+      -Wno-undef
+      -Wno-unused-function
+      -Wno-unused-parameter
+      #endif
+      #if __GNUC__ + (__GNUC_MINOR__ >= 9) > 4 || (__clang_major__ + (__clang_minor__ >= 9) > 3)
+      -Wno-float-conversion
+      #endif
+      #if __GNUC__ >= 7 || (__clang_major__ + (__clang_minor__ >= 9) > 3)
+      -Wimplicit-fallthrough
+      #endif
+      #if __GNUC__ >= 4 && __GNUC__ < 11 && !defined __clang__
+      -Wno-missing-field-initializers
+      #endif
+      #if __GNUC__ + (__GNUC_MINOR__ >= 8) > 4 || (__clang_major__ + (__clang_minor__ >= 9) > 3)
+      -Wno-pedantic
+      #endif
+      #if __GNUC__ + (__GNUC_MINOR__ >= 3) > 4 || (__clang_major__ + (__clang_minor__ >= 9) > 3)
+      -Wno-sign-conversion
+      -Wno-type-limits
+      #endif
+      #if __GNUC__ + (__GNUC_MINOR__ >= 5) > 4
+      -Wno-unsuffixed-float-constants
+      #endif
+EOF
+    gl_command="$CC $CFLAGS $CPPFLAGS -E conftest.c > conftest.out"
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gl_command\""; } >&5
+  (eval $gl_command) 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+      gl_options=`grep -v '#' conftest.out`
+      for word in $gl_options; do
+        GL_CFLAG_GNULIB_WARNINGS="$GL_CFLAG_GNULIB_WARNINGS $word"
+      done
+    fi
+    rm -f conftest.c conftest.out
+  fi
+
+
+
+
+   if false; then
+  GL_COND_LIBTOOL_TRUE=
+  GL_COND_LIBTOOL_FALSE='#'
+else
+  GL_COND_LIBTOOL_TRUE='#'
+  GL_COND_LIBTOOL_FALSE=
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv___builtin_expect" >&5
-printf "%s\n" "$gl_cv___builtin_expect" >&6; }
-  if test "$gl_cv___builtin_expect" = yes; then
-    printf "%s\n" "#define HAVE___BUILTIN_EXPECT 1" >>confdefs.h
 
-  elif test "$gl_cv___builtin_expect" = "in <builtins.h>"; then
-    printf "%s\n" "#define HAVE___BUILTIN_EXPECT 2" >>confdefs.h
+  gl_cond_libtool=false
+  gl_libdeps=
+  gl_ltlibdeps=
+  gl_m4_base='m4'
 
-  fi
 
 
 
-    if test "$with_libsigsegv" = yes; then
-    if test "$gl_cv_lib_sigsegv" = yes; then
-      LIBCSTACK=$LIBSIGSEGV
 
-      LTLIBCSTACK=$LTLIBSIGSEGV
 
-    fi
-  fi
 
 
 
 
-  if test $REPLACE_CALLOC = 0; then
 
-     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether calloc (0, n) and calloc (n, 0) return nonnull" >&5
-printf %s "checking whether calloc (0, n) and calloc (n, 0) return nonnull... " >&6; }
-if test ${ac_cv_func_calloc_0_nonnull+y}
+
+  gl_source_base='lib'
+  gl_source_base_prefix=
+
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for alignas and alignof" >&5
+printf %s "checking for alignas and alignof... " >&6; }
+if test ${gl_cv_header_working_stdalign_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test $cross_compiling != yes; then
-       ac_cv_func_calloc_0_nonnull=yes
-       if test "$cross_compiling" = yes
-then :
-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run test program while cross compiling
-See \`config.log' for more details" "$LINENO" 5; }
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) gl_save_CFLAGS=$CFLAGS
+     for gl_working in "yes, keywords" "yes, <stdalign.h> macros"; do
+      case $gl_working in #(
+  *stdalign.h*) :
+    CFLAGS="$gl_save_CFLAGS -DINCLUDE_STDALIGN_H" ;; #(
+  *) :
+     ;;
+esac
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
+#include <stdint.h>
+            #ifdef INCLUDE_STDALIGN_H
+             #include <stdalign.h>
+            #endif
+            #include <stddef.h>
+
+            /* Test that alignof yields a result consistent with offsetof.
+               This catches GCC bug 52023
+               <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023>.  */
+            #ifdef __cplusplus
+               template <class t> struct alignof_helper { char a; t b; };
+            # define ao(type) offsetof (alignof_helper<type>, b)
+            #else
+            # define ao(type) offsetof (struct { char a; type b; }, b)
+            #endif
+            char test_double[ao (double) % _Alignof (double) == 0 ? 1 : -1];
+            char test_long[ao (long int) % _Alignof (long int) == 0 ? 1 : -1];
+            char test_alignof[alignof (double) == _Alignof (double) ? 1 : -1];
+
+            /* Test alignas only on platforms where gnulib can help.  */
+            #if \
+                ((defined __cplusplus && 201103 <= __cplusplus) \
+                 || (__TINYC__ && defined __attribute__) \
+                 || (defined __APPLE__ && defined __MACH__ \
+                     ? 4 < __GNUC__ + (1 <= __GNUC_MINOR__) \
+                     : __GNUC__) \
+                 || (__ia64 && (61200 <= __HP_cc || 61200 <= __HP_aCC)) \
+                 || __ICC || 0x590 <= __SUNPRO_C || 0x0600 <= __xlC__ \
+                 || 1300 <= _MSC_VER)
+              struct alignas_test { char c; char alignas (8) alignas_8; };
+              char test_alignas[offsetof (struct alignas_test, alignas_8) == 8
+                                ? 1 : -1];
+            #endif
+
 int
 main (void)
 {
-int result = 0;
-              char * volatile p = calloc (0, 0);
-              if (!p)
-                result |= 1;
-              free (p);
-              return result;
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"
+if ac_fn_c_try_compile "$LINENO"
 then :
-
-else $as_nop
-  ac_cv_func_calloc_0_nonnull=no
+  gl_cv_header_working_stdalign_h=$gl_working
+else case e in #(
+  e) gl_cv_header_working_stdalign_h=no ;;
+esac
 fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+
+      CFLAGS=$gl_save_CFLAGS
+      test "$gl_cv_header_working_stdalign_h" != no && break
+     done ;;
+esac
 fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_stdalign_h" >&5
+printf "%s\n" "$gl_cv_header_working_stdalign_h" >&6; }
 
-     else
-       case "$host_os" in
-                        # Guess yes on glibc systems.
-         *-gnu* | gnu*) ac_cv_func_calloc_0_nonnull="guessing yes" ;;
-                        # Guess yes on musl systems.
-         *-musl*)       ac_cv_func_calloc_0_nonnull="guessing yes" ;;
-                        # Guess yes on native Windows.
-         mingw*)        ac_cv_func_calloc_0_nonnull="guessing yes" ;;
-                        # If we don't know, obey --enable-cross-guesses.
-         *)             ac_cv_func_calloc_0_nonnull="$gl_cross_guess_normal" ;;
-       esac
-     fi
+  case $gl_cv_header_working_stdalign_h in #(
+  yes*keyword*) :
 
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_calloc_0_nonnull" >&5
-printf "%s\n" "$ac_cv_func_calloc_0_nonnull" >&6; }
-  case $ac_cv_func_calloc_0_nonnull in #(
-  *yes) :
-     ;; #(
+printf "%s\n" "#define HAVE_C_ALIGNASOF 1" >>confdefs.h
+ ;; #(
   *) :
-    REPLACE_CALLOC=1 ;;
+     ;;
 esac
 
-  fi
 
-  if test $REPLACE_CALLOC = 1; then
 
 
 
+  if test $ac_cv_func_alloca_works = no; then
+    :
+  fi
 
+  # Define an additional variable used in the Makefile substitution.
+  if test $ac_cv_working_alloca_h = yes; then
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for alloca as a compiler built-in" >&5
+printf %s "checking for alloca as a compiler built-in... " >&6; }
+if test ${gl_cv_rpl_alloca+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+#if defined __GNUC__ || defined _AIX || defined _MSC_VER
+        Need own alloca
+#endif
 
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP_TRADITIONAL "Need own alloca" >/dev/null 2>&1
+then :
+  gl_cv_rpl_alloca=yes
+else case e in #(
+  e) gl_cv_rpl_alloca=no ;;
+esac
+fi
+rm -rf conftest*
 
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_rpl_alloca" >&5
+printf "%s\n" "$gl_cv_rpl_alloca" >&6; }
+    if test $gl_cv_rpl_alloca = yes; then
 
-  gl_LIBOBJS="$gl_LIBOBJS calloc.$ac_objext"
+printf "%s\n" "#define HAVE_ALLOCA 1" >>confdefs.h
 
+      GL_GENERATE_ALLOCA_H=true
+    else
+                  GL_GENERATE_ALLOCA_H=false
+    fi
+  else
+    GL_GENERATE_ALLOCA_H=true
   fi
 
-
-
-  if test $REPLACE_MALLOC = 1; then
-    REPLACE_CALLOC=1
+  if test $ac_cv_working_alloca_h = yes; then
+    HAVE_ALLOCA_H=1
+  else
+    HAVE_ALLOCA_H=0
   fi
 
-  if test $REPLACE_CALLOC = 1; then
-
-
 
 
 
 
 
+  case "$GL_GENERATE_ALLOCA_H" in
+    false) ALLOCA_H='' ;;
+    true)
+                  if test -z "$ALLOCA_H"; then
+        ALLOCA_H="${gl_source_base_prefix}alloca.h"
+      fi
+      ;;
+    *) echo "*** GL_GENERATE_ALLOCA_H is not set correctly" 1>&2; exit 1 ;;
+  esac
 
-  gl_LIBOBJS="$gl_LIBOBJS calloc.$ac_objext"
 
+     if $GL_GENERATE_ALLOCA_H; then
+  GL_GENERATE_ALLOCA_H_TRUE=
+  GL_GENERATE_ALLOCA_H_FALSE='#'
+else
+  GL_GENERATE_ALLOCA_H_TRUE='#'
+  GL_GENERATE_ALLOCA_H_FALSE=
+fi
+:
+    if test -z "${GL_GENERATE_ALLOCA_H_TRUE}" && test -z "${GL_GENERATE_ALLOCA_H_FALSE}"; then
+    GL_GENERATE_ALLOCA_H_TRUE='#'
+    GL_GENERATE_ALLOCA_H_FALSE='#'
   fi
 
 
 
 
 
-
-
-          GL_GNULIB_CALLOC_POSIX=1
-
-
-
-
-
-printf "%s\n" "#define GNULIB_TEST_CALLOC_POSIX 1" >>confdefs.h
-
-
-
-
-
-
-
-
-  # Solaris 2.5.1 needs -lposix4 to get the clock_gettime function.
-  # Solaris 7 prefers the library name -lrt to the obsolescent name -lposix4.
-
-  # Save and restore LIBS so e.g., -lrt, isn't added to it.  Otherwise, *all*
-  # programs in the package would end up linked with that potentially-shared
-  # library, inducing unnecessary run-time overhead.
-  LIB_CLOCK_GETTIME=
-
-  gl_saved_libs=$LIBS
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5
-printf %s "checking for library containing clock_gettime... " >&6; }
-if test ${ac_cv_search_clock_gettime+y}
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for static_assert" >&5
+printf %s "checking for static_assert... " >&6; }
+if test ${gl_cv_static_assert+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) gl_save_CFLAGS=$CFLAGS
+     for gl_working in "yes, a keyword" "yes, an <assert.h> macro"; do
+      case $gl_working in #(
+  *assert.h*) :
+    CFLAGS="$gl_save_CFLAGS -DINCLUDE_ASSERT_H" ;; #(
+  *) :
+     ;;
+esac
+
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
+#if defined __clang__ && __STDC_VERSION__ < 202311
+             #pragma clang diagnostic error "-Wc2x-extensions"
+             #pragma clang diagnostic error "-Wc++1z-extensions"
+            #endif
+            #ifdef INCLUDE_ASSERT_H
+             #include <assert.h>
+            #endif
+            static_assert (2 + 2 == 4, "arithmetic does not work");
+            static_assert (2 + 2 == 4);
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-char clock_gettime ();
 int
 main (void)
 {
-return clock_gettime ();
+
+            static_assert (sizeof (char) == 1, "sizeof does not work");
+            static_assert (sizeof (char) == 1);
+
   ;
   return 0;
 }
 _ACEOF
-for ac_lib in '' rt posix4
-do
-  if test -z "$ac_lib"; then
-    ac_res="none required"
-  else
-    ac_res=-l$ac_lib
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-  fi
-  if ac_fn_c_try_link "$LINENO"
-then :
-  ac_cv_search_clock_gettime=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
-    conftest$ac_exeext
-  if test ${ac_cv_search_clock_gettime+y}
-then :
-  break
-fi
-done
-if test ${ac_cv_search_clock_gettime+y}
-then :
-
-else $as_nop
-  ac_cv_search_clock_gettime=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5
-printf "%s\n" "$ac_cv_search_clock_gettime" >&6; }
-ac_res=$ac_cv_search_clock_gettime
-if test "$ac_res" != no
-then :
-  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-  test "$ac_cv_search_clock_gettime" = "none required" ||
-                    LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime
-fi
-
-    ac_fn_c_check_func "$LINENO" "clock_gettime" "ac_cv_func_clock_gettime"
-if test "x$ac_cv_func_clock_gettime" = xyes
+if ac_fn_c_try_compile "$LINENO"
 then :
-  printf "%s\n" "#define HAVE_CLOCK_GETTIME 1" >>confdefs.h
-
+  gl_cv_static_assert=$gl_working
+else case e in #(
+  e) gl_cv_static_assert=no ;;
+esac
 fi
-ac_fn_c_check_func "$LINENO" "clock_settime" "ac_cv_func_clock_settime"
-if test "x$ac_cv_func_clock_settime" = xyes
-then :
-  printf "%s\n" "#define HAVE_CLOCK_SETTIME 1" >>confdefs.h
-
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+      CFLAGS=$gl_save_CFLAGS
+      test "$gl_cv_static_assert" != no && break
+     done ;;
+esac
 fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_static_assert" >&5
+printf "%s\n" "$gl_cv_static_assert" >&6; }
 
-  LIBS=$gl_saved_libs
-
+  GL_GENERATE_ASSERT_H=false
+  case $gl_cv_static_assert in #(
+  yes*keyword*) :
 
+printf "%s\n" "#define HAVE_C_STATIC_ASSERT 1" >>confdefs.h
+ ;; #(
+  no) :
+    GL_GENERATE_ASSERT_H=true
 
-printf "%s\n" "#define GNULIB_TEST_CLOEXEC 1" >>confdefs.h
 
 
 
 
 
 
-    if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
-      REPLACE_CLOSE=1
-    fi
 
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_assert_h='<'assert.h'>'
+     else
+       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <assert.h>" >&5
+printf %s "checking absolute name of <assert.h>... " >&6; }
+if test ${gl_cv_next_assert_h+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
 
 
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <assert.h>
+_ACEOF
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
 
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'assert.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
 
+        gl_cv_absolute_assert_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
 
-  if test $ac_cv_header_sys_socket_h != yes; then
-                    ac_fn_c_check_header_compile "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default"
-if test "x$ac_cv_header_winsock2_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_WINSOCK2_H 1" >>confdefs.h
+          gl_header=$gl_cv_absolute_assert_h
+          gl_cv_next_assert_h='"'$gl_header'"'
 
+          ;;
+esac
 fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_assert_h" >&5
+printf "%s\n" "$gl_cv_next_assert_h" >&6; }
+     fi
+     NEXT_ASSERT_H=$gl_cv_next_assert_h
 
-  fi
-  if test "$ac_cv_header_winsock2_h" = yes; then
-    HAVE_WINSOCK2_H=1
-    UNISTD_H_HAVE_WINSOCK2_H=1
-    SYS_IOCTL_H_HAVE_WINSOCK2_H=1
-  else
-    HAVE_WINSOCK2_H=0
-  fi
-
-
-    if test $UNISTD_H_HAVE_WINSOCK2_H = 1; then
-                        REPLACE_CLOSE=1
-    fi
+     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
+       gl_next_as_first_directive='<'assert.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_assert_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_ASSERT_H=$gl_next_as_first_directive
 
 
 
-  if test $REPLACE_CLOSE = 1; then
+ ;; #(
+  *) :
+     ;;
+esac
 
 
 
 
 
 
+  case "$GL_GENERATE_ASSERT_H" in
+    false) ASSERT_H='' ;;
+    true)
+                  if test -z "$ASSERT_H"; then
+        ASSERT_H="${gl_source_base_prefix}assert.h"
+      fi
+      ;;
+    *) echo "*** GL_GENERATE_ASSERT_H is not set correctly" 1>&2; exit 1 ;;
+  esac
 
-  gl_LIBOBJS="$gl_LIBOBJS close.$ac_objext"
 
+     if $GL_GENERATE_ASSERT_H; then
+  GL_GENERATE_ASSERT_H_TRUE=
+  GL_GENERATE_ASSERT_H_FALSE='#'
+else
+  GL_GENERATE_ASSERT_H_TRUE='#'
+  GL_GENERATE_ASSERT_H_FALSE=
+fi
+:
+    if test -z "${GL_GENERATE_ASSERT_H_TRUE}" && test -z "${GL_GENERATE_ASSERT_H_FALSE}"; then
+    GL_GENERATE_ASSERT_H_TRUE='#'
+    GL_GENERATE_ASSERT_H_FALSE='#'
   fi
 
 
 
 
 
-          GL_GNULIB_CLOSE=1
 
 
 
-
-
-printf "%s\n" "#define GNULIB_TEST_CLOSE 1" >>confdefs.h
-
+  if test $ac_cv_func_btowc = no; then
+    HAVE_BTOWC=0
+  else
 
 
 
 
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether btowc(0) is correct" >&5
+printf %s "checking whether btowc(0) is correct... " >&6; }
+if test ${gl_cv_func_btowc_nul+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+        if test "$cross_compiling" = yes
+then :
 
+           case "$host_os" in
+                      # Guess no on Cygwin.
+             cygwin*) gl_cv_func_btowc_nul="guessing no" ;;
+                      # Guess yes on native Windows.
+             mingw*)  gl_cv_func_btowc_nul="guessing yes" ;;
+                      # Guess yes otherwise.
+             *)       gl_cv_func_btowc_nul="guessing yes" ;;
+           esac
 
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+#include <wchar.h>
+int main ()
+{
+  if (btowc ('\0') != 0)
+    return 1;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+  gl_cv_func_btowc_nul=yes
+else case e in #(
+  e) gl_cv_func_btowc_nul=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_btowc_nul" >&5
+printf "%s\n" "$gl_cv_func_btowc_nul" >&6; }
 
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether btowc(EOF) is correct" >&5
+printf %s "checking whether btowc(EOF) is correct... " >&6; }
+if test ${gl_cv_func_btowc_eof+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+                        case "$host_os" in
+                  # Guess no on IRIX.
+          irix*)  gl_cv_func_btowc_eof="guessing no" ;;
+                  # Guess yes on native Windows.
+          mingw*) gl_cv_func_btowc_eof="guessing yes" ;;
+                  # Guess yes otherwise.
+          *)      gl_cv_func_btowc_eof="guessing yes" ;;
+        esac
+        if test $LOCALE_FR != none; then
+          if test "$cross_compiling" = yes
+then :
+  :
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+#include <locale.h>
+#include <stdio.h>
+#include <wchar.h>
+int main ()
+{
+  if (setlocale (LC_ALL, "$LOCALE_FR") != NULL)
+    {
+      if (btowc (EOF) != WEOF)
+        return 1;
+    }
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+  gl_cv_func_btowc_eof=yes
+else case e in #(
+  e) gl_cv_func_btowc_eof=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
 
-printf "%s\n" "#define GNULIB_DIRNAME 1" >>confdefs.h
+        fi
+       ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_btowc_eof" >&5
+printf "%s\n" "$gl_cv_func_btowc_eof" >&6; }
 
 
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether btowc is consistent with mbrtowc in the C locale" >&5
+printf %s "checking whether btowc is consistent with mbrtowc in the C locale... " >&6; }
+if test ${gl_cv_func_btowc_consistent+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+        if test "$cross_compiling" = yes
+then :
+  case "$host_os" in
+                     # Guess no on mingw.
+             mingw*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+#ifdef __MINGW32__
+ Problem
+#endif
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether // is distinct from /" >&5
-printf %s "checking whether // is distinct from /... " >&6; }
-if test ${gl_cv_double_slash_root+y}
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP_TRADITIONAL "Problem" >/dev/null 2>&1
 then :
-  printf %s "(cached) " >&6
-else $as_nop
-   if test x"$cross_compiling" = xyes ; then
-        # When cross-compiling, there is no way to tell whether // is special
-        # short of a list of hosts.  However, the only known hosts to date
-        # that have a distinct // are Apollo DomainOS (too old to port to),
-        # Cygwin, and z/OS.  If anyone knows of another system for which // has
-        # special semantics and is distinct from /, please report it to
-        # <bug-gnulib@gnu.org>.
-        case $host in
-          *-cygwin | i370-ibm-openedition)
-            gl_cv_double_slash_root=yes ;;
-          *)
-            # Be optimistic and assume that / and // are the same when we
-            # don't know.
-            gl_cv_double_slash_root='unknown, assuming no' ;;
-        esac
-      else
-        set x `ls -di / // 2>/dev/null`
-        if test "$2" = "$4" && wc //dev/null >/dev/null 2>&1; then
-          gl_cv_double_slash_root=no
-        else
-          gl_cv_double_slash_root=yes
-        fi
-      fi
+  gl_cv_func_btowc_consistent="guessing no"
+else case e in #(
+  e) gl_cv_func_btowc_consistent="guessing yes" ;;
+esac
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_double_slash_root" >&5
-printf "%s\n" "$gl_cv_double_slash_root" >&6; }
-  if test "$gl_cv_double_slash_root" = yes; then
+rm -rf conftest*
 
-printf "%s\n" "#define DOUBLE_SLASH_IS_DISTINCT_ROOT 1" >>confdefs.h
+                     ;;
+                     # Guess yes otherwise.
+             *)      gl_cv_func_btowc_consistent="guessing yes" ;;
+           esac
 
-  fi
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+#include <stdlib.h>
+#include <string.h>
+#include <wchar.h>
+int main ()
+{
+#if HAVE_MBRTOWC
+  wint_t wc1 = btowc (0x80);
+  wchar_t wc2 = (wchar_t) 0xbadface;
+  char buf[1] = { 0x80 };
+  mbstate_t state;
+  memset (&state, 0, sizeof (mbstate_t));
+  if (mbrtowc (&wc2, buf, 1, &state) != 1 || wc1 != wc2)
+    return 1;
+#endif
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+  gl_cv_func_btowc_consistent=yes
+else case e in #(
+  e) gl_cv_func_btowc_consistent=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_btowc_consistent" >&5
+printf "%s\n" "$gl_cv_func_btowc_consistent" >&6; }
 
+    case "$gl_cv_func_btowc_nul" in
+      *yes) ;;
+      *) REPLACE_BTOWC=1 ;;
+    esac
+    case "$gl_cv_func_btowc_eof" in
+      *yes) ;;
+      *) REPLACE_BTOWC=1 ;;
+    esac
+    case "$gl_cv_func_btowc_consistent" in
+      *yes) ;;
+      *) REPLACE_BTOWC=1 ;;
+    esac
+    if test $REPLACE_BTOWC = 0; then
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether dup2 works" >&5
-printf %s "checking whether dup2 works... " >&6; }
-if test ${gl_cv_func_dup2_works+y}
+     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C locale is free of encoding errors" >&5
+printf %s "checking whether the C locale is free of encoding errors... " >&6; }
+if test ${gl_cv_func_mbrtowc_C_locale_sans_EILSEQ+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test "$cross_compiling" = yes
+else case e in #(
+  e)
+               gl_cv_func_mbrtowc_C_locale_sans_EILSEQ="$gl_cross_guess_normal"
+
+     if test "$cross_compiling" = yes
 then :
   case "$host_os" in
-         mingw*) # on this platform, dup2 always returns 0 for success
-           gl_cv_func_dup2_works="guessing no" ;;
-         cygwin*) # on cygwin 1.5.x, dup2(1,1) returns 0
-           gl_cv_func_dup2_works="guessing no" ;;
-         aix* | freebsd*)
-                 # on AIX 7.1 and FreeBSD 6.1, dup2 (1,toobig) gives EMFILE,
-                 # not EBADF.
-           gl_cv_func_dup2_works="guessing no" ;;
-         haiku*) # on Haiku alpha 2, dup2(1, 1) resets FD_CLOEXEC.
-           gl_cv_func_dup2_works="guessing no" ;;
-         *-android*) # implemented using dup3(), which fails if oldfd == newfd
-           gl_cv_func_dup2_works="guessing no" ;;
-         os2*) # on OS/2 kLIBC, dup2() does not work on a directory fd.
-           gl_cv_func_dup2_works="guessing no" ;;
-         *) gl_cv_func_dup2_works="guessing yes" ;;
+                 # Guess yes on native Windows.
+         mingw*) gl_cv_func_mbrtowc_C_locale_sans_EILSEQ="guessing yes" ;;
        esac
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-       #include <errno.h>
-           #include <fcntl.h>
-           #include <limits.h>
-           #include <sys/resource.h>
-           #include <unistd.h>
-
-
-$gl_mda_defines
 
-           #ifndef RLIM_SAVED_CUR
-           # define RLIM_SAVED_CUR RLIM_INFINITY
-           #endif
-           #ifndef RLIM_SAVED_MAX
-           # define RLIM_SAVED_MAX RLIM_INFINITY
-           #endif
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <limits.h>
+            #include <locale.h>
+            #include <wchar.h>
 
 int
 main (void)
 {
-int result = 0;
-           int bad_fd = INT_MAX;
-           struct rlimit rlim;
-           if (getrlimit (RLIMIT_NOFILE, &rlim) == 0
-               && 0 <= rlim.rlim_cur && rlim.rlim_cur <= INT_MAX
-               && rlim.rlim_cur != RLIM_INFINITY
-               && rlim.rlim_cur != RLIM_SAVED_MAX
-               && rlim.rlim_cur != RLIM_SAVED_CUR)
-             bad_fd = rlim.rlim_cur;
-           #ifdef FD_CLOEXEC
-             if (fcntl (1, F_SETFD, FD_CLOEXEC) == -1)
-               result |= 1;
-           #endif
-           if (dup2 (1, 1) != 1)
-             result |= 2;
-           #ifdef FD_CLOEXEC
-             if (fcntl (1, F_GETFD) != FD_CLOEXEC)
-               result |= 4;
-           #endif
-           close (0);
-           if (dup2 (0, 0) != -1)
-             result |= 8;
-           /* Many gnulib modules require POSIX conformance of EBADF.  */
-           if (dup2 (2, bad_fd) == -1 && errno != EBADF)
-             result |= 16;
-           /* Flush out some cygwin core dumps.  */
-           if (dup2 (2, -1) != -1 || errno != EBADF)
-             result |= 32;
-           dup2 (2, 255);
-           dup2 (2, 256);
-           /* On OS/2 kLIBC, dup2() does not work on a directory fd.  */
-           {
-             int fd = open (".", O_RDONLY);
-             if (fd == -1)
-               result |= 64;
-             else if (dup2 (fd, fd + 1) == -1)
-               result |= 128;
-             close (fd);
-           }
-           return result;
+
+            int i;
+            char *locale = setlocale (LC_ALL, "C");
+            if (! locale)
+              return 2;
+            for (i = CHAR_MIN; i <= CHAR_MAX; i++)
+              {
+                char c = i;
+                wchar_t wc;
+                mbstate_t mbs = { 0, };
+                size_t ss = mbrtowc (&wc, &c, 1, &mbs);
+                if (1 < ss)
+                  return 3;
+              }
+            return 0;
+
   ;
   return 0;
 }
-
 _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
-  gl_cv_func_dup2_works=yes
-else $as_nop
-  gl_cv_func_dup2_works=no
+  gl_cv_func_mbrtowc_C_locale_sans_EILSEQ=yes
+else case e in #(
+  e) gl_cv_func_mbrtowc_C_locale_sans_EILSEQ=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_dup2_works" >&5
-printf "%s\n" "$gl_cv_func_dup2_works" >&6; }
-  case "$gl_cv_func_dup2_works" in
-    *yes) ;;
-    *)
-      REPLACE_DUP2=1
-      ac_fn_c_check_func "$LINENO" "setdtablesize" "ac_cv_func_setdtablesize"
-if test "x$ac_cv_func_setdtablesize" = xyes
-then :
-  printf "%s\n" "#define HAVE_SETDTABLESIZE 1" >>confdefs.h
 
+     ;;
+esac
 fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_C_locale_sans_EILSEQ" >&5
+printf "%s\n" "$gl_cv_func_mbrtowc_C_locale_sans_EILSEQ" >&6; }
 
-      ;;
-  esac
-
-
-  if test $REPLACE_DUP2 = 1; then
-
-
+      case "$gl_cv_func_mbrtowc_C_locale_sans_EILSEQ" in
+        *yes) ;;
+        *) REPLACE_BTOWC=1 ;;
+      esac
+    fi
+  fi
 
 
+     if test $HAVE_BTOWC = 0 || test $REPLACE_BTOWC = 1; then
+  GL_COND_OBJ_BTOWC_TRUE=
+  GL_COND_OBJ_BTOWC_FALSE='#'
+else
+  GL_COND_OBJ_BTOWC_TRUE='#'
+  GL_COND_OBJ_BTOWC_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_BTOWC_TRUE}" && test -z "${GL_COND_OBJ_BTOWC_FALSE}"; then
+    GL_COND_OBJ_BTOWC_TRUE='#'
+    GL_COND_OBJ_BTOWC_FALSE='#'
+  fi
 
+  if test -z "$GL_COND_OBJ_BTOWC_TRUE"; then :
 
 
+  :
 
-  gl_LIBOBJS="$gl_LIBOBJS dup2.$ac_objext"
 
 
-  fi
+fi
 
 
 
 
 
 
-          GL_GNULIB_DUP2=1
 
 
 
 
 
-printf "%s\n" "#define GNULIB_TEST_DUP2 1" >>confdefs.h
+          GL_GNULIB_BTOWC=1
 
 
 
 
 
+printf "%s\n" "#define GNULIB_TEST_BTOWC 1" >>confdefs.h
 
 
 
 
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __builtin_expect" >&5
+printf %s "checking for __builtin_expect... " >&6; }
+if test ${gl_cv___builtin_expect+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+         int
+         main (int argc, char **argv)
+         {
+           argc = __builtin_expect (argc, 100);
+           return argv[argc != 100][0];
+         }
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+  gl_cv___builtin_expect=yes
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+             #include <builtins.h>
+             int
+             main (int argc, char **argv)
+             {
+               argc = __builtin_expect (argc, 100);
+               return argv[argc != 100][0];
+             }
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+  gl_cv___builtin_expect="in <builtins.h>"
+else case e in #(
+  e) gl_cv___builtin_expect=no ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+    conftest$ac_exeext conftest.$ac_ext ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+    conftest$ac_exeext conftest.$ac_ext ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv___builtin_expect" >&5
+printf "%s\n" "$gl_cv___builtin_expect" >&6; }
+  if test "$gl_cv___builtin_expect" = yes; then
+    printf "%s\n" "#define HAVE___BUILTIN_EXPECT 1" >>confdefs.h
 
+  elif test "$gl_cv___builtin_expect" = "in <builtins.h>"; then
+    printf "%s\n" "#define HAVE___BUILTIN_EXPECT 2" >>confdefs.h
 
+  fi
 
-          GL_GNULIB_ENVIRON=1
 
 
 
+  if test $gl_sigsegv_uses_libsigsegv = yes; then
+    LIBCSTACK=$LIBSIGSEGV
 
+    LTLIBCSTACK=$LTLIBSIGSEGV
 
-printf "%s\n" "#define GNULIB_TEST_ENVIRON 1" >>confdefs.h
+  fi
 
 
 
 
+  REPLACE_CALLOC_FOR_CALLOC_GNU="$REPLACE_CALLOC_FOR_CALLOC_POSIX"
+  if test $REPLACE_CALLOC_FOR_CALLOC_GNU = 0; then
 
-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for error_at_line" >&5
-printf %s "checking for error_at_line... " >&6; }
-if test ${ac_cv_lib_error_at_line+y}
+     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether calloc (0, n) and calloc (n, 0) return nonnull" >&5
+printf %s "checking whether calloc (0, n) and calloc (n, 0) return nonnull... " >&6; }
+if test ${ac_cv_func_calloc_0_nonnull+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) if test $cross_compiling != yes; then
+       ac_cv_func_calloc_0_nonnull=yes
+       if test "$cross_compiling" = yes
+then :
+  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+as_fn_error $? "cannot run test program while cross compiling
+See 'config.log' for more details" "$LINENO" 5; }
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <error.h>
+$ac_includes_default
 int
 main (void)
 {
-error_at_line (0, 0, "", 0, "an error occurred");
+int result = 0;
+              char * volatile p = calloc (0, 0);
+              if (!p)
+                result |= 1;
+              free (p);
+              return result;
+
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"
+if ac_fn_c_try_run "$LINENO"
 then :
-  ac_cv_lib_error_at_line=yes
-else $as_nop
-  ac_cv_lib_error_at_line=no
+
+else case e in #(
+  e) ac_cv_func_calloc_0_nonnull=no ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
-    conftest$ac_exeext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_error_at_line" >&5
-printf "%s\n" "$ac_cv_lib_error_at_line" >&6; }
-
-  if test $ac_cv_lib_error_at_line = no; then
 
+     else
+       case "$host_os" in
+                             # Guess yes on glibc systems.
+         *-gnu* | gnu*)      ac_cv_func_calloc_0_nonnull="guessing yes" ;;
+                             # Guess yes on musl systems.
+         *-musl* | midipix*) ac_cv_func_calloc_0_nonnull="guessing yes" ;;
+                             # Guess yes on native Windows.
+         mingw*)             ac_cv_func_calloc_0_nonnull="guessing yes" ;;
+                             # If we don't know, obey --enable-cross-guesses.
+         *)                  ac_cv_func_calloc_0_nonnull="$gl_cross_guess_normal" ;;
+       esac
+     fi
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_calloc_0_nonnull" >&5
+printf "%s\n" "$ac_cv_func_calloc_0_nonnull" >&6; }
+  case $ac_cv_func_calloc_0_nonnull in #(
+  *yes) :
+     ;; #(
+  *) :
+    REPLACE_CALLOC_FOR_CALLOC_GNU=1 ;;
+esac
 
+  fi
 
+  if test $REPLACE_CALLOC_FOR_CALLOC_GNU = 1; then
 
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS error.$ac_objext"
 
 
 
-  :
+  gl_LIBOBJS="$gl_LIBOBJS calloc.$ac_objext"
 
   fi
 
 
-  XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=error:3:c-format"
 
 
 
-  XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=error_at_line:5:c-format"
 
 
 
 
+          GL_GNULIB_CALLOC_GNU=1
 
 
 
-  if test $ac_cv_func_fcntl = no; then
 
 
+printf "%s\n" "#define GNULIB_TEST_CALLOC_GNU 1" >>confdefs.h
 
-  if test $ac_cv_func_fcntl = no; then
-    HAVE_FCNTL=0
-  else
-    REPLACE_FCNTL=1
+
+
+
+
+
+  if test $REPLACE_MALLOC_FOR_MALLOC_POSIX = 1; then
+    REPLACE_CALLOC_FOR_CALLOC_POSIX=1
   fi
 
-  else
-            { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether fcntl handles F_DUPFD correctly" >&5
-printf %s "checking whether fcntl handles F_DUPFD correctly... " >&6; }
-if test ${gl_cv_func_fcntl_f_dupfd_works+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  if test "$cross_compiling" = yes
-then :
-  case $host_os in
-            aix* | cygwin* | haiku*)
-               gl_cv_func_fcntl_f_dupfd_works="guessing no" ;;
-            *) gl_cv_func_fcntl_f_dupfd_works="guessing yes" ;;
-          esac
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <errno.h>
-              #include <fcntl.h>
-              #include <limits.h>
-              #include <sys/resource.h>
-              #include <unistd.h>
+  if test $REPLACE_CALLOC_FOR_CALLOC_POSIX = 1; then
 
 
-$gl_mda_defines
 
-              #ifndef RLIM_SAVED_CUR
-              # define RLIM_SAVED_CUR RLIM_INFINITY
-              #endif
-              #ifndef RLIM_SAVED_MAX
-              # define RLIM_SAVED_MAX RLIM_INFINITY
-              #endif
 
-int
-main (void)
-{
-int result = 0;
-              int bad_fd = INT_MAX;
-              struct rlimit rlim;
-              if (getrlimit (RLIMIT_NOFILE, &rlim) == 0
-                  && 0 <= rlim.rlim_cur && rlim.rlim_cur <= INT_MAX
-                  && rlim.rlim_cur != RLIM_INFINITY
-                  && rlim.rlim_cur != RLIM_SAVED_MAX
-                  && rlim.rlim_cur != RLIM_SAVED_CUR)
-                bad_fd = rlim.rlim_cur;
-              if (fcntl (0, F_DUPFD, -1) != -1) result |= 1;
-              if (errno != EINVAL) result |= 2;
-              if (fcntl (0, F_DUPFD, bad_fd) != -1) result |= 4;
-              if (errno != EINVAL) result |= 8;
-              /* On OS/2 kLIBC, F_DUPFD does not work on a directory fd */
-              {
-                int fd;
-                fd = open (".", O_RDONLY);
-                if (fd == -1)
-                  result |= 16;
-                else if (fcntl (fd, F_DUPFD, STDERR_FILENO + 1) == -1)
-                  result |= 32;
 
-                close (fd);
-              }
-              return result;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
-  gl_cv_func_fcntl_f_dupfd_works=yes
-else $as_nop
-  gl_cv_func_fcntl_f_dupfd_works=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
 
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fcntl_f_dupfd_works" >&5
-printf "%s\n" "$gl_cv_func_fcntl_f_dupfd_works" >&6; }
-    case $gl_cv_func_fcntl_f_dupfd_works in
-      *yes) ;;
-      *)
 
 
-  if test $ac_cv_func_fcntl = no; then
-    HAVE_FCNTL=0
-  else
-    REPLACE_FCNTL=1
+  gl_LIBOBJS="$gl_LIBOBJS calloc.$ac_objext"
+
   fi
 
 
-printf "%s\n" "#define FCNTL_DUPFD_BUGGY 1" >>confdefs.h
- ;;
-    esac
 
-            { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether fcntl understands F_DUPFD_CLOEXEC" >&5
-printf %s "checking whether fcntl understands F_DUPFD_CLOEXEC... " >&6; }
-if test ${gl_cv_func_fcntl_f_dupfd_cloexec+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  if test "$cross_compiling" = yes
-then :
-  case "$host_os" in
-                     # Guess no on NetBSD.
-            netbsd*) gl_cv_func_fcntl_f_dupfd_cloexec="guessing no" ;;
-            *)       gl_cv_func_fcntl_f_dupfd_cloexec="$gl_cross_guess_normal" ;;
-          esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <fcntl.h>
-              #include <unistd.h>
-              int main (int argc, char *argv[])
-              {
-                if (argc == 1)
-                  /* parent process */
-                  {
-                    if (fcntl (1, F_DUPFD_CLOEXEC, 10) < 0)
-                      return 1;
-                    return execl ("./conftest", "./conftest", "child", NULL);
-                  }
-                else
-                  /* child process */
-                  return (fcntl (10, F_GETFL) < 0 ? 0 : 42);
-              }
 
 
-_ACEOF
-if ac_fn_c_try_run "$LINENO"
+
+
+
+          GL_GNULIB_CALLOC_POSIX=1
+
+
+
+
+
+printf "%s\n" "#define GNULIB_TEST_CALLOC_POSIX 1" >>confdefs.h
+
+
+
+
+
+
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for readlinkat" >&5
+printf %s "checking for readlinkat... " >&6; }
+if test ${gl_cv_onwards_func_readlinkat+y}
 then :
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+  exec 9>&6 6>/dev/null
+
+       case "$host_os" in
+
+         linux*-android*)
+           ac_fn_check_decl "$LINENO" "readlinkat" "ac_cv_have_decl_readlinkat" "#include <unistd.h>
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_readlinkat" = xyes
+then :
+
+fi
+           if test $ac_cv_have_decl_readlinkat = yes; then
+             ac_fn_c_check_func "$LINENO" "readlinkat" "ac_cv_func_readlinkat"
+if test "x$ac_cv_func_readlinkat" = xyes
+then :
+
+fi
+
+             if test $ac_cv_func_readlinkat = yes; then
+               gl_cv_onwards_func_readlinkat=yes
+             else
+                                                            gl_cv_onwards_func_readlinkat='future OS version'
+             fi
+           else
+             gl_cv_onwards_func_readlinkat='future OS version'
+           fi
+           ;;
+
+
+         *)
+           ac_fn_c_check_func "$LINENO" "readlinkat" "ac_cv_func_readlinkat"
+if test "x$ac_cv_func_readlinkat" = xyes
+then :
+
+fi
+
+           gl_cv_onwards_func_readlinkat=$ac_cv_func_readlinkat
+           ;;
+
+       esac
+
+  exec 6>&9 9>&-
+
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_onwards_func_readlinkat" >&5
+printf "%s\n" "$gl_cv_onwards_func_readlinkat" >&6; }
+
+  case "$gl_cv_onwards_func_readlinkat" in
+    future*) ac_cv_func_readlinkat=no ;;
+    *)       ac_cv_func_readlinkat=$gl_cv_onwards_func_readlinkat ;;
+  esac
+  if test $ac_cv_func_readlinkat = yes; then
+
+printf "%s\n" "#define HAVE_READLINKAT 1" >>confdefs.h
+
+  fi
+
+
+
+
+
+  # Solaris 2.5.1 needs -lposix4 to get the clock_gettime function.
+  # Solaris 7 prefers the library name -lrt to the obsolescent name -lposix4.
+
+  # Save and restore LIBS so e.g., -lrt, isn't added to it.  Otherwise, *all*
+  # programs in the package would end up linked with that potentially-shared
+  # library, inducing unnecessary run-time overhead.
+  CLOCK_TIME_LIB=
+
+  gl_saved_libs=$LIBS
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5
+printf %s "checking for library containing clock_gettime... " >&6; }
+if test ${ac_cv_search_clock_gettime+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#ifdef __linux__
-/* The Linux kernel only added F_DUPFD_CLOEXEC in 2.6.24, so we always replace
-   it to support the semantics on older kernels that failed with EINVAL.  */
-choke me
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.
+   The 'extern "C"' is for builds by C++ compilers;
+   although this is not generally supported in C code supporting it here
+   has little cost and some practical benefit (sr 110532).  */
+#ifdef __cplusplus
+extern "C"
 #endif
-
+char clock_gettime (void);
 int
 main (void)
 {
-
+return clock_gettime ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
+for ac_lib in '' rt posix4
+do
+  if test -z "$ac_lib"; then
+    ac_res="none required"
+  else
+    ac_res=-l$ac_lib
+    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
+  fi
+  if ac_fn_c_try_link "$LINENO"
 then :
-  gl_cv_func_fcntl_f_dupfd_cloexec=yes
-else $as_nop
-  gl_cv_func_fcntl_f_dupfd_cloexec="needs runtime check"
+  ac_cv_search_clock_gettime=$ac_res
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+    conftest$ac_exeext
+  if test ${ac_cv_search_clock_gettime+y}
+then :
+  break
+fi
+done
+if test ${ac_cv_search_clock_gettime+y}
+then :
 
-else $as_nop
-  gl_cv_func_fcntl_f_dupfd_cloexec=no
+else case e in #(
+  e) ac_cv_search_clock_gettime=no ;;
+esac
 fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5
+printf "%s\n" "$ac_cv_search_clock_gettime" >&6; }
+ac_res=$ac_cv_search_clock_gettime
+if test "$ac_res" != no
+then :
+  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+  test "$ac_cv_search_clock_gettime" = "none required" ||
+                    CLOCK_TIME_LIB=$ac_cv_search_clock_gettime
 fi
 
+    ac_fn_c_check_func "$LINENO" "clock_getres" "ac_cv_func_clock_getres"
+if test "x$ac_cv_func_clock_getres" = xyes
+then :
+  printf "%s\n" "#define HAVE_CLOCK_GETRES 1" >>confdefs.h
 
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fcntl_f_dupfd_cloexec" >&5
-printf "%s\n" "$gl_cv_func_fcntl_f_dupfd_cloexec" >&6; }
-    case "$gl_cv_func_fcntl_f_dupfd_cloexec" in
-      *yes) ;;
-      *)
+ac_fn_c_check_func "$LINENO" "clock_gettime" "ac_cv_func_clock_gettime"
+if test "x$ac_cv_func_clock_gettime" = xyes
+then :
+  printf "%s\n" "#define HAVE_CLOCK_GETTIME 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "clock_settime" "ac_cv_func_clock_settime"
+if test "x$ac_cv_func_clock_settime" = xyes
+then :
+  printf "%s\n" "#define HAVE_CLOCK_SETTIME 1" >>confdefs.h
 
+fi
 
-  if test $ac_cv_func_fcntl = no; then
-    HAVE_FCNTL=0
-  else
-    REPLACE_FCNTL=1
-  fi
+  LIBS=$gl_saved_libs
+  # For backward compatibility.
+  LIB_CLOCK_GETTIME="$CLOCK_TIME_LIB"
 
-                        ;;
-    esac
-  fi
 
 
-  if test $HAVE_FCNTL = 0 || test $REPLACE_FCNTL = 1; then
 
+printf "%s\n" "#define GNULIB_TEST_CLOEXEC 1" >>confdefs.h
 
 
 
 
+     if test $REPLACE_CLOSE = 1; then
+  GL_COND_OBJ_CLOSE_TRUE=
+  GL_COND_OBJ_CLOSE_FALSE='#'
+else
+  GL_COND_OBJ_CLOSE_TRUE='#'
+  GL_COND_OBJ_CLOSE_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_CLOSE_TRUE}" && test -z "${GL_COND_OBJ_CLOSE_FALSE}"; then
+    GL_COND_OBJ_CLOSE_TRUE='#'
+    GL_COND_OBJ_CLOSE_FALSE='#'
+  fi
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS fcntl.$ac_objext"
 
-  fi
 
 
 
 
 
 
+          GL_GNULIB_CLOSE=1
 
 
 
-          GL_GNULIB_FCNTL=1
 
 
+printf "%s\n" "#define GNULIB_TEST_CLOSE 1" >>confdefs.h
 
 
 
-printf "%s\n" "#define GNULIB_TEST_FCNTL 1" >>confdefs.h
 
 
 
@@ -26540,272 +29427,234 @@ printf "%s\n" "#define GNULIB_TEST_FCNTL 1" >>confdefs.h
 
 
 
+printf "%s\n" "#define GNULIB_DIRNAME 1" >>confdefs.h
 
 
 
 
-printf "%s\n" "#define GNULIB_FILENAMECAT 1" >>confdefs.h
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether // is distinct from /" >&5
+printf %s "checking whether // is distinct from /... " >&6; }
+if test ${gl_cv_double_slash_root+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)  if test x"$cross_compiling" = xyes ; then
+        # When cross-compiling, there is no way to tell whether // is special
+        # short of a list of hosts.  However, the only known hosts to date
+        # that have a distinct // are Apollo DomainOS (too old to port to),
+        # Cygwin, and z/OS.  If anyone knows of another system for which // has
+        # special semantics and is distinct from /, please report it to
+        # <bug-gnulib@gnu.org>.
+        case $host in
+          *-cygwin | i370-ibm-openedition)
+            gl_cv_double_slash_root=yes ;;
+          *)
+            # Be optimistic and assume that / and // are the same when we
+            # don't know.
+            gl_cv_double_slash_root='unknown, assuming no' ;;
+        esac
+      else
+        set x `ls -di / // 2>/dev/null`
+        if test "$2" = "$4" && wc //dev/null >/dev/null 2>&1; then
+          gl_cv_double_slash_root=no
+        else
+          gl_cv_double_slash_root=yes
+        fi
+      fi ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_double_slash_root" >&5
+printf "%s\n" "$gl_cv_double_slash_root" >&6; }
+  if test "$gl_cv_double_slash_root" = yes; then
 
+printf "%s\n" "#define DOUBLE_SLASH_IS_DISTINCT_ROOT 1" >>confdefs.h
 
+  fi
 
 
 
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for flexible array member" >&5
-printf %s "checking for flexible array member... " >&6; }
-if test ${ac_cv_c_flexmember+y}
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether dup2 works" >&5
+printf %s "checking whether dup2 works... " >&6; }
+if test ${gl_cv_func_dup2_works+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) if test "$cross_compiling" = yes
+then :
+  case "$host_os" in
+         mingw*) # on this platform, dup2 always returns 0 for success
+           gl_cv_func_dup2_works="guessing no" ;;
+         cygwin*) # on cygwin 1.5.x, dup2(1,1) returns 0
+           gl_cv_func_dup2_works="guessing no" ;;
+         aix* | freebsd*)
+                 # on AIX 7.1 and FreeBSD 6.1, dup2 (1,toobig) gives EMFILE,
+                 # not EBADF.
+           gl_cv_func_dup2_works="guessing no" ;;
+         haiku*) # on Haiku alpha 2, dup2(1, 1) resets FD_CLOEXEC.
+           gl_cv_func_dup2_works="guessing no" ;;
+         *-android*) # implemented using dup3(), which fails if oldfd == newfd
+           gl_cv_func_dup2_works="guessing no" ;;
+         os2*) # on OS/2 kLIBC, dup2() does not work on a directory fd.
+           gl_cv_func_dup2_works="guessing no" ;;
+         *) gl_cv_func_dup2_works="guessing yes" ;;
+       esac
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <stdlib.h>
-            #include <stdio.h>
-            #include <stddef.h>
-            struct m { struct m *next, **list; char name[]; };
-            struct s { struct s *p; struct m *m; int n; double d[]; };
+
+       #include <errno.h>
+           #include <fcntl.h>
+           #include <limits.h>
+           #include <sys/resource.h>
+           #include <unistd.h>
+
+
+$gl_mda_defines
+
+           #ifndef RLIM_SAVED_CUR
+           # define RLIM_SAVED_CUR RLIM_INFINITY
+           #endif
+           #ifndef RLIM_SAVED_MAX
+           # define RLIM_SAVED_MAX RLIM_INFINITY
+           #endif
+
 int
 main (void)
 {
-int m = getchar ();
-            size_t nbytes = offsetof (struct s, d) + m * sizeof (double);
-            nbytes += sizeof (struct s) - 1;
-            nbytes -= nbytes % sizeof (struct s);
-            struct s *p = malloc (nbytes);
-            p->p = p;
-            p->m = NULL;
-            p->d[0] = 0.0;
-            return p->d != (double *) NULL;
+int result = 0;
+           int bad_fd = INT_MAX;
+           struct rlimit rlim;
+           if (getrlimit (RLIMIT_NOFILE, &rlim) == 0
+               && 0 <= rlim.rlim_cur && rlim.rlim_cur <= INT_MAX
+               && rlim.rlim_cur != RLIM_INFINITY
+               && rlim.rlim_cur != RLIM_SAVED_MAX
+               && rlim.rlim_cur != RLIM_SAVED_CUR)
+             bad_fd = rlim.rlim_cur;
+           #ifdef FD_CLOEXEC
+             if (fcntl (1, F_SETFD, FD_CLOEXEC) == -1)
+               result |= 1;
+           #endif
+           if (dup2 (1, 1) != 1)
+             result |= 2;
+           #ifdef FD_CLOEXEC
+             if (fcntl (1, F_GETFD) != FD_CLOEXEC)
+               result |= 4;
+           #endif
+           close (0);
+           if (dup2 (0, 0) != -1)
+             result |= 8;
+           /* Many gnulib modules require POSIX conformance of EBADF.  */
+           if (dup2 (2, bad_fd) == -1 && errno != EBADF)
+             result |= 16;
+           /* Flush out some cygwin core dumps.  */
+           if (dup2 (2, -1) != -1 || errno != EBADF)
+             result |= 32;
+           dup2 (2, 255);
+           dup2 (2, 256);
+           /* On OS/2 kLIBC, dup2() does not work on a directory fd.  */
+           {
+             int fd = open (".", O_RDONLY);
+             if (fd == -1)
+               result |= 64;
+             else if (dup2 (fd, fd + 1) == -1)
+               result |= 128;
+             close (fd);
+           }
+           return result;
   ;
   return 0;
 }
+
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
+if ac_fn_c_try_run "$LINENO"
 then :
-  ac_cv_c_flexmember=yes
-else $as_nop
-  ac_cv_c_flexmember=no
+  gl_cv_func_dup2_works=yes
+else case e in #(
+  e) gl_cv_func_dup2_works=no ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_flexmember" >&5
-printf "%s\n" "$ac_cv_c_flexmember" >&6; }
-  if test $ac_cv_c_flexmember = yes; then
 
-printf "%s\n" "#define FLEXIBLE_ARRAY_MEMBER /**/" >>confdefs.h
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_dup2_works" >&5
+printf "%s\n" "$gl_cv_func_dup2_works" >&6; }
+  case "$gl_cv_func_dup2_works" in
+    *yes) ;;
+    *)
+      REPLACE_DUP2=1
+      ac_fn_c_check_func "$LINENO" "setdtablesize" "ac_cv_func_setdtablesize"
+if test "x$ac_cv_func_setdtablesize" = xyes
+then :
+  printf "%s\n" "#define HAVE_SETDTABLESIZE 1" >>confdefs.h
 
-  else
-    printf "%s\n" "#define FLEXIBLE_ARRAY_MEMBER 1" >>confdefs.h
+fi
 
-  fi
+      ;;
+  esac
 
 
 
+     if test $REPLACE_DUP2 = 1; then
+  GL_COND_OBJ_DUP2_TRUE=
+  GL_COND_OBJ_DUP2_FALSE='#'
+else
+  GL_COND_OBJ_DUP2_TRUE='#'
+  GL_COND_OBJ_DUP2_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_DUP2_TRUE}" && test -z "${GL_COND_OBJ_DUP2_FALSE}"; then
+    GL_COND_OBJ_DUP2_TRUE='#'
+    GL_COND_OBJ_DUP2_FALSE='#'
+  fi
+
+  if test -z "$GL_COND_OBJ_DUP2_TRUE"; then :
 
-  FLOAT_H=
-  REPLACE_FLOAT_LDBL=0
-  case "$host_os" in
-    aix* | beos* | openbsd* | mirbsd* | irix*)
-      FLOAT_H=float.h
-      ;;
-    freebsd* | dragonfly*)
-      case "$host_cpu" in
-        i[34567]86 )
-          FLOAT_H=float.h
-          ;;
-        x86_64 )
-          # On x86_64 systems, the C compiler may still be generating
-          # 32-bit code.
-          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#if defined __LP64__ || defined __x86_64__ || defined __amd64__
-                  int ok;
-                 #else
-                  error fail
-                 #endif
 
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
 
-else $as_nop
-  FLOAT_H=float.h
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-          ;;
-      esac
-      ;;
-    linux*)
-      case "$host_cpu" in
-        powerpc*)
-          FLOAT_H=float.h
-          ;;
-      esac
-      ;;
-  esac
-  case "$host_os" in
-    aix* | freebsd* | dragonfly* | linux*)
-      if test -n "$FLOAT_H"; then
-        REPLACE_FLOAT_LDBL=1
-      fi
-      ;;
-  esac
 
-    REPLACE_ITOLD=0
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether conversion from 'int' to 'long double' works" >&5
-printf %s "checking whether conversion from 'int' to 'long double' works... " >&6; }
-if test ${gl_cv_func_itold_works+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
 
-      if test "$cross_compiling" = yes
-then :
-  case "$host" in
-           sparc*-*-linux*)
-             cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#if defined __LP64__ || defined __arch64__
-                    int ok;
-                   #else
-                    error fail
-                   #endif
 
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  gl_cv_func_itold_works="guessing no"
-else $as_nop
-  gl_cv_func_itold_works="guessing yes"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-             ;;
-                   # Guess yes on native Windows.
-           mingw*) gl_cv_func_itold_works="guessing yes" ;;
-           *)      gl_cv_func_itold_works="guessing yes" ;;
-         esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-int i = -1;
-volatile long double ld;
-int main ()
-{
-  ld += i * 1.0L;
-  if (ld > 0)
-    return 1;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
-  gl_cv_func_itold_works=yes
-else $as_nop
-  gl_cv_func_itold_works=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
 
 
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_itold_works" >&5
-printf "%s\n" "$gl_cv_func_itold_works" >&6; }
-  case "$gl_cv_func_itold_works" in
-    *no)
-      REPLACE_ITOLD=1
-                  FLOAT_H=float.h
-      ;;
-  esac
 
-  if test -n "$FLOAT_H"; then
 
+          GL_GNULIB_DUP2=1
 
 
 
 
 
+printf "%s\n" "#define GNULIB_TEST_DUP2 1" >>confdefs.h
 
 
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_float_h='<'float.h'>'
-     else
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <float.h>" >&5
-printf %s "checking absolute name of <float.h>... " >&6; }
-if test ${gl_cv_next_float_h+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
 
 
 
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <float.h>
-_ACEOF
-                case "$host_os" in
-    aix*) gl_absname_cpp="$ac_cpp -C" ;;
-    *)    gl_absname_cpp="$ac_cpp" ;;
-  esac
 
-  case "$host_os" in
-    mingw*)
-                                          gl_dirsep_regex='[/\\]'
-      ;;
-    *)
-      gl_dirsep_regex='\/'
-      ;;
-  esac
-      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-  gl_header_literal_regex=`echo 'float.h' \
-                           | sed -e "$gl_make_literal_regex_sed"`
-  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
-      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
-      s|^/[^/]|//&|
-      p
-      q
-    }'
 
-        gl_cv_absolute_float_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-  sed -n "$gl_absolute_header_sed"`
 
-           gl_header=$gl_cv_absolute_float_h
-           gl_cv_next_float_h='"'$gl_header'"'
 
 
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_float_h" >&5
-printf "%s\n" "$gl_cv_next_float_h" >&6; }
-     fi
-     NEXT_FLOAT_H=$gl_cv_next_float_h
 
-     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
-       gl_next_as_first_directive='<'float.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_float_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_FLOAT_H=$gl_next_as_first_directive
 
 
+          GL_GNULIB_ENVIRON=1
 
 
-  fi
 
-   if test -n "$FLOAT_H"; then
-  GL_GENERATE_FLOAT_H_TRUE=
-  GL_GENERATE_FLOAT_H_FALSE='#'
-else
-  GL_GENERATE_FLOAT_H_TRUE='#'
-  GL_GENERATE_FLOAT_H_FALSE=
-fi
 
 
+printf "%s\n" "#define GNULIB_TEST_ENVIRON 1" >>confdefs.h
 
-  if test $REPLACE_FLOAT_LDBL = 1; then
 
 
 
 
 
 
+  case "$GL_GENERATE_ERRNO_H" in
+    false) ERRNO_H='' ;;
+    true)
+                  if test -z "$ERRNO_H"; then
+        ERRNO_H="${gl_source_base_prefix}errno.h"
+      fi
+      ;;
+    *) echo "*** GL_GENERATE_ERRNO_H is not set correctly" 1>&2; exit 1 ;;
+  esac
 
-  gl_LIBOBJS="$gl_LIBOBJS float.$ac_objext"
 
+     if $GL_GENERATE_ERRNO_H; then
+  GL_GENERATE_ERRNO_H_TRUE=
+  GL_GENERATE_ERRNO_H_FALSE='#'
+else
+  GL_GENERATE_ERRNO_H_TRUE='#'
+  GL_GENERATE_ERRNO_H_FALSE=
+fi
+:
+    if test -z "${GL_GENERATE_ERRNO_H_TRUE}" && test -z "${GL_GENERATE_ERRNO_H_FALSE}"; then
+    GL_GENERATE_ERRNO_H_TRUE='#'
+    GL_GENERATE_ERRNO_H_FALSE='#'
   fi
-  if test $REPLACE_ITOLD = 1; then
 
 
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS itold.$ac_objext"
 
+
+     if test $GL_GENERATE_ERROR_H = true; then
+  GL_COND_OBJ_ERROR_TRUE=
+  GL_COND_OBJ_ERROR_FALSE='#'
+else
+  GL_COND_OBJ_ERROR_TRUE='#'
+  GL_COND_OBJ_ERROR_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_ERROR_TRUE}" && test -z "${GL_COND_OBJ_ERROR_FALSE}"; then
+    GL_COND_OBJ_ERROR_TRUE='#'
+    GL_COND_OBJ_ERROR_FALSE='#'
   fi
 
+  if test -z "$GL_COND_OBJ_ERROR_TRUE"; then :
 
 
 
-     gl_fnmatch_required_lowercase=`
-    echo $gl_fnmatch_required | LC_ALL=C tr '[A-Z]' '[a-z]'
-  `
 
-  if test $ac_cv_func_fnmatch = no; then
-    HAVE_FNMATCH=0
-  else
-    gl_fnmatch_cache_var="gl_cv_func_fnmatch_${gl_fnmatch_required_lowercase}"
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working $gl_fnmatch_required fnmatch" >&5
-printf %s "checking for working $gl_fnmatch_required fnmatch... " >&6; }
-if eval test \${$gl_fnmatch_cache_var+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-                                     if test $gl_fnmatch_required = GNU; then
+
+  :
+
+
+fi
+
+
+  XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=error:3:c-format"
+
+
+
+  XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=error_at_line:5:c-format"
+
+
+
+
+
+
+  case "$GL_GENERATE_ERROR_H" in
+    false) ERROR_H='' ;;
+    true)
+                  if test -z "$ERROR_H"; then
+        ERROR_H="${gl_source_base_prefix}error.h"
+      fi
+      ;;
+    *) echo "*** GL_GENERATE_ERROR_H is not set correctly" 1>&2; exit 1 ;;
+  esac
+
+
+     if $GL_GENERATE_ERROR_H; then
+  GL_GENERATE_ERROR_H_TRUE=
+  GL_GENERATE_ERROR_H_FALSE='#'
+else
+  GL_GENERATE_ERROR_H_TRUE='#'
+  GL_GENERATE_ERROR_H_FALSE=
+fi
+:
+    if test -z "${GL_GENERATE_ERROR_H_TRUE}" && test -z "${GL_GENERATE_ERROR_H_FALSE}"; then
+    GL_GENERATE_ERROR_H_TRUE='#'
+    GL_GENERATE_ERROR_H_FALSE='#'
+  fi
+
+
+
+
+
+
+
+
+
+
+
+
+  if test $ac_cv_func_fcntl = no; then
+
+
+
+  if test $ac_cv_func_fcntl = no; then
+    HAVE_FCNTL=0
+  else
+    REPLACE_FCNTL=1
+  fi
+
+  else
+            { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether fcntl handles F_DUPFD correctly" >&5
+printf %s "checking whether fcntl handles F_DUPFD correctly... " >&6; }
+if test ${gl_cv_func_fcntl_f_dupfd_works+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test "$cross_compiling" = yes
+then :
+  case $host_os in
+            aix* | cygwin* | haiku*)
+               gl_cv_func_fcntl_f_dupfd_works="guessing no" ;;
+            *) gl_cv_func_fcntl_f_dupfd_works="guessing yes" ;;
+          esac
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <errno.h>
+              #include <fcntl.h>
+              #include <limits.h>
+              #include <sys/resource.h>
+              #include <unistd.h>
+
+
+$gl_mda_defines
+
+              #ifndef RLIM_SAVED_CUR
+              # define RLIM_SAVED_CUR RLIM_INFINITY
+              #endif
+              #ifndef RLIM_SAVED_MAX
+              # define RLIM_SAVED_MAX RLIM_INFINITY
+              #endif
+
+int
+main (void)
+{
+int result = 0;
+              int bad_fd = INT_MAX;
+              struct rlimit rlim;
+              if (getrlimit (RLIMIT_NOFILE, &rlim) == 0
+                  && 0 <= rlim.rlim_cur && rlim.rlim_cur <= INT_MAX
+                  && rlim.rlim_cur != RLIM_INFINITY
+                  && rlim.rlim_cur != RLIM_SAVED_MAX
+                  && rlim.rlim_cur != RLIM_SAVED_CUR)
+                bad_fd = rlim.rlim_cur;
+              if (fcntl (0, F_DUPFD, -1) != -1) result |= 1;
+              if (errno != EINVAL) result |= 2;
+              if (fcntl (0, F_DUPFD, bad_fd) != -1) result |= 4;
+              if (errno != EINVAL) result |= 8;
+              /* On OS/2 kLIBC, F_DUPFD does not work on a directory fd */
+              {
+                int fd;
+                fd = open (".", O_RDONLY);
+                if (fd == -1)
+                  result |= 16;
+                else if (fcntl (fd, F_DUPFD, STDERR_FILENO + 1) == -1)
+                  result |= 32;
+
+                close (fd);
+              }
+              return result;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+  gl_cv_func_fcntl_f_dupfd_works=yes
+else case e in #(
+  e) gl_cv_func_fcntl_f_dupfd_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_fcntl_f_dupfd_works" >&5
+printf "%s\n" "$gl_cv_func_fcntl_f_dupfd_works" >&6; }
+    case $gl_cv_func_fcntl_f_dupfd_works in
+      *yes) ;;
+      *)
+
+
+  if test $ac_cv_func_fcntl = no; then
+    HAVE_FCNTL=0
+  else
+    REPLACE_FCNTL=1
+  fi
+
+
+printf "%s\n" "#define FCNTL_DUPFD_BUGGY 1" >>confdefs.h
+ ;;
+    esac
+
+            { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether fcntl understands F_DUPFD_CLOEXEC" >&5
+printf %s "checking whether fcntl understands F_DUPFD_CLOEXEC... " >&6; }
+if test ${gl_cv_func_fcntl_f_dupfd_cloexec+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test "$cross_compiling" = yes
+then :
+  case "$host_os" in
+                     # Guess no on NetBSD.
+            netbsd*) gl_cv_func_fcntl_f_dupfd_cloexec="guessing no" ;;
+            *)       gl_cv_func_fcntl_f_dupfd_cloexec="$gl_cross_guess_normal" ;;
+          esac
+
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <fcntl.h>
+              #include <unistd.h>
+              int main (int argc, char *argv[])
+              {
+                if (argc == 1)
+                  /* parent process */
+                  {
+                    if (fcntl (1, F_DUPFD_CLOEXEC, 10) < 0)
+                      return 1;
+                    return execl ("./conftest", "./conftest", "child", NULL);
+                  }
+                else
+                  /* child process */
+                  return (fcntl (10, F_GETFL) < 0 ? 0 : 42);
+              }
+
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#ifdef __linux__
+/* The Linux kernel only added F_DUPFD_CLOEXEC in 2.6.24, so we always replace
+   it to support the semantics on older kernels that failed with EINVAL.  */
+choke me
+#endif
+
+int
+main (void)
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  gl_cv_func_fcntl_f_dupfd_cloexec=yes
+else case e in #(
+  e) gl_cv_func_fcntl_f_dupfd_cloexec="needs runtime check" ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+
+else case e in #(
+  e) gl_cv_func_fcntl_f_dupfd_cloexec=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_fcntl_f_dupfd_cloexec" >&5
+printf "%s\n" "$gl_cv_func_fcntl_f_dupfd_cloexec" >&6; }
+    case "$gl_cv_func_fcntl_f_dupfd_cloexec" in
+      *yes) ;;
+      *)
+
+
+  if test $ac_cv_func_fcntl = no; then
+    HAVE_FCNTL=0
+  else
+    REPLACE_FCNTL=1
+  fi
+
+                        ;;
+    esac
+  fi
+
+
+
+     if test $HAVE_FCNTL = 0 || test $REPLACE_FCNTL = 1; then
+  GL_COND_OBJ_FCNTL_TRUE=
+  GL_COND_OBJ_FCNTL_FALSE='#'
+else
+  GL_COND_OBJ_FCNTL_TRUE='#'
+  GL_COND_OBJ_FCNTL_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_FCNTL_TRUE}" && test -z "${GL_COND_OBJ_FCNTL_FALSE}"; then
+    GL_COND_OBJ_FCNTL_TRUE='#'
+    GL_COND_OBJ_FCNTL_FALSE='#'
+  fi
+
+
+
+
+
+
+
+
+
+
+          GL_GNULIB_FCNTL=1
+
+
+
+
+
+printf "%s\n" "#define GNULIB_TEST_FCNTL 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+printf "%s\n" "#define GNULIB_FILENAMECAT 1" >>confdefs.h
+
+
+
+
+
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for mempcpy" >&5
+printf %s "checking for mempcpy... " >&6; }
+if test ${gl_cv_onwards_func_mempcpy+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+  exec 9>&6 6>/dev/null
+
+       case "$host_os" in
+
+         linux*-android*)
+           ac_fn_check_decl "$LINENO" "mempcpy" "ac_cv_have_decl_mempcpy" "#include <string.h>
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_mempcpy" = xyes
+then :
+
+fi
+           if test $ac_cv_have_decl_mempcpy = yes; then
+             ac_fn_c_check_func "$LINENO" "mempcpy" "ac_cv_func_mempcpy"
+if test "x$ac_cv_func_mempcpy" = xyes
+then :
+
+fi
+
+             if test $ac_cv_func_mempcpy = yes; then
+               gl_cv_onwards_func_mempcpy=yes
+             else
+                                                            gl_cv_onwards_func_mempcpy='future OS version'
+             fi
+           else
+             gl_cv_onwards_func_mempcpy='future OS version'
+           fi
+           ;;
+
+
+         *)
+           ac_fn_c_check_func "$LINENO" "mempcpy" "ac_cv_func_mempcpy"
+if test "x$ac_cv_func_mempcpy" = xyes
+then :
+
+fi
+
+           gl_cv_onwards_func_mempcpy=$ac_cv_func_mempcpy
+           ;;
+
+       esac
+
+  exec 6>&9 9>&-
+
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_onwards_func_mempcpy" >&5
+printf "%s\n" "$gl_cv_onwards_func_mempcpy" >&6; }
+
+  case "$gl_cv_onwards_func_mempcpy" in
+    future*) ac_cv_func_mempcpy=no ;;
+    *)       ac_cv_func_mempcpy=$gl_cv_onwards_func_mempcpy ;;
+  esac
+  if test $ac_cv_func_mempcpy = yes; then
+
+printf "%s\n" "#define HAVE_MEMPCPY 1" >>confdefs.h
+
+  fi
+
+
+
+
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for flexible array member" >&5
+printf %s "checking for flexible array member... " >&6; }
+if test ${ac_cv_c_flexmember+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdlib.h>
+            #include <stdio.h>
+            #include <stddef.h>
+            struct m { struct m *next, **list; char name[]; };
+            struct s { struct s *p; struct m *m; int n; double d[]; };
+int
+main (void)
+{
+int m = getchar ();
+            size_t nbytes = offsetof (struct s, d) + m * sizeof (double);
+            nbytes += sizeof (struct s) - 1;
+            nbytes -= nbytes % sizeof (struct s);
+            struct s *p = malloc (nbytes);
+            p->p = p;
+            p->m = NULL;
+            p->d[0] = 0.0;
+            return p->d != (double *) NULL;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  ac_cv_c_flexmember=yes
+else case e in #(
+  e) ac_cv_c_flexmember=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: $ac_cv_c_flexmember" >&5
+printf "%s\n" "$ac_cv_c_flexmember" >&6; }
+  if test $ac_cv_c_flexmember = yes; then
+
+printf "%s\n" "#define FLEXIBLE_ARRAY_MEMBER /**/" >>confdefs.h
+
+  else
+    printf "%s\n" "#define FLEXIBLE_ARRAY_MEMBER 1" >>confdefs.h
+
+  fi
+
+
+
+
+
+     gl_fnmatch_required_lowercase=`
+    echo $gl_fnmatch_required | LC_ALL=C tr '[A-Z]' '[a-z]'
+  `
+
+  if test $ac_cv_func_fnmatch = no; then
+    HAVE_FNMATCH=0
+  else
+    gl_fnmatch_cache_var="gl_cv_func_fnmatch_${gl_fnmatch_required_lowercase}"
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working $gl_fnmatch_required fnmatch" >&5
+printf %s "checking for working $gl_fnmatch_required fnmatch... " >&6; }
+if eval test \${$gl_fnmatch_cache_var+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)                                    if test $gl_fnmatch_required = GNU; then
          gl_fnmatch_gnu_start=
          gl_fnmatch_gnu_end=
        else
@@ -26857,14 +30164,14 @@ else $as_nop
        if test "$cross_compiling" = yes
 then :
   case "$host_os" in
-                     # Guess yes on musl systems.
-            *-musl*) eval "$gl_fnmatch_cache_var=\"guessing yes\"" ;;
-                     # Guess no otherwise, even on glibc systems.
-            *)       eval "$gl_fnmatch_cache_var=\"guessing no\"" ;;
+                                # Guess yes on musl systems.
+            *-musl* | midipix*) eval "$gl_fnmatch_cache_var=\"guessing yes\"" ;;
+                                # Guess no otherwise, even on glibc systems.
+            *)                  eval "$gl_fnmatch_cache_var=\"guessing no\"" ;;
           esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <fnmatch.h>
               static int
@@ -26953,14 +30260,17 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   eval "$gl_fnmatch_cache_var=yes"
-else $as_nop
-  eval "$gl_fnmatch_cache_var=no"
+else case e in #(
+  e) eval "$gl_fnmatch_cache_var=no" ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
-
+       ;;
+esac
 fi
 eval ac_res=\$$gl_fnmatch_cache_var
               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
@@ -26978,17 +30288,41 @@ printf "%s\n" "$ac_res" >&6; }
 
 
 
-  FNMATCH_H='fnmatch.h'
-   if test -n "$FNMATCH_H"; then
+  GL_GENERATE_FNMATCH_H=true
+
+  fi
+
+
+
+
+
+  case "$GL_GENERATE_FNMATCH_H" in
+    false) FNMATCH_H='' ;;
+    true)
+                  if test -z "$FNMATCH_H"; then
+        FNMATCH_H="${gl_source_base_prefix}fnmatch.h"
+      fi
+      ;;
+    *) echo "*** GL_GENERATE_FNMATCH_H is not set correctly" 1>&2; exit 1 ;;
+  esac
+
+
+     if $GL_GENERATE_FNMATCH_H; then
   GL_GENERATE_FNMATCH_H_TRUE=
   GL_GENERATE_FNMATCH_H_FALSE='#'
 else
   GL_GENERATE_FNMATCH_H_TRUE='#'
   GL_GENERATE_FNMATCH_H_FALSE=
 fi
+:
+    if test -z "${GL_GENERATE_FNMATCH_H_TRUE}" && test -z "${GL_GENERATE_FNMATCH_H_FALSE}"; then
+    GL_GENERATE_FNMATCH_H_TRUE='#'
+    GL_GENERATE_FNMATCH_H_FALSE='#'
+  fi
+
+
 
 
-  fi
 
   if test $HAVE_FNMATCH = 0 || test $REPLACE_FNMATCH = 1; then
 
@@ -27060,69 +30394,42 @@ printf "%s\n" "#define GNULIB_FNMATCH_GNU 1" >>confdefs.h
 
 
 
-  case "$host_os" in
-    mingw* | pw*)
-            REPLACE_FOPEN=1
-            gl_cv_func_fopen_slash="guessing no"
+
+  case "$GL_GENERATE_FNMATCH_H" in
+    false) FNMATCH_H='' ;;
+    true)
+                  if test -z "$FNMATCH_H"; then
+        FNMATCH_H="${gl_source_base_prefix}fnmatch.h"
+      fi
       ;;
-    *)
-                  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether fopen recognizes a trailing slash" >&5
-printf %s "checking whether fopen recognizes a trailing slash... " >&6; }
-if test ${gl_cv_func_fopen_slash+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
+    *) echo "*** GL_GENERATE_FNMATCH_H is not set correctly" 1>&2; exit 1 ;;
+  esac
 
-          if test "$cross_compiling" = yes
-then :
 
-             case "$host_os" in
-               aix* | hpux* | solaris2.[0-9] | solaris2.[0-9].*)
-                 gl_cv_func_fopen_slash="guessing no" ;;
-               *)
-                 gl_cv_func_fopen_slash="guessing yes" ;;
-             esac
+     if $GL_GENERATE_FNMATCH_H; then
+  GL_GENERATE_FNMATCH_H_TRUE=
+  GL_GENERATE_FNMATCH_H_FALSE='#'
+else
+  GL_GENERATE_FNMATCH_H_TRUE='#'
+  GL_GENERATE_FNMATCH_H_FALSE=
+fi
+:
+    if test -z "${GL_GENERATE_FNMATCH_H_TRUE}" && test -z "${GL_GENERATE_FNMATCH_H_FALSE}"; then
+    GL_GENERATE_FNMATCH_H_TRUE='#'
+    GL_GENERATE_FNMATCH_H_FALSE='#'
+  fi
+
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <stddef.h>
-#include <stdio.h>
-int main ()
-{
-  FILE *fp = fopen ("conftest.sl/", "w");
-  int result = (fp != NULL);
-  if (fp != NULL)
-    fclose (fp);
-  return result;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
-  gl_cv_func_fopen_slash=yes
-else $as_nop
-  gl_cv_func_fopen_slash=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
 
-          rm -f conftest.sl
 
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fopen_slash" >&5
-printf "%s\n" "$gl_cv_func_fopen_slash" >&6; }
-      ;;
-  esac
-  case "$gl_cv_func_fopen_slash" in
-    *no)
 
-printf "%s\n" "#define FOPEN_TRAILING_SLASH_BUG 1" >>confdefs.h
 
-      REPLACE_FOPEN=1
-      ;;
-  esac
+
+
+  if test $REPLACE_FCLOSE = 1; then
+    REPLACE_FOPEN=1
+  fi
 
   if test $REPLACE_FOPEN = 1; then
 
@@ -27163,21 +30470,21 @@ printf %s "checking whether fopen supports the mode character 'x'... " >&6; }
 if test ${gl_cv_func_fopen_mode_x+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  rm -f conftest.x
+else case e in #(
+  e) rm -f conftest.x
      if test "$cross_compiling" = yes
 then :
   case "$host_os" in
           # Guess yes on glibc and musl systems.
-          linux*-gnu* | gnu* | kfreebsd*-gnu | *-musl*)
+          linux*-gnu* | gnu* | kfreebsd*-gnu | *-musl* | midipix*)
             gl_cv_func_fopen_mode_x="guessing yes" ;;
           # If we don't know, obey --enable-cross-guesses.
           *)
             gl_cv_func_fopen_mode_x="$gl_cross_guess_normal" ;;
         esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <stdio.h>
@@ -27201,15 +30508,18 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_fopen_mode_x=yes
-else $as_nop
-  gl_cv_func_fopen_mode_x=no
+else case e in #(
+  e) gl_cv_func_fopen_mode_x=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
      rm -f conftest.x
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fopen_mode_x" >&5
 printf "%s\n" "$gl_cv_func_fopen_mode_x" >&6; }
@@ -27218,13 +30528,13 @@ printf %s "checking whether fopen supports the mode character 'e'... " >&6; }
 if test ${gl_cv_func_fopen_mode_e+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  echo foo > conftest.x
+else case e in #(
+  e) echo foo > conftest.x
      if test "$cross_compiling" = yes
 then :
   case "$host_os" in
           # Guess yes on glibc and musl systems.
-          linux*-gnu* | gnu* | kfreebsd*-gnu | *-musl*)
+          linux*-gnu* | gnu* | kfreebsd*-gnu | *-musl* | midipix*)
             gl_cv_func_fopen_mode_e="guessing yes" ;;
           # Guess no on native Windows.
           mingw*)
@@ -27234,8 +30544,8 @@ then :
             gl_cv_func_fopen_mode_e="$gl_cross_guess_normal" ;;
         esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <stdio.h>
@@ -27264,26 +30574,30 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_fopen_mode_e=yes
-else $as_nop
-  gl_cv_func_fopen_mode_e=no
+else case e in #(
+  e) gl_cv_func_fopen_mode_e=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
      rm -f conftest.x
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fopen_mode_e" >&5
 printf "%s\n" "$gl_cv_func_fopen_mode_e" >&6; }
+  REPLACE_FOPEN_FOR_FOPEN_GNU="$REPLACE_FOPEN"
   case "$gl_cv_func_fopen_mode_x" in
-    *no) REPLACE_FOPEN=1 ;;
+    *no) REPLACE_FOPEN_FOR_FOPEN_GNU=1 ;;
   esac
   case "$gl_cv_func_fopen_mode_e" in
-    *no) REPLACE_FOPEN=1 ;;
+    *no) REPLACE_FOPEN_FOR_FOPEN_GNU=1 ;;
   esac
 
-  if test $REPLACE_FOPEN = 1; then
+  if test $REPLACE_FOPEN_FOR_FOPEN_GNU = 1; then
 
 
 
@@ -27304,13 +30618,32 @@ printf "%s\n" "#define GNULIB_FOPEN_GNU 1" >>confdefs.h
 
 
 
+
+
+
+
+
+
+          GL_GNULIB_FOPEN_GNU=1
+
+
+
+
+
+printf "%s\n" "#define GNULIB_TEST_FOPEN_GNU 1" >>confdefs.h
+
+
+
+
+
+
                           { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether free is known to preserve errno" >&5
 printf %s "checking whether free is known to preserve errno... " >&6; }
 if test ${gl_cv_func_free_preserves_errno+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdlib.h>
 
@@ -27331,11 +30664,13 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_func_free_preserves_errno=yes
-else $as_nop
-  gl_cv_func_free_preserves_errno=no
+else case e in #(
+  e) gl_cv_func_free_preserves_errno=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_func_free_preserves_errno" >&5
 printf "%s\n" "$gl_cv_func_free_preserves_errno" >&6; }
@@ -27349,35 +30684,41 @@ printf "%s\n" "#define HAVE_FREE_POSIX 1" >>confdefs.h
    *) REPLACE_FREE=1 ;;
   esac
 
-  if test $REPLACE_FREE = 1; then
 
+     if test $REPLACE_FREE = 1; then
+  GL_COND_OBJ_FREE_TRUE=
+  GL_COND_OBJ_FREE_FALSE='#'
+else
+  GL_COND_OBJ_FREE_TRUE='#'
+  GL_COND_OBJ_FREE_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_FREE_TRUE}" && test -z "${GL_COND_OBJ_FREE_FALSE}"; then
+    GL_COND_OBJ_FREE_TRUE='#'
+    GL_COND_OBJ_FREE_FALSE='#'
+  fi
 
+  if test -z "$GL_COND_OBJ_FREE_TRUE"; then :
 
+    :
 
+fi
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS free.$ac_objext"
 
-    :
-  fi
 
 
 
 
+          GL_GNULIB_FREE_POSIX=1
 
 
 
 
 
-          GL_GNULIB_FREE_POSIX=1
-
-
-
-
-
-printf "%s\n" "#define GNULIB_TEST_FREE_POSIX 1" >>confdefs.h
+printf "%s\n" "#define GNULIB_TEST_FREE_POSIX 1" >>confdefs.h
 
 
 
@@ -27394,15 +30735,15 @@ printf %s "checking whether freopen works on closed fds... " >&6; }
 if test ${gl_cv_func_freopen_works_on_closed+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test "$cross_compiling" = yes
+else case e in #(
+  e) if test "$cross_compiling" = yes
 then :
   case $host_os in
               *gnu*) gl_cv_func_freopen_works_on_closed="guessing no" ;;
               *)     gl_cv_func_freopen_works_on_closed="guessing yes";;
             esac
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdio.h>
                 #include <unistd.h>
@@ -27424,13 +30765,16 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_freopen_works_on_closed=yes
-else $as_nop
-  gl_cv_func_freopen_works_on_closed=no
+else case e in #(
+  e) gl_cv_func_freopen_works_on_closed=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_freopen_works_on_closed" >&5
 printf "%s\n" "$gl_cv_func_freopen_works_on_closed" >&6; }
@@ -27439,19 +30783,25 @@ printf "%s\n" "$gl_cv_func_freopen_works_on_closed" >&6; }
       esac
   esac
 
-  if test $REPLACE_FREOPEN = 1; then
-
-
-
-
-
-
 
+     if test $REPLACE_FREOPEN = 1; then
+  GL_COND_OBJ_FREOPEN_TRUE=
+  GL_COND_OBJ_FREOPEN_FALSE='#'
+else
+  GL_COND_OBJ_FREOPEN_TRUE='#'
+  GL_COND_OBJ_FREOPEN_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_FREOPEN_TRUE}" && test -z "${GL_COND_OBJ_FREOPEN_FALSE}"; then
+    GL_COND_OBJ_FREOPEN_TRUE='#'
+    GL_COND_OBJ_FREOPEN_FALSE='#'
+  fi
 
-  gl_LIBOBJS="$gl_LIBOBJS freopen.$ac_objext"
+  if test -z "$GL_COND_OBJ_FREOPEN_TRUE"; then :
 
     :
-  fi
+
+fi
 
 
 
@@ -27483,16 +30833,21 @@ printf "%s\n" "#define GNULIB_TEST_FREOPEN 1" >>confdefs.h
 
 
 
-  if test $REPLACE_FSTAT = 1; then
-
-
-
-
-
-
 
+     if test $REPLACE_FSTAT = 1; then
+  GL_COND_OBJ_FSTAT_TRUE=
+  GL_COND_OBJ_FSTAT_FALSE='#'
+else
+  GL_COND_OBJ_FSTAT_TRUE='#'
+  GL_COND_OBJ_FSTAT_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_FSTAT_TRUE}" && test -z "${GL_COND_OBJ_FSTAT_FALSE}"; then
+    GL_COND_OBJ_FSTAT_TRUE='#'
+    GL_COND_OBJ_FSTAT_FALSE='#'
+  fi
 
-  gl_LIBOBJS="$gl_LIBOBJS fstat.$ac_objext"
+  if test -z "$GL_COND_OBJ_FSTAT_TRUE"; then :
 
     case "$host_os" in
       mingw*)
@@ -27513,7 +30868,8 @@ printf "%s\n" "#define GNULIB_TEST_FREOPEN 1" >>confdefs.h
 
   :
 
-  fi
+
+fi
 
 
 
@@ -27545,8 +30901,8 @@ printf %s "checking whether getdtablesize works... " >&6; }
 if test ${gl_cv_func_getdtablesize_works+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-                                                   case "$host_os" in
+else case e in #(
+  e)                                                  case "$host_os" in
          vms*) gl_cv_func_getdtablesize_works="no (limitation)" ;;
          *)
                                                        if test "$cross_compiling" = yes
@@ -27557,8 +30913,8 @@ then :
                 *) gl_cv_func_getdtablesize_works="guessing yes" ;;
               esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
              #include <unistd.h>
@@ -27583,16 +30939,19 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_getdtablesize_works=yes
-else $as_nop
-  gl_cv_func_getdtablesize_works=no
+else case e in #(
+  e) gl_cv_func_getdtablesize_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
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
            ;;
        esac
-
+       ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getdtablesize_works" >&5
 printf "%s\n" "$gl_cv_func_getdtablesize_works" >&6; }
@@ -27604,19 +30963,25 @@ printf "%s\n" "$gl_cv_func_getdtablesize_works" >&6; }
     HAVE_GETDTABLESIZE=0
   fi
 
-  if test $HAVE_GETDTABLESIZE = 0 || test $REPLACE_GETDTABLESIZE = 1; then
-
-
-
-
-
-
 
+     if test $HAVE_GETDTABLESIZE = 0 || test $REPLACE_GETDTABLESIZE = 1; then
+  GL_COND_OBJ_GETDTABLESIZE_TRUE=
+  GL_COND_OBJ_GETDTABLESIZE_FALSE='#'
+else
+  GL_COND_OBJ_GETDTABLESIZE_TRUE='#'
+  GL_COND_OBJ_GETDTABLESIZE_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_GETDTABLESIZE_TRUE}" && test -z "${GL_COND_OBJ_GETDTABLESIZE_FALSE}"; then
+    GL_COND_OBJ_GETDTABLESIZE_TRUE='#'
+    GL_COND_OBJ_GETDTABLESIZE_FALSE='#'
+  fi
 
-  gl_LIBOBJS="$gl_LIBOBJS getdtablesize.$ac_objext"
+  if test -z "$GL_COND_OBJ_GETDTABLESIZE_TRUE"; then :
 
     :
-  fi
+
+fi
 
 
 
@@ -27650,6 +31015,8 @@ printf "%s\n" "#define GNULIB_TEST_GETDTABLESIZE 1" >>confdefs.h
       REPLACE_GETOPT=1
     fi
 
+  GL_GENERATE_GETOPT_H=false
+  GL_GENERATE_GETOPT_CDEFS_H=false
   if test $REPLACE_GETOPT = 1; then
 
 
@@ -27663,14 +31030,39 @@ printf "%s\n" "#define GNULIB_TEST_GETDTABLESIZE 1" >>confdefs.h
 
 printf "%s\n" "#define __GETOPT_PREFIX rpl_" >>confdefs.h
 
-  GETOPT_H=getopt.h
-  GETOPT_CDEFS_H=getopt-cdefs.h
+  GL_GENERATE_GETOPT_H=true
+  GL_GENERATE_GETOPT_CDEFS_H=true
+
+  fi
+
+
 
 
 
+  case "$GL_GENERATE_GETOPT_H" in
+    false) GETOPT_H='' ;;
+    true)
+                  if test -z "$GETOPT_H"; then
+        GETOPT_H="${gl_source_base_prefix}getopt.h"
+      fi
+      ;;
+    *) echo "*** GL_GENERATE_GETOPT_H is not set correctly" 1>&2; exit 1 ;;
+  esac
+
+
+     if $GL_GENERATE_GETOPT_H; then
+  GL_GENERATE_GETOPT_H_TRUE=
+  GL_GENERATE_GETOPT_H_FALSE='#'
+else
+  GL_GENERATE_GETOPT_H_TRUE='#'
+  GL_GENERATE_GETOPT_H_FALSE=
+fi
+:
+    if test -z "${GL_GENERATE_GETOPT_H_TRUE}" && test -z "${GL_GENERATE_GETOPT_H_FALSE}"; then
+    GL_GENERATE_GETOPT_H_TRUE='#'
+    GL_GENERATE_GETOPT_H_FALSE='#'
   fi
 
-  if test $REPLACE_GETOPT = 1; then
 
 
 
@@ -27679,17 +31071,50 @@ printf "%s\n" "#define __GETOPT_PREFIX rpl_" >>confdefs.h
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS getopt.$ac_objext"
+  case "$GL_GENERATE_GETOPT_CDEFS_H" in
+    false) GETOPT_CDEFS_H='' ;;
+    true)
+                  if test -z "$GETOPT_CDEFS_H"; then
+        GETOPT_CDEFS_H="${gl_source_base_prefix}getopt-cdefs.h"
+      fi
+      ;;
+    *) echo "*** GL_GENERATE_GETOPT_CDEFS_H is not set correctly" 1>&2; exit 1 ;;
+  esac
 
 
+     if $GL_GENERATE_GETOPT_CDEFS_H; then
+  GL_GENERATE_GETOPT_CDEFS_H_TRUE=
+  GL_GENERATE_GETOPT_CDEFS_H_FALSE='#'
+else
+  GL_GENERATE_GETOPT_CDEFS_H_TRUE='#'
+  GL_GENERATE_GETOPT_CDEFS_H_FALSE=
+fi
+:
+    if test -z "${GL_GENERATE_GETOPT_CDEFS_H_TRUE}" && test -z "${GL_GENERATE_GETOPT_CDEFS_H_FALSE}"; then
+    GL_GENERATE_GETOPT_CDEFS_H_TRUE='#'
+    GL_GENERATE_GETOPT_CDEFS_H_FALSE='#'
+  fi
+
 
 
 
 
 
 
+     if test $REPLACE_GETOPT = 1; then
+  GL_COND_OBJ_GETOPT_TRUE=
+  GL_COND_OBJ_GETOPT_FALSE='#'
+else
+  GL_COND_OBJ_GETOPT_TRUE='#'
+  GL_COND_OBJ_GETOPT_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_GETOPT_TRUE}" && test -z "${GL_COND_OBJ_GETOPT_FALSE}"; then
+    GL_COND_OBJ_GETOPT_TRUE='#'
+    GL_COND_OBJ_GETOPT_FALSE='#'
+  fi
 
-  gl_LIBOBJS="$gl_LIBOBJS getopt1.$ac_objext"
+  if test -z "$GL_COND_OBJ_GETOPT_TRUE"; then :
 
 
 
@@ -27700,7 +31125,8 @@ printf "%s\n" "#define __GETOPT_PREFIX rpl_" >>confdefs.h
   GL_GNULIB_UNISTD_H_GETOPT=1
 
 
-  fi
+
+fi
 
 
 
@@ -27729,8 +31155,8 @@ printf %s "checking for getpagesize... " >&6; }
 if test ${gl_cv_func_getpagesize+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <unistd.h>
 int
@@ -27745,12 +31171,14 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   gl_cv_func_getpagesize=yes
-else $as_nop
-  gl_cv_func_getpagesize=no
+else case e in #(
+  e) gl_cv_func_getpagesize=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getpagesize" >&5
 printf "%s\n" "$gl_cv_func_getpagesize" >&6; }
 if test "x$ac_cv_have_decl_getpagesize" = xyes
 then :
 
-else $as_nop
-  HAVE_DECL_GETPAGESIZE=0
+else case e in #(
+  e) HAVE_DECL_GETPAGESIZE=0 ;;
+esac
 fi
 
-  if test $REPLACE_GETPAGESIZE = 1; then
 
+     if test $REPLACE_GETPAGESIZE = 1; then
+  GL_COND_OBJ_GETPAGESIZE_TRUE=
+  GL_COND_OBJ_GETPAGESIZE_FALSE='#'
+else
+  GL_COND_OBJ_GETPAGESIZE_TRUE='#'
+  GL_COND_OBJ_GETPAGESIZE_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_GETPAGESIZE_TRUE}" && test -z "${GL_COND_OBJ_GETPAGESIZE_FALSE}"; then
+    GL_COND_OBJ_GETPAGESIZE_TRUE='#'
+    GL_COND_OBJ_GETPAGESIZE_FALSE='#'
+  fi
 
 
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS getpagesize.$ac_objext"
 
-  fi
 
 
+          GL_GNULIB_GETPAGESIZE=1
 
 
 
 
 
+printf "%s\n" "#define GNULIB_TEST_GETPAGESIZE 1" >>confdefs.h
 
 
-          GL_GNULIB_GETPAGESIZE=1
 
 
 
 
 
-printf "%s\n" "#define GNULIB_TEST_GETPAGESIZE 1" >>confdefs.h
 
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for getprogname" >&5
+printf %s "checking for getprogname... " >&6; }
+if test ${gl_cv_onwards_func_getprogname+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+  exec 9>&6 6>/dev/null
+
+       case "$host_os" in
+
+         linux*-android*)
+           ac_fn_check_decl "$LINENO" "getprogname" "ac_cv_have_decl_getprogname" "#include <stdlib.h>
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_getprogname" = xyes
+then :
+
+fi
+           if test $ac_cv_have_decl_getprogname = yes; then
+             ac_fn_c_check_func "$LINENO" "getprogname" "ac_cv_func_getprogname"
+if test "x$ac_cv_func_getprogname" = xyes
+then :
+
+fi
+
+             if test $ac_cv_func_getprogname = yes; then
+               gl_cv_onwards_func_getprogname=yes
+             else
+                                                            gl_cv_onwards_func_getprogname='future OS version'
+             fi
+           else
+             gl_cv_onwards_func_getprogname='future OS version'
+           fi
+           ;;
+
+
+         *)
+           ac_fn_c_check_func "$LINENO" "getprogname" "ac_cv_func_getprogname"
+if test "x$ac_cv_func_getprogname" = xyes
+then :
 
+fi
+
+           gl_cv_onwards_func_getprogname=$ac_cv_func_getprogname
+           ;;
+
+       esac
+
+  exec 6>&9 9>&-
+
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_onwards_func_getprogname" >&5
+printf "%s\n" "$gl_cv_onwards_func_getprogname" >&6; }
+
+  case "$gl_cv_onwards_func_getprogname" in
+    future*) ac_cv_func_getprogname=no ;;
+    *)       ac_cv_func_getprogname=$gl_cv_onwards_func_getprogname ;;
+  esac
+  if test $ac_cv_func_getprogname = yes; then
+
+printf "%s\n" "#define HAVE_GETPROGNAME 1" >>confdefs.h
+
+  fi
+
+
+  if test $ac_cv_func_getprogname = no; then
+    HAVE_GETPROGNAME=0
+    case "$gl_cv_onwards_func_getprogname" in
+      future*) REPLACE_GETPROGNAME=1 ;;
+    esac
+  fi
+  ac_fn_check_decl "$LINENO" "program_invocation_name" "ac_cv_have_decl_program_invocation_name" "#include <errno.h>
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_program_invocation_name" = xyes
+then :
+  ac_have_decl=1
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
+fi
+printf "%s\n" "#define HAVE_DECL_PROGRAM_INVOCATION_NAME $ac_have_decl" >>confdefs.h
+if test $ac_have_decl = 1
+then :
+
+else case e in #(
+  e) HAVE_DECL_PROGRAM_INVOCATION_NAME=0 ;;
+esac
+fi
+
+
+
+     if test $HAVE_GETPROGNAME = 0 || test $REPLACE_GETPROGNAME = 1; then
+  GL_COND_OBJ_GETPROGNAME_TRUE=
+  GL_COND_OBJ_GETPROGNAME_FALSE='#'
+else
+  GL_COND_OBJ_GETPROGNAME_TRUE='#'
+  GL_COND_OBJ_GETPROGNAME_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_GETPROGNAME_TRUE}" && test -z "${GL_COND_OBJ_GETPROGNAME_FALSE}"; then
+    GL_COND_OBJ_GETPROGNAME_TRUE='#'
+    GL_COND_OBJ_GETPROGNAME_FALSE='#'
+  fi
+
+  if test -z "$GL_COND_OBJ_GETPROGNAME_TRUE"; then :
 
 
 
@@ -27831,8 +31375,9 @@ printf "%s\n" "#define GNULIB_TEST_GETPAGESIZE 1" >>confdefs.h
 if test "x$ac_cv_have_decl_program_invocation_name" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_PROGRAM_INVOCATION_NAME $ac_have_decl" >>confdefs.h
 if test $ac_have_decl = 1
@@ -27845,8 +31390,9 @@ fi
 if test "x$ac_cv_have_decl_program_invocation_short_name" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME $ac_have_decl" >>confdefs.h
 if test $ac_have_decl = 1
@@ -27859,8 +31405,9 @@ fi
 if test "x$ac_cv_have_decl___argv" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL___ARGV $ac_have_decl" >>confdefs.h
 if test $ac_have_decl = 1
@@ -27878,8 +31425,8 @@ printf %s "checking whether __progname is defined in default libraries... " >&6;
 if test ${gl_cv_var___progname+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
         gl_cv_var___progname=
         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -27901,7 +31448,8 @@ fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_var___progname" >&5
 printf "%s\n" "$gl_cv_var___progname" >&6; }
@@ -27913,19 +31461,116 @@ printf "%s\n" "#define HAVE_VAR___PROGNAME 1" >>confdefs.h
   fi
 
 
+fi
+
+
+
+
+
+
+
+
+
+          GL_GNULIB_GETPROGNAME=1
+
+
+
+
+
+printf "%s\n" "#define GNULIB_TEST_GETPROGNAME 1" >>confdefs.h
+
+
+
+
+
+
+
+
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for getrandom" >&5
+printf %s "checking for getrandom... " >&6; }
+if test ${gl_cv_onwards_func_getrandom+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+  exec 9>&6 6>/dev/null
+
+       case "$host_os" in
 
+         linux*-android*)
+           ac_fn_check_decl "$LINENO" "getrandom" "ac_cv_have_decl_getrandom" "/* Additional includes are needed before <sys/random.h> on uClibc
+         and Mac OS X.  */
+      #include <sys/types.h>
+      #include <stdlib.h>
+      #include <sys/random.h>
+
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_getrandom" = xyes
+then :
+
+fi
+           if test $ac_cv_have_decl_getrandom = yes; then
+             ac_fn_c_check_func "$LINENO" "getrandom" "ac_cv_func_getrandom"
+if test "x$ac_cv_func_getrandom" = xyes
+then :
+
+fi
+
+             if test $ac_cv_func_getrandom = yes; then
+               gl_cv_onwards_func_getrandom=yes
+             else
+                                                            gl_cv_onwards_func_getrandom='future OS version'
+             fi
+           else
+             gl_cv_onwards_func_getrandom='future OS version'
+           fi
+           ;;
+
+
+         *)
+           ac_fn_c_check_func "$LINENO" "getrandom" "ac_cv_func_getrandom"
+if test "x$ac_cv_func_getrandom" = xyes
+then :
+
+fi
+
+           gl_cv_onwards_func_getrandom=$ac_cv_func_getrandom
+           ;;
+
+       esac
+
+  exec 6>&9 9>&-
+
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_onwards_func_getrandom" >&5
+printf "%s\n" "$gl_cv_onwards_func_getrandom" >&6; }
+
+  case "$gl_cv_onwards_func_getrandom" in
+    future*) ac_cv_func_getrandom=no ;;
+    *)       ac_cv_func_getrandom=$gl_cv_onwards_func_getrandom ;;
+  esac
+  if test $ac_cv_func_getrandom = yes; then
+
+printf "%s\n" "#define HAVE_GETRANDOM 1" >>confdefs.h
+
+  fi
 
 
   if test "$ac_cv_func_getrandom" != yes; then
     HAVE_GETRANDOM=0
+    case "$gl_cv_onwards_func_getrandom" in
+      future*) REPLACE_GETRANDOM=1 ;;
+    esac
   else
         { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether getrandom is compatible with its GNU+BSD signature" >&5
 printf %s "checking whether getrandom is compatible with its GNU+BSD signature... " >&6; }
 if test ${gl_cv_func_getrandom_ok+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 /* Additional includes are needed before <sys/random.h> on uClibc
                  and Mac OS X.  */
@@ -27946,11 +31591,13 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_func_getrandom_ok=yes
-else $as_nop
-  gl_cv_func_getrandom_ok=no
+else case e in #(
+  e) gl_cv_func_getrandom_ok=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_func_getrandom_ok" >&5
 printf "%s\n" "$gl_cv_func_getrandom_ok" >&6; }
@@ -27975,8 +31622,8 @@ printf %s "checking whether the bcrypt library is guaranteed to be present... "
 if test ${gl_cv_lib_assume_bcrypt+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <windows.h>
 int
@@ -27994,11 +31641,13 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_lib_assume_bcrypt=yes
-else $as_nop
-  gl_cv_lib_assume_bcrypt=no
+else case e in #(
+  e) gl_cv_lib_assume_bcrypt=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_lib_assume_bcrypt" >&5
 printf "%s\n" "$gl_cv_lib_assume_bcrypt" >&6; }
@@ -28006,44 +31655,51 @@ printf "%s\n" "$gl_cv_lib_assume_bcrypt" >&6; }
 
 printf "%s\n" "#define HAVE_LIB_BCRYPT 1" >>confdefs.h
 
-        LIB_GETRANDOM='-lbcrypt'
+        GETRANDOM_LIB='-lbcrypt'
       else
-        LIB_GETRANDOM='-ladvapi32'
+        GETRANDOM_LIB='-ladvapi32'
       fi
       ;;
     *)
-      LIB_GETRANDOM= ;;
+      GETRANDOM_LIB= ;;
   esac
 
-
-  if test $HAVE_GETRANDOM = 0 || test $REPLACE_GETRANDOM = 1; then
-
-
+    LIB_GETRANDOM="$GETRANDOM_LIB"
 
 
 
+     if test $HAVE_GETRANDOM = 0 || test $REPLACE_GETRANDOM = 1; then
+  GL_COND_OBJ_GETRANDOM_TRUE=
+  GL_COND_OBJ_GETRANDOM_FALSE='#'
+else
+  GL_COND_OBJ_GETRANDOM_TRUE='#'
+  GL_COND_OBJ_GETRANDOM_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_GETRANDOM_TRUE}" && test -z "${GL_COND_OBJ_GETRANDOM_FALSE}"; then
+    GL_COND_OBJ_GETRANDOM_TRUE='#'
+    GL_COND_OBJ_GETRANDOM_FALSE='#'
+  fi
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS getrandom.$ac_objext"
 
-  fi
 
 
 
 
 
 
+          GL_GNULIB_GETRANDOM=1
 
 
 
-          GL_GNULIB_GETRANDOM=1
 
 
+printf "%s\n" "#define GNULIB_TEST_GETRANDOM 1" >>confdefs.h
 
 
 
-printf "%s\n" "#define GNULIB_TEST_GETRANDOM 1" >>confdefs.h
 
 
 
@@ -28051,8 +31707,11 @@ printf "%s\n" "#define GNULIB_TEST_GETRANDOM 1" >>confdefs.h
 
 
 
+  if test $gl_cv_func_timespec_get = yes; then
 
+printf "%s\n" "#define HAVE_TIMESPEC_GET 1" >>confdefs.h
 
+  fi
 
 
 
@@ -28070,8 +31729,8 @@ printf %s "checking for gettimeofday with POSIX signature... " >&6; }
 if test ${gl_cv_func_gettimeofday_posix_signature+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/time.h>
               struct timeval c;
@@ -28097,8 +31756,8 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_func_gettimeofday_posix_signature=yes
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/time.h>
 int gettimeofday (struct timeval *restrict, struct timezone *restrict);
@@ -28114,12 +31773,15 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_func_gettimeofday_posix_signature=almost
-else $as_nop
-  gl_cv_func_gettimeofday_posix_signature=no
+else case e in #(
+  e) gl_cv_func_gettimeofday_posix_signature=no ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+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_func_gettimeofday_posix_signature" >&5
 printf "%s\n" "$gl_cv_func_gettimeofday_posix_signature" >&6; }
@@ -28139,19 +31801,25 @@ printf "%s\n" "$gl_cv_func_gettimeofday_posix_signature" >&6; }
 printf "%s\n" "#define GETTIMEOFDAY_TIMEZONE $gl_gettimeofday_timezone" >>confdefs.h
 
 
-  if test $HAVE_GETTIMEOFDAY = 0 || test $REPLACE_GETTIMEOFDAY = 1; then
-
-
-
-
-
-
 
+     if test $HAVE_GETTIMEOFDAY = 0 || test $REPLACE_GETTIMEOFDAY = 1; then
+  GL_COND_OBJ_GETTIMEOFDAY_TRUE=
+  GL_COND_OBJ_GETTIMEOFDAY_FALSE='#'
+else
+  GL_COND_OBJ_GETTIMEOFDAY_TRUE='#'
+  GL_COND_OBJ_GETTIMEOFDAY_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_GETTIMEOFDAY_TRUE}" && test -z "${GL_COND_OBJ_GETTIMEOFDAY_FALSE}"; then
+    GL_COND_OBJ_GETTIMEOFDAY_TRUE='#'
+    GL_COND_OBJ_GETTIMEOFDAY_FALSE='#'
+  fi
 
-  gl_LIBOBJS="$gl_LIBOBJS gettimeofday.$ac_objext"
+  if test -z "$GL_COND_OBJ_GETTIMEOFDAY_TRUE"; then :
 
     :
-  fi
+
+fi
 
 
 
@@ -28172,6 +31840,7 @@ printf "%s\n" "#define GNULIB_TEST_GETTIMEOFDAY 1" >>confdefs.h
 
 
 
+
    if LC_ALL=C ${MAKE-make} --version 2>/dev/null | sed -e '2,$d' | grep GNU >/dev/null; then
   GNU_MAKE_TRUE=
   GNU_MAKE_FALSE='#'
@@ -28190,8 +31859,9 @@ fi
   ac_config_links="$ac_config_links $GNUmakefile:$GNUmakefile"
 
 
-  LIB_HARD_LOCALE="$LIB_SETLOCALE_NULL"
+  HARD_LOCALE_LIB="$SETLOCALE_NULL_LIB"
 
+    LIB_HARD_LOCALE="$HARD_LOCALE_LIB"
 
 
 
 
 
 
-          GL_GNULIB_ICONV=1
-
-
-
 
+          GL_GNULIB_ICONV=1
 
 
 
 
 
 
-  if test "$am_cv_func_iconv" = yes; then
 
 
 
 
+  case "$GL_GENERATE_ICONV_H" in
+    false) ICONV_H='' ;;
+    true)
+                  if test -z "$ICONV_H"; then
+        ICONV_H="${gl_source_base_prefix}iconv.h"
+      fi
+      ;;
+    *) echo "*** GL_GENERATE_ICONV_H is not set correctly" 1>&2; exit 1 ;;
+  esac
 
 
-  ICONV_H='iconv.h'
-   if test -n "$ICONV_H"; then
+     if $GL_GENERATE_ICONV_H; then
   GL_GENERATE_ICONV_H_TRUE=
   GL_GENERATE_ICONV_H_FALSE='#'
 else
   GL_GENERATE_ICONV_H_TRUE='#'
   GL_GENERATE_ICONV_H_FALSE=
 fi
+:
+    if test -z "${GL_GENERATE_ICONV_H_TRUE}" && test -z "${GL_GENERATE_ICONV_H_FALSE}"; then
+    GL_GENERATE_ICONV_H_TRUE='#'
+    GL_GENERATE_ICONV_H_FALSE='#'
+  fi
+
+
+
 
 
+
+
+
+
+
+  if test "$am_cv_func_iconv" = yes; then
+
+
+
+
+
+
+  GL_GENERATE_ICONV_H=true
+
             cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "gnu_iconv" >/dev/null 2>&1
+  $EGREP_TRADITIONAL "gnu_iconv" >/dev/null 2>&1
 then :
   gl_func_iconv_gnu=yes
-else $as_nop
-  gl_func_iconv_gnu=no
+else case e in #(
+  e) gl_func_iconv_gnu=no ;;
+esac
 fi
 rm -rf conftest*
 
@@ -28275,15 +31972,7 @@ printf "%s\n" "#define ICONV_FLAVOR $iconv_flavor" >>confdefs.h
 
 
 
-  ICONV_H='iconv.h'
-   if test -n "$ICONV_H"; then
-  GL_GENERATE_ICONV_H_TRUE=
-  GL_GENERATE_ICONV_H_FALSE='#'
-else
-  GL_GENERATE_ICONV_H_TRUE='#'
-  GL_GENERATE_ICONV_H_FALSE=
-fi
-
+  GL_GENERATE_ICONV_H=true
 
   REPLACE_ICONV_OPEN=1
 
 
   fi
 
-  if test $REPLACE_ICONV_OPEN = 1; then
-
-
-
 
 
 
 
+  case "$GL_GENERATE_ICONV_H" in
+    false) ICONV_H='' ;;
+    true)
+                  if test -z "$ICONV_H"; then
+        ICONV_H="${gl_source_base_prefix}iconv.h"
+      fi
+      ;;
+    *) echo "*** GL_GENERATE_ICONV_H is not set correctly" 1>&2; exit 1 ;;
+  esac
 
-  gl_LIBOBJS="$gl_LIBOBJS iconv_open.$ac_objext"
 
+     if $GL_GENERATE_ICONV_H; then
+  GL_GENERATE_ICONV_H_TRUE=
+  GL_GENERATE_ICONV_H_FALSE='#'
+else
+  GL_GENERATE_ICONV_H_TRUE='#'
+  GL_GENERATE_ICONV_H_FALSE=
+fi
+:
+    if test -z "${GL_GENERATE_ICONV_H_TRUE}" && test -z "${GL_GENERATE_ICONV_H_FALSE}"; then
+    GL_GENERATE_ICONV_H_TRUE='#'
+    GL_GENERATE_ICONV_H_FALSE='#'
   fi
-  if test $REPLACE_ICONV = 1; then
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS iconv.$ac_objext"
-
-
 
 
 
 
 
 
+     if test $REPLACE_ICONV_OPEN = 1; then
+  GL_COND_OBJ_ICONV_OPEN_TRUE=
+  GL_COND_OBJ_ICONV_OPEN_FALSE='#'
+else
+  GL_COND_OBJ_ICONV_OPEN_TRUE='#'
+  GL_COND_OBJ_ICONV_OPEN_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_ICONV_OPEN_TRUE}" && test -z "${GL_COND_OBJ_ICONV_OPEN_FALSE}"; then
+    GL_COND_OBJ_ICONV_OPEN_TRUE='#'
+    GL_COND_OBJ_ICONV_OPEN_FALSE='#'
+  fi
 
-  gl_LIBOBJS="$gl_LIBOBJS iconv_close.$ac_objext"
 
+     if test $REPLACE_ICONV = 1; then
+  GL_COND_OBJ_ICONV_TRUE=
+  GL_COND_OBJ_ICONV_FALSE='#'
+else
+  GL_COND_OBJ_ICONV_TRUE='#'
+  GL_COND_OBJ_ICONV_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_ICONV_TRUE}" && test -z "${GL_COND_OBJ_ICONV_FALSE}"; then
+    GL_COND_OBJ_ICONV_TRUE='#'
+    GL_COND_OBJ_ICONV_FALSE='#'
   fi
 
 
+
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler generally respects inline" >&5
 printf %s "checking whether the compiler generally respects inline... " >&6; }
 if test ${gl_cv_c_inline_effective+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test $ac_cv_c_inline = no; then
+else case e in #(
+  e) if test $ac_cv_c_inline = no; then
        gl_cv_c_inline_effective=no
      else
                                           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -28353,12 +32068,14 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_c_inline_effective=yes
-else $as_nop
-  gl_cv_c_inline_effective=no
+else case e in #(
+  e) gl_cv_c_inline_effective=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
      fi
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c_inline_effective" >&5
 printf "%s\n" "$gl_cv_c_inline_effective" >&6; }
@@ -28390,29 +32107,42 @@ printf "%s\n" "#define HAVE_INLINE 1" >>confdefs.h
 
 
 
+
   if test $ac_cv_func_isblank = no; then
     HAVE_ISBLANK=0
   fi
 
-  if test $HAVE_ISBLANK = 0; then
 
+     if test $HAVE_ISBLANK = 0; then
+  GL_COND_OBJ_ISBLANK_TRUE=
+  GL_COND_OBJ_ISBLANK_FALSE='#'
+else
+  GL_COND_OBJ_ISBLANK_TRUE='#'
+  GL_COND_OBJ_ISBLANK_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_ISBLANK_TRUE}" && test -z "${GL_COND_OBJ_ISBLANK_FALSE}"; then
+    GL_COND_OBJ_ISBLANK_TRUE='#'
+    GL_COND_OBJ_ISBLANK_FALSE='#'
+  fi
 
 
 
+printf "%s\n" "#define GNULIB_ISBLANK 1" >>confdefs.h
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS isblank.$ac_objext"
 
-  fi
 
 
-printf "%s\n" "#define GNULIB_ISBLANK 1" >>confdefs.h
 
 
 
 
+          GL_GNULIB_ISBLANK=1
+
+
 
 
 
@@ -28420,14 +32150,72 @@ printf "%s\n" "#define GNULIB_ISBLANK 1" >>confdefs.h
 
 
 
-          GL_GNULIB_ISBLANK=1
 
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for iswblank" >&5
+printf %s "checking for iswblank... " >&6; }
+if test ${gl_cv_onwards_func_iswblank+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+  exec 9>&6 6>/dev/null
+
+       case "$host_os" in
+
+         linux*-android*)
+           ac_fn_check_decl "$LINENO" "iswblank" "ac_cv_have_decl_iswblank" "#include <wctype.h>
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_iswblank" = xyes
+then :
+
+fi
+           if test $ac_cv_have_decl_iswblank = yes; then
+             ac_fn_c_check_func "$LINENO" "iswblank" "ac_cv_func_iswblank"
+if test "x$ac_cv_func_iswblank" = xyes
+then :
+
+fi
+
+             if test $ac_cv_func_iswblank = yes; then
+               gl_cv_onwards_func_iswblank=yes
+             else
+                                                            gl_cv_onwards_func_iswblank='future OS version'
+             fi
+           else
+             gl_cv_onwards_func_iswblank='future OS version'
+           fi
+           ;;
 
 
+         *)
+           ac_fn_c_check_func "$LINENO" "iswblank" "ac_cv_func_iswblank"
+if test "x$ac_cv_func_iswblank" = xyes
+then :
 
+fi
+
+           gl_cv_onwards_func_iswblank=$ac_cv_func_iswblank
+           ;;
 
+       esac
+
+  exec 6>&9 9>&-
+
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_onwards_func_iswblank" >&5
+printf "%s\n" "$gl_cv_onwards_func_iswblank" >&6; }
+
+  case "$gl_cv_onwards_func_iswblank" in
+    future*) ac_cv_func_iswblank=no ;;
+    *)       ac_cv_func_iswblank=$gl_cv_onwards_func_iswblank ;;
+  esac
+  if test $ac_cv_func_iswblank = yes; then
 
+printf "%s\n" "#define HAVE_ISWBLANK 1" >>confdefs.h
 
+  fi
 
 
   ac_fn_check_decl "$LINENO" "iswblank" "ac_cv_have_decl_iswblank" "
@@ -28438,14 +32226,19 @@ printf "%s\n" "#define GNULIB_ISBLANK 1" >>confdefs.h
 if test "x$ac_cv_have_decl_iswblank" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_ISWBLANK $ac_have_decl" >>confdefs.h
 
   if test $ac_cv_func_iswblank = no; then
     HAVE_ISWBLANK=0
-    if test $ac_cv_have_decl_iswblank = yes; then
+    if test $ac_cv_have_decl_iswblank = yes \
+       || case "$gl_cv_onwards_func_iswblank" in \
+            future*) true ;; \
+            *) false ;; \
+          esac; then
       REPLACE_ISWBLANK=1
     fi
   fi
@@ -28458,21 +32251,18 @@ printf "%s\n" "#define HAVE_DECL_ISWBLANK $ac_have_decl" >>confdefs.h
   fi
 
 
-  if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
-    :
-  else
-    if test $HAVE_ISWBLANK = 0 || test $REPLACE_ISWBLANK = 1; then
-
-
-
 
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS iswblank.$ac_objext"
-
-    fi
+     if ! { test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; } && { test $HAVE_ISWBLANK = 0 || test $REPLACE_ISWBLANK = 1; }; then
+  GL_COND_OBJ_ISWBLANK_TRUE=
+  GL_COND_OBJ_ISWBLANK_FALSE='#'
+else
+  GL_COND_OBJ_ISWBLANK_TRUE='#'
+  GL_COND_OBJ_ISWBLANK_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_ISWBLANK_TRUE}" && test -z "${GL_COND_OBJ_ISWBLANK_FALSE}"; then
+    GL_COND_OBJ_ISWBLANK_TRUE='#'
+    GL_COND_OBJ_ISWBLANK_FALSE='#'
   fi
 
 
@@ -28483,6 +32273,7 @@ printf "%s\n" "#define HAVE_DECL_ISWBLANK $ac_have_decl" >>confdefs.h
 
 
 
+
           GL_GNULIB_ISWBLANK=1
 
 
@@ -28509,8 +32300,8 @@ printf %s "checking whether iswdigit is ISO C compliant... " >&6; }
 if test ${gl_cv_func_iswdigit_works+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
                      case "$host_os" in
          # Guess no on FreeBSD, NetBSD, Solaris, native Windows.
          freebsd* | dragonfly* | netbsd* | solaris* | mingw*)
@@ -28522,8 +32313,8 @@ else $as_nop
          if test "$cross_compiling" = yes
 then :
   :
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <locale.h>
@@ -28598,15 +32389,18 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_iswdigit_works=yes
-else $as_nop
-  gl_cv_func_iswdigit_works=no
+else case e in #(
+  e) gl_cv_func_iswdigit_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
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
        fi
-
+       ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_iswdigit_works" >&5
 printf "%s\n" "$gl_cv_func_iswdigit_works" >&6; }
@@ -28616,21 +32410,18 @@ printf "%s\n" "$gl_cv_func_iswdigit_works" >&6; }
     esac
   fi
 
-  if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
-    :
-  else
-    if test $REPLACE_ISWDIGIT = 1; then
-
-
-
-
 
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS iswdigit.$ac_objext"
-
-    fi
+     if ! { test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; } && test $REPLACE_ISWDIGIT = 1; then
+  GL_COND_OBJ_ISWDIGIT_TRUE=
+  GL_COND_OBJ_ISWDIGIT_FALSE='#'
+else
+  GL_COND_OBJ_ISWDIGIT_TRUE='#'
+  GL_COND_OBJ_ISWDIGIT_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_ISWDIGIT_TRUE}" && test -z "${GL_COND_OBJ_ISWDIGIT_FALSE}"; then
+    GL_COND_OBJ_ISWDIGIT_TRUE='#'
+    GL_COND_OBJ_ISWDIGIT_FALSE='#'
   fi
 
 
@@ -28641,6 +32432,7 @@ printf "%s\n" "$gl_cv_func_iswdigit_works" >&6; }
 
 
 
+
           GL_GNULIB_ISWDIGIT=1
 
 
@@ -28666,8 +32458,8 @@ printf %s "checking whether iswxdigit is ISO C compliant... " >&6; }
 if test ${gl_cv_func_iswxdigit_works+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
                      case "$host_os" in
          # Guess no on FreeBSD, NetBSD, Solaris, native Windows.
          freebsd* | dragonfly* | netbsd* | solaris* | mingw*)
@@ -28679,8 +32471,8 @@ else $as_nop
          if test "$cross_compiling" = yes
 then :
   :
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <locale.h>
@@ -28747,15 +32539,18 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_iswxdigit_works=yes
-else $as_nop
-  gl_cv_func_iswxdigit_works=no
+else case e in #(
+  e) gl_cv_func_iswxdigit_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
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
        fi
-
+       ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_iswxdigit_works" >&5
 printf "%s\n" "$gl_cv_func_iswxdigit_works" >&6; }
@@ -28765,21 +32560,18 @@ printf "%s\n" "$gl_cv_func_iswxdigit_works" >&6; }
     esac
   fi
 
-  if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
-    :
-  else
-    if test $REPLACE_ISWXDIGIT = 1; then
-
-
-
-
-
-
 
-
-  gl_LIBOBJS="$gl_LIBOBJS iswxdigit.$ac_objext"
-
-    fi
+     if ! { test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; } && test $REPLACE_ISWXDIGIT = 1; then
+  GL_COND_OBJ_ISWXDIGIT_TRUE=
+  GL_COND_OBJ_ISWXDIGIT_FALSE='#'
+else
+  GL_COND_OBJ_ISWXDIGIT_TRUE='#'
+  GL_COND_OBJ_ISWXDIGIT_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_ISWXDIGIT_TRUE}" && test -z "${GL_COND_OBJ_ISWXDIGIT_FALSE}"; then
+    GL_COND_OBJ_ISWXDIGIT_TRUE='#'
+    GL_COND_OBJ_ISWXDIGIT_FALSE='#'
   fi
 
 
@@ -28790,6 +32582,7 @@ printf "%s\n" "$gl_cv_func_iswxdigit_works" >&6; }
 
 
 
+
           GL_GNULIB_ISWXDIGIT=1
 
 
@@ -28808,13 +32601,14 @@ printf "%s\n" "#define GNULIB_TEST_ISWXDIGIT 1" >>confdefs.h
 
 
 
+
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports the __inline keyword" >&5
 printf %s "checking whether the compiler supports the __inline keyword... " >&6; }
 if test ${gl_cv_c___inline+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 typedef int foo_t;
            static __inline foo_t foo (void) { return 0; }
@@ -28829,10 +32623,12 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_c___inline=yes
-else $as_nop
-  gl_cv_c___inline=no
+else case e in #(
+  e) gl_cv_c___inline=no ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+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_c___inline" >&5
 printf "%s\n" "$gl_cv_c___inline" >&6; }
@@ -28846,6 +32642,39 @@ printf "%s\n" "#define HAVE___INLINE 1" >>confdefs.h
 
 
 
+
+  case "$GL_GENERATE_LIMITS_H" in
+    false) LIMITS_H='' ;;
+    true)
+                  if test -z "$LIMITS_H"; then
+        LIMITS_H="${gl_source_base_prefix}limits.h"
+      fi
+      ;;
+    *) echo "*** GL_GENERATE_LIMITS_H is not set correctly" 1>&2; exit 1 ;;
+  esac
+
+
+     if $GL_GENERATE_LIMITS_H; then
+  GL_GENERATE_LIMITS_H_TRUE=
+  GL_GENERATE_LIMITS_H_FALSE='#'
+else
+  GL_GENERATE_LIMITS_H_TRUE='#'
+  GL_GENERATE_LIMITS_H_FALSE=
+fi
+:
+    if test -z "${GL_GENERATE_LIMITS_H_TRUE}" && test -z "${GL_GENERATE_LIMITS_H_FALSE}"; then
+    GL_GENERATE_LIMITS_H_TRUE='#'
+    GL_GENERATE_LIMITS_H_FALSE='#'
+  fi
+
+
+
+
+
+
+
+
+
     LOCALCHARSET_TESTS_ENVIRONMENT=
 
 
@@ -28858,20 +32687,81 @@ printf "%s\n" "#define HAVE___INLINE 1" >>confdefs.h
 
 
 
+
   if test $REPLACE_STRUCT_LCONV = 1; then
     REPLACE_LOCALECONV=1
   fi
+  if test $REPLACE_LOCALECONV = 0; then
+            { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether localeconv works" >&5
+printf %s "checking whether localeconv works... " >&6; }
+if test ${gl_cv_func_localeconv_works+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test "$cross_compiling" = yes
+then :
+  case "$host_os" in
+                                # Guess yes on glibc systems.
+            *-gnu* | gnu*)      gl_cv_func_localeconv_works="guessing yes" ;;
+                                # Guess yes on musl systems.
+            *-musl* | midipix*) gl_cv_func_localeconv_works="guessing yes" ;;
+                                # Guess no on native Windows.
+            mingw*)             gl_cv_func_localeconv_works="guessing no" ;;
+                                # If we don't know, obey --enable-cross-guesses.
+            *)                  gl_cv_func_localeconv_works="$gl_cross_guess_normal" ;;
+          esac
 
-  if test $REPLACE_LOCALECONV = 1; then
-
-
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+            #include <locale.h>
+            #include <limits.h>
+            int main ()
+            {
+              struct lconv *l = localeconv ();
+              return l->frac_digits != CHAR_MAX && l->frac_digits < 0;
+            }
 
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+  gl_cv_func_localeconv_works=yes
+else case e in #(
+  e) gl_cv_func_localeconv_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_localeconv_works" >&5
+printf "%s\n" "$gl_cv_func_localeconv_works" >&6; }
+    case "$gl_cv_func_localeconv_works" in
+      *yes) ;;
+      *) REPLACE_LOCALECONV=1 ;;
+    esac
+  fi
 
 
+     if test $REPLACE_LOCALECONV = 1; then
+  GL_COND_OBJ_LOCALECONV_TRUE=
+  GL_COND_OBJ_LOCALECONV_FALSE='#'
+else
+  GL_COND_OBJ_LOCALECONV_TRUE='#'
+  GL_COND_OBJ_LOCALECONV_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_LOCALECONV_TRUE}" && test -z "${GL_COND_OBJ_LOCALECONV_FALSE}"; then
+    GL_COND_OBJ_LOCALECONV_TRUE='#'
+    GL_COND_OBJ_LOCALECONV_FALSE='#'
+  fi
 
-  gl_LIBOBJS="$gl_LIBOBJS localeconv.$ac_objext"
+  if test -z "$GL_COND_OBJ_LOCALECONV_TRUE"; then :
 
 
   ac_fn_c_check_member "$LINENO" "struct lconv" "decimal_point" "ac_cv_member_struct_lconv_decimal_point" "#include <locale.h>
@@ -28884,8 +32774,19 @@ printf "%s\n" "#define HAVE_STRUCT_LCONV_DECIMAL_POINT 1" >>confdefs.h
 
 fi
 
+  ac_fn_c_check_member "$LINENO" "struct lconv" "int_p_cs_precedes" "ac_cv_member_struct_lconv_int_p_cs_precedes" "#include <locale.h>
+"
+if test "x$ac_cv_member_struct_lconv_int_p_cs_precedes" = xyes
+then :
 
-  fi
+printf "%s\n" "#define HAVE_STRUCT_LCONV_INT_P_CS_PRECEDES 1" >>confdefs.h
+
+
+fi
+
+
+
+fi
 
 
 
@@ -28929,32 +32830,32 @@ printf %s "checking whether pthread_rwlock_rdlock prefers a writer to a reader..
 if test ${gl_cv_pthread_rwlock_rdlock_prefer_writer+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  save_LIBS="$LIBS"
+else case e in #(
+  e) save_LIBS="$LIBS"
      LIBS="$LIBS $LIBMULTITHREAD"
      if test "$cross_compiling" = yes
 then :
   case "$host_os" in
-                         # Guess no on glibc systems.
-          *-gnu* | gnu*) gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no" ;;
-                         # Guess no on musl systems.
-          *-musl*)       gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no" ;;
-                         # Guess no on bionic systems.
-          *-android*)    gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no" ;;
-                         # Guess yes on native Windows with the mingw-w64 winpthreads library.
-                         # Guess no on native Windows with the gnulib windows-rwlock module.
-          mingw*)        if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then
-                           gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing yes"
-                         else
-                           gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no"
-                         fi
-                         ;;
-                         # If we don't know, obey --enable-cross-guesses.
-          *)             gl_cv_pthread_rwlock_rdlock_prefer_writer="$gl_cross_guess_normal" ;;
+                              # Guess no on glibc systems.
+          *-gnu* | gnu*)      gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no" ;;
+                              # Guess no on musl systems.
+          *-musl* | midipix*) gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no" ;;
+                              # Guess no on bionic systems.
+          *-android*)         gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no" ;;
+                              # Guess yes on native Windows with the mingw-w64 winpthreads library.
+                              # Guess no on native Windows with the gnulib windows-rwlock module.
+          mingw*)             if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then
+                                gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing yes"
+                              else
+                                gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no"
+                              fi
+                              ;;
+                              # If we don't know, obey --enable-cross-guesses.
+          *)                  gl_cv_pthread_rwlock_rdlock_prefer_writer="$gl_cross_guess_normal" ;;
          esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <errno.h>
@@ -29072,15 +32973,18 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_pthread_rwlock_rdlock_prefer_writer=yes
-else $as_nop
-  gl_cv_pthread_rwlock_rdlock_prefer_writer=no
+else case e in #(
+  e) gl_cv_pthread_rwlock_rdlock_prefer_writer=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
      LIBS="$save_LIBS"
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_pthread_rwlock_rdlock_prefer_writer" >&5
 printf "%s\n" "$gl_cv_pthread_rwlock_rdlock_prefer_writer" >&6; }
@@ -29146,19 +33050,25 @@ printf "%s\n" "#define GNULIB_LOCK 1" >>confdefs.h
     HAVE_LSTAT=0
   fi
 
-  if test $REPLACE_LSTAT = 1; then
-
-
-
-
-
-
 
+     if test $REPLACE_LSTAT = 1; then
+  GL_COND_OBJ_LSTAT_TRUE=
+  GL_COND_OBJ_LSTAT_FALSE='#'
+else
+  GL_COND_OBJ_LSTAT_TRUE='#'
+  GL_COND_OBJ_LSTAT_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_LSTAT_TRUE}" && test -z "${GL_COND_OBJ_LSTAT_FALSE}"; then
+    GL_COND_OBJ_LSTAT_TRUE='#'
+    GL_COND_OBJ_LSTAT_FALSE='#'
+  fi
 
-  gl_LIBOBJS="$gl_LIBOBJS lstat.$ac_objext"
+  if test -z "$GL_COND_OBJ_LSTAT_TRUE"; then :
 
     :
-  fi
+
+fi
 
 
 
@@ -29184,28 +33094,29 @@ printf "%s\n" "#define GNULIB_TEST_LSTAT 1" >>confdefs.h
 
 
 
-  if test $REPLACE_MALLOC = 0; then
+  REPLACE_MALLOC_FOR_MALLOC_GNU="$REPLACE_MALLOC_FOR_MALLOC_POSIX"
+  if test $REPLACE_MALLOC_FOR_MALLOC_GNU = 0; then
 
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether malloc (0) returns nonnull" >&5
 printf %s "checking whether malloc (0) returns nonnull... " >&6; }
 if test ${ac_cv_func_malloc_0_nonnull+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test "$cross_compiling" = yes
+else case e in #(
+  e) if test "$cross_compiling" = yes
 then :
   case "$host_os" in
           # Guess yes on platforms where we know the result.
           *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \
-          | gnu* | *-musl* | midnightbsd* \
+          | gnu* | *-musl* | midipix* | midnightbsd* \
           | hpux* | solaris* | cygwin* | mingw* | msys* )
             ac_cv_func_malloc_0_nonnull="guessing yes" ;;
           # If we don't know, obey --enable-cross-guesses.
           *) ac_cv_func_malloc_0_nonnull="$gl_cross_guess_normal" ;;
         esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdlib.h>
 
@@ -29224,14 +33135,17 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   ac_cv_func_malloc_0_nonnull=yes
-else $as_nop
-  ac_cv_func_malloc_0_nonnull=no
+else case e in #(
+  e) ac_cv_func_malloc_0_nonnull=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5
 printf "%s\n" "$ac_cv_func_malloc_0_nonnull" >&6; }
@@ -29239,12 +33153,12 @@ printf "%s\n" "$ac_cv_func_malloc_0_nonnull" >&6; }
   *yes) :
      ;; #(
   *) :
-    REPLACE_MALLOC=1 ;;
+    REPLACE_MALLOC_FOR_MALLOC_GNU=1 ;;
 esac
 
   fi
 
-  if test $REPLACE_MALLOC = 1; then
+  if test $REPLACE_MALLOC_FOR_MALLOC_GNU = 1; then
 
 
 
@@ -29257,7 +33171,6 @@ esac
 
   fi
 
-  if test $REPLACE_MALLOC = 1; then
 
 
 
@@ -29266,230 +33179,64 @@ esac
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext"
+          GL_GNULIB_MALLOC_GNU=1
 
-  fi
 
 
 
 
+printf "%s\n" "#define GNULIB_TEST_MALLOC_GNU 1" >>confdefs.h
 
 
 
 
+  if test $REPLACE_MALLOC_FOR_MALLOC_POSIX = 1; then
 
-          GL_GNULIB_MALLOC_POSIX=1
 
 
 
 
 
-printf "%s\n" "#define GNULIB_TEST_MALLOC_POSIX 1" >>confdefs.h
-
-
 
 
+  gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext"
 
+  fi
 
 
 
 
 
 
-  :
 
 
 
+          GL_GNULIB_MALLOC_POSIX=1
 
 
 
 
 
+printf "%s\n" "#define GNULIB_TEST_MALLOC_POSIX 1" >>confdefs.h
 
 
 
 
 
 
-        if case "$host_os" in
-       mingw*) true ;;
-       *) test $ac_cv_func_mbsinit = yes ;;
-     esac \
-    && test $ac_cv_func_mbrtowc = yes; then
 
 
 
 
-     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5
-printf %s "checking whether mbrtowc handles incomplete characters... " >&6; }
-if test ${gl_cv_func_mbrtowc_incomplete_state+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
 
-                  case "$host_os" in
-                     # Guess no on AIX and OSF/1.
-        aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;;
-                     # Guess yes otherwise.
-        *)           gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;;
-      esac
-      if test $LOCALE_JA != none; then
-        if test "$cross_compiling" = yes
-then :
   :
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <string.h>
-#include <wchar.h>
-int main ()
-{
-  if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
-    {
-      const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */
-      mbstate_t state;
-      wchar_t wc;
-
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2))
-        if (mbsinit (&state))
-          return 2;
-    }
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
-  gl_cv_func_mbrtowc_incomplete_state=yes
-else $as_nop
-  gl_cv_func_mbrtowc_incomplete_state=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-      else
-        if test $LOCALE_FR_UTF8 != none; then
-          if test "$cross_compiling" = yes
-then :
-  :
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <string.h>
-#include <wchar.h>
-int main ()
-{
-  if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
-    {
-      const char input[] = "B\303\274\303\237er"; /* "Büßer" */
-      mbstate_t state;
-      wchar_t wc;
-
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2))
-        if (mbsinit (&state))
-          return 2;
-    }
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
-  gl_cv_func_mbrtowc_incomplete_state=yes
-else $as_nop
-  gl_cv_func_mbrtowc_incomplete_state=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-        fi
-      fi
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5
-printf "%s\n" "$gl_cv_func_mbrtowc_incomplete_state" >&6; }
 
 
 
 
-     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5
-printf %s "checking whether mbrtowc works as well as mbtowc... " >&6; }
-if test ${gl_cv_func_mbrtowc_sanitycheck+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
 
-                  case "$host_os" in
-                    # Guess no on Solaris 8.
-        solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;;
-                    # Guess yes otherwise.
-        *)          gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;;
-      esac
-      if test $LOCALE_ZH_CN != none; then
-        if test "$cross_compiling" = yes
-then :
-  :
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <stdlib.h>
-#include <string.h>
-#include <wchar.h>
-int main ()
-{
-  /* This fails on Solaris 8:
-     mbrtowc returns 2, and sets wc to 0x00F0.
-     mbtowc returns 4 (correct) and sets wc to 0x5EDC.  */
-  if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
-    {
-      char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */
-      mbstate_t state;
-      wchar_t wc;
 
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 3, 6, &state) != 4
-          && mbtowc (&wc, input + 3, 6) == 4)
-        return 2;
-    }
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
-  gl_cv_func_mbrtowc_sanitycheck=yes
-else $as_nop
-  gl_cv_func_mbrtowc_sanitycheck=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-      fi
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5
-printf "%s\n" "$gl_cv_func_mbrtowc_sanitycheck" >&6; }
-
-    REPLACE_MBSTATE_T=0
-    case "$gl_cv_func_mbrtowc_incomplete_state" in
-      *yes) ;;
-      *) REPLACE_MBSTATE_T=1 ;;
-    esac
-    case "$gl_cv_func_mbrtowc_sanitycheck" in
-      *yes) ;;
-      *) REPLACE_MBSTATE_T=1 ;;
-    esac
-  else
-    REPLACE_MBSTATE_T=1
-  fi
 
 
 
@@ -29502,8 +33249,9 @@ printf "%s\n" "$gl_cv_func_mbrtowc_sanitycheck" >&6; }
 if test "x$ac_cv_have_decl_mbrtowc" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_MBRTOWC $ac_have_decl" >>confdefs.h
 
@@ -29522,8 +33270,8 @@ printf %s "checking whether mbrtowc handles a NULL pwc argument... " >&6; }
 if test ${gl_cv_func_mbrtowc_null_arg1+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
                   case "$host_os" in
                   # Guess no on Solaris.
         solaris*) gl_cv_func_mbrtowc_null_arg1="guessing no" ;;
@@ -29534,8 +33282,8 @@ else $as_nop
         if test "$cross_compiling" = yes
 then :
   :
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <locale.h>
@@ -29574,15 +33322,18 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_mbrtowc_null_arg1=yes
-else $as_nop
-  gl_cv_func_mbrtowc_null_arg1=no
+else case e in #(
+  e) gl_cv_func_mbrtowc_null_arg1=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
       fi
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_null_arg1" >&5
 printf "%s\n" "$gl_cv_func_mbrtowc_null_arg1" >&6; }
@@ -29595,8 +33346,8 @@ printf %s "checking whether mbrtowc handles a NULL string argument... " >&6; }
 if test ${gl_cv_func_mbrtowc_null_arg2+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
                   case "$host_os" in
               # Guess no on OSF/1.
         osf*) gl_cv_func_mbrtowc_null_arg2="guessing no" ;;
@@ -29607,8 +33358,8 @@ else $as_nop
         if test "$cross_compiling" = yes
 then :
   :
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <locale.h>
@@ -29635,15 +33386,18 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_mbrtowc_null_arg2=yes
-else $as_nop
-  gl_cv_func_mbrtowc_null_arg2=no
+else case e in #(
+  e) gl_cv_func_mbrtowc_null_arg2=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
       fi
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_null_arg2" >&5
 printf "%s\n" "$gl_cv_func_mbrtowc_null_arg2" >&6; }
@@ -29658,8 +33412,8 @@ printf %s "checking whether mbrtowc has a correct return value... " >&6; }
 if test ${gl_cv_func_mbrtowc_retval+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
                   case "$host_os" in
                                    # Guess no on HP-UX, Solaris, native Windows.
         hpux* | solaris* | mingw*) gl_cv_func_mbrtowc_retval="guessing no" ;;
@@ -29671,8 +33425,8 @@ else $as_nop
         if test "$cross_compiling" = yes
 then :
   :
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <locale.h>
@@ -29766,18 +33520,21 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_mbrtowc_retval=yes
-else $as_nop
-  if test $? != 77; then
+else case e in #(
+  e) if test $? != 77; then
              gl_cv_func_mbrtowc_retval=no
            fi
-
+           ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
       fi
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_retval" >&5
 printf "%s\n" "$gl_cv_func_mbrtowc_retval" >&6; }
@@ -29790,8 +33547,8 @@ printf %s "checking whether mbrtowc returns 0 when parsing a NUL character... "
 if test ${gl_cv_func_mbrtowc_nul_retval+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
                   case "$host_os" in
                        # Guess no on Solaris 8 and 9.
         solaris2.[89]) gl_cv_func_mbrtowc_nul_retval="guessing no" ;;
@@ -29802,8 +33559,8 @@ else $as_nop
         if test "$cross_compiling" = yes
 then :
   :
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <locale.h>
@@ -29827,15 +33584,18 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_mbrtowc_nul_retval=yes
-else $as_nop
-  gl_cv_func_mbrtowc_nul_retval=no
+else case e in #(
+  e) gl_cv_func_mbrtowc_nul_retval=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
       fi
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_nul_retval" >&5
 printf "%s\n" "$gl_cv_func_mbrtowc_nul_retval" >&6; }
@@ -29847,8 +33607,8 @@ printf %s "checking whether mbrtowc stores incomplete characters... " >&6; }
 if test ${gl_cv_func_mbrtowc_stores_incomplete+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
                case "$host_os" in
                # Guess yes on native Windows.
        mingw*) gl_cv_func_mbrtowc_stores_incomplete="guessing yes" ;;
@@ -29859,8 +33619,8 @@ else $as_nop
          if test "$cross_compiling" = yes
 then :
   :
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <locale.h>
@@ -29915,11 +33675,13 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_mbrtowc_stores_incomplete=no
-else $as_nop
-  gl_cv_func_mbrtowc_stores_incomplete=yes
+else case e in #(
+  e) gl_cv_func_mbrtowc_stores_incomplete=yes ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
          ;;
@@ -29929,8 +33691,8 @@ fi
            if test "$cross_compiling" = yes
 then :
   :
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <locale.h>
@@ -29954,17 +33716,20 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_mbrtowc_stores_incomplete=no
-else $as_nop
-  gl_cv_func_mbrtowc_stores_incomplete=yes
+else case e in #(
+  e) gl_cv_func_mbrtowc_stores_incomplete=yes ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
          fi
          ;;
      esac
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_stores_incomplete" >&5
 printf "%s\n" "$gl_cv_func_mbrtowc_stores_incomplete" >&6; }
@@ -29976,8 +33741,8 @@ printf %s "checking whether mbrtowc works on empty input... " >&6; }
 if test ${gl_cv_func_mbrtowc_empty_input+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
                   case "$host_os" in
                               # Guess no on AIX and glibc systems.
         aix* | *-gnu* | gnu*) gl_cv_func_mbrtowc_empty_input="guessing no" ;;
@@ -29988,8 +33753,8 @@ else $as_nop
       if test "$cross_compiling" = yes
 then :
   :
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
            #include <wchar.h>
@@ -30004,14 +33769,17 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_mbrtowc_empty_input=yes
-else $as_nop
-  gl_cv_func_mbrtowc_empty_input=no
+else case e in #(
+  e) gl_cv_func_mbrtowc_empty_input=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_empty_input" >&5
 printf "%s\n" "$gl_cv_func_mbrtowc_empty_input" >&6; }
@@ -30022,8 +33790,8 @@ printf %s "checking whether the C locale is free of encoding errors... " >&6; }
 if test ${gl_cv_func_mbrtowc_C_locale_sans_EILSEQ+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
                gl_cv_func_mbrtowc_C_locale_sans_EILSEQ="$gl_cross_guess_normal"
 
      if test "$cross_compiling" = yes
@@ -30033,8 +33801,8 @@ then :
          mingw*) gl_cv_func_mbrtowc_C_locale_sans_EILSEQ="guessing yes" ;;
        esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <limits.h>
             #include <locale.h>
@@ -30066,14 +33834,17 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_mbrtowc_C_locale_sans_EILSEQ=yes
-else $as_nop
-  gl_cv_func_mbrtowc_C_locale_sans_EILSEQ=no
+else case e in #(
+  e) gl_cv_func_mbrtowc_C_locale_sans_EILSEQ=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_C_locale_sans_EILSEQ" >&5
 printf "%s\n" "$gl_cv_func_mbrtowc_C_locale_sans_EILSEQ" >&6; }
@@ -30138,7 +33909,7 @@ printf "%s\n" "#define MBRTOWC_IN_C_LOCALE_MAYBE_EILSEQ 1" >>confdefs.h
   fi
   if test $REPLACE_MBSTATE_T = 1; then
     case "$host_os" in
-      mingw*) LIB_MBRTOWC= ;;
+      mingw*) MBRTOWC_LIB= ;;
       *)
 
 
@@ -30147,9 +33918,14 @@ printf %s "checking whether imported symbols can be declared weak... " >&6; }
 if test ${gl_cv_have_weak+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  gl_cv_have_weak=no
-          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) case "$host_os" in
+       cygwin* | mingw*)
+                                             gl_cv_have_weak="guessing no"
+         ;;
+       *)
+         gl_cv_have_weak=no
+                  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 extern void xyzzy ();
 #pragma weak xyzzy
@@ -30167,28 +33943,29 @@ then :
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
-     if test $gl_cv_have_weak = maybe; then
-                     if test "$cross_compiling" = yes
+         if test $gl_cv_have_weak = maybe; then
+                                 if test "$cross_compiling" = yes
 then :
-                      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+                              cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #ifdef __ELF__
-             Extensible Linking Format
-             #endif
+                 Extensible Linking Format
+                 #endif
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Extensible Linking Format" >/dev/null 2>&1
+  $EGREP_TRADITIONAL "Extensible Linking Format" >/dev/null 2>&1
 then :
   gl_cv_have_weak="guessing yes"
-else $as_nop
-  gl_cv_have_weak="guessing no"
+else case e in #(
+  e) gl_cv_have_weak="guessing no" ;;
+esac
 fi
 rm -rf conftest*
 
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <stdio.h>
@@ -30201,14 +33978,18 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_have_weak=yes
-else $as_nop
-  gl_cv_have_weak=no
+else case e in #(
+  e) gl_cv_have_weak=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
-     fi
+         fi
+         ;;
+     esac
           case " $LDFLAGS " in
        *" -static "*) gl_cv_have_weak=no ;;
      esac
@@ -30233,7 +34014,8 @@ EOF
          esac
          ;;
      esac
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_weak" >&5
 printf "%s\n" "$gl_cv_have_weak" >&6; }
@@ -30246,26 +34028,33 @@ printf "%s\n" "#define HAVE_WEAK_SYMBOLS 1" >>confdefs.h
   esac
 
         case "$gl_cv_have_weak" in
-          *yes) LIB_MBRTOWC= ;;
-          *)    LIB_MBRTOWC="$LIBPTHREAD" ;;
+          *yes) MBRTOWC_LIB= ;;
+          *)    MBRTOWC_LIB="$LIBPTHREAD" ;;
         esac
         ;;
     esac
   else
-    LIB_MBRTOWC=
+    MBRTOWC_LIB=
   fi
 
-
-  if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then
-
-
-
-
+    LIB_MBRTOWC="$MBRTOWC_LIB"
 
 
 
+     if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then
+  GL_COND_OBJ_MBRTOWC_TRUE=
+  GL_COND_OBJ_MBRTOWC_FALSE='#'
+else
+  GL_COND_OBJ_MBRTOWC_TRUE='#'
+  GL_COND_OBJ_MBRTOWC_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_MBRTOWC_TRUE}" && test -z "${GL_COND_OBJ_MBRTOWC_FALSE}"; then
+    GL_COND_OBJ_MBRTOWC_TRUE='#'
+    GL_COND_OBJ_MBRTOWC_FALSE='#'
+  fi
 
-  gl_LIBOBJS="$gl_LIBOBJS mbrtowc.$ac_objext"
+  if test -z "$GL_COND_OBJ_MBRTOWC_TRUE"; then :
 
     if test $REPLACE_MBSTATE_T = 1; then
 
@@ -30299,8 +34088,8 @@ printf %s "checking whether the -Werror option is usable... " >&6; }
 if test ${gl_cv_cc_vis_werror+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  gl_save_CFLAGS="$CFLAGS"
+else case e in #(
+  e) gl_save_CFLAGS="$CFLAGS"
        CFLAGS="$CFLAGS -Werror"
        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -30316,12 +34105,14 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_cc_vis_werror=yes
-else $as_nop
-  gl_cv_cc_vis_werror=no
+else case e in #(
+  e) gl_cv_cc_vis_werror=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
        CFLAGS="$gl_save_CFLAGS"
-
+       ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_vis_werror" >&5
 printf "%s\n" "$gl_cv_cc_vis_werror" >&6; }
@@ -30330,8 +34121,8 @@ printf %s "checking for simple visibility declarations... " >&6; }
 if test ${gl_cv_cc_visibility+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  gl_save_CFLAGS="$CFLAGS"
+else case e in #(
+  e) gl_save_CFLAGS="$CFLAGS"
        CFLAGS="$CFLAGS -fvisibility=hidden"
                                           if test $gl_cv_cc_vis_werror = yes; then
          CFLAGS="$CFLAGS -Werror"
@@ -30360,12 +34151,14 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_cc_visibility=yes
-else $as_nop
-  gl_cv_cc_visibility=no
+else case e in #(
+  e) gl_cv_cc_visibility=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
        CFLAGS="$gl_save_CFLAGS"
-
+       ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_visibility" >&5
 printf "%s\n" "$gl_cv_cc_visibility" >&6; }
@@ -30386,28 +34179,8 @@ printf "%s\n" "#define HAVE_VISIBILITY $HAVE_VISIBILITY" >>confdefs.h
 
   :
 
-  fi
-
-
-
-
-
-
-
-
-
-          GL_GNULIB_MBRTOWC=1
-
-
-
-
-
-printf "%s\n" "#define GNULIB_TEST_MBRTOWC 1" >>confdefs.h
-
-
-
-
 
+fi
 
 
 
@@ -30415,20 +34188,20 @@ printf "%s\n" "#define GNULIB_TEST_MBRTOWC 1" >>confdefs.h
 
 
 
-          GL_GNULIB_MBSCASECMP=1
 
 
 
 
 
-printf "%s\n" "#define GNULIB_TEST_MBSCASECMP 1" >>confdefs.h
 
 
+          GL_GNULIB_MBRTOWC=1
 
 
 
 
 
+printf "%s\n" "#define GNULIB_TEST_MBRTOWC 1" >>confdefs.h
 
 
 
@@ -30437,185 +34210,30 @@ printf "%s\n" "#define GNULIB_TEST_MBSCASECMP 1" >>confdefs.h
 
 
 
-        if case "$host_os" in
-       mingw*) true ;;
-       *) test $ac_cv_func_mbsinit = yes ;;
-     esac \
-    && test $ac_cv_func_mbrtowc = yes; then
 
 
 
 
-     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5
-printf %s "checking whether mbrtowc handles incomplete characters... " >&6; }
-if test ${gl_cv_func_mbrtowc_incomplete_state+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
 
-                  case "$host_os" in
-                     # Guess no on AIX and OSF/1.
-        aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;;
-                     # Guess yes otherwise.
-        *)           gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;;
-      esac
-      if test $LOCALE_JA != none; then
-        if test "$cross_compiling" = yes
-then :
-  :
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <string.h>
-#include <wchar.h>
-int main ()
-{
-  if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
-    {
-      const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */
-      mbstate_t state;
-      wchar_t wc;
 
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2))
-        if (mbsinit (&state))
-          return 2;
-    }
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
-  gl_cv_func_mbrtowc_incomplete_state=yes
-else $as_nop
-  gl_cv_func_mbrtowc_incomplete_state=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
 
-      else
-        if test $LOCALE_FR_UTF8 != none; then
-          if test "$cross_compiling" = yes
-then :
-  :
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <string.h>
-#include <wchar.h>
-int main ()
-{
-  if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
-    {
-      const char input[] = "B\303\274\303\237er"; /* "Büßer" */
-      mbstate_t state;
-      wchar_t wc;
+          GL_GNULIB_MBSCASECMP=1
 
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2))
-        if (mbsinit (&state))
-          return 2;
-    }
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
-  gl_cv_func_mbrtowc_incomplete_state=yes
-else $as_nop
-  gl_cv_func_mbrtowc_incomplete_state=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
 
-        fi
-      fi
 
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5
-printf "%s\n" "$gl_cv_func_mbrtowc_incomplete_state" >&6; }
 
 
+printf "%s\n" "#define GNULIB_TEST_MBSCASECMP 1" >>confdefs.h
 
 
-     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5
-printf %s "checking whether mbrtowc works as well as mbtowc... " >&6; }
-if test ${gl_cv_func_mbrtowc_sanitycheck+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
 
-                  case "$host_os" in
-                    # Guess no on Solaris 8.
-        solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;;
-                    # Guess yes otherwise.
-        *)          gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;;
-      esac
-      if test $LOCALE_ZH_CN != none; then
-        if test "$cross_compiling" = yes
-then :
-  :
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <stdlib.h>
-#include <string.h>
-#include <wchar.h>
-int main ()
-{
-  /* This fails on Solaris 8:
-     mbrtowc returns 2, and sets wc to 0x00F0.
-     mbtowc returns 4 (correct) and sets wc to 0x5EDC.  */
-  if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
-    {
-      char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */
-      mbstate_t state;
-      wchar_t wc;
 
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 3, 6, &state) != 4
-          && mbtowc (&wc, input + 3, 6) == 4)
-        return 2;
-    }
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
-  gl_cv_func_mbrtowc_sanitycheck=yes
-else $as_nop
-  gl_cv_func_mbrtowc_sanitycheck=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
 
-      fi
 
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5
-printf "%s\n" "$gl_cv_func_mbrtowc_sanitycheck" >&6; }
 
-    REPLACE_MBSTATE_T=0
-    case "$gl_cv_func_mbrtowc_incomplete_state" in
-      *yes) ;;
-      *) REPLACE_MBSTATE_T=1 ;;
-    esac
-    case "$gl_cv_func_mbrtowc_sanitycheck" in
-      *yes) ;;
-      *) REPLACE_MBSTATE_T=1 ;;
-    esac
-  else
-    REPLACE_MBSTATE_T=1
-  fi
 
 
 
@@ -30628,8 +34246,9 @@ printf "%s\n" "$gl_cv_func_mbrtowc_sanitycheck" >&6; }
 if test "x$ac_cv_have_decl_mbsinit" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_MBSINIT $ac_have_decl" >>confdefs.h
 
@@ -30646,21 +34265,32 @@ printf "%s\n" "#define HAVE_DECL_MBSINIT $ac_have_decl" >>confdefs.h
     fi
   fi
 
-  if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then
 
+     if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then
+  GL_COND_OBJ_MBSINIT_TRUE=
+  GL_COND_OBJ_MBSINIT_FALSE='#'
+else
+  GL_COND_OBJ_MBSINIT_TRUE='#'
+  GL_COND_OBJ_MBSINIT_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_MBSINIT_TRUE}" && test -z "${GL_COND_OBJ_MBSINIT_FALSE}"; then
+    GL_COND_OBJ_MBSINIT_TRUE='#'
+    GL_COND_OBJ_MBSINIT_FALSE='#'
+  fi
 
+  if test -z "$GL_COND_OBJ_MBSINIT_TRUE"; then :
 
 
+  :
 
 
+fi
 
 
-  gl_LIBOBJS="$gl_LIBOBJS mbsinit.$ac_objext"
 
 
-  :
 
-  fi
 
 
 
@@ -30698,206 +34328,25 @@ printf "%s\n" "#define GNULIB_TEST_MBSINIT 1" >>confdefs.h
 
 
 
-          GL_GNULIB_MBSLEN=1
-
-
-
-
-
-printf "%s\n" "#define GNULIB_TEST_MBSLEN 1" >>confdefs.h
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-        if case "$host_os" in
-       mingw*) true ;;
-       *) test $ac_cv_func_mbsinit = yes ;;
-     esac \
-    && test $ac_cv_func_mbrtowc = yes; then
-
-
-
-
-     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5
-printf %s "checking whether mbrtowc handles incomplete characters... " >&6; }
-if test ${gl_cv_func_mbrtowc_incomplete_state+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-
-                  case "$host_os" in
-                     # Guess no on AIX and OSF/1.
-        aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;;
-                     # Guess yes otherwise.
-        *)           gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;;
-      esac
-      if test $LOCALE_JA != none; then
-        if test "$cross_compiling" = yes
-then :
-  :
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <string.h>
-#include <wchar.h>
-int main ()
-{
-  if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
-    {
-      const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */
-      mbstate_t state;
-      wchar_t wc;
 
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2))
-        if (mbsinit (&state))
-          return 2;
-    }
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
-  gl_cv_func_mbrtowc_incomplete_state=yes
-else $as_nop
-  gl_cv_func_mbrtowc_incomplete_state=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
 
-      else
-        if test $LOCALE_FR_UTF8 != none; then
-          if test "$cross_compiling" = yes
-then :
-  :
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <string.h>
-#include <wchar.h>
-int main ()
-{
-  if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
-    {
-      const char input[] = "B\303\274\303\237er"; /* "Büßer" */
-      mbstate_t state;
-      wchar_t wc;
 
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2))
-        if (mbsinit (&state))
-          return 2;
-    }
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
-  gl_cv_func_mbrtowc_incomplete_state=yes
-else $as_nop
-  gl_cv_func_mbrtowc_incomplete_state=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
+          GL_GNULIB_MBSLEN=1
 
-        fi
-      fi
 
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5
-printf "%s\n" "$gl_cv_func_mbrtowc_incomplete_state" >&6; }
 
 
 
+printf "%s\n" "#define GNULIB_TEST_MBSLEN 1" >>confdefs.h
 
-     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5
-printf %s "checking whether mbrtowc works as well as mbtowc... " >&6; }
-if test ${gl_cv_func_mbrtowc_sanitycheck+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
 
-                  case "$host_os" in
-                    # Guess no on Solaris 8.
-        solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;;
-                    # Guess yes otherwise.
-        *)          gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;;
-      esac
-      if test $LOCALE_ZH_CN != none; then
-        if test "$cross_compiling" = yes
-then :
-  :
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <stdlib.h>
-#include <string.h>
-#include <wchar.h>
-int main ()
-{
-  /* This fails on Solaris 8:
-     mbrtowc returns 2, and sets wc to 0x00F0.
-     mbtowc returns 4 (correct) and sets wc to 0x5EDC.  */
-  if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
-    {
-      char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */
-      mbstate_t state;
-      wchar_t wc;
 
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 3, 6, &state) != 4
-          && mbtowc (&wc, input + 3, 6) == 4)
-        return 2;
-    }
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
-  gl_cv_func_mbrtowc_sanitycheck=yes
-else $as_nop
-  gl_cv_func_mbrtowc_sanitycheck=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
 
-      fi
 
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5
-printf "%s\n" "$gl_cv_func_mbrtowc_sanitycheck" >&6; }
 
-    REPLACE_MBSTATE_T=0
-    case "$gl_cv_func_mbrtowc_incomplete_state" in
-      *yes) ;;
-      *) REPLACE_MBSTATE_T=1 ;;
-    esac
-    case "$gl_cv_func_mbrtowc_sanitycheck" in
-      *yes) ;;
-      *) REPLACE_MBSTATE_T=1 ;;
-    esac
-  else
-    REPLACE_MBSTATE_T=1
-  fi
 
 
 
@@ -30910,8 +34359,9 @@ printf "%s\n" "$gl_cv_func_mbrtowc_sanitycheck" >&6; }
 if test "x$ac_cv_have_decl_mbsrtowcs" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_MBSRTOWCS $ac_have_decl" >>confdefs.h
 
@@ -30933,8 +34383,8 @@ printf %s "checking whether mbsrtowcs works... " >&6; }
 if test ${gl_cv_func_mbsrtowcs_works+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
                   case "$host_os" in
                                    # Guess no on HP-UX, Solaris, mingw.
         hpux* | solaris* | mingw*) gl_cv_func_mbsrtowcs_works="guessing no" ;;
@@ -30945,8 +34395,8 @@ else $as_nop
         if test "$cross_compiling" = yes
 then :
   :
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <locale.h>
@@ -31018,15 +34468,18 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_mbsrtowcs_works=yes
-else $as_nop
-  gl_cv_func_mbsrtowcs_works=no
+else case e in #(
+  e) gl_cv_func_mbsrtowcs_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
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
       fi
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbsrtowcs_works" >&5
 printf "%s\n" "$gl_cv_func_mbsrtowcs_works" >&6; }
@@ -31035,19 +34488,95 @@ printf "%s\n" "$gl_cv_func_mbsrtowcs_works" >&6; }
         *yes) ;;
         *) REPLACE_MBSRTOWCS=1 ;;
       esac
-    fi
-  fi
+      if test $REPLACE_MBSRTOWCS = 0; then
+
+     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C locale is free of encoding errors" >&5
+printf %s "checking whether the C locale is free of encoding errors... " >&6; }
+if test ${gl_cv_func_mbrtowc_C_locale_sans_EILSEQ+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+               gl_cv_func_mbrtowc_C_locale_sans_EILSEQ="$gl_cross_guess_normal"
+
+     if test "$cross_compiling" = yes
+then :
+  case "$host_os" in
+                 # Guess yes on native Windows.
+         mingw*) gl_cv_func_mbrtowc_C_locale_sans_EILSEQ="guessing yes" ;;
+       esac
 
-  if test $HAVE_MBSRTOWCS = 0 || test $REPLACE_MBSRTOWCS = 1; then
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <limits.h>
+            #include <locale.h>
+            #include <wchar.h>
 
+int
+main (void)
+{
 
+            int i;
+            char *locale = setlocale (LC_ALL, "C");
+            if (! locale)
+              return 2;
+            for (i = CHAR_MIN; i <= CHAR_MAX; i++)
+              {
+                char c = i;
+                wchar_t wc;
+                mbstate_t mbs = { 0, };
+                size_t ss = mbrtowc (&wc, &c, 1, &mbs);
+                if (1 < ss)
+                  return 3;
+              }
+            return 0;
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+  gl_cv_func_mbrtowc_C_locale_sans_EILSEQ=yes
+else case e in #(
+  e) gl_cv_func_mbrtowc_C_locale_sans_EILSEQ=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_mbrtowc_C_locale_sans_EILSEQ" >&5
+printf "%s\n" "$gl_cv_func_mbrtowc_C_locale_sans_EILSEQ" >&6; }
 
+        case "$gl_cv_func_mbrtowc_C_locale_sans_EILSEQ" in
+          *yes) ;;
+          *) REPLACE_MBSRTOWCS=1 ;;
+        esac
+      fi
+    fi
+  fi
 
 
+     if test $HAVE_MBSRTOWCS = 0 || test $REPLACE_MBSRTOWCS = 1; then
+  GL_COND_OBJ_MBSRTOWCS_TRUE=
+  GL_COND_OBJ_MBSRTOWCS_FALSE='#'
+else
+  GL_COND_OBJ_MBSRTOWCS_TRUE='#'
+  GL_COND_OBJ_MBSRTOWCS_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_MBSRTOWCS_TRUE}" && test -z "${GL_COND_OBJ_MBSRTOWCS_FALSE}"; then
+    GL_COND_OBJ_MBSRTOWCS_TRUE='#'
+    GL_COND_OBJ_MBSRTOWCS_FALSE='#'
+  fi
 
-  gl_LIBOBJS="$gl_LIBOBJS mbsrtowcs.$ac_objext"
+  if test -z "$GL_COND_OBJ_MBSRTOWCS_TRUE"; then :
 
 
 
@@ -31062,8 +34591,8 @@ printf "%s\n" "$gl_cv_func_mbsrtowcs_works" >&6; }
 
   :
 
-  fi
 
+fi
 
 
 
@@ -31072,102 +34601,189 @@ printf "%s\n" "$gl_cv_func_mbsrtowcs_works" >&6; }
 
 
 
-          GL_GNULIB_MBSRTOWCS=1
 
 
 
 
 
-printf "%s\n" "#define GNULIB_TEST_MBSRTOWCS 1" >>confdefs.h
 
+          GL_GNULIB_MBSRTOWCS=1
 
 
 
 
 
+printf "%s\n" "#define GNULIB_TEST_MBSRTOWCS 1" >>confdefs.h
 
 
 
 
 
 
-          GL_GNULIB_MBSSTR=1
 
 
 
 
 
-printf "%s\n" "#define GNULIB_TEST_MBSSTR 1" >>confdefs.h
 
 
 
 
 
 
-  ac_fn_c_check_func "$LINENO" "mbtowc" "ac_cv_func_mbtowc"
-if test "x$ac_cv_func_mbtowc" = xyes
-then :
-  printf "%s\n" "#define HAVE_MBTOWC 1" >>confdefs.h
+          GL_GNULIB_MBSSTR=1
 
-fi
 
-  if test $ac_cv_func_mbtowc = no; then
-    HAVE_MBTOWC=0
-  else
-    if false; then
-      REPLACE_MBTOWC=1
-    fi
-  fi
 
-  if test $HAVE_MBTOWC = 0 || test $REPLACE_MBTOWC = 1; then
 
 
+printf "%s\n" "#define GNULIB_TEST_MBSSTR 1" >>confdefs.h
 
 
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS mbtowc.$ac_objext"
 
 
-  :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for mbtowc" >&5
+printf %s "checking for mbtowc... " >&6; }
+if test ${gl_cv_onwards_func_mbtowc+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+  exec 9>&6 6>/dev/null
 
-  fi
+       case "$host_os" in
 
+         linux*-android*)
+           ac_fn_check_decl "$LINENO" "mbtowc" "ac_cv_have_decl_mbtowc" "#include <stdlib.h>
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_mbtowc" = xyes
+then :
 
+fi
+           if test $ac_cv_have_decl_mbtowc = yes; then
+             ac_fn_c_check_func "$LINENO" "mbtowc" "ac_cv_func_mbtowc"
+if test "x$ac_cv_func_mbtowc" = xyes
+then :
 
+fi
 
+             if test $ac_cv_func_mbtowc = yes; then
+               gl_cv_onwards_func_mbtowc=yes
+             else
+                                                            gl_cv_onwards_func_mbtowc='future OS version'
+             fi
+           else
+             gl_cv_onwards_func_mbtowc='future OS version'
+           fi
+           ;;
 
 
+         *)
+           ac_fn_c_check_func "$LINENO" "mbtowc" "ac_cv_func_mbtowc"
+if test "x$ac_cv_func_mbtowc" = xyes
+then :
 
+fi
 
+           gl_cv_onwards_func_mbtowc=$ac_cv_func_mbtowc
+           ;;
 
-          GL_GNULIB_MBTOWC=1
+       esac
 
+  exec 6>&9 9>&-
 
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_onwards_func_mbtowc" >&5
+printf "%s\n" "$gl_cv_onwards_func_mbtowc" >&6; }
 
+  case "$gl_cv_onwards_func_mbtowc" in
+    future*) ac_cv_func_mbtowc=no ;;
+    *)       ac_cv_func_mbtowc=$gl_cv_onwards_func_mbtowc ;;
+  esac
+  if test $ac_cv_func_mbtowc = yes; then
 
+printf "%s\n" "#define HAVE_MBTOWC 1" >>confdefs.h
 
-printf "%s\n" "#define GNULIB_TEST_MBTOWC 1" >>confdefs.h
+  fi
 
 
+  if test $ac_cv_func_mbtowc = no; then
+    HAVE_MBTOWC=0
+    case "$gl_cv_onwards_func_mbtowc" in
+      future*) REPLACE_MBTOWC=1 ;;
+    esac
+  else
+    if false; then
+      REPLACE_MBTOWC=1
+    fi
+  fi
+
+
+     if test $HAVE_MBTOWC = 0 || test $REPLACE_MBTOWC = 1; then
+  GL_COND_OBJ_MBTOWC_TRUE=
+  GL_COND_OBJ_MBTOWC_FALSE='#'
+else
+  GL_COND_OBJ_MBTOWC_TRUE='#'
+  GL_COND_OBJ_MBTOWC_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_MBTOWC_TRUE}" && test -z "${GL_COND_OBJ_MBTOWC_FALSE}"; then
+    GL_COND_OBJ_MBTOWC_TRUE='#'
+    GL_COND_OBJ_MBTOWC_FALSE='#'
+  fi
 
+  if test -z "$GL_COND_OBJ_MBTOWC_TRUE"; then :
 
 
   :
 
 
-  if test $REPLACE_MEMCHR = 1; then
+fi
+
+
+
+
+
+
+
+
+
+          GL_GNULIB_MBTOWC=1
+
+
+
+
+
+printf "%s\n" "#define GNULIB_TEST_MBTOWC 1" >>confdefs.h
 
 
 
 
 
+  :
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS memchr.$ac_objext"
+     if test $REPLACE_MEMCHR = 1; then
+  GL_COND_OBJ_MEMCHR_TRUE=
+  GL_COND_OBJ_MEMCHR_FALSE='#'
+else
+  GL_COND_OBJ_MEMCHR_TRUE='#'
+  GL_COND_OBJ_MEMCHR_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_MEMCHR_TRUE}" && test -z "${GL_COND_OBJ_MEMCHR_FALSE}"; then
+    GL_COND_OBJ_MEMCHR_TRUE='#'
+    GL_COND_OBJ_MEMCHR_FALSE='#'
+  fi
+
+  if test -z "$GL_COND_OBJ_MEMCHR_TRUE"; then :
 
 
   ac_fn_c_check_header_compile "$LINENO" "bp-sym.h" "ac_cv_header_bp_sym_h" "$ac_includes_default"
@@ -31178,7 +34794,13 @@ then :
 fi
 
 
-  fi
+
+fi
+
+
+
+
+
 
 
 
@@ -31204,32 +34826,108 @@ printf "%s\n" "#define GNULIB_TEST_MEMCHR 1" >>confdefs.h
 
 
 
-  ac_fn_c_check_func "$LINENO" "mempcpy" "ac_cv_func_mempcpy"
+
+
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for mempcpy" >&5
+printf %s "checking for mempcpy... " >&6; }
+if test ${gl_cv_onwards_func_mempcpy+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+  exec 9>&6 6>/dev/null
+
+       case "$host_os" in
+
+         linux*-android*)
+           ac_fn_check_decl "$LINENO" "mempcpy" "ac_cv_have_decl_mempcpy" "#include <string.h>
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_mempcpy" = xyes
+then :
+
+fi
+           if test $ac_cv_have_decl_mempcpy = yes; then
+             ac_fn_c_check_func "$LINENO" "mempcpy" "ac_cv_func_mempcpy"
 if test "x$ac_cv_func_mempcpy" = xyes
 then :
-  printf "%s\n" "#define HAVE_MEMPCPY 1" >>confdefs.h
 
 fi
 
+             if test $ac_cv_func_mempcpy = yes; then
+               gl_cv_onwards_func_mempcpy=yes
+             else
+                                                            gl_cv_onwards_func_mempcpy='future OS version'
+             fi
+           else
+             gl_cv_onwards_func_mempcpy='future OS version'
+           fi
+           ;;
+
+
+         *)
+           ac_fn_c_check_func "$LINENO" "mempcpy" "ac_cv_func_mempcpy"
+if test "x$ac_cv_func_mempcpy" = xyes
+then :
+
+fi
+
+           gl_cv_onwards_func_mempcpy=$ac_cv_func_mempcpy
+           ;;
+
+       esac
+
+  exec 6>&9 9>&-
+
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_onwards_func_mempcpy" >&5
+printf "%s\n" "$gl_cv_onwards_func_mempcpy" >&6; }
+
+  case "$gl_cv_onwards_func_mempcpy" in
+    future*) ac_cv_func_mempcpy=no ;;
+    *)       ac_cv_func_mempcpy=$gl_cv_onwards_func_mempcpy ;;
+  esac
+  if test $ac_cv_func_mempcpy = yes; then
+
+printf "%s\n" "#define HAVE_MEMPCPY 1" >>confdefs.h
+
+  fi
+
+
   if test $ac_cv_func_mempcpy = no; then
     HAVE_MEMPCPY=0
+    case "$gl_cv_onwards_func_mempcpy" in
+      future*) REPLACE_MEMPCPY=1 ;;
+    esac
   fi
 
-  if test $HAVE_MEMPCPY = 0; then
 
+     if test $HAVE_MEMPCPY = 0 || test $REPLACE_MEMPCPY = 1; then
+  GL_COND_OBJ_MEMPCPY_TRUE=
+  GL_COND_OBJ_MEMPCPY_FALSE='#'
+else
+  GL_COND_OBJ_MEMPCPY_TRUE='#'
+  GL_COND_OBJ_MEMPCPY_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_MEMPCPY_TRUE}" && test -z "${GL_COND_OBJ_MEMPCPY_FALSE}"; then
+    GL_COND_OBJ_MEMPCPY_TRUE='#'
+    GL_COND_OBJ_MEMPCPY_FALSE='#'
+  fi
 
+  if test -z "$GL_COND_OBJ_MEMPCPY_TRUE"; then :
 
 
+  :
 
 
+fi
 
 
-  gl_LIBOBJS="$gl_LIBOBJS mempcpy.$ac_objext"
 
 
-  :
 
-  fi
 
 
 
@@ -31259,13 +34957,15 @@ printf %s "checking whether mkdir handles trailing slash... " >&6; }
 if test ${gl_cv_func_mkdir_trailing_slash_works+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  rm -rf conftest.dir
+else case e in #(
+  e) rm -rf conftest.dir
      if test "$cross_compiling" = yes
 then :
   case "$host_os" in
                            # Guess yes on Linux systems.
           linux-* | linux) gl_cv_func_mkdir_trailing_slash_works="guessing yes" ;;
+                           # Guess yes on systems that emulate the Linux system calls.
+          midipix*)        gl_cv_func_mkdir_trailing_slash_works="guessing yes" ;;
                            # Guess yes on glibc systems.
           *-gnu* | gnu*)   gl_cv_func_mkdir_trailing_slash_works="guessing yes" ;;
                            # Guess yes on MSVC, no on mingw.
@@ -31278,11 +34978,12 @@ then :
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Known" >/dev/null 2>&1
+  $EGREP_TRADITIONAL "Known" >/dev/null 2>&1
 then :
   gl_cv_func_mkdir_trailing_slash_works="guessing yes"
-else $as_nop
-  gl_cv_func_mkdir_trailing_slash_works="guessing no"
+else case e in #(
+  e) gl_cv_func_mkdir_trailing_slash_works="guessing no" ;;
+esac
 fi
 rm -rf conftest*
 
@@ -31291,8 +34992,8 @@ rm -rf conftest*
           *)               gl_cv_func_mkdir_trailing_slash_works="$gl_cross_guess_normal" ;;
         esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
           #include <sys/types.h>
@@ -31312,15 +35013,18 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_mkdir_trailing_slash_works=yes
-else $as_nop
-  gl_cv_func_mkdir_trailing_slash_works=no
+else case e in #(
+  e) gl_cv_func_mkdir_trailing_slash_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
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
      rm -rf conftest.dir
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mkdir_trailing_slash_works" >&5
 printf "%s\n" "$gl_cv_func_mkdir_trailing_slash_works" >&6; }
@@ -31336,8 +35040,8 @@ printf %s "checking whether mkdir handles trailing dot... " >&6; }
 if test ${gl_cv_func_mkdir_trailing_dot_works+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  rm -rf conftest.dir
+else case e in #(
+  e) rm -rf conftest.dir
      if test "$cross_compiling" = yes
 then :
   case "$host_os" in
@@ -31345,14 +35049,16 @@ then :
           *-gnu* | gnu*) gl_cv_func_mkdir_trailing_dot_works="guessing yes" ;;
                          # Guess yes on musl systems.
           *-musl*)       gl_cv_func_mkdir_trailing_dot_works="guessing yes" ;;
+                         # Guess yes on systems that emulate the Linux system calls.
+          midipix*)      gl_cv_func_mkdir_trailing_dot_works="guessing yes" ;;
                          # Guess no on native Windows.
           mingw*)        gl_cv_func_mkdir_trailing_dot_works="guessing no" ;;
                          # If we don't know, obey --enable-cross-guesses.
           *)             gl_cv_func_mkdir_trailing_dot_works="$gl_cross_guess_normal" ;;
         esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
           #include <sys/types.h>
@@ -31372,16 +35078,19 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_mkdir_trailing_dot_works=yes
-else $as_nop
-  gl_cv_func_mkdir_trailing_dot_works=no
+else case e in #(
+  e) gl_cv_func_mkdir_trailing_dot_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
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
      rm -rf conftest.dir
 
-
+   ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mkdir_trailing_dot_works" >&5
 printf "%s\n" "$gl_cv_func_mkdir_trailing_dot_works" >&6; }
@@ -31395,17 +35104,18 @@ printf "%s\n" "#define FUNC_MKDIR_DOT_BUG 1" >>confdefs.h
       ;;
   esac
 
-  if test $REPLACE_MKDIR = 1; then
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS mkdir.$ac_objext"
 
+     if test $REPLACE_MKDIR = 1; then
+  GL_COND_OBJ_MKDIR_TRUE=
+  GL_COND_OBJ_MKDIR_FALSE='#'
+else
+  GL_COND_OBJ_MKDIR_TRUE='#'
+  GL_COND_OBJ_MKDIR_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_MKDIR_TRUE}" && test -z "${GL_COND_OBJ_MKDIR_FALSE}"; then
+    GL_COND_OBJ_MKDIR_TRUE='#'
+    GL_COND_OBJ_MKDIR_FALSE='#'
   fi
 
 
@@ -31416,6 +35126,7 @@ printf "%s\n" "#define FUNC_MKDIR_DOT_BUG 1" >>confdefs.h
 
 
 
+
           GL_GNULIB_MKDIR=1
 
 
@@ -31436,24 +35147,24 @@ printf %s "checking for working mkstemp... " >&6; }
 if test ${gl_cv_func_working_mkstemp+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
         mkdir conftest.mkstemp
         if test "$cross_compiling" = yes
 then :
   case "$host_os" in
-                            # Guess yes on glibc systems.
-             *-gnu* | gnu*) gl_cv_func_working_mkstemp="guessing yes" ;;
-                            # Guess yes on musl systems.
-             *-musl*)       gl_cv_func_working_mkstemp="guessing yes" ;;
-                            # Guess no on native Windows.
-             mingw*)        gl_cv_func_working_mkstemp="guessing no" ;;
-                            # If we don't know, obey --enable-cross-guesses.
-             *)             gl_cv_func_working_mkstemp="$gl_cross_guess_normal" ;;
+                                 # Guess yes on glibc systems.
+             *-gnu* | gnu*)      gl_cv_func_working_mkstemp="guessing yes" ;;
+                                 # Guess yes on musl systems.
+             *-musl* | midipix*) gl_cv_func_working_mkstemp="guessing yes" ;;
+                                 # Guess no on native Windows.
+             mingw*)             gl_cv_func_working_mkstemp="guessing no" ;;
+                                 # If we don't know, obey --enable-cross-guesses.
+             *)                  gl_cv_func_working_mkstemp="$gl_cross_guess_normal" ;;
            esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $ac_includes_default
 
@@ -31497,15 +35208,18 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_working_mkstemp=yes
-else $as_nop
-  gl_cv_func_working_mkstemp=no
+else case e in #(
+  e) gl_cv_func_working_mkstemp=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
         rm -rf conftest.mkstemp
-
+       ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_mkstemp" >&5
 printf "%s\n" "$gl_cv_func_working_mkstemp" >&6; }
@@ -31519,20 +35233,26 @@ printf "%s\n" "$gl_cv_func_working_mkstemp" >&6; }
     HAVE_MKSTEMP=0
   fi
 
-  if test $HAVE_MKSTEMP = 0 || test $REPLACE_MKSTEMP = 1; then
-
-
-
-
-
 
+     if test $HAVE_MKSTEMP = 0 || test $REPLACE_MKSTEMP = 1; then
+  GL_COND_OBJ_MKSTEMP_TRUE=
+  GL_COND_OBJ_MKSTEMP_FALSE='#'
+else
+  GL_COND_OBJ_MKSTEMP_TRUE='#'
+  GL_COND_OBJ_MKSTEMP_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_MKSTEMP_TRUE}" && test -z "${GL_COND_OBJ_MKSTEMP_FALSE}"; then
+    GL_COND_OBJ_MKSTEMP_TRUE='#'
+    GL_COND_OBJ_MKSTEMP_FALSE='#'
+  fi
 
+  if test -z "$GL_COND_OBJ_MKSTEMP_TRUE"; then :
 
-  gl_LIBOBJS="$gl_LIBOBJS mkstemp.$ac_objext"
 
 
 
-  fi
+fi
 
 
 
@@ -31616,12 +35336,13 @@ then :
 printf "%s\n" "#define mktime_internal __mktime_internal" >>confdefs.h
 
 
-else $as_nop
-            WANT_MKTIME_INTERNAL=1
+else case e in #(
+  e)           WANT_MKTIME_INTERNAL=1
 
 printf "%s\n" "#define NEED_MKTIME_INTERNAL 1" >>confdefs.h
 
-
+     ;;
+esac
 fi
 
 
     :
   fi
 
-  if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+
+     if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+  GL_COND_OBJ_MSVC_INVAL_TRUE=
+  GL_COND_OBJ_MSVC_INVAL_FALSE='#'
+else
+  GL_COND_OBJ_MSVC_INVAL_TRUE='#'
+  GL_COND_OBJ_MSVC_INVAL_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_MSVC_INVAL_TRUE}" && test -z "${GL_COND_OBJ_MSVC_INVAL_FALSE}"; then
+    GL_COND_OBJ_MSVC_INVAL_TRUE='#'
+    GL_COND_OBJ_MSVC_INVAL_FALSE='#'
+  fi
 
 
 
+     if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+  GL_COND_OBJ_MSVC_NOTHROW_TRUE=
+  GL_COND_OBJ_MSVC_NOTHROW_FALSE='#'
+else
+  GL_COND_OBJ_MSVC_NOTHROW_TRUE='#'
+  GL_COND_OBJ_MSVC_NOTHROW_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_MSVC_NOTHROW_TRUE}" && test -z "${GL_COND_OBJ_MSVC_NOTHROW_FALSE}"; then
+    GL_COND_OBJ_MSVC_NOTHROW_TRUE='#'
+    GL_COND_OBJ_MSVC_NOTHROW_FALSE='#'
+  fi
 
 
 
+printf "%s\n" "#define GNULIB_MSVC_NOTHROW 1" >>confdefs.h
 
 
-  gl_LIBOBJS="$gl_LIBOBJS msvc-inval.$ac_objext"
 
-  fi
 
-  if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
 
 
 
 
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo" >&5
+printf %s "checking for nl_langinfo... " >&6; }
+if test ${gl_cv_onwards_func_nl_langinfo+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+  exec 9>&6 6>/dev/null
 
+       case "$host_os" in
 
+         linux*-android*)
+           ac_fn_check_decl "$LINENO" "nl_langinfo" "ac_cv_have_decl_nl_langinfo" "#include <langinfo.h>
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_nl_langinfo" = xyes
+then :
 
+fi
+           if test $ac_cv_have_decl_nl_langinfo = yes; then
+             ac_fn_c_check_func "$LINENO" "nl_langinfo" "ac_cv_func_nl_langinfo"
+if test "x$ac_cv_func_nl_langinfo" = xyes
+then :
 
-  gl_LIBOBJS="$gl_LIBOBJS msvc-nothrow.$ac_objext"
+fi
 
-  fi
+             if test $ac_cv_func_nl_langinfo = yes; then
+               gl_cv_onwards_func_nl_langinfo=yes
+             else
+                                                            gl_cv_onwards_func_nl_langinfo='future OS version'
+             fi
+           else
+             gl_cv_onwards_func_nl_langinfo='future OS version'
+           fi
+           ;;
 
 
-printf "%s\n" "#define GNULIB_MSVC_NOTHROW 1" >>confdefs.h
+         *)
+           ac_fn_c_check_func "$LINENO" "nl_langinfo" "ac_cv_func_nl_langinfo"
+if test "x$ac_cv_func_nl_langinfo" = xyes
+then :
+
+fi
+
+           gl_cv_onwards_func_nl_langinfo=$ac_cv_func_nl_langinfo
+           ;;
+
+       esac
 
+  exec 6>&9 9>&-
 
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_onwards_func_nl_langinfo" >&5
+printf "%s\n" "$gl_cv_onwards_func_nl_langinfo" >&6; }
 
+  case "$gl_cv_onwards_func_nl_langinfo" in
+    future*) ac_cv_func_nl_langinfo=no ;;
+    *)       ac_cv_func_nl_langinfo=$gl_cv_onwards_func_nl_langinfo ;;
+  esac
+  if test $ac_cv_func_nl_langinfo = yes; then
 
+printf "%s\n" "#define HAVE_NL_LANGINFO 1" >>confdefs.h
 
+  fi
 
 
 
@@ -31685,8 +35478,8 @@ printf %s "checking whether YESEXPR works... " >&6; }
 if test ${gl_cv_func_nl_langinfo_yesexpr_works+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test "$cross_compiling" = yes
+else case e in #(
+  e) if test "$cross_compiling" = yes
 then :
 
          case "$host_os" in
@@ -31696,8 +35489,8 @@ then :
            *)      gl_cv_func_nl_langinfo_yesexpr_works="guessing yes";;
          esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <langinfo.h>
 
@@ -31713,14 +35506,17 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_nl_langinfo_yesexpr_works=yes
-else $as_nop
-  gl_cv_func_nl_langinfo_yesexpr_works=no
+else case e in #(
+  e) gl_cv_func_nl_langinfo_yesexpr_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
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
-
+       ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_nl_langinfo_yesexpr_works" >&5
 printf "%s\n" "$gl_cv_func_nl_langinfo_yesexpr_works" >&6; }
@@ -31754,37 +35550,46 @@ printf "%s\n" "#define REPLACE_NL_LANGINFO 1" >>confdefs.h
     fi
   else
     HAVE_NL_LANGINFO=0
+    case "$gl_cv_onwards_func_nl_langinfo" in
+      future*) REPLACE_NL_LANGINFO=1 ;;
+    esac
   fi
   if test $HAVE_NL_LANGINFO = 0 || test $HAVE_LANGINFO_CODESET = 0; then
-    LIB_NL_LANGINFO="$LIB_SETLOCALE_NULL"
+    LIB_NL_LANGINFO="$SETLOCALE_NULL_LIB"
   else
     LIB_NL_LANGINFO=
   fi
 
 
-  if test $HAVE_NL_LANGINFO = 0 || test $REPLACE_NL_LANGINFO = 1; then
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS nl_langinfo.$ac_objext"
 
+     if test $HAVE_NL_LANGINFO = 0 || test $REPLACE_NL_LANGINFO = 1; then
+  GL_COND_OBJ_NL_LANGINFO_TRUE=
+  GL_COND_OBJ_NL_LANGINFO_FALSE='#'
+else
+  GL_COND_OBJ_NL_LANGINFO_TRUE='#'
+  GL_COND_OBJ_NL_LANGINFO_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_NL_LANGINFO_TRUE}" && test -z "${GL_COND_OBJ_NL_LANGINFO_FALSE}"; then
+    GL_COND_OBJ_NL_LANGINFO_TRUE='#'
+    GL_COND_OBJ_NL_LANGINFO_FALSE='#'
   fi
-  if test $REPLACE_NL_LANGINFO = 1 && test $NL_LANGINFO_MTSAFE = 0; then
-
-
-
 
 
+     if test $REPLACE_NL_LANGINFO = 1 && test $NL_LANGINFO_MTSAFE = 0; then
+  GL_COND_OBJ_NL_LANGINFO_LOCK_TRUE=
+  GL_COND_OBJ_NL_LANGINFO_LOCK_FALSE='#'
+else
+  GL_COND_OBJ_NL_LANGINFO_LOCK_TRUE='#'
+  GL_COND_OBJ_NL_LANGINFO_LOCK_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_NL_LANGINFO_LOCK_TRUE}" && test -z "${GL_COND_OBJ_NL_LANGINFO_LOCK_FALSE}"; then
+    GL_COND_OBJ_NL_LANGINFO_LOCK_TRUE='#'
+    GL_COND_OBJ_NL_LANGINFO_LOCK_FALSE='#'
+  fi
 
-
-
-  gl_LIBOBJS="$gl_LIBOBJS nl_langinfo-lock.$ac_objext"
-
+  if test $REPLACE_NL_LANGINFO = 1 && test $NL_LANGINFO_MTSAFE = 0; then
 
 
 
@@ -31796,8 +35601,8 @@ printf %s "checking whether the -Werror option is usable... " >&6; }
 if test ${gl_cv_cc_vis_werror+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  gl_save_CFLAGS="$CFLAGS"
+else case e in #(
+  e) gl_save_CFLAGS="$CFLAGS"
        CFLAGS="$CFLAGS -Werror"
        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -31813,12 +35618,14 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_cc_vis_werror=yes
-else $as_nop
-  gl_cv_cc_vis_werror=no
+else case e in #(
+  e) gl_cv_cc_vis_werror=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
        CFLAGS="$gl_save_CFLAGS"
-
+       ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_vis_werror" >&5
 printf "%s\n" "$gl_cv_cc_vis_werror" >&6; }
@@ -31827,8 +35634,8 @@ printf %s "checking for simple visibility declarations... " >&6; }
 if test ${gl_cv_cc_visibility+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  gl_save_CFLAGS="$CFLAGS"
+else case e in #(
+  e) gl_save_CFLAGS="$CFLAGS"
        CFLAGS="$CFLAGS -fvisibility=hidden"
                                           if test $gl_cv_cc_vis_werror = yes; then
          CFLAGS="$CFLAGS -Werror"
@@ -31857,12 +35664,14 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_cc_visibility=yes
-else $as_nop
-  gl_cv_cc_visibility=no
+else case e in #(
+  e) gl_cv_cc_visibility=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
        CFLAGS="$gl_save_CFLAGS"
-
+       ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_visibility" >&5
 printf "%s\n" "$gl_cv_cc_visibility" >&6; }
@@ -31911,6 +35720,50 @@ printf "%s\n" "#define my_strftime nstrftime" >>confdefs.h
 
 
 
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C nullptr" >&5
+printf %s "checking for C nullptr... " >&6; }
+if test ${gl_cv_c_nullptr+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+int *p = nullptr;
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  gl_cv_c_nullptr=yes
+else case e in #(
+  e) gl_cv_c_nullptr=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_c_nullptr" >&5
+printf "%s\n" "$gl_cv_c_nullptr" >&6; }
+      gl_c_nullptr=$gl_cv_c_nullptr
+      ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+  if test "$gl_c_nullptr" = yes; then
+
+printf "%s\n" "#define HAVE_C_NULLPTR 1" >>confdefs.h
+
+  fi
+
+
+
+
 
 
   case "$host_os" in
@@ -31929,8 +35782,8 @@ printf %s "checking whether open recognizes a trailing slash... " >&6; }
 if test ${gl_cv_func_open_slash+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  # Assume that if we have lstat, we can also check symlinks.
+else case e in #(
+  e) # Assume that if we have lstat, we can also check symlinks.
      if test $ac_cv_func_lstat = yes; then
        touch conftest.tmp
        ln -s conftest.tmp conftest.lnk
@@ -31945,8 +35798,8 @@ then :
             gl_cv_func_open_slash="guessing yes" ;;
         esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <fcntl.h>
@@ -31972,15 +35825,18 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_open_slash=yes
-else $as_nop
-  gl_cv_func_open_slash=no
+else case e in #(
+  e) gl_cv_func_open_slash=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
      rm -f conftest.sl conftest.tmp conftest.lnk
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_open_slash" >&5
 printf "%s\n" "$gl_cv_func_open_slash" >&6; }
@@ -32002,40 +35858,99 @@ printf "%s\n" "#define OPEN_TRAILING_SLASH_BUG 1" >>confdefs.h
 
 
 
-  if test $REPLACE_OPEN = 1; then
 
+     if test $REPLACE_OPEN = 1; then
+  GL_COND_OBJ_OPEN_TRUE=
+  GL_COND_OBJ_OPEN_FALSE='#'
+else
+  GL_COND_OBJ_OPEN_TRUE='#'
+  GL_COND_OBJ_OPEN_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_OPEN_TRUE}" && test -z "${GL_COND_OBJ_OPEN_FALSE}"; then
+    GL_COND_OBJ_OPEN_TRUE='#'
+    GL_COND_OBJ_OPEN_FALSE='#'
+  fi
 
+  if test -z "$GL_COND_OBJ_OPEN_TRUE"; then :
 
 
 
+  :
 
 
+fi
 
-  gl_LIBOBJS="$gl_LIBOBJS open.$ac_objext"
 
 
 
-  :
 
-  fi
 
 
 
 
+          GL_GNULIB_OPEN=1
 
 
 
 
 
-          GL_GNULIB_OPEN=1
+printf "%s\n" "#define GNULIB_TEST_OPEN 1" >>confdefs.h
 
 
 
 
 
-printf "%s\n" "#define GNULIB_TEST_OPEN 1" >>confdefs.h
 
 
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Perl 5.005 or newer" >&5
+printf %s "checking for Perl 5.005 or newer... " >&6; }
+if test ${gl_cv_prog_perl+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+  if test "${PERL+set}" = set; then
+    # 'PERL' is set in the user's environment.
+    candidate_perl_names="$PERL"
+    perl_specified=yes
+  else
+    candidate_perl_names='perl perl5'
+    perl_specified=no
+  fi
+
+  gl_cv_prog_perl=no
+  for perl in $candidate_perl_names; do
+    # Run test in a subshell; some versions of sh will print an error if
+    # an executable is not found, even if stderr is redirected.
+    if ( $perl -e 'require 5.005; use File::Compare; use warnings;' ) > /dev/null 2>&1; then
+      gl_cv_prog_perl=$perl
+      break
+    fi
+  done
+  ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_prog_perl" >&5
+printf "%s\n" "$gl_cv_prog_perl" >&6; }
+
+if test "$gl_cv_prog_perl" != no; then
+  PERL=$gl_cv_prog_perl
+else
+  PERL="$am_missing_run perl"
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING:
+WARNING: You don't seem to have perl5.005 or newer installed, or you lack
+         a usable version of the Perl File::Compare module.  As a result,
+         you may be unable to run a few tests or to regenerate certain
+         files if you modify the sources from which they are derived.
+ " >&5
+printf "%s\n" "$as_me: WARNING:
+WARNING: You don't seem to have perl5.005 or newer installed, or you lack
+         a usable version of the Perl File::Compare module.  As a result,
+         you may be unable to run a few tests or to regenerate certain
+         files if you modify the sources from which they are derived.
+ " >&2;}
+fi
 
 
 
@@ -32045,8 +35960,9 @@ printf "%s\n" "#define GNULIB_TEST_OPEN 1" >>confdefs.h
 if test "x$ac_cv_have_decl_program_invocation_name" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_PROGRAM_INVOCATION_NAME $ac_have_decl" >>confdefs.h
 
@@ -32055,8 +35971,9 @@ printf "%s\n" "#define HAVE_DECL_PROGRAM_INVOCATION_NAME $ac_have_decl" >>confde
 if test "x$ac_cv_have_decl_program_invocation_short_name" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME $ac_have_decl" >>confdefs.h
 
 
   fi
 
-  if test $HAVE_RAISE = 0 || test $REPLACE_RAISE = 1; then
-
-
-
-
-
-
 
+     if test $HAVE_RAISE = 0 || test $REPLACE_RAISE = 1; then
+  GL_COND_OBJ_RAISE_TRUE=
+  GL_COND_OBJ_RAISE_FALSE='#'
+else
+  GL_COND_OBJ_RAISE_TRUE='#'
+  GL_COND_OBJ_RAISE_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_RAISE_TRUE}" && test -z "${GL_COND_OBJ_RAISE_FALSE}"; then
+    GL_COND_OBJ_RAISE_TRUE='#'
+    GL_COND_OBJ_RAISE_FALSE='#'
+  fi
 
-  gl_LIBOBJS="$gl_LIBOBJS raise.$ac_objext"
+  if test -z "$GL_COND_OBJ_RAISE_TRUE"; then :
 
     :
-  fi
+
+fi
 
 
 
     HAVE_RAWMEMCHR=0
   fi
 
-  if test $HAVE_RAWMEMCHR = 0; then
 
+     if test $HAVE_RAWMEMCHR = 0; then
+  GL_COND_OBJ_RAWMEMCHR_TRUE=
+  GL_COND_OBJ_RAWMEMCHR_FALSE='#'
+else
+  GL_COND_OBJ_RAWMEMCHR_TRUE='#'
+  GL_COND_OBJ_RAWMEMCHR_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_RAWMEMCHR_TRUE}" && test -z "${GL_COND_OBJ_RAWMEMCHR_FALSE}"; then
+    GL_COND_OBJ_RAWMEMCHR_TRUE='#'
+    GL_COND_OBJ_RAWMEMCHR_FALSE='#'
+  fi
 
+  if test -z "$GL_COND_OBJ_RAWMEMCHR_TRUE"; then :
 
+    :
 
+fi
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS rawmemchr.$ac_objext"
 
-    :
-  fi
 
 
 
@@ -32204,8 +36138,8 @@ printf %s "checking whether readlink signature is correct... " >&6; }
 if test ${gl_cv_decl_readlink_works+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <unistd.h>
       /* Cause compilation failure if original declaration has wrong type.  */
@@ -32221,10 +36155,12 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_decl_readlink_works=yes
-else $as_nop
-  gl_cv_decl_readlink_works=no
+else case e in #(
+  e) gl_cv_decl_readlink_works=no ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+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_decl_readlink_works" >&5
 printf "%s\n" "$gl_cv_decl_readlink_works" >&6; }
@@ -32233,8 +36169,8 @@ printf %s "checking whether readlink handles trailing slash correctly... " >&6;
 if test ${gl_cv_func_readlink_trailing_slash+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  # We have readlink, so assume ln -s works.
+else case e in #(
+  e) # We have readlink, so assume ln -s works.
        ln -s conftest.no-such conftest.link
        ln -s conftest.link conftest.lnk2
        if test "$cross_compiling" = yes
@@ -32243,6 +36179,9 @@ then :
             # Guess yes on Linux or glibc systems.
             linux-* | linux | *-gnu* | gnu*)
               gl_cv_func_readlink_trailing_slash="guessing yes" ;;
+            # Guess yes on systems that emulate the Linux system calls.
+            midipix*)
+              gl_cv_func_readlink_trailing_slash="guessing yes" ;;
             # Guess no on AIX or HP-UX.
             aix* | hpux*)
               gl_cv_func_readlink_trailing_slash="guessing no" ;;
@@ -32251,8 +36190,8 @@ then :
               gl_cv_func_readlink_trailing_slash="$gl_cross_guess_normal" ;;
           esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <unistd.h>
 
@@ -32268,14 +36207,17 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_readlink_trailing_slash=yes
-else $as_nop
-  gl_cv_func_readlink_trailing_slash=no
+else case e in #(
+  e) gl_cv_func_readlink_trailing_slash=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
-      rm -f conftest.link conftest.lnk2
+      rm -f conftest.link conftest.lnk2 ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_readlink_trailing_slash" >&5
 printf "%s\n" "$gl_cv_func_readlink_trailing_slash" >&6; }
@@ -32298,8 +36240,8 @@ printf %s "checking whether readlink truncates results correctly... " >&6; }
 if test ${gl_cv_func_readlink_truncate+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  # We have readlink, so assume ln -s works.
+else case e in #(
+  e) # We have readlink, so assume ln -s works.
        ln -s ab conftest.link
        if test "$cross_compiling" = yes
 then :
@@ -32307,6 +36249,9 @@ then :
             # Guess yes on Linux or glibc systems.
             linux-* | linux | *-gnu* | gnu*)
               gl_cv_func_readlink_truncate="guessing yes" ;;
+            # Guess yes on systems that emulate the Linux system calls.
+            midipix*)
+              gl_cv_func_readlink_truncate="guessing yes" ;;
             # Guess no on AIX or HP-UX.
             aix* | hpux*)
               gl_cv_func_readlink_truncate="guessing no" ;;
@@ -32315,8 +36260,8 @@ then :
               gl_cv_func_readlink_truncate="$gl_cross_guess_normal" ;;
           esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <unistd.h>
 
@@ -32332,14 +36277,17 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_readlink_truncate=yes
-else $as_nop
-  gl_cv_func_readlink_truncate=no
+else case e in #(
+  e) gl_cv_func_readlink_truncate=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
-      rm -f conftest.link conftest.lnk2
+      rm -f conftest.link conftest.lnk2 ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_readlink_truncate" >&5
 printf "%s\n" "$gl_cv_func_readlink_truncate" >&6; }
@@ -32358,21 +36306,27 @@ printf "%s\n" "#define READLINK_TRUNCATE_BUG 1" >>confdefs.h
     esac
   fi
 
-  if test $HAVE_READLINK = 0 || test $REPLACE_READLINK = 1; then
-
-
-
-
-
-
 
+     if test $HAVE_READLINK = 0 || test $REPLACE_READLINK = 1; then
+  GL_COND_OBJ_READLINK_TRUE=
+  GL_COND_OBJ_READLINK_FALSE='#'
+else
+  GL_COND_OBJ_READLINK_TRUE='#'
+  GL_COND_OBJ_READLINK_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_READLINK_TRUE}" && test -z "${GL_COND_OBJ_READLINK_FALSE}"; then
+    GL_COND_OBJ_READLINK_TRUE='#'
+    GL_COND_OBJ_READLINK_FALSE='#'
+  fi
 
-  gl_LIBOBJS="$gl_LIBOBJS readlink.$ac_objext"
+  if test -z "$GL_COND_OBJ_READLINK_TRUE"; then :
 
 
   :
 
-  fi
+
+fi
 
 
 
@@ -32395,28 +36349,28 @@ printf "%s\n" "#define GNULIB_TEST_READLINK 1" >>confdefs.h
 
 
 
-  if test $REPLACE_REALLOC = 0; then
+  if test $REPLACE_REALLOC_FOR_REALLOC_GNU = 0; then
 
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether realloc (0, 0) returns nonnull" >&5
 printf %s "checking whether realloc (0, 0) returns nonnull... " >&6; }
 if test ${ac_cv_func_realloc_0_nonnull+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test "$cross_compiling" = yes
+else case e in #(
+  e) if test "$cross_compiling" = yes
 then :
   case "$host_os" in
           # Guess yes on platforms where we know the result.
           *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \
-          | gnu* | *-musl* | midnightbsd* \
+          | gnu* | *-musl* | midipix* | midnightbsd* \
           | hpux* | solaris* | cygwin* | mingw* | msys* )
             ac_cv_func_realloc_0_nonnull="guessing yes" ;;
           # If we don't know, obey --enable-cross-guesses.
           *) ac_cv_func_realloc_0_nonnull="$gl_cross_guess_normal" ;;
         esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdlib.h>
 
@@ -32435,14 +36389,17 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   ac_cv_func_realloc_0_nonnull=yes
-else $as_nop
-  ac_cv_func_realloc_0_nonnull=no
+else case e in #(
+  e) ac_cv_func_realloc_0_nonnull=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_realloc_0_nonnull" >&5
 printf "%s\n" "$ac_cv_func_realloc_0_nonnull" >&6; }
@@ -32450,12 +36407,12 @@ printf "%s\n" "$ac_cv_func_realloc_0_nonnull" >&6; }
   *yes) :
      ;; #(
   *) :
-    REPLACE_REALLOC=1 ;;
+    REPLACE_REALLOC_FOR_REALLOC_GNU=1 ;;
 esac
 
   fi
 
-  if test $REPLACE_REALLOC = 1; then
+  if test $REPLACE_REALLOC_FOR_REALLOC_GNU = 1; then
 
 
 
@@ -32470,11 +36427,30 @@ esac
 
 
 
-  if test $REPLACE_MALLOC = 1; then
-    REPLACE_REALLOC=1
+
+
+
+
+
+
+          GL_GNULIB_REALLOC_GNU=1
+
+
+
+
+
+printf "%s\n" "#define GNULIB_TEST_REALLOC_GNU 1" >>confdefs.h
+
+
+
+
+
+
+  if test $REPLACE_MALLOC_FOR_MALLOC_POSIX = 1; then
+    REPLACE_REALLOC_FOR_REALLOC_POSIX=1
   fi
 
-  if test $REPLACE_REALLOC = 1; then
+  if test $REPLACE_REALLOC_FOR_REALLOC_POSIX = 1; then
 
 
 
@@ -32510,33 +36486,104 @@ printf "%s\n" "#define GNULIB_TEST_REALLOC_POSIX 1" >>confdefs.h
 
 
 
-  ac_fn_c_check_func "$LINENO" "reallocarray" "ac_cv_func_reallocarray"
+
+
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for reallocarray" >&5
+printf %s "checking for reallocarray... " >&6; }
+if test ${gl_cv_onwards_func_reallocarray+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+  exec 9>&6 6>/dev/null
+
+       case "$host_os" in
+
+         linux*-android*)
+           ac_fn_check_decl "$LINENO" "reallocarray" "ac_cv_have_decl_reallocarray" "#include <stdlib.h>
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_reallocarray" = xyes
+then :
+
+fi
+           if test $ac_cv_have_decl_reallocarray = yes; then
+             ac_fn_c_check_func "$LINENO" "reallocarray" "ac_cv_func_reallocarray"
 if test "x$ac_cv_func_reallocarray" = xyes
 then :
-  printf "%s\n" "#define HAVE_REALLOCARRAY 1" >>confdefs.h
 
 fi
 
-  if test "$ac_cv_func_reallocarray" = no; then
-    HAVE_REALLOCARRAY=0
-  elif test "$gl_cv_malloc_ptrdiff" = no; then
-    REPLACE_REALLOCARRAY=1
-  fi
+             if test $ac_cv_func_reallocarray = yes; then
+               gl_cv_onwards_func_reallocarray=yes
+             else
+                                                            gl_cv_onwards_func_reallocarray='future OS version'
+             fi
+           else
+             gl_cv_onwards_func_reallocarray='future OS version'
+           fi
+           ;;
 
-  if test $HAVE_REALLOCARRAY = 0 || test $REPLACE_REALLOCARRAY = 1; then
 
+         *)
+           ac_fn_c_check_func "$LINENO" "reallocarray" "ac_cv_func_reallocarray"
+if test "x$ac_cv_func_reallocarray" = xyes
+then :
+
+fi
 
+           gl_cv_onwards_func_reallocarray=$ac_cv_func_reallocarray
+           ;;
 
+       esac
 
+  exec 6>&9 9>&-
 
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_onwards_func_reallocarray" >&5
+printf "%s\n" "$gl_cv_onwards_func_reallocarray" >&6; }
 
+  case "$gl_cv_onwards_func_reallocarray" in
+    future*) ac_cv_func_reallocarray=no ;;
+    *)       ac_cv_func_reallocarray=$gl_cv_onwards_func_reallocarray ;;
+  esac
+  if test $ac_cv_func_reallocarray = yes; then
 
+printf "%s\n" "#define HAVE_REALLOCARRAY 1" >>confdefs.h
 
-  gl_LIBOBJS="$gl_LIBOBJS reallocarray.$ac_objext"
+  fi
 
-    :
+
+  if test "$ac_cv_func_reallocarray" = no; then
+    HAVE_REALLOCARRAY=0
+    case "$gl_cv_onwards_func_reallocarray" in
+      future*) REPLACE_REALLOCARRAY=1 ;;
+    esac
+  elif test "$gl_cv_malloc_ptrdiff" = no; then
+    REPLACE_REALLOCARRAY=1
+  fi
+
+
+     if test $HAVE_REALLOCARRAY = 0 || test $REPLACE_REALLOCARRAY = 1; then
+  GL_COND_OBJ_REALLOCARRAY_TRUE=
+  GL_COND_OBJ_REALLOCARRAY_FALSE='#'
+else
+  GL_COND_OBJ_REALLOCARRAY_TRUE='#'
+  GL_COND_OBJ_REALLOCARRAY_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_REALLOCARRAY_TRUE}" && test -z "${GL_COND_OBJ_REALLOCARRAY_FALSE}"; then
+    GL_COND_OBJ_REALLOCARRAY_TRUE='#'
+    GL_COND_OBJ_REALLOCARRAY_FALSE='#'
   fi
 
+  if test -z "$GL_COND_OBJ_REALLOCARRAY_TRUE"; then :
+
+    :
+
+fi
+
 
 printf "%s\n" "#define GNULIB_REALLOCARRAY 1" >>confdefs.h
 
@@ -32584,8 +36631,8 @@ printf %s "checking for working re_compile_pattern... " >&6; }
 if test ${gl_cv_func_re_compile_pattern_working+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test "$cross_compiling" = yes
+else case e in #(
+  e) if test "$cross_compiling" = yes
 then :
   case "$host_os" in
                    # Guess no on native Windows.
@@ -32594,8 +36641,8 @@ then :
            *)      gl_cv_func_re_compile_pattern_working="$gl_cross_guess_normal" ;;
          esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <regex.h>
 
@@ -32897,14 +36944,17 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_re_compile_pattern_working=yes
-else $as_nop
-  gl_cv_func_re_compile_pattern_working=no
+else case e in #(
+  e) gl_cv_func_re_compile_pattern_working=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
-
+       ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_re_compile_pattern_working" >&5
 printf "%s\n" "$gl_cv_func_re_compile_pattern_working" >&6; }
@@ -32971,16 +37021,21 @@ printf "%s\n" "#define regfree rpl_regfree" >>confdefs.h
 
   fi
 
-  if test $ac_use_included_regex = yes; then
-
-
-
-
-
-
 
+     if test $ac_use_included_regex = yes; then
+  GL_COND_OBJ_REGEX_TRUE=
+  GL_COND_OBJ_REGEX_FALSE='#'
+else
+  GL_COND_OBJ_REGEX_TRUE='#'
+  GL_COND_OBJ_REGEX_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_REGEX_TRUE}" && test -z "${GL_COND_OBJ_REGEX_FALSE}"; then
+    GL_COND_OBJ_REGEX_TRUE='#'
+    GL_COND_OBJ_REGEX_FALSE='#'
+  fi
 
-  gl_LIBOBJS="$gl_LIBOBJS regex.$ac_objext"
+  if test -z "$GL_COND_OBJ_REGEX_TRUE"; then :
 
 
 
 if test "x$ac_cv_have_decl_isblank" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_ISBLANK $ac_have_decl" >>confdefs.h
 
 
-  fi
+
+fi
 
 
      if test $ac_cv_func_setenv = no; then
@@ -33018,20 +37075,20 @@ printf %s "checking whether setenv validates arguments... " >&6; }
 if test ${gl_cv_func_setenv_works+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test "$cross_compiling" = yes
+else case e in #(
+  e) if test "$cross_compiling" = yes
 then :
   case "$host_os" in
-                        # Guess yes on glibc systems.
-         *-gnu* | gnu*) gl_cv_func_setenv_works="guessing yes" ;;
-                        # Guess yes on musl systems.
-         *-musl*)       gl_cv_func_setenv_works="guessing yes" ;;
-                        # If we don't know, obey --enable-cross-guesses.
-         *)             gl_cv_func_setenv_works="$gl_cross_guess_normal" ;;
+                             # Guess yes on glibc systems.
+         *-gnu* | gnu*)      gl_cv_func_setenv_works="guessing yes" ;;
+                             # Guess yes on musl systems.
+         *-musl* | midipix*) gl_cv_func_setenv_works="guessing yes" ;;
+                             # If we don't know, obey --enable-cross-guesses.
+         *)                  gl_cv_func_setenv_works="$gl_cross_guess_normal" ;;
        esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
        #include <stdlib.h>
@@ -33064,13 +37121,16 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_setenv_works=yes
-else $as_nop
-  gl_cv_func_setenv_works=no
+else case e in #(
+  e) gl_cv_func_setenv_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
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_setenv_works" >&5
 printf "%s\n" "$gl_cv_func_setenv_works" >&6; }
@@ -33082,17 +37142,18 @@ printf "%s\n" "$gl_cv_func_setenv_works" >&6; }
     esac
   fi
 
-  if test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1; then
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS setenv.$ac_objext"
 
+     if test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1; then
+  GL_COND_OBJ_SETENV_TRUE=
+  GL_COND_OBJ_SETENV_FALSE='#'
+else
+  GL_COND_OBJ_SETENV_TRUE='#'
+  GL_COND_OBJ_SETENV_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_SETENV_TRUE}" && test -z "${GL_COND_OBJ_SETENV_FALSE}"; then
+    GL_COND_OBJ_SETENV_TRUE='#'
+    GL_COND_OBJ_SETENV_FALSE='#'
   fi
 
 
@@ -33103,6 +37164,7 @@ printf "%s\n" "$gl_cv_func_setenv_works" >&6; }
 
 
 
+
           GL_GNULIB_SETENV=1
 
 
@@ -33123,11 +37185,35 @@ printf %s "checking whether setlocale (LC_ALL, NULL) is multithread-safe... " >&
 if test ${gl_cv_func_setlocale_null_all_mtsafe+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  case "$host_os" in
-       # Guess no on musl libc, macOS, FreeBSD, NetBSD, OpenBSD, AIX, Haiku, Cygwin.
-       *-musl* | darwin* | freebsd* | midnightbsd* | netbsd* | openbsd* | aix* | haiku* | cygwin*)
+else case e in #(
+  e) case "$host_os" in
+       # Guess no on musl libc, macOS, FreeBSD, NetBSD, OpenBSD, AIX, Haiku.
+       *-musl* | midipix* | darwin* | freebsd* | midnightbsd* | netbsd* | openbsd* | aix* | haiku*)
          gl_cv_func_setlocale_null_all_mtsafe=no ;;
+       # Guess no on Cygwin < 3.4.6.
+       cygwin*)
+         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#if defined __CYGWIN__
+ #include <cygwin/version.h>
+ #if CYGWIN_VERSION_DLL_COMBINED >= CYGWIN_VERSION_DLL_MAKE_COMBINED (3004, 6)
+  Lucky user
+ #endif
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP_TRADITIONAL "Lucky user" >/dev/null 2>&1
+then :
+  gl_cv_func_setlocale_null_all_mtsafe=yes
+else case e in #(
+  e) gl_cv_func_setlocale_null_all_mtsafe=no ;;
+esac
+fi
+rm -rf conftest*
+
+        ;;
        # Guess yes on glibc, HP-UX, IRIX, Solaris, native Windows.
        *-gnu* | gnu* | hpux* | irix* | solaris* | mingw*)
          gl_cv_func_setlocale_null_all_mtsafe=yes ;;
@@ -33135,7 +37221,8 @@ else $as_nop
        *)
          gl_cv_func_setlocale_null_all_mtsafe="$gl_cross_guess_normal" ;;
      esac
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_setlocale_null_all_mtsafe" >&5
 printf "%s\n" "$gl_cv_func_setlocale_null_all_mtsafe" >&6; }
@@ -33160,19 +37247,20 @@ printf %s "checking whether setlocale (category, NULL) is multithread-safe... "
 if test ${gl_cv_func_setlocale_null_one_mtsafe+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  case "$host_os" in
+else case e in #(
+  e) case "$host_os" in
        # Guess no on OpenBSD, AIX.
        openbsd* | aix*)
          gl_cv_func_setlocale_null_one_mtsafe=no ;;
        # Guess yes on glibc, musl libc, macOS, FreeBSD, NetBSD, HP-UX, IRIX, Solaris, Haiku, Cygwin, native Windows.
-       *-gnu* | gnu* | *-musl* | darwin* | freebsd* | midnightbsd* | netbsd* | hpux* | irix* | solaris* | haiku* | cygwin* | mingw*)
+       *-gnu* | gnu* | *-musl* | midipix* | darwin* | freebsd* | midnightbsd* | netbsd* | hpux* | irix* | solaris* | haiku* | cygwin* | mingw*)
          gl_cv_func_setlocale_null_one_mtsafe=yes ;;
        # If we don't know, obey --enable-cross-guesses.
        *)
          gl_cv_func_setlocale_null_one_mtsafe="$gl_cross_guess_normal" ;;
      esac
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_setlocale_null_one_mtsafe" >&5
 printf "%s\n" "$gl_cv_func_setlocale_null_one_mtsafe" >&6; }
@@ -33194,7 +37282,7 @@ printf "%s\n" "#define SETLOCALE_NULL_ONE_MTSAFE $SETLOCALE_NULL_ONE_MTSAFE" >>c
 
     if test $SETLOCALE_NULL_ALL_MTSAFE = 0 || test $SETLOCALE_NULL_ONE_MTSAFE = 0; then
     case "$host_os" in
-      mingw*) LIB_SETLOCALE_NULL= ;;
+      mingw*) SETLOCALE_NULL_LIB= ;;
       *)
 
 
@@ -33203,9 +37291,14 @@ printf %s "checking whether imported symbols can be declared weak... " >&6; }
 if test ${gl_cv_have_weak+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  gl_cv_have_weak=no
-          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) case "$host_os" in
+       cygwin* | mingw*)
+                                             gl_cv_have_weak="guessing no"
+         ;;
+       *)
+         gl_cv_have_weak=no
+                  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 extern void xyzzy ();
 #pragma weak xyzzy
@@ -33223,28 +37316,29 @@ then :
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
-     if test $gl_cv_have_weak = maybe; then
-                     if test "$cross_compiling" = yes
+         if test $gl_cv_have_weak = maybe; then
+                                 if test "$cross_compiling" = yes
 then :
-                      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+                              cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #ifdef __ELF__
-             Extensible Linking Format
-             #endif
+                 Extensible Linking Format
+                 #endif
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Extensible Linking Format" >/dev/null 2>&1
+  $EGREP_TRADITIONAL "Extensible Linking Format" >/dev/null 2>&1
 then :
   gl_cv_have_weak="guessing yes"
-else $as_nop
-  gl_cv_have_weak="guessing no"
+else case e in #(
+  e) gl_cv_have_weak="guessing no" ;;
+esac
 fi
 rm -rf conftest*
 
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <stdio.h>
@@ -33257,14 +37351,18 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_have_weak=yes
-else $as_nop
-  gl_cv_have_weak=no
+else case e in #(
+  e) gl_cv_have_weak=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
-     fi
+         fi
+         ;;
+     esac
           case " $LDFLAGS " in
        *" -static "*) gl_cv_have_weak=no ;;
      esac
@@ -33289,7 +37387,8 @@ EOF
          esac
          ;;
      esac
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_weak" >&5
 printf "%s\n" "$gl_cv_have_weak" >&6; }
@@ -33302,26 +37401,33 @@ printf "%s\n" "#define HAVE_WEAK_SYMBOLS 1" >>confdefs.h
   esac
 
         case "$gl_cv_have_weak" in
-          *yes) LIB_SETLOCALE_NULL= ;;
-          *)    LIB_SETLOCALE_NULL="$LIBPTHREAD" ;;
+          *yes) SETLOCALE_NULL_LIB= ;;
+          *)    SETLOCALE_NULL_LIB="$LIBPTHREAD" ;;
         esac
         ;;
     esac
   else
-    LIB_SETLOCALE_NULL=
+    SETLOCALE_NULL_LIB=
   fi
 
-
-  if test $SETLOCALE_NULL_ALL_MTSAFE = 0 || test $SETLOCALE_NULL_ONE_MTSAFE = 0; then
-
-
-
-
+    LIB_SETLOCALE_NULL="$SETLOCALE_NULL_LIB"
 
 
 
+     if test $SETLOCALE_NULL_ALL_MTSAFE = 0 || test $SETLOCALE_NULL_ONE_MTSAFE = 0; then
+  GL_COND_OBJ_SETLOCALE_LOCK_TRUE=
+  GL_COND_OBJ_SETLOCALE_LOCK_FALSE='#'
+else
+  GL_COND_OBJ_SETLOCALE_LOCK_TRUE='#'
+  GL_COND_OBJ_SETLOCALE_LOCK_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_SETLOCALE_LOCK_TRUE}" && test -z "${GL_COND_OBJ_SETLOCALE_LOCK_FALSE}"; then
+    GL_COND_OBJ_SETLOCALE_LOCK_TRUE='#'
+    GL_COND_OBJ_SETLOCALE_LOCK_FALSE='#'
+  fi
 
-  gl_LIBOBJS="$gl_LIBOBJS setlocale-lock.$ac_objext"
+  if test -z "$GL_COND_OBJ_SETLOCALE_LOCK_TRUE"; then :
 
 
 
@@ -33334,8 +37440,8 @@ printf %s "checking whether the -Werror option is usable... " >&6; }
 if test ${gl_cv_cc_vis_werror+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  gl_save_CFLAGS="$CFLAGS"
+else case e in #(
+  e) gl_save_CFLAGS="$CFLAGS"
        CFLAGS="$CFLAGS -Werror"
        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -33351,12 +37457,14 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_cc_vis_werror=yes
-else $as_nop
-  gl_cv_cc_vis_werror=no
+else case e in #(
+  e) gl_cv_cc_vis_werror=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
        CFLAGS="$gl_save_CFLAGS"
-
+       ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_vis_werror" >&5
 printf "%s\n" "$gl_cv_cc_vis_werror" >&6; }
@@ -33365,8 +37473,8 @@ printf %s "checking for simple visibility declarations... " >&6; }
 if test ${gl_cv_cc_visibility+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  gl_save_CFLAGS="$CFLAGS"
+else case e in #(
+  e) gl_save_CFLAGS="$CFLAGS"
        CFLAGS="$CFLAGS -fvisibility=hidden"
                                           if test $gl_cv_cc_vis_werror = yes; then
          CFLAGS="$CFLAGS -Werror"
@@ -33395,12 +37503,14 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_cc_visibility=yes
-else $as_nop
-  gl_cv_cc_visibility=no
+else case e in #(
+  e) gl_cv_cc_visibility=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
        CFLAGS="$gl_save_CFLAGS"
-
+       ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_visibility" >&5
 printf "%s\n" "$gl_cv_cc_visibility" >&6; }
@@ -33416,7 +37526,8 @@ printf "%s\n" "#define HAVE_VISIBILITY $HAVE_VISIBILITY" >>confdefs.h
 
 
 
-  fi
+
+fi
 
 
 
@@ -33444,20 +37555,38 @@ printf "%s\n" "#define GNULIB_TEST_SETLOCALE_NULL 1" >>confdefs.h
 
 
 
-# Check whether --with-libsigsegv was given.
-if test ${with_libsigsegv+y}
+
+
+
+  HAVE_POSIX_SIGNALBLOCKING=0
+  if test "$gl_cv_type_sigset_t" = yes; then
+    ac_fn_c_check_func "$LINENO" "sigprocmask" "ac_cv_func_sigprocmask"
+if test "x$ac_cv_func_sigprocmask" = xyes
 then :
-  withval=$with_libsigsegv;
+  HAVE_POSIX_SIGNALBLOCKING=1
 fi
 
-  SIGSEGV_H=sigsegv.h
-  if test "$with_libsigsegv" = yes; then
-
+  fi
 
 
+     if test $HAVE_POSIX_SIGNALBLOCKING = 0; then
+  GL_COND_OBJ_SIGPROCMASK_TRUE=
+  GL_COND_OBJ_SIGPROCMASK_FALSE='#'
+else
+  GL_COND_OBJ_SIGPROCMASK_TRUE='#'
+  GL_COND_OBJ_SIGPROCMASK_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_SIGPROCMASK_TRUE}" && test -z "${GL_COND_OBJ_SIGPROCMASK_FALSE}"; then
+    GL_COND_OBJ_SIGPROCMASK_TRUE='#'
+    GL_COND_OBJ_SIGPROCMASK_FALSE='#'
+  fi
 
+  if test -z "$GL_COND_OBJ_SIGPROCMASK_TRUE"; then :
 
+    :
 
+fi
 
 
 
 
 
 
-    use_additional=yes
 
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
 
-    eval additional_includedir=\"$includedir\"
-    eval additional_libdir=\"$libdir\"
-    eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\"
-    eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\"
+          GL_GNULIB_SIGPROCMASK=1
 
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
 
 
-# Check whether --with-libsigsegv-prefix was given.
-if test ${with_libsigsegv_prefix+y}
-then :
-  withval=$with_libsigsegv_prefix;
-    if test "X$withval" = "Xno"; then
-      use_additional=no
-    else
-      if test "X$withval" = "X"; then
 
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
 
-          eval additional_includedir=\"$includedir\"
-          eval additional_libdir=\"$libdir\"
-          eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\"
-          eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\"
+printf "%s\n" "#define GNULIB_TEST_SIGPROCMASK 1" >>confdefs.h
 
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
 
-      else
-        additional_includedir="$withval/include"
-        additional_libdir="$withval/$acl_libdirstem"
-        additional_libdir2="$withval/$acl_libdirstem2"
-        additional_libdir3="$withval/$acl_libdirstem3"
-      fi
-    fi
 
-fi
 
-  if test "X$additional_libdir2" = "X$additional_libdir"; then
-    additional_libdir2=
-  fi
-  if test "X$additional_libdir3" = "X$additional_libdir"; then
-    additional_libdir3=
+  if test $gl_sigsegv_uses_libsigsegv = yes; then
+    GL_GENERATE_SIGSEGV_H=false
+  else
+    GL_GENERATE_SIGSEGV_H=true
   fi
-      LIBSIGSEGV=
-  LTLIBSIGSEGV=
-  INCSIGSEGV=
-  LIBSIGSEGV_PREFIX=
-      HAVE_LIBSIGSEGV=
-  rpathdirs=
-  ltrpathdirs=
-  names_already_handled=
-  names_next_round='sigsegv '
-  while test -n "$names_next_round"; do
-    names_this_round="$names_next_round"
-    names_next_round=
-    for name in $names_this_round; do
-      already_handled=
-      for n in $names_already_handled; do
-        if test "$n" = "$name"; then
-          already_handled=yes
-          break
-        fi
-      done
-      if test -z "$already_handled"; then
-        names_already_handled="$names_already_handled $name"
-                        uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'`
-        eval value=\"\$HAVE_LIB$uppername\"
-        if test -n "$value"; then
-          if test "$value" = yes; then
-            eval value=\"\$LIB$uppername\"
-            test -z "$value" || LIBSIGSEGV="${LIBSIGSEGV}${LIBSIGSEGV:+ }$value"
-            eval value=\"\$LTLIB$uppername\"
-            test -z "$value" || LTLIBSIGSEGV="${LTLIBSIGSEGV}${LTLIBSIGSEGV:+ }$value"
-          else
-                                    :
-          fi
-        else
-                              found_dir=
-          found_la=
-          found_so=
-          found_a=
-          eval libname=\"$acl_libname_spec\"    # typically: libname=lib$name
-          if test -n "$acl_shlibext"; then
-            shrext=".$acl_shlibext"             # typically: shrext=.so
-          else
-            shrext=
-          fi
-          if test $use_additional = yes; then
-            for additional_libdir_variable in additional_libdir additional_libdir2 additional_libdir3; do
-              if test "X$found_dir" = "X"; then
-                eval dir=\$$additional_libdir_variable
-                if test -n "$dir"; then
-                                                      if test -n "$acl_shlibext"; then
-                    if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then
-                      found_dir="$dir"
-                      found_so="$dir/$libname$shrext"
-                    else
-                      if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
-                        ver=`(cd "$dir" && \
-                              for f in "$libname$shrext".*; do echo "$f"; done \
-                              | sed -e "s,^$libname$shrext\\\\.,," \
-                              | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
-                              | sed 1q ) 2>/dev/null`
-                        if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then
-                          found_dir="$dir"
-                          found_so="$dir/$libname$shrext.$ver"
-                        fi
-                      else
-                        eval library_names=\"$acl_library_names_spec\"
-                        for f in $library_names; do
-                          if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then
-                            found_dir="$dir"
-                            found_so="$dir/$f"
-                            break
-                          fi
-                        done
-                      fi
-                    fi
-                  fi
-                                    if test "X$found_dir" = "X"; then
-                    if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then
-                      found_dir="$dir"
-                      found_a="$dir/$libname.$acl_libext"
-                    fi
-                  fi
-                  if test "X$found_dir" != "X"; then
-                    if test -f "$dir/$libname.la"; then
-                      found_la="$dir/$libname.la"
-                    fi
-                  fi
-                fi
-              fi
-            done
-          fi
-          if test "X$found_dir" = "X"; then
-            for x in $LDFLAGS $LTLIBSIGSEGV; do
 
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
 
-              case "$x" in
-                -L*)
-                  dir=`echo "X$x" | sed -e 's/^X-L//'`
-                                    if test -n "$acl_shlibext"; then
-                    if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then
-                      found_dir="$dir"
-                      found_so="$dir/$libname$shrext"
-                    else
-                      if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
-                        ver=`(cd "$dir" && \
-                              for f in "$libname$shrext".*; do echo "$f"; done \
-                              | sed -e "s,^$libname$shrext\\\\.,," \
-                              | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
-                              | sed 1q ) 2>/dev/null`
-                        if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then
-                          found_dir="$dir"
-                          found_so="$dir/$libname$shrext.$ver"
-                        fi
-                      else
-                        eval library_names=\"$acl_library_names_spec\"
-                        for f in $library_names; do
-                          if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then
-                            found_dir="$dir"
-                            found_so="$dir/$f"
-                            break
-                          fi
-                        done
-                      fi
-                    fi
-                  fi
-                                    if test "X$found_dir" = "X"; then
-                    if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then
-                      found_dir="$dir"
-                      found_a="$dir/$libname.$acl_libext"
-                    fi
-                  fi
-                  if test "X$found_dir" != "X"; then
-                    if test -f "$dir/$libname.la"; then
-                      found_la="$dir/$libname.la"
-                    fi
-                  fi
-                  ;;
-              esac
-              if test "X$found_dir" != "X"; then
-                break
-              fi
-            done
-          fi
-          if test "X$found_dir" != "X"; then
-                        LTLIBSIGSEGV="${LTLIBSIGSEGV}${LTLIBSIGSEGV:+ }-L$found_dir -l$name"
-            if test "X$found_so" != "X"; then
-                                                        if test "$enable_rpath" = no \
-                 || test "X$found_dir" = "X/usr/$acl_libdirstem" \
-                 || test "X$found_dir" = "X/usr/$acl_libdirstem2" \
-                 || test "X$found_dir" = "X/usr/$acl_libdirstem3"; then
-                                LIBSIGSEGV="${LIBSIGSEGV}${LIBSIGSEGV:+ }$found_so"
-              else
-                                                                                haveit=
-                for x in $ltrpathdirs; do
-                  if test "X$x" = "X$found_dir"; then
-                    haveit=yes
-                    break
-                  fi
-                done
-                if test -z "$haveit"; then
-                  ltrpathdirs="$ltrpathdirs $found_dir"
-                fi
-                                if test "$acl_hardcode_direct" = yes; then
-                                                      LIBSIGSEGV="${LIBSIGSEGV}${LIBSIGSEGV:+ }$found_so"
-                else
-                  if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
-                                                            LIBSIGSEGV="${LIBSIGSEGV}${LIBSIGSEGV:+ }$found_so"
-                                                            haveit=
-                    for x in $rpathdirs; do
-                      if test "X$x" = "X$found_dir"; then
-                        haveit=yes
-                        break
-                      fi
-                    done
-                    if test -z "$haveit"; then
-                      rpathdirs="$rpathdirs $found_dir"
-                    fi
-                  else
-                                                                                haveit=
-                    for x in $LDFLAGS $LIBSIGSEGV; do
 
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
 
-                      if test "X$x" = "X-L$found_dir"; then
-                        haveit=yes
-                        break
-                      fi
-                    done
-                    if test -z "$haveit"; then
-                      LIBSIGSEGV="${LIBSIGSEGV}${LIBSIGSEGV:+ }-L$found_dir"
-                    fi
-                    if test "$acl_hardcode_minus_L" != no; then
-                                                                                        LIBSIGSEGV="${LIBSIGSEGV}${LIBSIGSEGV:+ }$found_so"
-                    else
-                                                                                                                                                                                LIBSIGSEGV="${LIBSIGSEGV}${LIBSIGSEGV:+ }-l$name"
-                    fi
-                  fi
-                fi
-              fi
-            else
-              if test "X$found_a" != "X"; then
-                                LIBSIGSEGV="${LIBSIGSEGV}${LIBSIGSEGV:+ }$found_a"
-              else
-                                                LIBSIGSEGV="${LIBSIGSEGV}${LIBSIGSEGV:+ }-L$found_dir -l$name"
-              fi
-            fi
-                        additional_includedir=
-            case "$found_dir" in
-              */$acl_libdirstem | */$acl_libdirstem/)
-                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
-                if test "$name" = 'sigsegv'; then
-                  LIBSIGSEGV_PREFIX="$basedir"
-                fi
-                additional_includedir="$basedir/include"
-                ;;
-              */$acl_libdirstem2 | */$acl_libdirstem2/)
-                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'`
-                if test "$name" = 'sigsegv'; then
-                  LIBSIGSEGV_PREFIX="$basedir"
-                fi
-                additional_includedir="$basedir/include"
-                ;;
-              */$acl_libdirstem3 | */$acl_libdirstem3/)
-                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem3/"'*$,,'`
-                if test "$name" = 'sigsegv'; then
-                  LIBSIGSEGV_PREFIX="$basedir"
-                fi
-                additional_includedir="$basedir/include"
-                ;;
-            esac
-            if test "X$additional_includedir" != "X"; then
-                                                                                                                if test "X$additional_includedir" != "X/usr/include"; then
-                haveit=
-                if test "X$additional_includedir" = "X/usr/local/include"; then
-                  if test -n "$GCC"; then
-                    case $host_os in
-                      linux* | gnu* | k*bsd*-gnu) haveit=yes;;
-                    esac
-                  fi
-                fi
-                if test -z "$haveit"; then
-                  for x in $CPPFLAGS $INCSIGSEGV; do
+  case "$GL_GENERATE_SIGSEGV_H" in
+    false) SIGSEGV_H='' ;;
+    true)
+                  if test -z "$SIGSEGV_H"; then
+        SIGSEGV_H="${gl_source_base_prefix}sigsegv.h"
+      fi
+      ;;
+    *) echo "*** GL_GENERATE_SIGSEGV_H is not set correctly" 1>&2; exit 1 ;;
+  esac
 
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
 
-                    if test "X$x" = "X-I$additional_includedir"; then
-                      haveit=yes
-                      break
-                    fi
-                  done
-                  if test -z "$haveit"; then
-                    if test -d "$additional_includedir"; then
-                                            INCSIGSEGV="${INCSIGSEGV}${INCSIGSEGV:+ }-I$additional_includedir"
-                    fi
-                  fi
-                fi
-              fi
-            fi
-                        if test -n "$found_la"; then
-                                                        save_libdir="$libdir"
-              case "$found_la" in
-                */* | *\\*) . "$found_la" ;;
-                *) . "./$found_la" ;;
-              esac
-              libdir="$save_libdir"
-                            for dep in $dependency_libs; do
-                case "$dep" in
-                  -L*)
-                    dependency_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
-                                                                                                                                                                if test "X$dependency_libdir" != "X/usr/$acl_libdirstem" \
-                       && test "X$dependency_libdir" != "X/usr/$acl_libdirstem2" \
-                       && test "X$dependency_libdir" != "X/usr/$acl_libdirstem3"; then
-                      haveit=
-                      if test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem" \
-                         || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem2" \
-                         || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem3"; then
-                        if test -n "$GCC"; then
-                          case $host_os in
-                            linux* | gnu* | k*bsd*-gnu) haveit=yes;;
-                          esac
-                        fi
-                      fi
-                      if test -z "$haveit"; then
-                        haveit=
-                        for x in $LDFLAGS $LIBSIGSEGV; do
+     if $GL_GENERATE_SIGSEGV_H; then
+  GL_GENERATE_SIGSEGV_H_TRUE=
+  GL_GENERATE_SIGSEGV_H_FALSE='#'
+else
+  GL_GENERATE_SIGSEGV_H_TRUE='#'
+  GL_GENERATE_SIGSEGV_H_FALSE=
+fi
+:
+    if test -z "${GL_GENERATE_SIGSEGV_H_TRUE}" && test -z "${GL_GENERATE_SIGSEGV_H_FALSE}"; then
+    GL_GENERATE_SIGSEGV_H_TRUE='#'
+    GL_GENERATE_SIGSEGV_H_FALSE='#'
+  fi
 
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
 
-                          if test "X$x" = "X-L$dependency_libdir"; then
-                            haveit=yes
-                            break
-                          fi
-                        done
-                        if test -z "$haveit"; then
-                          if test -d "$dependency_libdir"; then
-                                                        LIBSIGSEGV="${LIBSIGSEGV}${LIBSIGSEGV:+ }-L$dependency_libdir"
-                          fi
-                        fi
-                        haveit=
-                        for x in $LDFLAGS $LTLIBSIGSEGV; do
 
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
 
-                          if test "X$x" = "X-L$dependency_libdir"; then
-                            haveit=yes
-                            break
-                          fi
-                        done
-                        if test -z "$haveit"; then
-                          if test -d "$dependency_libdir"; then
-                                                        LTLIBSIGSEGV="${LTLIBSIGSEGV}${LTLIBSIGSEGV:+ }-L$dependency_libdir"
-                          fi
-                        fi
-                      fi
-                    fi
-                    ;;
-                  -R*)
-                    dir=`echo "X$dep" | sed -e 's/^X-R//'`
-                    if test "$enable_rpath" != no; then
-                                                                  haveit=
-                      for x in $rpathdirs; do
-                        if test "X$x" = "X$dir"; then
-                          haveit=yes
-                          break
-                        fi
-                      done
-                      if test -z "$haveit"; then
-                        rpathdirs="$rpathdirs $dir"
-                      fi
-                                                                  haveit=
-                      for x in $ltrpathdirs; do
-                        if test "X$x" = "X$dir"; then
-                          haveit=yes
-                          break
-                        fi
-                      done
-                      if test -z "$haveit"; then
-                        ltrpathdirs="$ltrpathdirs $dir"
-                      fi
-                    fi
-                    ;;
-                  -l*)
-                                                                                                                                                                dep=`echo "X$dep" | sed -e 's/^X-l//'`
-                    if test "X$dep" != Xc \
-                       || case $host_os in
-                            linux* | gnu* | k*bsd*-gnu) false ;;
-                            *)                          true ;;
-                          esac; then
-                      names_next_round="$names_next_round $dep"
-                    fi
-                    ;;
-                  *.la)
-                                                                                names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
-                    ;;
-                  *)
-                                        LIBSIGSEGV="${LIBSIGSEGV}${LIBSIGSEGV:+ }$dep"
-                    LTLIBSIGSEGV="${LTLIBSIGSEGV}${LTLIBSIGSEGV:+ }$dep"
-                    ;;
-                esac
-              done
-            fi
-          else
-                                                            LIBSIGSEGV="${LIBSIGSEGV}${LIBSIGSEGV:+ }-l$name"
-            LTLIBSIGSEGV="${LTLIBSIGSEGV}${LTLIBSIGSEGV:+ }-l$name"
-          fi
-        fi
-      fi
-    done
-  done
-  if test "X$rpathdirs" != "X"; then
-    if test -n "$acl_hardcode_libdir_separator"; then
-                        alldirs=
-      for found_dir in $rpathdirs; do
-        alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
-      done
-            acl_save_libdir="$libdir"
-      libdir="$alldirs"
-      eval flag=\"$acl_hardcode_libdir_flag_spec\"
-      libdir="$acl_save_libdir"
-      LIBSIGSEGV="${LIBSIGSEGV}${LIBSIGSEGV:+ }$flag"
-    else
-            for found_dir in $rpathdirs; do
-        acl_save_libdir="$libdir"
-        libdir="$found_dir"
-        eval flag=\"$acl_hardcode_libdir_flag_spec\"
-        libdir="$acl_save_libdir"
-        LIBSIGSEGV="${LIBSIGSEGV}${LIBSIGSEGV:+ }$flag"
-      done
-    fi
-  fi
-  if test "X$ltrpathdirs" != "X"; then
-            for found_dir in $ltrpathdirs; do
-      LTLIBSIGSEGV="${LTLIBSIGSEGV}${LTLIBSIGSEGV:+ }-R$found_dir"
-    done
-  fi
 
 
+  if $GL_GENERATE_SIGSEGV_H; then
 
 
 
+    case "$host_os" in
+      solaris2.11)
 
-        ac_save_CPPFLAGS="$CPPFLAGS"
+printf "%s\n" "#define SOLARIS11 1" >>confdefs.h
 
-  for element in $INCSIGSEGV; do
-    haveit=
-    for x in $CPPFLAGS; do
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-      if test "X$x" = "X$element"; then
-        haveit=yes
-        break
-      fi
-    done
-    if test -z "$haveit"; then
-      CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
-    fi
-  done
-
-
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libsigsegv" >&5
-printf %s "checking for libsigsegv... " >&6; }
-if test ${ac_cv_libsigsegv+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-
-    ac_save_LIBS="$LIBS"
-                                case " $LIBSIGSEGV" in
-      *" -l"*) LIBS="$LIBS $LIBSIGSEGV" ;;
-      *)       LIBS="$LIBSIGSEGV $LIBS" ;;
-    esac
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sigsegv.h>
-int
-main (void)
-{
-sigsegv_deinstall_handler();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
-  ac_cv_libsigsegv=yes
-else $as_nop
-  ac_cv_libsigsegv='no, consider installing GNU libsigsegv'
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
-    conftest$ac_exeext conftest.$ac_ext
-    LIBS="$ac_save_LIBS"
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_libsigsegv" >&5
-printf "%s\n" "$ac_cv_libsigsegv" >&6; }
-  if test "$ac_cv_libsigsegv" = yes; then
-    HAVE_LIBSIGSEGV=yes
-
-printf "%s\n" "#define HAVE_LIBSIGSEGV 1" >>confdefs.h
-
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to link with libsigsegv" >&5
-printf %s "checking how to link with libsigsegv... " >&6; }
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIBSIGSEGV" >&5
-printf "%s\n" "$LIBSIGSEGV" >&6; }
-  else
-    HAVE_LIBSIGSEGV=no
-            CPPFLAGS="$ac_save_CPPFLAGS"
-    LIBSIGSEGV=
-    LTLIBSIGSEGV=
-    LIBSIGSEGV_PREFIX=
-  fi
-
-
-
-
-
-
-
-    gl_cv_lib_sigsegv="$ac_cv_libsigsegv"
-
-    if test "$gl_cv_lib_sigsegv" = yes; then
-      SIGSEGV_H=
-    fi
-  fi
-
-   if test -n "$SIGSEGV_H"; then
-  GL_GENERATE_SIGSEGV_H_TRUE=
-  GL_GENERATE_SIGSEGV_H_FALSE='#'
-else
-  GL_GENERATE_SIGSEGV_H_TRUE='#'
-  GL_GENERATE_SIGSEGV_H_FALSE=
-fi
-
-  if test -n "$SIGSEGV_H"; then
-
-
-    case "$host_os" in
-      solaris2.11)
-
-printf "%s\n" "#define SOLARIS11 1" >>confdefs.h
-
-        ;;
-    esac
+        ;;
+    esac
 
 
 
@@ -34068,48 +37664,68 @@ printf %s "checking for stack direction... " >&6; }
 if test ${sv_cv_stack_direction_msg+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
     case "$host_cpu" in
             a29k | \
       aarch64* | \
       alpha* | \
-      arc | \
+      arc | arceb | arc32 | arc64 | \
       arm* | strongarm* | xscale* | \
       avr | avr32 | \
       bfin | \
       c1 | c2 | c32 | c34 | c38 | \
       clipper | \
+      cr16 | \
       cris | \
+      csky | \
       d30v | \
+      epiphany | \
       elxsi | \
       fr30 | \
+      frv | \
+      ft32 | \
       h8300 | \
       i?86 | x86_64 | \
       i860 | \
       ia64 | \
+      iq2000 | \
+      lm32 | \
+      loongarch* | \
+      m32c | \
       m32r | \
       m68* | \
       m88k | \
       mcore | \
-      microblaze | \
+      microblaze* | \
       mips* | \
       mmix | \
       mn10200 | \
       mn10300 | \
-      nios2 | \
+      moxie | \
+      msp430 | \
       nds32* | \
+      nios2 | nios2eb | nios2el | \
       ns32k | \
+      nvptx | \
+      or1k | \
       pdp11 | \
       pj* | \
       powerpc* | rs6000 | \
+      pru | \
       riscv* | \
+      rl78 | \
       romp | \
+      rx | \
       s390* | \
       sh* | \
       sparc* | \
+      tic6x | \
+      tilegx | \
+      tilepro | \
       v850 | \
       vax | \
+      visium | \
       xtensa)
         sv_cv_stack_direction=-1 ;;
       c4x | \
@@ -34134,7 +37750,7 @@ find_stack_direction (int *addr, int depth)
   return dir + dummy;
 }
 int
-main (int argc, char *argv)
+main (int argc, char *argv[])
 {
   printf ("%d\n", find_stack_direction (NULL, argc + 20));
   return 0;
@@ -34156,7 +37772,8 @@ EOF
       -1) sv_cv_stack_direction_msg="grows down";;
       *)  sv_cv_stack_direction_msg="unknown";;
     esac
-
+   ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sv_cv_stack_direction_msg" >&5
 printf "%s\n" "$sv_cv_stack_direction_msg" >&6; }
@@ -34181,11 +37798,12 @@ printf "%s\n" "#define STACK_DIRECTION $sv_cv_stack_direction" >>confdefs.h
 if test "x$ac_cv_type_stack_t" = xyes
 then :
 
-else $as_nop
-
+else case e in #(
+  e)
 printf "%s\n" "#define stack_t struct sigaltstack" >>confdefs.h
 
-
+       ;;
+esac
 fi
 
   fi
@@ -34195,8 +37813,8 @@ printf %s "checking for working sigaltstack... " >&6; }
 if test ${sv_cv_sigaltstack+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
     if test "$ac_cv_func_sigaltstack" = yes; then
       case "$host_os" in
         macos* | darwin[6-9]* | darwin[1-9][0-9]*)
@@ -34218,8 +37836,9 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   sv_cv_sigaltstack="guessing yes"
-else $as_nop
-  sv_cv_sigaltstack=no
+else case e in #(
+  e) sv_cv_sigaltstack=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
@@ -34245,16 +37864,17 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   sv_cv_sigaltstack="guessing yes"
-else $as_nop
-  sv_cv_sigaltstack=no
+else case e in #(
+  e) sv_cv_sigaltstack=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
                   ;;
               esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 
@@ -34322,11 +37942,13 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   sv_cv_sigaltstack=yes
-else $as_nop
-  sv_cv_sigaltstack=no
+else case e in #(
+  e) sv_cv_sigaltstack=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
           ;;
@@ -34334,7 +37956,8 @@ fi
     else
       sv_cv_sigaltstack=no
     fi
-
+   ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sv_cv_sigaltstack" >&5
 printf "%s\n" "$sv_cv_sigaltstack" >&6; }
@@ -34348,8 +37971,8 @@ printf %s "checking for correct stack_t interpretation... " >&6; }
 if test ${sv_cv_sigaltstack_low_base+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
       if test "$cross_compiling" = yes
 then :
 
@@ -34358,8 +37981,8 @@ then :
           *)      sv_cv_sigaltstack_low_base="guessing yes" ;;
         esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 
@@ -34409,14 +38032,17 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   sv_cv_sigaltstack_low_base=yes
-else $as_nop
-  sv_cv_sigaltstack_low_base=no
+else case e in #(
+  e) sv_cv_sigaltstack_low_base=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sv_cv_sigaltstack_low_base" >&5
 printf "%s\n" "$sv_cv_sigaltstack_low_base" >&6; }
@@ -34430,106 +38056,13 @@ printf "%s\n" "#define SIGALTSTACK_SS_REVERSED 1" >>confdefs.h
 
   fi
 
-  ac_fn_c_check_header_compile "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default"
-if test "x$ac_cv_header_stdint_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_STDINT_H 1" >>confdefs.h
-
-fi
-
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SIZE_MAX" >&5
-printf %s "checking for SIZE_MAX... " >&6; }
-if test ${gl_cv_size_max+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-
-    gl_cv_size_max=no
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <limits.h>
-#if HAVE_STDINT_H
-#include <stdint.h>
-#endif
-#ifdef SIZE_MAX
-Found it
-#endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Found it" >/dev/null 2>&1
-then :
-  gl_cv_size_max=yes
-fi
-rm -rf conftest*
-
-    if test $gl_cv_size_max != yes; then
-                        if ac_fn_c_compute_int "$LINENO" "sizeof (size_t) * CHAR_BIT - 1" "size_t_bits_minus_1"        "#include <stddef.h>
-#include <limits.h>"
-then :
-
-else $as_nop
-  size_t_bits_minus_1=
-fi
-
-      if ac_fn_c_compute_int "$LINENO" "sizeof (size_t) <= sizeof (unsigned int)" "fits_in_uint"        "#include <stddef.h>"
-then :
-
-else $as_nop
-  fits_in_uint=
-fi
-
-      if test -n "$size_t_bits_minus_1" && test -n "$fits_in_uint"; then
-        if test $fits_in_uint = 1; then
-                              cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stddef.h>
-                 extern size_t foo;
-                 extern unsigned long foo;
-
-int
-main (void)
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  fits_in_uint=0
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-        fi
-                                if test $fits_in_uint = 1; then
-          gl_cv_size_max="(((1U << $size_t_bits_minus_1) - 1) * 2 + 1)"
-        else
-          gl_cv_size_max="(((1UL << $size_t_bits_minus_1) - 1) * 2 + 1)"
-        fi
-      else
-                gl_cv_size_max='((size_t)~(size_t)0)'
-      fi
-    fi
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_size_max" >&5
-printf "%s\n" "$gl_cv_size_max" >&6; }
-  if test "$gl_cv_size_max" != yes; then
-
-printf "%s\n" "#define SIZE_MAX $gl_cv_size_max" >>confdefs.h
-
-  fi
-
-
-
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ssize_t" >&5
 printf %s "checking for ssize_t... " >&6; }
 if test ${gt_cv_ssize_t+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/types.h>
 int
@@ -34544,10 +38077,12 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gt_cv_ssize_t=yes
-else $as_nop
-  gt_cv_ssize_t=no
+else case e in #(
+  e) gt_cv_ssize_t=no ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_ssize_t" >&5
 printf "%s\n" "$gt_cv_ssize_t" >&6; }
@@ -34571,8 +38106,8 @@ printf %s "checking whether stat handles trailing slashes on files... " >&6; }
 if test ${gl_cv_func_stat_file_slash+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  touch conftest.tmp
+else case e in #(
+  e) touch conftest.tmp
          # Assume that if we have lstat, we can also check symlinks.
          if test $ac_cv_func_lstat = yes; then
            ln -s conftest.tmp conftest.lnk
@@ -34582,14 +38117,16 @@ then :
   case "$host_os" in
                                # Guess yes on Linux systems.
               linux-* | linux) gl_cv_func_stat_file_slash="guessing yes" ;;
+                               # Guess yes on systems that emulate the Linux system calls.
+              midipix*)        gl_cv_func_stat_file_slash="guessing yes" ;;
                                # Guess yes on glibc systems.
               *-gnu* | gnu*)   gl_cv_func_stat_file_slash="guessing yes" ;;
                                # If we don't know, obey --enable-cross-guesses.
               *)               gl_cv_func_stat_file_slash="$gl_cross_guess_normal" ;;
             esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/stat.h>
 
@@ -34613,14 +38150,17 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_stat_file_slash=yes
-else $as_nop
-  gl_cv_func_stat_file_slash=no
+else case e in #(
+  e) gl_cv_func_stat_file_slash=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
-         rm -f conftest.tmp conftest.lnk
+         rm -f conftest.tmp conftest.lnk ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_stat_file_slash" >&5
 printf "%s\n" "$gl_cv_func_stat_file_slash" >&6; }
@@ -34638,16 +38178,21 @@ printf "%s\n" "#define REPLACE_FUNC_STAT_FILE 1" >>confdefs.h
       ;;
   esac
 
-  if test $REPLACE_STAT = 1; then
-
-
-
-
-
-
 
+     if test $REPLACE_STAT = 1; then
+  GL_COND_OBJ_STAT_TRUE=
+  GL_COND_OBJ_STAT_FALSE='#'
+else
+  GL_COND_OBJ_STAT_TRUE='#'
+  GL_COND_OBJ_STAT_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_STAT_TRUE}" && test -z "${GL_COND_OBJ_STAT_FALSE}"; then
+    GL_COND_OBJ_STAT_TRUE='#'
+    GL_COND_OBJ_STAT_FALSE='#'
+  fi
 
-  gl_LIBOBJS="$gl_LIBOBJS stat.$ac_objext"
+  if test -z "$GL_COND_OBJ_STAT_TRUE"; then :
 
     case "$host_os" in
       mingw*)
@@ -34668,7 +38213,8 @@ printf "%s\n" "#define REPLACE_FUNC_STAT_FILE 1" >>confdefs.h
 
   :
 
-  fi
+
+fi
 
 
 
@@ -34705,8 +38251,8 @@ printf %s "checking whether struct stat.st_atim is of type struct timespec... "
 if test ${ac_cv_typeof_struct_stat_st_atim_is_struct_timespec+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
             #include <sys/types.h>
@@ -34731,10 +38277,12 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=yes
-else $as_nop
-  ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=no
+else case e in #(
+  e) ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=no ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec" >&5
 printf "%s\n" "$ac_cv_typeof_struct_stat_st_atim_is_struct_timespec" >&6; }
@@ -34743,8 +38291,8 @@ printf "%s\n" "$ac_cv_typeof_struct_stat_st_atim_is_struct_timespec" >&6; }
 printf "%s\n" "#define TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC 1" >>confdefs.h
 
      fi
-else $as_nop
-  ac_fn_c_check_member "$LINENO" "struct stat" "st_atimespec.tv_nsec" "ac_cv_member_struct_stat_st_atimespec_tv_nsec" "#include <sys/types.h>
+else case e in #(
+  e) ac_fn_c_check_member "$LINENO" "struct stat" "st_atimespec.tv_nsec" "ac_cv_member_struct_stat_st_atimespec_tv_nsec" "#include <sys/types.h>
         #include <sys/stat.h>
 "
 if test "x$ac_cv_member_struct_stat_st_atimespec_tv_nsec" = xyes
@@ -34753,8 +38301,8 @@ then :
 printf "%s\n" "#define HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC 1" >>confdefs.h
 
 
-else $as_nop
-  ac_fn_c_check_member "$LINENO" "struct stat" "st_atimensec" "ac_cv_member_struct_stat_st_atimensec" "#include <sys/types.h>
+else case e in #(
+  e) ac_fn_c_check_member "$LINENO" "struct stat" "st_atimensec" "ac_cv_member_struct_stat_st_atimensec" "#include <sys/types.h>
            #include <sys/stat.h>
 "
 if test "x$ac_cv_member_struct_stat_st_atimensec" = xyes
@@ -34763,8 +38311,8 @@ then :
 printf "%s\n" "#define HAVE_STRUCT_STAT_ST_ATIMENSEC 1" >>confdefs.h
 
 
-else $as_nop
-  ac_fn_c_check_member "$LINENO" "struct stat" "st_atim.st__tim.tv_nsec" "ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" "#include <sys/types.h>
+else case e in #(
+  e) ac_fn_c_check_member "$LINENO" "struct stat" "st_atim.st__tim.tv_nsec" "ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" "#include <sys/types.h>
               #include <sys/stat.h>
 "
 if test "x$ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" = xyes
@@ -34774,11 +38322,14 @@ printf "%s\n" "#define HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC 1" >>confdefs.h
 
 
 fi
-
+ ;;
+esac
 fi
-
+ ;;
+esac
 fi
-
+ ;;
+esac
 fi
 
 
@@ -34794,8 +38345,8 @@ then :
 printf "%s\n" "#define HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC 1" >>confdefs.h
 
 
-else $as_nop
-  ac_fn_c_check_member "$LINENO" "struct stat" "st_birthtimensec" "ac_cv_member_struct_stat_st_birthtimensec" "#include <sys/types.h>
+else case e in #(
+  e) ac_fn_c_check_member "$LINENO" "struct stat" "st_birthtimensec" "ac_cv_member_struct_stat_st_birthtimensec" "#include <sys/types.h>
         #include <sys/stat.h>
 "
 if test "x$ac_cv_member_struct_stat_st_birthtimensec" = xyes
@@ -34804,8 +38355,8 @@ then :
 printf "%s\n" "#define HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC 1" >>confdefs.h
 
 
-else $as_nop
-  ac_fn_c_check_member "$LINENO" "struct stat" "st_birthtim.tv_nsec" "ac_cv_member_struct_stat_st_birthtim_tv_nsec" "#include <sys/types.h>
+else case e in #(
+  e) ac_fn_c_check_member "$LINENO" "struct stat" "st_birthtim.tv_nsec" "ac_cv_member_struct_stat_st_birthtim_tv_nsec" "#include <sys/types.h>
           #include <sys/stat.h>
 "
 if test "x$ac_cv_member_struct_stat_st_birthtim_tv_nsec" = xyes
@@ -34815,98 +38366,24 @@ printf "%s\n" "#define HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC 1" >>confdefs.h
 
 
 fi
-
-fi
-
-fi
-
-
-
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working stdalign.h" >&5
-printf %s "checking for working stdalign.h... " >&6; }
-if test ${gl_cv_header_working_stdalign_h+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdint.h>
-            #include <stdalign.h>
-            #include <stddef.h>
-
-            /* Test that alignof yields a result consistent with offsetof.
-               This catches GCC bug 52023
-               <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023>.  */
-            #ifdef __cplusplus
-               template <class t> struct alignof_helper { char a; t b; };
-            # define ao(type) offsetof (alignof_helper<type>, b)
-            #else
-            # define ao(type) offsetof (struct { char a; type b; }, b)
-            #endif
-            char test_double[ao (double) % _Alignof (double) == 0 ? 1 : -1];
-            char test_long[ao (long int) % _Alignof (long int) == 0 ? 1 : -1];
-            char test_alignof[alignof (double) == _Alignof (double) ? 1 : -1];
-
-            /* Test _Alignas only on platforms where gnulib can help.  */
-            #if \
-                ((defined __cplusplus && 201103 <= __cplusplus) \
-                 || (__TINYC__ && defined __attribute__) \
-                 || (defined __APPLE__ && defined __MACH__ \
-                     ? 4 < __GNUC__ + (1 <= __GNUC_MINOR__) \
-                     : __GNUC__) \
-                 || (__ia64 && (61200 <= __HP_cc || 61200 <= __HP_aCC)) \
-                 || __ICC || 0x590 <= __SUNPRO_C || 0x0600 <= __xlC__ \
-                 || 1300 <= _MSC_VER)
-              struct alignas_test { char c; char alignas (8) alignas_8; };
-              char test_alignas[offsetof (struct alignas_test, alignas_8) == 8
-                                ? 1 : -1];
-            #endif
-
-int
-main (void)
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  gl_cv_header_working_stdalign_h=yes
-else $as_nop
-  gl_cv_header_working_stdalign_h=no
-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_header_working_stdalign_h" >&5
-printf "%s\n" "$gl_cv_header_working_stdalign_h" >&6; }
-
-  if test $gl_cv_header_working_stdalign_h = yes; then
-    STDALIGN_H=''
-  else
-    STDALIGN_H='stdalign.h'
-  fi
-
-
-   if test -n "$STDALIGN_H"; then
-  GL_GENERATE_STDALIGN_H_TRUE=
-  GL_GENERATE_STDALIGN_H_FALSE='#'
-else
-  GL_GENERATE_STDALIGN_H_TRUE='#'
-  GL_GENERATE_STDALIGN_H_FALSE=
+ ;;
+esac
 fi
 
 
 
-  STDARG_H=''
+  GL_GENERATE_STDARG_H=false
   NEXT_STDARG_H='<stdarg.h>'
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for va_copy" >&5
 printf %s "checking for va_copy... " >&6; }
 if test ${gl_cv_func_va_copy+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdarg.h>
 int
@@ -34924,11 +38401,13 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_func_va_copy=yes
-else $as_nop
-  gl_cv_func_va_copy=no
+else case e in #(
+  e) gl_cv_func_va_copy=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_func_va_copy" >&5
 printf "%s\n" "$gl_cv_func_va_copy" >&6; }
@@ -34941,16 +38420,17 @@ printf "%s\n" "$gl_cv_func_va_copy" >&6; }
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "vaccine" >/dev/null 2>&1
+  $EGREP_TRADITIONAL "vaccine" >/dev/null 2>&1
 then :
   gl_aixcc=yes
-else $as_nop
-  gl_aixcc=no
+else case e in #(
+  e) gl_aixcc=no ;;
+esac
 fi
 rm -rf conftest*
 
     if test $gl_aixcc = yes; then
-            STDARG_H=stdarg.h
+            GL_GENERATE_STDARG_H=true
 
 
 
@@ -34967,8 +38447,8 @@ printf %s "checking absolute name of <stdarg.h>... " >&6; }
 if test ${gl_cv_next_stdarg_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
 
 
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -35001,10 +38481,11 @@ _ACEOF
         gl_cv_absolute_stdarg_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
   sed -n "$gl_absolute_header_sed"`
 
-           gl_header=$gl_cv_absolute_stdarg_h
-           gl_cv_next_stdarg_h='"'$gl_header'"'
-
+          gl_header=$gl_cv_absolute_stdarg_h
+          gl_cv_next_stdarg_h='"'$gl_header'"'
 
+          ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdarg_h" >&5
 printf "%s\n" "$gl_cv_next_stdarg_h" >&6; }
@@ -35035,8 +38516,8 @@ printf "%s\n" "$gl_cv_next_stdarg_h" >&6; }
     if test ${gl_cv_func___va_copy+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdarg.h>
@@ -35055,10 +38536,12 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_func___va_copy=yes
-else $as_nop
-  gl_cv_func___va_copy=no
+else case e in #(
+  e) gl_cv_func___va_copy=no ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
 
@@ -35078,13 +38561,34 @@ printf "%s\n" "#define va_copy gl_va_copy" >>confdefs.h
     fi
   fi
 
-   if test -n "$STDARG_H"; then
+
+
+
+
+
+  case "$GL_GENERATE_STDARG_H" in
+    false) STDARG_H='' ;;
+    true)
+                  if test -z "$STDARG_H"; then
+        STDARG_H="${gl_source_base_prefix}stdarg.h"
+      fi
+      ;;
+    *) echo "*** GL_GENERATE_STDARG_H is not set correctly" 1>&2; exit 1 ;;
+  esac
+
+
+     if $GL_GENERATE_STDARG_H; then
   GL_GENERATE_STDARG_H_TRUE=
   GL_GENERATE_STDARG_H_FALSE='#'
 else
   GL_GENERATE_STDARG_H_TRUE='#'
   GL_GENERATE_STDARG_H_FALSE=
 fi
+:
+    if test -z "${GL_GENERATE_STDARG_H_TRUE}" && test -z "${GL_GENERATE_STDARG_H_FALSE}"; then
+    GL_GENERATE_STDARG_H_TRUE='#'
+    GL_GENERATE_STDARG_H_FALSE='#'
+  fi
 
 
 
 
 
 
-          if test "$ac_cv_header_stdbool_h" = yes; then
-    case "$host_os" in
-      solaris*)
-        if test -z "$GCC"; then
-          STDBOOL_H='stdbool.h'
-        else
-          STDBOOL_H=''
-        fi
-        ;;
-      *)
-        STDBOOL_H=''
-        ;;
-    esac
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for bool, true, false" >&5
+printf %s "checking for bool, true, false... " >&6; }
+if test ${gl_cv_c_bool+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+          #if true == false
+           #error "true == false"
+          #endif
+          extern bool b;
+          bool b = true == false;
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  gl_cv_c_bool=yes
+else case e in #(
+  e) gl_cv_c_bool=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_c_bool" >&5
+printf "%s\n" "$gl_cv_c_bool" >&6; }
+  if test "$gl_cv_c_bool" = yes; then
+
+printf "%s\n" "#define HAVE_C_BOOL 1" >>confdefs.h
+
+  fi
+
+
+
+
+
+
+  if test $ac_cv_header_stdckdint_h = yes; then
+    GL_GENERATE_STDCKDINT_H=false
   else
-    STDBOOL_H='stdbool.h'
+    GL_GENERATE_STDCKDINT_H=true
   fi
 
-   if test -n "$STDBOOL_H"; then
-  GL_GENERATE_STDBOOL_H_TRUE=
-  GL_GENERATE_STDBOOL_H_FALSE='#'
+
+
+
+  case "$GL_GENERATE_STDCKDINT_H" in
+    false) STDCKDINT_H='' ;;
+    true)
+                  if test -z "$STDCKDINT_H"; then
+        STDCKDINT_H="${gl_source_base_prefix}stdckdint.h"
+      fi
+      ;;
+    *) echo "*** GL_GENERATE_STDCKDINT_H is not set correctly" 1>&2; exit 1 ;;
+  esac
+
+
+     if $GL_GENERATE_STDCKDINT_H; then
+  GL_GENERATE_STDCKDINT_H_TRUE=
+  GL_GENERATE_STDCKDINT_H_FALSE='#'
 else
-  GL_GENERATE_STDBOOL_H_TRUE='#'
-  GL_GENERATE_STDBOOL_H_FALSE=
+  GL_GENERATE_STDCKDINT_H_TRUE='#'
+  GL_GENERATE_STDCKDINT_H_FALSE=
 fi
+:
+    if test -z "${GL_GENERATE_STDCKDINT_H_TRUE}" && test -z "${GL_GENERATE_STDCKDINT_H_FALSE}"; then
+    GL_GENERATE_STDCKDINT_H_TRUE='#'
+    GL_GENERATE_STDCKDINT_H_FALSE='#'
+  fi
 
 
-  if test "$ac_cv_type__Bool" = yes; then
-    HAVE__BOOL=1
-  else
-    HAVE__BOOL=0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  case "$GL_GENERATE_STDDEF_H" in
+    false) STDDEF_H='' ;;
+    true)
+                  if test -z "$STDDEF_H"; then
+        STDDEF_H="${gl_source_base_prefix}stddef.h"
+      fi
+      ;;
+    *) echo "*** GL_GENERATE_STDDEF_H is not set correctly" 1>&2; exit 1 ;;
+  esac
+
+
+     if $GL_GENERATE_STDDEF_H; then
+  GL_GENERATE_STDDEF_H_TRUE=
+  GL_GENERATE_STDDEF_H_FALSE='#'
+else
+  GL_GENERATE_STDDEF_H_TRUE='#'
+  GL_GENERATE_STDDEF_H_FALSE=
+fi
+:
+    if test -z "${GL_GENERATE_STDDEF_H_TRUE}" && test -z "${GL_GENERATE_STDDEF_H_FALSE}"; then
+    GL_GENERATE_STDDEF_H_TRUE='#'
+    GL_GENERATE_STDDEF_H_FALSE='#'
   fi
 
 
 
 
 
+  case "$GL_GENERATE_STDINT_H" in
+    false) STDINT_H='' ;;
+    true)
+                  if test -z "$STDINT_H"; then
+        STDINT_H="${gl_source_base_prefix}stdint.h"
+      fi
+      ;;
+    *) echo "*** GL_GENERATE_STDINT_H is not set correctly" 1>&2; exit 1 ;;
+  esac
 
 
+     if $GL_GENERATE_STDINT_H; then
+  GL_GENERATE_STDINT_H_TRUE=
+  GL_GENERATE_STDINT_H_FALSE='#'
+else
+  GL_GENERATE_STDINT_H_TRUE='#'
+  GL_GENERATE_STDINT_H_FALSE=
+fi
+:
+    if test -z "${GL_GENERATE_STDINT_H_TRUE}" && test -z "${GL_GENERATE_STDINT_H_FALSE}"; then
+    GL_GENERATE_STDINT_H_TRUE='#'
+    GL_GENERATE_STDINT_H_FALSE='#'
+  fi
+
 
 
 
 
 
 
+  case "$GL_GENERATE_LIMITS_H" in
+    false) LIMITS_H='' ;;
+    true)
+                  if test -z "$LIMITS_H"; then
+        LIMITS_H="${gl_source_base_prefix}limits.h"
+      fi
+      ;;
+    *) echo "*** GL_GENERATE_LIMITS_H is not set correctly" 1>&2; exit 1 ;;
+  esac
+
+
+     if $GL_GENERATE_LIMITS_H; then
+  GL_GENERATE_LIMITS_H_TRUE=
+  GL_GENERATE_LIMITS_H_FALSE='#'
+else
+  GL_GENERATE_LIMITS_H_TRUE='#'
+  GL_GENERATE_LIMITS_H_FALSE=
+fi
+:
+    if test -z "${GL_GENERATE_LIMITS_H_TRUE}" && test -z "${GL_GENERATE_LIMITS_H_FALSE}"; then
+    GL_GENERATE_LIMITS_H_TRUE='#'
+    GL_GENERATE_LIMITS_H_FALSE='#'
+  fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+     if test $REPLACE_STDIO_READ_FUNCS = 1; then
+  GL_COND_OBJ_STDIO_READ_TRUE=
+  GL_COND_OBJ_STDIO_READ_FALSE='#'
+else
+  GL_COND_OBJ_STDIO_READ_TRUE='#'
+  GL_COND_OBJ_STDIO_READ_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_STDIO_READ_TRUE}" && test -z "${GL_COND_OBJ_STDIO_READ_FALSE}"; then
+    GL_COND_OBJ_STDIO_READ_TRUE='#'
+    GL_COND_OBJ_STDIO_READ_FALSE='#'
+  fi
+
+
+     if test $REPLACE_STDIO_WRITE_FUNCS = 1; then
+  GL_COND_OBJ_STDIO_WRITE_TRUE=
+  GL_COND_OBJ_STDIO_WRITE_FALSE='#'
+else
+  GL_COND_OBJ_STDIO_WRITE_TRUE='#'
+  GL_COND_OBJ_STDIO_WRITE_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_STDIO_WRITE_TRUE}" && test -z "${GL_COND_OBJ_STDIO_WRITE_FALSE}"; then
+    GL_COND_OBJ_STDIO_WRITE_TRUE='#'
+    GL_COND_OBJ_STDIO_WRITE_FALSE='#'
+  fi
+
+
+
+
+
+
+
 
 
 
@@ -35480,6 +39154,134 @@ printf "%s\n" "#define GNULIB_TEST_FWRITE 1" >>confdefs.h
 
 
 
+
+
+
+
+
+
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for stpcpy" >&5
+printf %s "checking for stpcpy... " >&6; }
+if test ${gl_cv_onwards_func_stpcpy+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+  exec 9>&6 6>/dev/null
+
+       case "$host_os" in
+
+         linux*-android*)
+           ac_fn_check_decl "$LINENO" "stpcpy" "ac_cv_have_decl_stpcpy" "#include <string.h>
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_stpcpy" = xyes
+then :
+
+fi
+           if test $ac_cv_have_decl_stpcpy = yes; then
+             ac_fn_c_check_func "$LINENO" "stpcpy" "ac_cv_func_stpcpy"
+if test "x$ac_cv_func_stpcpy" = xyes
+then :
+
+fi
+
+             if test $ac_cv_func_stpcpy = yes; then
+               gl_cv_onwards_func_stpcpy=yes
+             else
+                                                            gl_cv_onwards_func_stpcpy='future OS version'
+             fi
+           else
+             gl_cv_onwards_func_stpcpy='future OS version'
+           fi
+           ;;
+
+
+         *)
+           ac_fn_c_check_func "$LINENO" "stpcpy" "ac_cv_func_stpcpy"
+if test "x$ac_cv_func_stpcpy" = xyes
+then :
+
+fi
+
+           gl_cv_onwards_func_stpcpy=$ac_cv_func_stpcpy
+           ;;
+
+       esac
+
+  exec 6>&9 9>&-
+
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_onwards_func_stpcpy" >&5
+printf "%s\n" "$gl_cv_onwards_func_stpcpy" >&6; }
+
+  case "$gl_cv_onwards_func_stpcpy" in
+    future*) ac_cv_func_stpcpy=no ;;
+    *)       ac_cv_func_stpcpy=$gl_cv_onwards_func_stpcpy ;;
+  esac
+  if test $ac_cv_func_stpcpy = yes; then
+
+printf "%s\n" "#define HAVE_STPCPY 1" >>confdefs.h
+
+  fi
+
+
+  if test $ac_cv_func_stpcpy = no; then
+    HAVE_STPCPY=0
+    case "$gl_cv_onwards_func_stpcpy" in
+      future*) REPLACE_STPCPY=1 ;;
+    esac
+  fi
+
+
+     if test $HAVE_STPCPY = 0 || test $REPLACE_STPCPY = 1; then
+  GL_COND_OBJ_STPCPY_TRUE=
+  GL_COND_OBJ_STPCPY_FALSE='#'
+else
+  GL_COND_OBJ_STPCPY_TRUE='#'
+  GL_COND_OBJ_STPCPY_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_STPCPY_TRUE}" && test -z "${GL_COND_OBJ_STPCPY_FALSE}"; then
+    GL_COND_OBJ_STPCPY_TRUE='#'
+    GL_COND_OBJ_STPCPY_FALSE='#'
+  fi
+
+  if test -z "$GL_COND_OBJ_STPCPY_TRUE"; then :
+
+
+  :
+
+
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+          GL_GNULIB_STPCPY=1
+
+
+
+
+
+printf "%s\n" "#define GNULIB_TEST_STPCPY 1" >>confdefs.h
+
+
+
+
+
+
   ac_fn_c_check_func "$LINENO" "strcasecmp" "ac_cv_func_strcasecmp"
 if test "x$ac_cv_func_strcasecmp" = xyes
 then :
@@ -35509,8 +39311,9 @@ fi
 if test "x$ac_cv_have_decl_strncasecmp" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_STRNCASECMP $ac_have_decl" >>confdefs.h
 
@@ -35519,63 +39322,75 @@ printf "%s\n" "#define HAVE_DECL_STRNCASECMP $ac_have_decl" >>confdefs.h
   fi
 
 
-  if test $HAVE_STRCASECMP = 0; then
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS strcasecmp.$ac_objext"
-
-
-  :
 
+     if test $HAVE_STRCASECMP = 0; then
+  GL_COND_OBJ_STRCASECMP_TRUE=
+  GL_COND_OBJ_STRCASECMP_FALSE='#'
+else
+  GL_COND_OBJ_STRCASECMP_TRUE='#'
+  GL_COND_OBJ_STRCASECMP_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_STRCASECMP_TRUE}" && test -z "${GL_COND_OBJ_STRCASECMP_FALSE}"; then
+    GL_COND_OBJ_STRCASECMP_TRUE='#'
+    GL_COND_OBJ_STRCASECMP_FALSE='#'
   fi
-  if test $HAVE_STRNCASECMP = 0; then
-
 
+  if test -z "$GL_COND_OBJ_STRCASECMP_TRUE"; then :
 
 
+  :
 
 
+fi
 
+     if test $HAVE_STRNCASECMP = 0; then
+  GL_COND_OBJ_STRNCASECMP_TRUE=
+  GL_COND_OBJ_STRNCASECMP_FALSE='#'
+else
+  GL_COND_OBJ_STRNCASECMP_TRUE='#'
+  GL_COND_OBJ_STRNCASECMP_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_STRNCASECMP_TRUE}" && test -z "${GL_COND_OBJ_STRNCASECMP_FALSE}"; then
+    GL_COND_OBJ_STRNCASECMP_TRUE='#'
+    GL_COND_OBJ_STRNCASECMP_FALSE='#'
+  fi
 
-  gl_LIBOBJS="$gl_LIBOBJS strncasecmp.$ac_objext"
+  if test -z "$GL_COND_OBJ_STRNCASECMP_TRUE"; then :
 
 
   :
 
-  fi
 
+fi
 
 
 
 
 
 
-  if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then
+
+  if test "$GL_GENERATE_ERRNO_H:$REPLACE_STRERROR_0" = false:0; then
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working strerror function" >&5
 printf %s "checking for working strerror function... " >&6; }
 if test ${gl_cv_func_working_strerror+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test "$cross_compiling" = yes
+else case e in #(
+  e) if test "$cross_compiling" = yes
 then :
   case "$host_os" in
-                          # Guess yes on glibc systems.
-           *-gnu* | gnu*) gl_cv_func_working_strerror="guessing yes" ;;
-                          # Guess yes on musl systems.
-           *-musl*)       gl_cv_func_working_strerror="guessing yes" ;;
-                          # If we don't know, obey --enable-cross-guesses.
-           *)             gl_cv_func_working_strerror="$gl_cross_guess_normal" ;;
+                               # Guess yes on glibc systems.
+           *-gnu* | gnu*)      gl_cv_func_working_strerror="guessing yes" ;;
+                               # Guess yes on musl systems.
+           *-musl* | midipix*) gl_cv_func_working_strerror="guessing yes" ;;
+                               # If we don't know, obey --enable-cross-guesses.
+           *)                  gl_cv_func_working_strerror="$gl_cross_guess_normal" ;;
          esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <string.h>
 
@@ -35590,14 +39405,17 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_working_strerror=yes
-else $as_nop
-  gl_cv_func_working_strerror=no
+else case e in #(
+  e) gl_cv_func_working_strerror=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_strerror" >&5
 printf "%s\n" "$gl_cv_func_working_strerror" >&6; }
@@ -35616,21 +39434,28 @@ printf "%s\n" "$gl_cv_func_working_strerror" >&6; }
             REPLACE_STRERROR=1
   fi
 
-  if test $REPLACE_STRERROR = 1; then
-
-
 
+     if test $REPLACE_STRERROR = 1; then
+  GL_COND_OBJ_STRERROR_TRUE=
+  GL_COND_OBJ_STRERROR_FALSE='#'
+else
+  GL_COND_OBJ_STRERROR_TRUE='#'
+  GL_COND_OBJ_STRERROR_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_STRERROR_TRUE}" && test -z "${GL_COND_OBJ_STRERROR_FALSE}"; then
+    GL_COND_OBJ_STRERROR_TRUE='#'
+    GL_COND_OBJ_STRERROR_FALSE='#'
+  fi
 
 
 
+printf "%s\n" "#define GNULIB_STRERROR 1" >>confdefs.h
 
 
-  gl_LIBOBJS="$gl_LIBOBJS strerror.$ac_objext"
 
-  fi
 
 
-printf "%s\n" "#define GNULIB_STRERROR 1" >>confdefs.h
 
 
 
@@ -35654,16 +39479,21 @@ printf "%s\n" "#define GNULIB_TEST_STRERROR 1" >>confdefs.h
 
 
 
-  if test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1; then
-
-
-
-
-
-
 
+     if test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1; then
+  GL_COND_OBJ_STRERROR_OVERRIDE_TRUE=
+  GL_COND_OBJ_STRERROR_OVERRIDE_FALSE='#'
+else
+  GL_COND_OBJ_STRERROR_OVERRIDE_TRUE='#'
+  GL_COND_OBJ_STRERROR_OVERRIDE_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_STRERROR_OVERRIDE_TRUE}" && test -z "${GL_COND_OBJ_STRERROR_OVERRIDE_FALSE}"; then
+    GL_COND_OBJ_STRERROR_OVERRIDE_TRUE='#'
+    GL_COND_OBJ_STRERROR_OVERRIDE_FALSE='#'
+  fi
 
-  gl_LIBOBJS="$gl_LIBOBJS strerror-override.$ac_objext"
+  if test -z "$GL_COND_OBJ_STRERROR_OVERRIDE_TRUE"; then :
 
 
 
@@ -35687,7 +39517,8 @@ fi
   fi
 
 
-  fi
+
+fi
   if test $gl_cond_libtool = false; then
     gl_ltlibdeps="$gl_ltlibdeps $LTLIBICONV"
     gl_libdeps="$gl_libdeps $LIBICONV"
 
 
 
+
+
+
+
+
+
+
   if test $ac_cv_have_decl_strnlen = no; then
     HAVE_DECL_STRNLEN=0
   else
@@ -35719,16 +39557,16 @@ printf %s "checking for working strnlen... " >&6; }
 if test ${ac_cv_func_strnlen_working+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test "$cross_compiling" = yes
+else case e in #(
+  e) if test "$cross_compiling" = yes
 then :
   # Guess no on AIX systems, yes otherwise.
                case "$host_os" in
                  aix*) ac_cv_func_strnlen_working=no;;
                  *)    ac_cv_func_strnlen_working=yes;;
                esac
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $ac_includes_default
 int
@@ -35757,13 +39595,16 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   ac_cv_func_strnlen_working=yes
-else $as_nop
-  ac_cv_func_strnlen_working=no
+else case e in #(
+  e) ac_cv_func_strnlen_working=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strnlen_working" >&5
 printf "%s\n" "$ac_cv_func_strnlen_working" >&6; }
@@ -35775,19 +39616,30 @@ test $ac_cv_func_strnlen_working = no && :
     fi
   fi
 
-  if test $HAVE_DECL_STRNLEN = 0 || test $REPLACE_STRNLEN = 1; then
 
+     if test $HAVE_DECL_STRNLEN = 0 || test $REPLACE_STRNLEN = 1; then
+  GL_COND_OBJ_STRNLEN_TRUE=
+  GL_COND_OBJ_STRNLEN_FALSE='#'
+else
+  GL_COND_OBJ_STRNLEN_TRUE='#'
+  GL_COND_OBJ_STRNLEN_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_STRNLEN_TRUE}" && test -z "${GL_COND_OBJ_STRNLEN_FALSE}"; then
+    GL_COND_OBJ_STRNLEN_TRUE='#'
+    GL_COND_OBJ_STRNLEN_FALSE='#'
+  fi
 
+  if test -z "$GL_COND_OBJ_STRNLEN_TRUE"; then :
 
+    :
 
+fi
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS strnlen.$ac_objext"
 
-    :
-  fi
 
 
 
@@ -35815,22 +39667,28 @@ printf "%s\n" "#define GNULIB_TEST_STRNLEN 1" >>confdefs.h
     HAVE_STRPTIME=0
   fi
 
-  if test $HAVE_STRPTIME = 0; then
-
-
-
-
-
-
 
+     if test $HAVE_STRPTIME = 0; then
+  GL_COND_OBJ_STRPTIME_TRUE=
+  GL_COND_OBJ_STRPTIME_FALSE='#'
+else
+  GL_COND_OBJ_STRPTIME_TRUE='#'
+  GL_COND_OBJ_STRPTIME_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_STRPTIME_TRUE}" && test -z "${GL_COND_OBJ_STRPTIME_FALSE}"; then
+    GL_COND_OBJ_STRPTIME_TRUE='#'
+    GL_COND_OBJ_STRPTIME_FALSE='#'
+  fi
 
-  gl_LIBOBJS="$gl_LIBOBJS strptime.$ac_objext"
+  if test -z "$GL_COND_OBJ_STRPTIME_TRUE"; then :
 
 
 
   :
 
-  fi
+
+fi
 
 
 
@@ -35866,8 +39724,8 @@ printf %s "checking whether strtoimax works... " >&6; }
 if test ${gl_cv_func_strtoimax+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test "$cross_compiling" = yes
+else case e in #(
+  e) if test "$cross_compiling" = yes
 then :
   case "$host_os" in
                     # Guess no on AIX 5.
@@ -35878,8 +39736,8 @@ then :
             *)      gl_cv_func_strtoimax="guessing yes" ;;
           esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <errno.h>
@@ -35922,14 +39780,17 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_strtoimax=yes
-else $as_nop
-  gl_cv_func_strtoimax=no
+else case e in #(
+  e) gl_cv_func_strtoimax=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
-
+       ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strtoimax" >&5
 printf "%s\n" "$gl_cv_func_strtoimax" >&6; }
@@ -35944,29 +39805,36 @@ printf "%s\n" "$gl_cv_func_strtoimax" >&6; }
     HAVE_STRTOIMAX=0
   fi
 
-  if test $HAVE_DECL_STRTOIMAX = 0 || test $REPLACE_STRTOIMAX = 1; then
-
-
-
-
-
-
 
+     if test $HAVE_DECL_STRTOIMAX = 0 || test $REPLACE_STRTOIMAX = 1; then
+  GL_COND_OBJ_STRTOIMAX_TRUE=
+  GL_COND_OBJ_STRTOIMAX_FALSE='#'
+else
+  GL_COND_OBJ_STRTOIMAX_TRUE='#'
+  GL_COND_OBJ_STRTOIMAX_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_STRTOIMAX_TRUE}" && test -z "${GL_COND_OBJ_STRTOIMAX_FALSE}"; then
+    GL_COND_OBJ_STRTOIMAX_TRUE='#'
+    GL_COND_OBJ_STRTOIMAX_FALSE='#'
+  fi
 
-  gl_LIBOBJS="$gl_LIBOBJS strtoimax.$ac_objext"
+  if test -z "$GL_COND_OBJ_STRTOIMAX_TRUE"; then :
 
 
   ac_fn_check_decl "$LINENO" "strtoll" "ac_cv_have_decl_strtoll" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS"
 if test "x$ac_cv_have_decl_strtoll" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_STRTOLL $ac_have_decl" >>confdefs.h
 
 
-  fi
+
+fi
 
 
 
@@ -35997,17 +39865,21 @@ printf %s "checking whether strtoll works... " >&6; }
 if test ${gl_cv_func_strtoll_works+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test "$cross_compiling" = yes
+else case e in #(
+  e) if test "$cross_compiling" = yes
 then :
   case "$host_os" in
-                    # Guess no on native Windows.
-            mingw*) gl_cv_func_strtoll_works="guessing no" ;;
-            *)      gl_cv_func_strtoll_works="$gl_cross_guess_normal" ;;
+                                # Guess no on native Windows.
+            mingw*)             gl_cv_func_strtoll_works="guessing no" ;;
+                                # Guess no on glibc systems.
+            *-gnu* | gnu*)      gl_cv_func_strtoll_works="guessing no" ;;
+                                # Guess no on musl systems.
+            *-musl* | midipix*) gl_cv_func_strtoll_works="guessing no" ;;
+            *)                  gl_cv_func_strtoll_works="$gl_cross_guess_normal" ;;
           esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdlib.h>
 int
@@ -36022,6 +39894,13 @@ int result = 0;
                 if (term != input + 1)
                   result |= 1;
               }
+              /* This test fails on pre-C23 platforms.  */
+              {
+                const char input[] = "0b1";
+                (void) strtoll (input, &term, 2);
+                if (term != input + 3)
+                  result |= 2;
+              }
               return result;
 
   ;
@@ -36032,14 +39911,17 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_strtoll_works=yes
-else $as_nop
-  gl_cv_func_strtoll_works=no
+else case e in #(
+  e) gl_cv_func_strtoll_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
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strtoll_works" >&5
 printf "%s\n" "$gl_cv_func_strtoll_works" >&6; }
@@ -36051,21 +39933,27 @@ printf "%s\n" "$gl_cv_func_strtoll_works" >&6; }
     HAVE_STRTOLL=0
   fi
 
-  if test $HAVE_STRTOLL = 0 || test $REPLACE_STRTOLL = 1; then
-
-
-
-
-
-
 
+     if test $HAVE_STRTOLL = 0 || test $REPLACE_STRTOLL = 1; then
+  GL_COND_OBJ_STRTOLL_TRUE=
+  GL_COND_OBJ_STRTOLL_FALSE='#'
+else
+  GL_COND_OBJ_STRTOLL_TRUE='#'
+  GL_COND_OBJ_STRTOLL_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_STRTOLL_TRUE}" && test -z "${GL_COND_OBJ_STRTOLL_FALSE}"; then
+    GL_COND_OBJ_STRTOLL_TRUE='#'
+    GL_COND_OBJ_STRTOLL_FALSE='#'
+  fi
 
-  gl_LIBOBJS="$gl_LIBOBJS strtoll.$ac_objext"
+  if test -z "$GL_COND_OBJ_STRTOLL_TRUE"; then :
 
 
   :
 
-  fi
+
+fi
 
 
 
@@ -36144,6 +40032,7 @@ printf "%s\n" "#define GNULIB_TEMPNAME 1" >>confdefs.h
 
 
 
+
       ac_fn_check_decl "$LINENO" "localtime_r" "ac_cv_have_decl_localtime_r" "/* mingw's <time.h> provides the functions asctime_r, ctime_r,
          gmtime_r, localtime_r only if <unistd.h> or <pthread.h> has
          been included before.  */
@@ -36156,8 +40045,9 @@ printf "%s\n" "#define GNULIB_TEMPNAME 1" >>confdefs.h
 if test "x$ac_cv_have_decl_localtime_r" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_LOCALTIME_R $ac_have_decl" >>confdefs.h
 
@@ -36173,8 +40063,8 @@ printf %s "checking whether localtime_r is compatible with its POSIX signature..
 if test ${gl_cv_time_r_posix+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 /* mingw's <time.h> provides the functions asctime_r, ctime_r,
                  gmtime_r, localtime_r only if <unistd.h> or <pthread.h> has
@@ -36203,11 +40093,13 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_time_r_posix=yes
-else $as_nop
-  gl_cv_time_r_posix=no
+else case e in #(
+  e) gl_cv_time_r_posix=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_time_r_posix" >&5
 printf "%s\n" "$gl_cv_time_r_posix" >&6; }
@@ -36223,8 +40115,8 @@ printf %s "checking whether localtime_r exists as an inline function... " >&6; }
 if test ${gl_cv_func_localtime_r_inline+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 /* mingw's <time.h> provides the functions asctime_r, ctime_r,
                  gmtime_r, localtime_r only if <unistd.h> or <pthread.h> has
@@ -36249,12 +40141,14 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   gl_cv_func_localtime_r_inline=yes
-else $as_nop
-  gl_cv_func_localtime_r_inline=no
+else case e in #(
+  e) gl_cv_func_localtime_r_inline=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
-
+       ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_localtime_r_inline" >&5
 printf "%s\n" "$gl_cv_func_localtime_r_inline" >&6; }
@@ -36263,21 +40157,27 @@ printf "%s\n" "$gl_cv_func_localtime_r_inline" >&6; }
     fi
   fi
 
-  if test $HAVE_LOCALTIME_R = 0 || test $REPLACE_LOCALTIME_R = 1; then
-
-
-
-
-
-
 
+     if test $HAVE_LOCALTIME_R = 0 || test $REPLACE_LOCALTIME_R = 1; then
+  GL_COND_OBJ_TIME_R_TRUE=
+  GL_COND_OBJ_TIME_R_FALSE='#'
+else
+  GL_COND_OBJ_TIME_R_TRUE='#'
+  GL_COND_OBJ_TIME_R_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_TIME_R_TRUE}" && test -z "${GL_COND_OBJ_TIME_R_FALSE}"; then
+    GL_COND_OBJ_TIME_R_TRUE='#'
+    GL_COND_OBJ_TIME_R_FALSE='#'
+  fi
 
-  gl_LIBOBJS="$gl_LIBOBJS time_r.$ac_objext"
+  if test -z "$GL_COND_OBJ_TIME_R_TRUE"; then :
 
 
   :
 
-  fi
+
+fi
 
 
 
@@ -36310,13 +40210,13 @@ printf %s "checking whether localtime works even near extrema... " >&6; }
 if test ${gl_cv_func_localtime_works+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  gl_cv_func_localtime_works=yes
+else case e in #(
+  e) gl_cv_func_localtime_works=yes
      if test "$cross_compiling" = yes
 then :
   gl_cv_func_localtime_works="guessing yes"
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdlib.h>
             #include <string.h>
@@ -36347,9 +40247,11 @@ then :
            gl_cv_func_localtime_works=no
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_localtime_works" >&5
 printf "%s\n" "$gl_cv_func_localtime_works" >&6; }
     HAVE_TIMEZONE_T=1
   fi
 
-  if test $HAVE_TIMEZONE_T = 0; then
+
+     if test $HAVE_TIMEZONE_T = 0; then
+  GL_COND_OBJ_TIME_RZ_TRUE=
+  GL_COND_OBJ_TIME_RZ_FALSE='#'
+else
+  GL_COND_OBJ_TIME_RZ_TRUE='#'
+  GL_COND_OBJ_TIME_RZ_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_TIME_RZ_TRUE}" && test -z "${GL_COND_OBJ_TIME_RZ_FALSE}"; then
+    GL_COND_OBJ_TIME_RZ_TRUE='#'
+    GL_COND_OBJ_TIME_RZ_FALSE='#'
+  fi
 
 
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS time_rz.$ac_objext"
 
-  fi
 
+          GL_GNULIB_TIME_RZ=1
 
 
 
 
 
+printf "%s\n" "#define GNULIB_TEST_TIME_RZ 1" >>confdefs.h
 
 
 
-          GL_GNULIB_TIME_RZ=1
 
 
 
+  REPLACE_TIMEGM=0
 
 
-printf "%s\n" "#define GNULIB_TEST_TIME_RZ 1" >>confdefs.h
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for timegm" >&5
+printf %s "checking for timegm... " >&6; }
+if test ${gl_cv_onwards_func_timegm+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+  exec 9>&6 6>/dev/null
 
+       case "$host_os" in
 
+         linux*-android*)
+           ac_fn_check_decl "$LINENO" "timegm" "ac_cv_have_decl_timegm" "#include <time.h>
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_timegm" = xyes
+then :
 
+fi
+           if test $ac_cv_have_decl_timegm = yes; then
+             ac_fn_c_check_func "$LINENO" "timegm" "ac_cv_func_timegm"
+if test "x$ac_cv_func_timegm" = xyes
+then :
 
+fi
 
+             if test $ac_cv_func_timegm = yes; then
+               gl_cv_onwards_func_timegm=yes
+             else
+                                                            gl_cv_onwards_func_timegm='future OS version'
+             fi
+           else
+             gl_cv_onwards_func_timegm='future OS version'
+           fi
+           ;;
+
+
+         *)
+           ac_fn_c_check_func "$LINENO" "timegm" "ac_cv_func_timegm"
+if test "x$ac_cv_func_timegm" = xyes
+then :
+
+fi
+
+           gl_cv_onwards_func_timegm=$ac_cv_func_timegm
+           ;;
+
+       esac
+
+  exec 6>&9 9>&-
+
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_onwards_func_timegm" >&5
+printf "%s\n" "$gl_cv_onwards_func_timegm" >&6; }
+
+  case "$gl_cv_onwards_func_timegm" in
+    future*) ac_cv_func_timegm=no ;;
+    *)       ac_cv_func_timegm=$gl_cv_onwards_func_timegm ;;
+  esac
+  if test $ac_cv_func_timegm = yes; then
+
+printf "%s\n" "#define HAVE_TIMEGM 1" >>confdefs.h
+
+  fi
 
-  REPLACE_TIMEGM=0
 
   if test $ac_cv_func_timegm = yes; then
     if test "$gl_cv_func_working_mktime" != yes; then
@@ -36416,23 +40388,32 @@ printf "%s\n" "#define GNULIB_TEST_TIME_RZ 1" >>confdefs.h
     fi
   else
     HAVE_TIMEGM=0
+    case "$gl_cv_onwards_func_timegm" in
+      future*) REPLACE_TIMEGM=1 ;;
+    esac
   fi
 
-  if test $HAVE_TIMEGM = 0 || test $REPLACE_TIMEGM = 1; then
-
-
-
-
-
-
 
+     if test $HAVE_TIMEGM = 0 || test $REPLACE_TIMEGM = 1; then
+  GL_COND_OBJ_TIMEGM_TRUE=
+  GL_COND_OBJ_TIMEGM_FALSE='#'
+else
+  GL_COND_OBJ_TIMEGM_TRUE='#'
+  GL_COND_OBJ_TIMEGM_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_TIMEGM_TRUE}" && test -z "${GL_COND_OBJ_TIMEGM_FALSE}"; then
+    GL_COND_OBJ_TIMEGM_TRUE='#'
+    GL_COND_OBJ_TIMEGM_FALSE='#'
+  fi
 
-  gl_LIBOBJS="$gl_LIBOBJS timegm.$ac_objext"
+  if test -z "$GL_COND_OBJ_TIMEGM_TRUE"; then :
 
 
   :
 
-  fi
+
+fi
 
 
 
@@ -36461,17 +40442,18 @@ printf "%s\n" "#define GNULIB_TEST_TIMEGM 1" >>confdefs.h
     mingw*) REPLACE_TZSET=1 ;;
   esac
 
-  if test $REPLACE_TZSET = 1; then
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS tzset.$ac_objext"
 
+     if test $REPLACE_TZSET = 1; then
+  GL_COND_OBJ_TZSET_TRUE=
+  GL_COND_OBJ_TZSET_FALSE='#'
+else
+  GL_COND_OBJ_TZSET_TRUE='#'
+  GL_COND_OBJ_TZSET_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_TZSET_TRUE}" && test -z "${GL_COND_OBJ_TZSET_FALSE}"; then
+    GL_COND_OBJ_TZSET_TRUE='#'
+    GL_COND_OBJ_TZSET_FALSE='#'
   fi
 
 
@@ -36482,6 +40464,7 @@ printf "%s\n" "#define GNULIB_TEST_TIMEGM 1" >>confdefs.h
 
 
 
+
           GL_GNULIB_TZSET=1
 
 
@@ -36500,6 +40483,7 @@ printf "%s\n" "#define GNULIB_TEST_TZSET 1" >>confdefs.h
 
 
 
+
       if  { test "$HAVE_LIBUNISTRING" != yes \
     || {
 
@@ -36519,7 +40503,9 @@ printf "%s\n" "#define GNULIB_TEST_TZSET 1" >>confdefs.h
 
        }
   }; then
-    LIBUNISTRING_UNISTR_H='unistr.h'
+            if test -z "$LIBUNISTRING_UNISTR_H"; then
+      LIBUNISTRING_UNISTR_H="${gl_source_base_prefix}unistr.h"
+    fi
   else
     LIBUNISTRING_UNISTR_H=
   fi
@@ -36527,12 +40513,14 @@ printf "%s\n" "#define GNULIB_TEST_TZSET 1" >>confdefs.h
 
 
 
+
 printf "%s\n" "#define GNULIB_UNISTR_U8_MBTOUCR 1" >>confdefs.h
 
 
 
 
-       if  { test "$HAVE_LIBUNISTRING" != yes \
+
+     if  { test "$HAVE_LIBUNISTRING" != yes \
     || {
 
 
@@ -36557,6 +40545,11 @@ else
   LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE='#'
   LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_FALSE=
 fi
+:
+    if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_FALSE}"; then
+    LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE='#'
+    LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_FALSE='#'
+  fi
 
 
 
@@ -36566,7 +40559,8 @@ printf "%s\n" "#define GNULIB_UNISTR_U8_UCTOMB 1" >>confdefs.h
 
 
 
-       if  { test "$HAVE_LIBUNISTRING" != yes \
+
+     if  { test "$HAVE_LIBUNISTRING" != yes \
     || {
 
 
@@ -36591,6 +40585,11 @@ else
   LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE='#'
   LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_FALSE=
 fi
+:
+    if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_FALSE}"; then
+    LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE='#'
+    LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_FALSE='#'
+  fi
 
 
 
@@ -36614,7 +40613,9 @@ fi
 
        }
   }; then
-    LIBUNISTRING_UNITYPES_H='unitypes.h'
+            if test -z "$LIBUNISTRING_UNITYPES_H"; then
+      LIBUNISTRING_UNITYPES_H="${gl_source_base_prefix}unitypes.h"
+    fi
   else
     LIBUNISTRING_UNITYPES_H=
   fi
@@ -36623,6 +40624,7 @@ fi
 
 
 
+
       if  { test "$HAVE_LIBUNISTRING" != yes \
     || {
 
@@ -36642,7 +40644,9 @@ fi
 
        }
   }; then
-    LIBUNISTRING_UNIWIDTH_H='uniwidth.h'
+            if test -z "$LIBUNISTRING_UNIWIDTH_H"; then
+      LIBUNISTRING_UNIWIDTH_H="${gl_source_base_prefix}uniwidth.h"
+    fi
   else
     LIBUNISTRING_UNIWIDTH_H=
   fi
 
 
 
-       if  { test "$HAVE_LIBUNISTRING" != yes \
+
+
+     if  { test "$HAVE_LIBUNISTRING" != yes \
     || {
 
 
 
-            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
-            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
-                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
-                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
-                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 8
+            test $LIBUNISTRING_VERSION_MAJOR -lt 1 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 1 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 1 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 1 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
                          }
                     }
                }
@@ -36675,6 +40681,11 @@ else
   LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE='#'
   LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_FALSE=
 fi
+:
+    if test -z "${LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_FALSE}"; then
+    LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE='#'
+    LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_FALSE='#'
+  fi
 
 
 
@@ -36722,8 +40733,8 @@ printf %s "checking for unsetenv() return type... " >&6; }
 if test ${gt_cv_func_unsetenv_ret+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #undef _BSD
@@ -36746,10 +40757,12 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gt_cv_func_unsetenv_ret='int'
-else $as_nop
-  gt_cv_func_unsetenv_ret='void'
+else case e in #(
+  e) gt_cv_func_unsetenv_ret='void' ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_unsetenv_ret" >&5
 printf "%s\n" "$gt_cv_func_unsetenv_ret" >&6; }
@@ -36765,8 +40778,8 @@ printf %s "checking whether unsetenv obeys POSIX... " >&6; }
 if test ${gl_cv_func_unsetenv_works+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test "$cross_compiling" = yes
+else case e in #(
+  e) if test "$cross_compiling" = yes
 then :
   case "$host_os" in
                     # Guess yes on glibc systems.
@@ -36775,8 +40788,8 @@ then :
             *)      gl_cv_func_unsetenv_works="$gl_cross_guess_normal" ;;
           esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
             #include <stdlib.h>
@@ -36813,14 +40826,17 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_unsetenv_works=yes
-else $as_nop
-  gl_cv_func_unsetenv_works=no
+else case e in #(
+  e) gl_cv_func_unsetenv_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
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
-
+       ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_unsetenv_works" >&5
 printf "%s\n" "$gl_cv_func_unsetenv_works" >&6; }
@@ -36832,22 +40848,28 @@ printf "%s\n" "$gl_cv_func_unsetenv_works" >&6; }
     esac
   fi
 
-  if test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1; then
-
-
-
-
-
 
+     if test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1; then
+  GL_COND_OBJ_UNSETENV_TRUE=
+  GL_COND_OBJ_UNSETENV_FALSE='#'
+else
+  GL_COND_OBJ_UNSETENV_TRUE='#'
+  GL_COND_OBJ_UNSETENV_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_UNSETENV_TRUE}" && test -z "${GL_COND_OBJ_UNSETENV_FALSE}"; then
+    GL_COND_OBJ_UNSETENV_TRUE='#'
+    GL_COND_OBJ_UNSETENV_FALSE='#'
+  fi
 
+  if test -z "$GL_COND_OBJ_UNSETENV_TRUE"; then :
 
-  gl_LIBOBJS="$gl_LIBOBJS unsetenv.$ac_objext"
 
 
 
 
 
-  fi
+fi
 
 
 
@@ -36868,158 +40890,89 @@ printf "%s\n" "#define GNULIB_TEST_UNSETENV 1" >>confdefs.h
 
 
 
-
-
-  if test $ac_cv_func_vasnprintf = no; then
-
-
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS vasnprintf.$ac_objext"
-
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS printf-args.$ac_objext"
-
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS printf-parse.$ac_objext"
-
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS asnprintf.$ac_objext"
-
-  if test $ac_cv_func_vasnprintf = yes; then
-
-printf "%s\n" "#define REPLACE_VASNPRINTF 1" >>confdefs.h
-
-  fi
-
-
-
-
-
-
-
-
-
-  ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default"
-if test "x$ac_cv_type_ptrdiff_t" = xyes
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for variable-length arrays" >&5
+printf %s "checking for variable-length arrays... " >&6; }
+if test ${ac_cv_c_vararrays+y}
 then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+       #ifndef __STDC_NO_VLA__
+       #error __STDC_NO_VLA__ not defined
+       #endif
 
-else $as_nop
-
-printf "%s\n" "#define ptrdiff_t long" >>confdefs.h
-
-
-fi
-
-
-
-
-
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  ac_cv_c_vararrays='no: __STDC_NO_VLA__ is defined'
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+/* Test for VLA support.  This test is partly inspired
+                 from examples in the C standard.  Use at least two VLA
+                 functions to detect the GCC 3.4.3 bug described in:
+                 https://lists.gnu.org/archive/html/bug-gnulib/2014-08/msg00014.html
+                 */
+              #ifdef __STDC_NO_VLA__
+               syntax error;
+              #else
+                extern int n;
+                int B[100];
+                int fvla (int m, int C[m][m]);
 
+                int
+                simple (int count, int all[static count])
+                {
+                  return all[count - 1];
+                }
 
-  fi
+                int
+                fvla (int m, int C[m][m])
+                {
+                  typedef int VLA[m][m];
+                  VLA x;
+                  int D[m];
+                  static int (*q)[m] = &B;
+                  int (*s)[n] = q;
+                  return C && &x[0][0] == &D[0] && &D[0] == s[0];
+                }
+              #endif
 
+int
+main (void)
+{
 
-  ac_fn_c_check_func "$LINENO" "vasprintf" "ac_cv_func_vasprintf"
-if test "x$ac_cv_func_vasprintf" = xyes
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
 then :
-  printf "%s\n" "#define HAVE_VASPRINTF 1" >>confdefs.h
-
+  ac_cv_c_vararrays=yes
+else case e in #(
+  e) ac_cv_c_vararrays=no ;;
+esac
 fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+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: $ac_cv_c_vararrays" >&5
+printf "%s\n" "$ac_cv_c_vararrays" >&6; }
+  if test "$ac_cv_c_vararrays" = yes; then
 
-  if test $ac_cv_func_vasprintf = no; then
-
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS vasprintf.$ac_objext"
-
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS asprintf.$ac_objext"
-
-
-  if test $ac_cv_func_vasprintf = yes; then
-    REPLACE_VASPRINTF=1
-  else
-    HAVE_VASPRINTF=0
-  fi
-
-
-
-
-
+printf "%s\n" "#define HAVE_C_VARARRAYS 1" >>confdefs.h
 
+  elif test "$ac_cv_c_vararrays" = no; then
 
+printf "%s\n" "#define __STDC_NO_VLA__ 1" >>confdefs.h
 
   fi
 
 
-
-
-
-
-
-
-
-
-          GL_GNULIB_VASPRINTF=1
-
-
-
-
-
-printf "%s\n" "#define GNULIB_TEST_VASPRINTF 1" >>confdefs.h
-
-
-
-
-
-  XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=asprintf:2:c-format"
-
-
-
-  XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=vasprintf:2:c-format"
-
-
 # Check whether --with-packager was given.
 if test ${with_packager+y}
 then :
 
 
 
-        if case "$host_os" in
-       mingw*) true ;;
-       *) test $ac_cv_func_mbsinit = yes ;;
-     esac \
-    && test $ac_cv_func_mbrtowc = yes; then
-
-
-
-
-     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5
-printf %s "checking whether mbrtowc handles incomplete characters... " >&6; }
-if test ${gl_cv_func_mbrtowc_incomplete_state+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-
-                  case "$host_os" in
-                     # Guess no on AIX and OSF/1.
-        aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;;
-                     # Guess yes otherwise.
-        *)           gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;;
-      esac
-      if test $LOCALE_JA != none; then
-        if test "$cross_compiling" = yes
-then :
-  :
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <string.h>
-#include <wchar.h>
-int main ()
-{
-  if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
-    {
-      const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */
-      mbstate_t state;
-      wchar_t wc;
-
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2))
-        if (mbsinit (&state))
-          return 2;
-    }
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
-  gl_cv_func_mbrtowc_incomplete_state=yes
-else $as_nop
-  gl_cv_func_mbrtowc_incomplete_state=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-      else
-        if test $LOCALE_FR_UTF8 != none; then
-          if test "$cross_compiling" = yes
-then :
-  :
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <string.h>
-#include <wchar.h>
-int main ()
-{
-  if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
-    {
-      const char input[] = "B\303\274\303\237er"; /* "Büßer" */
-      mbstate_t state;
-      wchar_t wc;
-
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2))
-        if (mbsinit (&state))
-          return 2;
-    }
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
-  gl_cv_func_mbrtowc_incomplete_state=yes
-else $as_nop
-  gl_cv_func_mbrtowc_incomplete_state=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-        fi
-      fi
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5
-printf "%s\n" "$gl_cv_func_mbrtowc_incomplete_state" >&6; }
-
-
-
-
-     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5
-printf %s "checking whether mbrtowc works as well as mbtowc... " >&6; }
-if test ${gl_cv_func_mbrtowc_sanitycheck+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-
-                  case "$host_os" in
-                    # Guess no on Solaris 8.
-        solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;;
-                    # Guess yes otherwise.
-        *)          gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;;
-      esac
-      if test $LOCALE_ZH_CN != none; then
-        if test "$cross_compiling" = yes
-then :
-  :
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <stdlib.h>
-#include <string.h>
-#include <wchar.h>
-int main ()
-{
-  /* This fails on Solaris 8:
-     mbrtowc returns 2, and sets wc to 0x00F0.
-     mbtowc returns 4 (correct) and sets wc to 0x5EDC.  */
-  if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
-    {
-      char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */
-      mbstate_t state;
-      wchar_t wc;
-
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 3, 6, &state) != 4
-          && mbtowc (&wc, input + 3, 6) == 4)
-        return 2;
-    }
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
-  gl_cv_func_mbrtowc_sanitycheck=yes
-else $as_nop
-  gl_cv_func_mbrtowc_sanitycheck=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-      fi
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5
-printf "%s\n" "$gl_cv_func_mbrtowc_sanitycheck" >&6; }
-
-    REPLACE_MBSTATE_T=0
-    case "$gl_cv_func_mbrtowc_incomplete_state" in
-      *yes) ;;
-      *) REPLACE_MBSTATE_T=1 ;;
-    esac
-    case "$gl_cv_func_mbrtowc_sanitycheck" in
-      *yes) ;;
-      *) REPLACE_MBSTATE_T=1 ;;
-    esac
-  else
-    REPLACE_MBSTATE_T=1
-  fi
-
 
 
   if test $ac_cv_func_wcrtomb = no; then
@@ -37275,8 +41048,9 @@ printf "%s\n" "$gl_cv_func_mbrtowc_sanitycheck" >&6; }
 if test "x$ac_cv_have_decl_wcrtomb" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_WCRTOMB $ac_have_decl" >>confdefs.h
 
@@ -37295,8 +41069,8 @@ printf %s "checking whether wcrtomb works in the C locale... " >&6; }
 if test ${gl_cv_func_wcrtomb_works+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test "$cross_compiling" = yes
+else case e in #(
+  e) if test "$cross_compiling" = yes
 then :
   case "$host_os" in
                                # Guess no on Android.
@@ -37305,8 +41079,8 @@ then :
               *)               gl_cv_func_wcrtomb_works="guessing yes";;
             esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <string.h>
@@ -37326,14 +41100,17 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_wcrtomb_works=yes
-else $as_nop
-  gl_cv_func_wcrtomb_works=no
+else case e in #(
+  e) gl_cv_func_wcrtomb_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
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
-
+         ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_wcrtomb_works" >&5
 printf "%s\n" "$gl_cv_func_wcrtomb_works" >&6; }
@@ -37351,8 +41128,8 @@ printf %s "checking whether wcrtomb return value is correct... " >&6; }
 if test ${gl_cv_func_wcrtomb_retval+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
                               case "$host_os" in
             # Guess no on AIX 4, OSF/1, Solaris, native Windows.
             aix4* | osf* | solaris* | mingw*) gl_cv_func_wcrtomb_retval="guessing no" ;;
@@ -37363,8 +41140,8 @@ else $as_nop
             if test "$cross_compiling" = yes
 then :
   :
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <locale.h>
@@ -37406,15 +41183,18 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_wcrtomb_retval=yes
-else $as_nop
-  gl_cv_func_wcrtomb_retval=no
+else case e in #(
+  e) gl_cv_func_wcrtomb_retval=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
           fi
-
+         ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_wcrtomb_retval" >&5
 printf "%s\n" "$gl_cv_func_wcrtomb_retval" >&6; }
@@ -37428,21 +41208,32 @@ printf "%s\n" "#define WCRTOMB_RETVAL_BUG 1" >>confdefs.h
     fi
   fi
 
-  if test $HAVE_WCRTOMB = 0 || test $REPLACE_WCRTOMB = 1; then
 
+     if test $HAVE_WCRTOMB = 0 || test $REPLACE_WCRTOMB = 1; then
+  GL_COND_OBJ_WCRTOMB_TRUE=
+  GL_COND_OBJ_WCRTOMB_FALSE='#'
+else
+  GL_COND_OBJ_WCRTOMB_TRUE='#'
+  GL_COND_OBJ_WCRTOMB_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_WCRTOMB_TRUE}" && test -z "${GL_COND_OBJ_WCRTOMB_FALSE}"; then
+    GL_COND_OBJ_WCRTOMB_TRUE='#'
+    GL_COND_OBJ_WCRTOMB_FALSE='#'
+  fi
 
+  if test -z "$GL_COND_OBJ_WCRTOMB_TRUE"; then :
 
 
+  :
 
 
+fi
 
 
-  gl_LIBOBJS="$gl_LIBOBJS wcrtomb.$ac_objext"
 
 
-  :
 
-  fi
 
 
 
@@ -37479,6 +41270,7 @@ printf "%s\n" "#define GNULIB_TEST_WCRTOMB 1" >>confdefs.h
 
 
 
+
   ac_fn_check_decl "$LINENO" "wcwidth" "ac_cv_have_decl_wcwidth" "
     #include <wchar.h>
 
@@ -37486,8 +41278,9 @@ printf "%s\n" "#define GNULIB_TEST_WCRTOMB 1" >>confdefs.h
 if test "x$ac_cv_have_decl_wcwidth" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_WCWIDTH $ac_have_decl" >>confdefs.h
 
@@ -37501,8 +41294,8 @@ printf %s "checking whether wcwidth is a macro... " >&6; }
 if test ${gl_cv_func_wcwidth_macro+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <wchar.h>
@@ -37511,15 +41304,17 @@ else $as_nop
 #endif
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "wchar_header_defines_wcwidth" >/dev/null 2>&1
+  $EGREP_TRADITIONAL "wchar_header_defines_wcwidth" >/dev/null 2>&1
 then :
   gl_cv_func_wcwidth_macro=yes
-else $as_nop
-  gl_cv_func_wcwidth_macro=no
+else case e in #(
+  e) gl_cv_func_wcwidth_macro=no ;;
+esac
 fi
 rm -rf conftest*
 
-
+       ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_wcwidth_macro" >&5
 printf "%s\n" "$gl_cv_func_wcwidth_macro" >&6; }
@@ -37532,23 +41327,23 @@ printf %s "checking whether wcwidth works reasonably in UTF-8 locales... " >&6;
 if test ${gl_cv_func_wcwidth_works+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
         if test "$cross_compiling" = yes
 then :
 
            case "$host_os" in
-                            # Guess yes on glibc systems.
-             *-gnu* | gnu*) gl_cv_func_wcwidth_works="guessing yes";;
-                            # Guess yes on musl systems.
-             *-musl*)       gl_cv_func_wcwidth_works="guessing yes";;
-                            # Guess yes on AIX 7 systems.
-             aix[7-9]*)     gl_cv_func_wcwidth_works="guessing yes";;
-             *)             gl_cv_func_wcwidth_works="$gl_cross_guess_normal";;
+                                 # Guess yes on glibc systems.
+             *-gnu* | gnu*)      gl_cv_func_wcwidth_works="guessing yes";;
+                                 # Guess yes on musl systems.
+             *-musl* | midipix*) gl_cv_func_wcwidth_works="guessing yes";;
+                                 # Guess yes on AIX 7 systems.
+             aix[7-9]*)          gl_cv_func_wcwidth_works="guessing yes";;
+             *)                  gl_cv_func_wcwidth_works="$gl_cross_guess_normal";;
            esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <locale.h>
@@ -37582,14 +41377,17 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_wcwidth_works=yes
-else $as_nop
-  gl_cv_func_wcwidth_works=no
+else case e in #(
+  e) gl_cv_func_wcwidth_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
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
-
+       ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_wcwidth_works" >&5
 printf "%s\n" "$gl_cv_func_wcwidth_works" >&6; }
@@ -37601,22 +41399,33 @@ printf "%s\n" "$gl_cv_func_wcwidth_works" >&6; }
     HAVE_WCWIDTH=0
   fi
 
-  if test $HAVE_WCWIDTH = 0 || test $REPLACE_WCWIDTH = 1; then
 
+     if test $HAVE_WCWIDTH = 0 || test $REPLACE_WCWIDTH = 1; then
+  GL_COND_OBJ_WCWIDTH_TRUE=
+  GL_COND_OBJ_WCWIDTH_FALSE='#'
+else
+  GL_COND_OBJ_WCWIDTH_TRUE='#'
+  GL_COND_OBJ_WCWIDTH_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_WCWIDTH_TRUE}" && test -z "${GL_COND_OBJ_WCWIDTH_FALSE}"; then
+    GL_COND_OBJ_WCWIDTH_TRUE='#'
+    GL_COND_OBJ_WCWIDTH_FALSE='#'
+  fi
 
+  if test -z "$GL_COND_OBJ_WCWIDTH_TRUE"; then :
 
 
 
+  :
 
 
+fi
 
-  gl_LIBOBJS="$gl_LIBOBJS wcwidth.$ac_objext"
 
 
 
-  :
 
-  fi
 
 
 
@@ -37637,65 +41446,65 @@ printf "%s\n" "#define GNULIB_TEST_WCWIDTH 1" >>confdefs.h
 
 
 
-  case "$host_os" in
-    mingw*)
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS windows-mutex.$ac_objext"
-
-      ;;
-  esac
-
-  case "$host_os" in
-    mingw*)
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS windows-once.$ac_objext"
-
-      ;;
-  esac
-
-  case "$host_os" in
-    mingw*)
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS windows-recmutex.$ac_objext"
 
-      ;;
-  esac
+     if case "$host_os" in mingw*) true;; *) false;; esac; then
+  GL_COND_OBJ_WINDOWS_MUTEX_TRUE=
+  GL_COND_OBJ_WINDOWS_MUTEX_FALSE='#'
+else
+  GL_COND_OBJ_WINDOWS_MUTEX_TRUE='#'
+  GL_COND_OBJ_WINDOWS_MUTEX_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_WINDOWS_MUTEX_TRUE}" && test -z "${GL_COND_OBJ_WINDOWS_MUTEX_FALSE}"; then
+    GL_COND_OBJ_WINDOWS_MUTEX_TRUE='#'
+    GL_COND_OBJ_WINDOWS_MUTEX_FALSE='#'
+  fi
 
-  case "$host_os" in
-    mingw*)
 
 
+     if case "$host_os" in mingw*) true;; *) false;; esac; then
+  GL_COND_OBJ_WINDOWS_ONCE_TRUE=
+  GL_COND_OBJ_WINDOWS_ONCE_FALSE='#'
+else
+  GL_COND_OBJ_WINDOWS_ONCE_TRUE='#'
+  GL_COND_OBJ_WINDOWS_ONCE_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_WINDOWS_ONCE_TRUE}" && test -z "${GL_COND_OBJ_WINDOWS_ONCE_FALSE}"; then
+    GL_COND_OBJ_WINDOWS_ONCE_TRUE='#'
+    GL_COND_OBJ_WINDOWS_ONCE_FALSE='#'
+  fi
 
 
 
+     if case "$host_os" in mingw*) true;; *) false;; esac; then
+  GL_COND_OBJ_WINDOWS_RECMUTEX_TRUE=
+  GL_COND_OBJ_WINDOWS_RECMUTEX_FALSE='#'
+else
+  GL_COND_OBJ_WINDOWS_RECMUTEX_TRUE='#'
+  GL_COND_OBJ_WINDOWS_RECMUTEX_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_WINDOWS_RECMUTEX_TRUE}" && test -z "${GL_COND_OBJ_WINDOWS_RECMUTEX_FALSE}"; then
+    GL_COND_OBJ_WINDOWS_RECMUTEX_TRUE='#'
+    GL_COND_OBJ_WINDOWS_RECMUTEX_FALSE='#'
+  fi
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS windows-rwlock.$ac_objext"
+     if case "$host_os" in mingw*) true;; *) false;; esac; then
+  GL_COND_OBJ_WINDOWS_RWLOCK_TRUE=
+  GL_COND_OBJ_WINDOWS_RWLOCK_FALSE='#'
+else
+  GL_COND_OBJ_WINDOWS_RWLOCK_TRUE='#'
+  GL_COND_OBJ_WINDOWS_RWLOCK_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_WINDOWS_RWLOCK_TRUE}" && test -z "${GL_COND_OBJ_WINDOWS_RWLOCK_FALSE}"; then
+    GL_COND_OBJ_WINDOWS_RWLOCK_TRUE='#'
+    GL_COND_OBJ_WINDOWS_RWLOCK_FALSE='#'
+  fi
 
-      ;;
-  esac
 
 
       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for wmemchr" >&5
@@ -37703,8 +41512,8 @@ printf %s "checking for wmemchr... " >&6; }
 if test ${gl_cv_func_wmemchr+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <wchar.h>
 
@@ -37720,12 +41529,14 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   gl_cv_func_wmemchr=yes
-else $as_nop
-  gl_cv_func_wmemchr=no
+else case e in #(
+  e) gl_cv_func_wmemchr=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_wmemchr" >&5
 printf "%s\n" "$gl_cv_func_wmemchr" >&6; }
@@ -37733,18 +41544,25 @@ printf "%s\n" "$gl_cv_func_wmemchr" >&6; }
     HAVE_WMEMCHR=0
   fi
 
-  if test $HAVE_WMEMCHR = 0; then
-
-
 
+     if test $HAVE_WMEMCHR = 0; then
+  GL_COND_OBJ_WMEMCHR_TRUE=
+  GL_COND_OBJ_WMEMCHR_FALSE='#'
+else
+  GL_COND_OBJ_WMEMCHR_TRUE='#'
+  GL_COND_OBJ_WMEMCHR_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_WMEMCHR_TRUE}" && test -z "${GL_COND_OBJ_WMEMCHR_FALSE}"; then
+    GL_COND_OBJ_WMEMCHR_TRUE='#'
+    GL_COND_OBJ_WMEMCHR_FALSE='#'
+  fi
 
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS wmemchr.$ac_objext"
 
-  fi
 
 
 
@@ -37772,84 +41590,137 @@ printf "%s\n" "#define GNULIB_TEST_WMEMCHR 1" >>confdefs.h
 
 
 
-  if test $ac_cv_func_wmempcpy = no; then
-    HAVE_WMEMPCPY=0
-  fi
 
-  if test $HAVE_WMEMPCPY = 0; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for wmempcpy" >&5
+printf %s "checking for wmempcpy... " >&6; }
+if test ${gl_cv_onwards_func_wmempcpy+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+  exec 9>&6 6>/dev/null
+
+       case "$host_os" in
 
+         linux*-android*)
+           ac_fn_check_decl "$LINENO" "wmempcpy" "ac_cv_have_decl_wmempcpy" "#include <wchar.h>
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_wmempcpy" = xyes
+then :
 
+fi
+           if test $ac_cv_have_decl_wmempcpy = yes; then
+             ac_fn_c_check_func "$LINENO" "wmempcpy" "ac_cv_func_wmempcpy"
+if test "x$ac_cv_func_wmempcpy" = xyes
+then :
 
+fi
 
+             if test $ac_cv_func_wmempcpy = yes; then
+               gl_cv_onwards_func_wmempcpy=yes
+             else
+                                                            gl_cv_onwards_func_wmempcpy='future OS version'
+             fi
+           else
+             gl_cv_onwards_func_wmempcpy='future OS version'
+           fi
+           ;;
 
 
+         *)
+           ac_fn_c_check_func "$LINENO" "wmempcpy" "ac_cv_func_wmempcpy"
+if test "x$ac_cv_func_wmempcpy" = xyes
+then :
 
+fi
 
-  gl_LIBOBJS="$gl_LIBOBJS wmempcpy.$ac_objext"
+           gl_cv_onwards_func_wmempcpy=$ac_cv_func_wmempcpy
+           ;;
 
-  fi
+       esac
 
+  exec 6>&9 9>&-
 
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_onwards_func_wmempcpy" >&5
+printf "%s\n" "$gl_cv_onwards_func_wmempcpy" >&6; }
 
+  case "$gl_cv_onwards_func_wmempcpy" in
+    future*) ac_cv_func_wmempcpy=no ;;
+    *)       ac_cv_func_wmempcpy=$gl_cv_onwards_func_wmempcpy ;;
+  esac
+  if test $ac_cv_func_wmempcpy = yes; then
 
+printf "%s\n" "#define HAVE_WMEMPCPY 1" >>confdefs.h
 
+  fi
 
 
+  if test $ac_cv_func_wmempcpy = no; then
+    HAVE_WMEMPCPY=0
+    case "$gl_cv_onwards_func_wmempcpy" in
+      future*) REPLACE_WMEMPCPY=1 ;;
+    esac
+  fi
 
 
-          GL_GNULIB_WMEMPCPY=1
+     if test $HAVE_WMEMPCPY = 0 || test $REPLACE_WMEMPCPY = 1; then
+  GL_COND_OBJ_WMEMPCPY_TRUE=
+  GL_COND_OBJ_WMEMPCPY_FALSE='#'
+else
+  GL_COND_OBJ_WMEMPCPY_TRUE='#'
+  GL_COND_OBJ_WMEMPCPY_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_WMEMPCPY_TRUE}" && test -z "${GL_COND_OBJ_WMEMPCPY_FALSE}"; then
+    GL_COND_OBJ_WMEMPCPY_TRUE='#'
+    GL_COND_OBJ_WMEMPCPY_FALSE='#'
+  fi
 
 
 
 
 
-printf "%s\n" "#define GNULIB_TEST_WMEMPCPY 1" >>confdefs.h
 
 
 
-  :
 
 
-printf "%s\n" "#define GNULIB_XALLOC 1" >>confdefs.h
 
 
 
 
-printf "%s\n" "#define GNULIB_XALLOC_DIE 1" >>confdefs.h
 
+          GL_GNULIB_WMEMPCPY=1
 
 
 
-  ac_fn_c_check_header_compile "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default"
-if test "x$ac_cv_header_stdint_h" = xyes
-then :
-  printf "%s\n" "#define HAVE_STDINT_H 1" >>confdefs.h
 
-fi
 
+printf "%s\n" "#define GNULIB_TEST_WMEMPCPY 1" >>confdefs.h
 
 
-  :
 
   :
 
 
-  XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=xasprintf:1:c-format"
-
-  # End of code from modules
+printf "%s\n" "#define GNULIB_XALLOC 1" >>confdefs.h
 
 
 
 
+printf "%s\n" "#define GNULIB_XALLOC_DIE 1" >>confdefs.h
 
 
 
+  :
 
+  # End of code from modules
 
 
 
-  gltests_libdeps=
-  gltests_ltlibdeps=
 
 
 
 
 
 
+  gltests_libdeps=
+  gltests_ltlibdeps=
 
 
 
 
 
 
-  gl_source_base='gnulib-tests'
-  gltests_WITNESS=IN_`echo "${PACKAGE-$PACKAGE_TARNAME}" | LC_ALL=C tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | LC_ALL=C sed -e 's/[^A-Z0-9_]/_/g'`_GNULIB_TESTS
 
-  gl_module_indicator_condition=$gltests_WITNESS
 
 
-  if test "$ac_cv_header_winsock2_h" = yes; then
 
 
 
 
 
+  gl_source_base='gnulib-tests'
+  gl_source_base_prefix=
+  gltests_WITNESS=IN_`echo "${PACKAGE-$PACKAGE_TARNAME}" | LC_ALL=C tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | LC_ALL=C sed -e 's/[^A-Z0-9_]/_/g'`_GNULIB_TESTS
 
+  gl_module_indicator_condition=$gltests_WITNESS
 
 
-  gltests_LIBOBJS="$gltests_LIBOBJS accept.$ac_objext"
 
+     if test "$ac_cv_header_winsock2_h" = yes; then
+  GL_COND_OBJ_ACCEPT_TRUE=
+  GL_COND_OBJ_ACCEPT_FALSE='#'
+else
+  GL_COND_OBJ_ACCEPT_TRUE='#'
+  GL_COND_OBJ_ACCEPT_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_ACCEPT_TRUE}" && test -z "${GL_COND_OBJ_ACCEPT_FALSE}"; then
+    GL_COND_OBJ_ACCEPT_TRUE='#'
+    GL_COND_OBJ_ACCEPT_FALSE='#'
   fi
 
 
@@ -37891,6 +41774,7 @@ fi
 
 
 
+
     if test "$GL_GNULIB_ACCEPT" != 1; then
         if test "$GL_GNULIB_ACCEPT" = 0; then
       GL_GNULIB_ACCEPT=$gl_module_indicator_condition
     HAVE_ATOLL=0
   fi
 
-  if test $HAVE_ATOLL = 0; then
-
-
-
-
-
-
 
+     if test $HAVE_ATOLL = 0; then
+  GL_COND_OBJ_ATOLL_TRUE=
+  GL_COND_OBJ_ATOLL_FALSE='#'
+else
+  GL_COND_OBJ_ATOLL_TRUE='#'
+  GL_COND_OBJ_ATOLL_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_ATOLL_TRUE}" && test -z "${GL_COND_OBJ_ATOLL_FALSE}"; then
+    GL_COND_OBJ_ATOLL_TRUE='#'
+    GL_COND_OBJ_ATOLL_FALSE='#'
+  fi
 
-  gltests_LIBOBJS="$gltests_LIBOBJS atoll.$ac_objext"
+  if test -z "$GL_COND_OBJ_ATOLL_TRUE"; then :
 
 
   :
 
-  fi
+
+fi
 
 
 
@@ -37968,7 +41858,22 @@ printf "%s\n" "#define GNULIB_TEST_ATOLL 1" >>confdefs.h
 
 
 
-  if test "$ac_cv_header_winsock2_h" = yes; then
+
+     if test "$ac_cv_header_winsock2_h" = yes; then
+  GL_COND_OBJ_BIND_TRUE=
+  GL_COND_OBJ_BIND_FALSE='#'
+else
+  GL_COND_OBJ_BIND_TRUE='#'
+  GL_COND_OBJ_BIND_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_BIND_TRUE}" && test -z "${GL_COND_OBJ_BIND_FALSE}"; then
+    GL_COND_OBJ_BIND_TRUE='#'
+    GL_COND_OBJ_BIND_FALSE='#'
+  fi
+
+
+
 
 
 
@@ -37976,9 +41881,39 @@ printf "%s\n" "#define GNULIB_TEST_ATOLL 1" >>confdefs.h
 
 
 
+    if test "$GL_GNULIB_BIND" != 1; then
+        if test "$GL_GNULIB_BIND" = 0; then
+      GL_GNULIB_BIND=$gl_module_indicator_condition
+    else
+      GL_GNULIB_BIND="($GL_GNULIB_BIND || $gl_module_indicator_condition)"
+    fi
+  fi
+
+
+
+
+
+printf "%s\n" "#define GNULIB_TEST_BIND 1" >>confdefs.h
+
+
+
 
-  gltests_LIBOBJS="$gltests_LIBOBJS bind.$ac_objext"
 
+
+
+
+
+     if test "$ac_cv_header_winsock2_h" = yes; then
+  GL_COND_OBJ_CONNECT_TRUE=
+  GL_COND_OBJ_CONNECT_FALSE='#'
+else
+  GL_COND_OBJ_CONNECT_TRUE='#'
+  GL_COND_OBJ_CONNECT_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_CONNECT_TRUE}" && test -z "${GL_COND_OBJ_CONNECT_FALSE}"; then
+    GL_COND_OBJ_CONNECT_TRUE='#'
+    GL_COND_OBJ_CONNECT_FALSE='#'
   fi
 
 
@@ -37989,11 +41924,12 @@ printf "%s\n" "#define GNULIB_TEST_ATOLL 1" >>confdefs.h
 
 
 
-    if test "$GL_GNULIB_BIND" != 1; then
-        if test "$GL_GNULIB_BIND" = 0; then
-      GL_GNULIB_BIND=$gl_module_indicator_condition
+
+    if test "$GL_GNULIB_CONNECT" != 1; then
+        if test "$GL_GNULIB_CONNECT" = 0; then
+      GL_GNULIB_CONNECT=$gl_module_indicator_condition
     else
-      GL_GNULIB_BIND="($GL_GNULIB_BIND || $gl_module_indicator_condition)"
+      GL_GNULIB_CONNECT="($GL_GNULIB_CONNECT || $gl_module_indicator_condition)"
     fi
   fi
 
@@ -38001,568 +41937,319 @@ printf "%s\n" "#define GNULIB_TEST_ATOLL 1" >>confdefs.h
 
 
 
-printf "%s\n" "#define GNULIB_TEST_BIND 1" >>confdefs.h
+printf "%s\n" "#define GNULIB_TEST_CONNECT 1" >>confdefs.h
 
 
 
 
 
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5
-printf %s "checking for a traditional french locale... " >&6; }
-if test ${gt_cv_locale_fr+y}
+
+    if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+      REPLACE_FDOPEN=1
+    fi
+
+  if test $REPLACE_FDOPEN = 0; then
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether fdopen sets errno" >&5
+printf %s "checking whether fdopen sets errno... " >&6; }
+if test ${gl_cv_func_fdopen_works+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
+else case e in #(
+  e)
+        if test "$cross_compiling" = yes
+then :
+  case "$host_os" in
+             mingw*) gl_cv_func_fdopen_works="guessing no" ;;
+             *)      gl_cv_func_fdopen_works="guessing yes" ;;
+           esac
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if defined __BEOS__ || defined __HAIKU__
-  return 1;
-#else
-  /* Check whether the given locale name is recognized by the system.  */
-# if defined _WIN32 && !defined __CYGWIN__
-  /* On native Windows, setlocale(category, "") looks at the system settings,
-     not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
-     category of the locale to "C".  */
-  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
-      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+#include <stdio.h>
+#include <errno.h>
+
+
+$gl_mda_defines
+
+int
+main (void)
+{
+  FILE *fp;
+  errno = 0;
+  fp = fdopen (-1, "r");
+  if (fp == NULL && errno == 0)
     return 1;
-# else
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-# endif
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.
-     On MirBSD 10, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
-        || strcmp (cs, "UTF-8") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
-     one byte long. This excludes the UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
-# if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
-     are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-# endif
   return 0;
-#endif
 }
-
 _ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      case "$host_os" in
-        # Handle native Windows specially, because there setlocale() interprets
-        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
-        # "fr" or "fra" as "French" or "French_France.1252",
-        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
-        # "ja" as "Japanese" or "Japanese_Japan.932",
-        # and similar.
-        mingw*)
-          # Test for the native Windows locale name.
-          if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr=French_France.1252
-          else
-            # None found.
-            gt_cv_locale_fr=none
-          fi
-          ;;
-        *)
-          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
-          # configure script would override the LC_ALL setting. Likewise for
-          # LC_CTYPE, which is also set at the beginning of the configure script.
-          # Test for the usual locale name.
-          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr=fr_FR
-          else
-            # Test for the locale name with explicit encoding suffix.
-            if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_fr=fr_FR.ISO-8859-1
-            else
-              # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
-              if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_fr=fr_FR.ISO8859-1
-              else
-                # Test for the HP-UX locale name.
-                if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                  gt_cv_locale_fr=fr_FR.iso88591
-                else
-                  # Test for the Solaris 7 locale name.
-                  if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                    gt_cv_locale_fr=fr
-                  else
-                    # None found.
-                    gt_cv_locale_fr=none
-                  fi
-                fi
-              fi
-            fi
-          fi
-          ;;
-      esac
-    fi
-    rm -fr conftest*
+if ac_fn_c_try_run "$LINENO"
+then :
+  gl_cv_func_fdopen_works=yes
+else case e in #(
+  e) gl_cv_func_fdopen_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: $gt_cv_locale_fr" >&5
-printf "%s\n" "$gt_cv_locale_fr" >&6; }
-  LOCALE_FR=$gt_cv_locale_fr
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fdopen_works" >&5
+printf "%s\n" "$gl_cv_func_fdopen_works" >&6; }
+    case "$gl_cv_func_fdopen_works" in
+      *no) REPLACE_FDOPEN=1 ;;
+    esac
+  fi
 
 
+     if test $REPLACE_FDOPEN = 1; then
+  GL_COND_OBJ_FDOPEN_TRUE=
+  GL_COND_OBJ_FDOPEN_FALSE='#'
+else
+  GL_COND_OBJ_FDOPEN_TRUE='#'
+  GL_COND_OBJ_FDOPEN_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_FDOPEN_TRUE}" && test -z "${GL_COND_OBJ_FDOPEN_FALSE}"; then
+    GL_COND_OBJ_FDOPEN_TRUE='#'
+    GL_COND_OBJ_FDOPEN_FALSE='#'
+  fi
 
+  if test -z "$GL_COND_OBJ_FDOPEN_TRUE"; then :
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5
-printf %s "checking for a french Unicode locale... " >&6; }
-if test ${gt_cv_locale_fr_utf8+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if !(defined __BEOS__ || defined __HAIKU__)
-  /* Check whether the given locale name is recognized by the system.  */
-# if defined _WIN32 && !defined __CYGWIN__
-  /* On native Windows, setlocale(category, "") looks at the system settings,
-     not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
-     category of the locale to "C".  */
-  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
-      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
-    return 1;
-# else
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-# endif
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
-     two bytes long, with UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 4
-      || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
-    return 1;
-#endif
-#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
-     are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-#endif
-  return 0;
-}
+fi
 
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      case "$host_os" in
-        # Handle native Windows specially, because there setlocale() interprets
-        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
-        # "fr" or "fra" as "French" or "French_France.1252",
-        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
-        # "ja" as "Japanese" or "Japanese_Japan.932",
-        # and similar.
-        mingw*)
-          # Test for the hypothetical native Windows locale name.
-          if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr_utf8=French_France.65001
-          else
-            # None found.
-            gt_cv_locale_fr_utf8=none
-          fi
-          ;;
-        *)
-          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
-          # configure script would override the LC_ALL setting. Likewise for
-          # LC_CTYPE, which is also set at the beginning of the configure script.
-          # Test for the usual locale name.
-          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr_utf8=fr_FR
-          else
-            # Test for the locale name with explicit encoding suffix.
-            if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_fr_utf8=fr_FR.UTF-8
-            else
-              # Test for the Solaris 7 locale name.
-              if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_fr_utf8=fr.UTF-8
-              else
-                # None found.
-                gt_cv_locale_fr_utf8=none
-              fi
-            fi
-          fi
-          ;;
-      esac
+
+
+
+
+
+
+
+
+    if test "$GL_GNULIB_FDOPEN" != 1; then
+        if test "$GL_GNULIB_FDOPEN" = 0; then
+      GL_GNULIB_FDOPEN=$gl_module_indicator_condition
+    else
+      GL_GNULIB_FDOPEN="($GL_GNULIB_FDOPEN || $gl_module_indicator_condition)"
     fi
-    rm -fr conftest*
+  fi
 
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5
-printf "%s\n" "$gt_cv_locale_fr_utf8" >&6; }
-  LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8
 
 
 
 
+printf "%s\n" "#define GNULIB_TEST_FDOPEN 1" >>confdefs.h
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5
-printf %s "checking for a traditional french locale... " >&6; }
-if test ${gt_cv_locale_fr+y}
+
+
+
+
+
+  GL_GENERATE_FLOAT_H=false
+  REPLACE_FLOAT_LDBL=0
+  case "$host_os" in
+    aix* | beos* | openbsd* | mirbsd* | irix*)
+      GL_GENERATE_FLOAT_H=true
+      ;;
+    freebsd* | dragonfly*)
+      case "$host_cpu" in
+        i[34567]86 )
+          GL_GENERATE_FLOAT_H=true
+          ;;
+        x86_64 )
+          # On x86_64 systems, the C compiler may still be generating
+          # 32-bit code.
+          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#if defined __LP64__ || defined __x86_64__ || defined __amd64__
+                  int ok;
+                 #else
+                  error fail
+                 #endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+
+else case e in #(
+  e) GL_GENERATE_FLOAT_H=true ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+          ;;
+      esac
+      ;;
+    linux*)
+      case "$host_cpu" in
+        powerpc*)
+          GL_GENERATE_FLOAT_H=true
+          ;;
+      esac
+      ;;
+  esac
+  case "$host_os" in
+    aix* | freebsd* | dragonfly* | linux*)
+      if $GL_GENERATE_FLOAT_H; then
+        REPLACE_FLOAT_LDBL=1
+      fi
+      ;;
+  esac
+
+    REPLACE_ITOLD=0
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether conversion from 'int' to 'long double' works" >&5
+printf %s "checking whether conversion from 'int' to 'long double' works... " >&6; }
+if test ${gl_cv_func_itold_works+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
+else case e in #(
+  e)
+      if test "$cross_compiling" = yes
+then :
+  case "$host" in
+           sparc*-*-linux*)
+             cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#if defined __LP64__ || defined __arch64__
+                    int ok;
+                   #else
+                    error fail
+                   #endif
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  gl_cv_func_itold_works="guessing no"
+else case e in #(
+  e) gl_cv_func_itold_works="guessing yes" ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+             ;;
+                   # Guess yes on native Windows.
+           mingw*) gl_cv_func_itold_works="guessing yes" ;;
+           *)      gl_cv_func_itold_works="guessing yes" ;;
+         esac
+
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if defined __BEOS__ || defined __HAIKU__
-  return 1;
-#else
-  /* Check whether the given locale name is recognized by the system.  */
-# if defined _WIN32 && !defined __CYGWIN__
-  /* On native Windows, setlocale(category, "") looks at the system settings,
-     not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
-     category of the locale to "C".  */
-  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
-      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+int i = -1;
+volatile long double ld;
+int main ()
+{
+  ld += i * 1.0L;
+  if (ld > 0)
     return 1;
-# else
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-# endif
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.
-     On MirBSD 10, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
-        || strcmp (cs, "UTF-8") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
-     one byte long. This excludes the UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
-# if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
-     are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-# endif
   return 0;
-#endif
 }
-
 _ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      case "$host_os" in
-        # Handle native Windows specially, because there setlocale() interprets
-        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
-        # "fr" or "fra" as "French" or "French_France.1252",
-        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
-        # "ja" as "Japanese" or "Japanese_Japan.932",
-        # and similar.
-        mingw*)
-          # Test for the native Windows locale name.
-          if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr=French_France.1252
-          else
-            # None found.
-            gt_cv_locale_fr=none
-          fi
-          ;;
-        *)
-          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
-          # configure script would override the LC_ALL setting. Likewise for
-          # LC_CTYPE, which is also set at the beginning of the configure script.
-          # Test for the usual locale name.
-          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr=fr_FR
-          else
-            # Test for the locale name with explicit encoding suffix.
-            if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_fr=fr_FR.ISO-8859-1
-            else
-              # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
-              if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_fr=fr_FR.ISO8859-1
-              else
-                # Test for the HP-UX locale name.
-                if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                  gt_cv_locale_fr=fr_FR.iso88591
-                else
-                  # Test for the Solaris 7 locale name.
-                  if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                    gt_cv_locale_fr=fr
-                  else
-                    # None found.
-                    gt_cv_locale_fr=none
-                  fi
-                fi
-              fi
-            fi
-          fi
-          ;;
-      esac
-    fi
-    rm -fr conftest*
+if ac_fn_c_try_run "$LINENO"
+then :
+  gl_cv_func_itold_works=yes
+else case e in #(
+  e) gl_cv_func_itold_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: $gt_cv_locale_fr" >&5
-printf "%s\n" "$gt_cv_locale_fr" >&6; }
-  LOCALE_FR=$gt_cv_locale_fr
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_itold_works" >&5
+printf "%s\n" "$gl_cv_func_itold_works" >&6; }
+  case "$gl_cv_func_itold_works" in
+    *no)
+      REPLACE_ITOLD=1
+                  GL_GENERATE_FLOAT_H=true
+      ;;
+  esac
 
+  if $GL_GENERATE_FLOAT_H; then
 
 
 
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a turkish Unicode locale" >&5
-printf %s "checking for a turkish Unicode locale... " >&6; }
-if test ${gt_cv_locale_tr_utf8+y}
+
+
+
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_float_h='<'float.h'>'
+     else
+       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <float.h>" >&5
+printf %s "checking absolute name of <float.h>... " >&6; }
+if test ${gl_cv_next_float_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
+else case e in #(
+  e)
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
+#include <float.h>
+_ACEOF
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
 
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-#include <wctype.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* On BeOS, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  But BeOS does not
-     implement the Turkish upper-/lowercase mappings.  Therefore, let this
-     program return 1 on BeOS.  */
-  /* Check whether the given locale name is recognized by the system.  */
-#if defined _WIN32 && !defined __CYGWIN__
-  /* On native Windows, setlocale(category, "") looks at the system settings,
-     not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
-     category of the locale to "C".  */
-  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
-      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
-    return 1;
-#else
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-#endif
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On Mac OS X 10.3.5 (Darwin 7.5) in the tr_TR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
-#if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
-      return 1;
-  }
-#endif
-#ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
-  /* Check whether in the abbreviation of the eighth month, the second
-     character (should be U+011F: LATIN SMALL LETTER G WITH BREVE) is
-     two bytes long, with UTF-8 encoding.  */
-  t.tm_year = 1992 - 1900; t.tm_mon = 8 - 1; t.tm_mday = 19;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 4
-      || buf[1] != (char) 0xc4 || buf[2] != (char) 0x9f)
-    return 1;
-  /* Check whether the upper-/lowercase mappings are as expected for
-     Turkish.  */
-  if (towupper ('i') != 0x0130 || towlower (0x0130) != 'i'
-      || towupper(0x0131) != 'I' || towlower ('I') != 0x0131)
-    return 1;
-  return 0;
-}
-
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      case "$host_os" in
-        # Handle native Windows specially, because there setlocale() interprets
-        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
-        # "fr" or "fra" as "French" or "French_France.1252",
-        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
-        # "ja" as "Japanese" or "Japanese_Japan.932",
-        # and similar.
-        mingw*)
-          # Test for the hypothetical native Windows locale name.
-          if (LC_ALL=Turkish_Turkey.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_tr_utf8=Turkish_Turkey.65001
-          else
-            # None found.
-            gt_cv_locale_tr_utf8=none
-          fi
-          ;;
-        *)
-          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
-          # configure script would override the LC_ALL setting. Likewise for
-          # LC_CTYPE, which is also set at the beginning of the configure script.
-          # Test for the usual locale name.
-          if (LC_ALL=tr_TR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_tr_utf8=tr_TR
-          else
-            # Test for the locale name with explicit encoding suffix.
-            if (LC_ALL=tr_TR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_tr_utf8=tr_TR.UTF-8
-            else
-              # Test for the Solaris 7 locale name.
-              if (LC_ALL=tr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_tr_utf8=tr.UTF-8
-              else
-                # None found.
-                gt_cv_locale_tr_utf8=none
-              fi
-            fi
-          fi
-          ;;
-      esac
-    else
-      gt_cv_locale_tr_utf8=none
-    fi
-    rm -fr conftest*
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_tr_utf8" >&5
-printf "%s\n" "$gt_cv_locale_tr_utf8" >&6; }
-  LOCALE_TR_UTF8=$gt_cv_locale_tr_utf8
-
-
-
-  if test "$ac_cv_header_winsock2_h" = yes; then
-
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'float.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
 
+        gl_cv_absolute_float_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
 
+          gl_header=$gl_cv_absolute_float_h
+          gl_cv_next_float_h='"'$gl_header'"'
 
+          ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_float_h" >&5
+printf "%s\n" "$gl_cv_next_float_h" >&6; }
+     fi
+     NEXT_FLOAT_H=$gl_cv_next_float_h
 
+     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
+       gl_next_as_first_directive='<'float.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_float_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_FLOAT_H=$gl_next_as_first_directive
 
 
 
-  gltests_LIBOBJS="$gltests_LIBOBJS connect.$ac_objext"
 
   fi
 
@@ -38571,129 +42258,134 @@ printf "%s\n" "$gt_cv_locale_tr_utf8" >&6; }
 
 
 
+  case "$GL_GENERATE_FLOAT_H" in
+    false) FLOAT_H='' ;;
+    true)
+                  if test -z "$FLOAT_H"; then
+        FLOAT_H="${gl_source_base_prefix}float.h"
+      fi
+      ;;
+    *) echo "*** GL_GENERATE_FLOAT_H is not set correctly" 1>&2; exit 1 ;;
+  esac
 
 
-
-    if test "$GL_GNULIB_CONNECT" != 1; then
-        if test "$GL_GNULIB_CONNECT" = 0; then
-      GL_GNULIB_CONNECT=$gl_module_indicator_condition
-    else
-      GL_GNULIB_CONNECT="($GL_GNULIB_CONNECT || $gl_module_indicator_condition)"
-    fi
+     if $GL_GENERATE_FLOAT_H; then
+  GL_GENERATE_FLOAT_H_TRUE=
+  GL_GENERATE_FLOAT_H_FALSE='#'
+else
+  GL_GENERATE_FLOAT_H_TRUE='#'
+  GL_GENERATE_FLOAT_H_FALSE=
+fi
+:
+    if test -z "${GL_GENERATE_FLOAT_H_TRUE}" && test -z "${GL_GENERATE_FLOAT_H_FALSE}"; then
+    GL_GENERATE_FLOAT_H_TRUE='#'
+    GL_GENERATE_FLOAT_H_FALSE='#'
   fi
 
 
 
 
 
-printf "%s\n" "#define GNULIB_TEST_CONNECT 1" >>confdefs.h
-
-
-
-
 
 
-
-    if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
-      REPLACE_FDOPEN=1
-    fi
-
-  if test $REPLACE_FDOPEN = 0; then
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether fdopen sets errno" >&5
-printf %s "checking whether fdopen sets errno... " >&6; }
-if test ${gl_cv_func_fdopen_works+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-
-        if test "$cross_compiling" = yes
-then :
-  case "$host_os" in
-             mingw*) gl_cv_func_fdopen_works="guessing no" ;;
-             *)      gl_cv_func_fdopen_works="guessing yes" ;;
-           esac
-
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <stdio.h>
-#include <errno.h>
-
-
-$gl_mda_defines
-
-int
-main (void)
-{
-  FILE *fp;
-  errno = 0;
-  fp = fdopen (-1, "r");
-  if (fp == NULL && errno == 0)
-    return 1;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
-  gl_cv_func_fdopen_works=yes
-else $as_nop
-  gl_cv_func_fdopen_works=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+     if test $REPLACE_FLOAT_LDBL = 1; then
+  GL_COND_OBJ_FLOAT_TRUE=
+  GL_COND_OBJ_FLOAT_FALSE='#'
+else
+  GL_COND_OBJ_FLOAT_TRUE='#'
+  GL_COND_OBJ_FLOAT_FALSE=
 fi
+:
+    if test -z "${GL_COND_OBJ_FLOAT_TRUE}" && test -z "${GL_COND_OBJ_FLOAT_FALSE}"; then
+    GL_COND_OBJ_FLOAT_TRUE='#'
+    GL_COND_OBJ_FLOAT_FALSE='#'
+  fi
 
 
+     if test $REPLACE_ITOLD = 1; then
+  GL_COND_OBJ_ITOLD_TRUE=
+  GL_COND_OBJ_ITOLD_FALSE='#'
+else
+  GL_COND_OBJ_ITOLD_TRUE='#'
+  GL_COND_OBJ_ITOLD_FALSE=
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fdopen_works" >&5
-printf "%s\n" "$gl_cv_func_fdopen_works" >&6; }
-    case "$gl_cv_func_fdopen_works" in
-      *no) REPLACE_FDOPEN=1 ;;
-    esac
+:
+    if test -z "${GL_COND_OBJ_ITOLD_TRUE}" && test -z "${GL_COND_OBJ_ITOLD_FALSE}"; then
+    GL_COND_OBJ_ITOLD_TRUE='#'
+    GL_COND_OBJ_ITOLD_FALSE='#'
   fi
 
-  if test $REPLACE_FDOPEN = 1; then
 
 
 
 
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ftruncate" >&5
+printf %s "checking for ftruncate... " >&6; }
+if test ${gl_cv_onwards_func_ftruncate+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+  exec 9>&6 6>/dev/null
 
+       case "$host_os" in
 
+         linux*-android*)
+           ac_fn_check_decl "$LINENO" "ftruncate" "ac_cv_have_decl_ftruncate" "#include <unistd.h>
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_ftruncate" = xyes
+then :
 
+fi
+           if test $ac_cv_have_decl_ftruncate = yes; then
+             ac_fn_c_check_func "$LINENO" "ftruncate" "ac_cv_func_ftruncate"
+if test "x$ac_cv_func_ftruncate" = xyes
+then :
 
-  gltests_LIBOBJS="$gltests_LIBOBJS fdopen.$ac_objext"
+fi
 
+             if test $ac_cv_func_ftruncate = yes; then
+               gl_cv_onwards_func_ftruncate=yes
+             else
+                                                            gl_cv_onwards_func_ftruncate='future OS version'
+             fi
+           else
+             gl_cv_onwards_func_ftruncate='future OS version'
+           fi
+           ;;
 
-  fi
 
+         *)
+           ac_fn_c_check_func "$LINENO" "ftruncate" "ac_cv_func_ftruncate"
+if test "x$ac_cv_func_ftruncate" = xyes
+then :
 
+fi
 
+           gl_cv_onwards_func_ftruncate=$ac_cv_func_ftruncate
+           ;;
 
+       esac
 
+  exec 6>&9 9>&-
 
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_onwards_func_ftruncate" >&5
+printf "%s\n" "$gl_cv_onwards_func_ftruncate" >&6; }
 
+  case "$gl_cv_onwards_func_ftruncate" in
+    future*) ac_cv_func_ftruncate=no ;;
+    *)       ac_cv_func_ftruncate=$gl_cv_onwards_func_ftruncate ;;
+  esac
+  if test $ac_cv_func_ftruncate = yes; then
 
+printf "%s\n" "#define HAVE_FTRUNCATE 1" >>confdefs.h
 
-    if test "$GL_GNULIB_FDOPEN" != 1; then
-        if test "$GL_GNULIB_FDOPEN" = 0; then
-      GL_GNULIB_FDOPEN=$gl_module_indicator_condition
-    else
-      GL_GNULIB_FDOPEN="($GL_GNULIB_FDOPEN || $gl_module_indicator_condition)"
-    fi
   fi
 
 
-
-
-
-printf "%s\n" "#define GNULIB_TEST_FDOPEN 1" >>confdefs.h
-
-
-
-
-
-
   if test $ac_cv_func_ftruncate = yes; then
 
 
@@ -38705,18 +42397,26 @@ printf "%s\n" "#define GNULIB_TEST_FDOPEN 1" >>confdefs.h
 
   else
     HAVE_FTRUNCATE=0
+    case "$gl_cv_onwards_func_ftruncate" in
+      future*) REPLACE_FTRUNCATE=1 ;;
+    esac
   fi
 
-  if test $HAVE_FTRUNCATE = 0 || test $REPLACE_FTRUNCATE = 1; then
-
-
-
-
-
-
 
+     if test $HAVE_FTRUNCATE = 0 || test $REPLACE_FTRUNCATE = 1; then
+  GL_COND_OBJ_FTRUNCATE_TRUE=
+  GL_COND_OBJ_FTRUNCATE_FALSE='#'
+else
+  GL_COND_OBJ_FTRUNCATE_TRUE='#'
+  GL_COND_OBJ_FTRUNCATE_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_FTRUNCATE_TRUE}" && test -z "${GL_COND_OBJ_FTRUNCATE_FALSE}"; then
+    GL_COND_OBJ_FTRUNCATE_TRUE='#'
+    GL_COND_OBJ_FTRUNCATE_FALSE='#'
+  fi
 
-  gltests_LIBOBJS="$gltests_LIBOBJS ftruncate.$ac_objext"
+  if test -z "$GL_COND_OBJ_FTRUNCATE_TRUE"; then :
 
 
   ac_fn_c_check_func "$LINENO" "_chsize" "ac_cv_func__chsize"
@@ -38727,7 +42427,8 @@ then :
 fi
 
 
-  fi
+
+fi
 
 
 
@@ -38765,17 +42466,18 @@ printf "%s\n" "#define GNULIB_TEST_FTRUNCATE 1" >>confdefs.h
     ;;
   esac
 
-  if test $REPLACE_GETCWD = 1; then
-
-
-
-
-
-
-
-
-  gltests_LIBOBJS="$gltests_LIBOBJS getcwd-lgpl.$ac_objext"
 
+     if test $REPLACE_GETCWD = 1; then
+  GL_COND_OBJ_GETCWD_LGPL_TRUE=
+  GL_COND_OBJ_GETCWD_LGPL_FALSE='#'
+else
+  GL_COND_OBJ_GETCWD_LGPL_TRUE='#'
+  GL_COND_OBJ_GETCWD_LGPL_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_GETCWD_LGPL_TRUE}" && test -z "${GL_COND_OBJ_GETCWD_LGPL_FALSE}"; then
+    GL_COND_OBJ_GETCWD_LGPL_TRUE='#'
+    GL_COND_OBJ_GETCWD_LGPL_FALSE='#'
   fi
 
 
@@ -38786,6 +42488,7 @@ printf "%s\n" "#define GNULIB_TEST_FTRUNCATE 1" >>confdefs.h
 
 
 
+
     if test "$GL_GNULIB_GETCWD" != 1; then
         if test "$GL_GNULIB_GETCWD" = 0; then
       GL_GNULIB_GETCWD=$gl_module_indicator_condition
@@ -38805,6 +42508,74 @@ printf "%s\n" "#define GNULIB_TEST_GETCWD 1" >>confdefs.h
 
 
 
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for duplocale" >&5
+printf %s "checking for duplocale... " >&6; }
+if test ${gl_cv_onwards_func_duplocale+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+  exec 9>&6 6>/dev/null
+
+       case "$host_os" in
+
+         linux*-android*)
+           ac_fn_check_decl "$LINENO" "duplocale" "ac_cv_have_decl_duplocale" "#include <locale.h>
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_duplocale" = xyes
+then :
+
+fi
+           if test $ac_cv_have_decl_duplocale = yes; then
+             ac_fn_c_check_func "$LINENO" "duplocale" "ac_cv_func_duplocale"
+if test "x$ac_cv_func_duplocale" = xyes
+then :
+
+fi
+
+             if test $ac_cv_func_duplocale = yes; then
+               gl_cv_onwards_func_duplocale=yes
+             else
+                                                            gl_cv_onwards_func_duplocale='future OS version'
+             fi
+           else
+             gl_cv_onwards_func_duplocale='future OS version'
+           fi
+           ;;
+
+
+         *)
+           ac_fn_c_check_func "$LINENO" "duplocale" "ac_cv_func_duplocale"
+if test "x$ac_cv_func_duplocale" = xyes
+then :
+
+fi
+
+           gl_cv_onwards_func_duplocale=$ac_cv_func_duplocale
+           ;;
+
+       esac
+
+  exec 6>&9 9>&-
+
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_onwards_func_duplocale" >&5
+printf "%s\n" "$gl_cv_onwards_func_duplocale" >&6; }
+
+  case "$gl_cv_onwards_func_duplocale" in
+    future*) ac_cv_func_duplocale=no ;;
+    *)       ac_cv_func_duplocale=$gl_cv_onwards_func_duplocale ;;
+  esac
+  if test $ac_cv_func_duplocale = yes; then
+
+printf "%s\n" "#define HAVE_DUPLOCALE 1" >>confdefs.h
+
+  fi
+
+
+
 
 
 
@@ -38842,8 +42613,9 @@ fi
 if test "x$ac_cv_have_decl_inet_pton" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_INET_PTON $ac_have_decl" >>confdefs.h
 
@@ -38859,15 +42631,21 @@ printf %s "checking for library containing inet_pton... " >&6; }
 if test ${ac_cv_search_inet_pton+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_func_search_save_LIBS=$LIBS
+else case e in #(
+  e) ac_func_search_save_LIBS=$LIBS
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-char inet_pton ();
+   builtin and then its argument prototype would still apply.
+   The 'extern "C"' is for builds by C++ compilers;
+   although this is not generally supported in C code supporting it here
+   has little cost and some practical benefit (sr 110532).  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char inet_pton (void);
 int
 main (void)
 {
@@ -38898,11 +42676,13 @@ done
 if test ${ac_cv_search_inet_pton+y}
 then :
 
-else $as_nop
-  ac_cv_search_inet_pton=no
+else case e in #(
+  e) ac_cv_search_inet_pton=no ;;
+esac
 fi
 rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
+LIBS=$ac_func_search_save_LIBS ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_inet_pton" >&5
 printf "%s\n" "$ac_cv_search_inet_pton" >&6; }
@@ -38911,8 +42691,8 @@ if test "$ac_res" != no
 then :
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
-else $as_nop
-  ac_fn_c_check_func "$LINENO" "inet_pton" "ac_cv_func_inet_pton"
+else case e in #(
+  e) ac_fn_c_check_func "$LINENO" "inet_pton" "ac_cv_func_inet_pton"
 if test "x$ac_cv_func_inet_pton" = xyes
 then :
   printf "%s\n" "#define HAVE_INET_PTON 1" >>confdefs.h
@@ -38922,7 +42702,8 @@ fi
        if test $ac_cv_func_inet_pton = no; then
          HAVE_INET_PTON=0
        fi
-
+       ;;
+esac
 fi
 
     LIBS=$gl_save_LIBS
@@ -38942,8 +42723,9 @@ fi
 if test "x$ac_cv_have_decl_inet_pton" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_INET_PTON $ac_have_decl" >>confdefs.h
 
@@ -38953,21 +42735,27 @@ printf "%s\n" "#define HAVE_DECL_INET_PTON $ac_have_decl" >>confdefs.h
   fi
 
 
-  if test $HAVE_INET_PTON = 0 || test $REPLACE_INET_PTON = 1; then
-
-
-
-
-
 
+     if test $HAVE_INET_PTON = 0 || test $REPLACE_INET_PTON = 1; then
+  GL_COND_OBJ_INET_PTON_TRUE=
+  GL_COND_OBJ_INET_PTON_FALSE='#'
+else
+  GL_COND_OBJ_INET_PTON_TRUE='#'
+  GL_COND_OBJ_INET_PTON_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_INET_PTON_TRUE}" && test -z "${GL_COND_OBJ_INET_PTON_FALSE}"; then
+    GL_COND_OBJ_INET_PTON_TRUE='#'
+    GL_COND_OBJ_INET_PTON_FALSE='#'
+  fi
 
+  if test -z "$GL_COND_OBJ_INET_PTON_TRUE"; then :
 
-  gltests_LIBOBJS="$gltests_LIBOBJS inet_pton.$ac_objext"
 
 
 
 
-  fi
+fi
 
 
 
@@ -38993,8 +42781,8 @@ printf %s "checking whether byte ordering is bigendian... " >&6; }
 if test ${ac_cv_c_bigendian+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_cv_c_bigendian=unknown
+else case e in #(
+  e) ac_cv_c_bigendian=unknown
     # See if we're dealing with a universal compiler.
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -39040,8 +42828,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
 int
 main (void)
 {
-#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
-                    && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
+#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \\
+                    && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \\
                     && LITTLE_ENDIAN)
              bogus endian macros
             #endif
@@ -39072,8 +42860,9 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   ac_cv_c_bigendian=yes
-else $as_nop
-  ac_cv_c_bigendian=no
+else case e in #(
+  e) ac_cv_c_bigendian=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
@@ -39117,8 +42906,9 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   ac_cv_c_bigendian=yes
-else $as_nop
-  ac_cv_c_bigendian=no
+else case e in #(
+  e) ac_cv_c_bigendian=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
@@ -39145,22 +42935,23 @@ unsigned short int ascii_mm[] =
                int use_ebcdic (int i) {
                  return ebcdic_mm[i] + ebcdic_ii[i];
                }
-               extern int foo;
-
-int
-main (void)
-{
-return use_ascii (foo) == use_ebcdic (foo);
-  ;
-  return 0;
-}
+               int
+               main (int argc, char **argv)
+               {
+                 /* Intimidate the compiler so that it does not
+                    optimize the arrays away.  */
+                 char *p = argv[0];
+                 ascii_mm[1] = *p++; ebcdic_mm[1] = *p++;
+                 ascii_ii[1] = *p++; ebcdic_ii[1] = *p++;
+                 return use_ascii (argc) == use_ebcdic (*p);
+               }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"
+if ac_fn_c_try_link "$LINENO"
 then :
-  if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
+  if grep BIGenDianSyS conftest$ac_exeext >/dev/null; then
              ac_cv_c_bigendian=yes
            fi
-           if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
+           if grep LiTTleEnDian conftest$ac_exeext >/dev/null ; then
              if test "$ac_cv_c_bigendian" = unknown; then
                ac_cv_c_bigendian=no
              else
@@ -39169,9 +42960,10 @@ then :
              fi
            fi
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+    conftest$ac_exeext conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $ac_includes_default
 int
@@ -39194,14 +42986,17 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   ac_cv_c_bigendian=no
-else $as_nop
-  ac_cv_c_bigendian=yes
+else case e in #(
+  e) ac_cv_c_bigendian=yes ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
-    fi
+    fi ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5
 printf "%s\n" "$ac_cv_c_bigendian" >&6; }
@@ -39240,8 +43035,8 @@ printf %s "checking for ioctl with POSIX signature... " >&6; }
 if test ${gl_cv_func_ioctl_posix_signature+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/ioctl.h>
               /* On some platforms, ioctl() is declared in <unistd.h>.  */
@@ -39264,11 +43059,13 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_func_ioctl_posix_signature=yes
-else $as_nop
-  gl_cv_func_ioctl_posix_signature=no
+else case e in #(
+  e) gl_cv_func_ioctl_posix_signature=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_func_ioctl_posix_signature" >&5
 printf "%s\n" "$gl_cv_func_ioctl_posix_signature" >&6; }
@@ -39277,17 +43074,18 @@ printf "%s\n" "$gl_cv_func_ioctl_posix_signature" >&6; }
     fi
   fi
 
-  if test $HAVE_IOCTL = 0 || test $REPLACE_IOCTL = 1; then
-
-
-
-
-
-
-
-
-  gltests_LIBOBJS="$gltests_LIBOBJS ioctl.$ac_objext"
 
+     if test $HAVE_IOCTL = 0 || test $REPLACE_IOCTL = 1; then
+  GL_COND_OBJ_IOCTL_TRUE=
+  GL_COND_OBJ_IOCTL_FALSE='#'
+else
+  GL_COND_OBJ_IOCTL_TRUE='#'
+  GL_COND_OBJ_IOCTL_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_IOCTL_TRUE}" && test -z "${GL_COND_OBJ_IOCTL_FALSE}"; then
+    GL_COND_OBJ_IOCTL_TRUE='#'
+    GL_COND_OBJ_IOCTL_FALSE='#'
   fi
 
 
@@ -39298,6 +43096,7 @@ printf "%s\n" "$gl_cv_func_ioctl_posix_signature" >&6; }
 
 
 
+
     if test "$GL_GNULIB_IOCTL" != 1; then
         if test "$GL_GNULIB_IOCTL" = 0; then
       GL_GNULIB_IOCTL=$gl_module_indicator_condition
@@ -39312,2834 +43111,132 @@ printf "%s\n" "$gl_cv_func_ioctl_posix_signature" >&6; }
 
 printf "%s\n" "#define GNULIB_TEST_IOCTL 1" >>confdefs.h
 
-
-
-
-
-
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5
-printf %s "checking for a traditional french locale... " >&6; }
-if test ${gt_cv_locale_fr+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if defined __BEOS__ || defined __HAIKU__
-  return 1;
-#else
-  /* Check whether the given locale name is recognized by the system.  */
-# if defined _WIN32 && !defined __CYGWIN__
-  /* On native Windows, setlocale(category, "") looks at the system settings,
-     not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
-     category of the locale to "C".  */
-  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
-      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
-    return 1;
-# else
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-# endif
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.
-     On MirBSD 10, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
-        || strcmp (cs, "UTF-8") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
-     one byte long. This excludes the UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
-# if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
-     are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-# endif
-  return 0;
-#endif
-}
-
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      case "$host_os" in
-        # Handle native Windows specially, because there setlocale() interprets
-        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
-        # "fr" or "fra" as "French" or "French_France.1252",
-        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
-        # "ja" as "Japanese" or "Japanese_Japan.932",
-        # and similar.
-        mingw*)
-          # Test for the native Windows locale name.
-          if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr=French_France.1252
-          else
-            # None found.
-            gt_cv_locale_fr=none
-          fi
-          ;;
-        *)
-          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
-          # configure script would override the LC_ALL setting. Likewise for
-          # LC_CTYPE, which is also set at the beginning of the configure script.
-          # Test for the usual locale name.
-          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr=fr_FR
-          else
-            # Test for the locale name with explicit encoding suffix.
-            if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_fr=fr_FR.ISO-8859-1
-            else
-              # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
-              if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_fr=fr_FR.ISO8859-1
-              else
-                # Test for the HP-UX locale name.
-                if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                  gt_cv_locale_fr=fr_FR.iso88591
-                else
-                  # Test for the Solaris 7 locale name.
-                  if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                    gt_cv_locale_fr=fr
-                  else
-                    # None found.
-                    gt_cv_locale_fr=none
-                  fi
-                fi
-              fi
-            fi
-          fi
-          ;;
-      esac
-    fi
-    rm -fr conftest*
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5
-printf "%s\n" "$gt_cv_locale_fr" >&6; }
-  LOCALE_FR=$gt_cv_locale_fr
-
-
-
-
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5
-printf %s "checking for a french Unicode locale... " >&6; }
-if test ${gt_cv_locale_fr_utf8+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if !(defined __BEOS__ || defined __HAIKU__)
-  /* Check whether the given locale name is recognized by the system.  */
-# if defined _WIN32 && !defined __CYGWIN__
-  /* On native Windows, setlocale(category, "") looks at the system settings,
-     not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
-     category of the locale to "C".  */
-  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
-      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
-    return 1;
-# else
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-# endif
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
-     two bytes long, with UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 4
-      || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
-    return 1;
-#endif
-#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
-     are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-#endif
-  return 0;
-}
-
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      case "$host_os" in
-        # Handle native Windows specially, because there setlocale() interprets
-        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
-        # "fr" or "fra" as "French" or "French_France.1252",
-        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
-        # "ja" as "Japanese" or "Japanese_Japan.932",
-        # and similar.
-        mingw*)
-          # Test for the hypothetical native Windows locale name.
-          if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr_utf8=French_France.65001
-          else
-            # None found.
-            gt_cv_locale_fr_utf8=none
-          fi
-          ;;
-        *)
-          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
-          # configure script would override the LC_ALL setting. Likewise for
-          # LC_CTYPE, which is also set at the beginning of the configure script.
-          # Test for the usual locale name.
-          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr_utf8=fr_FR
-          else
-            # Test for the locale name with explicit encoding suffix.
-            if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_fr_utf8=fr_FR.UTF-8
-            else
-              # Test for the Solaris 7 locale name.
-              if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_fr_utf8=fr.UTF-8
-              else
-                # None found.
-                gt_cv_locale_fr_utf8=none
-              fi
-            fi
-          fi
-          ;;
-      esac
-    fi
-    rm -fr conftest*
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5
-printf "%s\n" "$gt_cv_locale_fr_utf8" >&6; }
-  LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8
-
-
-
-
-
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a traditional japanese locale" >&5
-printf %s "checking for a traditional japanese locale... " >&6; }
-if test ${gt_cv_locale_ja+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main ()
-{
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if defined __BEOS__ || defined __HAIKU__
-  return 1;
-#else
-  /* Check whether the given locale name is recognized by the system.  */
-# if defined _WIN32 && !defined __CYGWIN__
-  /* On native Windows, setlocale(category, "") looks at the system settings,
-     not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
-     category of the locale to "C".  */
-  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
-      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
-    return 1;
-# else
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-# endif
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.
-     On MirBSD 10, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
-        || strcmp (cs, "UTF-8") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether MB_CUR_MAX is > 1.  This excludes the dysfunctional locales
-     on Cygwin 1.5.x.  */
-  if (MB_CUR_MAX == 1)
-    return 1;
-  /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
-     This excludes the UTF-8 encoding (except on MirBSD).  */
-  {
-    const char *p;
-    t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-    if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
-    for (p = buf; *p != '\0'; p++)
-      if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
-        return 1;
-  }
-  return 0;
-#endif
-}
-
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      case "$host_os" in
-        # Handle native Windows specially, because there setlocale() interprets
-        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
-        # "fr" or "fra" as "French" or "French_France.1252",
-        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
-        # "ja" as "Japanese" or "Japanese_Japan.932",
-        # and similar.
-        mingw*)
-          # Note that on native Windows, the Japanese locale is
-          # Japanese_Japan.932, and CP932 is very different from EUC-JP, so we
-          # cannot use it here.
-          gt_cv_locale_ja=none
-          ;;
-        *)
-          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
-          # configure script would override the LC_ALL setting. Likewise for
-          # LC_CTYPE, which is also set at the beginning of the configure script.
-          # Test for the AIX locale name.
-          if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_ja=ja_JP
-          else
-            # Test for the locale name with explicit encoding suffix.
-            if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_ja=ja_JP.EUC-JP
-            else
-              # Test for the HP-UX, OSF/1, NetBSD locale name.
-              if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_ja=ja_JP.eucJP
-              else
-                # Test for the IRIX, FreeBSD locale name.
-                if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                  gt_cv_locale_ja=ja_JP.EUC
-                else
-                  # Test for the Solaris 7 locale name.
-                  if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                    gt_cv_locale_ja=ja
-                  else
-                    # Special test for NetBSD 1.6.
-                    if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then
-                      gt_cv_locale_ja=ja_JP.eucJP
-                    else
-                      # None found.
-                      gt_cv_locale_ja=none
-                    fi
-                  fi
-                fi
-              fi
-            fi
-          fi
-          ;;
-      esac
-    fi
-    rm -fr conftest*
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_ja" >&5
-printf "%s\n" "$gt_cv_locale_ja" >&6; }
-  LOCALE_JA=$gt_cv_locale_ja
-
-
-
-
-
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a transitional chinese locale" >&5
-printf %s "checking for a transitional chinese locale... " >&6; }
-if test ${gt_cv_locale_zh_CN+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <stdlib.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main ()
-{
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if defined __BEOS__ || defined __HAIKU__
-  return 1;
-#else
-  /* Check whether the given locale name is recognized by the system.  */
-# if defined _WIN32 && !defined __CYGWIN__
-  /* On native Windows, setlocale(category, "") looks at the system settings,
-     not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
-     category of the locale to "C".  */
-  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
-      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
-    return 1;
-# else
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-# endif
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.
-     On MirBSD 10, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
-        || strcmp (cs, "UTF-8") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
-     This excludes the UTF-8 encoding (except on MirBSD).  */
-  {
-    const char *p;
-    t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-    if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
-    for (p = buf; *p != '\0'; p++)
-      if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
-        return 1;
-  }
-  /* Check whether a typical GB18030 multibyte sequence is recognized as a
-     single wide character.  This excludes the GB2312 and GBK encodings.  */
-  if (mblen ("\203\062\332\066", 5) != 4)
-    return 1;
-  return 0;
-#endif
-}
-
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      case "$host_os" in
-        # Handle native Windows specially, because there setlocale() interprets
-        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
-        # "fr" or "fra" as "French" or "French_France.1252",
-        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
-        # "ja" as "Japanese" or "Japanese_Japan.932",
-        # and similar.
-        mingw*)
-          # Test for the hypothetical native Windows locale name.
-          if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_zh_CN=Chinese_China.54936
-          else
-            # None found.
-            gt_cv_locale_zh_CN=none
-          fi
-          ;;
-        solaris2.8)
-          # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are
-          # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK.
-          # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core.
-          gt_cv_locale_zh_CN=none
-          ;;
-        *)
-          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
-          # configure script would override the LC_ALL setting. Likewise for
-          # LC_CTYPE, which is also set at the beginning of the configure script.
-          # Test for the locale name without encoding suffix.
-          if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_zh_CN=zh_CN
-          else
-            # Test for the locale name with explicit encoding suffix.
-            if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_zh_CN=zh_CN.GB18030
-            else
-              # None found.
-              gt_cv_locale_zh_CN=none
-            fi
-          fi
-          ;;
-      esac
-    else
-      # If there was a link error, due to mblen(), the system is so old that
-      # it certainly doesn't have a chinese locale.
-      gt_cv_locale_zh_CN=none
-    fi
-    rm -fr conftest*
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_zh_CN" >&5
-printf "%s\n" "$gt_cv_locale_zh_CN" >&6; }
-  LOCALE_ZH_CN=$gt_cv_locale_zh_CN
-
-
-
-
-
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5
-printf %s "checking for a traditional french locale... " >&6; }
-if test ${gt_cv_locale_fr+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if defined __BEOS__ || defined __HAIKU__
-  return 1;
-#else
-  /* Check whether the given locale name is recognized by the system.  */
-# if defined _WIN32 && !defined __CYGWIN__
-  /* On native Windows, setlocale(category, "") looks at the system settings,
-     not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
-     category of the locale to "C".  */
-  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
-      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
-    return 1;
-# else
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-# endif
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.
-     On MirBSD 10, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
-        || strcmp (cs, "UTF-8") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
-     one byte long. This excludes the UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
-# if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
-     are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-# endif
-  return 0;
-#endif
-}
-
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      case "$host_os" in
-        # Handle native Windows specially, because there setlocale() interprets
-        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
-        # "fr" or "fra" as "French" or "French_France.1252",
-        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
-        # "ja" as "Japanese" or "Japanese_Japan.932",
-        # and similar.
-        mingw*)
-          # Test for the native Windows locale name.
-          if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr=French_France.1252
-          else
-            # None found.
-            gt_cv_locale_fr=none
-          fi
-          ;;
-        *)
-          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
-          # configure script would override the LC_ALL setting. Likewise for
-          # LC_CTYPE, which is also set at the beginning of the configure script.
-          # Test for the usual locale name.
-          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr=fr_FR
-          else
-            # Test for the locale name with explicit encoding suffix.
-            if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_fr=fr_FR.ISO-8859-1
-            else
-              # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
-              if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_fr=fr_FR.ISO8859-1
-              else
-                # Test for the HP-UX locale name.
-                if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                  gt_cv_locale_fr=fr_FR.iso88591
-                else
-                  # Test for the Solaris 7 locale name.
-                  if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                    gt_cv_locale_fr=fr
-                  else
-                    # None found.
-                    gt_cv_locale_fr=none
-                  fi
-                fi
-              fi
-            fi
-          fi
-          ;;
-      esac
-    fi
-    rm -fr conftest*
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5
-printf "%s\n" "$gt_cv_locale_fr" >&6; }
-  LOCALE_FR=$gt_cv_locale_fr
-
-
-
-
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5
-printf %s "checking for a french Unicode locale... " >&6; }
-if test ${gt_cv_locale_fr_utf8+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if !(defined __BEOS__ || defined __HAIKU__)
-  /* Check whether the given locale name is recognized by the system.  */
-# if defined _WIN32 && !defined __CYGWIN__
-  /* On native Windows, setlocale(category, "") looks at the system settings,
-     not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
-     category of the locale to "C".  */
-  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
-      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
-    return 1;
-# else
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-# endif
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
-     two bytes long, with UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 4
-      || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
-    return 1;
-#endif
-#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
-     are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-#endif
-  return 0;
-}
-
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      case "$host_os" in
-        # Handle native Windows specially, because there setlocale() interprets
-        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
-        # "fr" or "fra" as "French" or "French_France.1252",
-        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
-        # "ja" as "Japanese" or "Japanese_Japan.932",
-        # and similar.
-        mingw*)
-          # Test for the hypothetical native Windows locale name.
-          if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr_utf8=French_France.65001
-          else
-            # None found.
-            gt_cv_locale_fr_utf8=none
-          fi
-          ;;
-        *)
-          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
-          # configure script would override the LC_ALL setting. Likewise for
-          # LC_CTYPE, which is also set at the beginning of the configure script.
-          # Test for the usual locale name.
-          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr_utf8=fr_FR
-          else
-            # Test for the locale name with explicit encoding suffix.
-            if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_fr_utf8=fr_FR.UTF-8
-            else
-              # Test for the Solaris 7 locale name.
-              if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_fr_utf8=fr.UTF-8
-              else
-                # None found.
-                gt_cv_locale_fr_utf8=none
-              fi
-            fi
-          fi
-          ;;
-      esac
-    fi
-    rm -fr conftest*
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5
-printf "%s\n" "$gt_cv_locale_fr_utf8" >&6; }
-  LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8
-
-
-
-
-
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a traditional japanese locale" >&5
-printf %s "checking for a traditional japanese locale... " >&6; }
-if test ${gt_cv_locale_ja+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main ()
-{
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if defined __BEOS__ || defined __HAIKU__
-  return 1;
-#else
-  /* Check whether the given locale name is recognized by the system.  */
-# if defined _WIN32 && !defined __CYGWIN__
-  /* On native Windows, setlocale(category, "") looks at the system settings,
-     not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
-     category of the locale to "C".  */
-  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
-      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
-    return 1;
-# else
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-# endif
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.
-     On MirBSD 10, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
-        || strcmp (cs, "UTF-8") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether MB_CUR_MAX is > 1.  This excludes the dysfunctional locales
-     on Cygwin 1.5.x.  */
-  if (MB_CUR_MAX == 1)
-    return 1;
-  /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
-     This excludes the UTF-8 encoding (except on MirBSD).  */
-  {
-    const char *p;
-    t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-    if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
-    for (p = buf; *p != '\0'; p++)
-      if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
-        return 1;
-  }
-  return 0;
-#endif
-}
-
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      case "$host_os" in
-        # Handle native Windows specially, because there setlocale() interprets
-        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
-        # "fr" or "fra" as "French" or "French_France.1252",
-        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
-        # "ja" as "Japanese" or "Japanese_Japan.932",
-        # and similar.
-        mingw*)
-          # Note that on native Windows, the Japanese locale is
-          # Japanese_Japan.932, and CP932 is very different from EUC-JP, so we
-          # cannot use it here.
-          gt_cv_locale_ja=none
-          ;;
-        *)
-          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
-          # configure script would override the LC_ALL setting. Likewise for
-          # LC_CTYPE, which is also set at the beginning of the configure script.
-          # Test for the AIX locale name.
-          if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_ja=ja_JP
-          else
-            # Test for the locale name with explicit encoding suffix.
-            if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_ja=ja_JP.EUC-JP
-            else
-              # Test for the HP-UX, OSF/1, NetBSD locale name.
-              if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_ja=ja_JP.eucJP
-              else
-                # Test for the IRIX, FreeBSD locale name.
-                if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                  gt_cv_locale_ja=ja_JP.EUC
-                else
-                  # Test for the Solaris 7 locale name.
-                  if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                    gt_cv_locale_ja=ja
-                  else
-                    # Special test for NetBSD 1.6.
-                    if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then
-                      gt_cv_locale_ja=ja_JP.eucJP
-                    else
-                      # None found.
-                      gt_cv_locale_ja=none
-                    fi
-                  fi
-                fi
-              fi
-            fi
-          fi
-          ;;
-      esac
-    fi
-    rm -fr conftest*
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_ja" >&5
-printf "%s\n" "$gt_cv_locale_ja" >&6; }
-  LOCALE_JA=$gt_cv_locale_ja
-
-
-
-
-
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a transitional chinese locale" >&5
-printf %s "checking for a transitional chinese locale... " >&6; }
-if test ${gt_cv_locale_zh_CN+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <stdlib.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main ()
-{
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if defined __BEOS__ || defined __HAIKU__
-  return 1;
-#else
-  /* Check whether the given locale name is recognized by the system.  */
-# if defined _WIN32 && !defined __CYGWIN__
-  /* On native Windows, setlocale(category, "") looks at the system settings,
-     not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
-     category of the locale to "C".  */
-  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
-      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
-    return 1;
-# else
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-# endif
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.
-     On MirBSD 10, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
-        || strcmp (cs, "UTF-8") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
-     This excludes the UTF-8 encoding (except on MirBSD).  */
-  {
-    const char *p;
-    t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-    if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
-    for (p = buf; *p != '\0'; p++)
-      if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
-        return 1;
-  }
-  /* Check whether a typical GB18030 multibyte sequence is recognized as a
-     single wide character.  This excludes the GB2312 and GBK encodings.  */
-  if (mblen ("\203\062\332\066", 5) != 4)
-    return 1;
-  return 0;
-#endif
-}
-
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      case "$host_os" in
-        # Handle native Windows specially, because there setlocale() interprets
-        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
-        # "fr" or "fra" as "French" or "French_France.1252",
-        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
-        # "ja" as "Japanese" or "Japanese_Japan.932",
-        # and similar.
-        mingw*)
-          # Test for the hypothetical native Windows locale name.
-          if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_zh_CN=Chinese_China.54936
-          else
-            # None found.
-            gt_cv_locale_zh_CN=none
-          fi
-          ;;
-        solaris2.8)
-          # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are
-          # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK.
-          # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core.
-          gt_cv_locale_zh_CN=none
-          ;;
-        *)
-          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
-          # configure script would override the LC_ALL setting. Likewise for
-          # LC_CTYPE, which is also set at the beginning of the configure script.
-          # Test for the locale name without encoding suffix.
-          if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_zh_CN=zh_CN
-          else
-            # Test for the locale name with explicit encoding suffix.
-            if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_zh_CN=zh_CN.GB18030
-            else
-              # None found.
-              gt_cv_locale_zh_CN=none
-            fi
-          fi
-          ;;
-      esac
-    else
-      # If there was a link error, due to mblen(), the system is so old that
-      # it certainly doesn't have a chinese locale.
-      gt_cv_locale_zh_CN=none
-    fi
-    rm -fr conftest*
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_zh_CN" >&5
-printf "%s\n" "$gt_cv_locale_zh_CN" >&6; }
-  LOCALE_ZH_CN=$gt_cv_locale_zh_CN
-
-
-
-  if test "$ac_cv_header_winsock2_h" = yes; then
-
-
-
-
-
-
-
-
-  gltests_LIBOBJS="$gltests_LIBOBJS listen.$ac_objext"
-
-  fi
-
-
-
-
-
-
-
-
-
-    if test "$GL_GNULIB_LISTEN" != 1; then
-        if test "$GL_GNULIB_LISTEN" = 0; then
-      GL_GNULIB_LISTEN=$gl_module_indicator_condition
-    else
-      GL_GNULIB_LISTEN="($GL_GNULIB_LISTEN || $gl_module_indicator_condition)"
-    fi
-  fi
-
-
-
-
-
-printf "%s\n" "#define GNULIB_TEST_LISTEN 1" >>confdefs.h
-
-
-
-
-
-
-
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5
-printf %s "checking for a traditional french locale... " >&6; }
-if test ${gt_cv_locale_fr+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if defined __BEOS__ || defined __HAIKU__
-  return 1;
-#else
-  /* Check whether the given locale name is recognized by the system.  */
-# if defined _WIN32 && !defined __CYGWIN__
-  /* On native Windows, setlocale(category, "") looks at the system settings,
-     not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
-     category of the locale to "C".  */
-  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
-      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
-    return 1;
-# else
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-# endif
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.
-     On MirBSD 10, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
-        || strcmp (cs, "UTF-8") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
-     one byte long. This excludes the UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
-# if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
-     are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-# endif
-  return 0;
-#endif
-}
-
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      case "$host_os" in
-        # Handle native Windows specially, because there setlocale() interprets
-        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
-        # "fr" or "fra" as "French" or "French_France.1252",
-        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
-        # "ja" as "Japanese" or "Japanese_Japan.932",
-        # and similar.
-        mingw*)
-          # Test for the native Windows locale name.
-          if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr=French_France.1252
-          else
-            # None found.
-            gt_cv_locale_fr=none
-          fi
-          ;;
-        *)
-          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
-          # configure script would override the LC_ALL setting. Likewise for
-          # LC_CTYPE, which is also set at the beginning of the configure script.
-          # Test for the usual locale name.
-          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr=fr_FR
-          else
-            # Test for the locale name with explicit encoding suffix.
-            if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_fr=fr_FR.ISO-8859-1
-            else
-              # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
-              if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_fr=fr_FR.ISO8859-1
-              else
-                # Test for the HP-UX locale name.
-                if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                  gt_cv_locale_fr=fr_FR.iso88591
-                else
-                  # Test for the Solaris 7 locale name.
-                  if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                    gt_cv_locale_fr=fr
-                  else
-                    # None found.
-                    gt_cv_locale_fr=none
-                  fi
-                fi
-              fi
-            fi
-          fi
-          ;;
-      esac
-    fi
-    rm -fr conftest*
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5
-printf "%s\n" "$gt_cv_locale_fr" >&6; }
-  LOCALE_FR=$gt_cv_locale_fr
-
-
-
-
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5
-printf %s "checking for a french Unicode locale... " >&6; }
-if test ${gt_cv_locale_fr_utf8+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if !(defined __BEOS__ || defined __HAIKU__)
-  /* Check whether the given locale name is recognized by the system.  */
-# if defined _WIN32 && !defined __CYGWIN__
-  /* On native Windows, setlocale(category, "") looks at the system settings,
-     not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
-     category of the locale to "C".  */
-  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
-      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
-    return 1;
-# else
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-# endif
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
-     two bytes long, with UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 4
-      || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
-    return 1;
-#endif
-#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
-     are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-#endif
-  return 0;
-}
-
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      case "$host_os" in
-        # Handle native Windows specially, because there setlocale() interprets
-        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
-        # "fr" or "fra" as "French" or "French_France.1252",
-        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
-        # "ja" as "Japanese" or "Japanese_Japan.932",
-        # and similar.
-        mingw*)
-          # Test for the hypothetical native Windows locale name.
-          if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr_utf8=French_France.65001
-          else
-            # None found.
-            gt_cv_locale_fr_utf8=none
-          fi
-          ;;
-        *)
-          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
-          # configure script would override the LC_ALL setting. Likewise for
-          # LC_CTYPE, which is also set at the beginning of the configure script.
-          # Test for the usual locale name.
-          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr_utf8=fr_FR
-          else
-            # Test for the locale name with explicit encoding suffix.
-            if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_fr_utf8=fr_FR.UTF-8
-            else
-              # Test for the Solaris 7 locale name.
-              if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_fr_utf8=fr.UTF-8
-              else
-                # None found.
-                gt_cv_locale_fr_utf8=none
-              fi
-            fi
-          fi
-          ;;
-      esac
-    fi
-    rm -fr conftest*
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5
-printf "%s\n" "$gt_cv_locale_fr_utf8" >&6; }
-  LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8
-
-
-
-
-
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a traditional japanese locale" >&5
-printf %s "checking for a traditional japanese locale... " >&6; }
-if test ${gt_cv_locale_ja+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main ()
-{
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if defined __BEOS__ || defined __HAIKU__
-  return 1;
-#else
-  /* Check whether the given locale name is recognized by the system.  */
-# if defined _WIN32 && !defined __CYGWIN__
-  /* On native Windows, setlocale(category, "") looks at the system settings,
-     not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
-     category of the locale to "C".  */
-  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
-      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
-    return 1;
-# else
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-# endif
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.
-     On MirBSD 10, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
-        || strcmp (cs, "UTF-8") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether MB_CUR_MAX is > 1.  This excludes the dysfunctional locales
-     on Cygwin 1.5.x.  */
-  if (MB_CUR_MAX == 1)
-    return 1;
-  /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
-     This excludes the UTF-8 encoding (except on MirBSD).  */
-  {
-    const char *p;
-    t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-    if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
-    for (p = buf; *p != '\0'; p++)
-      if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
-        return 1;
-  }
-  return 0;
-#endif
-}
-
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      case "$host_os" in
-        # Handle native Windows specially, because there setlocale() interprets
-        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
-        # "fr" or "fra" as "French" or "French_France.1252",
-        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
-        # "ja" as "Japanese" or "Japanese_Japan.932",
-        # and similar.
-        mingw*)
-          # Note that on native Windows, the Japanese locale is
-          # Japanese_Japan.932, and CP932 is very different from EUC-JP, so we
-          # cannot use it here.
-          gt_cv_locale_ja=none
-          ;;
-        *)
-          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
-          # configure script would override the LC_ALL setting. Likewise for
-          # LC_CTYPE, which is also set at the beginning of the configure script.
-          # Test for the AIX locale name.
-          if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_ja=ja_JP
-          else
-            # Test for the locale name with explicit encoding suffix.
-            if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_ja=ja_JP.EUC-JP
-            else
-              # Test for the HP-UX, OSF/1, NetBSD locale name.
-              if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_ja=ja_JP.eucJP
-              else
-                # Test for the IRIX, FreeBSD locale name.
-                if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                  gt_cv_locale_ja=ja_JP.EUC
-                else
-                  # Test for the Solaris 7 locale name.
-                  if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                    gt_cv_locale_ja=ja
-                  else
-                    # Special test for NetBSD 1.6.
-                    if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then
-                      gt_cv_locale_ja=ja_JP.eucJP
-                    else
-                      # None found.
-                      gt_cv_locale_ja=none
-                    fi
-                  fi
-                fi
-              fi
-            fi
-          fi
-          ;;
-      esac
-    fi
-    rm -fr conftest*
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_ja" >&5
-printf "%s\n" "$gt_cv_locale_ja" >&6; }
-  LOCALE_JA=$gt_cv_locale_ja
-
-
-
-
-
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a transitional chinese locale" >&5
-printf %s "checking for a transitional chinese locale... " >&6; }
-if test ${gt_cv_locale_zh_CN+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <stdlib.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main ()
-{
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if defined __BEOS__ || defined __HAIKU__
-  return 1;
-#else
-  /* Check whether the given locale name is recognized by the system.  */
-# if defined _WIN32 && !defined __CYGWIN__
-  /* On native Windows, setlocale(category, "") looks at the system settings,
-     not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
-     category of the locale to "C".  */
-  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
-      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
-    return 1;
-# else
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-# endif
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.
-     On MirBSD 10, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
-        || strcmp (cs, "UTF-8") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
-     This excludes the UTF-8 encoding (except on MirBSD).  */
-  {
-    const char *p;
-    t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-    if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
-    for (p = buf; *p != '\0'; p++)
-      if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
-        return 1;
-  }
-  /* Check whether a typical GB18030 multibyte sequence is recognized as a
-     single wide character.  This excludes the GB2312 and GBK encodings.  */
-  if (mblen ("\203\062\332\066", 5) != 4)
-    return 1;
-  return 0;
-#endif
-}
-
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      case "$host_os" in
-        # Handle native Windows specially, because there setlocale() interprets
-        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
-        # "fr" or "fra" as "French" or "French_France.1252",
-        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
-        # "ja" as "Japanese" or "Japanese_Japan.932",
-        # and similar.
-        mingw*)
-          # Test for the hypothetical native Windows locale name.
-          if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_zh_CN=Chinese_China.54936
-          else
-            # None found.
-            gt_cv_locale_zh_CN=none
-          fi
-          ;;
-        solaris2.8)
-          # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are
-          # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK.
-          # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core.
-          gt_cv_locale_zh_CN=none
-          ;;
-        *)
-          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
-          # configure script would override the LC_ALL setting. Likewise for
-          # LC_CTYPE, which is also set at the beginning of the configure script.
-          # Test for the locale name without encoding suffix.
-          if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_zh_CN=zh_CN
-          else
-            # Test for the locale name with explicit encoding suffix.
-            if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_zh_CN=zh_CN.GB18030
-            else
-              # None found.
-              gt_cv_locale_zh_CN=none
-            fi
-          fi
-          ;;
-      esac
-    else
-      # If there was a link error, due to mblen(), the system is so old that
-      # it certainly doesn't have a chinese locale.
-      gt_cv_locale_zh_CN=none
-    fi
-    rm -fr conftest*
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_zh_CN" >&5
-printf "%s\n" "$gt_cv_locale_zh_CN" >&6; }
-  LOCALE_ZH_CN=$gt_cv_locale_zh_CN
-
-
-
-
-
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a turkish Unicode locale" >&5
-printf %s "checking for a turkish Unicode locale... " >&6; }
-if test ${gt_cv_locale_tr_utf8+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-#include <wctype.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* On BeOS, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  But BeOS does not
-     implement the Turkish upper-/lowercase mappings.  Therefore, let this
-     program return 1 on BeOS.  */
-  /* Check whether the given locale name is recognized by the system.  */
-#if defined _WIN32 && !defined __CYGWIN__
-  /* On native Windows, setlocale(category, "") looks at the system settings,
-     not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
-     category of the locale to "C".  */
-  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
-      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
-    return 1;
-#else
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-#endif
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On Mac OS X 10.3.5 (Darwin 7.5) in the tr_TR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
-#if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
-      return 1;
-  }
-#endif
-#ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
-  /* Check whether in the abbreviation of the eighth month, the second
-     character (should be U+011F: LATIN SMALL LETTER G WITH BREVE) is
-     two bytes long, with UTF-8 encoding.  */
-  t.tm_year = 1992 - 1900; t.tm_mon = 8 - 1; t.tm_mday = 19;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 4
-      || buf[1] != (char) 0xc4 || buf[2] != (char) 0x9f)
-    return 1;
-  /* Check whether the upper-/lowercase mappings are as expected for
-     Turkish.  */
-  if (towupper ('i') != 0x0130 || towlower (0x0130) != 'i'
-      || towupper(0x0131) != 'I' || towlower ('I') != 0x0131)
-    return 1;
-  return 0;
-}
-
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      case "$host_os" in
-        # Handle native Windows specially, because there setlocale() interprets
-        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
-        # "fr" or "fra" as "French" or "French_France.1252",
-        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
-        # "ja" as "Japanese" or "Japanese_Japan.932",
-        # and similar.
-        mingw*)
-          # Test for the hypothetical native Windows locale name.
-          if (LC_ALL=Turkish_Turkey.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_tr_utf8=Turkish_Turkey.65001
-          else
-            # None found.
-            gt_cv_locale_tr_utf8=none
-          fi
-          ;;
-        *)
-          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
-          # configure script would override the LC_ALL setting. Likewise for
-          # LC_CTYPE, which is also set at the beginning of the configure script.
-          # Test for the usual locale name.
-          if (LC_ALL=tr_TR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_tr_utf8=tr_TR
-          else
-            # Test for the locale name with explicit encoding suffix.
-            if (LC_ALL=tr_TR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_tr_utf8=tr_TR.UTF-8
-            else
-              # Test for the Solaris 7 locale name.
-              if (LC_ALL=tr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_tr_utf8=tr.UTF-8
-              else
-                # None found.
-                gt_cv_locale_tr_utf8=none
-              fi
-            fi
-          fi
-          ;;
-      esac
-    else
-      gt_cv_locale_tr_utf8=none
-    fi
-    rm -fr conftest*
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_tr_utf8" >&5
-printf "%s\n" "$gt_cv_locale_tr_utf8" >&6; }
-  LOCALE_TR_UTF8=$gt_cv_locale_tr_utf8
-
-
-
-
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5
-printf %s "checking for a french Unicode locale... " >&6; }
-if test ${gt_cv_locale_fr_utf8+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if !(defined __BEOS__ || defined __HAIKU__)
-  /* Check whether the given locale name is recognized by the system.  */
-# if defined _WIN32 && !defined __CYGWIN__
-  /* On native Windows, setlocale(category, "") looks at the system settings,
-     not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
-     category of the locale to "C".  */
-  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
-      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
-    return 1;
-# else
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-# endif
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
-     two bytes long, with UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 4
-      || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
-    return 1;
-#endif
-#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
-     are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-#endif
-  return 0;
-}
-
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      case "$host_os" in
-        # Handle native Windows specially, because there setlocale() interprets
-        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
-        # "fr" or "fra" as "French" or "French_France.1252",
-        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
-        # "ja" as "Japanese" or "Japanese_Japan.932",
-        # and similar.
-        mingw*)
-          # Test for the hypothetical native Windows locale name.
-          if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr_utf8=French_France.65001
-          else
-            # None found.
-            gt_cv_locale_fr_utf8=none
-          fi
-          ;;
-        *)
-          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
-          # configure script would override the LC_ALL setting. Likewise for
-          # LC_CTYPE, which is also set at the beginning of the configure script.
-          # Test for the usual locale name.
-          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr_utf8=fr_FR
-          else
-            # Test for the locale name with explicit encoding suffix.
-            if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_fr_utf8=fr_FR.UTF-8
-            else
-              # Test for the Solaris 7 locale name.
-              if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_fr_utf8=fr.UTF-8
-              else
-                # None found.
-                gt_cv_locale_fr_utf8=none
-              fi
-            fi
-          fi
-          ;;
-      esac
-    fi
-    rm -fr conftest*
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5
-printf "%s\n" "$gt_cv_locale_fr_utf8" >&6; }
-  LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8
-
-
-
-
-
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5
-printf %s "checking for a traditional french locale... " >&6; }
-if test ${gt_cv_locale_fr+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if defined __BEOS__ || defined __HAIKU__
-  return 1;
-#else
-  /* Check whether the given locale name is recognized by the system.  */
-# if defined _WIN32 && !defined __CYGWIN__
-  /* On native Windows, setlocale(category, "") looks at the system settings,
-     not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
-     category of the locale to "C".  */
-  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
-      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
-    return 1;
-# else
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-# endif
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.
-     On MirBSD 10, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
-        || strcmp (cs, "UTF-8") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
-     one byte long. This excludes the UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
-# if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
-     are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-# endif
-  return 0;
-#endif
-}
-
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      case "$host_os" in
-        # Handle native Windows specially, because there setlocale() interprets
-        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
-        # "fr" or "fra" as "French" or "French_France.1252",
-        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
-        # "ja" as "Japanese" or "Japanese_Japan.932",
-        # and similar.
-        mingw*)
-          # Test for the native Windows locale name.
-          if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr=French_France.1252
-          else
-            # None found.
-            gt_cv_locale_fr=none
-          fi
-          ;;
-        *)
-          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
-          # configure script would override the LC_ALL setting. Likewise for
-          # LC_CTYPE, which is also set at the beginning of the configure script.
-          # Test for the usual locale name.
-          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr=fr_FR
-          else
-            # Test for the locale name with explicit encoding suffix.
-            if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_fr=fr_FR.ISO-8859-1
-            else
-              # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
-              if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_fr=fr_FR.ISO8859-1
-              else
-                # Test for the HP-UX locale name.
-                if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                  gt_cv_locale_fr=fr_FR.iso88591
-                else
-                  # Test for the Solaris 7 locale name.
-                  if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                    gt_cv_locale_fr=fr
-                  else
-                    # None found.
-                    gt_cv_locale_fr=none
-                  fi
-                fi
-              fi
-            fi
-          fi
-          ;;
-      esac
-    fi
-    rm -fr conftest*
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5
-printf "%s\n" "$gt_cv_locale_fr" >&6; }
-  LOCALE_FR=$gt_cv_locale_fr
-
-
-
-
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5
-printf %s "checking for a french Unicode locale... " >&6; }
-if test ${gt_cv_locale_fr_utf8+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if !(defined __BEOS__ || defined __HAIKU__)
-  /* Check whether the given locale name is recognized by the system.  */
-# if defined _WIN32 && !defined __CYGWIN__
-  /* On native Windows, setlocale(category, "") looks at the system settings,
-     not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
-     category of the locale to "C".  */
-  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
-      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
-    return 1;
-# else
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-# endif
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
-     two bytes long, with UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 4
-      || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
-    return 1;
-#endif
-#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
-     are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-#endif
-  return 0;
-}
-
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      case "$host_os" in
-        # Handle native Windows specially, because there setlocale() interprets
-        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
-        # "fr" or "fra" as "French" or "French_France.1252",
-        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
-        # "ja" as "Japanese" or "Japanese_Japan.932",
-        # and similar.
-        mingw*)
-          # Test for the hypothetical native Windows locale name.
-          if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr_utf8=French_France.65001
-          else
-            # None found.
-            gt_cv_locale_fr_utf8=none
-          fi
-          ;;
-        *)
-          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
-          # configure script would override the LC_ALL setting. Likewise for
-          # LC_CTYPE, which is also set at the beginning of the configure script.
-          # Test for the usual locale name.
-          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr_utf8=fr_FR
-          else
-            # Test for the locale name with explicit encoding suffix.
-            if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_fr_utf8=fr_FR.UTF-8
-            else
-              # Test for the Solaris 7 locale name.
-              if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_fr_utf8=fr.UTF-8
-              else
-                # None found.
-                gt_cv_locale_fr_utf8=none
-              fi
-            fi
-          fi
-          ;;
-      esac
-    fi
-    rm -fr conftest*
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5
-printf "%s\n" "$gt_cv_locale_fr_utf8" >&6; }
-  LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8
-
-
-
-
-
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a traditional japanese locale" >&5
-printf %s "checking for a traditional japanese locale... " >&6; }
-if test ${gt_cv_locale_ja+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main ()
-{
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if defined __BEOS__ || defined __HAIKU__
-  return 1;
-#else
-  /* Check whether the given locale name is recognized by the system.  */
-# if defined _WIN32 && !defined __CYGWIN__
-  /* On native Windows, setlocale(category, "") looks at the system settings,
-     not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
-     category of the locale to "C".  */
-  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
-      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
-    return 1;
-# else
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-# endif
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.
-     On MirBSD 10, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
-        || strcmp (cs, "UTF-8") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether MB_CUR_MAX is > 1.  This excludes the dysfunctional locales
-     on Cygwin 1.5.x.  */
-  if (MB_CUR_MAX == 1)
-    return 1;
-  /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
-     This excludes the UTF-8 encoding (except on MirBSD).  */
-  {
-    const char *p;
-    t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-    if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
-    for (p = buf; *p != '\0'; p++)
-      if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
-        return 1;
-  }
-  return 0;
-#endif
-}
-
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      case "$host_os" in
-        # Handle native Windows specially, because there setlocale() interprets
-        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
-        # "fr" or "fra" as "French" or "French_France.1252",
-        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
-        # "ja" as "Japanese" or "Japanese_Japan.932",
-        # and similar.
-        mingw*)
-          # Note that on native Windows, the Japanese locale is
-          # Japanese_Japan.932, and CP932 is very different from EUC-JP, so we
-          # cannot use it here.
-          gt_cv_locale_ja=none
-          ;;
-        *)
-          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
-          # configure script would override the LC_ALL setting. Likewise for
-          # LC_CTYPE, which is also set at the beginning of the configure script.
-          # Test for the AIX locale name.
-          if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_ja=ja_JP
-          else
-            # Test for the locale name with explicit encoding suffix.
-            if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_ja=ja_JP.EUC-JP
-            else
-              # Test for the HP-UX, OSF/1, NetBSD locale name.
-              if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_ja=ja_JP.eucJP
-              else
-                # Test for the IRIX, FreeBSD locale name.
-                if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                  gt_cv_locale_ja=ja_JP.EUC
-                else
-                  # Test for the Solaris 7 locale name.
-                  if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                    gt_cv_locale_ja=ja
-                  else
-                    # Special test for NetBSD 1.6.
-                    if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then
-                      gt_cv_locale_ja=ja_JP.eucJP
-                    else
-                      # None found.
-                      gt_cv_locale_ja=none
-                    fi
-                  fi
-                fi
-              fi
-            fi
-          fi
-          ;;
-      esac
-    fi
-    rm -fr conftest*
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_ja" >&5
-printf "%s\n" "$gt_cv_locale_ja" >&6; }
-  LOCALE_JA=$gt_cv_locale_ja
-
-
-
-
-
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a transitional chinese locale" >&5
-printf %s "checking for a transitional chinese locale... " >&6; }
-if test ${gt_cv_locale_zh_CN+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <stdlib.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main ()
-{
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if defined __BEOS__ || defined __HAIKU__
-  return 1;
-#else
-  /* Check whether the given locale name is recognized by the system.  */
-# if defined _WIN32 && !defined __CYGWIN__
-  /* On native Windows, setlocale(category, "") looks at the system settings,
-     not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
-     category of the locale to "C".  */
-  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
-      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
-    return 1;
-# else
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-# endif
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.
-     On MirBSD 10, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
-        || strcmp (cs, "UTF-8") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
-     This excludes the UTF-8 encoding (except on MirBSD).  */
-  {
-    const char *p;
-    t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-    if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
-    for (p = buf; *p != '\0'; p++)
-      if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
-        return 1;
-  }
-  /* Check whether a typical GB18030 multibyte sequence is recognized as a
-     single wide character.  This excludes the GB2312 and GBK encodings.  */
-  if (mblen ("\203\062\332\066", 5) != 4)
-    return 1;
-  return 0;
-#endif
-}
-
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      case "$host_os" in
-        # Handle native Windows specially, because there setlocale() interprets
-        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
-        # "fr" or "fra" as "French" or "French_France.1252",
-        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
-        # "ja" as "Japanese" or "Japanese_Japan.932",
-        # and similar.
-        mingw*)
-          # Test for the hypothetical native Windows locale name.
-          if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_zh_CN=Chinese_China.54936
-          else
-            # None found.
-            gt_cv_locale_zh_CN=none
-          fi
-          ;;
-        solaris2.8)
-          # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are
-          # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK.
-          # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core.
-          gt_cv_locale_zh_CN=none
-          ;;
-        *)
-          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
-          # configure script would override the LC_ALL setting. Likewise for
-          # LC_CTYPE, which is also set at the beginning of the configure script.
-          # Test for the locale name without encoding suffix.
-          if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_zh_CN=zh_CN
-          else
-            # Test for the locale name with explicit encoding suffix.
-            if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_zh_CN=zh_CN.GB18030
-            else
-              # None found.
-              gt_cv_locale_zh_CN=none
-            fi
-          fi
-          ;;
-      esac
-    else
-      # If there was a link error, due to mblen(), the system is so old that
-      # it certainly doesn't have a chinese locale.
-      gt_cv_locale_zh_CN=none
-    fi
-    rm -fr conftest*
-
+
+
+
+
+
+
+
+
+
+
+
+
+     if test "$ac_cv_header_winsock2_h" = yes; then
+  GL_COND_OBJ_LISTEN_TRUE=
+  GL_COND_OBJ_LISTEN_FALSE='#'
+else
+  GL_COND_OBJ_LISTEN_TRUE='#'
+  GL_COND_OBJ_LISTEN_FALSE=
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_zh_CN" >&5
-printf "%s\n" "$gt_cv_locale_zh_CN" >&6; }
-  LOCALE_ZH_CN=$gt_cv_locale_zh_CN
+:
+    if test -z "${GL_COND_OBJ_LISTEN_TRUE}" && test -z "${GL_COND_OBJ_LISTEN_FALSE}"; then
+    GL_COND_OBJ_LISTEN_TRUE='#'
+    GL_COND_OBJ_LISTEN_FALSE='#'
+  fi
 
 
 
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5
-printf %s "checking for a french Unicode locale... " >&6; }
-if test ${gt_cv_locale_fr_utf8+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if !(defined __BEOS__ || defined __HAIKU__)
-  /* Check whether the given locale name is recognized by the system.  */
-# if defined _WIN32 && !defined __CYGWIN__
-  /* On native Windows, setlocale(category, "") looks at the system settings,
-     not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
-     category of the locale to "C".  */
-  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
-      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
-    return 1;
-# else
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-# endif
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
-     two bytes long, with UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 4
-      || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
-    return 1;
-#endif
-#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
-     are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-#endif
-  return 0;
-}
 
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      case "$host_os" in
-        # Handle native Windows specially, because there setlocale() interprets
-        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
-        # "fr" or "fra" as "French" or "French_France.1252",
-        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
-        # "ja" as "Japanese" or "Japanese_Japan.932",
-        # and similar.
-        mingw*)
-          # Test for the hypothetical native Windows locale name.
-          if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr_utf8=French_France.65001
-          else
-            # None found.
-            gt_cv_locale_fr_utf8=none
-          fi
-          ;;
-        *)
-          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
-          # configure script would override the LC_ALL setting. Likewise for
-          # LC_CTYPE, which is also set at the beginning of the configure script.
-          # Test for the usual locale name.
-          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr_utf8=fr_FR
-          else
-            # Test for the locale name with explicit encoding suffix.
-            if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_fr_utf8=fr_FR.UTF-8
-            else
-              # Test for the Solaris 7 locale name.
-              if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_fr_utf8=fr.UTF-8
-              else
-                # None found.
-                gt_cv_locale_fr_utf8=none
-              fi
-            fi
-          fi
-          ;;
-      esac
+
+
+
+    if test "$GL_GNULIB_LISTEN" != 1; then
+        if test "$GL_GNULIB_LISTEN" = 0; then
+      GL_GNULIB_LISTEN=$gl_module_indicator_condition
+    else
+      GL_GNULIB_LISTEN="($GL_GNULIB_LISTEN || $gl_module_indicator_condition)"
     fi
-    rm -fr conftest*
+  fi
 
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5
-printf "%s\n" "$gt_cv_locale_fr_utf8" >&6; }
-  LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8
 
 
 
 
+printf "%s\n" "#define GNULIB_TEST_LISTEN 1" >>confdefs.h
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a transitional chinese locale" >&5
-printf %s "checking for a transitional chinese locale... " >&6; }
-if test ${gt_cv_locale_zh_CN+y}
+
+
+
+
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for newlocale" >&5
+printf %s "checking for newlocale... " >&6; }
+if test ${gl_cv_onwards_func_newlocale+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
+else case e in #(
+  e)
+  exec 9>&6 6>/dev/null
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+       case "$host_os" in
 
-#include <locale.h>
-#include <stdlib.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main ()
-{
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if defined __BEOS__ || defined __HAIKU__
-  return 1;
-#else
-  /* Check whether the given locale name is recognized by the system.  */
-# if defined _WIN32 && !defined __CYGWIN__
-  /* On native Windows, setlocale(category, "") looks at the system settings,
-     not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
-     category of the locale to "C".  */
-  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
-      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
-    return 1;
-# else
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-# endif
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.
-     On MirBSD 10, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
-        || strcmp (cs, "UTF-8") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
-     This excludes the UTF-8 encoding (except on MirBSD).  */
-  {
-    const char *p;
-    t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-    if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
-    for (p = buf; *p != '\0'; p++)
-      if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
-        return 1;
-  }
-  /* Check whether a typical GB18030 multibyte sequence is recognized as a
-     single wide character.  This excludes the GB2312 and GBK encodings.  */
-  if (mblen ("\203\062\332\066", 5) != 4)
-    return 1;
-  return 0;
-#endif
-}
+         linux*-android*)
+           ac_fn_check_decl "$LINENO" "newlocale" "ac_cv_have_decl_newlocale" "#include <locale.h>
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_newlocale" = xyes
+then :
 
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      case "$host_os" in
-        # Handle native Windows specially, because there setlocale() interprets
-        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
-        # "fr" or "fra" as "French" or "French_France.1252",
-        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
-        # "ja" as "Japanese" or "Japanese_Japan.932",
-        # and similar.
-        mingw*)
-          # Test for the hypothetical native Windows locale name.
-          if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_zh_CN=Chinese_China.54936
-          else
-            # None found.
-            gt_cv_locale_zh_CN=none
-          fi
-          ;;
-        solaris2.8)
-          # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are
-          # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK.
-          # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core.
-          gt_cv_locale_zh_CN=none
-          ;;
-        *)
-          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
-          # configure script would override the LC_ALL setting. Likewise for
-          # LC_CTYPE, which is also set at the beginning of the configure script.
-          # Test for the locale name without encoding suffix.
-          if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_zh_CN=zh_CN
-          else
-            # Test for the locale name with explicit encoding suffix.
-            if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_zh_CN=zh_CN.GB18030
-            else
-              # None found.
-              gt_cv_locale_zh_CN=none
-            fi
-          fi
-          ;;
-      esac
-    else
-      # If there was a link error, due to mblen(), the system is so old that
-      # it certainly doesn't have a chinese locale.
-      gt_cv_locale_zh_CN=none
-    fi
-    rm -fr conftest*
+fi
+           if test $ac_cv_have_decl_newlocale = yes; then
+             ac_fn_c_check_func "$LINENO" "newlocale" "ac_cv_func_newlocale"
+if test "x$ac_cv_func_newlocale" = xyes
+then :
 
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_zh_CN" >&5
-printf "%s\n" "$gt_cv_locale_zh_CN" >&6; }
-  LOCALE_ZH_CN=$gt_cv_locale_zh_CN
+
+             if test $ac_cv_func_newlocale = yes; then
+               gl_cv_onwards_func_newlocale=yes
+             else
+                                                            gl_cv_onwards_func_newlocale='future OS version'
+             fi
+           else
+             gl_cv_onwards_func_newlocale='future OS version'
+           fi
+           ;;
+
+
+         *)
+           ac_fn_c_check_func "$LINENO" "newlocale" "ac_cv_func_newlocale"
+if test "x$ac_cv_func_newlocale" = xyes
+then :
+
+fi
+
+           gl_cv_onwards_func_newlocale=$ac_cv_func_newlocale
+           ;;
+
+       esac
+
+  exec 6>&9 9>&-
+
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_onwards_func_newlocale" >&5
+printf "%s\n" "$gl_cv_onwards_func_newlocale" >&6; }
+
+  case "$gl_cv_onwards_func_newlocale" in
+    future*) ac_cv_func_newlocale=no ;;
+    *)       ac_cv_func_newlocale=$gl_cv_onwards_func_newlocale ;;
+  esac
+  if test $ac_cv_func_newlocale = yes; then
+
+printf "%s\n" "#define HAVE_NEWLOCALE 1" >>confdefs.h
+
+  fi
+
+
+
+
+
+
+
+
+
 
 
 
@@ -42159,22 +43256,28 @@ printf "%s\n" "$gt_cv_locale_zh_CN" >&6; }
 
  # Solaris 2.5.1 needs -lposix4 to get the nanosleep function.
  # Solaris 7 prefers the library name -lrt to the obsolescent name -lposix4.
LIB_NANOSLEEP=
NANOSLEEP_LIB=
 
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing nanosleep" >&5
 printf %s "checking for library containing nanosleep... " >&6; }
 if test ${ac_cv_search_nanosleep+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_func_search_save_LIBS=$LIBS
+else case e in #(
+  e) ac_func_search_save_LIBS=$LIBS
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-char nanosleep ();
+   builtin and then its argument prototype would still apply.
+   The 'extern "C"' is for builds by C++ compilers;
+   although this is not generally supported in C code supporting it here
+   has little cost and some practical benefit (sr 110532).  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char nanosleep (void);
 int
 main (void)
 {
@@ -42205,11 +43308,13 @@ done
 if test ${ac_cv_search_nanosleep+y}
 then :
 
-else $as_nop
-  ac_cv_search_nanosleep=no
+else case e in #(
+  e) ac_cv_search_nanosleep=no ;;
+esac
 fi
 rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
+LIBS=$ac_func_search_save_LIBS ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_nanosleep" >&5
 printf "%s\n" "$ac_cv_search_nanosleep" >&6; }
@@ -42218,7 +43323,7 @@ if test "$ac_res" != no
 then :
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
   test "$ac_cv_search_nanosleep" = "none required" ||
-                 LIB_NANOSLEEP=$ac_cv_search_nanosleep
+                 NANOSLEEP_LIB=$ac_cv_search_nanosleep
 fi
 
  if test "x$ac_cv_search_nanosleep" != xno; then
@@ -42237,11 +43342,12 @@ printf %s "checking for working nanosleep... " >&6; }
 if test ${gl_cv_func_nanosleep+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
      if test "$cross_compiling" = yes
 then :
-  case "$host_os" in           linux*) # Guess it halfway works when the kernel is Linux.
+  case "$host_os" in
+          linux*) # Guess it halfway works when the kernel is Linux.
             gl_cv_func_nanosleep='guessing no (mishandles large arguments)' ;;
           mingw*) # Guess no on native Windows.
             gl_cv_func_nanosleep='guessing no' ;;
@@ -42249,16 +43355,13 @@ then :
             gl_cv_func_nanosleep="$gl_cross_guess_normal" ;;
         esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
           #include <errno.h>
           #include <limits.h>
           #include <signal.h>
-          #if HAVE_SYS_TIME_H
-           #include <sys/time.h>
-          #endif
           #include <time.h>
           #include <unistd.h>
           #define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
@@ -42309,6 +43412,12 @@ else $as_nop
             #else /* A simpler test for native Windows.  */
             if (nanosleep (&ts_sleep, &ts_remaining) < 0)
               return 3;
+            /* Test for 32-bit mingw bug: negative nanosecond values do not
+               cause failure.  */
+            ts_sleep.tv_sec = 1;
+            ts_sleep.tv_nsec = -1;
+            if (nanosleep (&ts_sleep, &ts_remaining) != -1)
+              return 7;
             #endif
             return 0;
           }
@@ -42316,15 +43425,21 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_nanosleep=yes
-else $as_nop
-  case $? in         4|5|6) gl_cv_func_nanosleep='no (mishandles large arguments)';;         *)   gl_cv_func_nanosleep=no;;
-        esac
+else case e in #(
+  e) case $? in
+        4|5|6) gl_cv_func_nanosleep='no (mishandles large arguments)' ;;
+        7)     gl_cv_func_nanosleep='no (mishandles negative tv_nsec)' ;;
+        *)     gl_cv_func_nanosleep=no ;;
+        esac ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_nanosleep" >&5
 printf "%s\n" "$gl_cv_func_nanosleep" >&6; }
@@ -42340,15 +43455,6 @@ printf "%s\n" "$gl_cv_func_nanosleep" >&6; }
 printf "%s\n" "#define HAVE_BUG_BIG_NANOSLEEP 1" >>confdefs.h
 
            ;;
-         *)
-           # The replacement uses select(). Add $LIBSOCKET to $LIB_NANOSLEEP.
-           for ac_lib in $LIBSOCKET; do
-             case " $LIB_NANOSLEEP " in
-               *" $ac_lib "*) ;;
-               *) LIB_NANOSLEEP="$LIB_NANOSLEEP $ac_lib";;
-             esac
-           done
-           ;;
        esac
        ;;
    esac
@@ -42357,21 +43463,22 @@ printf "%s\n" "#define HAVE_BUG_BIG_NANOSLEEP 1" >>confdefs.h
  fi
  LIBS=$nanosleep_save_libs
 
-  if test $HAVE_NANOSLEEP = 0 || test $REPLACE_NANOSLEEP = 1; then
-
-
-
-
-
-
-
-
-  gltests_LIBOBJS="$gltests_LIBOBJS nanosleep.$ac_objext"
+ # For backward compatibility.
+ LIB_NANOSLEEP="$NANOSLEEP_LIB"
 
 
 
-  :
-
+     if test $HAVE_NANOSLEEP = 0 || test $REPLACE_NANOSLEEP = 1; then
+  GL_COND_OBJ_NANOSLEEP_TRUE=
+  GL_COND_OBJ_NANOSLEEP_FALSE='#'
+else
+  GL_COND_OBJ_NANOSLEEP_TRUE='#'
+  GL_COND_OBJ_NANOSLEEP_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_NANOSLEEP_TRUE}" && test -z "${GL_COND_OBJ_NANOSLEEP_FALSE}"; then
+    GL_COND_OBJ_NANOSLEEP_TRUE='#'
+    GL_COND_OBJ_NANOSLEEP_FALSE='#'
   fi
 
 
@@ -42382,6 +43489,7 @@ printf "%s\n" "#define HAVE_BUG_BIG_NANOSLEEP 1" >>confdefs.h
 
 
 
+
     if test "$GL_GNULIB_NANOSLEEP" != 1; then
         if test "$GL_GNULIB_NANOSLEEP" = 0; then
       GL_GNULIB_NANOSLEEP=$gl_module_indicator_condition
@@ -42405,8 +43513,8 @@ printf %s "checking whether <netinet/in.h> is self-contained... " >&6; }
 if test ${gl_cv_header_netinet_in_h_selfcontained+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <netinet/in.h>
@@ -42421,18 +43529,20 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_header_netinet_in_h_selfcontained=yes
-else $as_nop
-  gl_cv_header_netinet_in_h_selfcontained=no
+else case e in #(
+  e) gl_cv_header_netinet_in_h_selfcontained=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_header_netinet_in_h_selfcontained" >&5
 printf "%s\n" "$gl_cv_header_netinet_in_h_selfcontained" >&6; }
   if test $gl_cv_header_netinet_in_h_selfcontained = yes; then
-    NETINET_IN_H=''
+    GL_GENERATE_NETINET_IN_H=false
   else
-    NETINET_IN_H='netinet/in.h'
+    GL_GENERATE_NETINET_IN_H=true
     ac_fn_c_check_header_compile "$LINENO" "netinet/in.h" "ac_cv_header_netinet_in_h" "$ac_includes_default"
 if test "x$ac_cv_header_netinet_in_h" = xyes
 then :
@@ -42457,8 +43567,8 @@ printf %s "checking absolute name of <netinet/in.h>... " >&6; }
 if test ${gl_cv_next_netinet_in_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
              if test $ac_cv_header_netinet_in_h = yes; then
 
 
@@ -42493,320 +43603,213 @@ _ACEOF
 
         gl_cv_absolute_netinet_in_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
   sed -n "$gl_absolute_header_sed"`
-
-           gl_header=$gl_cv_absolute_netinet_in_h
-           gl_cv_next_netinet_in_h='"'$gl_header'"'
-          else
-               gl_cv_next_netinet_in_h='<'netinet/in.h'>'
-             fi
-
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_netinet_in_h" >&5
-printf "%s\n" "$gl_cv_next_netinet_in_h" >&6; }
-     fi
-     NEXT_NETINET_IN_H=$gl_cv_next_netinet_in_h
-
-     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
-       gl_next_as_first_directive='<'netinet/in.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_netinet_in_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H=$gl_next_as_first_directive
-
-
-
-
-    if test $ac_cv_header_netinet_in_h = yes; then
-      HAVE_NETINET_IN_H=1
-    else
-      HAVE_NETINET_IN_H=0
-    fi
-
-  fi
-
-   if test -n "$NETINET_IN_H"; then
-  GL_GENERATE_NETINET_IN_H_TRUE=
-  GL_GENERATE_NETINET_IN_H_FALSE='#'
-else
-  GL_GENERATE_NETINET_IN_H_TRUE='#'
-  GL_GENERATE_NETINET_IN_H_FALSE=
-fi
-
-
-
-
-
-
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5
-printf %s "checking for a traditional french locale... " >&6; }
-if test ${gt_cv_locale_fr+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if defined __BEOS__ || defined __HAIKU__
-  return 1;
-#else
-  /* Check whether the given locale name is recognized by the system.  */
-# if defined _WIN32 && !defined __CYGWIN__
-  /* On native Windows, setlocale(category, "") looks at the system settings,
-     not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
-     category of the locale to "C".  */
-  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
-      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
-    return 1;
-# else
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-# endif
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.
-     On MirBSD 10, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
-        || strcmp (cs, "UTF-8") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
-     one byte long. This excludes the UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
-# if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
-     are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-# endif
-  return 0;
-#endif
-}
-
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      case "$host_os" in
-        # Handle native Windows specially, because there setlocale() interprets
-        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
-        # "fr" or "fra" as "French" or "French_France.1252",
-        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
-        # "ja" as "Japanese" or "Japanese_Japan.932",
-        # and similar.
-        mingw*)
-          # Test for the native Windows locale name.
-          if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr=French_France.1252
-          else
-            # None found.
-            gt_cv_locale_fr=none
-          fi
-          ;;
-        *)
-          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
-          # configure script would override the LC_ALL setting. Likewise for
-          # LC_CTYPE, which is also set at the beginning of the configure script.
-          # Test for the usual locale name.
-          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr=fr_FR
+
+          gl_header=$gl_cv_absolute_netinet_in_h
+          gl_cv_next_netinet_in_h='"'$gl_header'"'
           else
-            # Test for the locale name with explicit encoding suffix.
-            if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_fr=fr_FR.ISO-8859-1
-            else
-              # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
-              if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_fr=fr_FR.ISO8859-1
-              else
-                # Test for the HP-UX locale name.
-                if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                  gt_cv_locale_fr=fr_FR.iso88591
-                else
-                  # Test for the Solaris 7 locale name.
-                  if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                    gt_cv_locale_fr=fr
-                  else
-                    # None found.
-                    gt_cv_locale_fr=none
-                  fi
-                fi
-              fi
-            fi
-          fi
+               gl_cv_next_netinet_in_h='<'netinet/in.h'>'
+             fi
+
           ;;
-      esac
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_netinet_in_h" >&5
+printf "%s\n" "$gl_cv_next_netinet_in_h" >&6; }
+     fi
+     NEXT_NETINET_IN_H=$gl_cv_next_netinet_in_h
+
+     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
+       gl_next_as_first_directive='<'netinet/in.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_netinet_in_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H=$gl_next_as_first_directive
+
+
+
+
+    if test $ac_cv_header_netinet_in_h = yes; then
+      HAVE_NETINET_IN_H=1
+    else
+      HAVE_NETINET_IN_H=0
     fi
-    rm -fr conftest*
 
+  fi
+
+
+
+
+
+  case "$GL_GENERATE_NETINET_IN_H" in
+    false) NETINET_IN_H='' ;;
+    true)
+                  if test -z "$NETINET_IN_H"; then
+        NETINET_IN_H="${gl_source_base_prefix}netinet/in.h"
+      fi
+      ;;
+    *) echo "*** GL_GENERATE_NETINET_IN_H is not set correctly" 1>&2; exit 1 ;;
+  esac
+
+
+     if $GL_GENERATE_NETINET_IN_H; then
+  GL_GENERATE_NETINET_IN_H_TRUE=
+  GL_GENERATE_NETINET_IN_H_FALSE='#'
+else
+  GL_GENERATE_NETINET_IN_H_TRUE='#'
+  GL_GENERATE_NETINET_IN_H_FALSE=
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5
-printf "%s\n" "$gt_cv_locale_fr" >&6; }
-  LOCALE_FR=$gt_cv_locale_fr
+:
+    if test -z "${GL_GENERATE_NETINET_IN_H_TRUE}" && test -z "${GL_GENERATE_NETINET_IN_H_FALSE}"; then
+    GL_GENERATE_NETINET_IN_H_TRUE='#'
+    GL_GENERATE_NETINET_IN_H_FALSE='#'
+  fi
 
 
 
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5
-printf %s "checking for a french Unicode locale... " >&6; }
-if test ${gt_cv_locale_fr_utf8+y}
+
+
+
+
+
+
+
+
+
+
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for uselocale" >&5
+printf %s "checking for uselocale... " >&6; }
+if test ${gl_cv_onwards_func_uselocale+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
+else case e in #(
+  e)
+  exec 9>&6 6>/dev/null
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+       case "$host_os" in
+
+         linux*-android*)
+           ac_fn_check_decl "$LINENO" "uselocale" "ac_cv_have_decl_uselocale" "#include <locale.h>
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_uselocale" = xyes
+then :
+
+fi
+           if test $ac_cv_have_decl_uselocale = yes; then
+             ac_fn_c_check_func "$LINENO" "uselocale" "ac_cv_func_uselocale"
+if test "x$ac_cv_func_uselocale" = xyes
+then :
+
+fi
+
+             if test $ac_cv_func_uselocale = yes; then
+               gl_cv_onwards_func_uselocale=yes
+             else
+                                                            gl_cv_onwards_func_uselocale='future OS version'
+             fi
+           else
+             gl_cv_onwards_func_uselocale='future OS version'
+           fi
+           ;;
+
+
+         *)
+           ac_fn_c_check_func "$LINENO" "uselocale" "ac_cv_func_uselocale"
+if test "x$ac_cv_func_uselocale" = xyes
+then :
+
+fi
+
+           gl_cv_onwards_func_uselocale=$ac_cv_func_uselocale
+           ;;
+
+       esac
+
+  exec 6>&9 9>&-
+
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_onwards_func_uselocale" >&5
+printf "%s\n" "$gl_cv_onwards_func_uselocale" >&6; }
+
+  case "$gl_cv_onwards_func_uselocale" in
+    future*) ac_cv_func_uselocale=no ;;
+    *)       ac_cv_func_uselocale=$gl_cv_onwards_func_uselocale ;;
+  esac
+  if test $ac_cv_func_uselocale = yes; then
+
+printf "%s\n" "#define HAVE_USELOCALE 1" >>confdefs.h
+
+  fi
+
+
+
+          if test $ac_cv_func_uselocale = yes; then
+
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether uselocale works" >&5
+printf %s "checking whether uselocale works... " >&6; }
+if test ${gt_cv_func_uselocale_works+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test "$cross_compiling" = yes
+then :
+  # Guess no on AIX and z/OS, yes otherwise.
+          case "$host_os" in
+            aix* | openedition*) gt_cv_func_uselocale_works="guessing no" ;;
+            *)                   gt_cv_func_uselocale_works="guessing yes" ;;
+          esac
+
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if !(defined __BEOS__ || defined __HAIKU__)
-  /* Check whether the given locale name is recognized by the system.  */
-# if defined _WIN32 && !defined __CYGWIN__
-  /* On native Windows, setlocale(category, "") looks at the system settings,
-     not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
-     category of the locale to "C".  */
-  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
-      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
-    return 1;
-# else
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-# endif
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
-     two bytes long, with UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 4
-      || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
-    return 1;
-#endif
-#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
-     are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
+#if HAVE_XLOCALE_H
+# include <xlocale.h>
 #endif
+locale_t loc1;
+int main ()
+{
+  uselocale (NULL);
+  setlocale (LC_ALL, "en_US.UTF-8");
   return 0;
 }
-
 _ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      case "$host_os" in
-        # Handle native Windows specially, because there setlocale() interprets
-        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
-        # "fr" or "fra" as "French" or "French_France.1252",
-        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
-        # "ja" as "Japanese" or "Japanese_Japan.932",
-        # and similar.
-        mingw*)
-          # Test for the hypothetical native Windows locale name.
-          if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr_utf8=French_France.65001
-          else
-            # None found.
-            gt_cv_locale_fr_utf8=none
-          fi
-          ;;
-        *)
-          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
-          # configure script would override the LC_ALL setting. Likewise for
-          # LC_CTYPE, which is also set at the beginning of the configure script.
-          # Test for the usual locale name.
-          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr_utf8=fr_FR
-          else
-            # Test for the locale name with explicit encoding suffix.
-            if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_fr_utf8=fr_FR.UTF-8
-            else
-              # Test for the Solaris 7 locale name.
-              if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_fr_utf8=fr.UTF-8
-              else
-                # None found.
-                gt_cv_locale_fr_utf8=none
-              fi
-            fi
-          fi
-          ;;
-      esac
-    fi
-    rm -fr conftest*
+if ac_fn_c_try_run "$LINENO"
+then :
+  gt_cv_func_uselocale_works=yes
+else case e in #(
+  e) gt_cv_func_uselocale_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: $gt_cv_locale_fr_utf8" >&5
-printf "%s\n" "$gt_cv_locale_fr_utf8" >&6; }
-  LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_uselocale_works" >&5
+printf "%s\n" "$gt_cv_func_uselocale_works" >&6; }
+  else
+    gt_cv_func_uselocale_works=no
+  fi
+  case "$gt_cv_func_uselocale_works" in
+    *yes)
+      gt_working_uselocale=yes
+
+printf "%s\n" "#define HAVE_WORKING_USELOCALE 1" >>confdefs.h
+
+      ;;
+    *)
+      gt_working_uselocale=no
+      ;;
+  esac
 
 
 
@@ -42814,7 +43817,7 @@ printf "%s\n" "$gt_cv_locale_fr_utf8" >&6; }
 
 
 
-             if test "$ERRNO_H:$REPLACE_STRERROR_0" != :0; then
+          if test "$GL_GENERATE_ERRNO_H:$REPLACE_STRERROR_0" != false:0; then
             REPLACE_PERROR=1
   fi
   case ${gl_cv_func_strerror_r_works-unset} in
@@ -42824,20 +43827,20 @@ printf %s "checking whether perror matches strerror... " >&6; }
 if test ${gl_cv_func_perror_works+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test "$cross_compiling" = yes
+else case e in #(
+  e) if test "$cross_compiling" = yes
 then :
   case "$host_os" in
-                       # Guess yes on musl systems.
-              *-musl*) gl_cv_func_perror_works="guessing yes" ;;
-                       # Guess yes on native Windows.
-              mingw*)  gl_cv_func_perror_works="guessing yes" ;;
-                       # Otherwise obey --enable-cross-guesses.
-              *)       gl_cv_func_perror_works="$gl_cross_guess_normal" ;;
+                                  # Guess yes on musl systems.
+              *-musl* | midipix*) gl_cv_func_perror_works="guessing yes" ;;
+                                  # Guess yes on native Windows.
+              mingw*)             gl_cv_func_perror_works="guessing yes" ;;
+                                  # Otherwise obey --enable-cross-guesses.
+              *)                  gl_cv_func_perror_works="$gl_cross_guess_normal" ;;
             esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <errno.h>
                 #include <stdio.h>
@@ -42868,14 +43871,17 @@ then :
               gl_cv_func_perror_works=no
             fi
             rm -rf conftest.txt1 conftest.txt2
-else $as_nop
-  gl_cv_func_perror_works=no
+else case e in #(
+  e) gl_cv_func_perror_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
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
-
+         ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_perror_works" >&5
 printf "%s\n" "$gl_cv_func_perror_works" >&6; }
@@ -42888,19 +43894,30 @@ printf "%s\n" "$gl_cv_func_perror_works" >&6; }
                   REPLACE_PERROR=1
       ;;
   esac
-
-  if test $REPLACE_PERROR = 1; then
-
+    case "$host_os" in
+                     # Yes on Android 11.
+    linux*-android*) REPLACE_PERROR=1 ;;
+  esac
 
 
+     if test $REPLACE_PERROR = 1; then
+  GL_COND_OBJ_PERROR_TRUE=
+  GL_COND_OBJ_PERROR_FALSE='#'
+else
+  GL_COND_OBJ_PERROR_TRUE='#'
+  GL_COND_OBJ_PERROR_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_PERROR_TRUE}" && test -z "${GL_COND_OBJ_PERROR_FALSE}"; then
+    GL_COND_OBJ_PERROR_TRUE='#'
+    GL_COND_OBJ_PERROR_FALSE='#'
+  fi
 
 
 
 
 
-  gltests_LIBOBJS="$gltests_LIBOBJS perror.$ac_objext"
 
-  fi
 
 
 
@@ -42934,7 +43951,20 @@ printf "%s\n" "#define GNULIB_TEST_PERROR 1" >>confdefs.h
     HAVE_PIPE=0
   fi
 
-  if test $HAVE_PIPE = 0; then
+
+     if test $HAVE_PIPE = 0; then
+  GL_COND_OBJ_PIPE_TRUE=
+  GL_COND_OBJ_PIPE_FALSE='#'
+else
+  GL_COND_OBJ_PIPE_TRUE='#'
+  GL_COND_OBJ_PIPE_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_PIPE_TRUE}" && test -z "${GL_COND_OBJ_PIPE_FALSE}"; then
+    GL_COND_OBJ_PIPE_TRUE='#'
+    GL_COND_OBJ_PIPE_FALSE='#'
+  fi
+
 
 
 
@@ -42943,23 +43973,173 @@ printf "%s\n" "#define GNULIB_TEST_PERROR 1" >>confdefs.h
 
 
 
-  gltests_LIBOBJS="$gltests_LIBOBJS pipe.$ac_objext"
 
+    if test "$GL_GNULIB_PIPE" != 1; then
+        if test "$GL_GNULIB_PIPE" = 0; then
+      GL_GNULIB_PIPE=$gl_module_indicator_condition
+    else
+      GL_GNULIB_PIPE="($GL_GNULIB_PIPE || $gl_module_indicator_condition)"
+    fi
   fi
 
 
 
 
 
+printf "%s\n" "#define GNULIB_TEST_PIPE 1" >>confdefs.h
+
 
 
 
 
-    if test "$GL_GNULIB_PIPE" != 1; then
-        if test "$GL_GNULIB_PIPE" = 0; then
-      GL_GNULIB_PIPE=$gl_module_indicator_condition
+
+
+
+  if test $ac_cv_func_pselect = yes; then
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether signature of pselect conforms to POSIX" >&5
+printf %s "checking whether signature of pselect conforms to POSIX... " >&6; }
+if test ${gl_cv_sig_pselect+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/select.h>
+
+int
+main (void)
+{
+int (*p) (int, fd_set *, fd_set *, fd_set *restrict,
+                          struct timespec const *restrict,
+                          sigset_t const *restrict) = pselect;
+                return !p;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+  gl_cv_sig_pselect=yes
+else case e in #(
+  e) gl_cv_sig_pselect=no ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+    conftest$ac_exeext conftest.$ac_ext ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sig_pselect" >&5
+printf "%s\n" "$gl_cv_sig_pselect" >&6; }
+
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pselect detects invalid fds" >&5
+printf %s "checking whether pselect detects invalid fds... " >&6; }
+if test ${gl_cv_func_pselect_detects_ebadf+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+        if test "$cross_compiling" = yes
+then :
+
+           case "$host_os" in
+                             # Guess yes on Linux systems.
+            linux-* | linux) gl_cv_func_pselect_detects_ebadf="guessing yes" ;;
+                             # Guess yes on systems that emulate the Linux system calls.
+            midipix*)        gl_cv_func_pselect_detects_ebadf="guessing yes" ;;
+                             # Guess yes on glibc systems.
+            *-gnu* | gnu*)   gl_cv_func_pselect_detects_ebadf="guessing yes" ;;
+                             # If we don't know, obey --enable-cross-guesses.
+            *)               gl_cv_func_pselect_detects_ebadf="$gl_cross_guess_normal" ;;
+           esac
+
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/types.h>
+#include <sys/time.h>
+#if HAVE_SYS_SELECT_H
+# include <sys/select.h>
+#endif
+#include <unistd.h>
+#include <errno.h>
+
+
+$gl_mda_defines
+
+int
+main (void)
+{
+
+  fd_set set;
+  dup2(0, 16);
+  FD_ZERO(&set);
+  FD_SET(16, &set);
+  close(16);
+  struct timespec timeout;
+  timeout.tv_sec = 0;
+  timeout.tv_nsec = 5000;
+  return pselect (17, &set, NULL, NULL, &timeout, NULL) != -1 || errno != EBADF;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+  gl_cv_func_pselect_detects_ebadf=yes
+else case e in #(
+  e) gl_cv_func_pselect_detects_ebadf=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_pselect_detects_ebadf" >&5
+printf "%s\n" "$gl_cv_func_pselect_detects_ebadf" >&6; }
+    case $gl_cv_func_pselect_detects_ebadf in
+      *yes) ;;
+      *) REPLACE_PSELECT=1 ;;
+    esac
+  fi
+
+  if test $ac_cv_func_pselect = no || test $gl_cv_sig_pselect = no; then
+    REPLACE_PSELECT=1
+  fi
+
+
+     if test $HAVE_PSELECT = 0 || test $REPLACE_PSELECT = 1; then
+  GL_COND_OBJ_PSELECT_TRUE=
+  GL_COND_OBJ_PSELECT_FALSE='#'
+else
+  GL_COND_OBJ_PSELECT_TRUE='#'
+  GL_COND_OBJ_PSELECT_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_PSELECT_TRUE}" && test -z "${GL_COND_OBJ_PSELECT_FALSE}"; then
+    GL_COND_OBJ_PSELECT_TRUE='#'
+    GL_COND_OBJ_PSELECT_FALSE='#'
+  fi
+
+
+
+
+
+
+
+
+
+
+    if test "$GL_GNULIB_PSELECT" != 1; then
+        if test "$GL_GNULIB_PSELECT" = 0; then
+      GL_GNULIB_PSELECT=$gl_module_indicator_condition
     else
-      GL_GNULIB_PIPE="($GL_GNULIB_PIPE || $gl_module_indicator_condition)"
+      GL_GNULIB_PSELECT="($GL_GNULIB_PSELECT || $gl_module_indicator_condition)"
     fi
   fi
 
@@ -42967,7 +44147,9 @@ printf "%s\n" "#define GNULIB_TEST_PERROR 1" >>confdefs.h
 
 
 
-printf "%s\n" "#define GNULIB_TEST_PIPE 1" >>confdefs.h
+printf "%s\n" "#define GNULIB_TEST_PSELECT 1" >>confdefs.h
+
+
 
 
 
@@ -43011,8 +44193,8 @@ printf %s "checking whether pthread_create exists as a global function... " >&6;
 if test ${gl_cv_func_pthread_create+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  saved_LIBS="$LIBS"
+else case e in #(
+  e) saved_LIBS="$LIBS"
          LIBS="$LIBS $LIBPMULTITHREAD"
          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -43030,13 +44212,15 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   gl_cv_func_pthread_create=yes
-else $as_nop
-  gl_cv_func_pthread_create=no
+else case e in #(
+  e) gl_cv_func_pthread_create=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
          LIBS="$saved_LIBS"
-
+         ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_pthread_create" >&5
 printf "%s\n" "$gl_cv_func_pthread_create" >&6; }
@@ -43050,17 +44234,18 @@ printf "%s\n" "#define PTHREAD_CREATE_IS_INLINE 1" >>confdefs.h
     fi
   fi
 
-  if test $HAVE_PTHREAD_CREATE = 0 || test $REPLACE_PTHREAD_CREATE = 1; then
-
-
-
-
-
-
-
-
-  gltests_LIBOBJS="$gltests_LIBOBJS pthread-thread.$ac_objext"
 
+     if test $HAVE_PTHREAD_CREATE = 0 || test $REPLACE_PTHREAD_CREATE = 1; then
+  GL_COND_OBJ_PTHREAD_THREAD_TRUE=
+  GL_COND_OBJ_PTHREAD_THREAD_FALSE='#'
+else
+  GL_COND_OBJ_PTHREAD_THREAD_TRUE='#'
+  GL_COND_OBJ_PTHREAD_THREAD_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_PTHREAD_THREAD_TRUE}" && test -z "${GL_COND_OBJ_PTHREAD_THREAD_FALSE}"; then
+    GL_COND_OBJ_PTHREAD_THREAD_TRUE='#'
+    GL_COND_OBJ_PTHREAD_THREAD_FALSE='#'
   fi
 
 
@@ -43071,6 +44256,7 @@ printf "%s\n" "#define PTHREAD_CREATE_IS_INLINE 1" >>confdefs.h
 
 
 
+
     if test "$GL_GNULIB_PTHREAD_THREAD" != 1; then
         if test "$GL_GNULIB_PTHREAD_THREAD" = 0; then
       GL_GNULIB_PTHREAD_THREAD=$gl_module_indicator_condition
@@ -43097,8 +44283,8 @@ printf %s "checking whether pthread_sigmask is a macro... " >&6; }
 if test ${gl_cv_func_pthread_sigmask_macro+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <pthread.h>
@@ -43108,20 +44294,22 @@ else $as_nop
 #endif
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "headers_define_pthread_sigmask" >/dev/null 2>&1
+  $EGREP_TRADITIONAL "headers_define_pthread_sigmask" >/dev/null 2>&1
 then :
   gl_cv_func_pthread_sigmask_macro=yes
-else $as_nop
-  gl_cv_func_pthread_sigmask_macro=no
+else case e in #(
+  e) gl_cv_func_pthread_sigmask_macro=no ;;
+esac
 fi
 rm -rf conftest*
 
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_pthread_sigmask_macro" >&5
 printf "%s\n" "$gl_cv_func_pthread_sigmask_macro" >&6; }
 
-  LIB_PTHREAD_SIGMASK=
+  PTHREAD_SIGMASK_LIB=
 
   if test $gl_cv_func_pthread_sigmask_macro = yes; then
         HAVE_PTHREAD_SIGMASK=0
@@ -43140,8 +44328,8 @@ printf %s "checking for pthread_sigmask in $LIBMULTITHREAD... " >&6; }
 if test ${gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  gl_save_LIBS="$LIBS"
+else case e in #(
+  e) gl_save_LIBS="$LIBS"
                LIBS="$LIBS $LIBMULTITHREAD"
                cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -43160,18 +44348,20 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD=yes
-else $as_nop
-  gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD=no
+else case e in #(
+  e) gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
                LIBS="$gl_save_LIBS"
-
+               ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD" >&5
 printf "%s\n" "$gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD" >&6; }
             if test $gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD = yes; then
-                            LIB_PTHREAD_SIGMASK="$LIBMULTITHREAD"
+                            PTHREAD_SIGMASK_LIB="$LIBMULTITHREAD"
             else
                             HAVE_PTHREAD_SIGMASK=0
             fi
@@ -43190,11 +44380,13 @@ printf "%s\n" "$gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD" >&6; }
   fi
 
 
+    LIB_PTHREAD_SIGMASK="$PTHREAD_SIGMASK_LIB"
+
 
     if test $HAVE_PTHREAD_SIGMASK = 1; then
 
 
-                if test -z "$LIB_PTHREAD_SIGMASK"; then
+                if test -z "$PTHREAD_SIGMASK_LIB"; then
       case " $LIBS " in
         *' -pthread '*) ;;
         *' -lpthread '*) ;;
@@ -43204,8 +44396,8 @@ printf %s "checking whether pthread_sigmask works without -lpthread... " >&6; }
 if test ${gl_cv_func_pthread_sigmask_in_libc_works+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
               if test "$cross_compiling" = yes
 then :
 
@@ -43216,8 +44408,8 @@ then :
                      gl_cv_func_pthread_sigmask_in_libc_works="guessing yes";;
                  esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
                    #include <pthread.h>
@@ -43233,14 +44425,17 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_pthread_sigmask_in_libc_works=no
-else $as_nop
-  gl_cv_func_pthread_sigmask_in_libc_works=yes
+else case e in #(
+  e) gl_cv_func_pthread_sigmask_in_libc_works=yes ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
-
+             ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_pthread_sigmask_in_libc_works" >&5
 printf "%s\n" "$gl_cv_func_pthread_sigmask_in_libc_works" >&6; }
@@ -43260,10 +44455,10 @@ printf %s "checking whether pthread_sigmask returns error numbers... " >&6; }
 if test ${gl_cv_func_pthread_sigmask_return_works+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
         gl_save_LIBS="$LIBS"
-        LIBS="$LIBS $LIB_PTHREAD_SIGMASK"
+        LIBS="$LIBS $PTHREAD_SIGMASK_LIB"
         if test "$cross_compiling" = yes
 then :
   case "$host_os" in
@@ -43273,8 +44468,8 @@ then :
                gl_cv_func_pthread_sigmask_return_works="guessing yes";;
            esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <pthread.h>
@@ -43292,15 +44487,18 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_pthread_sigmask_return_works=yes
-else $as_nop
-  gl_cv_func_pthread_sigmask_return_works=no
+else case e in #(
+  e) gl_cv_func_pthread_sigmask_return_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
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
         LIBS="$gl_save_LIBS"
-
+       ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_pthread_sigmask_return_works" >&5
 printf "%s\n" "$gl_cv_func_pthread_sigmask_return_works" >&6; }
@@ -43318,8 +44516,8 @@ printf %s "checking whether pthread_sigmask unblocks signals correctly... " >&6;
 if test ${gl_cv_func_pthread_sigmask_unblock_works+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
         case "$host_os" in
           irix*)
             gl_cv_func_pthread_sigmask_unblock_works="guessing no";;
@@ -43331,10 +44529,11 @@ else $as_nop
         if test "$cross_compiling" = yes
 then :
   :
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
+#include <limits.h>
 #include <pthread.h>
 #include <signal.h>
 #include <stdio.h>
@@ -43353,14 +44552,16 @@ sigint_handler (int sig)
 int main ()
 {
   sigset_t set;
-  int pid = getpid ();
+  pid_t pid = getpid ();
   char command[80];
+  if (LONG_MAX < pid)
+    return 6;
   signal (SIGINT, sigint_handler);
   sigemptyset (&set);
   sigaddset (&set, SIGINT);
   if (!(pthread_sigmask (SIG_BLOCK, &set, NULL) == 0))
     return 1;
-  sprintf (command, "sh -c 'sleep 1; kill -%d %d' &", SIGINT, pid);
+  sprintf (command, "sh -c 'sleep 1; kill -INT %ld' &", (long) pid);
   if (!(system (command) == 0))
     return 2;
   sleep (2);
@@ -43376,15 +44577,18 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   :
-else $as_nop
-  gl_cv_func_pthread_sigmask_unblock_works=no
+else case e in #(
+  e) gl_cv_func_pthread_sigmask_unblock_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
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
         LIBS=$gl_save_LIBS
-
+       ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_pthread_sigmask_unblock_works" >&5
 printf "%s\n" "$gl_cv_func_pthread_sigmask_unblock_works" >&6; }
@@ -43398,16 +44602,21 @@ printf "%s\n" "#define PTHREAD_SIGMASK_UNBLOCK_BUG 1" >>confdefs.h
     esac
   fi
 
-  if test $HAVE_PTHREAD_SIGMASK = 0 || test $REPLACE_PTHREAD_SIGMASK = 1; then
-
-
-
-
-
-
 
+     if test $HAVE_PTHREAD_SIGMASK = 0 || test $REPLACE_PTHREAD_SIGMASK = 1; then
+  GL_COND_OBJ_PTHREAD_SIGMASK_TRUE=
+  GL_COND_OBJ_PTHREAD_SIGMASK_FALSE='#'
+else
+  GL_COND_OBJ_PTHREAD_SIGMASK_TRUE='#'
+  GL_COND_OBJ_PTHREAD_SIGMASK_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_PTHREAD_SIGMASK_TRUE}" && test -z "${GL_COND_OBJ_PTHREAD_SIGMASK_FALSE}"; then
+    GL_COND_OBJ_PTHREAD_SIGMASK_TRUE='#'
+    GL_COND_OBJ_PTHREAD_SIGMASK_FALSE='#'
+  fi
 
-  gltests_LIBOBJS="$gltests_LIBOBJS pthread_sigmask.$ac_objext"
+  if test -z "$GL_COND_OBJ_PTHREAD_SIGMASK_TRUE"; then :
 
 
   if test $HAVE_PTHREAD_SIGMASK = 1; then
@@ -43416,7 +44625,8 @@ printf "%s\n" "#define HAVE_PTHREAD_SIGMASK 1" >>confdefs.h
 
   fi
 
-  fi
+
+fi
 
 
 
@@ -43449,22 +44659,22 @@ printf %s "checking for putenv compatible with GNU and SVID... " >&6; }
 if test ${gl_cv_func_svid_putenv+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test "$cross_compiling" = yes
+else case e in #(
+  e) if test "$cross_compiling" = yes
 then :
           case "$host_os" in
-                         # Guess yes on glibc systems.
-          *-gnu* | gnu*) gl_cv_func_svid_putenv="guessing yes" ;;
-                         # Guess yes on musl systems.
-          *-musl*)       gl_cv_func_svid_putenv="guessing yes" ;;
-                         # Guess no on native Windows.
-          mingw*)        gl_cv_func_svid_putenv="guessing no" ;;
-                         # If we don't know, obey --enable-cross-guesses.
-          *)             gl_cv_func_svid_putenv="$gl_cross_guess_normal" ;;
+                              # Guess yes on glibc systems.
+          *-gnu* | gnu*)      gl_cv_func_svid_putenv="guessing yes" ;;
+                              # Guess yes on musl systems.
+          *-musl* | midipix*) gl_cv_func_svid_putenv="guessing yes" ;;
+                              # Guess no on native Windows.
+          mingw*)             gl_cv_func_svid_putenv="guessing no" ;;
+                              # If we don't know, obey --enable-cross-guesses.
+          *)                  gl_cv_func_svid_putenv="$gl_cross_guess_normal" ;;
         esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $ac_includes_default
 
@@ -43496,14 +44706,17 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_svid_putenv=yes
-else $as_nop
-  gl_cv_func_svid_putenv=no
+else case e in #(
+  e) gl_cv_func_svid_putenv=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_svid_putenv" >&5
 printf "%s\n" "$gl_cv_func_svid_putenv" >&6; }
@@ -43514,29 +44727,36 @@ printf "%s\n" "$gl_cv_func_svid_putenv" >&6; }
       ;;
   esac
 
-  if test $REPLACE_PUTENV = 1; then
-
-
-
-
-
-
 
+     if test $REPLACE_PUTENV = 1; then
+  GL_COND_OBJ_PUTENV_TRUE=
+  GL_COND_OBJ_PUTENV_FALSE='#'
+else
+  GL_COND_OBJ_PUTENV_TRUE='#'
+  GL_COND_OBJ_PUTENV_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_PUTENV_TRUE}" && test -z "${GL_COND_OBJ_PUTENV_FALSE}"; then
+    GL_COND_OBJ_PUTENV_TRUE='#'
+    GL_COND_OBJ_PUTENV_FALSE='#'
+  fi
 
-  gltests_LIBOBJS="$gltests_LIBOBJS putenv.$ac_objext"
+  if test -z "$GL_COND_OBJ_PUTENV_TRUE"; then :
 
 
   ac_fn_check_decl "$LINENO" "_putenv" "ac_cv_have_decl__putenv" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS"
 if test "x$ac_cv_have_decl__putenv" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL__PUTENV $ac_have_decl" >>confdefs.h
 
 
-  fi
+
+fi
 
 
 
@@ -43578,6 +44798,7 @@ printf "%s\n" "#define GNULIB_TEST_PUTENV 1" >>confdefs.h
 
 
 
+
   if test "$ac_cv_header_winsock2_h" = yes; then
     REPLACE_SELECT=1
   else
@@ -43587,8 +44808,8 @@ printf %s "checking whether select supports a 0 argument... " >&6; }
 if test ${gl_cv_func_select_supports0+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
         if test "$cross_compiling" = yes
 then :
 
@@ -43599,8 +44820,8 @@ then :
              *)        gl_cv_func_select_supports0="guessing yes";;
            esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <sys/types.h>
@@ -43619,14 +44840,17 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_select_supports0=yes
-else $as_nop
-  gl_cv_func_select_supports0=no
+else case e in #(
+  e) gl_cv_func_select_supports0=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
-
+       ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_select_supports0" >&5
 printf "%s\n" "$gl_cv_func_select_supports0" >&6; }
@@ -43640,22 +44864,24 @@ printf %s "checking whether select detects invalid fds... " >&6; }
 if test ${gl_cv_func_select_detects_ebadf+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
         if test "$cross_compiling" = yes
 then :
 
            case "$host_os" in
                              # Guess yes on Linux systems.
             linux-* | linux) gl_cv_func_select_detects_ebadf="guessing yes" ;;
+                             # Guess yes on systems that emulate the Linux system calls.
+            midipix*)        gl_cv_func_select_detects_ebadf="guessing yes" ;;
                              # Guess yes on glibc systems.
             *-gnu* | gnu*)   gl_cv_func_select_detects_ebadf="guessing yes" ;;
                              # If we don't know, obey --enable-cross-guesses.
             *)               gl_cv_func_select_detects_ebadf="$gl_cross_guess_normal" ;;
            esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <sys/types.h>
@@ -43690,14 +44916,17 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_select_detects_ebadf=yes
-else $as_nop
-  gl_cv_func_select_detects_ebadf=no
+else case e in #(
+  e) gl_cv_func_select_detects_ebadf=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
-
+       ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_select_detects_ebadf" >&5
 printf "%s\n" "$gl_cv_func_select_detects_ebadf" >&6; }
@@ -43707,7 +44936,7 @@ printf "%s\n" "$gl_cv_func_select_detects_ebadf" >&6; }
     esac
   fi
 
-    LIB_SELECT="$LIBSOCKET"
+    SELECT_LIB="$LIBSOCKET"
   if test $REPLACE_SELECT = 1; then
     case "$host_os" in
       mingw*)
@@ -43726,8 +44955,9 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
 
-else $as_nop
-  LIB_SELECT="$LIB_SELECT -luser32"
+else case e in #(
+  e) SELECT_LIB="$SELECT_LIB -luser32" ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
@@ -43735,18 +44965,21 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \
     esac
   fi
 
-
-  if test $REPLACE_SELECT = 1; then
-
-
-
-
+    LIB_SELECT="$LIB_SELECT"
 
 
 
-
-  gltests_LIBOBJS="$gltests_LIBOBJS select.$ac_objext"
-
+     if test $REPLACE_SELECT = 1; then
+  GL_COND_OBJ_SELECT_TRUE=
+  GL_COND_OBJ_SELECT_FALSE='#'
+else
+  GL_COND_OBJ_SELECT_TRUE='#'
+  GL_COND_OBJ_SELECT_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_SELECT_TRUE}" && test -z "${GL_COND_OBJ_SELECT_FALSE}"; then
+    GL_COND_OBJ_SELECT_TRUE='#'
+    GL_COND_OBJ_SELECT_FALSE='#'
   fi
 
 
@@ -43757,6 +44990,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \
 
 
 
+
     if test "$GL_GNULIB_SELECT" != 1; then
         if test "$GL_GNULIB_SELECT" = 0; then
       GL_GNULIB_SELECT=$gl_module_indicator_condition
@@ -43775,17 +45009,18 @@ printf "%s\n" "#define GNULIB_TEST_SELECT 1" >>confdefs.h
 
 
 
-  if test "$ac_cv_header_winsock2_h" = yes; then
-
-
-
-
-
-
-
-
-  gltests_LIBOBJS="$gltests_LIBOBJS setsockopt.$ac_objext"
 
+     if test "$ac_cv_header_winsock2_h" = yes; then
+  GL_COND_OBJ_SETSOCKOPT_TRUE=
+  GL_COND_OBJ_SETSOCKOPT_FALSE='#'
+else
+  GL_COND_OBJ_SETSOCKOPT_TRUE='#'
+  GL_COND_OBJ_SETSOCKOPT_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_SETSOCKOPT_TRUE}" && test -z "${GL_COND_OBJ_SETSOCKOPT_FALSE}"; then
+    GL_COND_OBJ_SETSOCKOPT_TRUE='#'
+    GL_COND_OBJ_SETSOCKOPT_FALSE='#'
   fi
 
 
@@ -43796,6 +45031,7 @@ printf "%s\n" "#define GNULIB_TEST_SELECT 1" >>confdefs.h
 
 
 
+
     if test "$GL_GNULIB_SETSOCKOPT" != 1; then
         if test "$GL_GNULIB_SETSOCKOPT" = 0; then
       GL_GNULIB_SETSOCKOPT=$gl_module_indicator_condition
@@ -43815,134 +45051,99 @@ printf "%s\n" "#define GNULIB_TEST_SETSOCKOPT 1" >>confdefs.h
 
 
 
-  if test $ac_cv_func_sigaction = yes; then
-    ac_fn_c_check_member "$LINENO" "struct sigaction" "sa_sigaction" "ac_cv_member_struct_sigaction_sa_sigaction" "#include <signal.h>
-"
-if test "x$ac_cv_member_struct_sigaction_sa_sigaction" = xyes
+  ac_fn_c_check_header_compile "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default"
+if test "x$ac_cv_header_stdint_h" = xyes
 then :
-
-printf "%s\n" "#define HAVE_STRUCT_SIGACTION_SA_SIGACTION 1" >>confdefs.h
-
+  printf "%s\n" "#define HAVE_STDINT_H 1" >>confdefs.h
 
 fi
 
-    if test $ac_cv_member_struct_sigaction_sa_sigaction = no; then
-      HAVE_STRUCT_SIGACTION_SA_SIGACTION=0
-    fi
-  else
-    HAVE_SIGACTION=0
-  fi
-
-  if test $HAVE_SIGACTION = 0; then
-
-
-
-
-
-
-
-
-  gltests_LIBOBJS="$gltests_LIBOBJS sigaction.$ac_objext"
-
-
-
-
-
-
-
-  ac_fn_c_check_type "$LINENO" "siginfo_t" "ac_cv_type_siginfo_t" "
-#include <signal.h>
-
-"
-if test "x$ac_cv_type_siginfo_t" = xyes
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SIZE_MAX" >&5
+printf %s "checking for SIZE_MAX... " >&6; }
+if test ${gl_cv_size_max+y}
 then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+    gl_cv_size_max=no
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-printf "%s\n" "#define HAVE_SIGINFO_T 1" >>confdefs.h
-
+#include <limits.h>
+#if HAVE_STDINT_H
+#include <stdint.h>
+#endif
+#ifdef SIZE_MAX
+Found it
+#endif
 
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP_TRADITIONAL "Found it" >/dev/null 2>&1
+then :
+  gl_cv_size_max=yes
 fi
+rm -rf conftest*
 
-  if test $ac_cv_type_siginfo_t = no; then
-    HAVE_SIGINFO_T=0
-  fi
-
-  fi
-
-
-
-
-
-
-
-
-
-    if test "$GL_GNULIB_SIGACTION" != 1; then
-        if test "$GL_GNULIB_SIGACTION" = 0; then
-      GL_GNULIB_SIGACTION=$gl_module_indicator_condition
-    else
-      GL_GNULIB_SIGACTION="($GL_GNULIB_SIGACTION || $gl_module_indicator_condition)"
-    fi
-  fi
-
-
-
-
-
-printf "%s\n" "#define GNULIB_TEST_SIGACTION 1" >>confdefs.h
+    if test $gl_cv_size_max != yes; then
+                        if ac_fn_c_compute_int "$LINENO" "sizeof (size_t) * CHAR_BIT - 1" "size_t_bits_minus_1"        "#include <stddef.h>
+#include <limits.h>"
+then :
 
+else case e in #(
+  e) size_t_bits_minus_1= ;;
+esac
+fi
 
+      if ac_fn_c_compute_int "$LINENO" "sizeof (size_t) <= sizeof (unsigned int)" "fits_in_uint"        "#include <stddef.h>"
+then :
 
+else case e in #(
+  e) fits_in_uint= ;;
+esac
+fi
 
+      if test -n "$size_t_bits_minus_1" && test -n "$fits_in_uint"; then
+        if test $fits_in_uint = 1; then
+                              cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stddef.h>
+                 extern size_t foo;
+                 extern unsigned long foo;
 
+int
+main (void)
+{
 
-  HAVE_POSIX_SIGNALBLOCKING=0
-  if test "$gl_cv_type_sigset_t" = yes; then
-    ac_fn_c_check_func "$LINENO" "sigprocmask" "ac_cv_func_sigprocmask"
-if test "x$ac_cv_func_sigprocmask" = xyes
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
 then :
-  HAVE_POSIX_SIGNALBLOCKING=1
+  fits_in_uint=0
 fi
-
-  fi
-
-  if test $HAVE_POSIX_SIGNALBLOCKING = 0; then
-
-
-
-
-
-
-
-
-  gltests_LIBOBJS="$gltests_LIBOBJS sigprocmask.$ac_objext"
-
-    :
-  fi
-
-
-
-
-
-
-
-
-
-    if test "$GL_GNULIB_SIGPROCMASK" != 1; then
-        if test "$GL_GNULIB_SIGPROCMASK" = 0; then
-      GL_GNULIB_SIGPROCMASK=$gl_module_indicator_condition
-    else
-      GL_GNULIB_SIGPROCMASK="($GL_GNULIB_SIGPROCMASK || $gl_module_indicator_condition)"
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+        fi
+                                if test $fits_in_uint = 1; then
+          gl_cv_size_max="(((1U << $size_t_bits_minus_1) - 1) * 2 + 1)"
+        else
+          gl_cv_size_max="(((1UL << $size_t_bits_minus_1) - 1) * 2 + 1)"
+        fi
+      else
+                gl_cv_size_max='((size_t)~(size_t)0)'
+      fi
     fi
-  fi
-
-
-
-
-
-printf "%s\n" "#define GNULIB_TEST_SIGPROCMASK 1" >>confdefs.h
-
+   ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_size_max" >&5
+printf "%s\n" "$gl_cv_size_max" >&6; }
+  if test "$gl_cv_size_max" != yes; then
 
+printf "%s\n" "#define SIZE_MAX $gl_cv_size_max" >>confdefs.h
 
+  fi
 
 
 
@@ -43952,8 +45153,9 @@ printf "%s\n" "#define GNULIB_TEST_SIGPROCMASK 1" >>confdefs.h
 if test "x$ac_cv_have_decl_sleep" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_SLEEP $ac_have_decl" >>confdefs.h
 
@@ -43966,22 +45168,24 @@ printf %s "checking for working sleep... " >&6; }
 if test ${gl_cv_func_sleep_works+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test "$cross_compiling" = yes
+else case e in #(
+  e) if test "$cross_compiling" = yes
 then :
   case "$host_os" in
                         # Guess yes on glibc systems.
          *-gnu* | gnu*) gl_cv_func_sleep_works="guessing yes" ;;
                         # Guess yes on musl systems.
          *-musl*)       gl_cv_func_sleep_works="guessing yes" ;;
+                        # Guess yes on systems that emulate the Linux system calls.
+         midipix*)      gl_cv_func_sleep_works="guessing yes" ;;
                         # Guess no on native Windows.
          mingw*)        gl_cv_func_sleep_works="guessing no" ;;
                         # If we don't know, obey --enable-cross-guesses.
          *)             gl_cv_func_sleep_works="$gl_cross_guess_normal" ;;
        esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <errno.h>
@@ -44018,13 +45222,16 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_sleep_works=yes
-else $as_nop
-  gl_cv_func_sleep_works=no
+else case e in #(
+  e) gl_cv_func_sleep_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
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_sleep_works" >&5
 printf "%s\n" "$gl_cv_func_sleep_works" >&6; }
@@ -44036,17 +45243,18 @@ printf "%s\n" "$gl_cv_func_sleep_works" >&6; }
     esac
   fi
 
-  if test $HAVE_SLEEP = 0 || test $REPLACE_SLEEP = 1; then
-
-
-
-
-
-
-
-
-  gltests_LIBOBJS="$gltests_LIBOBJS sleep.$ac_objext"
 
+     if test $HAVE_SLEEP = 0 || test $REPLACE_SLEEP = 1; then
+  GL_COND_OBJ_SLEEP_TRUE=
+  GL_COND_OBJ_SLEEP_FALSE='#'
+else
+  GL_COND_OBJ_SLEEP_TRUE='#'
+  GL_COND_OBJ_SLEEP_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_SLEEP_TRUE}" && test -z "${GL_COND_OBJ_SLEEP_FALSE}"; then
+    GL_COND_OBJ_SLEEP_TRUE='#'
+    GL_COND_OBJ_SLEEP_FALSE='#'
   fi
 
 
@@ -44057,6 +45265,7 @@ printf "%s\n" "$gl_cv_func_sleep_works" >&6; }
 
 
 
+
     if test "$GL_GNULIB_SLEEP" != 1; then
         if test "$GL_GNULIB_SLEEP" = 0; then
       GL_GNULIB_SLEEP=$gl_module_indicator_condition
@@ -44093,8 +45302,8 @@ printf %s "checking whether snprintf respects a size of 1... " >&6; }
 if test ${gl_cv_func_snprintf_size1+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
       if test "$cross_compiling" = yes
 then :
   case "$host_os" in
@@ -44105,8 +45314,8 @@ then :
            *)               gl_cv_func_snprintf_size1="guessing yes" ;;
          esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <stdio.h>
@@ -44134,14 +45343,17 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_snprintf_size1=yes
-else $as_nop
-  gl_cv_func_snprintf_size1=no
+else case e in #(
+  e) gl_cv_func_snprintf_size1=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_snprintf_size1" >&5
 printf "%s\n" "$gl_cv_func_snprintf_size1" >&6; }
@@ -44152,59 +45364,6 @@ printf "%s\n" "$gl_cv_func_snprintf_size1" >&6; }
         case "$gl_cv_func_snprintf_retval_c99" in
           *yes)
 
-
-     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether printf supports POSIX/XSI format strings with positions" >&5
-printf %s "checking whether printf supports POSIX/XSI format strings with positions... " >&6; }
-if test ${gl_cv_func_printf_positions+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-
-      if test "$cross_compiling" = yes
-then :
-
-         case "$host_os" in
-           netbsd[1-3]* | netbsdelf[1-3]* | netbsdaout[1-3]* | netbsdcoff[1-3]*)
-                            gl_cv_func_printf_positions="guessing no";;
-           beos*)           gl_cv_func_printf_positions="guessing no";;
-                            # Guess yes on Android.
-           linux*-android*) gl_cv_func_printf_positions="guessing yes";;
-                            # Guess no on native Windows.
-           mingw* | pw*)    gl_cv_func_printf_positions="guessing no";;
-           *)               gl_cv_func_printf_positions="guessing yes";;
-         esac
-
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <stdio.h>
-#include <string.h>
-/* The string "%2$d %1$d", with dollar characters protected from the shell's
-   dollar expansion (possibly an autoconf bug).  */
-static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' };
-static char buf[100];
-int main ()
-{
-  sprintf (buf, format, 33, 55);
-  return (strcmp (buf, "55 33") != 0);
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
-  gl_cv_func_printf_positions=yes
-else $as_nop
-  gl_cv_func_printf_positions=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_positions" >&5
-printf "%s\n" "$gl_cv_func_printf_positions" >&6; }
-
             case "$gl_cv_func_printf_positions" in
               *yes)
                 gl_cv_func_snprintf_usable=yes
@@ -44275,18 +45434,20 @@ printf "%s\n" "#define GNULIB_SNPRINTF $gl_module_indicator_condition" >>confdef
 
 
 
-  if test "$ac_cv_header_winsock2_h" = yes; then
-
-
-
-
-
-
-
-
-  gltests_LIBOBJS="$gltests_LIBOBJS socket.$ac_objext"
 
+     if test "$ac_cv_header_winsock2_h" = yes; then
+  GL_COND_OBJ_SOCKET_TRUE=
+  GL_COND_OBJ_SOCKET_FALSE='#'
+else
+  GL_COND_OBJ_SOCKET_TRUE='#'
+  GL_COND_OBJ_SOCKET_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_SOCKET_TRUE}" && test -z "${GL_COND_OBJ_SOCKET_FALSE}"; then
+    GL_COND_OBJ_SOCKET_TRUE='#'
+    GL_COND_OBJ_SOCKET_FALSE='#'
   fi
+
   # When this module is used, sockets may actually occur as file descriptors,
   # hence it is worth warning if the modules 'close' and 'ioctl' are not used.
 
@@ -44346,14 +45507,14 @@ printf "%s\n" "#define GNULIB_TEST_SOCKET 1" >>confdefs.h
 if test "x$ac_cv_type_socklen_t" = xyes
 then :
 
-else $as_nop
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for socklen_t equivalent" >&5
+else case e in #(
+  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for socklen_t equivalent" >&5
 printf %s "checking for socklen_t equivalent... " >&6; }
 if test ${gl_cv_socklen_t_equiv+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  # Systems have either "struct sockaddr *" or
+else case e in #(
+  e) # Systems have either "struct sockaddr *" or
          # "void *" as the second argument to getpeername
          gl_cv_socklen_t_equiv=
          for arg2 in "struct sockaddr" void; do
@@ -44385,13 +45546,15 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
          if test "$gl_cv_socklen_t_equiv" = ""; then
            as_fn_error $? "Cannot find a type to use in place of socklen_t" "$LINENO" 5
          fi
-
+         ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_socklen_t_equiv" >&5
 printf "%s\n" "$gl_cv_socklen_t_equiv" >&6; }
 
 printf "%s\n" "#define socklen_t $gl_cv_socklen_t_equiv" >>confdefs.h
-
+ ;;
+esac
 fi
 
 
 
 
 
-
   if test $ac_cv_have_decl_strerror_r = no; then
     HAVE_DECL_STRERROR_R=0
   fi
 
   if test $ac_cv_func_strerror_r = yes; then
-    if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then
+    if test "$GL_GENERATE_ERRNO_H:$REPLACE_STRERROR_0" = false:0; then
       if test $gl_cv_func_strerror_r_posix_signature = yes; then
         case "$gl_cv_func_strerror_r_works" in
                     *no) REPLACE_STRERROR_R=1 ;;
@@ -44421,7 +45583,9 @@ fi
     fi
   fi
 
-  if test $HAVE_DECL_STRERROR_R = 0 || test $REPLACE_STRERROR_R = 1; then
+  if test $HAVE_DECL_STRERROR_R = 0 || test $REPLACE_STRERROR_R = 1
+then :
+
 
 
 
 
 
 
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for catgets" >&5
+printf %s "checking for catgets... " >&6; }
+if test ${gl_cv_onwards_func_catgets+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+  exec 9>&6 6>/dev/null
+
+       case "$host_os" in
+
+         linux*-android*)
+           ac_fn_check_decl "$LINENO" "catgets" "ac_cv_have_decl_catgets" "#include <nl_types.h>
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_catgets" = xyes
+then :
+
+fi
+           if test $ac_cv_have_decl_catgets = yes; then
+             ac_fn_c_check_func "$LINENO" "catgets" "ac_cv_func_catgets"
+if test "x$ac_cv_func_catgets" = xyes
+then :
+
+fi
+
+             if test $ac_cv_func_catgets = yes; then
+               gl_cv_onwards_func_catgets=yes
+             else
+                                                            gl_cv_onwards_func_catgets='future OS version'
+             fi
+           else
+             gl_cv_onwards_func_catgets='future OS version'
+           fi
+           ;;
+
+
+         *)
+           ac_fn_c_check_func "$LINENO" "catgets" "ac_cv_func_catgets"
+if test "x$ac_cv_func_catgets" = xyes
+then :
+
+fi
+
+           gl_cv_onwards_func_catgets=$ac_cv_func_catgets
+           ;;
+
+       esac
+
+  exec 6>&9 9>&-
+
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_onwards_func_catgets" >&5
+printf "%s\n" "$gl_cv_onwards_func_catgets" >&6; }
+
+  case "$gl_cv_onwards_func_catgets" in
+    future*) ac_cv_func_catgets=no ;;
+    *)       ac_cv_func_catgets=$gl_cv_onwards_func_catgets ;;
+  esac
+  if test $ac_cv_func_catgets = yes; then
+
+printf "%s\n" "#define HAVE_CATGETS 1" >>confdefs.h
+
   fi
 
 
 
 
 
+fi
+
+
+
+
+
+
+
+
+
+
 
 
 
@@ -44482,20 +45721,22 @@ printf %s "checking whether symlink handles trailing slash correctly... " >&6; }
 if test ${gl_cv_func_symlink_works+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test "$cross_compiling" = yes
+else case e in #(
+  e) if test "$cross_compiling" = yes
 then :
   case "$host_os" in
                              # Guess yes on Linux systems.
             linux-* | linux) gl_cv_func_symlink_works="guessing yes" ;;
+                             # Guess yes on systems that emulate the Linux system calls.
+            midipix*)        gl_cv_func_symlink_works="guessing yes" ;;
                              # Guess yes on glibc systems.
             *-gnu* | gnu*)   gl_cv_func_symlink_works="guessing yes" ;;
                              # If we don't know, obey --enable-cross-guesses.
             *)               gl_cv_func_symlink_works="$gl_cross_guess_normal" ;;
           esac
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <unistd.h>
 
@@ -44518,14 +45759,17 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_symlink_works=yes
-else $as_nop
-  gl_cv_func_symlink_works=no
+else case e in #(
+  e) gl_cv_func_symlink_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
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
-      rm -f conftest.f conftest.link conftest.lnk2
+      rm -f conftest.f conftest.link conftest.lnk2 ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_symlink_works" >&5
 printf "%s\n" "$gl_cv_func_symlink_works" >&6; }
@@ -44537,17 +45781,18 @@ printf "%s\n" "$gl_cv_func_symlink_works" >&6; }
     esac
   fi
 
-  if test $HAVE_SYMLINK = 0 || test $REPLACE_SYMLINK = 1; then
-
-
-
-
-
-
-
-
-  gltests_LIBOBJS="$gltests_LIBOBJS symlink.$ac_objext"
 
+     if test $HAVE_SYMLINK = 0 || test $REPLACE_SYMLINK = 1; then
+  GL_COND_OBJ_SYMLINK_TRUE=
+  GL_COND_OBJ_SYMLINK_FALSE='#'
+else
+  GL_COND_OBJ_SYMLINK_TRUE='#'
+  GL_COND_OBJ_SYMLINK_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_SYMLINK_TRUE}" && test -z "${GL_COND_OBJ_SYMLINK_FALSE}"; then
+    GL_COND_OBJ_SYMLINK_TRUE='#'
+    GL_COND_OBJ_SYMLINK_FALSE='#'
   fi
 
 
@@ -44558,6 +45803,7 @@ printf "%s\n" "$gl_cv_func_symlink_works" >&6; }
 
 
 
+
     if test "$GL_GNULIB_SYMLINK" != 1; then
         if test "$GL_GNULIB_SYMLINK" = 0; then
       GL_GNULIB_SYMLINK=$gl_module_indicator_condition
@@ -44609,582 +45855,255 @@ printf "%s\n" "#define GNULIB_TEST_SYMLINK 1" >>confdefs.h
   if test $gl_threads_api = posix; then
     gl_save_LIBS="$LIBS"
     LIBS="$LIBS $LIBMULTITHREAD"
-    ac_fn_c_check_func "$LINENO" "pthread_atfork" "ac_cv_func_pthread_atfork"
+
+
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_atfork" >&5
+printf %s "checking for pthread_atfork... " >&6; }
+if test ${gl_cv_onwards_func_pthread_atfork+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+  exec 9>&6 6>/dev/null
+
+       case "$host_os" in
+
+         linux*-android*)
+           ac_fn_check_decl "$LINENO" "pthread_atfork" "ac_cv_have_decl_pthread_atfork" "#include <pthread.h>
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_pthread_atfork" = xyes
+then :
+
+fi
+           if test $ac_cv_have_decl_pthread_atfork = yes; then
+             ac_fn_c_check_func "$LINENO" "pthread_atfork" "ac_cv_func_pthread_atfork"
 if test "x$ac_cv_func_pthread_atfork" = xyes
 then :
-  printf "%s\n" "#define HAVE_PTHREAD_ATFORK 1" >>confdefs.h
 
 fi
 
-    LIBS="$gl_save_LIBS"
-  fi
+             if test $ac_cv_func_pthread_atfork = yes; then
+               gl_cv_onwards_func_pthread_atfork=yes
+             else
+                                                            gl_cv_onwards_func_pthread_atfork='future OS version'
+             fi
+           else
+             gl_cv_onwards_func_pthread_atfork='future OS version'
+           fi
+           ;;
 
-  abs_aux_dir=`cd "$ac_aux_dir"; pwd`
 
-  abs_aux_dir=`cd "$ac_aux_dir"; pwd`
+         *)
+           ac_fn_c_check_func "$LINENO" "pthread_atfork" "ac_cv_func_pthread_atfork"
+if test "x$ac_cv_func_pthread_atfork" = xyes
+then :
 
+fi
 
+           gl_cv_onwards_func_pthread_atfork=$ac_cv_func_pthread_atfork
+           ;;
 
+       esac
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5
-printf %s "checking for a traditional french locale... " >&6; }
-if test ${gt_cv_locale_fr+y}
+  exec 6>&9 9>&-
+
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_onwards_func_pthread_atfork" >&5
+printf "%s\n" "$gl_cv_onwards_func_pthread_atfork" >&6; }
+
+  case "$gl_cv_onwards_func_pthread_atfork" in
+    future*) ac_cv_func_pthread_atfork=no ;;
+    *)       ac_cv_func_pthread_atfork=$gl_cv_onwards_func_pthread_atfork ;;
+  esac
+  if test $ac_cv_func_pthread_atfork = yes; then
+
+printf "%s\n" "#define HAVE_PTHREAD_ATFORK 1" >>confdefs.h
+
+  fi
+
+
+    LIBS="$gl_save_LIBS"
+  fi
+
+
+
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether time() works" >&5
+printf %s "checking whether time() works... " >&6; }
+if test ${gl_cv_func_time_works+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e)                               case "$host_os" in
+       linux*-gnu*)
+         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if defined __BEOS__ || defined __HAIKU__
-  return 1;
-#else
-  /* Check whether the given locale name is recognized by the system.  */
-# if defined _WIN32 && !defined __CYGWIN__
-  /* On native Windows, setlocale(category, "") looks at the system settings,
-     not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
-     category of the locale to "C".  */
-  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
-      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
-    return 1;
-# else
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-# endif
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.
-     On MirBSD 10, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
-        || strcmp (cs, "UTF-8") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
-     one byte long. This excludes the UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
-# if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
-     are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-# endif
-  return 0;
-#endif
-}
+           #include <features.h>
+           #ifdef __GNU_LIBRARY__
+            #if __GLIBC__ == 2
+             Unlucky GNU user
+            #endif
+           #endif
 
 _ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      case "$host_os" in
-        # Handle native Windows specially, because there setlocale() interprets
-        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
-        # "fr" or "fra" as "French" or "French_France.1252",
-        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
-        # "ja" as "Japanese" or "Japanese_Japan.932",
-        # and similar.
-        mingw*)
-          # Test for the native Windows locale name.
-          if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr=French_France.1252
-          else
-            # None found.
-            gt_cv_locale_fr=none
-          fi
-          ;;
-        *)
-          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
-          # configure script would override the LC_ALL setting. Likewise for
-          # LC_CTYPE, which is also set at the beginning of the configure script.
-          # Test for the usual locale name.
-          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr=fr_FR
-          else
-            # Test for the locale name with explicit encoding suffix.
-            if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_fr=fr_FR.ISO-8859-1
-            else
-              # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
-              if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_fr=fr_FR.ISO8859-1
-              else
-                # Test for the HP-UX locale name.
-                if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                  gt_cv_locale_fr=fr_FR.iso88591
-                else
-                  # Test for the Solaris 7 locale name.
-                  if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                    gt_cv_locale_fr=fr
-                  else
-                    # None found.
-                    gt_cv_locale_fr=none
-                  fi
-                fi
-              fi
-            fi
-          fi
-          ;;
-      esac
-    fi
-    rm -fr conftest*
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP_TRADITIONAL "Unlucky" >/dev/null 2>&1
+then :
+  gl_cv_func_time_works="guessing no"
+else case e in #(
+  e) gl_cv_func_time_works="guessing yes" ;;
+esac
+fi
+rm -rf conftest*
+
+         ;;
+       aix*)   gl_cv_func_time_works="guessing no";;
+       mingw*) gl_cv_func_time_works="guessing no";;
+       *) gl_cv_func_time_works="guessing yes";;
+     esac
+     ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_time_works" >&5
+printf "%s\n" "$gl_cv_func_time_works" >&6; }
+  case "$gl_cv_func_time_works" in
+    *no) REPLACE_TIME=1 ;;
+  esac
 
+
+     if test $REPLACE_TIME = 1; then
+  GL_COND_OBJ_TIME_TRUE=
+  GL_COND_OBJ_TIME_FALSE='#'
+else
+  GL_COND_OBJ_TIME_TRUE='#'
+  GL_COND_OBJ_TIME_FALSE=
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5
-printf "%s\n" "$gt_cv_locale_fr" >&6; }
-  LOCALE_FR=$gt_cv_locale_fr
+:
+    if test -z "${GL_COND_OBJ_TIME_TRUE}" && test -z "${GL_COND_OBJ_TIME_FALSE}"; then
+    GL_COND_OBJ_TIME_TRUE='#'
+    GL_COND_OBJ_TIME_FALSE='#'
+  fi
 
+  if test -z "$GL_COND_OBJ_TIME_TRUE"; then :
 
 
+  :
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5
-printf %s "checking for a french Unicode locale... " >&6; }
-if test ${gt_cv_locale_fr_utf8+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+fi
 
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if !(defined __BEOS__ || defined __HAIKU__)
-  /* Check whether the given locale name is recognized by the system.  */
-# if defined _WIN32 && !defined __CYGWIN__
-  /* On native Windows, setlocale(category, "") looks at the system settings,
-     not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
-     category of the locale to "C".  */
-  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
-      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
-    return 1;
-# else
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-# endif
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
-     two bytes long, with UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 4
-      || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
-    return 1;
-#endif
-#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
-     are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-#endif
-  return 0;
-}
 
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      case "$host_os" in
-        # Handle native Windows specially, because there setlocale() interprets
-        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
-        # "fr" or "fra" as "French" or "French_France.1252",
-        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
-        # "ja" as "Japanese" or "Japanese_Japan.932",
-        # and similar.
-        mingw*)
-          # Test for the hypothetical native Windows locale name.
-          if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr_utf8=French_France.65001
-          else
-            # None found.
-            gt_cv_locale_fr_utf8=none
-          fi
-          ;;
-        *)
-          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
-          # configure script would override the LC_ALL setting. Likewise for
-          # LC_CTYPE, which is also set at the beginning of the configure script.
-          # Test for the usual locale name.
-          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr_utf8=fr_FR
-          else
-            # Test for the locale name with explicit encoding suffix.
-            if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_fr_utf8=fr_FR.UTF-8
-            else
-              # Test for the Solaris 7 locale name.
-              if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_fr_utf8=fr.UTF-8
-              else
-                # None found.
-                gt_cv_locale_fr_utf8=none
-              fi
-            fi
-          fi
-          ;;
-      esac
+
+
+
+
+
+
+
+    if test "$GL_GNULIB_TIME" != 1; then
+        if test "$GL_GNULIB_TIME" = 0; then
+      GL_GNULIB_TIME=$gl_module_indicator_condition
+    else
+      GL_GNULIB_TIME="($GL_GNULIB_TIME || $gl_module_indicator_condition)"
     fi
-    rm -fr conftest*
+  fi
 
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5
-printf "%s\n" "$gt_cv_locale_fr_utf8" >&6; }
-  LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8
 
 
 
 
+printf "%s\n" "#define GNULIB_TEST_TIME 1" >>confdefs.h
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a traditional japanese locale" >&5
-printf %s "checking for a traditional japanese locale... " >&6; }
-if test ${gt_cv_locale_ja+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main ()
-{
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if defined __BEOS__ || defined __HAIKU__
-  return 1;
-#else
-  /* Check whether the given locale name is recognized by the system.  */
-# if defined _WIN32 && !defined __CYGWIN__
-  /* On native Windows, setlocale(category, "") looks at the system settings,
-     not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
-     category of the locale to "C".  */
-  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
-      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
-    return 1;
-# else
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-# endif
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.
-     On MirBSD 10, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
-        || strcmp (cs, "UTF-8") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether MB_CUR_MAX is > 1.  This excludes the dysfunctional locales
-     on Cygwin 1.5.x.  */
-  if (MB_CUR_MAX == 1)
-    return 1;
-  /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
-     This excludes the UTF-8 encoding (except on MirBSD).  */
-  {
-    const char *p;
-    t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-    if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
-    for (p = buf; *p != '\0'; p++)
-      if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
-        return 1;
-  }
-  return 0;
-#endif
-}
+  abs_aux_dir=`cd "$ac_aux_dir"; pwd`
 
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      case "$host_os" in
-        # Handle native Windows specially, because there setlocale() interprets
-        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
-        # "fr" or "fra" as "French" or "French_France.1252",
-        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
-        # "ja" as "Japanese" or "Japanese_Japan.932",
-        # and similar.
-        mingw*)
-          # Note that on native Windows, the Japanese locale is
-          # Japanese_Japan.932, and CP932 is very different from EUC-JP, so we
-          # cannot use it here.
-          gt_cv_locale_ja=none
-          ;;
-        *)
-          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
-          # configure script would override the LC_ALL setting. Likewise for
-          # LC_CTYPE, which is also set at the beginning of the configure script.
-          # Test for the AIX locale name.
-          if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_ja=ja_JP
-          else
-            # Test for the locale name with explicit encoding suffix.
-            if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_ja=ja_JP.EUC-JP
-            else
-              # Test for the HP-UX, OSF/1, NetBSD locale name.
-              if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_ja=ja_JP.eucJP
-              else
-                # Test for the IRIX, FreeBSD locale name.
-                if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                  gt_cv_locale_ja=ja_JP.EUC
-                else
-                  # Test for the Solaris 7 locale name.
-                  if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                    gt_cv_locale_ja=ja
-                  else
-                    # Special test for NetBSD 1.6.
-                    if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then
-                      gt_cv_locale_ja=ja_JP.eucJP
-                    else
-                      # None found.
-                      gt_cv_locale_ja=none
-                    fi
-                  fi
-                fi
-              fi
-            fi
-          fi
-          ;;
-      esac
-    fi
-    rm -fr conftest*
 
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_ja" >&5
-printf "%s\n" "$gt_cv_locale_ja" >&6; }
-  LOCALE_JA=$gt_cv_locale_ja
 
 
+  if test $ac_cv_func_vasnprintf = no; then
 
 
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a transitional chinese locale" >&5
-printf %s "checking for a transitional chinese locale... " >&6; }
-if test ${gt_cv_locale_zh_CN+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <stdlib.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main ()
-{
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if defined __BEOS__ || defined __HAIKU__
-  return 1;
-#else
-  /* Check whether the given locale name is recognized by the system.  */
-# if defined _WIN32 && !defined __CYGWIN__
-  /* On native Windows, setlocale(category, "") looks at the system settings,
-     not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
-     category of the locale to "C".  */
-  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
-      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
-    return 1;
-# else
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-# endif
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.
-     On MirBSD 10, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
-        || strcmp (cs, "UTF-8") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
-     This excludes the UTF-8 encoding (except on MirBSD).  */
-  {
-    const char *p;
-    t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-    if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
-    for (p = buf; *p != '\0'; p++)
-      if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
-        return 1;
-  }
-  /* Check whether a typical GB18030 multibyte sequence is recognized as a
-     single wide character.  This excludes the GB2312 and GBK encodings.  */
-  if (mblen ("\203\062\332\066", 5) != 4)
-    return 1;
-  return 0;
-#endif
-}
 
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      case "$host_os" in
-        # Handle native Windows specially, because there setlocale() interprets
-        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
-        # "fr" or "fra" as "French" or "French_France.1252",
-        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
-        # "ja" as "Japanese" or "Japanese_Japan.932",
-        # and similar.
-        mingw*)
-          # Test for the hypothetical native Windows locale name.
-          if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_zh_CN=Chinese_China.54936
-          else
-            # None found.
-            gt_cv_locale_zh_CN=none
-          fi
-          ;;
-        solaris2.8)
-          # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are
-          # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK.
-          # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core.
-          gt_cv_locale_zh_CN=none
-          ;;
-        *)
-          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
-          # configure script would override the LC_ALL setting. Likewise for
-          # LC_CTYPE, which is also set at the beginning of the configure script.
-          # Test for the locale name without encoding suffix.
-          if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_zh_CN=zh_CN
-          else
-            # Test for the locale name with explicit encoding suffix.
-            if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_zh_CN=zh_CN.GB18030
-            else
-              # None found.
-              gt_cv_locale_zh_CN=none
-            fi
-          fi
-          ;;
-      esac
-    else
-      # If there was a link error, due to mblen(), the system is so old that
-      # it certainly doesn't have a chinese locale.
-      gt_cv_locale_zh_CN=none
-    fi
-    rm -fr conftest*
 
+
+
+
+  gltests_LIBOBJS="$gltests_LIBOBJS vasnprintf.$ac_objext"
+
+
+
+
+
+
+
+
+
+  gltests_LIBOBJS="$gltests_LIBOBJS printf-args.$ac_objext"
+
+
+
+
+
+
+
+
+
+  gltests_LIBOBJS="$gltests_LIBOBJS printf-parse.$ac_objext"
+
+
+
+
+
+
+
+
+
+  gltests_LIBOBJS="$gltests_LIBOBJS asnprintf.$ac_objext"
+
+  if test $ac_cv_func_vasnprintf = yes; then
+
+printf "%s\n" "#define REPLACE_VASNPRINTF 1" >>confdefs.h
+
+  fi
+
+
+
+
+
+
+
+
+
+  ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default"
+if test "x$ac_cv_type_ptrdiff_t" = xyes
+then :
+
+else case e in #(
+  e)
+printf "%s\n" "#define ptrdiff_t long" >>confdefs.h
+
+     ;;
+esac
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_zh_CN" >&5
-printf "%s\n" "$gt_cv_locale_zh_CN" >&6; }
-  LOCALE_ZH_CN=$gt_cv_locale_zh_CN
+
+
+
+
+
+
+
+  fi
+
+  abs_aux_dir=`cd "$ac_aux_dir"; pwd`
+
+
+
 
 
 
@@ -45204,8 +46123,8 @@ printf %s "checking whether wctob works... " >&6; }
 if test ${gl_cv_func_wctob_works+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
                         case "$host_os" in
             # Guess no on Solaris <= 9 and Cygwin.
           solaris2.[1-9] | solaris2.[1-9].* | cygwin*)
@@ -45221,8 +46140,8 @@ else $as_nop
             if test "$cross_compiling" = yes
 then :
   :
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <locale.h>
@@ -45245,11 +46164,13 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   :
-else $as_nop
-  gl_cv_func_wctob_works=no
+else case e in #(
+  e) gl_cv_func_wctob_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
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
             ;;
@@ -45258,8 +46179,8 @@ fi
           if test "$cross_compiling" = yes
 then :
   :
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <locale.h>
@@ -45281,15 +46202,18 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   gl_cv_func_wctob_works=yes
-else $as_nop
-  gl_cv_func_wctob_works=no
+else case e in #(
+  e) gl_cv_func_wctob_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
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
         fi
-
+       ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_wctob_works" >&5
 printf "%s\n" "$gl_cv_func_wctob_works" >&6; }
@@ -45306,8 +46230,9 @@ printf "%s\n" "$gl_cv_func_wctob_works" >&6; }
 if test "x$ac_cv_have_decl_wctob" = xyes
 then :
   ac_have_decl=1
-else $as_nop
-  ac_have_decl=0
+else case e in #(
+  e) ac_have_decl=0 ;;
+esac
 fi
 printf "%s\n" "#define HAVE_DECL_WCTOB $ac_have_decl" >>confdefs.h
 
@@ -45317,21 +46242,32 @@ printf "%s\n" "#define HAVE_DECL_WCTOB $ac_have_decl" >>confdefs.h
     fi
   fi
 
-  if test $HAVE_WCTOB = 0 || test $REPLACE_WCTOB = 1; then
 
+     if test $HAVE_WCTOB = 0 || test $REPLACE_WCTOB = 1; then
+  GL_COND_OBJ_WCTOB_TRUE=
+  GL_COND_OBJ_WCTOB_FALSE='#'
+else
+  GL_COND_OBJ_WCTOB_TRUE='#'
+  GL_COND_OBJ_WCTOB_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_WCTOB_TRUE}" && test -z "${GL_COND_OBJ_WCTOB_FALSE}"; then
+    GL_COND_OBJ_WCTOB_TRUE='#'
+    GL_COND_OBJ_WCTOB_FALSE='#'
+  fi
 
+  if test -z "$GL_COND_OBJ_WCTOB_TRUE"; then :
 
 
+  :
 
 
+fi
 
 
-  gltests_LIBOBJS="$gltests_LIBOBJS wctob.$ac_objext"
 
 
-  :
 
-  fi
 
 
 
@@ -45364,21 +46300,27 @@ printf "%s\n" "#define GNULIB_TEST_WCTOB 1" >>confdefs.h
     REPLACE_WCTOMB=1
   fi
 
-  if test $REPLACE_WCTOMB = 1; then
-
-
-
-
-
-
 
+     if test $REPLACE_WCTOMB = 1; then
+  GL_COND_OBJ_WCTOMB_TRUE=
+  GL_COND_OBJ_WCTOMB_FALSE='#'
+else
+  GL_COND_OBJ_WCTOMB_TRUE='#'
+  GL_COND_OBJ_WCTOMB_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_WCTOMB_TRUE}" && test -z "${GL_COND_OBJ_WCTOMB_FALSE}"; then
+    GL_COND_OBJ_WCTOMB_TRUE='#'
+    GL_COND_OBJ_WCTOMB_FALSE='#'
+  fi
 
-  gltests_LIBOBJS="$gltests_LIBOBJS wctomb.$ac_objext"
+  if test -z "$GL_COND_OBJ_WCTOMB_TRUE"; then :
 
 
   :
 
-  fi
+
+fi
 
 
 
@@ -45405,35 +46347,46 @@ printf "%s\n" "#define GNULIB_TEST_WCTOMB 1" >>confdefs.h
 
 
 
-  case "$host_os" in
-    mingw*)
-
-
-
-
-
-
-
 
-  gltests_LIBOBJS="$gltests_LIBOBJS windows-thread.$ac_objext"
-
-      ;;
-  esac
+     if case "$host_os" in mingw*) true;; *) false;; esac; then
+  GL_COND_OBJ_WINDOWS_THREAD_TRUE=
+  GL_COND_OBJ_WINDOWS_THREAD_FALSE='#'
+else
+  GL_COND_OBJ_WINDOWS_THREAD_TRUE='#'
+  GL_COND_OBJ_WINDOWS_THREAD_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_WINDOWS_THREAD_TRUE}" && test -z "${GL_COND_OBJ_WINDOWS_THREAD_FALSE}"; then
+    GL_COND_OBJ_WINDOWS_THREAD_TRUE='#'
+    GL_COND_OBJ_WINDOWS_THREAD_FALSE='#'
+  fi
 
-  case "$host_os" in
-    mingw*)
 
 
+     if case "$host_os" in mingw*) true;; *) false;; esac; then
+  GL_COND_OBJ_WINDOWS_TLS_TRUE=
+  GL_COND_OBJ_WINDOWS_TLS_FALSE='#'
+else
+  GL_COND_OBJ_WINDOWS_TLS_TRUE='#'
+  GL_COND_OBJ_WINDOWS_TLS_FALSE=
+fi
+:
+    if test -z "${GL_COND_OBJ_WINDOWS_TLS_TRUE}" && test -z "${GL_COND_OBJ_WINDOWS_TLS_FALSE}"; then
+    GL_COND_OBJ_WINDOWS_TLS_TRUE='#'
+    GL_COND_OBJ_WINDOWS_TLS_FALSE='#'
+  fi
 
 
 
+  ac_fn_c_check_header_compile "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default"
+if test "x$ac_cv_header_stdint_h" = xyes
+then :
+  printf "%s\n" "#define HAVE_STDINT_H 1" >>confdefs.h
 
+fi
 
 
-  gltests_LIBOBJS="$gltests_LIBOBJS windows-tls.$ac_objext"
 
-      ;;
-  esac
 
 
 
@@ -45468,13 +46421,14 @@ then :
      *)      as_fn_error $? "bad value $enableval for gcc-warnings option" "$LINENO" 5 ;;
    esac
    gl_gcc_warnings=$enableval
-else $as_nop
-  if test -d "$srcdir"/.git; then
+else case e in #(
+  e) if test -d "$srcdir"/.git; then
      gl_gcc_warnings=yes
    else
      gl_gcc_warnings=no
    fi
-
+ ;;
+esac
 fi
 
 
@@ -45492,8 +46446,8 @@ printf %s "checking whether C compiler handles -Werror -Wunknown-warning-option.
 if test ${gl_cv_warn_c__Werror__Wunknown_warning_option+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
   gl_save_compiler_FLAGS="$CFLAGS"
   as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -45510,21 +46464,24 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   gl_cv_warn_c__Werror__Wunknown_warning_option=yes
-else $as_nop
-  gl_cv_warn_c__Werror__Wunknown_warning_option=no
+else case e in #(
+  e) gl_cv_warn_c__Werror__Wunknown_warning_option=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
   CFLAGS="$gl_save_compiler_FLAGS"
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_c__Werror__Wunknown_warning_option" >&5
 printf "%s\n" "$gl_cv_warn_c__Werror__Wunknown_warning_option" >&6; }
 if test "x$gl_cv_warn_c__Werror__Wunknown_warning_option" = xyes
 then :
   gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror'
-else $as_nop
-  gl_unknown_warnings_are_errors=
+else case e in #(
+  e) gl_unknown_warnings_are_errors= ;;
+esac
 fi
 
   ac_ext=c
@@ -45541,8 +46498,8 @@ printf %s "checking whether C compiler handles -Werror... " >&6; }
 if test ${gl_cv_warn_c__Werror+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
   gl_save_compiler_FLAGS="$CFLAGS"
   as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -45559,13 +46516,15 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   gl_cv_warn_c__Werror=yes
-else $as_nop
-  gl_cv_warn_c__Werror=no
+else case e in #(
+  e) gl_cv_warn_c__Werror=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
   CFLAGS="$gl_save_compiler_FLAGS"
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_c__Werror" >&5
 printf "%s\n" "$gl_cv_warn_c__Werror" >&6; }
@@ -45591,15 +46550,16 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 
-  if test -n "$GCC"; then
+  if test -n "$GCC"
+then :
 
             { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -Wno-missing-field-initializers is supported" >&5
 printf %s "checking whether -Wno-missing-field-initializers is supported... " >&6; }
 if test ${gl_cv_cc_nomfi_supported+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  gl_save_CFLAGS="$CFLAGS"
+else case e in #(
+  e) gl_save_CFLAGS="$CFLAGS"
        CFLAGS="$CFLAGS -Wextra -Werror -Wno-missing-field-initializers"
        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -45615,24 +46575,28 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_cc_nomfi_supported=yes
-else $as_nop
-  gl_cv_cc_nomfi_supported=no
+else case e in #(
+  e) gl_cv_cc_nomfi_supported=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
        CFLAGS="$gl_save_CFLAGS"
-
+       ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_nomfi_supported" >&5
 printf "%s\n" "$gl_cv_cc_nomfi_supported" >&6; }
 
-    if test "$gl_cv_cc_nomfi_supported" = yes; then
+    if test "$gl_cv_cc_nomfi_supported" = yes
+then :
+
                   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -Wno-missing-field-initializers is needed" >&5
 printf %s "checking whether -Wno-missing-field-initializers is needed... " >&6; }
 if test ${gl_cv_cc_nomfi_needed+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  gl_save_CFLAGS="$CFLAGS"
+else case e in #(
+  e) gl_save_CFLAGS="$CFLAGS"
          CFLAGS="$CFLAGS -Wextra -Werror"
          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -45654,24 +46618,27 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_cc_nomfi_needed=no
-else $as_nop
-  gl_cv_cc_nomfi_needed=yes
+else case e in #(
+  e) gl_cv_cc_nomfi_needed=yes ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
          CFLAGS="$gl_save_CFLAGS"
-
+         ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_nomfi_needed" >&5
 printf "%s\n" "$gl_cv_cc_nomfi_needed" >&6; }
-    fi
+
+fi
 
                 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -Wuninitialized is supported" >&5
 printf %s "checking whether -Wuninitialized is supported... " >&6; }
 if test ${gl_cv_cc_uninitialized_supported+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  gl_save_CFLAGS="$CFLAGS"
+else case e in #(
+  e) gl_save_CFLAGS="$CFLAGS"
        CFLAGS="$CFLAGS -Werror -Wuninitialized"
        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -45687,17 +46654,19 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   gl_cv_cc_uninitialized_supported=yes
-else $as_nop
-  gl_cv_cc_uninitialized_supported=no
+else case e in #(
+  e) gl_cv_cc_uninitialized_supported=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
        CFLAGS="$gl_save_CFLAGS"
-
+       ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_uninitialized_supported" >&5
 printf "%s\n" "$gl_cv_cc_uninitialized_supported" >&6; }
 
-  fi
+fi
 
   # List all gcc warning categories.
   # To compare this list to your installed GCC's, run this Bash command:
@@ -45708,7 +46677,7 @@ printf "%s\n" "$gl_cv_cc_uninitialized_supported" >&6; }
   #  <(LC_ALL=C gcc --help=warnings | sed -n 's/^  \(-[^ ]*\) .*/\1/p' | sort)
 
   ws=
-  for gl_manywarn_item in -fanalyzer -fno-common \
+  for gl_manywarn_item in -fanalyzer -fstrict-flex-arrays \
     -Wall \
     -Warith-conversion \
     -Wbad-function-cast \
@@ -45736,6 +46705,7 @@ printf "%s\n" "$gl_cv_cc_uninitialized_supported" >&6; }
     -Wpointer-arith \
     -Wshadow \
     -Wstack-protector \
+    -Wstrict-flex-arrays \
     -Wstrict-overflow \
     -Wstrict-prototypes \
     -Wsuggest-attribute=cold \
@@ -45766,23 +46736,30 @@ printf "%s\n" "$gl_cv_cc_uninitialized_supported" >&6; }
   # them here so that the above 'comm' command doesn't report a false match.
   as_fn_append ws ' -Warray-bounds=2'
   as_fn_append ws ' -Wattribute-alias=2'
+  as_fn_append ws ' -Wbidi-chars=any,ucn'
   as_fn_append ws ' -Wformat-overflow=2'
   as_fn_append ws ' -Wformat=2'
   as_fn_append ws ' -Wformat-truncation=2'
   as_fn_append ws ' -Wimplicit-fallthrough=5'
   as_fn_append ws ' -Wshift-overflow=2'
+  as_fn_append ws ' -Wuse-after-free=3'
   as_fn_append ws ' -Wunused-const-variable=2'
   as_fn_append ws ' -Wvla-larger-than=4031'
 
   # These are needed for older GCC versions.
-  if test -n "$GCC"; then
-    case `($CC --version) 2>/dev/null` in
+  if test -n "$GCC" && gl_gcc_version=`($CC --version) 2>/dev/null`; then
+    case $gl_gcc_version in
       'gcc (GCC) '[0-3].* | \
       'gcc (GCC) '4.[0-7].*)
         as_fn_append ws ' -fdiagnostics-show-option'
         as_fn_append ws ' -funit-at-a-time'
           ;;
     esac
+    case $gl_gcc_version in
+      'gcc (GCC) '[0-9].*)
+        as_fn_append ws ' -fno-common'
+          ;;
+    esac
   fi
 
   # Disable specific options as needed.
@@ -45794,15 +46771,9 @@ printf "%s\n" "$gl_cv_cc_uninitialized_supported" >&6; }
     as_fn_append ws ' -Wno-uninitialized'
   fi
 
-  # Some warnings have too many false alarms in GCC 10.1.
-  # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93695
-  as_fn_append ws ' -Wno-analyzer-double-free'
-  # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94458
+  # This warning have too many false alarms in GCC 11.2.1.
+  # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101713
   as_fn_append ws ' -Wno-analyzer-malloc-leak'
-  # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94851
-  as_fn_append ws ' -Wno-analyzer-null-dereference'
-  # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95758
-  as_fn_append ws ' -Wno-analyzer-use-after-free'
 
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
@@ -45829,7 +46800,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
   for w in $ws; do
 
 
-as_gl_Warn=`printf "%s\n" "gl_cv_warn_c_$w" | $as_tr_sh`
+as_gl_Warn=`printf "%s\n" "gl_cv_warn_c_$w" | sed "$as_sed_sh"`
 gl_positive="$w"
 case $gl_positive in
   -Wno-*) gl_positive=-W`expr "X$gl_positive" : 'X-Wno-\(.*\)'` ;;
@@ -45839,8 +46810,8 @@ printf %s "checking whether C compiler handles $w... " >&6; }
 if eval test \${$as_gl_Warn+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
   gl_save_compiler_FLAGS="$CFLAGS"
   as_fn_append CFLAGS " $gl_unknown_warnings_are_errors $gl_positive"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -45857,13 +46828,15 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   eval "$as_gl_Warn=yes"
-else $as_nop
-  eval "$as_gl_Warn=no"
+else case e in #(
+  e) eval "$as_gl_Warn=no" ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
   CFLAGS="$gl_save_compiler_FLAGS"
-
+ ;;
+esac
 fi
 eval ac_res=\$$as_gl_Warn
               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
@@ -45882,8 +46855,8 @@ printf %s "checking whether C compiler handles -Wno-sign-compare... " >&6; }
 if test ${gl_cv_warn_c__Wno_sign_compare+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
   gl_save_compiler_FLAGS="$CFLAGS"
   as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wsign-compare"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -45900,13 +46873,15 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   gl_cv_warn_c__Wno_sign_compare=yes
-else $as_nop
-  gl_cv_warn_c__Wno_sign_compare=no
+else case e in #(
+  e) gl_cv_warn_c__Wno_sign_compare=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
   CFLAGS="$gl_save_compiler_FLAGS"
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_c__Wno_sign_compare" >&5
 printf "%s\n" "$gl_cv_warn_c__Wno_sign_compare" >&6; }
@@ -45923,8 +46898,8 @@ printf %s "checking whether C compiler handles -Wno-unused-parameter... " >&6; }
 if test ${gl_cv_warn_c__Wno_unused_parameter+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
   gl_save_compiler_FLAGS="$CFLAGS"
   as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wunused-parameter"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -45941,13 +46916,15 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   gl_cv_warn_c__Wno_unused_parameter=yes
-else $as_nop
-  gl_cv_warn_c__Wno_unused_parameter=no
+else case e in #(
+  e) gl_cv_warn_c__Wno_unused_parameter=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
   CFLAGS="$gl_save_compiler_FLAGS"
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_c__Wno_unused_parameter" >&5
 printf "%s\n" "$gl_cv_warn_c__Wno_unused_parameter" >&6; }
@@ -45964,8 +46941,8 @@ printf %s "checking whether C compiler handles -Wno-format-nonliteral... " >&6;
 if test ${gl_cv_warn_c__Wno_format_nonliteral+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
   gl_save_compiler_FLAGS="$CFLAGS"
   as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wformat-nonliteral"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -45982,13 +46959,15 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   gl_cv_warn_c__Wno_format_nonliteral=yes
-else $as_nop
-  gl_cv_warn_c__Wno_format_nonliteral=no
+else case e in #(
+  e) gl_cv_warn_c__Wno_format_nonliteral=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
   CFLAGS="$gl_save_compiler_FLAGS"
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_c__Wno_format_nonliteral" >&5
 printf "%s\n" "$gl_cv_warn_c__Wno_format_nonliteral" >&6; }
@@ -46006,8 +46985,8 @@ printf %s "checking whether C compiler handles -fdiagnostics-show-option... " >&
 if test ${gl_cv_warn_c__fdiagnostics_show_option+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
   gl_save_compiler_FLAGS="$CFLAGS"
   as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -fdiagnostics-show-option"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -46024,13 +47003,15 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   gl_cv_warn_c__fdiagnostics_show_option=yes
-else $as_nop
-  gl_cv_warn_c__fdiagnostics_show_option=no
+else case e in #(
+  e) gl_cv_warn_c__fdiagnostics_show_option=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
   CFLAGS="$gl_save_compiler_FLAGS"
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_c__fdiagnostics_show_option" >&5
 printf "%s\n" "$gl_cv_warn_c__fdiagnostics_show_option" >&6; }
@@ -46047,8 +47028,8 @@ printf %s "checking whether C compiler handles -funit-at-a-time... " >&6; }
 if test ${gl_cv_warn_c__funit_at_a_time+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
   gl_save_compiler_FLAGS="$CFLAGS"
   as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -funit-at-a-time"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -46065,13 +47046,15 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   gl_cv_warn_c__funit_at_a_time=yes
-else $as_nop
-  gl_cv_warn_c__funit_at_a_time=no
+else case e in #(
+  e) gl_cv_warn_c__funit_at_a_time=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
   CFLAGS="$gl_save_compiler_FLAGS"
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_c__funit_at_a_time" >&5
 printf "%s\n" "$gl_cv_warn_c__funit_at_a_time" >&6; }
@@ -46088,8 +47071,8 @@ printf %s "checking whether C compiler handles -fno-common... " >&6; }
 if test ${gl_cv_warn_c__fno_common+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
   gl_save_compiler_FLAGS="$CFLAGS"
   as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -fno-common"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -46106,13 +47089,15 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   gl_cv_warn_c__fno_common=yes
-else $as_nop
-  gl_cv_warn_c__fno_common=no
+else case e in #(
+  e) gl_cv_warn_c__fno_common=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
   CFLAGS="$gl_save_compiler_FLAGS"
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_c__fno_common" >&5
 printf "%s\n" "$gl_cv_warn_c__fno_common" >&6; }
@@ -46126,7 +47111,7 @@ fi
 
 
 
-printf "%s\n" "#define lint 1" >>confdefs.h
+printf "%s\n" "#define GCC_LINT 1" >>confdefs.h
 
 
 printf "%s\n" "#define _FORTIFY_SOURCE 2" >>confdefs.h
@@ -46142,50 +47127,6 @@ printf "%s\n" "#define GNULIB_PORTCHECK 1" >>confdefs.h
   nw="$nw -Wsuggest-attribute=pure"
   nw="$nw -Wduplicated-branches"    # Too many false alarms
 
-  # Avoid false alarm in lib/vasnprintf.c.
-  # https://lists.gnu.org/r/bug-gnulib/2021-01/msg00031.html
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-analyzer-null-argument" >&5
-printf %s "checking whether C compiler handles -Wno-analyzer-null-argument... " >&6; }
-if test ${gl_cv_warn_c__Wno_analyzer_null_argument+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-
-  gl_save_compiler_FLAGS="$CFLAGS"
-  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wanalyzer-null-argument"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main (void)
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
-  gl_cv_warn_c__Wno_analyzer_null_argument=yes
-else $as_nop
-  gl_cv_warn_c__Wno_analyzer_null_argument=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
-    conftest$ac_exeext conftest.$ac_ext
-  CFLAGS="$gl_save_compiler_FLAGS"
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_c__Wno_analyzer_null_argument" >&5
-printf "%s\n" "$gl_cv_warn_c__Wno_analyzer_null_argument" >&6; }
-if test "x$gl_cv_warn_c__Wno_analyzer_null_argument" = xyes
-then :
-  as_fn_append WARN_CFLAGS " -Wno-analyzer-null-argument"
-fi
-
-
-
 
   gl_warn_set=
   set x $WARN_CFLAGS; shift
@@ -46209,8 +47150,8 @@ printf %s "checking for inline... " >&6; }
 if test ${ac_cv_c_inline+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_cv_c_inline=no
+else case e in #(
+  e) ac_cv_c_inline=no
 for ac_kw in inline __inline__ __inline; do
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -46228,7 +47169,8 @@ fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
   test "$ac_cv_c_inline" != no && break
 done
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
 printf "%s\n" "$ac_cv_c_inline" >&6; }
@@ -46260,8 +47202,8 @@ printf %s "checking for $ac_word... " >&6; }
 if test ${ac_cv_path_PR_PROGRAM+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  case $PR_PROGRAM in
+else case e in #(
+  e) case $PR_PROGRAM in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_PR_PROGRAM="$PR_PROGRAM" # Let the user override the test with a path.
   ;;
@@ -46287,6 +47229,7 @@ IFS=$as_save_IFS
 
   test -z "$ac_cv_path_PR_PROGRAM" && ac_cv_path_PR_PROGRAM=""""
   ;;
+esac ;;
 esac
 fi
 PR_PROGRAM=$ac_cv_path_PR_PROGRAM
 
 ac_header_dirent=no
 for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
-  as_ac_Header=`printf "%s\n" "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
+  as_ac_Header=`printf "%s\n" "ac_cv_header_dirent_$ac_hdr" | sed "$as_sed_sh"`
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5
 printf %s "checking for $ac_hdr that defines DIR... " >&6; }
 if eval test \${$as_ac_Header+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/types.h>
 #include <$ac_hdr>
@@ -46347,10 +47290,12 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   eval "$as_ac_Header=yes"
-else $as_nop
-  eval "$as_ac_Header=no"
+else case e in #(
+  e) eval "$as_ac_Header=no" ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 eval ac_res=\$$as_ac_Header
               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
@@ -46358,7 +47303,7 @@ printf "%s\n" "$ac_res" >&6; }
 if eval test \"x\$"$as_ac_Header"\" = x"yes"
 then :
   cat >>confdefs.h <<_ACEOF
-#define `printf "%s\n" "HAVE_$ac_hdr" | $as_tr_cpp` 1
+#define `printf "%s\n" "HAVE_$ac_hdr" | sed "$as_sed_cpp"` 1
 _ACEOF
 
 ac_header_dirent=$ac_hdr; break
@@ -46372,15 +47317,21 @@ printf %s "checking for library containing opendir... " >&6; }
 if test ${ac_cv_search_opendir+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_func_search_save_LIBS=$LIBS
+else case e in #(
+  e) ac_func_search_save_LIBS=$LIBS
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-char opendir ();
+   builtin and then its argument prototype would still apply.
+   The 'extern "C"' is for builds by C++ compilers;
+   although this is not generally supported in C code supporting it here
+   has little cost and some practical benefit (sr 110532).  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char opendir (void);
 int
 main (void)
 {
@@ -46411,11 +47362,13 @@ done
 if test ${ac_cv_search_opendir+y}
 then :
 
-else $as_nop
-  ac_cv_search_opendir=no
+else case e in #(
+  e) ac_cv_search_opendir=no ;;
+esac
 fi
 rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
+LIBS=$ac_func_search_save_LIBS ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
 printf "%s\n" "$ac_cv_search_opendir" >&6; }
@@ -46432,15 +47385,21 @@ printf %s "checking for library containing opendir... " >&6; }
 if test ${ac_cv_search_opendir+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_func_search_save_LIBS=$LIBS
+else case e in #(
+  e) ac_func_search_save_LIBS=$LIBS
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-char opendir ();
+   builtin and then its argument prototype would still apply.
+   The 'extern "C"' is for builds by C++ compilers;
+   although this is not generally supported in C code supporting it here
+   has little cost and some practical benefit (sr 110532).  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char opendir (void);
 int
 main (void)
 {
@@ -46471,11 +47430,13 @@ done
 if test ${ac_cv_search_opendir+y}
 then :
 
-else $as_nop
-  ac_cv_search_opendir=no
+else case e in #(
+  e) ac_cv_search_opendir=no ;;
+esac
 fi
 rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
+LIBS=$ac_func_search_save_LIBS ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
 printf "%s\n" "$ac_cv_search_opendir" >&6; }
@@ -46493,8 +47454,8 @@ printf %s "checking for sys/wait.h that is POSIX.1 compatible... " >&6; }
 if test ${ac_cv_header_sys_wait_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/types.h>
 #include <sys/wait.h>
@@ -46518,10 +47479,12 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   ac_cv_header_sys_wait_h=yes
-else $as_nop
-  ac_cv_header_sys_wait_h=no
+else case e in #(
+  e) ac_cv_header_sys_wait_h=no ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_sys_wait_h" >&5
 printf "%s\n" "$ac_cv_header_sys_wait_h" >&6; }
@@ -46537,8 +47500,8 @@ fi
 if test "x$ac_cv_type_pid_t" = xyes
 then :
 
-else $as_nop
-                                          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e)                                         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
           #if defined _WIN64 && !defined __CYGWIN__
@@ -46557,14 +47520,16 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   ac_pid_type='int'
-else $as_nop
-  ac_pid_type='__int64'
+else case e in #(
+  e) ac_pid_type='__int64' ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
 
 printf "%s\n" "#define pid_t $ac_pid_type" >>confdefs.h
 
-
+     ;;
+esac
 fi
 
 
@@ -46573,6 +47538,7 @@ fi
 
 
 
+
 if test $ac_cv_func_sigprocmask = no; then
   ac_fn_c_check_func "$LINENO" "sigblock" "ac_cv_func_sigblock"
 if test "x$ac_cv_func_sigblock" = xyes
@@ -46587,8 +47553,8 @@ printf %s "checking whether closedir returns void... " >&6; }
 if test ${ac_cv_func_closedir_void+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <$ac_header_dirent>
@@ -46606,10 +47572,12 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   ac_cv_func_closedir_void=no
-else $as_nop
-  ac_cv_func_closedir_void=yes
+else case e in #(
+  e) ac_cv_func_closedir_void=yes ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_closedir_void" >&5
 printf "%s\n" "$ac_cv_func_closedir_void" >&6; }
@@ -46630,19 +47598,19 @@ printf %s "checking for working fork... " >&6; }
 if test ${ac_cv_func_fork_works+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test "$cross_compiling" = yes
+else case e in #(
+  e) if test "$cross_compiling" = yes
 then :
   ac_cv_func_fork_works=cross
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $ac_includes_default
 int
 main (void)
 {
 
-         /* By Ruediger Kuhlmann. */
+         /* By R. Kuhlmann. */
          return fork () < 0;
 
   ;
@@ -46652,13 +47620,16 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   ac_cv_func_fork_works=yes
-else $as_nop
-  ac_cv_func_fork_works=no
+else case e in #(
+  e) ac_cv_func_fork_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
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fork_works" >&5
 printf "%s\n" "$ac_cv_func_fork_works" >&6; }
@@ -46686,12 +47657,12 @@ printf %s "checking for working vfork... " >&6; }
 if test ${ac_cv_func_vfork_works+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test "$cross_compiling" = yes
+else case e in #(
+  e) if test "$cross_compiling" = yes
 then :
   ac_cv_func_vfork_works=cross
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 /* Thanks to Paul Eggert for this test.  */
 $ac_includes_default
@@ -46802,13 +47773,16 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   ac_cv_func_vfork_works=yes
-else $as_nop
-  ac_cv_func_vfork_works=no
+else case e in #(
+  e) ac_cv_func_vfork_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
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_vfork_works" >&5
 printf "%s\n" "$ac_cv_func_vfork_works" >&6; }
@@ -46856,8 +47830,9 @@ printf %s "checking whether NLS is requested... " >&6; }
 if test ${enable_nls+y}
 then :
   enableval=$enable_nls; USE_NLS=$enableval
-else $as_nop
-  USE_NLS=yes
+else case e in #(
+  e) USE_NLS=yes ;;
+esac
 fi
 
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5
@@ -46905,8 +47880,8 @@ printf %s "checking for $ac_word... " >&6; }
 if test ${ac_cv_path_MSGFMT+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  case "$MSGFMT" in
+else case e in #(
+  e) case "$MSGFMT" in
   [\\/]* | ?:[\\/]*)
     ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
     ;;
@@ -46929,6 +47904,7 @@ else $as_nop
     IFS="$ac_save_IFS"
   test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":"
     ;;
+esac ;;
 esac
 fi
 MSGFMT="$ac_cv_path_MSGFMT"
@@ -46947,8 +47923,8 @@ printf %s "checking for $ac_word... " >&6; }
 if test ${ac_cv_path_GMSGFMT+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  case $GMSGFMT in
+else case e in #(
+  e) case $GMSGFMT in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
   ;;
@@ -46974,6 +47950,7 @@ IFS=$as_save_IFS
 
   test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
   ;;
+esac ;;
 esac
 fi
 GMSGFMT=$ac_cv_path_GMSGFMT
@@ -47033,8 +48010,8 @@ printf %s "checking for $ac_word... " >&6; }
 if test ${ac_cv_path_XGETTEXT+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  case "$XGETTEXT" in
+else case e in #(
+  e) case "$XGETTEXT" in
   [\\/]* | ?:[\\/]*)
     ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
     ;;
@@ -47057,6 +48034,7 @@ else $as_nop
     IFS="$ac_save_IFS"
   test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
     ;;
+esac ;;
 esac
 fi
 XGETTEXT="$ac_cv_path_XGETTEXT"
@@ -47111,8 +48089,8 @@ printf %s "checking for $ac_word... " >&6; }
 if test ${ac_cv_path_MSGMERGE+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  case "$MSGMERGE" in
+else case e in #(
+  e) case "$MSGMERGE" in
   [\\/]* | ?:[\\/]*)
     ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path.
     ;;
@@ -47134,6 +48112,7 @@ else $as_nop
     IFS="$ac_save_IFS"
   test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":"
     ;;
+esac ;;
 esac
 fi
 MSGMERGE="$ac_cv_path_MSGMERGE"
@@ -47184,8 +48163,8 @@ printf %s "checking for CFPreferencesCopyAppValue... " >&6; }
 if test ${gt_cv_func_CFPreferencesCopyAppValue+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  gt_save_LIBS="$LIBS"
+else case e in #(
+  e) gt_save_LIBS="$LIBS"
      LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -47201,12 +48180,14 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   gt_cv_func_CFPreferencesCopyAppValue=yes
-else $as_nop
-  gt_cv_func_CFPreferencesCopyAppValue=no
+else case e in #(
+  e) gt_cv_func_CFPreferencesCopyAppValue=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
-     LIBS="$gt_save_LIBS"
+     LIBS="$gt_save_LIBS" ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5
 printf "%s\n" "$gt_cv_func_CFPreferencesCopyAppValue" >&6; }
@@ -47220,8 +48201,8 @@ printf %s "checking for CFLocaleCopyCurrent... " >&6; }
 if test ${gt_cv_func_CFLocaleCopyCurrent+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  gt_save_LIBS="$LIBS"
+else case e in #(
+  e) gt_save_LIBS="$LIBS"
      LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -47237,12 +48218,14 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   gt_cv_func_CFLocaleCopyCurrent=yes
-else $as_nop
-  gt_cv_func_CFLocaleCopyCurrent=no
+else case e in #(
+  e) gt_cv_func_CFLocaleCopyCurrent=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
-     LIBS="$gt_save_LIBS"
+     LIBS="$gt_save_LIBS" ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5
 printf "%s\n" "$gt_cv_func_CFLocaleCopyCurrent" >&6; }
@@ -47298,8 +48281,8 @@ printf %s "checking for GNU gettext in libc... " >&6; }
 if eval test \${$gt_func_gnugettext_libc+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <libintl.h>
@@ -47321,11 +48304,13 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   eval "$gt_func_gnugettext_libc=yes"
-else $as_nop
-  eval "$gt_func_gnugettext_libc=no"
+else case e in #(
+  e) eval "$gt_func_gnugettext_libc=no" ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
-    conftest$ac_exeext conftest.$ac_ext
+    conftest$ac_exeext conftest.$ac_ext ;;
+esac
 fi
 eval ac_res=\$$gt_func_gnugettext_libc
               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
@@ -47367,8 +48352,8 @@ printf %s "checking for iconv... " >&6; }
 if test ${am_cv_func_iconv+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
     am_cv_func_iconv="no, consider installing GNU libiconv"
     am_cv_lib_iconv=no
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -47421,7 +48406,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
       LIBS="$am_save_LIBS"
     fi
-
+   ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5
 printf "%s\n" "$am_cv_func_iconv" >&6; }
@@ -47431,8 +48417,8 @@ printf %s "checking for working iconv... " >&6; }
 if test ${am_cv_func_iconv_works+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-
+else case e in #(
+  e)
                   am_save_LIBS="$LIBS"
       if test $am_cv_lib_iconv = yes; then
         LIBS="$LIBS $LIBICONV"
@@ -47445,8 +48431,8 @@ then :
              aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
              *)            am_cv_func_iconv_works="guessing yes" ;;
            esac
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <iconv.h>
@@ -47575,13 +48561,15 @@ then :
   am_cv_func_iconv_works=yes
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 
         test "$am_cv_func_iconv_works" = no || break
       done
       LIBS="$am_save_LIBS"
-
+     ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5
 printf "%s\n" "$am_cv_func_iconv_works" >&6; }
@@ -48107,8 +49095,8 @@ printf %s "checking for GNU gettext in libintl... " >&6; }
 if eval test \${$gt_func_gnugettext_libintl+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  gt_save_CPPFLAGS="$CPPFLAGS"
+else case e in #(
+  e) gt_save_CPPFLAGS="$CPPFLAGS"
             CPPFLAGS="$CPPFLAGS $INCINTL"
             gt_save_LIBS="$LIBS"
             LIBS="$LIBS $LIBINTL"
@@ -48138,8 +49126,9 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   eval "$gt_func_gnugettext_libintl=yes"
-else $as_nop
-  eval "$gt_func_gnugettext_libintl=no"
+else case e in #(
+  e) eval "$gt_func_gnugettext_libintl=no" ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
@@ -48179,7 +49168,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
             fi
             CPPFLAGS="$gt_save_CPPFLAGS"
-            LIBS="$gt_save_LIBS"
+            LIBS="$gt_save_LIBS" ;;
+esac
 fi
 eval ac_res=\$$gt_func_gnugettext_libintl
               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
@@ -48305,8 +49295,8 @@ cat >confcache <<\_ACEOF
 # config.status only pays attention to the cache file if you give it
 # the --recheck option to rerun configure.
 #
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# 'ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* 'ac_cv_foo' will be assigned the
 # following values.
 
 _ACEOF
@@ -48336,14 +49326,14 @@ printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;}
   (set) 2>&1 |
     case $as_nl`(ac_space=' '; set) 2>&1` in #(
     *${as_nl}ac_space=\ *)
-      # `set' does not quote correctly, so add quotes: double-quote
+      # 'set' does not quote correctly, so add quotes: double-quote
       # substitution turns \\\\ into \\, and sed turns \\ into \.
       sed -n \
        "s/'/'\\\\''/g;
          s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
       ;; #(
     *)
-      # `set' quotes correctly as required by POSIX, so do not add quotes.
+      # 'set' quotes correctly as required by POSIX, so do not add quotes.
       sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
       ;;
     esac |
@@ -48412,6 +49402,18 @@ printf %s "checking that generated files are newer than configure... " >&6; }
    fi
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: done" >&5
 printf "%s\n" "done" >&6; }
+case $enable_silent_rules in # (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+esac
+if test $am_cv_make_support_nested_variables = yes; then
+    AM_V='$(V)'
+  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+  AM_V=$AM_DEFAULT_VERBOSITY
+  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+
  if test -n "$EXEEXT"; then
   am__EXEEXT_TRUE=
   am__EXEEXT_FALSE='#'
@@ -48428,130 +49430,78 @@ if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
   as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+# Check whether --enable-year2038 was given.
+if test ${enable_year2038+y}
+then :
+  enableval=$enable_year2038;
+fi
+
 if test -z "${GL_COND_LIBTOOL_TRUE}" && test -z "${GL_COND_LIBTOOL_FALSE}"; then
   as_fn_error $? "conditional \"GL_COND_LIBTOOL\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-if test -z "${GL_GENERATE_ALLOCA_H_TRUE}" && test -z "${GL_GENERATE_ALLOCA_H_FALSE}"; then
-  as_fn_error $? "conditional \"GL_GENERATE_ALLOCA_H\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
 test "X$DEFS" = X-DHAVE_CONFIG_H && DEFS=
-if test -z "${GL_GENERATE_ERRNO_H_TRUE}" && test -z "${GL_GENERATE_ERRNO_H_FALSE}"; then
-  as_fn_error $? "conditional \"GL_GENERATE_ERRNO_H\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${GL_GENERATE_FLOAT_H_TRUE}" && test -z "${GL_GENERATE_FLOAT_H_FALSE}"; then
-  as_fn_error $? "conditional \"GL_GENERATE_FLOAT_H\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${GL_GENERATE_FNMATCH_H_TRUE}" && test -z "${GL_GENERATE_FNMATCH_H_FALSE}"; then
-  as_fn_error $? "conditional \"GL_GENERATE_FNMATCH_H\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${GL_GENERATE_FNMATCH_H_TRUE}" && test -z "${GL_GENERATE_FNMATCH_H_FALSE}"; then
-  as_fn_error $? "conditional \"GL_GENERATE_FNMATCH_H\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
 if test -z "${GNU_MAKE_TRUE}" && test -z "${GNU_MAKE_FALSE}"; then
   as_fn_error $? "conditional \"GNU_MAKE\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-if test -z "${GL_GENERATE_ICONV_H_TRUE}" && test -z "${GL_GENERATE_ICONV_H_FALSE}"; then
-  as_fn_error $? "conditional \"GL_GENERATE_ICONV_H\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${GL_GENERATE_ICONV_H_TRUE}" && test -z "${GL_GENERATE_ICONV_H_FALSE}"; then
-  as_fn_error $? "conditional \"GL_GENERATE_ICONV_H\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${GL_GENERATE_ICONV_H_TRUE}" && test -z "${GL_GENERATE_ICONV_H_FALSE}"; then
-  as_fn_error $? "conditional \"GL_GENERATE_ICONV_H\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${GL_GENERATE_LIMITS_H_TRUE}" && test -z "${GL_GENERATE_LIMITS_H_FALSE}"; then
-  as_fn_error $? "conditional \"GL_GENERATE_LIMITS_H\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${GL_GENERATE_LIMITS_H_TRUE}" && test -z "${GL_GENERATE_LIMITS_H_FALSE}"; then
-  as_fn_error $? "conditional \"GL_GENERATE_LIMITS_H\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${GL_GENERATE_STDINT_H_TRUE}" && test -z "${GL_GENERATE_STDINT_H_FALSE}"; then
-  as_fn_error $? "conditional \"GL_GENERATE_STDINT_H\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${GL_GENERATE_STDDEF_H_TRUE}" && test -z "${GL_GENERATE_STDDEF_H_FALSE}"; then
-  as_fn_error $? "conditional \"GL_GENERATE_STDDEF_H\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
 CONFIG_INCLUDE=lib/config.h
 
-if test -z "${GL_GENERATE_SIGSEGV_H_TRUE}" && test -z "${GL_GENERATE_SIGSEGV_H_FALSE}"; then
-  as_fn_error $? "conditional \"GL_GENERATE_SIGSEGV_H\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${GL_GENERATE_STDALIGN_H_TRUE}" && test -z "${GL_GENERATE_STDALIGN_H_FALSE}"; then
-  as_fn_error $? "conditional \"GL_GENERATE_STDALIGN_H\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${GL_GENERATE_STDARG_H_TRUE}" && test -z "${GL_GENERATE_STDARG_H_FALSE}"; then
-  as_fn_error $? "conditional \"GL_GENERATE_STDARG_H\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${GL_GENERATE_STDBOOL_H_TRUE}" && test -z "${GL_GENERATE_STDBOOL_H_FALSE}"; then
-  as_fn_error $? "conditional \"GL_GENERATE_STDBOOL_H\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_FALSE}"; then
-  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_FALSE}"; then
-  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_FALSE}"; then
-  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-
 
     gl_libobjs=
     gl_ltlibobjs=
+    gl_libobjdeps=
     if test -n "$gl_LIBOBJS"; then
       # Remove the extension.
       sed_drop_objext='s/\.o$//;s/\.obj$//'
+      sed_dirname1='s,//*,/,g'
+      sed_dirname2='s,\(.\)/$,\1,'
+      sed_dirname3='s,^[^/]*$,.,'
+      sed_dirname4='s,\(.\)/[^/]*$,\1,'
+      sed_basename1='s,.*/,,'
       for i in `for i in $gl_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do
         gl_libobjs="$gl_libobjs $i.$ac_objext"
         gl_ltlibobjs="$gl_ltlibobjs $i.lo"
+        i_dir=`echo "$i" | sed -e "$sed_dirname1" -e "$sed_dirname2" -e "$sed_dirname3" -e "$sed_dirname4"`
+        i_base=`echo "$i" | sed -e "$sed_basename1"`
+        gl_libobjdeps="$gl_libobjdeps $i_dir/\$(DEPDIR)/$i_base.Po"
       done
     fi
     gl_LIBOBJS=$gl_libobjs
 
     gl_LTLIBOBJS=$gl_ltlibobjs
 
+    gl_LIBOBJDEPS=$gl_libobjdeps
+
+
 
 
-if test -z "${GL_GENERATE_NETINET_IN_H_TRUE}" && test -z "${GL_GENERATE_NETINET_IN_H_FALSE}"; then
-  as_fn_error $? "conditional \"GL_GENERATE_NETINET_IN_H\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
 
     gltests_libobjs=
     gltests_ltlibobjs=
+    gltests_libobjdeps=
     if test -n "$gltests_LIBOBJS"; then
       # Remove the extension.
       sed_drop_objext='s/\.o$//;s/\.obj$//'
+      sed_dirname1='s,//*,/,g'
+      sed_dirname2='s,\(.\)/$,\1,'
+      sed_dirname3='s,^[^/]*$,.,'
+      sed_dirname4='s,\(.\)/[^/]*$,\1,'
+      sed_basename1='s,.*/,,'
       for i in `for i in $gltests_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do
         gltests_libobjs="$gltests_libobjs $i.$ac_objext"
         gltests_ltlibobjs="$gltests_ltlibobjs $i.lo"
+        i_dir=`echo "$i" | sed -e "$sed_dirname1" -e "$sed_dirname2" -e "$sed_dirname3" -e "$sed_dirname4"`
+        i_base=`echo "$i" | sed -e "$sed_basename1"`
+        gltests_libobjdeps="$gltests_libobjdeps $i_dir/\$(DEPDIR)/$i_base.Po"
       done
     fi
     gltests_LIBOBJS=$gltests_libobjs
 
     gltests_LTLIBOBJS=$gltests_ltlibobjs
 
+    gltests_LIBOBJDEPS=$gltests_libobjdeps
+
 
 
 : "${CONFIG_STATUS=./config.status}"
@@ -48582,7 +49532,6 @@ cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
 
 # Be more Bourne compatible
 DUALCASE=1; export DUALCASE # for MKS sh
-as_nop=:
 if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
 then :
   emulate sh
@@ -48591,12 +49540,13 @@ then :
   # is contrary to our usage.  Disable this feature.
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
-else $as_nop
-  case `(set -o) 2>/dev/null` in #(
+else case e in #(
+  e) case `(set -o) 2>/dev/null` in #(
   *posix*) :
     set -o posix ;; #(
   *) :
      ;;
+esac ;;
 esac
 fi
 
@@ -48668,7 +49618,7 @@ IFS=$as_save_IFS
 
      ;;
 esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
+# We did not find ourselves, most probably we were run as 'sh COMMAND'
 # in which case we are not to be found in the path.
 if test "x$as_myself" = x; then
   as_myself=$0
@@ -48697,7 +49647,6 @@ as_fn_error ()
 } # as_fn_error
 
 
-
 # as_fn_set_status STATUS
 # -----------------------
 # Set $? to STATUS, without forking.
@@ -48737,11 +49686,12 @@ then :
   {
     eval $1+=\$2
   }'
-else $as_nop
-  as_fn_append ()
+else case e in #(
+  e) as_fn_append ()
   {
     eval $1=\$$1\$2
-  }
+  } ;;
+esac
 fi # as_fn_append
 
 # as_fn_arith ARG...
@@ -48755,11 +49705,12 @@ then :
   {
     as_val=$(( $* ))
   }'
-else $as_nop
-  as_fn_arith ()
+else case e in #(
+  e) as_fn_arith ()
   {
     as_val=`expr "$@" || test $? -eq 1`
-  }
+  } ;;
+esac
 fi # as_fn_arith
 
 
@@ -48842,9 +49793,9 @@ if (echo >conf$$.file) 2>/dev/null; then
   if ln -s conf$$.file conf$$ 2>/dev/null; then
     as_ln_s='ln -s'
     # ... but there are two gotchas:
-    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -pR'.
+    # 1) On MSYS, both 'ln -s file dir' and 'ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; 'ln -s' creates a wrapper executable.
+    # In both cases, we have to default to 'cp -pR'.
     ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
       as_ln_s='cp -pR'
   elif ln conf$$.file conf$$ 2>/dev/null; then
@@ -48925,10 +49876,12 @@ as_test_x='test -x'
 as_executable_p=as_fn_executable_p
 
 # Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+as_sed_cpp="y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
+as_tr_cpp="eval sed '$as_sed_cpp'" # deprecated
 
 # Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+as_sed_sh="y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+as_tr_sh="eval sed '$as_sed_sh'" # deprecated
 
 
 exec 6>&1
@@ -48943,8 +49896,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by GNU diffutils $as_me 3.8, which was
-generated by GNU Autoconf 2.71.  Invocation command line was
+This file was extended by GNU diffutils $as_me 3.10, which was
+generated by GNU Autoconf 2.72c.20-9c018.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -48977,7 +49930,7 @@ _ACEOF
 
 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 ac_cs_usage="\
-\`$as_me' instantiates files and other configuration actions
+'$as_me' instantiates files and other configuration actions
 from templates according to the current configuration.  Unless the files
 and actions are specified as TAGs, all are instantiated by default.
 
@@ -49017,11 +49970,11 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
-GNU diffutils config.status 3.8
-configured by $0, generated by GNU Autoconf 2.71,
+GNU diffutils config.status 3.10
+configured by $0, generated by GNU Autoconf 2.72c.20-9c018,
   with options \\"\$ac_cs_config\\"
 
-Copyright (C) 2021 Free Software Foundation, Inc.
+Copyright (C) 2023 Free Software Foundation, Inc.
 This config.status script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it."
 
@@ -49083,8 +50036,8 @@ do
     ac_need_defaults=false;;
   --he | --h)
     # Conflict between --help and --header
-    as_fn_error $? "ambiguous option: \`$1'
-Try \`$0 --help' for more information.";;
+    as_fn_error $? "ambiguous option: '$1'
+Try '$0 --help' for more information.";;
   --help | --hel | -h )
     printf "%s\n" "$ac_cs_usage"; exit ;;
   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
@@ -49092,8 +50045,8 @@ Try \`$0 --help' for more information.";;
     ac_cs_silent=: ;;
 
   # This is an error.
-  -*) as_fn_error $? "unrecognized option: \`$1'
-Try \`$0 --help' for more information." ;;
+  -*) as_fn_error $? "unrecognized option: '$1'
+Try '$0 --help' for more information." ;;
 
   *) as_fn_append ac_config_targets " $1"
      ac_need_defaults=false ;;
@@ -49167,7 +50120,7 @@ do
     "man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;;
     "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;;
 
-  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+  *) as_fn_error $? "invalid argument: '$ac_config_target'" "$LINENO" 5;;
   esac
 done
 
@@ -49188,7 +50141,7 @@ fi
 # creating and moving files from /tmp can sometimes cause problems.
 # Hook for its removal unless debugging.
 # Note that there is a small window in which the directory will not be cleaned:
-# after its creation but before its name has been assigned to `$tmp'.
+# after its creation but before its name has been assigned to '$tmp'.
 $debug ||
 {
   tmp= ac_tmp=
@@ -49212,7 +50165,7 @@ ac_tmp=$tmp
 
 # Set up the scripts for CONFIG_FILES section.
 # No need to generate them if there are no CONFIG_FILES.
-# This happens for instance with `./config.status config.h'.
+# This happens for instance with './config.status config.h'.
 if test -n "$CONFIG_FILES"; then
 
 
@@ -49370,13 +50323,13 @@ fi # test -n "$CONFIG_FILES"
 
 # Set up the scripts for CONFIG_HEADERS section.
 # No need to generate them if there are no CONFIG_HEADERS.
-# This happens for instance with `./config.status Makefile'.
+# This happens for instance with './config.status Makefile'.
 if test -n "$CONFIG_HEADERS"; then
 cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
 BEGIN {
 _ACEOF
 
-# Transform confdefs.h into an awk script `defines.awk', embedded as
+# Transform confdefs.h into an awk script 'defines.awk', embedded as
 # here-document in config.status, that substitutes the proper values into
 # config.h.in to produce config.h.
 
@@ -49486,7 +50439,7 @@ do
   esac
   case $ac_mode$ac_tag in
   :[FHL]*:*);;
-  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+  :L* | :C*:*) as_fn_error $? "invalid tag '$ac_tag'" "$LINENO" 5;;
   :[FH]-) ac_tag=-:-;;
   :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
   esac
       -) ac_f="$ac_tmp/stdin";;
       *) # Look for the file first in the build tree, then in the source tree
         # (if the path is not absolute).  The absolute path cannot be DOS-style,
-        # because $ac_f cannot contain `:'.
+        # because $ac_f cannot contain ':'.
         test -f "$ac_f" ||
           case $ac_f in
           [\\/$]*) false;;
           *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
           esac ||
-          as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+          as_fn_error 1 "cannot find input file: '$ac_f'" "$LINENO" 5;;
       esac
       case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
       as_fn_append ac_file_inputs " '$ac_f'"
     done
 
-    # Let's still pretend it is `configure' which instantiates (i.e., don't
+    # Let's still pretend it is 'configure' which instantiates (i.e., don't
     # use $as_me), people would be surprised to read:
     #    /* config.h.  Generated by config.status.  */
     configure_input='Generated from '`
@@ -49653,7 +50606,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 esac
 _ACEOF
 
-# Neutralize VPATH when `$srcdir' = `.'.
+# Neutralize VPATH when '$srcdir' = '.'.
 # Shell code in configure.ac might set extrasub.
 # FIXME: do we really want to maintain this feature?
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
@@ -49684,9 +50637,9 @@ test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
   { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
   { ac_out=`sed -n '/^[         ]*datarootdir[  ]*:*=/p' \
       "$ac_tmp/out"`; test -z "$ac_out"; } &&
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable 'datarootdir'
 which seems to be undefined.  Please make sure it is defined" >&5
-printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable 'datarootdir'
 which seems to be undefined.  Please make sure it is defined" >&2;}
 
   rm -f "$ac_tmp/stdin"
@@ -49872,15 +50825,15 @@ printf "%s\n" X/"$am_mf" |
    (exit $ac_status); } || am_rc=$?
   done
   if test $am_rc -ne 0; then
-    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
 as_fn_error $? "Something went wrong bootstrapping makefile fragments
     for automatic dependency tracking.  If GNU make was not used, consider
     re-running the configure script with MAKE=\"gmake\" (or whatever is
     necessary).  You can also try re-running configure with the
     '--disable-dependency-tracking' option to at least be able to build
     the package (albeit without support for automatic dependency tracking).
-See \`config.log' for more details" "$LINENO" 5; }
+See 'config.log' for more details" "$LINENO" 5; }
   fi
   { am_dirpart=; unset am_dirpart;}
   { am_filepart=; unset am_filepart;}
index 73adb80..9e822dd 100644 (file)
@@ -1,6 +1,6 @@
 # Configure template for GNU Diffutils.
 
-# Copyright (C) 1994-1995, 1998, 2001-2002, 2004, 2006, 2009-2013, 2015-2021
+# Copyright (C) 1994-1995, 1998, 2001-2002, 2004, 2006, 2009-2013, 2015-2023
 # Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
@@ -84,7 +84,8 @@ if test "$gl_gcc_warnings" = yes; then
 
   AC_SUBST([WARN_CFLAGS])
 
-  AC_DEFINE([lint], [1], [Define to 1 if the compiler is checking for lint.])
+  AC_DEFINE([GCC_LINT], [1],
+    [Define to 1 if the compiler is checking for lint.])
   AC_DEFINE([_FORTIFY_SOURCE], [2],
     [enable compile-time and run-time bounds-checking, and some warnings])
   AC_DEFINE([GNULIB_PORTCHECK], [1], [enable some gnulib portability checks])
@@ -96,10 +97,6 @@ if test "$gl_gcc_warnings" = yes; then
   nw="$nw -Wsuggest-attribute=pure"
   nw="$nw -Wduplicated-branches"    # Too many false alarms
 
-  # Avoid false alarm in lib/vasnprintf.c.
-  # https://lists.gnu.org/r/bug-gnulib/2021-01/msg00031.html
-  gl_WARN_ADD([-Wno-analyzer-null-argument])
-
   gl_MANYWARN_COMPLEMENT([GNULIB_WARN_CFLAGS], [$WARN_CFLAGS], [$nw])
   AC_SUBST([GNULIB_WARN_CFLAGS])
 fi
index 7138d76..300617e 100644 (file)
@@ -1,6 +1,6 @@
 # Makefile for GNU diffutils documentation.
 
-# Copyright (C) 2001-2002, 2009-2013, 2015-2021 Free Software Foundation, Inc.
+# Copyright (C) 2001-2002, 2009-2013, 2015-2023 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
index 1133c58..95178aa 100644 (file)
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.16d from Makefile.am.
+# Makefile.in generated by automake 1.16i from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2021 Free Software Foundation, Inc.
+# Copyright (C) 1994-2023 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,7 @@
 
 # Makefile for GNU diffutils documentation.
 
-# Copyright (C) 2001-2002, 2009-2013, 2015-2021 Free Software Foundation, Inc.
+# Copyright (C) 2001-2002, 2009-2013, 2015-2023 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -86,6 +86,8 @@ am__make_running_with_option = \
   test $$has_opt = yes
 am__make_dryrun = (target_option=n; $(am__make_running_with_option))
 am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+am__rm_f = rm -f $(am__rm_f_notfound)
+am__rm_rf = rm -rf $(am__rm_f_notfound)
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -110,19 +112,22 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/__inline.m4 \
        $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \
        $(top_srcdir)/m4/arpa_inet_h.m4 \
-       $(top_srcdir)/m4/asm-underscore.m4 $(top_srcdir)/m4/atoll.m4 \
+       $(top_srcdir)/m4/asm-underscore.m4 \
+       $(top_srcdir)/m4/assert_h.m4 $(top_srcdir)/m4/atoll.m4 \
        $(top_srcdir)/m4/btowc.m4 $(top_srcdir)/m4/builtin-expect.m4 \
-       $(top_srcdir)/m4/c-stack.m4 $(top_srcdir)/m4/calloc.m4 \
-       $(top_srcdir)/m4/clock_time.m4 $(top_srcdir)/m4/close.m4 \
-       $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
-       $(top_srcdir)/m4/ctype_h.m4 \
+       $(top_srcdir)/m4/c-bool.m4 $(top_srcdir)/m4/c-stack.m4 \
+       $(top_srcdir)/m4/calloc.m4 $(top_srcdir)/m4/clock_time.m4 \
+       $(top_srcdir)/m4/close.m4 $(top_srcdir)/m4/codeset.m4 \
+       $(top_srcdir)/m4/config-h.m4 $(top_srcdir)/m4/ctype_h.m4 \
        $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \
        $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \
        $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \
-       $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \
-       $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \
-       $(top_srcdir)/m4/fcntl.m4 $(top_srcdir)/m4/fcntl_h.m4 \
-       $(top_srcdir)/m4/fdopen.m4 $(top_srcdir)/m4/filenamecat.m4 \
+       $(top_srcdir)/m4/error_h.m4 $(top_srcdir)/m4/exponentd.m4 \
+       $(top_srcdir)/m4/extensions.m4 \
+       $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fclose.m4 \
+       $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \
+       $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopen.m4 \
+       $(top_srcdir)/m4/fflush.m4 $(top_srcdir)/m4/filenamecat.m4 \
        $(top_srcdir)/m4/flexmember.m4 $(top_srcdir)/m4/float_h.m4 \
        $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fnmatch_h.m4 \
        $(top_srcdir)/m4/fopen.m4 $(top_srcdir)/m4/fpieee.m4 \
@@ -138,15 +143,16 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \
        $(top_srcdir)/m4/iconv_h.m4 $(top_srcdir)/m4/iconv_open.m4 \
        $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inet_pton.m4 \
-       $(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/intlmacosx.m4 \
-       $(top_srcdir)/m4/intmax_t.m4 $(top_srcdir)/m4/inttostr.m4 \
-       $(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-       $(top_srcdir)/m4/ioctl.m4 $(top_srcdir)/m4/isblank.m4 \
-       $(top_srcdir)/m4/iswblank.m4 $(top_srcdir)/m4/iswdigit.m4 \
-       $(top_srcdir)/m4/iswxdigit.m4 $(top_srcdir)/m4/langinfo_h.m4 \
-       $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lib-ld.m4 \
-       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-       $(top_srcdir)/m4/libsigsegv.m4 \
+       $(top_srcdir)/m4/inline.m4 \
+       $(top_srcdir)/m4/intl-thread-locale.m4 \
+       $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \
+       $(top_srcdir)/m4/inttostr.m4 $(top_srcdir)/m4/inttypes.m4 \
+       $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/ioctl.m4 \
+       $(top_srcdir)/m4/isblank.m4 $(top_srcdir)/m4/iswblank.m4 \
+       $(top_srcdir)/m4/iswdigit.m4 $(top_srcdir)/m4/iswxdigit.m4 \
+       $(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/largefile.m4 \
+       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libsigsegv.m4 \
        $(top_srcdir)/m4/libunistring-base.m4 \
        $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/localcharset.m4 \
        $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \
@@ -168,11 +174,13 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/netinet_in_h.m4 \
        $(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \
        $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/nstrftime.m4 \
-       $(top_srcdir)/m4/off_t.m4 $(top_srcdir)/m4/open-cloexec.m4 \
+       $(top_srcdir)/m4/nullptr.m4 $(top_srcdir)/m4/off_t.m4 \
+       $(top_srcdir)/m4/open-cloexec.m4 \
        $(top_srcdir)/m4/open-slash.m4 $(top_srcdir)/m4/open.m4 \
-       $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/perror.m4 \
-       $(top_srcdir)/m4/pipe.m4 $(top_srcdir)/m4/po.m4 \
-       $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \
+       $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/perl.m4 \
+       $(top_srcdir)/m4/perror.m4 $(top_srcdir)/m4/pipe.m4 \
+       $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf.m4 \
+       $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/pselect.m4 \
        $(top_srcdir)/m4/pthread-thread.m4 \
        $(top_srcdir)/m4/pthread_h.m4 \
        $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \
@@ -183,9 +191,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/reallocarray.m4 $(top_srcdir)/m4/regex.m4 \
        $(top_srcdir)/m4/sched_h.m4 $(top_srcdir)/m4/select.m4 \
        $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/setlocale_null.m4 \
-       $(top_srcdir)/m4/sigaction.m4 $(top_srcdir)/m4/sigaltstack.m4 \
-       $(top_srcdir)/m4/signal_h.m4 \
-       $(top_srcdir)/m4/signalblocking.m4 \
+       $(top_srcdir)/m4/sigaltstack.m4 $(top_srcdir)/m4/signal_h.m4 \
+       $(top_srcdir)/m4/signalblocking.m4 $(top_srcdir)/m4/sigsegv.m4 \
        $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \
        $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \
        $(top_srcdir)/m4/sockets.m4 $(top_srcdir)/m4/socklen.m4 \
@@ -193,9 +200,9 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/stack-direction.m4 \
        $(top_srcdir)/m4/stat-time.m4 $(top_srcdir)/m4/stat.m4 \
        $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdarg.m4 \
-       $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \
-       $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \
-       $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \
+       $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \
+       $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \
+       $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/stpcpy.m4 \
        $(top_srcdir)/m4/strcase.m4 $(top_srcdir)/m4/strerror.m4 \
        $(top_srcdir)/m4/strerror_r.m4 $(top_srcdir)/m4/string_h.m4 \
        $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strnlen.m4 \
@@ -209,12 +216,12 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/sys_uio_h.m4 \
        $(top_srcdir)/m4/sys_wait_h.m4 $(top_srcdir)/m4/tempname.m4 \
        $(top_srcdir)/m4/thread.m4 $(top_srcdir)/m4/threadlib.m4 \
-       $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/time_r.m4 \
-       $(top_srcdir)/m4/time_rz.m4 $(top_srcdir)/m4/timegm.m4 \
-       $(top_srcdir)/m4/timespec.m4 $(top_srcdir)/m4/tm_gmtoff.m4 \
-       $(top_srcdir)/m4/tzset.m4 $(top_srcdir)/m4/unistd_h.m4 \
-       $(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/vasnprintf.m4 \
-       $(top_srcdir)/m4/vasprintf.m4 $(top_srcdir)/m4/version-etc.m4 \
+       $(top_srcdir)/m4/time.m4 $(top_srcdir)/m4/time_h.m4 \
+       $(top_srcdir)/m4/time_r.m4 $(top_srcdir)/m4/time_rz.m4 \
+       $(top_srcdir)/m4/timegm.m4 $(top_srcdir)/m4/timespec.m4 \
+       $(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/tzset.m4 \
+       $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/unlocked-io.m4 \
+       $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/version-etc.m4 \
        $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/warn-on-use.m4 \
        $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/m4/wchar_h.m4 \
        $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wcrtomb.m4 \
@@ -223,7 +230,6 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/wmemchr.m4 \
        $(top_srcdir)/m4/wmempcpy.m4 $(top_srcdir)/m4/xalloc.m4 \
        $(top_srcdir)/m4/xsize.m4 $(top_srcdir)/m4/xstrtol.m4 \
-       $(top_srcdir)/m4/xvasprintf.m4 $(top_srcdir)/m4/year2038.m4 \
        $(top_srcdir)/m4/zzgnulib.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
@@ -316,10 +322,9 @@ am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 am__uninstall_files_from_dir = { \
-  test -z "$$files" \
-    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
-    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
-         $(am__cd) "$$dir" && rm -f $$files; }; \
+  { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+  || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+       $(am__cd) "$$dir" && echo $$files | $(am__xargs_n) 40 $(am__rm_f); }; \
   }
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 am__DIST_COMMON = $(diffutils_TEXINFOS) $(srcdir)/Makefile.in \
@@ -334,6 +339,7 @@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
 AR = @AR@
 ARFLAGS = @ARFLAGS@
+ASSERT_H = @ASSERT_H@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -347,6 +353,7 @@ CC = @CC@
 CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
 CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
+CLOCK_TIME_LIB = @CLOCK_TIME_LIB@
 CONFIG_INCLUDE = @CONFIG_INCLUDE@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
@@ -358,7 +365,6 @@ DEPDIR = @DEPDIR@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-EGREP = @EGREP@
 EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@
 EMULTIHOP_VALUE = @EMULTIHOP_VALUE@
 ENOLINK_HIDDEN = @ENOLINK_HIDDEN@
@@ -366,14 +372,17 @@ ENOLINK_VALUE = @ENOLINK_VALUE@
 EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@
 EOVERFLOW_VALUE = @EOVERFLOW_VALUE@
 ERRNO_H = @ERRNO_H@
+ERROR_H = @ERROR_H@
 ETAGS = @ETAGS@
 EXEEXT = @EXEEXT@
 FLOAT_H = @FLOAT_H@
 FNMATCH_H = @FNMATCH_H@
 GETOPT_CDEFS_H = @GETOPT_CDEFS_H@
 GETOPT_H = @GETOPT_H@
+GETRANDOM_LIB = @GETRANDOM_LIB@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@
+GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@
 GL_CXXFLAG_ALLOW_WARNINGS = @GL_CXXFLAG_ALLOW_WARNINGS@
 GL_GNULIB_ACCEPT = @GL_GNULIB_ACCEPT@
 GL_GNULIB_ACCEPT4 = @GL_GNULIB_ACCEPT4@
@@ -382,9 +391,11 @@ GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@
 GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@
 GL_GNULIB_BIND = @GL_GNULIB_BIND@
 GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@
+GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@
 GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@
 GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@
 GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@
+GL_GNULIB_CHMOD = @GL_GNULIB_CHMOD@
 GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@
 GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@
 GL_GNULIB_CONNECT = @GL_GNULIB_CONNECT@
@@ -422,6 +433,7 @@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@
 GL_GNULIB_FGETS = @GL_GNULIB_FGETS@
 GL_GNULIB_FNMATCH = @GL_GNULIB_FNMATCH@
 GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@
+GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@
 GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@
 GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@
 GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@
@@ -457,7 +469,9 @@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@
 GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@
 GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@
 GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@
+GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@
 GL_GNULIB_GETPEERNAME = @GL_GNULIB_GETPEERNAME@
+GL_GNULIB_GETPROGNAME = @GL_GNULIB_GETPROGNAME@
 GL_GNULIB_GETRANDOM = @GL_GNULIB_GETRANDOM@
 GL_GNULIB_GETSOCKNAME = @GL_GNULIB_GETSOCKNAME@
 GL_GNULIB_GETSOCKOPT = @GL_GNULIB_GETSOCKOPT@
@@ -489,6 +503,7 @@ GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@
 GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@
 GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@
 GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@
+GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@
 GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@
 GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@
 GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@
@@ -509,6 +524,7 @@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@
 GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@
 GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@
 GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@
+GL_GNULIB_MBSTOWCS = @GL_GNULIB_MBSTOWCS@
 GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@
 GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@
 GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@
@@ -555,6 +571,7 @@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@
 GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@
 GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@
 GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@
+GL_GNULIB_MEMSET_EXPLICIT = @GL_GNULIB_MEMSET_EXPLICIT@
 GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@
 GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@
 GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@
@@ -611,6 +628,7 @@ GL_GNULIB_READ = @GL_GNULIB_READ@
 GL_GNULIB_READLINK = @GL_GNULIB_READLINK@
 GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@
 GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@
+GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@
 GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@
 GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@
 GL_GNULIB_RECV = @GL_GNULIB_RECV@
@@ -674,8 +692,10 @@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@
 GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@
 GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@
 GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@
+GL_GNULIB_TIME = @GL_GNULIB_TIME@
 GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@
 GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@
+GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@
 GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@
 GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@
 GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@
@@ -749,6 +769,7 @@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@
 GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
 GNULIB_WARN_CFLAGS = @GNULIB_WARN_CFLAGS@
 GREP = @GREP@
+HARD_LOCALE_LIB = @HARD_LOCALE_LIB@
 HAVE_ACCEPT4 = @HAVE_ACCEPT4@
 HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@
 HAVE_ALLOCA_H = @HAVE_ALLOCA_H@
@@ -779,6 +800,7 @@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@
 HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
 HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
 HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
+HAVE_DECL_GETW = @HAVE_DECL_GETW@
 HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
 HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
 HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@
@@ -788,6 +810,8 @@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@
 HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
 HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
 HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@
+HAVE_DECL_PROGRAM_INVOCATION_NAME = @HAVE_DECL_PROGRAM_INVOCATION_NAME@
+HAVE_DECL_PUTW = @HAVE_DECL_PUTW@
 HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
 HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
 HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@
@@ -811,6 +835,9 @@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
 HAVE_DPRINTF = @HAVE_DPRINTF@
 HAVE_DUP3 = @HAVE_DUP3@
 HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
+HAVE_ERROR = @HAVE_ERROR@
+HAVE_ERROR_AT_LINE = @HAVE_ERROR_AT_LINE@
+HAVE_ERROR_H = @HAVE_ERROR_H@
 HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
 HAVE_EXECVPE = @HAVE_EXECVPE@
 HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@
@@ -841,12 +868,15 @@ HAVE_GETLOGIN = @HAVE_GETLOGIN@
 HAVE_GETOPT_H = @HAVE_GETOPT_H@
 HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
 HAVE_GETPASS = @HAVE_GETPASS@
+HAVE_GETPROGNAME = @HAVE_GETPROGNAME@
 HAVE_GETRANDOM = @HAVE_GETRANDOM@
 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
 HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@
 HAVE_GETUMASK = @HAVE_GETUMASK@
 HAVE_GRANTPT = @HAVE_GRANTPT@
 HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
+HAVE_IMAXABS = @HAVE_IMAXABS@
+HAVE_IMAXDIV = @HAVE_IMAXDIV@
 HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@
 HAVE_INITSTATE = @HAVE_INITSTATE@
 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
@@ -874,6 +904,7 @@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
 HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
 HAVE_MBTOWC = @HAVE_MBTOWC@
 HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MEMSET_EXPLICIT = @HAVE_MEMSET_EXPLICIT@
 HAVE_MKDIRAT = @HAVE_MKDIRAT@
 HAVE_MKDTEMP = @HAVE_MKDTEMP@
 HAVE_MKFIFO = @HAVE_MKFIFO@
@@ -1031,9 +1062,11 @@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
 HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@
 HAVE_TIMEGM = @HAVE_TIMEGM@
 HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@
+HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@
 HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@
 HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
 HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNISTRING_WOE32DLL_H = @HAVE_UNISTRING_WOE32DLL_H@
 HAVE_UNLINKAT = @HAVE_UNLINKAT@
 HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
 HAVE_USLEEP = @HAVE_USLEEP@
@@ -1083,7 +1116,6 @@ HAVE_WMEMPCPY = @HAVE_WMEMPCPY@
 HAVE_WMEMSET = @HAVE_WMEMSET@
 HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@
 HAVE_XLOCALE_H = @HAVE_XLOCALE_H@
-HAVE__BOOL = @HAVE__BOOL@
 HAVE__EXIT = @HAVE__EXIT@
 HELP2MAN = @HELP2MAN@
 HOST_CPU = @HOST_CPU@
@@ -1149,15 +1181,20 @@ LTLIBOBJS = @LTLIBOBJS@
 LTLIBSIGSEGV = @LTLIBSIGSEGV@
 LTLIBTHREAD = @LTLIBTHREAD@
 MAKEINFO = @MAKEINFO@
+MBRTOWC_LIB = @MBRTOWC_LIB@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
+NANOSLEEP_LIB = @NANOSLEEP_LIB@
 NETINET_IN_H = @NETINET_IN_H@
 NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@
+NEXT_ASSERT_H = @NEXT_ASSERT_H@
 NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@
+NEXT_AS_FIRST_DIRECTIVE_ASSERT_H = @NEXT_AS_FIRST_DIRECTIVE_ASSERT_H@
 NEXT_AS_FIRST_DIRECTIVE_CTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_CTYPE_H@
 NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@
+NEXT_AS_FIRST_DIRECTIVE_ERROR_H = @NEXT_AS_FIRST_DIRECTIVE_ERROR_H@
 NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@
 NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@
 NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H = @NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H@
@@ -1193,6 +1230,7 @@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@
 NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@
 NEXT_CTYPE_H = @NEXT_CTYPE_H@
 NEXT_ERRNO_H = @NEXT_ERRNO_H@
+NEXT_ERROR_H = @NEXT_ERROR_H@
 NEXT_FCNTL_H = @NEXT_FCNTL_H@
 NEXT_FLOAT_H = @NEXT_FLOAT_H@
 NEXT_FNMATCH_H = @NEXT_FNMATCH_H@
@@ -1235,27 +1273,35 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
 PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
 POSUB = @POSUB@
 PRAGMA_COLUMNS = @PRAGMA_COLUMNS@
 PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
 PRIPTR_PREFIX = @PRIPTR_PREFIX@
 PR_PROGRAM = @PR_PROGRAM@
 PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@
+PTHREAD_SIGMASK_LIB = @PTHREAD_SIGMASK_LIB@
 PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
 RANLIB = @RANLIB@
 REPLACE_ACCESS = @REPLACE_ACCESS@
 REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@
 REPLACE_BTOWC = @REPLACE_BTOWC@
-REPLACE_CALLOC = @REPLACE_CALLOC@
+REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@
+REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@
 REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@
+REPLACE_CHMOD = @REPLACE_CHMOD@
 REPLACE_CHOWN = @REPLACE_CHOWN@
 REPLACE_CLOSE = @REPLACE_CLOSE@
+REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@
 REPLACE_CREAT = @REPLACE_CREAT@
 REPLACE_CTIME = @REPLACE_CTIME@
 REPLACE_DPRINTF = @REPLACE_DPRINTF@
 REPLACE_DUP = @REPLACE_DUP@
 REPLACE_DUP2 = @REPLACE_DUP2@
+REPLACE_DUP3 = @REPLACE_DUP3@
 REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
+REPLACE_ERROR = @REPLACE_ERROR@
+REPLACE_ERROR_AT_LINE = @REPLACE_ERROR_AT_LINE@
 REPLACE_EXECL = @REPLACE_EXECL@
 REPLACE_EXECLE = @REPLACE_EXECLE@
 REPLACE_EXECLP = @REPLACE_EXECLP@
@@ -1268,11 +1314,13 @@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@
 REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
 REPLACE_FCLOSE = @REPLACE_FCLOSE@
 REPLACE_FCNTL = @REPLACE_FCNTL@
+REPLACE_FDATASYNC = @REPLACE_FDATASYNC@
 REPLACE_FDOPEN = @REPLACE_FDOPEN@
 REPLACE_FFLUSH = @REPLACE_FFLUSH@
 REPLACE_FFSLL = @REPLACE_FFSLL@
 REPLACE_FNMATCH = @REPLACE_FNMATCH@
 REPLACE_FOPEN = @REPLACE_FOPEN@
+REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@
 REPLACE_FPRINTF = @REPLACE_FPRINTF@
 REPLACE_FPURGE = @REPLACE_FPURGE@
 REPLACE_FREE = @REPLACE_FREE@
@@ -1290,17 +1338,24 @@ REPLACE_GETCWD = @REPLACE_GETCWD@
 REPLACE_GETDELIM = @REPLACE_GETDELIM@
 REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
 REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@
+REPLACE_GETENTROPY = @REPLACE_GETENTROPY@
 REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
 REPLACE_GETLINE = @REPLACE_GETLINE@
+REPLACE_GETLOADAVG = @REPLACE_GETLOADAVG@
 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
 REPLACE_GETPASS = @REPLACE_GETPASS@
+REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@
+REPLACE_GETPROGNAME = @REPLACE_GETPROGNAME@
 REPLACE_GETRANDOM = @REPLACE_GETRANDOM@
+REPLACE_GETSUBOPT = @REPLACE_GETSUBOPT@
 REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
 REPLACE_GMTIME = @REPLACE_GMTIME@
 REPLACE_ICONV = @REPLACE_ICONV@
 REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@
 REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@
+REPLACE_IMAXABS = @REPLACE_IMAXABS@
+REPLACE_IMAXDIV = @REPLACE_IMAXDIV@
 REPLACE_INET_NTOP = @REPLACE_INET_NTOP@
 REPLACE_INET_PTON = @REPLACE_INET_PTON@
 REPLACE_INITSTATE = @REPLACE_INITSTATE@
@@ -1319,21 +1374,27 @@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@
 REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
 REPLACE_LSEEK = @REPLACE_LSEEK@
 REPLACE_LSTAT = @REPLACE_LSTAT@
-REPLACE_MALLOC = @REPLACE_MALLOC@
+REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@
+REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@
 REPLACE_MBRLEN = @REPLACE_MBRLEN@
 REPLACE_MBRTOWC = @REPLACE_MBRTOWC@
 REPLACE_MBSINIT = @REPLACE_MBSINIT@
 REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@
 REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@
 REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@
+REPLACE_MBSTOWCS = @REPLACE_MBSTOWCS@
 REPLACE_MBTOWC = @REPLACE_MBTOWC@
+REPLACE_MB_CUR_MAX = @REPLACE_MB_CUR_MAX@
 REPLACE_MEMCHR = @REPLACE_MEMCHR@
 REPLACE_MEMMEM = @REPLACE_MEMMEM@
+REPLACE_MEMPCPY = @REPLACE_MEMPCPY@
 REPLACE_MKDIR = @REPLACE_MKDIR@
 REPLACE_MKFIFO = @REPLACE_MKFIFO@
 REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@
 REPLACE_MKNOD = @REPLACE_MKNOD@
 REPLACE_MKNODAT = @REPLACE_MKNODAT@
+REPLACE_MKOSTEMP = @REPLACE_MKOSTEMP@
+REPLACE_MKOSTEMPS = @REPLACE_MKOSTEMPS@
 REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
 REPLACE_MKTIME = @REPLACE_MKTIME@
 REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
@@ -1344,8 +1405,10 @@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
 REPLACE_OPEN = @REPLACE_OPEN@
 REPLACE_OPENAT = @REPLACE_OPENAT@
 REPLACE_PERROR = @REPLACE_PERROR@
+REPLACE_PIPE2 = @REPLACE_PIPE2@
 REPLACE_POPEN = @REPLACE_POPEN@
 REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@
+REPLACE_POSIX_OPENPT = @REPLACE_POSIX_OPENPT@
 REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
@@ -1412,8 +1475,9 @@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
 REPLACE_READ = @REPLACE_READ@
 REPLACE_READLINK = @REPLACE_READLINK@
 REPLACE_READLINKAT = @REPLACE_READLINKAT@
-REPLACE_REALLOC = @REPLACE_REALLOC@
 REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@
+REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@
+REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@
 REPLACE_REALPATH = @REPLACE_REALPATH@
 REPLACE_REMOVE = @REPLACE_REMOVE@
 REPLACE_RENAME = @REPLACE_RENAME@
@@ -1422,6 +1486,7 @@ REPLACE_RMDIR = @REPLACE_RMDIR@
 REPLACE_SCHED_YIELD = @REPLACE_SCHED_YIELD@
 REPLACE_SELECT = @REPLACE_SELECT@
 REPLACE_SETENV = @REPLACE_SETENV@
+REPLACE_SETHOSTNAME = @REPLACE_SETHOSTNAME@
 REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
 REPLACE_SETSTATE = @REPLACE_SETSTATE@
 REPLACE_SLEEP = @REPLACE_SLEEP@
@@ -1430,6 +1495,7 @@ REPLACE_SPRINTF = @REPLACE_SPRINTF@
 REPLACE_STAT = @REPLACE_STAT@
 REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@
 REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
+REPLACE_STPCPY = @REPLACE_STPCPY@
 REPLACE_STPNCPY = @REPLACE_STPNCPY@
 REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
 REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@
@@ -1456,7 +1522,9 @@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
 REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@
 REPLACE_SYMLINK = @REPLACE_SYMLINK@
 REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
+REPLACE_TIME = @REPLACE_TIME@
 REPLACE_TIMEGM = @REPLACE_TIMEGM@
+REPLACE_TIMESPEC_GET = @REPLACE_TIMESPEC_GET@
 REPLACE_TMPFILE = @REPLACE_TMPFILE@
 REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
 REPLACE_TRUNCATE = @REPLACE_TRUNCATE@
@@ -1474,25 +1542,33 @@ REPLACE_VPRINTF = @REPLACE_VPRINTF@
 REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@
 REPLACE_VSPRINTF = @REPLACE_VSPRINTF@
 REPLACE_WCRTOMB = @REPLACE_WCRTOMB@
+REPLACE_WCSCMP = @REPLACE_WCSCMP@
 REPLACE_WCSFTIME = @REPLACE_WCSFTIME@
+REPLACE_WCSNCMP = @REPLACE_WCSNCMP@
 REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@
 REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@
+REPLACE_WCSSTR = @REPLACE_WCSSTR@
 REPLACE_WCSTOK = @REPLACE_WCSTOK@
 REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@
 REPLACE_WCTOB = @REPLACE_WCTOB@
 REPLACE_WCTOMB = @REPLACE_WCTOMB@
 REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
+REPLACE_WMEMCMP = @REPLACE_WMEMCMP@
+REPLACE_WMEMPCPY = @REPLACE_WMEMPCPY@
 REPLACE_WRITE = @REPLACE_WRITE@
+REPLACE__EXIT = @REPLACE__EXIT@
+SCHED_YIELD_LIB = @SCHED_YIELD_LIB@
 SED = @SED@
+SELECT_LIB = @SELECT_LIB@
+SETLOCALE_NULL_LIB = @SETLOCALE_NULL_LIB@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIGSEGV_H = @SIGSEGV_H@
 SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
 SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
 SRC_VERSION_C = @SRC_VERSION_C@
-STDALIGN_H = @STDALIGN_H@
 STDARG_H = @STDARG_H@
-STDBOOL_H = @STDBOOL_H@
+STDCKDINT_H = @STDCKDINT_H@
 STDDEF_H = @STDDEF_H@
 STDINT_H = @STDINT_H@
 STRIP = @STRIP@
@@ -1530,8 +1606,10 @@ ac_ct_CC = @ac_ct_CC@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
+am__rm_f_notfound = @am__rm_f_notfound@
 am__tar = @am__tar@
 am__untar = @am__untar@
+am__xargs_n = @am__xargs_n@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
@@ -1544,8 +1622,10 @@ datarootdir = @datarootdir@
 docdir = @docdir@
 dvidir = @dvidir@
 exec_prefix = @exec_prefix@
+gl_LIBOBJDEPS = @gl_LIBOBJDEPS@
 gl_LIBOBJS = @gl_LIBOBJS@
 gl_LTLIBOBJS = @gl_LTLIBOBJS@
+gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@
 gltests_LIBOBJS = @gltests_LIBOBJS@
 gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
 gltests_WITNESS = @gltests_WITNESS@
@@ -1641,13 +1721,13 @@ $(am__aclocal_m4_deps):
 .texi.dvi:
        $(AM_V_TEXI2DVI)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
        MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
-       $(TEXI2DVI) $(AM_V_texinfo) --build-dir=$(@:.dvi=.t2d) -o $@ $(AM_V_texidevnull) \
+       $(TEXI2DVI) $(AM_TEXI2FLAGS) -I $(srcdir) $(AM_V_texinfo) --build-dir=$(@:.dvi=.t2d) -o $@ $(AM_V_texidevnull) \
        $<
 
 .texi.pdf:
        $(AM_V_TEXI2PDF)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
        MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
-       $(TEXI2PDF) $(AM_V_texinfo) --build-dir=$(@:.pdf=.t2p) -o $@ $(AM_V_texidevnull) \
+       $(TEXI2PDF) $(AM_TEXI2FLAGS) -I $(srcdir) $(AM_V_texinfo) --build-dir=$(@:.pdf=.t2p) -o $@ $(AM_V_texidevnull) \
        $<
 
 .texi.html:
@@ -1764,11 +1844,10 @@ dist-info: $(INFO_DEPS)
        done
 
 mostlyclean-aminfo:
-       -rm -rf diffutils.t2d diffutils.t2p
+       -$(am__rm_rf) diffutils.t2d diffutils.t2p
 
 clean-aminfo:
-       -test -z "diffutils.dvi diffutils.pdf diffutils.ps diffutils.html" \
-       || rm -rf diffutils.dvi diffutils.pdf diffutils.ps diffutils.html
+       -$(am__rm_rf) diffutils.dvi diffutils.pdf diffutils.ps diffutils.html
 
 maintainer-clean-aminfo:
        @list='$(INFO_DEPS)'; for i in $$list; do \
@@ -1849,8 +1928,8 @@ mostlyclean-generic:
 clean-generic:
 
 distclean-generic:
-       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+       -$(am__rm_f) $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || $(am__rm_f) $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
        @echo "This command is intended for maintainers to use"
index 229e024..85e1861 100644 (file)
@@ -1,12 +1,12 @@
-This is diffutils.info, produced by makeinfo version 6.8 from
+This is diffutils.info, produced by makeinfo version 7.0dev from
 diffutils.texi.
 
-This manual is for GNU Diffutils (version 3.8, 2 January 2021), and
-documents the GNU 'diff', 'diff3', 'sdiff', and 'cmp' commands for
-showing the differences between files and the GNU 'patch' command for
+This manual is for GNU Diffutils (version 3.10, 2 January 2023), and
+documents the GNU ‘diff’, ‘diff3’, ‘sdiff’, and ‘cmp’ commands for
+showing the differences between files and the GNU ‘patch’ command for
 using their output to update files.
 
-   Copyright (C) 1992-1994, 1998, 2001-2002, 2004, 2006, 2009-2021 Free
+   Copyright © 1992-1994, 1998, 2001-2002, 2004, 2006, 2009-2023 Free
 Software Foundation, Inc.
 
      Permission is granted to copy, distribute and/or modify this
@@ -35,12 +35,12 @@ File: diffutils.info,  Node: Top,  Next: Overview,  Up: (dir)
 Comparing and Merging Files
 ***************************
 
-This manual is for GNU Diffutils (version 3.8, 2 January 2021), and
-documents the GNU 'diff', 'diff3', 'sdiff', and 'cmp' commands for
-showing the differences between files and the GNU 'patch' command for
+This manual is for GNU Diffutils (version 3.10, 2 January 2023), and
+documents the GNU ‘diff’, ‘diff3’, ‘sdiff’, and ‘cmp’ commands for
+showing the differences between files and the GNU ‘patch’ command for
 using their output to update files.
 
-   Copyright (C) 1992-1994, 1998, 2001-2002, 2004, 2006, 2009-2021 Free
+   Copyright © 1992-1994, 1998, 2001-2002, 2004, 2006, 2009-2023 Free
 Software Foundation, Inc.
 
      Permission is granted to copy, distribute and/or modify this
@@ -58,15 +58,15 @@ Software Foundation, Inc.
 * Output Formats::        Formats for two-way difference reports.
 * Incomplete Lines::      Lines that lack trailing newlines.
 * Comparing Directories:: Comparing files and directories.
-* Adjusting Output::      Making 'diff' output prettier.
-* diff Performance::      Making 'diff' smarter or faster.
+* Adjusting Output::      Making ‘diff’ output prettier.
+* diff Performance::      Making ‘diff’ smarter or faster.
 
 * Comparing Three Files:: Formats for three-way difference reports.
 * diff3 Merging::         Merging from a common ancestor.
 
-* Interactive Merging::   Interactive merging with 'sdiff'.
+* Interactive Merging::   Interactive merging with ‘sdiff’.
 
-* Merging with patch::    Using 'patch' to change old files into new ones.
+* Merging with patch::    Using ‘patch’ to change old files into new ones.
 * Making Patches::        Tips for making and using patch distributions.
 
 * Invoking cmp::          Compare two files byte by byte.
@@ -92,65 +92,65 @@ Computer users often find occasion to ask how two files differ.  Perhaps
 one file is a newer version of the other file.  Or maybe the two files
 started out as identical copies but were changed by different people.
 
-   You can use the 'diff' command to show differences between two files,
-or each corresponding file in two directories.  'diff' outputs
+   You can use the ‘diff’ command to show differences between two files,
+or each corresponding file in two directories.  ‘diff’ outputs
 differences between files line by line in any of several formats,
 selectable by command line options.  This set of differences is often
-called a "diff" or "patch".  For files that are identical, 'diff'
-normally produces no output; for binary (non-text) files, 'diff'
+called a “diff” or “patch”.  For files that are identical, ‘diff’
+normally produces no output; for binary (non-text) files, ‘diff’
 normally reports only that they are different.
 
-   You can use the 'cmp' command to show the byte and line numbers where
-two files differ.  'cmp' can also show all the bytes that differ between
+   You can use the ‘cmp’ command to show the byte and line numbers where
+two files differ.  ‘cmp’ can also show all the bytes that differ between
 the two files, side by side.  A way to compare two files character by
-character is the Emacs command 'M-x compare-windows'.  *Note Other
+character is the Emacs command ‘M-x compare-windows’.  *Note Other
 Window: (emacs)Other Window, for more information on that command.
 
-   You can use the 'diff3' command to show differences among three
+   You can use the ‘diff3’ command to show differences among three
 files.  When two people have made independent changes to a common
-original, 'diff3' can report the differences between the original and
+original, ‘diff3’ can report the differences between the original and
 the two changed versions, and can produce a merged file that contains
 both persons' changes together with warnings about conflicts.
 
-   You can use the 'sdiff' command to merge two files interactively.
+   You can use the ‘sdiff’ command to merge two files interactively.
 
-   You can use the set of differences produced by 'diff' to distribute
+   You can use the set of differences produced by ‘diff’ to distribute
 updates to text files (such as program source code) to other people.
 This method is especially useful when the differences are small compared
-to the complete files.  Given 'diff' output, you can use the 'patch'
-program to update, or "patch", a copy of the file.  If you think of
-'diff' as subtracting one file from another to produce their difference,
-you can think of 'patch' as adding the difference to one file to
+to the complete files.  Given ‘diff’ output, you can use the ‘patch’
+program to update, or “patch”, a copy of the file.  If you think of
+‘diff’ as subtracting one file from another to produce their difference,
+you can think of ‘patch’ as adding the difference to one file to
 reproduce the other.
 
    This manual first concentrates on making diffs, and later shows how
 to use diffs to update files.
 
-   GNU 'diff' was written by Paul Eggert, Mike Haertel, David Hayes,
+   GNU ‘diff’ was written by Paul Eggert, Mike Haertel, David Hayes,
 Richard Stallman, and Len Tower.  Wayne Davison designed and implemented
 the unified output format.  The basic algorithm is described by Eugene
 W. Myers in "An O(ND) Difference Algorithm and its Variations",
-'Algorithmica' Vol. 1, 1986, pp. 251-266,
+‘Algorithmica’ Vol. 1, 1986, pp. 251-266,
 <http://dx.doi.org/10.1007/BF01840446>; and in "A File Comparison
-Program", Webb Miller and Eugene W. Myers, 'Software--Practice and
-Experience' Vol. 15, 1985, pp. 1025-1040,
+Program", Webb Miller and Eugene W. Myers, Software--Practice and
+Experience Vol. 15, 1985, pp. 1025-1040,
 <http://dx.doi.org/10.1002/spe.4380151102>.  The algorithm was
 independently discovered as described by Esko Ukkonen in "Algorithms for
-Approximate String Matching", 'Information and Control' Vol. 64, 1985,
+Approximate String Matching", ‘Information and Control’ Vol. 64, 1985,
 pp. 100-118, <http://dx.doi.org/10.1016/S0019-9958(85)80046-2>.  Unless
-the '--minimal' option is used, 'diff' uses a heuristic by Paul Eggert
+the ‘--minimal’ option is used, ‘diff’ uses a heuristic by Paul Eggert
 that limits the cost to O(N^1.5 log N) at the price of producing
 suboptimal output for large inputs with many differences.  Related
 algorithms are surveyed by Alfred V. Aho in section 6.3 of "Algorithms
-for Finding Patterns in Strings", 'Handbook of Theoretical Computer
-Science' (Jan Van Leeuwen, ed.), Vol. A, 'Algorithms and Complexity',
+for Finding Patterns in Strings", Handbook of Theoretical Computer
+Science’ (Jan Van Leeuwen, ed.), Vol. A, ‘Algorithms and Complexity’,
 Elsevier/MIT Press, 1990, pp. 255-300.
 
-   GNU 'diff3' was written by Randy Smith.  GNU 'sdiff' was written by
-Thomas Lord.  GNU 'cmp' was written by Torbjörn Granlund and David
+   GNU ‘diff3’ was written by Randy Smith.  GNU ‘sdiff’ was written by
+Thomas Lord.  GNU ‘cmp’ was written by Torbjörn Granlund and David
 MacKenzie.
 
-   GNU 'patch' was written mainly by Larry Wall and Paul Eggert; several
+   GNU ‘patch’ was written mainly by Larry Wall and Paul Eggert; several
 GNU enhancements were contributed by Wayne Davison and David MacKenzie.
 Parts of this manual are adapted from a manual page written by Larry
 Wall, with his permission.
@@ -164,24 +164,24 @@ File: diffutils.info,  Node: Comparison,  Next: Output Formats,  Prev: Overview,
 There are several ways to think about the differences between two files.
 One way to think of the differences is as a series of lines that were
 deleted from, inserted in, or changed in one file to produce the other
-file.  'diff' compares two files line by line, finds groups of lines
+file.  ‘diff’ compares two files line by line, finds groups of lines
 that differ, and reports each group of differing lines.  It can report
 the differing lines in several formats, which have different purposes.
 
-   GNU 'diff' can show whether files are different without detailing the
+   GNU ‘diff’ can show whether files are different without detailing the
 differences.  It also provides ways to suppress certain kinds of
 differences that are not important to you.  Most commonly, such
 differences are changes in the amount of white space between words or
-lines.  'diff' also provides ways to suppress differences in alphabetic
+lines.  ‘diff’ also provides ways to suppress differences in alphabetic
 case or in lines that match a regular expression that you provide.
 These options can accumulate; for example, you can ignore changes in
 both white space and alphabetic case.
 
    Another way to think of the differences between two files is as a
 sequence of pairs of bytes that can be either identical or different.
-'cmp' reports the differences between two files byte by byte, instead of
-line by line.  As a result, it is often more useful than 'diff' for
-comparing binary files.  For text files, 'cmp' is useful mainly when you
+‘cmp’ reports the differences between two files byte by byte, instead of
+line by line.  As a result, it is often more useful than ‘diff’ for
+comparing binary files.  For text files, ‘cmp’ is useful mainly when you
 want to know only whether two files are identical, or whether one file
 is a prefix of the other.
 
@@ -189,17 +189,17 @@ is a prefix of the other.
 have compared with considering them line by line, think of what happens
 if a single newline character is added to the beginning of a file.  If
 that file is then compared with an otherwise identical file that lacks
-the newline at the beginning, 'diff' will report that a blank line has
-been added to the file, while 'cmp' will report that almost every byte
+the newline at the beginning, ‘diff’ will report that a blank line has
+been added to the file, while ‘cmp’ will report that almost every byte
 of the two files differs.
 
-   'diff3' normally compares three input files line by line, finds
+   ‘diff3’ normally compares three input files line by line, finds
 groups of lines that differ, and reports each group of differing lines.
 Its output is designed to make it easy to inspect two different sets of
 changes to the same file.
 
    These commands compare input files without necessarily reading them.
-For example, if 'diff' is asked simply to report whether two files
+For example, if ‘diff’ is asked simply to report whether two files
 differ, and it discovers that the files have different sizes, it need
 not read them to do its job.
 
@@ -219,20 +219,20 @@ File: diffutils.info,  Node: Hunks,  Next: White Space,  Up: Comparison
 1.1 Hunks
 =========
 
-When comparing two files, 'diff' finds sequences of lines common to both
-files, interspersed with groups of differing lines called "hunks".
+When comparing two files, ‘diff’ finds sequences of lines common to both
+files, interspersed with groups of differing lines called “hunks”.
 Comparing two identical files yields one sequence of common lines and no
 hunks, because no lines differ.  Comparing two entirely different files
 yields no common lines and one large hunk that contains all lines of
 both files.  In general, there are many ways to match up lines between
-two given files.  'diff' tries to minimize the total hunk size by
+two given files.  ‘diff’ tries to minimize the total hunk size by
 finding large sequences of common lines interspersed with small hunks of
 differing lines.
 
-   For example, suppose the file 'F' contains the three lines 'a', 'b',
-'c', and the file 'G' contains the same three lines in reverse order
-'c', 'b', 'a'.  If 'diff' finds the line 'c' as common, then the command
-'diff F G' produces this output:
+   For example, suppose the file ‘F’ contains the three lines ‘a’, ‘b’,
+‘c’, and the file ‘G’ contains the same three lines in reverse order
+‘c’, ‘b’, ‘a’.  If ‘diff’ finds the line ‘c’ as common, then the command
+‘diff F G’ produces this output:
 
      1,2d0
      < a
@@ -241,7 +241,7 @@ differing lines.
      > b
      > a
 
-But if 'diff' notices the common line 'b' instead, it produces this
+But if ‘diff’ notices the common line ‘b’ instead, it produces this
 output:
 
      1c1
@@ -253,10 +253,10 @@ output:
      ---
      > a
 
-It is also possible to find 'a' as the common line.  'diff' does not
+It is also possible to find ‘a’ as the common line.  ‘diff’ does not
 always find an optimal matching between the files; it takes shortcuts to
 run faster.  But its output is usually close to the shortest possible.
-You can adjust this tradeoff with the '--minimal' ('-d') option (*note
+You can adjust this tradeoff with the ‘--minimal’ (‘-d’) option (*note
 diff Performance::).
 
 \1f
@@ -265,36 +265,36 @@ File: diffutils.info,  Node: White Space,  Next: Blank Lines,  Prev: Hunks,  Up:
 1.2 Suppressing Differences in Blank and Tab Spacing
 ====================================================
 
-The '--ignore-tab-expansion' ('-E') option ignores the distinction
+The ‘--ignore-tab-expansion’ (‘-E’) option ignores the distinction
 between tabs and spaces on input.  A tab is considered to be equivalent
 to the number of spaces to the next tab stop (*note Tabs::).
 
-   The '--ignore-trailing-space' ('-Z') option ignores white space at
+   The ‘--ignore-trailing-space’ (‘-Z’) option ignores white space at
 line end.
 
-   The '--ignore-space-change' ('-b') option is stronger than '-E' and
-'-Z' combined.  It ignores white space at line end, and considers all
+   The ‘--ignore-space-change’ (‘-b’) option is stronger than ‘-E’ and
+‘-Z’ combined.  It ignores white space at line end, and considers all
 other sequences of one or more white space characters within a line to
-be equivalent.  With this option, 'diff' considers the following two
-lines to be equivalent, where '$' denotes the line end:
+be equivalent.  With this option, ‘diff’ considers the following two
+lines to be equivalent, where ‘$’ denotes the line end:
 
      Here lyeth  muche rychnesse  in lytell space.   -- John Heywood$
      Here lyeth muche rychnesse in lytell space. -- John Heywood   $
 
-   The '--ignore-all-space' ('-w') option is stronger still.  It ignores
+   The ‘--ignore-all-space’ (‘-w’) option is stronger still.  It ignores
 differences even if one line has white space where the other line has
-none.  "White space" characters include tab, vertical tab, form feed,
+none.  “White space” characters include tab, vertical tab, form feed,
 carriage return, and space; some locales may define additional
-characters to be white space.  With this option, 'diff' considers the
-following two lines to be equivalent, where '$' denotes the line end and
-'^M' denotes a carriage return:
+characters to be white space.  With this option, ‘diff’ considers the
+following two lines to be equivalent, where ‘$’ denotes the line end and
+‘^M’ denotes a carriage return:
 
      Here lyeth  muche  rychnesse in lytell space.--  John Heywood$
        He relyeth much erychnes  seinly tells pace.  --John Heywood   ^M$
 
    For many other programs newline is also a white space character, but
-'diff' is a line-oriented program and a newline character always ends a
-line.  Hence the '-w' or '--ignore-all-space' option does not ignore
+‘diff’ is a line-oriented program and a newline character always ends a
+line.  Hence the ‘-w’ or ‘--ignore-all-space’ option does not ignore
 newline-related changes; it ignores only other white space changes.
 
 \1f
@@ -303,7 +303,7 @@ File: diffutils.info,  Node: Blank Lines,  Next: Specified Lines,  Prev: White S
 1.3 Suppressing Differences Whose Lines Are All Blank
 =====================================================
 
-The '--ignore-blank-lines' ('-B') option ignores changes that consist
+The ‘--ignore-blank-lines’ (‘-B’) option ignores changes that consist
 entirely of blank lines.  With this option, for example, a file
 containing
      1.  A point is that which has no part.
@@ -320,8 +320,8 @@ is considered identical to a file containing
    Normally this option affects only lines that are completely empty,
 but if you also specify an option that ignores trailing spaces, lines
 are also affected if they look empty but contain white space.  In other
-words, '-B' is equivalent to '-I '^$'' by default, but it is equivalent
-to '-I '^[[:space:]]*$'' if '-b', '-w' or '-Z' is also specified.
+words, ‘-B’ is equivalent to ‘-I '^$'’ by default, but it is equivalent
+to ‘-I '^[[:space:]]*$'’ if ‘-b’, ‘-w’ or ‘-Z’ is also specified.
 
 \1f
 File: diffutils.info,  Node: Specified Lines,  Next: Case Folding,  Prev: Blank Lines,  Up: Comparison
@@ -329,21 +329,21 @@ File: diffutils.info,  Node: Specified Lines,  Next: Case Folding,  Prev: Blank
 1.4 Suppressing Differences Whose Lines All Match a Regular Expression
 ======================================================================
 
-To ignore insertions and deletions of lines that match a 'grep'-style
-regular expression, use the '--ignore-matching-lines=REGEXP' ('-I
-REGEXP') option.  You should escape regular expressions that contain
+To ignore insertions and deletions of lines that match a ‘grep’-style
+regular expression, use the ‘--ignore-matching-lines=REGEXP’ (‘-I
+REGEXP) option.  You should escape regular expressions that contain
 shell metacharacters to prevent the shell from expanding them.  For
-example, 'diff -I '^[[:digit:]]'' ignores all changes to lines beginning
+example, ‘diff -I '^[[:digit:]]'’ ignores all changes to lines beginning
 with a digit.
 
-   However, '-I' only ignores the insertion or deletion of lines that
+   However, ‘-I’ only ignores the insertion or deletion of lines that
 contain the regular expression if every changed line in the hunk--every
 insertion and every deletion--matches the regular expression.  In other
-words, for each nonignorable change, 'diff' prints the complete set of
+words, for each nonignorable change, ‘diff’ prints the complete set of
 changes in its vicinity, including the ignorable ones.
 
    You can specify more than one regular expression for lines to ignore
-by using more than one '-I' option.  'diff' tries to match each line
+by using more than one ‘-I’ option.  ‘diff’ tries to match each line
 against each regular expression.
 
 \1f
@@ -352,10 +352,10 @@ File: diffutils.info,  Node: Case Folding,  Next: Brief,  Prev: Specified Lines,
 1.5 Suppressing Case Differences
 ================================
 
-GNU 'diff' can treat lower case letters as equivalent to their upper
-case counterparts, so that, for example, it considers 'Funky Stuff',
-'funky STUFF', and 'fUNKy stuFf' to all be the same.  To request this,
-use the '-i' or '--ignore-case' option.
+GNU ‘diff’ can treat lower case letters as equivalent to their upper
+case counterparts, so that, for example, it considers ‘Funky Stuff’,
+‘funky STUFF’, and ‘fUNKy stuFf’ to all be the same.  To request this,
+use the ‘-i’ or ‘--ignore-case’ option.
 
 \1f
 File: diffutils.info,  Node: Brief,  Next: Binary,  Prev: Case Folding,  Up: Comparison
@@ -366,24 +366,24 @@ File: diffutils.info,  Node: Brief,  Next: Binary,  Prev: Case Folding,  Up: Com
 When you only want to find out whether files are different, and you
 don't care what the differences are, you can use the summary output
 format.  In this format, instead of showing the differences between the
-files, 'diff' simply reports whether files differ.  The '--brief' ('-q')
+files, ‘diff’ simply reports whether files differ.  The ‘--brief’ (‘-q’)
 option selects this output format.
 
    This format is especially useful when comparing the contents of two
 directories.  It is also much faster than doing the normal line by line
-comparisons, because 'diff' can stop analyzing the files as soon as it
+comparisons, because ‘diff’ can stop analyzing the files as soon as it
 knows that there are any differences.
 
    You can also get a brief indication of whether two files differ by
-using 'cmp'.  For files that are identical, 'cmp' produces no output.
-When the files differ, by default, 'cmp' outputs the byte and line
+using ‘cmp’.  For files that are identical, ‘cmp’ produces no output.
+When the files differ, by default, ‘cmp’ outputs the byte and line
 number where the first difference occurs, or reports that one file is a
-prefix of the other.  You can use the '-s', '--quiet', or '--silent'
-option to suppress that information, so that 'cmp' produces no output
+prefix of the other.  You can use the ‘-s’, ‘--quiet’, or ‘--silent’
+option to suppress that information, so that ‘cmp’ produces no output
 and reports whether the files differ using only its exit status (*note
 Invoking cmp::).
 
-   Unlike 'diff', 'cmp' cannot compare directories; it can only compare
+   Unlike ‘diff’, ‘cmp’ cannot compare directories; it can only compare
 two files.
 
 \1f
@@ -392,7 +392,7 @@ File: diffutils.info,  Node: Binary,  Prev: Brief,  Up: Comparison
 1.7 Binary Files and Forcing Text Comparisons
 =============================================
 
-If 'diff' thinks that either of the two files it is comparing is binary
+If ‘diff’ thinks that either of the two files it is comparing is binary
 (a non-text file), it normally treats that pair of files much as if the
 summary output format had been selected (*note Brief::), and reports
 only that the binary files are different.  This is because line by line
@@ -400,73 +400,73 @@ comparisons are usually not meaningful for binary files.  This does not
 count as trouble, even though the resulting output does not capture all
 the differences.
 
-   'diff' determines whether a file is text or binary by checking the
+   ‘diff’ determines whether a file is text or binary by checking the
 first few bytes in the file; the exact number of bytes is system
 dependent, but it is typically several thousand.  If every byte in that
-part of the file is non-null, 'diff' considers the file to be text;
+part of the file is non-null, ‘diff’ considers the file to be text;
 otherwise it considers the file to be binary.
 
-   Sometimes you might want to force 'diff' to consider files to be
+   Sometimes you might want to force ‘diff’ to consider files to be
 text.  For example, you might be comparing text files that contain null
-characters; 'diff' would erroneously decide that those are non-text
+characters; ‘diff’ would erroneously decide that those are non-text
 files.  Or you might be comparing documents that are in a format used by
 a word processing system that uses null characters to indicate special
-formatting.  You can force 'diff' to consider all files to be text
-files, and compare them line by line, by using the '--text' ('-a')
+formatting.  You can force ‘diff’ to consider all files to be text
+files, and compare them line by line, by using the ‘--text’ (‘-a’)
 option.  If the files you compare using this option do not in fact
 contain text, they will probably contain few newline characters, and the
-'diff' output will consist of hunks showing differences between long
+‘diff’ output will consist of hunks showing differences between long
 lines of whatever characters the files contain.
 
-   You can also force 'diff' to report only whether files differ (but
-not how).  Use the '--brief' ('-q') option for this.
+   You can also force ‘diff’ to report only whether files differ (but
+not how).  Use the ‘--brief’ (‘-q’) option for this.
 
    In operating systems that distinguish between text and binary files,
-'diff' normally reads and writes all data as text.  Use the '--binary'
-option to force 'diff' to read and write binary data instead.  This
+‘diff’ normally reads and writes all data as text.  Use the ‘--binary’
+option to force ‘diff’ to read and write binary data instead.  This
 option has no effect on a POSIX-compliant system like GNU or traditional
 Unix.  However, many personal computer operating systems represent the
 end of a line with a carriage return followed by a newline.  On such
-systems, 'diff' normally ignores these carriage returns on input and
-generates them at the end of each output line, but with the '--binary'
-option 'diff' treats each carriage return as just another input
+systems, ‘diff’ normally ignores these carriage returns on input and
+generates them at the end of each output line, but with the ‘--binary’
+option ‘diff’ treats each carriage return as just another input
 character, and does not generate a carriage return at the end of each
 output line.  This can be useful when dealing with non-text files that
 are meant to be interchanged with POSIX-compliant systems.
 
-   The '--strip-trailing-cr' causes 'diff' to treat input lines that end
+   The ‘--strip-trailing-cr’ causes ‘diff’ to treat input lines that end
 in carriage return followed by newline as if they end in plain newline.
 This can be useful when comparing text that is imperfectly imported from
 many personal computer operating systems.  This option affects how lines
 are read, which in turn affects how they are compared and output.
 
-   If you want to compare two files byte by byte, you can use the 'cmp'
-program with the '--verbose' ('-l') option to show the values of each
-differing byte in the two files.  With GNU 'cmp', you can also use the
-'-b' or '--print-bytes' option to show the ASCII representation of those
+   If you want to compare two files byte by byte, you can use the ‘cmp’
+program with the ‘--verbose’ (‘-l’) option to show the values of each
+differing byte in the two files.  With GNU ‘cmp’, you can also use the
+‘-b’ or ‘--print-bytes’ option to show the ASCII representation of those
 bytes.  *Note Invoking cmp::, for more information.
 
-   If 'diff3' thinks that any of the files it is comparing is binary (a
+   If ‘diff3’ thinks that any of the files it is comparing is binary (a
 non-text file), it normally reports an error, because such comparisons
-are usually not useful.  'diff3' uses the same test as 'diff' to decide
-whether a file is binary.  As with 'diff', if the input files contain a
+are usually not useful.  ‘diff3’ uses the same test as ‘diff’ to decide
+whether a file is binary.  As with ‘diff’, if the input files contain a
 few non-text bytes but otherwise are like text files, you can force
-'diff3' to consider all files to be text files and compare them line by
-line by using the '-a' or '--text' option.
+‘diff3’ to consider all files to be text files and compare them line by
+line by using the ‘-a’ or ‘--text’ option.
 
 \1f
 File: diffutils.info,  Node: Output Formats,  Next: Incomplete Lines,  Prev: Comparison,  Up: Top
 
-2 'diff' Output Formats
+2 ‘diff’ Output Formats
 ***********************
 
-'diff' has several mutually exclusive options for output format.  The
-following sections describe each format, illustrating how 'diff' reports
+‘diff’ has several mutually exclusive options for output format.  The
+following sections describe each format, illustrating how ‘diff’ reports
 the differences between two sample input files.
 
 * Menu:
 
-* Sample diff Input:: Sample 'diff' input files for examples.
+* Sample diff Input:: Sample ‘diff’ input files for examples.
 * Context::           Showing differences with the surrounding text.
 * Side by Side::      Showing differences in two columns.
 * Normal::            Showing differences without surrounding text.
@@ -480,9 +480,9 @@ File: diffutils.info,  Node: Sample diff Input,  Next: Context,  Up: Output Form
 ==========================
 
 Here are two sample files that we will use in numerous examples to
-illustrate the output of 'diff' and how various options can change it.
+illustrate the output of ‘diff’ and how various options can change it.
 
-   This is the file 'lao':
+   This is the file ‘lao’:
 
      The Way that can be told of is not the eternal Way;
      The name that can be named is not the eternal name.
@@ -496,7 +496,7 @@ illustrate the output of 'diff' and how various options can change it.
      But after they are produced,
        they have different names.
 
-   This is the file 'tzu':
+   This is the file ‘tzu’:
 
      The Nameless is the origin of Heaven and Earth;
      The named is the mother of all things.
@@ -513,9 +513,9 @@ illustrate the output of 'diff' and how various options can change it.
      The door of all subtleties!
 
    In this example, the first hunk contains just the first two lines of
-'lao', the second hunk contains the fourth line of 'lao' opposing the
-second and third lines of 'tzu', and the last hunk contains just the
-last three lines of 'tzu'.
+‘lao’, the second hunk contains the fourth line of ‘lao’ opposing the
+second and third lines of ‘tzu’, and the last hunk contains just the
+last three lines of ‘tzu’.
 
 \1f
 File: diffutils.info,  Node: Context,  Next: Side by Side,  Prev: Sample diff Input,  Up: Output Formats
@@ -526,22 +526,22 @@ File: diffutils.info,  Node: Context,  Next: Side by Side,  Prev: Sample diff In
 Usually, when you are looking at the differences between files, you will
 also want to see the parts of the files near the lines that differ, to
 help you understand exactly what has changed.  These nearby parts of the
-files are called the "context".
+files are called the “context”.
 
-   GNU 'diff' provides two output formats that show context around the
-differing lines: "context format" and "unified format".  It can
+   GNU ‘diff’ provides two output formats that show context around the
+differing lines: “context format” and “unified format”.  It can
 optionally show in which function or section of the file the differing
 lines are found.
 
    If you are distributing new versions of files to other people in the
-form of 'diff' output, you should use one of the output formats that
+form of ‘diff’ output, you should use one of the output formats that
 show context so that they can apply the diffs even if they have made
-small changes of their own to the files.  'patch' can apply the diffs in
+small changes of their own to the files.  ‘patch’ can apply the diffs in
 this case by searching in the files for the lines of context around the
 differing lines; if those lines are actually a few lines away from where
-the diff says they are, 'patch' can adjust the line numbers accordingly
+the diff says they are, ‘patch’ can adjust the line numbers accordingly
 and still apply the diff correctly.  *Note Imperfect::, for more
-information on using 'patch' to apply imperfect diffs.
+information on using ‘patch’ to apply imperfect diffs.
 
 * Menu:
 
@@ -560,10 +560,10 @@ The context output format shows several lines of context around the
 lines that differ.  It is the standard format for distributing updates
 to source code.
 
-   To select this output format, use the '--context[=LINES]' ('-C
-LINES') or '-c' option.  The argument LINES that some of these options
+   To select this output format, use the ‘--context[=LINES]’ (‘-C
+LINES’) or ‘-c’ option.  The argument LINES that some of these options
 take is the number of lines of context to show.  If you do not specify
-LINES, it defaults to three.  For proper operation, 'patch' typically
+LINES, it defaults to three.  For proper operation, ‘patch’ typically
 needs at least two lines of context.
 
 * Menu:
@@ -578,7 +578,7 @@ File: diffutils.info,  Node: Example Context,  Next: Less Context,  Up: Context
 2.2.1.1 An Example of Context Format
 ....................................
 
-Here is the output of 'diff -c lao tzu' (*note Sample diff Input::, for
+Here is the output of ‘diff -c lao tzu’ (*note Sample diff Input::, for
 the complete contents of the two files).  Notice that up to three lines
 that are not different are shown around each line that is different;
 they are the context lines.  Also notice that the first two hunks have
@@ -618,7 +618,7 @@ File: diffutils.info,  Node: Less Context,  Next: Detailed Context,  Prev: Examp
 2.2.1.2 An Example of Context Format with Less Context
 ......................................................
 
-Here is the output of 'diff -C 1 lao tzu' (*note Sample diff Input::,
+Here is the output of ‘diff -C 1 lao tzu’ (*note Sample diff Input::,
 for the complete contents of the two files).  Notice that at most one
 context line is reported here.
 
@@ -656,14 +656,15 @@ like this:
      *** FROM-FILE FROM-FILE-MODIFICATION-TIME
      --- TO-FILE TO-FILE-MODIFICATION TIME
 
-The timestamp normally looks like '2002-02-21 23:30:39.942229878 -0800'
-to indicate the date, time with fractional seconds, and time zone in
-Internet RFC 2822 format (ftp://ftp.isi.edu/in-notes/rfc2822.txt).  (The
-fractional seconds are omitted on hosts that do not support fractional
-timestamps.)  However, a traditional timestamp like 'Thu Feb 21 23:30:39
-2002' is used if the 'LC_TIME' locale category is either 'C' or 'POSIX'.
+   The timestamp normally looks like ‘2002-02-21 23:30:39.942229878
+-0800’ to indicate the date, time with fractional seconds, and time zone
+in Internet RFC 2822 format (ftp://ftp.isi.edu/in-notes/rfc2822.txt).
+(The fractional seconds are omitted on hosts that do not support
+fractional timestamps.)  However, a traditional timestamp like ‘Thu Feb
+21 23:30:39 2002’ is used if the ‘LC_TIME’ locale category is either ‘C’
+or ‘POSIX’.
 
-   You can change the header's content with the '--label=LABEL' option;
+   You can change the header's content with the ‘--label=LABEL’ option;
 see *note Alternate Names::.
 
    Next come one or more hunks of differences; each hunk shows one area
@@ -678,7 +679,7 @@ where the files differ.  Context format hunks look like this:
        TO-FILE-LINE...
 
    If a hunk contains two or more lines, its line numbers look like
-'START,END'.  Otherwise only its end line number appears.  An empty hunk
+‘START,END’.  Otherwise only its end line number appears.  An empty hunk
 is considered to end at the line that precedes the hunk.
 
    The lines of context around the lines that differ start with two
@@ -686,16 +687,16 @@ space characters.  The lines that differ between the two files start
 with one of the following indicator characters, followed by a space
 character:
 
-'!'
+‘!’
      A line that is part of a group of one or more lines that changed
      between the two files.  There is a corresponding group of lines
-     marked with '!' in the part of this hunk for the other file.
+     marked with ‘!’ in the part of this hunk for the other file.
 
-'+'
+‘+’
      An "inserted" line in the second file that corresponds to nothing
      in the first file.
 
-'-'
+‘-’
      A "deleted" line in the first file that corresponds to nothing in
      the second file.
 
@@ -711,13 +712,13 @@ File: diffutils.info,  Node: Unified Format,  Next: Sections,  Prev: Context For
 
 The unified output format is a variation on the context format that is
 more compact because it omits redundant context lines.  To select this
-output format, use the '--unified[=LINES]' ('-U LINES'), or '-u' option.
+output format, use the ‘--unified[=LINES]’ (‘-U LINES’), or ‘-u’ option.
 The argument LINES is the number of lines of context to show.  When it
 is not given, it defaults to three.
 
-   In the early 1990s, only GNU 'diff' could produce this format and
-only GNU 'patch' could automatically apply diffs in this format.  For
-proper operation, 'patch' typically needs at least three lines of
+   In the early 1990s, only GNU ‘diff’ could produce this format and
+only GNU ‘patch’ could automatically apply diffs in this format.  For
+proper operation, ‘patch’ typically needs at least three lines of
 context.
 
 * Menu:
@@ -731,7 +732,7 @@ File: diffutils.info,  Node: Example Unified,  Next: Detailed Unified,  Up: Unif
 2.2.2.1 An Example of Unified Format
 ....................................
 
-Here is the output of the command 'diff -u lao tzu' (*note Sample diff
+Here is the output of the command ‘diff -u lao tzu’ (*note Sample diff
 Input::, for the complete contents of the two files):
 
      --- lao   2002-02-21 23:30:39.942229878 -0800
@@ -766,12 +767,12 @@ like this:
      --- FROM-FILE FROM-FILE-MODIFICATION-TIME
      +++ TO-FILE TO-FILE-MODIFICATION-TIME
 
-The timestamp looks like '2002-02-21 23:30:39.942229878 -0800' to
+   The timestamp looks like ‘2002-02-21 23:30:39.942229878 -0800’ to
 indicate the date, time with fractional seconds, and time zone.  The
 fractional seconds are omitted on hosts that do not support fractional
 timestamps.
 
-   You can change the header's content with the '--label=LABEL' option.
+   You can change the header's content with the ‘--label=LABEL’ option.
 *Note Alternate Names::.
 
    Next come one or more hunks of differences; each hunk shows one area
@@ -782,21 +783,21 @@ where the files differ.  Unified format hunks look like this:
       LINE-FROM-EITHER-FILE...
 
    If a hunk contains just one line, only its start line number appears.
-Otherwise its line numbers look like 'START,COUNT'.  An empty hunk is
+Otherwise its line numbers look like ‘START,COUNT’.  An empty hunk is
 considered to start at the line that follows the hunk.
 
    If a hunk and its context contain two or more lines, its line numbers
-look like 'START,COUNT'.  Otherwise only its end line number appears.
+look like ‘START,COUNT’.  Otherwise only its end line number appears.
 An empty hunk is considered to end at the line that precedes the hunk.
 
    The lines common to both files begin with a space character.  The
 lines that actually differ between the two files have one of the
 following indicator characters in the left print column:
 
-'+'
+‘+’
      A line was added here to the first file.
 
-'-'
+‘-’
      A line was removed here from the first file.
 
 \1f
@@ -808,7 +809,7 @@ File: diffutils.info,  Node: Sections,  Next: Alternate Names,  Prev: Unified Fo
 Sometimes you might want to know which part of the files each change
 falls in.  If the files are source code, this could mean which function
 was changed.  If the files are documents, it could mean which chapter or
-appendix was changed.  GNU 'diff' can show this by displaying the
+appendix was changed.  GNU ‘diff’ can show this by displaying the
 nearest section heading line that precedes the differing lines.  Which
 lines are "section headings" is determined by a regular expression.
 
@@ -825,16 +826,16 @@ File: diffutils.info,  Node: Specified Headings,  Next: C Function Headings,  Up
 
 To show in which sections differences occur for files that are not
 source code for C or similar languages, use the
-'--show-function-line=REGEXP' ('-F REGEXP') option.  'diff' considers
-lines that match the 'grep'-style regular expression REGEXP to be the
+‘--show-function-line=REGEXP’ (‘-F REGEXP’) option.  ‘diff’ considers
+lines that match the ‘grep’-style regular expression REGEXP to be the
 beginning of a section of the file.  Here are suggested regular
 expressions for some common languages:
 
-'^[[:alpha:]$_]'
+‘^[[:alpha:]$_]’
      C, C++, Prolog
-'^('
+‘^(’
      Lisp
-'^@node'
+‘^@node’
      Texinfo
 
    This option does not automatically select an output format; in order
@@ -842,16 +843,16 @@ to use it, you must select the context format (*note Context Format::)
 or unified format (*note Unified Format::).  In other output formats it
 has no effect.
 
-   The '--show-function-line' ('-F') option finds the nearest unchanged
+   The ‘--show-function-line’ (‘-F’) option finds the nearest unchanged
 line that precedes each hunk of differences and matches the given
 regular expression.  Then it adds that line to the end of the line of
-asterisks in the context format, or to the '@@' line in unified format.
+asterisks in the context format, or to the ‘@@’ line in unified format.
 If no matching line exists, this option leaves the output for that hunk
 unchanged.  If that line is more than 40 characters long, it outputs
 only the first 40 characters.  You can specify more than one regular
-expression for such lines; 'diff' tries to match each line against each
+expression for such lines; ‘diff’ tries to match each line against each
 regular expression, starting with the last one given.  This means that
-you can use '-p' and '-F' together, if you wish.
+you can use ‘-p’ and ‘-F’ together, if you wish.
 
 \1f
 File: diffutils.info,  Node: C Function Headings,  Prev: Specified Headings,  Up: Sections
@@ -860,16 +861,16 @@ File: diffutils.info,  Node: C Function Headings,  Prev: Specified Headings,  Up
 ...................................
 
 To show in which functions differences occur for C and similar
-languages, you can use the '--show-c-function' ('-p') option.  This
+languages, you can use the ‘--show-c-function’ (‘-p’) option.  This
 option automatically defaults to the context output format (*note
 Context Format::), with the default number of lines of context.  You can
-override that number with '-C LINES' elsewhere in the command line.  You
-can override both the format and the number with '-U LINES' elsewhere in
+override that number with ‘-C LINES’ elsewhere in the command line.  You
+can override both the format and the number with ‘-U LINES’ elsewhere in
 the command line.
 
-   The '--show-c-function' ('-p') option is equivalent to '-F
-'^[[:alpha:]$_]'' if the unified format is specified, otherwise '-c -F
-'^[[:alpha:]$_]'' (*note Specified Headings::).  GNU 'diff' provides
+   The ‘--show-c-function’ (‘-p’) option is equivalent to ‘-F
+'^[[:alpha:]$_]'’ if the unified format is specified, otherwise ‘-c -F
+'^[[:alpha:]$_]'’ (*note Specified Headings::).  GNU ‘diff’ provides
 this option for the sake of convenience.
 
 \1f
@@ -879,17 +880,17 @@ File: diffutils.info,  Node: Alternate Names,  Prev: Sections,  Up: Context
 ----------------------------------
 
 If you are comparing two files that have meaningless or uninformative
-names, you might want 'diff' to show alternate names in the header of
+names, you might want ‘diff’ to show alternate names in the header of
 the context and unified output formats.  To do this, use the
-'--label=LABEL' option.  The first time you give this option, its
+‘--label=LABEL’ option.  The first time you give this option, its
 argument replaces the name and date of the first file in the header; the
 second time, its argument replaces the name and date of the second file.
-If you give this option more than twice, 'diff' reports an error.  The
-'--label' option does not affect the file names in the 'pr' header when
-the '-l' or '--paginate' option is used (*note Pagination::).
+If you give this option more than twice, ‘diff’ reports an error.  The
+‘--label’ option does not affect the file names in the ‘pr’ header when
+the ‘-l’ or ‘--paginate’ option is used (*note Pagination::).
 
-   Here are the first two lines of the output from 'diff -C 2
---label=original --label=modified lao tzu':
+   Here are the first two lines of the output from diff -C 2
+--label=original --label=modified lao tzu:
 
      *** original
      --- modified
@@ -900,38 +901,38 @@ File: diffutils.info,  Node: Side by Side,  Next: Normal,  Prev: Context,  Up: O
 2.3 Showing Differences Side by Side
 ====================================
 
-'diff' can produce a side by side difference listing of two files.  The
+‘diff’ can produce a side by side difference listing of two files.  The
 files are listed in two columns with a gutter between them.  The gutter
 contains one of the following markers:
 
 white space
      The corresponding lines are in common.  That is, either the lines
      are identical, or the difference is ignored because of one of the
-     '--ignore' options (*note White Space::).
+     ‘--ignore’ options (*note White Space::).
 
-'|'
+‘|’
      The corresponding lines differ, and they are either both complete
      or both incomplete.
 
-'<'
+‘<’
      The files differ and only the first file contains the line.
 
-'>'
+‘>’
      The files differ and only the second file contains the line.
 
-'('
+‘(’
      Only the first file contains the line, but the difference is
      ignored.
 
-')'
+‘)’
      Only the second file contains the line, but the difference is
      ignored.
 
-'\'
+‘\’
      The corresponding lines differ, and only the first line is
      incomplete.
 
-'/'
+‘/’
      The corresponding lines differ, and only the second line is
      incomplete.
 
@@ -939,7 +940,7 @@ white space
 it contains are incomplete.  *Note Incomplete Lines::.  However, when an
 output line represents two differing lines, one might be incomplete
 while the other is not.  In this case, the output line is complete, but
-its the gutter is marked '\' if the first line is incomplete, '/' if the
+its the gutter is marked ‘\’ if the first line is incomplete, ‘/’ if the
 second line is.
 
    Side by side format is sometimes easiest to read, but it has
@@ -948,7 +949,7 @@ lines that are too long to fit.  Also, it relies on lining up output
 more heavily than usual, so its output looks particularly bad if you use
 varying width fonts, nonstandard tab stops, or nonprinting characters.
 
-   You can use the 'sdiff' command to interactively merge side by side
+   You can use the ‘sdiff’ command to interactively merge side by side
 differences.  *Note Interactive Merging::, for more information on
 merging files.
 
@@ -963,18 +964,18 @@ File: diffutils.info,  Node: Side by Side Format,  Next: Example Side by Side,
 2.3.1 Controlling Side by Side Format
 -------------------------------------
 
-The '--side-by-side' ('-y') option selects side by side format.  Because
+The ‘--side-by-side’ (‘-y’) option selects side by side format.  Because
 side by side output lines contain two input lines, the output is wider
 than usual: normally 130 print columns, which can fit onto a traditional
 printer line.  You can set the width of the output with the
-'--width=COLUMNS' ('-W COLUMNS') option.  The output is split into two
+‘--width=COLUMNS’ (‘-W COLUMNS’) option.  The output is split into two
 halves of equal width, separated by a small gutter to mark differences;
 the right half is aligned to a tab stop so that tabs line up.  Input
 lines that are too long to fit in half of an output line are truncated
 for output.
 
-   The '--left-column' option prints only the left column of two common
-lines.  The '--suppress-common-lines' option suppresses common lines
+   The ‘--left-column’ option prints only the left column of two common
+lines.  The ‘--suppress-common-lines’ option suppresses common lines
 entirely.
 
 \1f
@@ -983,7 +984,7 @@ File: diffutils.info,  Node: Example Side by Side,  Prev: Side by Side Format,
 2.3.2 An Example of Side by Side Format
 ---------------------------------------
 
-Here is the output of the command 'diff -y -W 72 lao tzu' (*note Sample
+Here is the output of the command ‘diff -y -W 72 lao tzu’ (*note Sample
 diff Input::, for the complete contents of the two files).
 
      The Way that can be told of is n   <
@@ -1008,7 +1009,7 @@ File: diffutils.info,  Node: Normal,  Next: Scripts,  Prev: Side by Side,  Up: O
 2.4 Showing Differences Without Context
 =======================================
 
-The "normal" 'diff' output format shows each hunk of differences without
+The "normal" ‘diff’ output format shows each hunk of differences without
 any surrounding context.  Sometimes such output is the clearest way to
 see how lines have changed, without the clutter of nearby unchanged
 lines (although you can get similar results with the context or unified
@@ -1016,8 +1017,8 @@ formats by using 0 lines of context).  However, this format is no longer
 widely used for sending out patches; for that purpose, the context
 format (*note Context Format::) and the unified format (*note Unified
 Format::) are superior.  Normal format is the default for compatibility
-with older versions of 'diff' and the POSIX standard.  Use the
-'--normal' option to select this output format explicitly.
+with older versions of ‘diff’ and the POSIX standard.  Use the
+‘--normal’ option to select this output format explicitly.
 
 * Menu:
 
@@ -1030,7 +1031,7 @@ File: diffutils.info,  Node: Example Normal,  Next: Detailed Normal,  Up: Normal
 2.4.1 An Example of Normal Format
 ---------------------------------
 
-Here is the output of the command 'diff lao tzu' (*note Sample diff
+Here is the output of the command ‘diff lao tzu’ (*note Sample diff
 Input::, for the complete contents of the two files).  Notice that it
 shows only the lines that are different between the two files.
 
@@ -1071,23 +1072,23 @@ comma-separated range of lines in the second file.  All line numbers are
 the original line numbers in each file.  The types of change commands
 are:
 
-'LaR'
+‘LaR’
      Add the lines in range R of the second file after line L of the
-     first file.  For example, '8a12,15' means append lines 12-15 of
+     first file.  For example, ‘8a12,15’ means append lines 12-15 of
      file 2 after line 8 of file 1; or, if changing file 2 into file 1,
      delete lines 12-15 of file 2.
 
-'FcT'
+‘FcT’
      Replace the lines in range F of the first file with lines in range
      T of the second file.  This is like a combined add and delete, but
-     more compact.  For example, '5,7c8,10' means change lines 5-7 of
+     more compact.  For example, ‘5,7c8,10’ means change lines 5-7 of
      file 1 to read as lines 8-10 of file 2; or, if changing file 2 into
      file 1, change lines 8-10 of file 2 to read as lines 5-7 of file 1.
 
-'RdL'
+‘RdL’
      Delete the lines in range R from the first file; line L is where
      they would have appeared in the second file had they not been
-     deleted.  For example, '5,7d3' means delete lines 5-7 of file 1;
+     deleted.  For example, ‘5,7d3’ means delete lines 5-7 of file 1;
      or, if changing file 2 into file 1, append lines 5-7 of file 1
      after line 3 of file 2.
 
@@ -1102,20 +1103,20 @@ produce TO-FILE.
 
 * Menu:
 
-* ed Scripts:: Using 'diff' to produce commands for 'ed'.
-* Forward ed:: Making forward 'ed' scripts.
-* RCS::        A special 'diff' output format used by RCS.
+* ed Scripts:: Using ‘diff’ to produce commands for ‘ed’.
+* Forward ed:: Making forward ‘ed’ scripts.
+* RCS::        A special ‘diff’ output format used by RCS.
 
 \1f
 File: diffutils.info,  Node: ed Scripts,  Next: Forward ed,  Up: Scripts
 
-2.5.1 'ed' Scripts
+2.5.1 ‘ed’ Scripts
 ------------------
 
-'diff' can produce commands that direct the 'ed' text editor to change
+‘diff’ can produce commands that direct the ‘ed’ text editor to change
 the first file into the second file.  Long ago, this was the only output
 mode that was suitable for editing one file into another automatically;
-today, with 'patch', it is almost obsolete.  Use the '--ed' ('-e')
+today, with ‘patch’, it is almost obsolete.  Use the ‘--ed’ (‘-e’)
 option to select this output format.
 
    Like the normal format (*note Normal::), this output format does not
@@ -1123,25 +1124,25 @@ show any context; unlike the normal format, it does not include the
 information necessary to apply the diff in reverse (to produce the first
 file if all you have is the second file and the diff).
 
-   If the file 'd' contains the output of 'diff -e old new', then the
-command '(cat d && echo w) | ed - old' edits 'old' to make it a copy of
-'new'.  More generally, if 'd1', 'd2', ..., 'dN' contain the outputs of
-'diff -e old new1', 'diff -e new1 new2', ..., 'diff -e newN-1 newN',
-respectively, then the command '(cat d1 d2 ... dN && echo w) | ed - old'
-edits 'old' to make it a copy of 'newN'.
+   If the file ‘d’ contains the output of ‘diff -e old new’, then the
+command ‘(cat d && echo w) | ed - old’ edits ‘old’ to make it a copy of
+‘new’.  More generally, if ‘d1’, ‘d2’, ..., ‘dN’ contain the outputs of
+‘diff -e old new1’, ‘diff -e new1 new2’, ..., ‘diff -e newN-1 newN’,
+respectively, then the command ‘(cat d1 d2 ... dN && echo w) | ed - old’
+edits ‘old’ to make it a copy of ‘newN’.
 
 * Menu:
 
-* Example ed::  A sample 'ed' script.
-* Detailed ed:: A detailed description of 'ed' format.
+* Example ed::  A sample ‘ed’ script.
+* Detailed ed:: A detailed description of ‘ed’ format.
 
 \1f
 File: diffutils.info,  Node: Example ed,  Next: Detailed ed,  Up: ed Scripts
 
-2.5.1.1 Example 'ed' Script
+2.5.1.1 Example ‘ed’ Script
 ...........................
 
-Here is the output of 'diff -e lao tzu' (*note Sample diff Input::, for
+Here is the output of ‘diff -e lao tzu’ (*note Sample diff Input::, for
 the complete contents of the two files):
 
      11a
@@ -1158,25 +1159,25 @@ the complete contents of the two files):
 \1f
 File: diffutils.info,  Node: Detailed ed,  Prev: Example ed,  Up: ed Scripts
 
-2.5.1.2 Detailed Description of 'ed' Format
+2.5.1.2 Detailed Description of ‘ed’ Format
 ...........................................
 
-The 'ed' output format consists of one or more hunks of differences.
+The ‘ed’ output format consists of one or more hunks of differences.
 The changes closest to the ends of the files come first so that commands
-that change the number of lines do not affect how 'ed' interprets line
-numbers in succeeding commands.  'ed' format hunks look like this:
+that change the number of lines do not affect how ‘ed’ interprets line
+numbers in succeeding commands.  ‘ed’ format hunks look like this:
 
      CHANGE-COMMAND
      TO-FILE-LINE
      TO-FILE-LINE...
      .
 
-   Because 'ed' uses a single period on a line to indicate the end of
-input, GNU 'diff' protects lines of changes that contain a single period
-on a line by writing two periods instead, then writing a subsequent 'ed'
-command to change the two periods into one.  The 'ed' format cannot
+   Because ‘ed’ uses a single period on a line to indicate the end of
+input, GNU ‘diff’ protects lines of changes that contain a single period
+on a line by writing two periods instead, then writing a subsequent ‘ed’
+command to change the two periods into one.  The ‘ed’ format cannot
 represent an incomplete line, so if the second file ends in a changed
-incomplete line, 'diff' reports an error and then pretends that a
+incomplete line, ‘diff’ reports an error and then pretends that a
 newline was appended.
 
    There are three types of change commands.  Each consists of a line
@@ -1185,38 +1186,38 @@ character indicating the kind of change to make.  All line numbers are
 the original line numbers in the file.  The types of change commands
 are:
 
-'La'
+‘La’
      Add text from the second file after line L in the first file.  For
-     example, '8a' means to add the following lines after line 8 of file
+     example, ‘8a’ means to add the following lines after line 8 of file
      1.
 
-'Rc'
+‘Rc’
      Replace the lines in range R in the first file with the following
      lines.  Like a combined add and delete, but more compact.  For
-     example, '5,7c' means change lines 5-7 of file 1 to read as the
+     example, ‘5,7c’ means change lines 5-7 of file 1 to read as the
      text file 2.
 
-'Rd'
+‘Rd’
      Delete the lines in range R from the first file.  For example,
-     '5,7d' means delete lines 5-7 of file 1.
+     ‘5,7d’ means delete lines 5-7 of file 1.
 
 \1f
 File: diffutils.info,  Node: Forward ed,  Next: RCS,  Prev: ed Scripts,  Up: Scripts
 
-2.5.2 Forward 'ed' Scripts
+2.5.2 Forward ‘ed’ Scripts
 --------------------------
 
-'diff' can produce output that is like an 'ed' script, but with hunks in
+‘diff’ can produce output that is like an ‘ed’ script, but with hunks in
 forward (front to back) order.  The format of the commands is also
 changed slightly: command characters precede the lines they modify,
 spaces separate line numbers in ranges, and no attempt is made to
-disambiguate hunk lines consisting of a single period.  Like 'ed'
-format, forward 'ed' format cannot represent incomplete lines.
+disambiguate hunk lines consisting of a single period.  Like ‘ed’
+format, forward ‘ed’ format cannot represent incomplete lines.
 
-   Forward 'ed' format is not very useful, because neither 'ed' nor
-'patch' can apply diffs in this format.  It exists mainly for
-compatibility with older versions of 'diff'.  Use the '-f' or
-'--forward-ed' option to select it.
+   Forward ‘ed’ format is not very useful, because neither ‘ed’ nor
+‘patch’ can apply diffs in this format.  It exists mainly for
+compatibility with older versions of ‘diff’.  Use the ‘-f’ or
+‘--forward-ed’ option to select it.
 
 \1f
 File: diffutils.info,  Node: RCS,  Prev: Forward ed,  Up: Scripts
@@ -1226,18 +1227,18 @@ File: diffutils.info,  Node: RCS,  Prev: Forward ed,  Up: Scripts
 
 The RCS output format is designed specifically for use by the Revision
 Control System, which is a set of free programs used for organizing
-different versions and systems of files.  Use the '--rcs' ('-n') option
-to select this output format.  It is like the forward 'ed' format (*note
+different versions and systems of files.  Use the ‘--rcs’ (‘-n’) option
+to select this output format.  It is like the forward ‘ed’ format (*note
 Forward ed::), but it can represent arbitrary changes to the contents of
-a file because it avoids the forward 'ed' format's problems with lines
+a file because it avoids the forward ‘ed’ format's problems with lines
 consisting of a single period and with incomplete lines.  Instead of
 ending text sections with a line consisting of a single period, each
 command specifies the number of lines it affects; a combination of the
-'a' and 'd' commands are used instead of 'c'.  Also, if the second file
+‘a’ and ‘d’ commands are used instead of ‘c’.  Also, if the second file
 ends in a changed incomplete line, then the output also ends in an
 incomplete line.
 
-   Here is the output of 'diff -n lao tzu' (*note Sample diff Input::,
+   Here is the output of ‘diff -n lao tzu’ (*note Sample diff Input::,
 for the complete contents of the two files):
 
      d1 2
@@ -1256,21 +1257,21 @@ File: diffutils.info,  Node: If-then-else,  Prev: Scripts,  Up: Output Formats
 2.6 Merging Files with If-then-else
 ===================================
 
-You can use 'diff' to merge two files of C source code.  The output of
-'diff' in this format contains all the lines of both files.  Lines
+You can use ‘diff’ to merge two files of C source code.  The output of
+‘diff’ in this format contains all the lines of both files.  Lines
 common to both files are output just once; the differing parts are
-separated by the C preprocessor directives '#ifdef NAME' or '#ifndef
-NAME', '#else', and '#endif'.  When compiling the output, you select
+separated by the C preprocessor directives ‘#ifdef NAME’ or ‘#ifndef
+NAME’, ‘#else’, and ‘#endif’.  When compiling the output, you select
 which version to use by either defining or leaving undefined the macro
 NAME.
 
-   To merge two files, use 'diff' with the '-D NAME' or '--ifdef=NAME'
+   To merge two files, use ‘diff’ with the ‘-D NAME’ or ‘--ifdef=NAME’
 option.  The argument NAME is the C preprocessor identifier to use in
-the '#ifdef' and '#ifndef' directives.
+the ‘#ifdef’ and ‘#ifndef’ directives.
 
-   For example, if you change an instance of 'wait (&s)' to 'waitpid
-(-1, &s, 0)' and then merge the old and new files with the
-'--ifdef=HAVE_WAITPID' option, then the affected part of your code might
+   For example, if you change an instance of ‘wait (&s)’ to ‘waitpid
+(-1, &s, 0) and then merge the old and new files with the
+‘--ifdef=HAVE_WAITPID’ option, then the affected part of your code might
 look like this:
 
          do {
@@ -1303,10 +1304,10 @@ applications that allow if-then-else input, including programming
 languages and text formatting languages.  A line group format specifies
 the output format for a contiguous group of similar lines.
 
-   For example, the following command compares the TeX files 'old' and
-'new', and outputs a merged file in which old regions are surrounded by
-'\begin{em}'-'\end{em}' lines, and new regions are surrounded by
-'\begin{bf}'-'\end{bf}' lines.
+   For example, the following command compares the TeX files ‘old’ and
+‘new’, and outputs a merged file in which old regions are surrounded by
+‘\begin{em}’-‘\end{em}’ lines, and new regions are surrounded by
+‘\begin{bf}’-‘\end{bf}’ lines.
 
      diff \
         --old-group-format='\begin{em}
@@ -1350,112 +1351,112 @@ headers containing line numbers in a "plain English" style.
      %>' \
         old new
 
-   To specify a line group format, use 'diff' with one of the options
+   To specify a line group format, use ‘diff’ with one of the options
 listed below.  You can specify up to four line group formats, one for
 each kind of line group.  You should quote FORMAT, because it typically
 contains shell metacharacters.
 
-'--old-group-format=FORMAT'
+‘--old-group-format=FORMAT’
      These line groups are hunks containing only lines from the first
      file.  The default old group format is the same as the changed
      group format if it is specified; otherwise it is a format that
      outputs the line group as-is.
 
-'--new-group-format=FORMAT'
+‘--new-group-format=FORMAT’
      These line groups are hunks containing only lines from the second
      file.  The default new group format is same as the changed group
      format if it is specified; otherwise it is a format that outputs
      the line group as-is.
 
-'--changed-group-format=FORMAT'
+‘--changed-group-format=FORMAT’
      These line groups are hunks containing lines from both files.  The
      default changed group format is the concatenation of the old and
      new group formats.
 
-'--unchanged-group-format=FORMAT'
+‘--unchanged-group-format=FORMAT’
      These line groups contain lines common to both files.  The default
      unchanged group format is a format that outputs the line group
      as-is.
 
    In a line group format, ordinary characters represent themselves;
-conversion specifications start with '%' and have one of the following
+conversion specifications start with ‘%’ and have one of the following
 forms.
 
-'%<'
+‘%<’
      stands for the lines from the first file, including the trailing
      newline.  Each line is formatted according to the old line format
      (*note Line Formats::).
 
-'%>'
+‘%>’
      stands for the lines from the second file, including the trailing
      newline.  Each line is formatted according to the new line format.
 
-'%='
+‘%=’
      stands for the lines common to both files, including the trailing
      newline.  Each line is formatted according to the unchanged line
      format.
 
-'%%'
-     stands for '%'.
+‘%%’
+     stands for ‘%’.
 
-'%c'C''
+‘%c'C'’
      where C is a single character, stands for C.  C may not be a
-     backslash or an apostrophe.  For example, '%c':'' stands for a
+     backslash or an apostrophe.  For example, ‘%c':'’ stands for a
      colon, even inside the then-part of an if-then-else format, which a
      colon would normally terminate.
 
-'%c'\O''
+‘%c'\O'’
      where O is a string of 1, 2, or 3 octal digits, stands for the
-     character with octal code O.  For example, '%c'\0'' stands for a
+     character with octal code O.  For example, ‘%c'\0'’ stands for a
      null character.
 
-'FN'
-     where F is a 'printf' conversion specification and N is one of the
+‘FN’
+     where F is a ‘printf’ conversion specification and N is one of the
      following letters, stands for N's value formatted with F.
 
-     'e'
+     ‘e’
           The line number of the line just before the group in the old
           file.
 
-     'f'
+     ‘f’
           The line number of the first line in the group in the old
           file; equals E + 1.
 
-     'l'
+     ‘l’
           The line number of the last line in the group in the old file.
 
-     'm'
+     ‘m’
           The line number of the line just after the group in the old
           file; equals L + 1.
 
-     'n'
+     ‘n’
           The number of lines in the group in the old file; equals L - F
           + 1.
 
-     'E, F, L, M, N'
+     ‘E, F, L, M, N’
           Likewise, for lines in the new file.
 
-     The 'printf' conversion specification can be '%d', '%o', '%x', or
-     '%X', specifying decimal, octal, lower case hexadecimal, or upper
-     case hexadecimal output respectively.  After the '%' the following
+     The ‘printf’ conversion specification can be ‘%d’, ‘%o’, ‘%x’, or
+     ‘%X’, specifying decimal, octal, lower case hexadecimal, or upper
+     case hexadecimal output respectively.  After the ‘%’ the following
      options can appear in sequence: a series of zero or more flags; an
      integer specifying the minimum field width; and a period followed
      by an optional integer specifying the minimum number of digits.
-     The flags are '-' for left-justification, ''' for separating the
-     digit into groups as specified by the 'LC_NUMERIC' locale category,
-     and '0' for padding with zeros instead of spaces.  For example,
-     '%5dN' prints the number of new lines in the group in a field of
-     width 5 characters, using the 'printf' format '"%5d"'.
+     The flags are ‘-’ for left-justification, ‘'’ for separating the
+     digit into groups as specified by the ‘LC_NUMERIC’ locale category,
+     and ‘0’ for padding with zeros instead of spaces.  For example,
+     ‘%5dN’ prints the number of new lines in the group in a field of
+     width 5 characters, using the ‘printf’ format ‘"%5d"’.
 
-'(A=B?T:E)'
+‘(A=B?T:E)’
      If A equals B then T else E.  A and B are each either a decimal
      constant or a single letter interpreted as above.  This format spec
      is equivalent to T if A's value equals B's; otherwise it is
      equivalent to E.
 
-     For example, '%(N=0?no:%dN) line%(N=1?:s)' is equivalent to 'no
-     lines' if N (the number of lines in the group in the new file) is
-     0, to '1 line' if N is 1, and to '%dN lines' otherwise.
+     For example, ‘%(N=0?no:%dN) line%(N=1?:s)’ is equivalent to ‘no
+     lines if N (the number of lines in the group in the new file) is
+     0, to ‘1 line’ if N is 1, and to ‘%dN lines’ otherwise.
 
 \1f
 File: diffutils.info,  Node: Line Formats,  Next: Example If-then-else,  Prev: Line Group Formats,  Up: If-then-else
@@ -1468,7 +1469,7 @@ part of a line group in if-then-else format.
 
    For example, the following command outputs text with a one-character
 change indicator to the left of the text.  The first character of output
-is '-' for deleted lines, '|' for added lines, and a space for unchanged
+is ‘-’ for deleted lines, ‘|’ for added lines, and a space for unchanged
 lines.  The formats contain newline characters where newlines are
 desired on output.
 
@@ -1484,63 +1485,63 @@ desired on output.
    To specify a line format, use one of the following options.  You
 should quote FORMAT, since it often contains shell metacharacters.
 
-'--old-line-format=FORMAT'
+‘--old-line-format=FORMAT’
      formats lines just from the first file.
 
-'--new-line-format=FORMAT'
+‘--new-line-format=FORMAT’
      formats lines just from the second file.
 
-'--unchanged-line-format=FORMAT'
+‘--unchanged-line-format=FORMAT’
      formats lines common to both files.
 
-'--line-format=FORMAT'
+‘--line-format=FORMAT’
      formats all lines; in effect, it sets all three above options
      simultaneously.
 
    In a line format, ordinary characters represent themselves;
-conversion specifications start with '%' and have one of the following
+conversion specifications start with ‘%’ and have one of the following
 forms.
 
-'%l'
+‘%l’
      stands for the contents of the line, not counting its trailing
      newline (if any).  This format ignores whether the line is
      incomplete; *Note Incomplete Lines::.
 
-'%L'
+‘%L’
      stands for the contents of the line, including its trailing newline
      (if any).  If a line is incomplete, this format preserves its
      incompleteness.
 
-'%%'
-     stands for '%'.
+‘%%’
+     stands for ‘%’.
 
-'%c'C''
+‘%c'C'’
      where C is a single character, stands for C.  C may not be a
-     backslash or an apostrophe.  For example, '%c':'' stands for a
+     backslash or an apostrophe.  For example, ‘%c':'’ stands for a
      colon.
 
-'%c'\O''
+‘%c'\O'’
      where O is a string of 1, 2, or 3 octal digits, stands for the
-     character with octal code O.  For example, '%c'\0'' stands for a
+     character with octal code O.  For example, ‘%c'\0'’ stands for a
      null character.
 
-'Fn'
-     where F is a 'printf' conversion specification, stands for the line
-     number formatted with F.  For example, '%.5dn' prints the line
-     number using the 'printf' format '"%.5d"'.  *Note Line Group
+‘Fn’
+     where F is a ‘printf’ conversion specification, stands for the line
+     number formatted with F.  For example, ‘%.5dn’ prints the line
+     number using the ‘printf’ format ‘"%.5d"’.  *Note Line Group
      Formats::, for more about printf conversion specifications.
 
-   The default line format is '%l' followed by a newline character.
+   The default line format is ‘%l’ followed by a newline character.
 
    If the input contains tab characters and it is important that they
-line up on output, you should ensure that '%l' or '%L' in a line format
-is just after a tab stop (e.g. by preceding '%l' or '%L' with a tab
-character), or you should use the '-t' or '--expand-tabs' option.
+line up on output, you should ensure that ‘%l’ or ‘%L’ in a line format
+is just after a tab stop (e.g. by preceding ‘%l’ or ‘%L’ with a tab
+character), or you should use the ‘-t’ or ‘--expand-tabs’ option.
 
    Taken together, the line and line group formats let you specify many
 different formats.  For example, the following command uses a format
-similar to normal 'diff' format.  You can tailor this command to get
-fine control over 'diff' output.
+similar to normal ‘diff’ format.  You can tailor this command to get
+fine control over ‘diff’ output.
 
      diff \
         --old-line-format='< %l
@@ -1563,7 +1564,7 @@ File: diffutils.info,  Node: Example If-then-else,  Next: Detailed If-then-else,
 2.6.3 An Example of If-then-else Format
 ---------------------------------------
 
-Here is the output of 'diff -DTWO lao tzu' (*note Sample diff Input::,
+Here is the output of ‘diff -DTWO lao tzu’ (*note Sample diff Input::,
 for the complete contents of the two files):
 
      #ifndef TWO
@@ -1596,18 +1597,18 @@ File: diffutils.info,  Node: Detailed If-then-else,  Prev: Example If-then-else,
 2.6.4 Detailed Description of If-then-else Format
 -------------------------------------------------
 
-For lines common to both files, 'diff' uses the unchanged line group
+For lines common to both files, ‘diff’ uses the unchanged line group
 format.  For each hunk of differences in the merged output format, if
-the hunk contains only lines from the first file, 'diff' uses the old
+the hunk contains only lines from the first file, ‘diff’ uses the old
 line group format; if the hunk contains only lines from the second file,
-'diff' uses the new group format; otherwise, 'diff' uses the changed
+‘diff’ uses the new group format; otherwise, ‘diff’ uses the changed
 group format.
 
    The old, new, and unchanged line formats specify the output format of
 lines from the first file, lines from the second file, and lines common
 to both files, respectively.
 
-   The option '--ifdef=NAME' is equivalent to the following sequence of
+   The option ‘--ifdef=NAME’ is equivalent to the following sequence of
 options using shell syntax:
 
      --old-group-format='#ifndef NAME
@@ -1622,17 +1623,17 @@ options using shell syntax:
      %>#endif /* NAME */
      '
 
-   You should carefully check the 'diff' output for proper nesting.  For
-example, when using the '-D NAME' or '--ifdef=NAME' option, you should
+   You should carefully check the ‘diff’ output for proper nesting.  For
+example, when using the ‘-D NAME’ or ‘--ifdef=NAME’ option, you should
 check that if the differing lines contain any of the C preprocessor
-directives '#ifdef', '#ifndef', '#else', '#elif', or '#endif', they are
+directives ‘#ifdef’, ‘#ifndef’, ‘#else’, ‘#elif’, or ‘#endif’, they are
 nested properly and match.  If they don't, you must make corrections
 manually.  It is a good idea to carefully check the resulting code
 anyway to make sure that it really does what you want it to; depending
 on how the input files were produced, the output might contain duplicate
 or otherwise incorrect code.
 
-   The 'patch' '-D NAME' option behaves like the 'diff' '-D NAME'
+   The ‘patch’ ‘-D NAME’ option behaves like the ‘diff’ ‘-D NAME’
 option, except it operates on a file and a diff to produce a merged
 file.  *Note patch Options::.
 
@@ -1643,24 +1644,24 @@ File: diffutils.info,  Node: Incomplete Lines,  Next: Comparing Directories,  Pr
 ******************
 
 When an input file ends in a non-newline character, its last line is
-called an "incomplete line" because its last character is not a newline.
-All other lines are called "full lines" and end in a newline character.
+called an “incomplete line” because its last character is not a newline.
+All other lines are called “full lines” and end in a newline character.
 Incomplete lines do not match full lines unless differences in white
 space are ignored (*note White Space::).
 
    An incomplete line is normally distinguished on output from a full
-line by a following line that starts with '\'.  However, the RCS format
+line by a following line that starts with ‘\’.  However, the RCS format
 (*note RCS::) outputs the incomplete line as-is, without any trailing
 newline or following line.  The side by side format normally represents
-incomplete lines as-is, but in some cases uses a '\' or '/' gutter
+incomplete lines as-is, but in some cases uses a ‘\’ or ‘/’ gutter
 marker.  *Note Side by Side::.  The if-then-else line format preserves a
-line's incompleteness with '%L', and discards the newline with '%l'.
-*Note Line Formats::.  Finally, with the 'ed' and forward 'ed' output
-formats (*note Output Formats::) 'diff' cannot represent an incomplete
+line's incompleteness with ‘%L’, and discards the newline with ‘%l’.
+*Note Line Formats::.  Finally, with the ‘ed’ and forward ‘ed’ output
+formats (*note Output Formats::) ‘diff’ cannot represent an incomplete
 line, so it pretends there was a newline and reports an error.
 
-   For example, suppose 'F' and 'G' are one-byte files that contain just
-'f' and 'g', respectively.  Then 'diff F G' outputs
+   For example, suppose ‘F’ and ‘G’ are one-byte files that contain just
+‘f’ and ‘g’, respectively.  Then ‘diff F G’ outputs
 
      1c1
      < f
@@ -1669,14 +1670,14 @@ line, so it pretends there was a newline and reports an error.
      > g
      \ No newline at end of file
 
-(The exact message may differ in non-English locales.)  'diff -n F G'
+(The exact message may differ in non-English locales.)  ‘diff -n F G’
 outputs the following without a trailing newline:
 
      d1 1
      a1 1
      g
 
-'diff -e F G' reports two errors and outputs the following:
+‘diff -e F G’ reports two errors and outputs the following:
 
      1c
      g
@@ -1688,32 +1689,32 @@ File: diffutils.info,  Node: Comparing Directories,  Next: Adjusting Output,  Pr
 4 Comparing Directories
 ***********************
 
-You can use 'diff' to compare some or all of the files in two directory
-trees.  When both file name arguments to 'diff' are directories, it
+You can use ‘diff’ to compare some or all of the files in two directory
+trees.  When both file name arguments to ‘diff’ are directories, it
 compares each file that is contained in both directories, examining file
-names in alphabetical order as specified by the 'LC_COLLATE' locale
-category.  Normally 'diff' is silent about pairs of files that contain
-no differences, but if you use the '--report-identical-files' ('-s')
-option, it reports pairs of identical files.  Normally 'diff' reports
+names in alphabetical order as specified by the ‘LC_COLLATE’ locale
+category.  Normally ‘diff’ is silent about pairs of files that contain
+no differences, but if you use the ‘--report-identical-files’ (‘-s’)
+option, it reports pairs of identical files.  Normally ‘diff’ reports
 subdirectories common to both directories without comparing
-subdirectories' files, but if you use the '-r' or '--recursive' option,
+subdirectories' files, but if you use the ‘-r’ or ‘--recursive’ option,
 it compares every corresponding pair of files in the directory trees, as
 many levels deep as they go.
 
-   If only one file exists, 'diff' normally does not show its contents;
+   If only one file exists, ‘diff’ normally does not show its contents;
 it merely reports that one file exists but the other does not.  You can
-make 'diff' act as though the missing file is empty, so that it outputs
+make ‘diff’ act as though the missing file is empty, so that it outputs
 the entire contents of the file that actually exists.  (It is output as
 either an insertion or a deletion, depending on whether the missing file
 is in the first or the second position.)  To do this, use the
-'--new-file' ('-N') option.  This option affects command-line arguments
-as well as files found via directory traversal; for example, 'diff -N a
-b' treats 'a' as empty if 'a' does not exist but 'b' does.
+‘--new-file’ (‘-N’) option.  This option affects command-line arguments
+as well as files found via directory traversal; for example, diff -N a
+b’ treats ‘a’ as empty if ‘a’ does not exist but ‘b’ does.
 
    If the older directory contains large files that are not in the newer
 directory, you can make the patch smaller by using the
-'--unidirectional-new-file' option instead of '-N'.  This option is like
-'-N' except that it inserts the contents only of files that appear in
+‘--unidirectional-new-file’ option instead of ‘-N’.  This option is like
+‘-N’ except that it inserts the contents only of files that appear in
 the second directory but not the first (that is, files that were added).
 At the top of the patch, write instructions for the user applying the
 patch to remove the files that were deleted before applying the patch.
@@ -1721,61 +1722,61 @@ patch to remove the files that were deleted before applying the patch.
 distribution.
 
    To ignore some files while comparing directories, use the
-'--exclude=PATTERN' ('-x PATTERN') option.  This option ignores any
+‘--exclude=PATTERN’ (‘-x PATTERN’) option.  This option ignores any
 files or subdirectories whose base names match the shell pattern
 PATTERN.  Unlike in the shell, a period at the start of the base of a
 file name matches a wildcard at the start of a pattern.  You should
 enclose PATTERN in quotes so that the shell does not expand it.  For
-example, the option '-x '*.[ao]'' ignores any file whose name ends with
-'.a' or '.o'.
+example, the option ‘-x '*.[ao]'’ ignores any file whose name ends with
+‘.a’ or ‘.o’.
 
    This option accumulates if you specify it more than once.  For
-example, using the options '-x 'RCS' -x '*,v'' ignores any file or
-subdirectory whose base name is 'RCS' or ends with ',v'.
+example, using the options ‘-x 'RCS' -x '*,v'’ ignores any file or
+subdirectory whose base name is ‘RCS’ or ends with ‘,v’.
 
    If you need to give this option many times, you can instead put the
 patterns in a file, one pattern per line, and use the
-'--exclude-from=FILE' ('-X FILE') option.  Trailing white space and
+‘--exclude-from=FILE’ (‘-X FILE’) option.  Trailing white space and
 empty lines are ignored in the pattern file.
 
    If you have been comparing two directories and stopped partway
 through, later you might want to continue where you left off.  You can
-do this by using the '--starting-file=FILE' ('-S FILE') option.  This
+do this by using the ‘--starting-file=FILE’ (‘-S FILE’) option.  This
 compares only the file FILE and all alphabetically later files in the
 topmost directory level.
 
    If two directories differ only in that file names are lower case in
-one directory and upper case in the upper, 'diff' normally reports many
+one directory and upper case in the upper, ‘diff’ normally reports many
 differences because it compares file names in a case sensitive way.
-With the '--ignore-file-name-case' option, 'diff' ignores case
+With the ‘--ignore-file-name-case’ option, ‘diff’ ignores case
 differences in file names, so that for example the contents of the file
-'Tao' in one directory are compared to the contents of the file 'TAO' in
-the other.  The '--no-ignore-file-name-case' option cancels the effect
-of the '--ignore-file-name-case' option, reverting to the default
+‘Tao’ in one directory are compared to the contents of the file ‘TAO’ in
+the other.  The ‘--no-ignore-file-name-case’ option cancels the effect
+of the ‘--ignore-file-name-case’ option, reverting to the default
 behavior.
 
-   If an '--exclude=PATTERN' ('-x PATTERN') option, or an
-'--exclude-from=FILE' ('-X FILE') option, is specified while the
-'--ignore-file-name-case' option is in effect, case is ignored when
+   If an ‘--exclude=PATTERN’ (‘-x PATTERN’) option, or an
+‘--exclude-from=FILE’ (‘-X FILE’) option, is specified while the
+‘--ignore-file-name-case’ option is in effect, case is ignored when
 excluding file names matching the specified patterns.
 
-   To tell 'diff' not to follow a symbolic link, use the
-'--no-dereference' option.
+   To tell ‘diff’ not to follow a symbolic link, use the
+‘--no-dereference’ option.
 
 \1f
 File: diffutils.info,  Node: Adjusting Output,  Next: diff Performance,  Prev: Comparing Directories,  Up: Top
 
-5 Making 'diff' Output Prettier
+5 Making ‘diff’ Output Prettier
 *******************************
 
-'diff' provides several ways to adjust the appearance of its output.
+‘diff’ provides several ways to adjust the appearance of its output.
 These adjustments can be applied to any output format.
 
 * Menu:
 
 * Tabs::            Preserving the alignment of tab stops.
 * Trailing Blanks:: Suppressing blanks before empty output lines.
-* Pagination::      Page numbering and time-stamping 'diff' output.
+* Pagination::      Page numbering and time-stamping ‘diff’ output.
 
 \1f
 File: diffutils.info,  Node: Tabs,  Next: Trailing Blanks,  Up: Adjusting Output
@@ -1783,20 +1784,20 @@ File: diffutils.info,  Node: Tabs,  Next: Trailing Blanks,  Up: Adjusting Output
 5.1 Preserving Tab Stop Alignment
 =================================
 
-The lines of text in some of the 'diff' output formats are preceded by
+The lines of text in some of the ‘diff’ output formats are preceded by
 one or two characters that indicate whether the text is inserted,
 deleted, or changed.  The addition of those characters can cause tabs to
 move to the next tab stop, throwing off the alignment of columns in the
-line.  GNU 'diff' provides two ways to make tab-aligned columns line up
+line.  GNU ‘diff’ provides two ways to make tab-aligned columns line up
 correctly.
 
-   The first way is to have 'diff' convert all tabs into the correct
+   The first way is to have ‘diff’ convert all tabs into the correct
 number of spaces before outputting them; select this method with the
-'--expand-tabs' ('-t') option.  To use this form of output with 'patch',
-you must give 'patch' the '-l' or '--ignore-white-space' option (*note
-Changed White Space::, for more information).  'diff' normally assumes
+‘--expand-tabs’ (‘-t’) option.  To use this form of output with ‘patch’,
+you must give ‘patch’ the ‘-l’ or ‘--ignore-white-space’ option (*note
+Changed White Space::, for more information).  ‘diff’ normally assumes
 that tab stops are set every 8 print columns, but this can be altered by
-the '--tabsize=COLUMNS' option.
+the ‘--tabsize=COLUMNS’ option.
 
    The other method for making tabs line up correctly is to add a tab
 character instead of a space after the indicator character at the
@@ -1806,8 +1807,8 @@ original files, so that the output is aligned correctly.  Its
 disadvantage is that it can make long lines too long to fit on one line
 of the screen or the paper.  It also does not work with the unified
 output format, which does not have a space character after the change
-type indicator character.  Select this method with the '-T' or
-'--initial-tab' option.
+type indicator character.  Select this method with the ‘-T’ or
+‘--initial-tab’ option.
 
 \1f
 File: diffutils.info,  Node: Trailing Blanks,  Next: Pagination,  Prev: Tabs,  Up: Adjusting Output
@@ -1816,90 +1817,90 @@ File: diffutils.info,  Node: Trailing Blanks,  Next: Pagination,  Prev: Tabs,  U
 ============================
 
 When outputting lines in normal or context format, or outputting an
-unchanged line in unified format, 'diff' normally outputs a blank just
-before each line.  If the line is empty, the output of 'diff' therefore
+unchanged line in unified format, ‘diff’ normally outputs a blank just
+before each line.  If the line is empty, the output of ‘diff’ therefore
 contains trailing blanks even though the input does not contain them.
 For example, when outputting an unchanged empty line in context format,
-'diff' normally outputs a line with two leading spaces.
+‘diff’ normally outputs a line with two leading spaces.
 
    Some text editors and email agents routinely delete trailing blanks,
 so it can be a problem to deal with diff output files that contain them.
-You can avoid this problem with the '--suppress-blank-empty' option.  It
-causes 'diff' to omit trailing blanks at the end of output lines in
+You can avoid this problem with the ‘--suppress-blank-empty’ option.  It
+causes ‘diff’ to omit trailing blanks at the end of output lines in
 normal, context, and unified format, unless the trailing blanks were
 already present in the input.  This changes the output format slightly,
 so that output lines are guaranteed to never end in a blank unless an
 input line ends in a blank.  This format is less likely to be munged by
 text editors or by transmission via email.  It is accepted by GNU
-'patch' as well.
+‘patch’ as well.
 
 \1f
 File: diffutils.info,  Node: Pagination,  Prev: Trailing Blanks,  Up: Adjusting Output
 
-5.3 Paginating 'diff' Output
+5.3 Paginating ‘diff’ Output
 ============================
 
 It can be convenient to have long output page-numbered and time-stamped.
-The '--paginate' ('-l') option does this by sending the 'diff' output
-through the 'pr' program.  Here is what the page header might look like
-for 'diff -lc lao tzu':
+The ‘--paginate’ (‘-l’) option does this by sending the ‘diff’ output
+through the ‘pr’ program.  Here is what the page header might look like
+for ‘diff -lc lao tzu’:
 
      2002-02-22 14:20                 diff -lc lao tzu                 Page 1
 
 \1f
 File: diffutils.info,  Node: diff Performance,  Next: Comparing Three Files,  Prev: Adjusting Output,  Up: Top
 
-6 'diff' Performance Tradeoffs
+6 ‘diff’ Performance Tradeoffs
 ******************************
 
-GNU 'diff' runs quite efficiently; however, in some circumstances you
+GNU ‘diff’ runs quite efficiently; however, in some circumstances you
 can cause it to run faster or produce a more compact set of changes.
 
-   One way to improve 'diff' performance is to use hard or symbolic
+   One way to improve ‘diff’ performance is to use hard or symbolic
 links to files instead of copies.  This improves performance because
-'diff' normally does not need to read two hard or symbolic links to the
+‘diff’ normally does not need to read two hard or symbolic links to the
 same file, since their contents must be identical.  For example, suppose
 you copy a large directory hierarchy, make a few changes to the copy,
-and then often use 'diff -r' to compare the original to the copy.  If
+and then often use ‘diff -r’ to compare the original to the copy.  If
 the original files are read-only, you can greatly improve performance by
-creating the copy using hard or symbolic links (e.g., with GNU 'cp -lR'
-or 'cp -sR').  Before editing a file in the copy for the first time, you
+creating the copy using hard or symbolic links (e.g., with GNU ‘cp -lR’
+or ‘cp -sR’).  Before editing a file in the copy for the first time, you
 should break the link and replace it with a regular copy.
 
-   You can also affect the performance of GNU 'diff' by giving it
+   You can also affect the performance of GNU ‘diff’ by giving it
 options that change the way it compares files.  Performance has more
 than one dimension.  These options improve one aspect of performance at
 the cost of another, or they improve performance in some cases while
 hurting it in others.
 
-   The way that GNU 'diff' determines which lines have changed always
+   The way that GNU ‘diff’ determines which lines have changed always
 comes up with a near-minimal set of differences.  Usually it is good
-enough for practical purposes.  If the 'diff' output is large, you might
-want 'diff' to use a modified algorithm that sometimes produces a
-smaller set of differences.  The '--minimal' ('-d') option does this;
-however, it can also cause 'diff' to run more slowly than usual, so it
+enough for practical purposes.  If the ‘diff’ output is large, you might
+want ‘diff’ to use a modified algorithm that sometimes produces a
+smaller set of differences.  The ‘--minimal’ (‘-d’) option does this;
+however, it can also cause ‘diff’ to run more slowly than usual, so it
 is not the default behavior.
 
    When the files you are comparing are large and have small groups of
-changes scattered throughout them, you can use the '--speed-large-files'
-option to make a different modification to the algorithm that 'diff'
+changes scattered throughout them, you can use the ‘--speed-large-files’
+option to make a different modification to the algorithm that ‘diff’
 uses.  If the input files have a constant small density of changes, this
 option speeds up the comparisons without changing the output.  If not,
-'diff' might produce a larger set of differences; however, the output
+‘diff’ might produce a larger set of differences; however, the output
 will still be correct.
 
-   Normally 'diff' discards the prefix and suffix that is common to both
+   Normally ‘diff’ discards the prefix and suffix that is common to both
 files before it attempts to find a minimal set of differences.  This
-makes 'diff' run faster, but occasionally it may produce non-minimal
-output.  The '--horizon-lines=LINES' option prevents 'diff' from
+makes ‘diff’ run faster, but occasionally it may produce non-minimal
+output.  The ‘--horizon-lines=LINES’ option prevents ‘diff’ from
 discarding the last LINES lines of the prefix and the first LINES lines
-of the suffix.  This gives 'diff' further opportunities to find a
+of the suffix.  This gives ‘diff’ further opportunities to find a
 minimal output.
 
    Suppose a run of changed lines includes a sequence of lines at one
 end and there is an identical sequence of lines just outside the other
-end.  The 'diff' command is free to choose which identical sequence is
-included in the hunk.  In this case, 'diff' normally shifts the hunk's
+end.  The ‘diff’ command is free to choose which identical sequence is
+included in the hunk.  In this case, ‘diff’ normally shifts the hunk's
 boundaries when this merges adjacent hunks, or shifts a hunk's lines
 towards the end of the file.  Merging hunks can make the output look
 nicer in some cases.
@@ -1910,19 +1911,19 @@ File: diffutils.info,  Node: Comparing Three Files,  Next: diff3 Merging,  Prev:
 7 Comparing Three Files
 ***********************
 
-Use the program 'diff3' to compare three files and show any differences
-among them.  ('diff3' can also merge files; see *note diff3 Merging::).
+Use the program ‘diff3’ to compare three files and show any differences
+among them.  (‘diff3’ can also merge files; see *note diff3 Merging::).
 
-   The "normal" 'diff3' output format shows each hunk of differences
+   The "normal" ‘diff3’ output format shows each hunk of differences
 without surrounding context.  Hunks are labeled depending on whether
 they are two-way or three-way, and lines are annotated by their location
 in the input files.
 
-   *Note Invoking diff3::, for more information on how to run 'diff3'.
+   *Note Invoking diff3::, for more information on how to run ‘diff3’.
 
 * Menu:
 
-* Sample diff3 Input::    Sample 'diff3' input for examples.
+* Sample diff3 Input::    Sample ‘diff3’ input for examples.
 * Example diff3 Normal::  Sample output in the normal format.
 * Detailed diff3 Normal:: A detailed description of normal output format.
 * diff3 Hunks::           The format of normal output format.
@@ -1934,9 +1935,9 @@ File: diffutils.info,  Node: Sample diff3 Input,  Next: Example diff3 Normal,  U
 =============================
 
 Here is a third sample file that will be used in examples to illustrate
-the output of 'diff3' and how various options can change it.  The first
-two files are the same that we used for 'diff' (*note Sample diff
-Input::).  This is the third sample file, called 'tao':
+the output of ‘diff3’ and how various options can change it.  The first
+two files are the same that we used for ‘diff’ (*note Sample diff
+Input::).  This is the third sample file, called ‘tao’:
 
      The Way that can be told of is not the eternal Way;
      The name that can be named is not the eternal name.
@@ -1956,10 +1957,10 @@ Input::).  This is the third sample file, called 'tao':
 \1f
 File: diffutils.info,  Node: Example diff3 Normal,  Next: Detailed diff3 Normal,  Prev: Sample diff3 Input,  Up: Comparing Three Files
 
-7.2 An Example of 'diff3' Normal Format
+7.2 An Example of ‘diff3’ Normal Format
 =======================================
 
-Here is the output of the command 'diff3 lao tzu tao' (*note Sample
+Here is the output of the command ‘diff3 lao tzu tao’ (*note Sample
 diff3 Input::, for the complete contents of the files).  Notice that it
 shows only the lines that are different among the three files.
 
@@ -1995,62 +1996,62 @@ shows only the lines that are different among the three files.
 \1f
 File: diffutils.info,  Node: Detailed diff3 Normal,  Next: diff3 Hunks,  Prev: Example diff3 Normal,  Up: Comparing Three Files
 
-7.3 Detailed Description of 'diff3' Normal Format
+7.3 Detailed Description of ‘diff3’ Normal Format
 =================================================
 
-Each hunk begins with a line marked '===='.  Three-way hunks have plain
-'====' lines, and two-way hunks have '1', '2', or '3' appended to
+Each hunk begins with a line marked ‘====’.  Three-way hunks have plain
+‘====’ lines, and two-way hunks have ‘1’, ‘2’, or ‘3’ appended to
 specify which of the three input files differ in that hunk.  The hunks
 contain copies of two or three sets of input lines each preceded by one
 or two commands identifying where the lines came from.
 
    Normally, two spaces precede each copy of an input line to
-distinguish it from the commands.  But with the '--initial-tab' ('-T')
-option, 'diff3' uses a tab instead of two spaces; this lines up tabs
+distinguish it from the commands.  But with the ‘--initial-tab’ (‘-T’)
+option, ‘diff3’ uses a tab instead of two spaces; this lines up tabs
 correctly.  *Note Tabs::, for more information.
 
    Commands take the following forms:
 
-'FILE:La'
+‘FILE:La’
      This hunk appears after line L of file FILE, and contains no lines
      in that file.  To edit this file to yield the other files, one must
-     append hunk lines taken from the other files.  For example, '1:11a'
+     append hunk lines taken from the other files.  For example, ‘1:11a’
      means that the hunk follows line 11 in the first file and contains
      no lines from that file.
 
-'FILE:Rc'
+‘FILE:Rc’
      This hunk contains the lines in the range R of file FILE.  The
      range R is a comma-separated pair of line numbers, or just one
      number if there is only one line.  To edit this file to yield the
      other files, one must change the specified lines to be the lines
-     taken from the other files.  For example, '2:11,13c' means that the
+     taken from the other files.  For example, ‘2:11,13c’ means that the
      hunk contains lines 11 through 13 from the second file.
 
    If the last line in a set of input lines is incomplete (*note
 Incomplete Lines::), it is distinguished on output from a full line by a
-following line that starts with '\'.
+following line that starts with ‘\’.
 
 \1f
 File: diffutils.info,  Node: diff3 Hunks,  Prev: Detailed diff3 Normal,  Up: Comparing Three Files
 
-7.4 'diff3' Hunks
+7.4 ‘diff3’ Hunks
 =================
 
 Groups of lines that differ in two or three of the input files are
-called "diff3 hunks", by analogy with 'diff' hunks (*note Hunks::).  If
-all three input files differ in a 'diff3' hunk, the hunk is called a
-"three-way hunk"; if just two input files differ, it is a "two-way
-hunk".
-
-   As with 'diff', several solutions are possible.  When comparing the
-files 'A', 'B', and 'C', 'diff3' normally finds 'diff3' hunks by merging
-the two-way hunks output by the two commands 'diff A B' and 'diff A C'.
+called “diff3 hunks”, by analogy with ‘diff’ hunks (*note Hunks::).  If
+all three input files differ in a ‘diff3’ hunk, the hunk is called a
+“three-way hunk”; if just two input files differ, it is a “two-way
+hunk.
+
+   As with ‘diff’, several solutions are possible.  When comparing the
+files ‘A’, ‘B’, and ‘C’, ‘diff3’ normally finds ‘diff3’ hunks by merging
+the two-way hunks output by the two commands ‘diff A B’ and ‘diff A C’.
 This does not necessarily minimize the size of the output, but
 exceptions should be rare.
 
-   For example, suppose 'F' contains the three lines 'a', 'b', 'f', 'G'
-contains the lines 'g', 'b', 'g', and 'H' contains the lines 'a', 'b',
-'h'.  'diff3 F G H' might output the following:
+   For example, suppose ‘F’ contains the three lines ‘a’, ‘b’, ‘f’, ‘G’
+contains the lines ‘g’, ‘b’, ‘g’, and ‘H’ contains the lines ‘a’, ‘b’,
+‘h’.  ‘diff3 F G H’ might output the following:
 
      ====2
      1:1c
@@ -2066,8 +2067,8 @@ contains the lines 'g', 'b', 'g', and 'H' contains the lines 'a', 'b',
      3:3c
        h
 
-because it found a two-way hunk containing 'a' in the first and third
-files and 'g' in the second file, then the single line 'b' common to all
+because it found a two-way hunk containing ‘a’ in the first and third
+files and ‘g’ in the second file, then the single line ‘b’ common to all
 three files, then a three-way hunk containing the last line of each
 file.
 
@@ -2077,16 +2078,16 @@ File: diffutils.info,  Node: diff3 Merging,  Next: Interactive Merging,  Prev: C
 8 Merging From a Common Ancestor
 ********************************
 
-When two people have made changes to copies of the same file, 'diff3'
+When two people have made changes to copies of the same file, ‘diff3’
 can produce a merged output that contains both sets of changes together
 with warnings about conflicts.
 
-   One might imagine programs with names like 'diff4' and 'diff5' to
+   One might imagine programs with names like ‘diff4’ and ‘diff5’ to
 compare more than three files simultaneously, but in practice the need
-rarely arises.  You can use 'diff3' to merge three or more sets of
+rarely arises.  You can use ‘diff3’ to merge three or more sets of
 changes to a file by merging two change sets at a time.
 
-   'diff3' can incorporate changes from two modified versions into a
+   ‘diff3’ can incorporate changes from two modified versions into a
 common preceding version.  This lets you merge the sets of changes
 represented by the two newer files.  Specify the common ancestor version
 as the second argument and the two newer versions as the first and third
@@ -2102,24 +2103,24 @@ result to MINE, or as merging into MINE the changes that would turn
 OLDER into YOURS.  This merging is well-defined as long as MINE and
 OLDER match in the neighborhood of each such change.  This fails to be
 true when all three input files differ or when only OLDER differs; we
-call this a "conflict".  When all three input files differ, we call the
-conflict an "overlap".
+call this a “conflict”.  When all three input files differ, we call the
+conflict an “overlap”.
 
-   'diff3' gives you several ways to handle overlaps and conflicts.  You
+   ‘diff3’ gives you several ways to handle overlaps and conflicts.  You
 can omit overlaps or conflicts, or select only overlaps, or mark
-conflicts with special '<<<<<<<' and '>>>>>>>' lines.
+conflicts with special ‘<<<<<<<’ and ‘>>>>>>>’ lines.
 
-   'diff3' can output the merge results as an 'ed' script that that can
+   ‘diff3’ can output the merge results as an ‘ed’ script that that can
 be applied to the first file to yield the merged output.  However, it is
-usually better to have 'diff3' generate the merged output directly; this
-bypasses some problems with 'ed'.
+usually better to have ‘diff3’ generate the merged output directly; this
+bypasses some problems with ‘ed’.
 
 * Menu:
 
 * Which Changes::            Selecting changes to incorporate.
 * Marking Conflicts::        Marking conflicts.
 * Bypassing ed::             Generating merged output directly.
-* Merging Incomplete Lines:: How 'diff3' merges incomplete lines.
+* Merging Incomplete Lines:: How ‘diff3’ merges incomplete lines.
 * Saving the Changed File::  Emulating System V behavior.
 
 \1f
@@ -2129,22 +2130,22 @@ File: diffutils.info,  Node: Which Changes,  Next: Marking Conflicts,  Up: diff3
 ==========================================
 
 You can select all unmerged changes from OLDER to YOURS for merging into
-MINE with the '--ed' ('-e') option.  You can select only the
-nonoverlapping unmerged changes with '--easy-only' ('-3'), and you can
-select only the overlapping changes with '--overlap-only' ('-x').
+MINE with the ‘--ed’ (‘-e’) option.  You can select only the
+nonoverlapping unmerged changes with ‘--easy-only’ (‘-3’), and you can
+select only the overlapping changes with ‘--overlap-only’ (‘-x’).
 
-   The '-e', '-3' and '-x' options select only "unmerged changes", i.e.
+   The ‘-e’, ‘-3’ and ‘-x’ options select only “unmerged changes”, i.e.
 changes where MINE and YOURS differ; they ignore changes from OLDER to
 YOURS where MINE and YOURS are identical, because they assume that such
 changes have already been merged.  If this assumption is not a safe one,
-you can use the '--show-all' ('-A') option (*note Marking Conflicts::).
+you can use the ‘--show-all’ (‘-A’) option (*note Marking Conflicts::).
 
-   Here is the output of the command 'diff3' with each of these three
+   Here is the output of the command ‘diff3’ with each of these three
 options (*note Sample diff3 Input::, for the complete contents of the
-files).  Notice that '-e' outputs the union of the disjoint sets of
-changes output by '-3' and '-x'.
+files).  Notice that ‘-e’ outputs the union of the disjoint sets of
+changes output by ‘-3’ and ‘-x’.
 
-   Output of 'diff3 -e lao tzu tao':
+   Output of ‘diff3 -e lao tzu tao’:
      11a
 
        -- The Way of Lao-Tzu, tr. Wing-tsit Chan
@@ -2153,12 +2154,12 @@ changes output by '-3' and '-x'.
        so we may see their result.
      .
 
-   Output of 'diff3 -3 lao tzu tao':
+   Output of ‘diff3 -3 lao tzu tao’:
      8c
        so we may see their result.
      .
 
-   Output of 'diff3 -x lao tzu tao':
+   Output of ‘diff3 -x lao tzu tao’:
      11a
 
        -- The Way of Lao-Tzu, tr. Wing-tsit Chan
@@ -2170,7 +2171,7 @@ File: diffutils.info,  Node: Marking Conflicts,  Next: Bypassing ed,  Prev: Whic
 8.2 Marking Conflicts
 =====================
 
-'diff3' can mark conflicts in the merged output by bracketing them with
+‘diff3’ can mark conflicts in the merged output by bracketing them with
 special marker lines.  A conflict that comes from two files A and B is
 marked as follows:
 
@@ -2191,11 +2192,11 @@ follows:
      lines from C
      >>>>>>> C
 
-   The '--show-all' ('-A') option acts like the '-e' option, except that
+   The ‘--show-all’ (‘-A’) option acts like the ‘-e’ option, except that
 it brackets conflicts, and it outputs all changes from OLDER to YOURS,
 not just the unmerged changes.  Thus, given the sample input files
-(*note Sample diff3 Input::), 'diff3 -A lao tzu tao' puts brackets
-around the conflict where only 'tzu' differs:
+(*note Sample diff3 Input::), ‘diff3 -A lao tzu tao’ puts brackets
+around the conflict where only ‘tzu’ differs:
 
      <<<<<<< tzu
      =======
@@ -2215,14 +2216,14 @@ around the conflict where only 'tzu' differs:
        -- The Way of Lao-Tzu, tr. Wing-tsit Chan
      >>>>>>> tao
 
-   The '--show-overlap' ('-E') option outputs less information than the
-'--show-all' ('-A') option, because it outputs only unmerged changes,
-and it never outputs the contents of the second file.  Thus the '-E'
-option acts like the '-e' option, except that it brackets the first and
-third files from three-way overlapping changes.  Similarly, '-X' acts
-like '-x', except it brackets all its (necessarily overlapping) changes.
-For example, for the three-way overlapping change above, the '-E' and
-'-X' options output the following:
+   The ‘--show-overlap’ (‘-E’) option outputs less information than the
+‘--show-all’ (‘-A’) option, because it outputs only unmerged changes,
+and it never outputs the contents of the second file.  Thus the ‘-E’
+option acts like the ‘-e’ option, except that it brackets the first and
+third files from three-way overlapping changes.  Similarly, ‘-X’ acts
+like ‘-x’, except it brackets all its (necessarily overlapping) changes.
+For example, for the three-way overlapping change above, the ‘-E’ and
+‘-X’ options output the following:
 
      <<<<<<< lao
      =======
@@ -2231,12 +2232,12 @@ For example, for the three-way overlapping change above, the '-E' and
      >>>>>>> tao
 
    If you are comparing files that have meaningless or uninformative
-names, you can use the '--label=LABEL' option to show alternate names in
-the '<<<<<<<', '|||||||' and '>>>>>>>' brackets.  This option can be
-given up to three times, once for each input file.  Thus 'diff3 -A
---label X --label Y --label Z A B C' acts like 'diff3 -A A B C', except
-that the output looks like it came from files named 'X', 'Y' and 'Z'
-rather than from files named 'A', 'B' and 'C'.
+names, you can use the ‘--label=LABEL’ option to show alternate names in
+the ‘<<<<<<<’, ‘|||||||’ and ‘>>>>>>>’ brackets.  This option can be
+given up to three times, once for each input file.  Thus diff3 -A
+--label X --label Y --label Z A B C’ acts like ‘diff3 -A A B C’, except
+that the output looks like it came from files named ‘X’, ‘Y’ and ‘Z’
+rather than from files named ‘A’, ‘B’ and ‘C’.
 
 \1f
 File: diffutils.info,  Node: Bypassing ed,  Next: Merging Incomplete Lines,  Prev: Marking Conflicts,  Up: diff3 Merging
@@ -2244,12 +2245,12 @@ File: diffutils.info,  Node: Bypassing ed,  Next: Merging Incomplete Lines,  Pre
 8.3 Generating the Merged Output Directly
 =========================================
 
-With the '--merge' ('-m') option, 'diff3' outputs the merged file
-directly.  This is more efficient than using 'ed' to generate it, and
-works even with non-text files that 'ed' would reject.  If you specify
-'-m' without an 'ed' script option, '-A' is assumed.
+With the ‘--merge’ (‘-m’) option, ‘diff3’ outputs the merged file
+directly.  This is more efficient than using ‘ed’ to generate it, and
+works even with non-text files that ‘ed’ would reject.  If you specify
+‘-m’ without an ‘ed’ script option, ‘-A’ is assumed.
 
-   For example, the command 'diff3 -m lao tzu tao' (*note Sample diff3
+   For example, the command ‘diff3 -m lao tzu tao’ (*note Sample diff3
 Input:: for a copy of the input files) would output the following:
 
      <<<<<<< tzu
@@ -2279,18 +2280,18 @@ Input:: for a copy of the input files) would output the following:
 \1f
 File: diffutils.info,  Node: Merging Incomplete Lines,  Next: Saving the Changed File,  Prev: Bypassing ed,  Up: diff3 Merging
 
-8.4 How 'diff3' Merges Incomplete Lines
+8.4 How ‘diff3’ Merges Incomplete Lines
 =======================================
 
-With '-m', incomplete lines (*note Incomplete Lines::) are simply copied
+With ‘-m’, incomplete lines (*note Incomplete Lines::) are simply copied
 to the output as they are found; if the merged output ends in an
 conflict and one of the input files ends in an incomplete line,
-succeeding '|||||||', '=======' or '>>>>>>>' brackets appear somewhere
+succeeding ‘|||||||’, ‘=======’ or ‘>>>>>>>’ brackets appear somewhere
 other than the start of a line because they are appended to the
 incomplete line.
 
-   Without '-m', if an 'ed' script option is specified and an incomplete
-line is found, 'diff3' generates a warning and acts as if a newline had
+   Without ‘-m’, if an ‘ed’ script option is specified and an incomplete
+line is found, ‘diff3’ generates a warning and acts as if a newline had
 been present.
 
 \1f
@@ -2299,41 +2300,41 @@ File: diffutils.info,  Node: Saving the Changed File,  Prev: Merging Incomplete
 8.5 Saving the Changed File
 ===========================
 
-Traditional Unix 'diff3' generates an 'ed' script without the trailing
-'w' and 'q' commands that save the changes.  System V 'diff3' generates
-these extra commands.  GNU 'diff3' normally behaves like traditional
-Unix 'diff3', but with the '-i' option it behaves like System V 'diff3'
-and appends the 'w' and 'q' commands.
+Traditional Unix ‘diff3’ generates an ‘ed’ script without the trailing
+‘w’ and ‘q’ commands that save the changes.  System V ‘diff3’ generates
+these extra commands.  GNU ‘diff3’ normally behaves like traditional
+Unix ‘diff3’, but with the ‘-i’ option it behaves like System V ‘diff3’
+and appends the ‘w’ and ‘q’ commands.
 
-   The '-i' option requires one of the 'ed' script options '-AeExX3',
-and is incompatible with the merged output option '-m'.
+   The ‘-i’ option requires one of the ‘ed’ script options ‘-AeExX3’,
+and is incompatible with the merged output option ‘-m’.
 
 \1f
 File: diffutils.info,  Node: Interactive Merging,  Next: Merging with patch,  Prev: diff3 Merging,  Up: Top
 
-9 Interactive Merging with 'sdiff'
+9 Interactive Merging with ‘sdiff’
 **********************************
 
-With 'sdiff', you can merge two files interactively based on a
-side-by-side '-y' format comparison (*note Side by Side::).  Use
-'--output=FILE' ('-o FILE') to specify where to put the merged text.
-*Note Invoking sdiff::, for more details on the options to 'sdiff'.
+With ‘sdiff’, you can merge two files interactively based on a
+side-by-side ‘-y’ format comparison (*note Side by Side::).  Use
+‘--output=FILE’ (‘-o FILE’) to specify where to put the merged text.
+*Note Invoking sdiff::, for more details on the options to ‘sdiff’.
 
    Another way to merge files interactively is to use the Emacs Lisp
-package 'emerge'.  *Note Emerge: (emacs)Emerge, for more information.
+package ‘emerge’.  *Note Emerge: (emacs)Emerge, for more information.
 
 * Menu:
 
-* sdiff Option Summary:: Summary of 'sdiff' options.
+* sdiff Option Summary:: Summary of ‘sdiff’ options.
 * Merge Commands::       Merging two files interactively.
 
 \1f
 File: diffutils.info,  Node: sdiff Option Summary,  Next: Merge Commands,  Up: Interactive Merging
 
-9.1 Specifying 'diff' Options to 'sdiff'
+9.1 Specifying ‘diff’ Options to ‘sdiff’
 ========================================
 
-The following 'sdiff' options have the same meaning as for 'diff'.
+The following ‘sdiff’ options have the same meaning as for ‘diff’.
 *Note diff Options::, for the use of these options.
 
      -a -b -d -i -t -v
@@ -2347,13 +2348,13 @@ The following 'sdiff' options have the same meaning as for 'diff'.
      --strip-trailing-cr  --suppress-common-lines
      --tabsize=COLUMNS  --text  --version  --width=COLUMNS
 
-   For historical reasons, 'sdiff' has alternate names for some options.
-The '-l' option is equivalent to the '--left-column' option, and
-similarly '-s' is equivalent to '--suppress-common-lines'.  The meaning
-of the 'sdiff' '-w' and '-W' options is interchanged from that of
-'diff': with 'sdiff', '-w COLUMNS' is equivalent to '--width=COLUMNS',
-and '-W' is equivalent to '--ignore-all-space'.  'sdiff' without the
-'-o' option is equivalent to 'diff' with the '--side-by-side' ('-y')
+   For historical reasons, ‘sdiff’ has alternate names for some options.
+The ‘-l’ option is equivalent to the ‘--left-column’ option, and
+similarly ‘-s’ is equivalent to ‘--suppress-common-lines’.  The meaning
+of the ‘sdiff’ ‘-w’ and ‘-W’ options is interchanged from that of
+‘diff’: with ‘sdiff’, ‘-w COLUMNS’ is equivalent to ‘--width=COLUMNS’,
+and ‘-W’ is equivalent to ‘--ignore-all-space’.  ‘sdiff’ without the
+‘-o’ option is equivalent to ‘diff’ with the ‘--side-by-side’ (‘-y’)
 option (*note Side by Side::).
 
 \1f
@@ -2363,88 +2364,88 @@ File: diffutils.info,  Node: Merge Commands,  Prev: sdiff Option Summary,  Up: I
 ==================
 
 Groups of common lines, with a blank gutter, are copied from the first
-file to the output.  After each group of differing lines, 'sdiff'
-prompts with '%' and pauses, waiting for one of the following commands.
+file to the output.  After each group of differing lines, ‘sdiff’
+prompts with ‘%’ and pauses, waiting for one of the following commands.
 Follow each command with <RET>.
 
-'e'
+‘e’
      Discard both versions.  Invoke a text editor on an empty temporary
      file, then copy the resulting file to the output.
 
-'eb'
+‘eb’
      Concatenate the two versions, edit the result in a temporary file,
      then copy the edited result to the output.
 
-'ed'
-     Like 'eb', except precede each version with a header that shows
+‘ed’
+     Like ‘eb’, except precede each version with a header that shows
      what file and lines the version came from.
 
-'el'
-'e1'
+‘el’
+‘e1’
      Edit a copy of the left version, then copy the result to the
      output.
 
-'er'
-'e2'
+‘er’
+‘e2’
      Edit a copy of the right version, then copy the result to the
      output.
 
-'l'
-'1'
+‘l’
+‘1’
      Copy the left version to the output.
 
-'q'
+‘q’
      Quit.
 
-'r'
-'2'
+‘r’
+‘2’
      Copy the right version to the output.
 
-'s'
+‘s’
      Silently copy common lines.
 
-'v'
+‘v’
      Verbosely copy common lines.  This is the default.
 
-   The text editor invoked is specified by the 'EDITOR' environment
+   The text editor invoked is specified by the ‘EDITOR’ environment
 variable if it is set.  The default is system-dependent.
 
 \1f
 File: diffutils.info,  Node: Merging with patch,  Next: Making Patches,  Prev: Interactive Merging,  Up: Top
 
-10 Merging with 'patch'
+10 Merging with ‘patch’
 ***********************
 
-'patch' takes comparison output produced by 'diff' and applies the
+‘patch’ takes comparison output produced by ‘diff’ and applies the
 differences to a copy of the original file, producing a patched version.
-With 'patch', you can distribute just the changes to a set of files
+With ‘patch’, you can distribute just the changes to a set of files
 instead of distributing the entire file set; your correspondents can
-apply 'patch' to update their copy of the files with your changes.
-'patch' automatically determines the diff format, skips any leading or
+apply ‘patch’ to update their copy of the files with your changes.
+‘patch’ automatically determines the diff format, skips any leading or
 trailing headers, and uses the headers to determine which file to patch.
 This lets your correspondents feed a mail message containing a
-difference listing directly to 'patch'.
+difference listing directly to ‘patch’.
 
-   'patch' detects and warns about common problems like forward patches.
+   ‘patch’ detects and warns about common problems like forward patches.
 It saves any patches that it could not apply.  It can also maintain a
-'patchlevel.h' file to ensure that your correspondents apply diffs in
+‘patchlevel.h’ file to ensure that your correspondents apply diffs in
 the proper order.
 
-   'patch' accepts a series of diffs in its standard input, usually
+   ‘patch’ accepts a series of diffs in its standard input, usually
 separated by headers that specify which file to patch.  It applies
-'diff' hunks (*note Hunks::) one by one.  If a hunk does not exactly
-match the original file, 'patch' uses heuristics to try to patch the
-file as well as it can.  If no approximate match can be found, 'patch'
-rejects the hunk and skips to the next hunk.  'patch' normally replaces
+‘diff’ hunks (*note Hunks::) one by one.  If a hunk does not exactly
+match the original file, ‘patch’ uses heuristics to try to patch the
+file as well as it can.  If no approximate match can be found, ‘patch’
+rejects the hunk and skips to the next hunk.  ‘patch’ normally replaces
 each file F with its new version, putting reject hunks (if any) into
-'F.rej'.
+‘F.rej’.
 
    *Note Invoking patch::, for detailed information on the options to
-'patch'.
+‘patch’.
 
 * Menu:
 
-* patch Input::            Selecting the type of 'patch' input.
+* patch Input::            Selecting the type of ‘patch’ input.
 * Revision Control::       Getting files from RCS, SCCS, etc.
 * Imperfect::              Dealing with imperfect patches.
 * Creating and Removing::  Creating and removing files with a patch.
@@ -2454,37 +2455,37 @@ each file F with its new version, putting reject hunks (if any) into
 * Backups::                Whether backup files are made.
 * Backup Names::           Backup file names.
 * Reject Names::           Reject file names.
-* patch Messages::         Messages and questions 'patch' can produce.
+* patch Messages::         Messages and questions ‘patch’ can produce.
 * patch and POSIX::        Conformance to the POSIX standard.
-* patch and Tradition::    GNU versus traditional 'patch'.
+* patch and Tradition::    GNU versus traditional ‘patch’.
 
 \1f
 File: diffutils.info,  Node: patch Input,  Next: Revision Control,  Up: Merging with patch
 
-10.1 Selecting the 'patch' Input Format
+10.1 Selecting the ‘patch’ Input Format
 =======================================
 
-'patch' normally determines which 'diff' format the patch file uses by
+‘patch’ normally determines which ‘diff’ format the patch file uses by
 examining its contents.  For patch files that contain particularly
 confusing leading text, you might need to use one of the following
-options to force 'patch' to interpret the patch file as a certain format
-of diff.  The output formats listed here are the only ones that 'patch'
+options to force ‘patch’ to interpret the patch file as a certain format
+of diff.  The output formats listed here are the only ones that ‘patch’
 can understand.
 
-'-c'
-'--context'
+‘-c’
+‘--context’
      context diff.
 
-'-e'
-'--ed'
-     'ed' script.
+‘-e’
+‘--ed’
+     ‘ed’ script.
 
-'-n'
-'--normal'
+‘-n’
+‘--normal’
      normal diff.
 
-'-u'
-'--unified'
+‘-u’
+‘--unified’
      unified diff.
 
 \1f
@@ -2494,23 +2495,23 @@ File: diffutils.info,  Node: Revision Control,  Next: Imperfect,  Prev: patch In
 =====================
 
 If a nonexistent input file is under a revision control system supported
-by 'patch', 'patch' normally asks the user whether to get (or check out)
+by ‘patch’, ‘patch’ normally asks the user whether to get (or check out)
 the file from the revision control system.  Patch currently supports
-RCS, ClearCase and SCCS. Under RCS and SCCS, 'patch' also asks when the
+RCS, ClearCase and SCCS. Under RCS and SCCS, ‘patch’ also asks when the
 input file is read-only and matches the default version in the revision
 control system.
 
-   The '--get=NUM' ('-g NUM') option affects access to files under
-supported revision control systems.  If NUM is positive, 'patch' gets
-the file without asking the user; if zero, 'patch' neither asks the user
-nor gets the file; and if negative, 'patch' asks the user before getting
+   The ‘--get=NUM’ (‘-g NUM’) option affects access to files under
+supported revision control systems.  If NUM is positive, ‘patch’ gets
+the file without asking the user; if zero, ‘patch’ neither asks the user
+nor gets the file; and if negative, ‘patch’ asks the user before getting
 the file.  The default value of NUM is given by the value of the
-'PATCH_GET' environment variable if it is set; if not, the default value
-is zero if 'patch' is conforming to POSIX, negative otherwise.  *Note
+‘PATCH_GET’ environment variable if it is set; if not, the default value
+is zero if ‘patch’ is conforming to POSIX, negative otherwise.  *Note
 patch and POSIX::.
 
    The choice of revision control system is unaffected by the
-'VERSION_CONTROL' environment variable (*note Backup Names::).
+‘VERSION_CONTROL’ environment variable (*note Backup Names::).
 
 \1f
 File: diffutils.info,  Node: Imperfect,  Next: Creating and Removing,  Prev: Revision Control,  Up: Merging with patch
@@ -2518,15 +2519,15 @@ File: diffutils.info,  Node: Imperfect,  Next: Creating and Removing,  Prev: Rev
 10.3 Applying Imperfect Patches
 ===============================
 
-'patch' tries to skip any leading text in the patch file, apply the
+‘patch’ tries to skip any leading text in the patch file, apply the
 diff, and then skip any trailing text.  Thus you can feed a mail message
-directly to 'patch', and it should work.  If the entire diff is indented
-by a constant amount of white space, 'patch' automatically ignores the
+directly to ‘patch’, and it should work.  If the entire diff is indented
+by a constant amount of white space, ‘patch’ automatically ignores the
 indentation.  If a context diff contains trailing carriage return on
-each line, 'patch' automatically ignores the carriage return.  If a
-context diff has been encapsulated by prepending '- ' to lines beginning
-with '-' as per Internet RFC 934
-(ftp://ftp.isi.edu/in-notes/rfc934.txt), 'patch' automatically
+each line, ‘patch’ automatically ignores the carriage return.  If a
+context diff has been encapsulated by prepending ‘- ’ to lines beginning
+with ‘-’ as per Internet RFC 934
+(ftp://ftp.isi.edu/in-notes/rfc934.txt), ‘patch’ automatically
 unencapsulates the input.
 
    However, certain other types of imperfect input require user
@@ -2536,8 +2537,8 @@ intervention or testing.
 
 * Changed White Space:: When tabs and spaces don't match exactly.
 * Reversed Patches::    Applying reversed patches correctly.
-* Inexact::             Helping 'patch' find close matches.
-* Dry Runs::            Predicting what 'patch' will do.
+* Inexact::             Helping ‘patch’ find close matches.
+* Dry Runs::            Predicting what ‘patch’ will do.
 
 \1f
 File: diffutils.info,  Node: Changed White Space,  Next: Reversed Patches,  Up: Imperfect
@@ -2547,9 +2548,9 @@ File: diffutils.info,  Node: Changed White Space,  Next: Reversed Patches,  Up:
 
 Sometimes mailers, editors, or other programs change spaces into tabs,
 or vice versa.  If this happens to a patch file or an input file, the
-files might look the same, but 'patch' will not be able to match them
-properly.  If this problem occurs, use the '-l' or
-'--ignore-white-space' option, which makes 'patch' compare blank
+files might look the same, but ‘patch’ will not be able to match them
+properly.  If this problem occurs, use the ‘-l’ or
+‘--ignore-white-space’ option, which makes ‘patch’ compare blank
 characters (i.e. spaces and tabs) loosely so that any nonempty sequence
 of blanks in the patch file matches any nonempty sequence of blanks in
 the input files.  Non-blank characters must still match exactly.  Each
@@ -2561,79 +2562,79 @@ File: diffutils.info,  Node: Reversed Patches,  Next: Inexact,  Prev: Changed Wh
 10.3.2 Applying Reversed Patches
 --------------------------------
 
-Sometimes people run 'diff' with the new file first instead of second.
+Sometimes people run ‘diff’ with the new file first instead of second.
 This creates a diff that is "reversed".  To apply such patches, give
-'patch' the '--reverse' ('-R') option.  'patch' then attempts to swap
+‘patch’ the ‘--reverse’ (‘-R’) option.  ‘patch’ then attempts to swap
 each hunk around before applying it.  Rejects come out in the swapped
 format.
 
-   Often 'patch' can guess that the patch is reversed.  If the first
-hunk of a patch fails, 'patch' reverses the hunk to see if it can apply
-it that way.  If it can, 'patch' asks you if you want to have the '-R'
-option set; if it can't, 'patch' continues to apply the patch normally.
+   Often ‘patch’ can guess that the patch is reversed.  If the first
+hunk of a patch fails, ‘patch’ reverses the hunk to see if it can apply
+it that way.  If it can, ‘patch’ asks you if you want to have the ‘-R’
+option set; if it can't, ‘patch’ continues to apply the patch normally.
 This method cannot detect a reversed patch if it is a normal diff and
 the first command is an append (which should have been a delete) since
 appends always succeed, because a null context matches anywhere.  But
 most patches add or change lines rather than delete them, so most
-reversed normal diffs begin with a delete, which fails, and 'patch'
+reversed normal diffs begin with a delete, which fails, and ‘patch’
 notices.
 
-   If you apply a patch that you have already applied, 'patch' thinks it
+   If you apply a patch that you have already applied, ‘patch’ thinks it
 is a reversed patch and offers to un-apply the patch.  This could be
 construed as a feature.  If you did this inadvertently and you don't
-want to un-apply the patch, just answer 'n' to this offer and to the
-subsequent "apply anyway" question--or type 'C-c' to kill the 'patch'
+want to un-apply the patch, just answer ‘n’ to this offer and to the
+subsequent "apply anyway" question--or type ‘C-c’ to kill the ‘patch’
 process.
 
 \1f
 File: diffutils.info,  Node: Inexact,  Next: Dry Runs,  Prev: Reversed Patches,  Up: Imperfect
 
-10.3.3 Helping 'patch' Find Inexact Matches
+10.3.3 Helping ‘patch’ Find Inexact Matches
 -------------------------------------------
 
-For context diffs, and to a lesser extent normal diffs, 'patch' can
+For context diffs, and to a lesser extent normal diffs, ‘patch’ can
 detect when the line numbers mentioned in the patch are incorrect, and
 it attempts to find the correct place to apply each hunk of the patch.
 As a first guess, it takes the line number mentioned in the hunk, plus
 or minus any offset used in applying the previous hunk.  If that is not
-the correct place, 'patch' scans both forward and backward for a set of
+the correct place, ‘patch’ scans both forward and backward for a set of
 lines matching the context given in the hunk.
 
-   First 'patch' looks for a place where all lines of the context match.
+   First ‘patch’ looks for a place where all lines of the context match.
 If it cannot find such a place, and it is reading a context or unified
-diff, and the maximum fuzz factor is set to 1 or more, then 'patch'
+diff, and the maximum fuzz factor is set to 1 or more, then ‘patch’
 makes another scan, ignoring the first and last line of context.  If
 that fails, and the maximum fuzz factor is set to 2 or more, it makes
 another scan, ignoring the first two and last two lines of context are
 ignored.  It continues similarly if the maximum fuzz factor is larger.
 
-   The '--fuzz=LINES' ('-F LINES') option sets the maximum fuzz factor
+   The ‘--fuzz=LINES’ (‘-F LINES’) option sets the maximum fuzz factor
 to LINES.  This option only applies to context and unified diffs; it
 ignores up to LINES lines while looking for the place to install a hunk.
 Note that a larger fuzz factor increases the odds of making a faulty
 patch.  The default fuzz factor is 2; there is no point to setting it to
 more than the number of lines of context in the diff, ordinarily 3.
 
-   If 'patch' cannot find a place to install a hunk of the patch, it
+   If ‘patch’ cannot find a place to install a hunk of the patch, it
 writes the hunk out to a reject file (*note Reject Names::, for
 information on how reject files are named).  It writes out rejected
 hunks in context format no matter what form the input patch is in.  If
-the input is a normal or 'ed' diff, many of the contexts are simply
+the input is a normal or ‘ed’ diff, many of the contexts are simply
 null.  The line numbers on the hunks in the reject file may be different
 from those in the patch file: they show the approximate location where
-'patch' thinks the failed hunks belong in the new file rather than in
+‘patch’ thinks the failed hunks belong in the new file rather than in
 the old one.
 
-   If the '--verbose' option is given, then as it completes each hunk
-'patch' tells you whether the hunk succeeded or failed, and if it
-failed, on which line (in the new file) 'patch' thinks the hunk should
+   If the ‘--verbose’ option is given, then as it completes each hunk
+‘patch’ tells you whether the hunk succeeded or failed, and if it
+failed, on which line (in the new file) ‘patch’ thinks the hunk should
 go.  If this is different from the line number specified in the diff, it
-tells you the offset.  A single large offset _may_ indicate that 'patch'
-installed a hunk in the wrong place.  'patch' also tells you if it used
+tells you the offset.  A single large offset _may_ indicate that ‘patch’
+installed a hunk in the wrong place.  ‘patch’ also tells you if it used
 a fuzz factor to make the match, in which case you should also be
 slightly suspicious.
 
-   'patch' cannot tell if the line numbers are off in an 'ed' script,
+   ‘patch’ cannot tell if the line numbers are off in an ‘ed’ script,
 and can only detect wrong line numbers in a normal diff when it finds a
 change or delete command.  It may have the same problem with a context
 diff using a fuzz factor equal to or greater than the number of lines of
@@ -2645,7 +2646,7 @@ pretty good indication that the patch worked, but not a guarantee.
    A patch against an empty file applies to a nonexistent file, and vice
 versa.  *Note Creating and Removing::.
 
-   'patch' usually produces the correct results, even when it must make
+   ‘patch’ usually produces the correct results, even when it must make
 many guesses.  However, the results are guaranteed only when the patch
 is applied to an exact copy of the file that the patch was generated
 from.
@@ -2653,19 +2654,19 @@ from.
 \1f
 File: diffutils.info,  Node: Dry Runs,  Prev: Inexact,  Up: Imperfect
 
-10.3.4 Predicting what 'patch' will do
+10.3.4 Predicting what ‘patch’ will do
 --------------------------------------
 
-It may not be obvious in advance what 'patch' will do with a complicated
+It may not be obvious in advance what ‘patch’ will do with a complicated
 or poorly formatted patch.  If you are concerned that the input might
-cause 'patch' to modify the wrong files, you can use the '--dry-run'
-option, which causes 'patch' to print the results of applying patches
+cause ‘patch’ to modify the wrong files, you can use the ‘--dry-run’
+option, which causes ‘patch’ to print the results of applying patches
 without actually changing any files.  You can then inspect the
-diagnostics generated by the dry run to see whether 'patch' will modify
+diagnostics generated by the dry run to see whether ‘patch’ will modify
 the files that you expect.  If the patch does not do what you want, you
-can modify the patch (or the other options to 'patch') and try another
+can modify the patch (or the other options to ‘patch’) and try another
 dry run.  Once you are satisfied with the proposed patch you can apply
-it by invoking 'patch' as before, but this time without the '--dry-run'
+it by invoking ‘patch’ as before, but this time without the ‘--dry-run’
 option.
 
 \1f
@@ -2675,18 +2676,18 @@ File: diffutils.info,  Node: Creating and Removing,  Next: Patching Timestamps,
 ================================
 
 Sometimes when comparing two directories, a file may exist in one
-directory but not the other.  If you give 'diff' the '--new-file' ('-N')
-option, or if you supply an old or new file that is named '/dev/null' or
-is empty and is dated the Epoch (1970-01-01 00:00:00 UTC), 'diff'
+directory but not the other.  If you give ‘diff’ the ‘--new-file’ (‘-N’)
+option, or if you supply an old or new file that is named ‘/dev/null’ or
+is empty and is dated the Epoch (1970-01-01 00:00:00 UTC), ‘diff’
 outputs a patch that adds or deletes the contents of this file.  When
-given such a patch, 'patch' normally creates a new file or removes the
+given such a patch, ‘patch’ normally creates a new file or removes the
 old file.  However, when conforming to POSIX (*note patch and POSIX::),
-'patch' does not remove the old file, but leaves it empty.  The
-'--remove-empty-files' ('-E') option causes 'patch' to remove output
+‘patch’ does not remove the old file, but leaves it empty.  The
+‘--remove-empty-files’ (‘-E’) option causes ‘patch’ to remove output
 files that are empty after applying a patch, even if the patch does not
 appear to be one that removed the file.
 
-   If the patch appears to create a file that already exists, 'patch'
+   If the patch appears to create a file that already exists, ‘patch’
 asks for confirmation before applying the patch.
 
 \1f
@@ -2695,38 +2696,38 @@ File: diffutils.info,  Node: Patching Timestamps,  Next: Multiple Patches,  Prev
 10.5 Updating Timestamps on Patched Files
 =========================================
 
-When 'patch' updates a file, it normally sets the file's last-modified
-timestamp to the current time of day.  If you are using 'patch' to track
-a software distribution, this can cause 'make' to incorrectly conclude
-that a patched file is out of date.  For example, if 'syntax.c' depends
-on 'syntax.y', and 'patch' updates 'syntax.c' and then 'syntax.y', then
-'syntax.c' will normally appear to be out of date with respect to
-'syntax.y' even though its contents are actually up to date.
+When ‘patch’ updates a file, it normally sets the file's last-modified
+timestamp to the current time of day.  If you are using ‘patch’ to track
+a software distribution, this can cause ‘make’ to incorrectly conclude
+that a patched file is out of date.  For example, if ‘syntax.c’ depends
+on ‘syntax.y’, and ‘patch’ updates ‘syntax.c’ and then ‘syntax.y’, then
+‘syntax.c’ will normally appear to be out of date with respect to
+‘syntax.y’ even though its contents are actually up to date.
 
-   The '--set-utc' ('-Z') option causes 'patch' to set a patched file's
+   The ‘--set-utc’ (‘-Z’) option causes ‘patch’ to set a patched file's
 modification and access times to the timestamps given in context diff
 headers.  If the context diff headers do not specify a time zone, they
 are assumed to use Coordinated Universal Time (UTC, often known as GMT).
 
-   The '--set-time' ('-T') option acts like '-Z' or '--set-utc', except
+   The ‘--set-time’ (‘-T’) option acts like ‘-Z’ or ‘--set-utc’, except
 that it assumes that the context diff headers' timestamps use local time
 instead of UTC. This option is not recommended, because patches using
 local time cannot easily be used by people in other time zones, and
 because local timestamps are ambiguous when local clocks move backwards
 during daylight-saving time adjustments.  If the context diff headers
-specify a time zone, this option is equivalent to '--set-utc' ('-Z').
+specify a time zone, this option is equivalent to ‘--set-utc’ (‘-Z’).
 
-   'patch' normally refrains from setting a file's timestamps if the
+   ‘patch’ normally refrains from setting a file's timestamps if the
 file's original last-modified timestamp does not match the time given in
 the diff header, of if the file's contents do not exactly match the
-patch.  However, if the '--force' ('-f') option is given, the file's
+patch.  However, if the ‘--force’ (‘-f’) option is given, the file's
 timestamps are set regardless.
 
-   Due to the limitations of the current 'diff' format, 'patch' cannot
+   Due to the limitations of the current ‘diff’ format, ‘patch’ cannot
 update the times of files whose contents have not changed.  Also, if you
 set file timestamps to values other than the current time of day, you
-should also remove (e.g., with 'make clean') all files that depend on
-the patched files, so that later invocations of 'make' do not get
+should also remove (e.g., with ‘make clean’) all files that depend on
+the patched files, so that later invocations of ‘make’ do not get
 confused by the patched files' times.
 
 \1f
@@ -2736,55 +2737,55 @@ File: diffutils.info,  Node: Multiple Patches,  Next: patch Directories,  Prev:
 ===============================
 
 If the patch file contains more than one patch, and if you do not
-specify an input file on the command line, 'patch' tries to apply each
+specify an input file on the command line, ‘patch’ tries to apply each
 patch as if they came from separate patch files.  This means that it
 determines the name of the file to patch for each patch, and that it
 examines the leading text before each patch for file names and
 prerequisite revision level (*note Making Patches::, for more on that
 topic).
 
-   'patch' uses the following rules to intuit a file name from the
-leading text before a patch.  First, 'patch' takes an ordered list of
+   ‘patch’ uses the following rules to intuit a file name from the
+leading text before a patch.  First, ‘patch’ takes an ordered list of
 candidate file names as follows:
 
-   * If the header is that of a context diff, 'patch' takes the old and
+   • If the header is that of a context diff, ‘patch’ takes the old and
      new file names in the header.  A name is ignored if it does not
-     have enough slashes to satisfy the '-pNUM' or '--strip=NUM' option.
-     The name '/dev/null' is also ignored.
+     have enough slashes to satisfy the ‘-pNUM’ or ‘--strip=NUM’ option.
+     The name ‘/dev/null’ is also ignored.
 
-   * If there is an 'Index:' line in the leading garbage and if either
-     the old and new names are both absent or if 'patch' is conforming
-     to POSIX, 'patch' takes the name in the 'Index:' line.
+   • If there is an ‘Index:’ line in the leading garbage and if either
+     the old and new names are both absent or if ‘patch’ is conforming
+     to POSIX, ‘patch’ takes the name in the ‘Index:’ line.
 
-   * For the purpose of the following rules, the candidate file names
+    For the purpose of the following rules, the candidate file names
      are considered to be in the order (old, new, index), regardless of
      the order that they appear in the header.
 
-Then 'patch' selects a file name from the candidate list as follows:
+Then ‘patch’ selects a file name from the candidate list as follows:
 
-   * If some of the named files exist, 'patch' selects the first name if
+   • If some of the named files exist, ‘patch’ selects the first name if
      conforming to POSIX, and the best name otherwise.
 
-   * If 'patch' is not ignoring RCS, ClearCase, and SCCS (*note Revision
+   • If ‘patch’ is not ignoring RCS, ClearCase, and SCCS (*note Revision
      Control::), and no named files exist but an RCS, ClearCase, or SCCS
-     master is found, 'patch' selects the first named file with an RCS,
+     master is found, ‘patch’ selects the first named file with an RCS,
      ClearCase, or SCCS master.
 
-   * If no named files exist, no RCS, ClearCase, or SCCS master was
-     found, some names are given, 'patch' is not conforming to POSIX,
-     and the patch appears to create a file, 'patch' selects the best
+    If no named files exist, no RCS, ClearCase, or SCCS master was
+     found, some names are given, ‘patch’ is not conforming to POSIX,
+     and the patch appears to create a file, ‘patch’ selects the best
      name requiring the creation of the fewest directories.
 
-   * If no file name results from the above heuristics, you are asked
-     for the name of the file to patch, and 'patch' selects that name.
+    If no file name results from the above heuristics, you are asked
+     for the name of the file to patch, and ‘patch’ selects that name.
 
-   To determine the "best" of a nonempty list of file names, 'patch'
+   To determine the “best” of a nonempty list of file names, ‘patch’
 first takes all the names with the fewest path name components; of
 those, it then takes all the names with the shortest basename; of those,
 it then takes all the shortest names; finally, it takes the first
 remaining name.
 
-   *Note patch and POSIX::, to see whether 'patch' is conforming to
+   *Note patch and POSIX::, to see whether ‘patch’ is conforming to
 POSIX.
 
 \1f
@@ -2793,11 +2794,11 @@ File: diffutils.info,  Node: patch Directories,  Next: Backups,  Prev: Multiple
 10.7 Applying Patches in Other Directories
 ==========================================
 
-The '--directory=DIRECTORY' ('-d DIRECTORY') option to 'patch' makes
+The ‘--directory=DIRECTORY’ (‘-d DIRECTORY’) option to ‘patch’ makes
 directory DIRECTORY the current directory for interpreting both file
 names in the patch file, and file names given as arguments to other
-options (such as '-B' and '-o').  For example, while in a mail reading
-program, you can patch a file in the '/usr/src/emacs' directory directly
+options (such as ‘-B’ and ‘-o’).  For example, while in a mail reading
+program, you can patch a file in the ‘/usr/src/emacs’ directory directly
 from a message containing the patch like this:
 
      | patch -d /usr/src/emacs
@@ -2805,20 +2806,20 @@ from a message containing the patch like this:
    Sometimes the file names given in a patch contain leading
 directories, but you keep your files in a directory different from the
 one given in the patch.  In those cases, you can use the
-'--strip=NUMBER' ('-pNUMBER') option to set the file name strip count to
-NUMBER.  The strip count tells 'patch' how many slashes, along with the
+‘--strip=NUMBER’ (‘-pNUMBER’) option to set the file name strip count to
+NUMBER.  The strip count tells ‘patch’ how many slashes, along with the
 directory names between them, to strip from the front of file names.  A
 sequence of one or more adjacent slashes is counted as a single slash.
-By default, 'patch' strips off all leading directories, leaving just the
+By default, ‘patch’ strips off all leading directories, leaving just the
 base file names.
 
    For example, suppose the file name in the patch file is
-'/gnu/src/emacs/etc/NEWS'.  Using '-p0' gives the entire file name
-unmodified, '-p1' gives 'gnu/src/emacs/etc/NEWS' (no leading slash),
-'-p4' gives 'etc/NEWS', and not specifying '-p' at all gives 'NEWS'.
+‘/gnu/src/emacs/etc/NEWS’.  Using ‘-p0’ gives the entire file name
+unmodified, ‘-p1’ gives ‘gnu/src/emacs/etc/NEWS’ (no leading slash),
+‘-p4’ gives ‘etc/NEWS’, and not specifying ‘-p’ at all gives ‘NEWS’.
 
-   'patch' looks for each file (after any slashes have been stripped) in
-the current directory, or if you used the '-d DIRECTORY' option, in that
+   ‘patch’ looks for each file (after any slashes have been stripped) in
+the current directory, or if you used the ‘-d DIRECTORY’ option, in that
 directory.
 
 \1f
@@ -2827,17 +2828,17 @@ File: diffutils.info,  Node: Backups,  Next: Backup Names,  Prev: patch Director
 10.8 Backup Files
 =================
 
-Normally, 'patch' creates a backup file if the patch does not exactly
+Normally, ‘patch’ creates a backup file if the patch does not exactly
 match the original input file, because in that case the original data
-might not be recovered if you undo the patch with 'patch -R' (*note
-Reversed Patches::).  However, when conforming to POSIX, 'patch' does
+might not be recovered if you undo the patch with ‘patch -R’ (*note
+Reversed Patches::).  However, when conforming to POSIX, ‘patch’ does
 not create backup files by default.  *Note patch and POSIX::.
 
-   The '--backup' ('-b') option causes 'patch' to make a backup file
+   The ‘--backup’ (‘-b’) option causes ‘patch’ to make a backup file
 regardless of whether the patch matches the original input.  The
-'--backup-if-mismatch' option causes 'patch' to create backup files for
+‘--backup-if-mismatch’ option causes ‘patch’ to create backup files for
 mismatches files; this is the default when not conforming to POSIX. The
-'--no-backup-if-mismatch' option causes 'patch' to not create backup
+‘--no-backup-if-mismatch’ option causes ‘patch’ to not create backup
 files, even for mismatched patches; this is the default when conforming
 to POSIX.
 
@@ -2851,69 +2852,69 @@ File: diffutils.info,  Node: Backup Names,  Next: Reject Names,  Prev: Backups,
 10.9 Backup File Names
 ======================
 
-Normally, 'patch' renames an original input file into a backup file by
-appending to its name the extension '.orig', or '~' if using '.orig'
-would make the backup file name too long.(1)  The '-z BACKUP-SUFFIX' or
-'--suffix=BACKUP-SUFFIX' option causes 'patch' to use BACKUP-SUFFIX as
+Normally, ‘patch’ renames an original input file into a backup file by
+appending to its name the extension ‘.orig’, or ‘~’ if using ‘.orig’
+would make the backup file name too long.(1)  The ‘-z BACKUP-SUFFIX’ or
+‘--suffix=BACKUP-SUFFIX’ option causes ‘patch’ to use BACKUP-SUFFIX as
 the backup extension instead.
 
    Alternately, you can specify the extension for backup files with the
-'SIMPLE_BACKUP_SUFFIX' environment variable, which the options override.
+‘SIMPLE_BACKUP_SUFFIX’ environment variable, which the options override.
 
-   'patch' can also create numbered backup files the way GNU Emacs does.
+   ‘patch’ can also create numbered backup files the way GNU Emacs does.
 With this method, instead of having a single backup of each file,
-'patch' makes a new backup file name each time it patches a file.  For
-example, the backups of a file named 'sink' would be called,
-successively, 'sink.~1~', 'sink.~2~', 'sink.~3~', etc.
+‘patch’ makes a new backup file name each time it patches a file.  For
+example, the backups of a file named ‘sink’ would be called,
+successively, ‘sink.~1~’, ‘sink.~2~’, ‘sink.~3~’, etc.
 
-   The '-V BACKUP-STYLE' or '--version-control=BACKUP-STYLE' option
+   The ‘-V BACKUP-STYLE’ or ‘--version-control=BACKUP-STYLE’ option
 takes as an argument a method for creating backup file names.  You can
-alternately control the type of backups that 'patch' makes with the
-'PATCH_VERSION_CONTROL' environment variable, which the '-V' option
-overrides.  If 'PATCH_VERSION_CONTROL' is not set, the 'VERSION_CONTROL'
+alternately control the type of backups that ‘patch’ makes with the
+‘PATCH_VERSION_CONTROL’ environment variable, which the ‘-V’ option
+overrides.  If ‘PATCH_VERSION_CONTROL’ is not set, the ‘VERSION_CONTROL’
 environment variable is used instead.  Please note that these options
 and variables control backup file names; they do not affect the choice
 of revision control system (*note Revision Control::).
 
    The values of these environment variables and the argument to the
-'-V' option are like the GNU Emacs 'version-control' variable (*note
+‘-V’ option are like the GNU Emacs ‘version-control’ variable (*note
 (emacs)Backup Names::, for more information on backup versions in
 Emacs).  They also recognize synonyms that are more descriptive.  The
 valid values are listed below; unique abbreviations are acceptable.
 
-'t'
-'numbered'
+‘t’
+‘numbered’
      Always make numbered backups.
 
-'nil'
-'existing'
+‘nil’
+‘existing’
      Make numbered backups of files that already have them, simple
      backups of the others.  This is the default.
 
-'never'
-'simple'
+‘never’
+‘simple’
      Always make simple backups.
 
-   You can also tell 'patch' to prepend a prefix, such as a directory
-name, to produce backup file names.  The '--prefix=PREFIX' ('-B PREFIX')
+   You can also tell ‘patch’ to prepend a prefix, such as a directory
+name, to produce backup file names.  The ‘--prefix=PREFIX’ (‘-B PREFIX’)
 option makes backup files by prepending PREFIX to them.  The
-'--basename-prefix=PREFIX' ('-Y PREFIX') prepends PREFIX to the last
-file name component of backup file names instead; for example, '-Y ~'
-causes the backup name for 'dir/file.c' to be 'dir/~file.c'.  If you use
+‘--basename-prefix=PREFIX’ (‘-Y PREFIX’) prepends PREFIX to the last
+file name component of backup file names instead; for example, ‘-Y ~’
+causes the backup name for ‘dir/file.c’ to be ‘dir/~file.c’.  If you use
 either of these prefix options, the suffix-based options are ignored.
 
-   If you specify the output file with the '-o' option, that file is the
+   If you specify the output file with the ‘-o’ option, that file is the
 one that is backed up, not the input file.
 
    Options that affect the names of backup files do not affect whether
 backups are made.  For example, if you specify the
-'--no-backup-if-mismatch' option, none of the options described in this
+‘--no-backup-if-mismatch’ option, none of the options described in this
 section have any affect, because no backups are made.
 
    ---------- Footnotes ----------
 
-   (1) A coding error in GNU 'patch' version 2.5.4 causes it to always
-use '~', but this should be fixed in the next release.
+   (1) A coding error in GNU ‘patch’ version 2.5.4 causes it to always
+use ‘~’, but this should be fixed in the next release.
 
 \1f
 File: diffutils.info,  Node: Reject Names,  Next: patch Messages,  Prev: Backup Names,  Up: Merging with patch
@@ -2921,36 +2922,36 @@ File: diffutils.info,  Node: Reject Names,  Next: patch Messages,  Prev: Backup
 10.10 Reject File Names
 =======================
 
-The names for reject files (files containing patches that 'patch' could
+The names for reject files (files containing patches that ‘patch’ could
 not find a place to apply) are normally the name of the output file with
-'.rej' appended (or '#' if using '.rej' would make the backup file name
+‘.rej’ appended (or ‘#’ if using ‘.rej’ would make the backup file name
 too long).
 
-   Alternatively, you can tell 'patch' to place all of the rejected
-patches in a single file.  The '-r REJECT-FILE' or
-'--reject-file=REJECT-FILE' option uses REJECT-FILE as the reject file
+   Alternatively, you can tell ‘patch’ to place all of the rejected
+patches in a single file.  The ‘-r REJECT-FILE’ or
+‘--reject-file=REJECT-FILE’ option uses REJECT-FILE as the reject file
 name.
 
 \1f
 File: diffutils.info,  Node: patch Messages,  Next: patch and POSIX,  Prev: Reject Names,  Up: Merging with patch
 
-10.11 Messages and Questions from 'patch'
+10.11 Messages and Questions from ‘patch’
 =========================================
 
-'patch' can produce a variety of messages, especially if it has trouble
+‘patch’ can produce a variety of messages, especially if it has trouble
 decoding its input.  In a few situations where it's not sure how to
-proceed, 'patch' normally prompts you for more information from the
+proceed, ‘patch’ normally prompts you for more information from the
 keyboard.  There are options to produce more or fewer messages, to have
 it not ask for keyboard input, and to affect the way that file names are
 quoted in messages.
 
 * Menu:
 
-* More or Fewer Messages::    Controlling the verbosity of 'patch'.
+* More or Fewer Messages::    Controlling the verbosity of ‘patch’.
 * patch and Keyboard Input::  Inhibiting keyboard input.
 * patch Quoting Style::       Quoting file names in diagnostics.
 
-   'patch' exits with status 0 if all hunks are applied successfully, 1
+   ‘patch’ exits with status 0 if all hunks are applied successfully, 1
 if some hunks cannot be applied, and 2 if there is more serious trouble.
 When applying a set of patches in a loop, you should check the exit
 status, so you don't apply a later patch to a partially patched file.
@@ -2958,17 +2959,17 @@ status, so you don't apply a later patch to a partially patched file.
 \1f
 File: diffutils.info,  Node: More or Fewer Messages,  Next: patch and Keyboard Input,  Up: patch Messages
 
-10.11.1 Controlling the Verbosity of 'patch'
+10.11.1 Controlling the Verbosity of ‘patch’
 --------------------------------------------
 
-You can cause 'patch' to produce more messages by using the '--verbose'
-option.  For example, when you give this option, the message 'Hmm...'
-indicates that 'patch' is reading text in the patch file, attempting to
+You can cause ‘patch’ to produce more messages by using the ‘--verbose’
+option.  For example, when you give this option, the message ‘Hmm...’
+indicates that ‘patch’ is reading text in the patch file, attempting to
 determine whether there is a patch in that text, and if so, what kind of
 patch it is.
 
-   You can inhibit all terminal output from 'patch', unless an error
-occurs, by using the '-s', '--quiet', or '--silent' option.
+   You can inhibit all terminal output from ‘patch’, unless an error
+occurs, by using the ‘-s’, ‘--quiet’, or ‘--silent’ option.
 
 \1f
 File: diffutils.info,  Node: patch and Keyboard Input,  Next: patch Quoting Style,  Prev: More or Fewer Messages,  Up: patch Messages
@@ -2976,146 +2977,146 @@ File: diffutils.info,  Node: patch and Keyboard Input,  Next: patch Quoting Styl
 10.11.2 Inhibiting Keyboard Input
 ---------------------------------
 
-There are two ways you can prevent 'patch' from asking you any
-questions.  The '--force' ('-f') option assumes that you know what you
-are doing.  It causes 'patch' to do the following:
+There are two ways you can prevent ‘patch’ from asking you any
+questions.  The ‘--force’ (‘-f’) option assumes that you know what you
+are doing.  It causes ‘patch’ to do the following:
 
-   * Skip patches that do not contain file names in their headers.
+    Skip patches that do not contain file names in their headers.
 
-   * Patch files even though they have the wrong version for the
-     'Prereq:' line in the patch;
+    Patch files even though they have the wrong version for the
+     ‘Prereq:’ line in the patch;
 
-   * Assume that patches are not reversed even if they look like they
+    Assume that patches are not reversed even if they look like they
      are.
 
-The '--batch' ('-t') option is similar to '-f', in that it suppresses
+The ‘--batch’ (‘-t’) option is similar to ‘-f’, in that it suppresses
 questions, but it makes somewhat different assumptions:
 
-   * Skip patches that do not contain file names in their headers (the
-     same as '-f').
+    Skip patches that do not contain file names in their headers (the
+     same as ‘-f’).
 
-   * Skip patches for which the file has the wrong version for the
-     'Prereq:' line in the patch;
+    Skip patches for which the file has the wrong version for the
+     ‘Prereq:’ line in the patch;
 
-   * Assume that patches are reversed if they look like they are.
+    Assume that patches are reversed if they look like they are.
 
 \1f
 File: diffutils.info,  Node: patch Quoting Style,  Prev: patch and Keyboard Input,  Up: patch Messages
 
-10.11.3 'patch' Quoting Style
+10.11.3 ‘patch’ Quoting Style
 -----------------------------
 
-When 'patch' outputs a file name in a diagnostic message, it can format
+When ‘patch’ outputs a file name in a diagnostic message, it can format
 the name in any of several ways.  This can be useful to output file
 names unambiguously, even if they contain punctuation or special
-characters like newlines.  The '--quoting-style=WORD' option controls
+characters like newlines.  The ‘--quoting-style=WORD’ option controls
 how names are output.  The WORD should be one of the following:
 
-'literal'
+‘literal’
      Output names as-is.
-'shell'
+‘shell’
      Quote names for the shell if they contain shell metacharacters or
      would cause ambiguous output.
-'shell-always'
+‘shell-always’
      Quote names for the shell, even if they would normally not require
      quoting.
-'c'
+‘c’
      Quote names as for a C language string.
-'escape'
-     Quote as with 'c' except omit the surrounding double-quote
+‘escape’
+     Quote as with ‘c’ except omit the surrounding double-quote
      characters.
 
-   You can specify the default value of the '--quoting-style' option
-with the environment variable 'QUOTING_STYLE'.  If that environment
-variable is not set, the default value is 'shell', but this default may
-change in a future version of 'patch'.
+   You can specify the default value of the ‘--quoting-style’ option
+with the environment variable ‘QUOTING_STYLE’.  If that environment
+variable is not set, the default value is ‘shell’, but this default may
+change in a future version of ‘patch’.
 
 \1f
 File: diffutils.info,  Node: patch and POSIX,  Next: patch and Tradition,  Prev: patch Messages,  Up: Merging with patch
 
-10.12 'patch' and the POSIX Standard
+10.12 ‘patch’ and the POSIX Standard
 ====================================
 
-If you specify the '--posix' option, or set the 'POSIXLY_CORRECT'
-environment variable, 'patch' conforms more strictly to the POSIX
+If you specify the ‘--posix’ option, or set the ‘POSIXLY_CORRECT’
+environment variable, ‘patch’ conforms more strictly to the POSIX
 standard, as follows:
 
-   * Take the first existing file from the list (old, new, index) when
+    Take the first existing file from the list (old, new, index) when
      intuiting file names from diff headers.  *Note Multiple Patches::.
 
-   * Do not remove files that are removed by a diff.  *Note Creating and
+    Do not remove files that are removed by a diff.  *Note Creating and
      Removing::.
 
-   * Do not ask whether to get files from RCS, ClearCase, or SCCS. *Note
+    Do not ask whether to get files from RCS, ClearCase, or SCCS. *Note
      Revision Control::.
 
-   * Require that all options precede the files in the command line.
+    Require that all options precede the files in the command line.
 
-   * Do not backup files, even when there is a mismatch.  *Note
+    Do not backup files, even when there is a mismatch.  *Note
      Backups::.
 
 \1f
 File: diffutils.info,  Node: patch and Tradition,  Prev: patch and POSIX,  Up: Merging with patch
 
-10.13 GNU 'patch' and Traditional 'patch'
+10.13 GNU ‘patch’ and Traditional ‘patch’
 =========================================
 
-The current version of GNU 'patch' normally follows the POSIX standard.
+The current version of GNU ‘patch’ normally follows the POSIX standard.
 *Note patch and POSIX::, for the few exceptions to this general rule.
 
-   Unfortunately, POSIX redefined the behavior of 'patch' in several
+   Unfortunately, POSIX redefined the behavior of ‘patch’ in several
 important ways.  You should be aware of the following differences if you
-must interoperate with traditional 'patch', or with GNU 'patch' version
+must interoperate with traditional ‘patch’, or with GNU ‘patch’ version
 2.1 and earlier.
 
-   * In traditional 'patch', the '-p' option's operand was optional, and
-     a bare '-p' was equivalent to '-p0'.  The '-p' option now requires
-     an operand, and '-p 0' is now equivalent to '-p0'.  For maximum
-     compatibility, use options like '-p0' and '-p1'.
+   • In traditional ‘patch’, the ‘-p’ option's operand was optional, and
+     a bare ‘-p’ was equivalent to ‘-p0’.  The ‘-p’ option now requires
+     an operand, and ‘-p 0’ is now equivalent to ‘-p0’.  For maximum
+     compatibility, use options like ‘-p0’ and ‘-p1’.
 
-     Also, traditional 'patch' simply counted slashes when stripping
-     path prefixes; 'patch' now counts pathname components.  That is, a
+     Also, traditional ‘patch’ simply counted slashes when stripping
+     path prefixes; ‘patch’ now counts pathname components.  That is, a
      sequence of one or more adjacent slashes now counts as a single
      slash.  For maximum portability, avoid sending patches containing
-     '//' in file names.
+     ‘//’ in file names.
 
-   * In traditional 'patch', backups were enabled by default.  This
-     behavior is now enabled with the '--backup' ('-b') option.
+   • In traditional ‘patch’, backups were enabled by default.  This
+     behavior is now enabled with the ‘--backup’ (‘-b’) option.
 
-     Conversely, in POSIX 'patch', backups are never made, even when
-     there is a mismatch.  In GNU 'patch', this behavior is enabled with
-     the '--no-backup-if-mismatch' option, or by conforming to POSIX.
+     Conversely, in POSIX ‘patch’, backups are never made, even when
+     there is a mismatch.  In GNU ‘patch’, this behavior is enabled with
+     the ‘--no-backup-if-mismatch’ option, or by conforming to POSIX.
 
-     The '-b SUFFIX' option of traditional 'patch' is equivalent to the
-     '-b -z SUFFIX' options of GNU 'patch'.
+     The ‘-b SUFFIX’ option of traditional ‘patch’ is equivalent to the
+     ‘-b -z SUFFIX’ options of GNU ‘patch’.
 
-   * Traditional 'patch' used a complicated (and incompletely
+   • Traditional ‘patch’ used a complicated (and incompletely
      documented) method to intuit the name of the file to be patched
      from the patch header.  This method did not conform to POSIX, and
-     had a few gotchas.  Now 'patch' uses a different, equally
+     had a few gotchas.  Now ‘patch’ uses a different, equally
      complicated (but better documented) method that is optionally
      POSIX-conforming; we hope it has fewer gotchas.  The two methods
      are compatible if the file names in the context diff header and the
-     'Index:' line are all identical after prefix-stripping.  Your patch
+     ‘Index:’ line are all identical after prefix-stripping.  Your patch
      is normally compatible if each header's file names all contain the
      same number of slashes.
 
-   * When traditional 'patch' asked the user a question, it sent the
+   • When traditional ‘patch’ asked the user a question, it sent the
      question to standard error and looked for an answer from the first
      file in the following list that was a terminal: standard error,
-     standard output, '/dev/tty', and standard input.  Now 'patch' sends
-     questions to standard output and gets answers from '/dev/tty'.
-     Defaults for some answers have been changed so that 'patch' never
+     standard output, ‘/dev/tty’, and standard input.  Now ‘patch’ sends
+     questions to standard output and gets answers from ‘/dev/tty’.
+     Defaults for some answers have been changed so that ‘patch’ never
      goes into an infinite loop when using default answers.
 
-   * Traditional 'patch' exited with a status value that counted the
+   • Traditional ‘patch’ exited with a status value that counted the
      number of bad hunks, or with status 1 if there was real trouble.
-     Now 'patch' exits with status 1 if some hunks failed, or with 2 if
+     Now ‘patch’ exits with status 1 if some hunks failed, or with 2 if
      there was real trouble.
 
-   * Limit yourself to the following options when sending instructions
-     meant to be executed by anyone running GNU 'patch', traditional
-     'patch', or a 'patch' that conforms to POSIX. Spaces are
+    Limit yourself to the following options when sending instructions
+     meant to be executed by anyone running GNU ‘patch’, traditional
+     ‘patch’, or a ‘patch’ that conforms to POSIX. Spaces are
      significant in the following list, and operands are required.
 
           -c
@@ -3148,7 +3149,7 @@ to distribute patches for updating a software package.
 
 * Tips for Patch Producers::    Advice for making patches.
 * Tips for Patch Consumers::    Advice for using patches.
-* Avoiding Common Mistakes::    Avoiding common mistakes when using 'patch'.
+* Avoiding Common Mistakes::    Avoiding common mistakes when using ‘patch’.
 * Generating Smaller Patches::  How to generate smaller patches.
 
 \1f
@@ -3159,22 +3160,22 @@ File: diffutils.info,  Node: Tips for Patch Producers,  Next: Tips for Patch Con
 
 To create a patch that changes an older version of a package into a
 newer version, first make a copy of the older and newer versions in
-adjacent subdirectories.  It is common to do that by unpacking 'tar'
+adjacent subdirectories.  It is common to do that by unpacking ‘tar’
 archives of the two versions.
 
-   To generate the patch, use the command 'diff -Naur OLD NEW' where OLD
+   To generate the patch, use the command ‘diff -Naur OLD NEW’ where OLD
 and NEW identify the old and new directories.  The names OLD and NEW
-should not contain any slashes.  The '-N' option lets the patch create
-and remove files; '-a' lets the patch update non-text files; '-u'
-generates useful timestamps and enough context; and '-r' lets the patch
+should not contain any slashes.  The ‘-N’ option lets the patch create
+and remove files; ‘-a’ lets the patch update non-text files; ‘-u’
+generates useful timestamps and enough context; and ‘-r’ lets the patch
 update subdirectories.  Here is an example command, using Bourne shell
 syntax:
 
      diff -Naur gcc-3.0.3 gcc-3.0.4
 
    Tell your recipients how to apply the patches.  This should include
-which working directory to use, and which 'patch' options to use; the
-option '-p1' is recommended.  Test your procedure by pretending to be a
+which working directory to use, and which ‘patch’ options to use; the
+option ‘-p1’ is recommended.  Test your procedure by pretending to be a
 recipient and applying your patches to a copy of the original files.
 
    *Note Avoiding Common Mistakes::, for how to avoid common mistakes
@@ -3190,10 +3191,10 @@ A patch producer should tell recipients how to apply the patches, so the
 first rule of thumb for a patch consumer is to follow the instructions
 supplied with the patch.
 
-   GNU 'diff' can analyze files with arbitrarily long lines and files
-that end in incomplete lines.  However, older versions of 'patch' cannot
+   GNU ‘diff’ can analyze files with arbitrarily long lines and files
+that end in incomplete lines.  However, older versions of ‘patch’ cannot
 patch such files.  If you are having trouble applying such patches, try
-upgrading to a recent version of GNU 'patch'.
+upgrading to a recent version of GNU ‘patch’.
 
 \1f
 File: diffutils.info,  Node: Avoiding Common Mistakes,  Next: Generating Smaller Patches,  Prev: Tips for Patch Consumers,  Up: Making Patches
@@ -3201,9 +3202,9 @@ File: diffutils.info,  Node: Avoiding Common Mistakes,  Next: Generating Smaller
 11.3 Avoiding Common Mistakes
 =============================
 
-When producing a patch for multiple files, apply 'diff' to directories
+When producing a patch for multiple files, apply ‘diff’ to directories
 whose names do not have slashes.  This reduces confusion when the patch
-consumer specifies the '-pNUMBER' option, since this option can have
+consumer specifies the ‘-pNUMBER’ option, since this option can have
 surprising results when the old and new file names have different
 numbers of slashes.  For example, do not send a patch with a header that
 looks like this:
@@ -3213,7 +3214,7 @@ looks like this:
      +++ prog/README   2002-03-17 20:49:32.442260588 -0800
 
 because the two file names have different numbers of slashes, and
-different versions of 'patch' interpret the file names differently.  To
+different versions of ‘patch’ interpret the file names differently.  To
 avoid confusion, send output that looks like this instead:
 
      diff -Naur v2.0.29/prog/README v2.0.30/prog/README
@@ -3221,28 +3222,28 @@ avoid confusion, send output that looks like this instead:
      +++ v2.0.30/prog/README   2002-03-17 20:49:32.442260588 -0800
 
    Make sure you have specified the file names correctly, either in a
-context diff header or with an 'Index:' line.  Take care to not send out
+context diff header or with an ‘Index:’ line.  Take care to not send out
 reversed patches, since these make people wonder whether they have
 already applied the patch.
 
    Avoid sending patches that compare backup file names like
-'README.orig' or 'README~', since this might confuse 'patch' into
+‘README.orig’ or ‘README~’, since this might confuse ‘patch’ into
 patching a backup file instead of the real file.  Instead, send patches
 that compare the same base file names in different directories, e.g.
-'old/README' and 'new/README'.
+‘old/README’ and ‘new/README’.
 
    To save people from partially applying a patch before other patches
 that should have gone before it, you can make the first patch in the
-patch file update a file with a name like 'patchlevel.h' or 'version.c',
+patch file update a file with a name like ‘patchlevel.h’ or ‘version.c’,
 which contains a patch level or version number.  If the input file
-contains the wrong version number, 'patch' will complain immediately.
+contains the wrong version number, ‘patch’ will complain immediately.
 
-   An even clearer way to prevent this problem is to put a 'Prereq:'
+   An even clearer way to prevent this problem is to put a ‘Prereq:’
 line before the patch.  If the leading text in the patch file contains a
-line that starts with 'Prereq:', 'patch' takes the next word from that
+line that starts with ‘Prereq:’, ‘patch’ takes the next word from that
 line (normally a version number) and checks whether the next input file
 contains that word, preceded and followed by either white space or a
-newline.  If not, 'patch' prompts you for confirmation before
+newline.  If not, ‘patch’ prompts you for confirmation before
 proceeding.  This makes it difficult to accidentally apply patches in
 the wrong order.
 
@@ -3252,60 +3253,60 @@ File: diffutils.info,  Node: Generating Smaller Patches,  Prev: Avoiding Common
 11.4 Generating Smaller Patches
 ===============================
 
-The simplest way to generate a patch is to use 'diff -Naur' (*note Tips
+The simplest way to generate a patch is to use ‘diff -Naur’ (*note Tips
 for Patch Producers::), but you might be able to reduce the size of the
 patch by renaming or removing some files before making the patch.  If
 the older version of the package contains any files that the newer
 version does not, or if any files have been renamed between the two
-versions, make a list of 'rm' and 'mv' commands for the user to execute
+versions, make a list of ‘rm’ and ‘mv’ commands for the user to execute
 in the old version directory before applying the patch.  Then run those
 commands yourself in the scratch directory.
 
    If there are any files that you don't need to include in the patch
-because they can easily be rebuilt from other files (for example, 'TAGS'
-and output from 'yacc' and 'makeinfo'), exclude them from the patch by
-giving 'diff' the '-x PATTERN' option (*note Comparing Directories::).
+because they can easily be rebuilt from other files (for example, ‘TAGS’
+and output from ‘yacc’ and ‘makeinfo’), exclude them from the patch by
+giving ‘diff’ the ‘-x PATTERN’ option (*note Comparing Directories::).
 If you want your patch to modify a derived file because your recipients
 lack tools to build it, make sure that the patch for the derived file
 follows any patches for files that it depends on, so that the
-recipients' timestamps will not confuse 'make'.
+recipients' timestamps will not confuse ‘make’.
 
-   Now you can create the patch using 'diff -Naur'.  Make sure to
+   Now you can create the patch using ‘diff -Naur’.  Make sure to
 specify the scratch directory first and the newer directory second.
 
-   Add to the top of the patch a note telling the user any 'rm' and 'mv'
+   Add to the top of the patch a note telling the user any ‘rm’ and ‘mv’
 commands to run before applying the patch.  Then you can remove the
 scratch directory.
 
    You can also shrink the patch size by using fewer lines of context,
-but bear in mind that 'patch' typically needs at least two lines for
+but bear in mind that ‘patch’ typically needs at least two lines for
 proper operation when patches do not exactly match the input files.
 
 \1f
 File: diffutils.info,  Node: Invoking cmp,  Next: Invoking diff,  Prev: Making Patches,  Up: Top
 
-12 Invoking 'cmp'
+12 Invoking ‘cmp’
 *****************
 
-The 'cmp' command compares two files, and if they differ, tells the
+The ‘cmp’ command compares two files, and if they differ, tells the
 first byte and line number where they differ or reports that one file is
 a prefix of the other.  Bytes and lines are numbered starting with 1.
-The arguments of 'cmp' are as follows:
+The arguments of ‘cmp’ are as follows:
 
      cmp OPTIONS... FROM-FILE [TO-FILE [FROM-SKIP [TO-SKIP]]]
 
-   The file name '-' is always the standard input.  'cmp' also uses the
+   The file name ‘-’ is always the standard input.  ‘cmp’ also uses the
 standard input if one file name is omitted.  The FROM-SKIP and TO-SKIP
 operands specify how many bytes to ignore at the start of each file;
-they are equivalent to the '--ignore-initial=FROM-SKIP:TO-SKIP' option.
+they are equivalent to the ‘--ignore-initial=FROM-SKIP:TO-SKIP’ option.
 
-   By default, 'cmp' outputs nothing if the two files have the same
-contents.  If the two files have bytes that differ, 'cmp' reports the
+   By default, ‘cmp’ outputs nothing if the two files have the same
+contents.  If the two files have bytes that differ, ‘cmp’ reports the
 location of the first difference to standard output:
 
      FROM-FILE TO-FILE differ: char BYTE-NUMBER, line LINE-NUMBER
 
-If one file is a prefix of the other, 'cmp' reports the shorter file's
+If one file is a prefix of the other, ‘cmp’ reports the shorter file's
 name to standard error, followed by a blank and extra information about
 the shorter file:
 
@@ -3320,40 +3321,40 @@ differences were found, and 2 means trouble.
 
 * Menu:
 
-* cmp Options:: Summary of options to 'cmp'.
+* cmp Options:: Summary of options to ‘cmp’.
 
 \1f
 File: diffutils.info,  Node: cmp Options,  Up: Invoking cmp
 
-12.1 Options to 'cmp'
+12.1 Options to ‘cmp’
 =====================
 
-Below is a summary of all of the options that GNU 'cmp' accepts.  Most
+Below is a summary of all of the options that GNU ‘cmp’ accepts.  Most
 options have two equivalent names, one of which is a single letter
-preceded by '-', and the other of which is a long name preceded by '--'.
+preceded by ‘-’, and the other of which is a long name preceded by ‘--’.
 Multiple single letter options (unless they take an argument) can be
-combined into a single command line word: '-bl' is equivalent to '-b
--l'.
+combined into a single command line word: ‘-bl’ is equivalent to ‘-b
+-l.
 
-'-b'
-'--print-bytes'
-     Print the differing bytes.  Display control bytes as a '^' followed
+‘-b’
+‘--print-bytes’
+     Print the differing bytes.  Display control bytes as a ‘^’ followed
      by a letter of the alphabet and precede bytes that have the high
-     bit set with 'M-' (which stands for "meta").
+     bit set with ‘M-’ (which stands for "meta").
 
-'--help'
+‘--help’
      Output a summary of usage and then exit.
 
-'-i SKIP'
-'--ignore-initial=SKIP'
+‘-i SKIP’
+‘--ignore-initial=SKIP’
      Ignore any differences in the first SKIP bytes of the input files.
      Treat files with fewer than SKIP bytes as if they are empty.  If
-     SKIP is of the form 'FROM-SKIP:TO-SKIP', skip the first FROM-SKIP
+     SKIP is of the form ‘FROM-SKIP:TO-SKIP’, skip the first FROM-SKIP
      bytes of the first input file and the first TO-SKIP bytes of the
      second.
 
-'-l'
-'--verbose'
+‘-l’
+‘--verbose’
      Output the (decimal) byte numbers and (octal) values of all
      differing bytes, instead of the default standard output.  Each
      output line contains a differing byte's number relative to the
@@ -3361,493 +3362,496 @@ combined into a single command line word: '-bl' is equivalent to '-b
      numbers start at 1.  Also, output the EOF message if one file is
      shorter than the other.
 
-'-n COUNT'
-'--bytes=COUNT'
+‘-n COUNT’
+‘--bytes=COUNT’
      Compare at most COUNT input bytes.
 
-'-s'
-'--quiet'
-'--silent'
+‘-s’
+‘--quiet’
+‘--silent’
      Do not print anything; only return an exit status indicating
      whether the files differ.
 
-'-v'
-'--version'
+‘-v’
+‘--version’
      Output version information and then exit.
 
    In the above table, operands that are byte counts are normally
-decimal, but may be preceded by '0' for octal and '0x' for hexadecimal.
+decimal, but may be preceded by ‘0’ for octal and ‘0x’ for hexadecimal.
 
    A byte count can be followed by a suffix to specify a multiple of
 that count; in this case an omitted integer is understood to be 1.  A
-bare size letter, or one followed by 'iB', specifies a multiple using
-powers of 1024.  A size letter followed by 'B' specifies powers of 1000
-instead.  For example, '-n 4M' and '-n 4MiB' are equivalent to '-n
-4194304', whereas '-n 4MB' is equivalent to '-n 4000000'.  This notation
+bare size letter, or one followed by ‘iB’, specifies a multiple using
+powers of 1024.  A size letter followed by ‘B’ specifies powers of 1000
+instead.  For example, ‘-n 4M’ and ‘-n 4MiB’ are equivalent to ‘-n
+4194304’, whereas ‘-n 4MB’ is equivalent to ‘-n 4000000’.  This notation
 is upward compatible with the SI prefixes
 (http://www.bipm.fr/enus/3_SI/si-prefixes.html) for decimal multiples
 and with the IEC 60027-2 prefixes for binary multiples
 (http://physics.nist.gov/cuu/Units/binary.html).
 
-   The following suffixes are defined.  Large sizes like '1Y' may be
+   The following suffixes are defined.  Large sizes like ‘1Y’ may be
 rejected by your computer due to limitations of its arithmetic.
 
-'kB'
+‘kB’
      kilobyte: 10^3 = 1000.
-'k'
-'K'
-'KiB'
-     kibibyte: 2^10 = 1024.  'K' is special: the SI prefix is 'k' and
-     the IEC 60027-2 prefix is 'Ki', but tradition and POSIX use 'k' to
-     mean 'KiB'.
-'MB'
+‘k’
+‘K’
+‘KiB’
+     kibibyte: 2^10 = 1024.  ‘K’ is special: the SI prefix is ‘k’ and
+     the IEC 60027-2 prefix is ‘Ki’, but tradition and POSIX use ‘k’ to
+     mean ‘KiB’.
+‘MB’
      megabyte: 10^6 = 1,000,000.
-'M'
-'MiB'
+‘M’
+‘MiB’
      mebibyte: 2^20 = 1,048,576.
-'GB'
+‘GB’
      gigabyte: 10^9 = 1,000,000,000.
-'G'
-'GiB'
+‘G’
+‘GiB’
      gibibyte: 2^30 = 1,073,741,824.
-'TB'
+‘TB’
      terabyte: 10^12 = 1,000,000,000,000.
-'T'
-'TiB'
+‘T’
+‘TiB’
      tebibyte: 2^40 = 1,099,511,627,776.
-'PB'
+‘PB’
      petabyte: 10^15 = 1,000,000,000,000,000.
-'P'
-'PiB'
+‘P’
+‘PiB’
      pebibyte: 2^50 = 1,125,899,906,842,624.
-'EB'
+‘EB’
      exabyte: 10^18 = 1,000,000,000,000,000,000.
-'E'
-'EiB'
+‘E’
+‘EiB’
      exbibyte: 2^60 = 1,152,921,504,606,846,976.
-'ZB'
+‘ZB’
      zettabyte: 10^21 = 1,000,000,000,000,000,000,000
-'Z'
-'ZiB'
-     2^70 = 1,180,591,620,717,411,303,424.  ('Zi' is a GNU extension to
+‘Z’
+‘ZiB’
+     2^70 = 1,180,591,620,717,411,303,424.  (‘Zi’ is a GNU extension to
      IEC 60027-2.)
-'YB'
+‘YB’
      yottabyte: 10^24 = 1,000,000,000,000,000,000,000,000.
-'Y'
-'YiB'
-     2^80 = 1,208,925,819,614,629,174,706,176.  ('Yi' is a GNU extension
+‘Y’
+‘YiB’
+     2^80 = 1,208,925,819,614,629,174,706,176.  (‘Yi’ is a GNU extension
      to IEC 60027-2.)
 
 \1f
 File: diffutils.info,  Node: Invoking diff,  Next: Invoking diff3,  Prev: Invoking cmp,  Up: Top
 
-13 Invoking 'diff'
+13 Invoking ‘diff’
 ******************
 
-The format for running the 'diff' command is:
+The format for running the ‘diff’ command is:
 
      diff OPTIONS... FILES...
 
    In the simplest case, two file names FROM-FILE and TO-FILE are given,
-and 'diff' compares the contents of FROM-FILE and TO-FILE.  A file name
-of '-' stands for the standard input.
+and ‘diff’ compares the contents of FROM-FILE and TO-FILE.  A file name
+of ‘-’ stands for the standard input.
 
-   If one file is a directory and the other is not, 'diff' compares the
+   If one file is a directory and the other is not, ‘diff’ compares the
 file in the directory whose name is that of the non-directory.  The
-non-directory file must not be '-'.
+non-directory file must not be ‘-’.
 
-   If two file names are given and both are directories, 'diff' compares
+   If two file names are given and both are directories, ‘diff’ compares
 corresponding files in both directories, in alphabetical order; this
-comparison is not recursive unless the '--recursive' ('-r') option is
-given.  'diff' never compares the actual contents of a directory as if
+comparison is not recursive unless the ‘--recursive’ (‘-r’) option is
+given.  ‘diff’ never compares the actual contents of a directory as if
 it were a file.  The file that is fully specified may not be standard
 input, because standard input is nameless and the notion of "file with
 the same name" does not apply.
 
-   If the '--from-file=FILE' option is given, the number of file names
+   If the ‘--from-file=FILE’ option is given, the number of file names
 is arbitrary, and FILE is compared to each named file.  Similarly, if
-the '--to-file=FILE' option is given, each named file is compared to
+the ‘--to-file=FILE’ option is given, each named file is compared to
 FILE.
 
-   'diff' options begin with '-', so normally file names may not begin
-with '-'.  However, '--' as an argument by itself treats the remaining
-arguments as file names even if they begin with '-'.
+   ‘diff’ options begin with ‘-’, so normally file names may not begin
+with ‘-’.  However, ‘--’ as an argument by itself treats the remaining
+arguments as file names even if they begin with ‘-’.
 
    An exit status of 0 means no differences were found, 1 means some
 differences were found, and 2 means trouble.
 
 * Menu:
 
-* diff Options:: Summary of options to 'diff'.
+* diff Options:: Summary of options to ‘diff’.
 
 \1f
 File: diffutils.info,  Node: diff Options,  Up: Invoking diff
 
-13.1 Options to 'diff'
+13.1 Options to ‘diff’
 ======================
 
-Below is a summary of all of the options that GNU 'diff' accepts.  Most
+Below is a summary of all of the options that GNU ‘diff’ accepts.  Most
 options have two equivalent names, one of which is a single letter
-preceded by '-', and the other of which is a long name preceded by '--'.
+preceded by ‘-’, and the other of which is a long name preceded by ‘--’.
 Multiple single letter options (unless they take an argument) can be
-combined into a single command line word: '-ac' is equivalent to '-a
--c'.  Long named options can be abbreviated to any unique prefix of
+combined into a single command line word: ‘-ac’ is equivalent to ‘-a
+-c.  Long named options can be abbreviated to any unique prefix of
 their name.  Brackets ([ and ]) indicate that an option takes an
 optional argument.
 
-'-a'
-'--text'
+‘-a’
+‘--text’
      Treat all files as text and compare them line-by-line, even if they
      do not seem to be text.  *Note Binary::.
 
-'-b'
-'--ignore-space-change'
+‘-b’
+‘--ignore-space-change’
      Ignore changes in amount of white space.  *Note White Space::.
 
-'-B'
-'--ignore-blank-lines'
+‘-B’
+‘--ignore-blank-lines’
      Ignore changes that just insert or delete blank lines.  *Note Blank
      Lines::.
 
-'--binary'
+‘--binary’
      Read and write data in binary mode.  *Note Binary::.
 
-'-c'
+‘-c’
      Use the context output format, showing three lines of context.
      *Note Context Format::.
 
-'--color [=WHEN]'
+‘--color [=WHEN]’
      Specify whether to use color for distinguishing different contexts,
      like header, added or removed lines.  WHEN may be omitted, or one
      of:
-        * none Do not use color at all.  This is the default when no
-          -color option is specified.
-        * auto Use color only if standard output is a terminal.
-        * always Always use color.
-     Specifying '--color' and no WHEN is equivalent to '--color=auto'.
-
-'-C LINES'
-'--context[=LINES]'
+        • none
+          Do not use color at all.  This is the default when no -color
+          option is specified.
+        • auto
+          Use color only if standard output is a terminal.
+        • always
+          Always use color.
+     Specifying ‘--color’ and no WHEN is equivalent to ‘--color=auto’.
+
+‘-C LINES’
+‘--context[=LINES]’
      Use the context output format, showing LINES (an integer) lines of
      context, or three if LINES is not given.  *Note Context Format::.
-     For proper operation, 'patch' typically needs at least two lines of
+     For proper operation, ‘patch’ typically needs at least two lines of
      context.
 
-     For compatibility 'diff' also supports an obsolete option syntax
-     '-LINES' that has effect when combined with '-c', '-p', or '-u'.
-     New scripts should use '-U LINES' ('-C LINES') instead.
+     For compatibility ‘diff’ also supports an obsolete option syntax
+     ‘-LINES’ that has effect when combined with ‘-c’, ‘-p’, or ‘-u’.
+     New scripts should use ‘-U LINES’ (‘-C LINES’) instead.
 
-'--changed-group-format=FORMAT'
+‘--changed-group-format=FORMAT’
      Use FORMAT to output a line group containing differing lines from
      both files in if-then-else format.  *Note Line Group Formats::.
 
-'-d'
-'--minimal'
+‘-d’
+‘--minimal’
      Change the algorithm perhaps find a smaller set of changes.  This
-     makes 'diff' slower (sometimes much slower).  *Note diff
+     makes ‘diff’ slower (sometimes much slower).  *Note diff
      Performance::.
 
-'-D NAME'
-'--ifdef=NAME'
-     Make merged '#ifdef' format output, conditional on the preprocessor
+‘-D NAME’
+‘--ifdef=NAME’
+     Make merged ‘#ifdef’ format output, conditional on the preprocessor
      macro NAME.  *Note If-then-else::.
 
-'-e'
-'--ed'
-     Make output that is a valid 'ed' script.  *Note ed Scripts::.
+‘-e’
+‘--ed’
+     Make output that is a valid ‘ed’ script.  *Note ed Scripts::.
 
-'-E'
-'--ignore-tab-expansion'
+‘-E’
+‘--ignore-tab-expansion’
      Ignore changes due to tab expansion.  *Note White Space::.
 
-'-f'
-'--forward-ed'
-     Make output that looks vaguely like an 'ed' script but has changes
+‘-f’
+‘--forward-ed’
+     Make output that looks vaguely like an ‘ed’ script but has changes
      in the order they appear in the file.  *Note Forward ed::.
 
-'-F REGEXP'
-'--show-function-line=REGEXP'
+‘-F REGEXP’
+‘--show-function-line=REGEXP’
      In context and unified format, for each hunk of differences, show
      some of the last preceding line that matches REGEXP.  *Note
      Specified Headings::.
 
-'--from-file=FILE'
+‘--from-file=FILE’
      Compare FILE to each operand; FILE may be a directory.
 
-'--help'
+‘--help’
      Output a summary of usage and then exit.
 
-'--horizon-lines=LINES'
+‘--horizon-lines=LINES’
      Do not discard the last LINES lines of the common prefix and the
      first LINES lines of the common suffix.  *Note diff Performance::.
 
-'-i'
-'--ignore-case'
+‘-i’
+‘--ignore-case’
      Ignore changes in case; consider upper- and lower-case letters
      equivalent.  *Note Case Folding::.
 
-'-I REGEXP'
-'--ignore-matching-lines=REGEXP'
+‘-I REGEXP’
+‘--ignore-matching-lines=REGEXP’
      Ignore changes that just insert or delete lines that match REGEXP.
      *Note Specified Lines::.
 
-'--ignore-file-name-case'
+‘--ignore-file-name-case’
      Ignore case when comparing file names.  For example, recursive
-     comparison of 'd' to 'e' might compare the contents of 'd/Init' and
-     'e/inIt'.  At the top level, 'diff d inIt' might compare the
-     contents of 'd/Init' and 'inIt'.  *Note Comparing Directories::.
+     comparison of ‘d’ to ‘e’ might compare the contents of ‘d/Init’ and
+     ‘e/inIt’.  At the top level, ‘diff d inIt’ might compare the
+     contents of ‘d/Init’ and ‘inIt’.  *Note Comparing Directories::.
 
-'-l'
-'--paginate'
-     Pass the output through 'pr' to paginate it.  *Note Pagination::.
+‘-l’
+‘--paginate’
+     Pass the output through ‘pr’ to paginate it.  *Note Pagination::.
 
-'-L LABEL'
-'--label=LABEL'
+‘-L LABEL’
+‘--label=LABEL’
      Use LABEL instead of the file name in the context format (*note
      Context Format::) and unified format (*note Unified Format::)
      headers.  *Note RCS::.
 
-'--left-column'
+‘--left-column’
      Print only the left column of two common lines in side by side
      format.  *Note Side by Side Format::.
 
-'--line-format=FORMAT'
+‘--line-format=FORMAT’
      Use FORMAT to output all input lines in if-then-else format.  *Note
      Line Formats::.
 
-'-n'
-'--rcs'
-     Output RCS-format diffs; like '-f' except that each command
+‘-n’
+‘--rcs’
+     Output RCS-format diffs; like ‘-f’ except that each command
      specifies the number of lines affected.  *Note RCS::.
 
-'-N'
-'--new-file'
+‘-N’
+‘--new-file’
      If one file is missing, treat it as present but empty.  *Note
      Comparing Directories::.
 
-'--new-group-format=FORMAT'
+‘--new-group-format=FORMAT’
      Use FORMAT to output a group of lines taken from just the second
      file in if-then-else format.  *Note Line Group Formats::.
 
-'--new-line-format=FORMAT'
+‘--new-line-format=FORMAT’
      Use FORMAT to output a line taken from just the second file in
      if-then-else format.  *Note Line Formats::.
 
-'--no-dereference'
+‘--no-dereference’
      Act on symbolic links themselves instead of what they point to.
      Two symbolic links are deemed equal only when each points to
      precisely the same name.
 
-'--old-group-format=FORMAT'
+‘--old-group-format=FORMAT’
      Use FORMAT to output a group of lines taken from just the first
      file in if-then-else format.  *Note Line Group Formats::.
 
-'--old-line-format=FORMAT'
+‘--old-line-format=FORMAT’
      Use FORMAT to output a line taken from just the first file in
      if-then-else format.  *Note Line Formats::.
 
-'-p'
-'--show-c-function'
+‘-p’
+‘--show-c-function’
      Show which C function each change is in.  *Note C Function
      Headings::.
 
-'--palette=PALETTE'
+‘--palette=PALETTE’
      Specify what color palette to use when colored output is enabled.
-     It defaults to 'rs=0:hd=1:ad=32:de=31:ln=36' for red deleted lines,
+     It defaults to ‘rs=0:hd=1:ad=32:de=31:ln=36’ for red deleted lines,
      green added lines, cyan line numbers, bold header.
 
      Supported capabilities are as follows.
 
-     'ad=32'
+     ‘ad=32’
 
           SGR substring for added lines.  The default is green
           foreground.
 
-     'de=31'
+     ‘de=31’
 
           SGR substring for deleted lines.  The default is red
           foreground.
 
-     'hd=1'
+     ‘hd=1’
 
           SGR substring for chunk header.  The default is bold
           foreground.
 
-     'ln=36'
+     ‘ln=36’
 
           SGR substring for line numbers.  The default is cyan
           foreground.
 
-'-q'
-'--brief'
+‘-q’
+‘--brief’
      Report only whether the files differ, not the details of the
      differences.  *Note Brief::.
 
-'-r'
-'--recursive'
+‘-r’
+‘--recursive’
      When comparing directories, recursively compare any subdirectories
      found.  *Note Comparing Directories::.
 
-'-s'
-'--report-identical-files'
+‘-s’
+‘--report-identical-files’
      Report when two files are the same.  *Note Comparing Directories::.
 
-'-S FILE'
-'--starting-file=FILE'
+‘-S FILE’
+‘--starting-file=FILE’
      When comparing directories, start with the file FILE.  This is used
      for resuming an aborted comparison.  *Note Comparing Directories::.
 
-'--speed-large-files'
+‘--speed-large-files’
      Use heuristics to speed handling of large files that have numerous
      scattered small changes.  *Note diff Performance::.
 
-'--strip-trailing-cr'
+‘--strip-trailing-cr’
      Strip any trailing carriage return at the end of an input line.
      *Note Binary::.
 
-'--suppress-common-lines'
+‘--suppress-common-lines’
      Do not print common lines in side by side format.  *Note Side by
      Side Format::.
 
-'-t'
-'--expand-tabs'
+‘-t’
+‘--expand-tabs’
      Expand tabs to spaces in the output, to preserve the alignment of
      tabs in the input files.  *Note Tabs::.
 
-'-T'
-'--initial-tab'
+‘-T’
+‘--initial-tab’
      Output a tab rather than a space before the text of a line in
      normal or context format.  This causes the alignment of tabs in the
      line to look normal.  *Note Tabs::.
 
-'--tabsize=COLUMNS'
+‘--tabsize=COLUMNS’
      Assume that tab stops are set every COLUMNS (default 8) print
      columns.  *Note Tabs::.
 
-'--suppress-blank-empty'
+‘--suppress-blank-empty’
      Suppress any blanks before newlines when printing the
      representation of an empty line, when outputting normal, context,
      or unified format.  *Note Trailing Blanks::.
 
-'--to-file=FILE'
+‘--to-file=FILE’
      Compare each operand to FILE; FILE may be a directory.
 
-'-u'
+‘-u’
      Use the unified output format, showing three lines of context.
      *Note Unified Format::.
 
-'--unchanged-group-format=FORMAT'
+‘--unchanged-group-format=FORMAT’
      Use FORMAT to output a group of common lines taken from both files
      in if-then-else format.  *Note Line Group Formats::.
 
-'--unchanged-line-format=FORMAT'
+‘--unchanged-line-format=FORMAT’
      Use FORMAT to output a line common to both files in if-then-else
      format.  *Note Line Formats::.
 
-'--unidirectional-new-file'
+‘--unidirectional-new-file’
      If a first file is missing, treat it as present but empty.  *Note
      Comparing Directories::.
 
-'-U LINES'
-'--unified[=LINES]'
+‘-U LINES’
+‘--unified[=LINES]’
      Use the unified output format, showing LINES (an integer) lines of
      context, or three if LINES is not given.  *Note Unified Format::.
-     For proper operation, 'patch' typically needs at least two lines of
+     For proper operation, ‘patch’ typically needs at least two lines of
      context.
 
-     On older systems, 'diff' supports an obsolete option '-LINES' that
-     has effect when combined with '-u'.  POSIX 1003.1-2001 (*note
-     Standards conformance::) does not allow this; use '-U LINES'
+     On older systems, ‘diff’ supports an obsolete option ‘-LINES’ that
+     has effect when combined with ‘-u’.  POSIX 1003.1-2001 (*note
+     Standards conformance::) does not allow this; use ‘-U LINES’
      instead.
 
-'-v'
-'--version'
+‘-v’
+‘--version’
      Output version information and then exit.
 
-'-w'
-'--ignore-all-space'
+‘-w’
+‘--ignore-all-space’
      Ignore white space when comparing lines.  *Note White Space::.
 
-'-W COLUMNS'
-'--width=COLUMNS'
+‘-W COLUMNS’
+‘--width=COLUMNS’
      Output at most COLUMNS (default 130) print columns per line in side
      by side format.  *Note Side by Side Format::.
 
-'-x PATTERN'
-'--exclude=PATTERN'
+‘-x PATTERN’
+‘--exclude=PATTERN’
      When comparing directories, ignore files and subdirectories whose
      basenames match PATTERN.  *Note Comparing Directories::.
 
-'-X FILE'
-'--exclude-from=FILE'
+‘-X FILE’
+‘--exclude-from=FILE’
      When comparing directories, ignore files and subdirectories whose
      basenames match any pattern contained in FILE.  *Note Comparing
      Directories::.
 
-'-y'
-'--side-by-side'
+‘-y’
+‘--side-by-side’
      Use the side by side output format.  *Note Side by Side Format::.
 
-'-Z'
-'--ignore-trailing-space'
+‘-Z’
+‘--ignore-trailing-space’
      Ignore white space at line end.  *Note White Space::.
 
 \1f
 File: diffutils.info,  Node: Invoking diff3,  Next: Invoking patch,  Prev: Invoking diff,  Up: Top
 
-14 Invoking 'diff3'
+14 Invoking ‘diff3’
 *******************
 
-The 'diff3' command compares three files and outputs descriptions of
+The ‘diff3’ command compares three files and outputs descriptions of
 their differences.  Its arguments are as follows:
 
      diff3 OPTIONS... MINE OLDER YOURS
 
    The files to compare are MINE, OLDER, and YOURS.  At most one of
-these three file names may be '-', which tells 'diff3' to read the
+these three file names may be ‘-’, which tells ‘diff3’ to read the
 standard input for that file.
 
-   An exit status of 0 means 'diff3' was successful, 1 means some
+   An exit status of 0 means ‘diff3’ was successful, 1 means some
 conflicts were found, and 2 means trouble.
 
 * Menu:
 
-* diff3 Options:: Summary of options to 'diff3'.
+* diff3 Options:: Summary of options to ‘diff3’.
 
 \1f
 File: diffutils.info,  Node: diff3 Options,  Up: Invoking diff3
 
-14.1 Options to 'diff3'
+14.1 Options to ‘diff3’
 =======================
 
-Below is a summary of all of the options that GNU 'diff3' accepts.
+Below is a summary of all of the options that GNU ‘diff3’ accepts.
 Multiple single letter options (unless they take an argument) can be
 combined into a single command line argument.
 
-'-a'
-'--text'
+‘-a’
+‘--text’
      Treat all files as text and compare them line-by-line, even if they
      do not appear to be text.  *Note Binary::.
 
-'-A'
-'--show-all'
+‘-A’
+‘--show-all’
      Incorporate all unmerged changes from OLDER to YOURS into MINE,
      surrounding conflicts with bracket lines.  *Note Marking
      Conflicts::.
 
-'--diff-program=PROGRAM'
+‘--diff-program=PROGRAM’
      Use the compatible comparison program PROGRAM to compare files
-     instead of 'diff'.
+     instead of ‘diff’.
 
-'-e'
-'--ed'
-     Generate an 'ed' script that incorporates all the changes from
+‘-e’
+‘--ed’
+     Generate an ‘ed’ script that incorporates all the changes from
      OLDER to YOURS into MINE.  *Note Which Changes::.
 
-'-E'
-'--show-overlap'
-     Like '-e', except bracket lines from overlapping changes' first and
-     third files.  *Note Marking Conflicts::.  With '-E', an overlapping
+‘-E’
+‘--show-overlap’
+     Like ‘-e’, except bracket lines from overlapping changes' first and
+     third files.  *Note Marking Conflicts::.  With ‘-E’, an overlapping
      change looks like this:
 
           <<<<<<< MINE
@@ -3856,274 +3860,274 @@ combined into a single command line argument.
           lines from YOURS
           >>>>>>> YOURS
 
-'--help'
+‘--help’
      Output a summary of usage and then exit.
 
-'-i'
-     Generate 'w' and 'q' commands at the end of the 'ed' script for
+‘-i’
+     Generate ‘w’ and ‘q’ commands at the end of the ‘ed’ script for
      System V compatibility.  This option must be combined with one of
-     the '-AeExX3' options, and may not be combined with '-m'.  *Note
+     the ‘-AeExX3’ options, and may not be combined with ‘-m’.  *Note
      Saving the Changed File::.
 
-'--label=LABEL'
-     Use the label LABEL for the brackets output by the '-A', '-E' and
-     '-X' options.  This option may be given up to three times, one for
+‘--label=LABEL’
+     Use the label LABEL for the brackets output by the ‘-A’, ‘-E’ and
+     ‘-X’ options.  This option may be given up to three times, one for
      each input file.  The default labels are the names of the input
-     files.  Thus 'diff3 --label X --label Y --label Z -m A B C' acts
-     like 'diff3 -m A B C', except that the output looks like it came
-     from files named 'X', 'Y' and 'Z' rather than from files named 'A',
-     'B' and 'C'.  *Note Marking Conflicts::.
+     files.  Thus ‘diff3 --label X --label Y --label Z -m A B C’ acts
+     like ‘diff3 -m A B C’, except that the output looks like it came
+     from files named ‘X’, ‘Y’ and ‘Z’ rather than from files named ‘A’,
+     ‘B’ and ‘C’.  *Note Marking Conflicts::.
 
-'-m'
-'--merge'
+‘-m’
+‘--merge’
      Apply the edit script to the first file and send the result to
-     standard output.  Unlike piping the output from 'diff3' to 'ed',
-     this works even for binary files and incomplete lines.  '-A' is
+     standard output.  Unlike piping the output from ‘diff3’ to ‘ed’,
+     this works even for binary files and incomplete lines.  ‘-A’ is
      assumed if no edit script option is specified.  *Note Bypassing
      ed::.
 
-'--strip-trailing-cr'
+‘--strip-trailing-cr’
      Strip any trailing carriage return at the end of an input line.
      *Note Binary::.
 
-'-T'
-'--initial-tab'
+‘-T’
+‘--initial-tab’
      Output a tab rather than two spaces before the text of a line in
      normal format.  This causes the alignment of tabs in the line to
      look normal.  *Note Tabs::.
 
-'-v'
-'--version'
+‘-v’
+‘--version’
      Output version information and then exit.
 
-'-x'
-'--overlap-only'
-     Like '-e', except output only the overlapping changes.  *Note Which
+‘-x’
+‘--overlap-only’
+     Like ‘-e’, except output only the overlapping changes.  *Note Which
      Changes::.
 
-'-X'
-     Like '-E', except output only the overlapping changes.  In other
-     words, like '-x', except bracket changes as in '-E'.  *Note Marking
+‘-X’
+     Like ‘-E’, except output only the overlapping changes.  In other
+     words, like ‘-x’, except bracket changes as in ‘-E’.  *Note Marking
      Conflicts::.
 
-'-3'
-'--easy-only'
-     Like '-e', except output only the nonoverlapping changes.  *Note
+‘-3’
+‘--easy-only’
+     Like ‘-e’, except output only the nonoverlapping changes.  *Note
      Which Changes::.
 
 \1f
 File: diffutils.info,  Node: Invoking patch,  Next: Invoking sdiff,  Prev: Invoking diff3,  Up: Top
 
-15 Invoking 'patch'
+15 Invoking ‘patch’
 *******************
 
-Normally 'patch' is invoked like this:
+Normally ‘patch’ is invoked like this:
 
      patch <PATCHFILE
 
-   The full format for invoking 'patch' is:
+   The full format for invoking ‘patch’ is:
 
      patch OPTIONS... [ORIGFILE [PATCHFILE]]
 
-   You can also specify where to read the patch from with the '-i
-PATCHFILE' or '--input=PATCHFILE' option.  If you do not specify
-PATCHFILE, or if PATCHFILE is '-', 'patch' reads the patch (that is, the
-'diff' output) from the standard input.
+   You can also specify where to read the patch from with the -i
+PATCHFILE’ or ‘--input=PATCHFILE’ option.  If you do not specify
+PATCHFILE, or if PATCHFILE is ‘-’, ‘patch’ reads the patch (that is, the
+‘diff’ output) from the standard input.
 
-   If you do not specify an input file on the command line, 'patch'
-tries to intuit from the "leading text" (any text in the patch that
-comes before the 'diff' output) which file to edit.  *Note Multiple
+   If you do not specify an input file on the command line, ‘patch’
+tries to intuit from the “leading text” (any text in the patch that
+comes before the ‘diff’ output) which file to edit.  *Note Multiple
 Patches::.
 
-   By default, 'patch' replaces the original input file with the patched
+   By default, ‘patch’ replaces the original input file with the patched
 version, possibly after renaming the original file into a backup file
-(*note Backup Names::, for a description of how 'patch' names backup
-files).  You can also specify where to put the output with the '-o FILE'
-or '--output=FILE' option; however, do not use this option if FILE is
+(*note Backup Names::, for a description of how ‘patch’ names backup
+files).  You can also specify where to put the output with the ‘-o FILE’
+or ‘--output=FILE’ option; however, do not use this option if FILE is
 one of the input files.
 
 * Menu:
 
-* patch Options::     Summary table of options to 'patch'.
+* patch Options::     Summary table of options to ‘patch’.
 
 \1f
 File: diffutils.info,  Node: patch Options,  Up: Invoking patch
 
-15.1 Options to 'patch'
+15.1 Options to ‘patch’
 =======================
 
-Here is a summary of all of the options that GNU 'patch' accepts.  *Note
+Here is a summary of all of the options that GNU ‘patch’ accepts.  *Note
 patch and Tradition::, for which of these options are safe to use in
-older versions of 'patch'.
+older versions of ‘patch’.
 
    Multiple single-letter options that do not take an argument can be
 combined into a single command line argument with only one dash.
 
-'-b'
-'--backup'
+‘-b’
+‘--backup’
      Back up the original contents of each file, even if backups would
      normally not be made.  *Note Backups::.
 
-'-B PREFIX'
-'--prefix=PREFIX'
+‘-B PREFIX’
+‘--prefix=PREFIX’
      Prepend PREFIX to backup file names.  *Note Backup Names::.
 
-'--backup-if-mismatch'
+‘--backup-if-mismatch’
      Back up the original contents of each file if the patch does not
      exactly match the file.  This is the default behavior when not
      conforming to POSIX. *Note Backups::.
 
-'--binary'
+‘--binary’
      Read and write all files in binary mode, except for standard output
-     and '/dev/tty'.  This option has no effect on POSIX-conforming
+     and ‘/dev/tty’.  This option has no effect on POSIX-conforming
      systems like GNU/Linux.  On systems where this option makes a
-     difference, the patch should be generated by 'diff -a --binary'.
+     difference, the patch should be generated by ‘diff -a --binary’.
      *Note Binary::.
 
-'-c'
-'--context'
+‘-c’
+‘--context’
      Interpret the patch file as a context diff.  *Note patch Input::.
 
-'-d DIRECTORY'
-'--directory=DIRECTORY'
+‘-d DIRECTORY’
+‘--directory=DIRECTORY’
      Make directory DIRECTORY the current directory for interpreting
      both file names in the patch file, and file names given as
      arguments to other options.  *Note patch Directories::.
 
-'-D NAME'
-'--ifdef=NAME'
+‘-D NAME’
+‘--ifdef=NAME’
      Make merged if-then-else output using NAME.  *Note If-then-else::.
 
-'--dry-run'
+‘--dry-run’
      Print the results of applying the patches without actually changing
      any files.  *Note Dry Runs::.
 
-'-e'
-'--ed'
-     Interpret the patch file as an 'ed' script.  *Note patch Input::.
+‘-e’
+‘--ed’
+     Interpret the patch file as an ‘ed’ script.  *Note patch Input::.
 
-'-E'
-'--remove-empty-files'
+‘-E’
+‘--remove-empty-files’
      Remove output files that are empty after the patches have been
      applied.  *Note Creating and Removing::.
 
-'-f'
-'--force'
+‘-f’
+‘--force’
      Assume that the user knows exactly what he or she is doing, and do
      not ask any questions.  *Note patch Messages::.
 
-'-F LINES'
-'--fuzz=LINES'
+‘-F LINES’
+‘--fuzz=LINES’
      Set the maximum fuzz factor to LINES.  *Note Inexact::.
 
-'-g NUM'
-'--get=NUM'
+‘-g NUM’
+‘--get=NUM’
      If NUM is positive, get input files from a revision control system
      as necessary; if zero, do not get the files; if negative, ask the
      user whether to get the files.  *Note Revision Control::.
 
-'--help'
+‘--help’
      Output a summary of usage and then exit.
 
-'-i PATCHFILE'
-'--input=PATCHFILE'
+‘-i PATCHFILE’
+‘--input=PATCHFILE’
      Read the patch from PATCHFILE rather than from standard input.
      *Note patch Options::.
 
-'-l'
-'--ignore-white-space'
+‘-l’
+‘--ignore-white-space’
      Let any sequence of blanks (spaces or tabs) in the patch file match
      any sequence of blanks in the input file.  *Note Changed White
      Space::.
 
-'-n'
-'--normal'
+‘-n’
+‘--normal’
      Interpret the patch file as a normal diff.  *Note patch Input::.
 
-'-N'
-'--forward'
-     Ignore patches that 'patch' thinks are reversed or already applied.
-     See also '-R'.  *Note Reversed Patches::.
+‘-N’
+‘--forward’
+     Ignore patches that ‘patch’ thinks are reversed or already applied.
+     See also ‘-R’.  *Note Reversed Patches::.
 
-'--no-backup-if-mismatch'
+‘--no-backup-if-mismatch’
      Do not back up the original contents of files.  This is the default
      behavior when conforming to POSIX. *Note Backups::.
 
-'-o FILE'
-'--output=FILE'
+‘-o FILE’
+‘--output=FILE’
      Use FILE as the output file name.  *Note patch Options::.
 
-'-pNUMBER'
-'--strip=NUMBER'
+‘-pNUMBER’
+‘--strip=NUMBER’
      Set the file name strip count to NUMBER.  *Note patch
      Directories::.
 
-'--posix'
-     Conform to POSIX, as if the 'POSIXLY_CORRECT' environment variable
+‘--posix’
+     Conform to POSIX, as if the ‘POSIXLY_CORRECT’ environment variable
      had been set.  *Note patch and POSIX::.
 
-'--quoting-style=WORD'
+‘--quoting-style=WORD’
      Use style WORD to quote names in diagnostics, as if the
-     'QUOTING_STYLE' environment variable had been set to WORD.  *Note
+     ‘QUOTING_STYLE’ environment variable had been set to WORD.  *Note
      patch Quoting Style::.
 
-'-r REJECT-FILE'
-'--reject-file=REJECT-FILE'
+‘-r REJECT-FILE’
+‘--reject-file=REJECT-FILE’
      Use REJECT-FILE as the reject file name.  *Note Reject Names::.
 
-'-R'
-'--reverse'
+‘-R’
+‘--reverse’
      Assume that this patch was created with the old and new files
      swapped.  *Note Reversed Patches::.
 
-'-s'
-'--quiet'
-'--silent'
+‘-s’
+‘--quiet’
+‘--silent’
      Work silently unless an error occurs.  *Note patch Messages::.
 
-'-t'
-'--batch'
+‘-t’
+‘--batch’
      Do not ask any questions.  *Note patch Messages::.
 
-'-T'
-'--set-time'
+‘-T’
+‘--set-time’
      Set the modification and access times of patched files from
      timestamps given in context diff headers, assuming that the context
      diff headers use local time.  *Note Patching Timestamps::.
 
-'-u'
-'--unified'
+‘-u’
+‘--unified’
      Interpret the patch file as a unified diff.  *Note patch Input::.
 
-'-v'
-'--version'
+‘-v’
+‘--version’
      Output version information and then exit.
 
-'-V BACKUP-STYLE'
-'--version=control=BACKUP-STYLE'
+‘-V BACKUP-STYLE’
+‘--version=control=BACKUP-STYLE’
      Select the naming convention for backup file names.  *Note Backup
      Names::.
 
-'--verbose'
+‘--verbose’
      Print more diagnostics than usual.  *Note patch Messages::.
 
-'-x NUMBER'
-'--debug=NUMBER'
-     Set internal debugging flags.  Of interest only to 'patch'
+‘-x NUMBER’
+‘--debug=NUMBER’
+     Set internal debugging flags.  Of interest only to ‘patch’
      patchers.
 
-'-Y PREFIX'
-'--basename-prefix=PREFIX'
+‘-Y PREFIX’
+‘--basename-prefix=PREFIX’
      Prepend PREFIX to base names of backup files.  *Note Backup
      Names::.
 
-'-z SUFFIX'
-'--suffix=SUFFIX'
-     Use SUFFIX as the backup extension instead of '.orig' or '~'.
+‘-z SUFFIX’
+‘--suffix=SUFFIX’
+     Use SUFFIX as the backup extension instead of ‘.orig’ or ‘~’.
      *Note Backup Names::.
 
-'-Z'
-'--set-utc'
+‘-Z’
+‘--set-utc’
      Set the modification and access times of patched files from
      timestamps given in context diff headers, assuming that the context
      diff headers use UTC. *Note Patching Timestamps::.
@@ -4131,26 +4135,26 @@ combined into a single command line argument with only one dash.
 \1f
 File: diffutils.info,  Node: Invoking sdiff,  Next: Standards conformance,  Prev: Invoking patch,  Up: Top
 
-16 Invoking 'sdiff'
+16 Invoking ‘sdiff’
 *******************
 
-The 'sdiff' command merges two files and interactively outputs the
+The ‘sdiff’ command merges two files and interactively outputs the
 results.  Its arguments are as follows:
 
      sdiff -o OUTFILE OPTIONS... FROM-FILE TO-FILE
 
    This merges FROM-FILE with TO-FILE, with output to OUTFILE.  If
-FROM-FILE is a directory and TO-FILE is not, 'sdiff' compares the file
+FROM-FILE is a directory and TO-FILE is not, ‘sdiff’ compares the file
 in FROM-FILE whose file name is that of TO-FILE, and vice versa.
 FROM-FILE and TO-FILE may not both be directories.
 
-   'sdiff' options begin with '-', so normally FROM-FILE and TO-FILE may
-not begin with '-'.  However, '--' as an argument by itself treats the
-remaining arguments as file names even if they begin with '-'.  You may
-not use '-' as an input file.
+   ‘sdiff’ options begin with ‘-’, so normally FROM-FILE and TO-FILE may
+not begin with ‘-’.  However, ‘--’ as an argument by itself treats the
+remaining arguments as file names even if they begin with ‘-’.  You may
+not use ‘-’ as an input file.
 
-   'sdiff' without '--output' ('-o') produces a side-by-side difference.
-This usage is obsolete; use the '--side-by-side' ('-y') option of 'diff'
+   ‘sdiff’ without ‘--output’ (‘-o’) produces a side-by-side difference.
+This usage is obsolete; use the ‘--side-by-side’ (‘-y’) option of ‘diff’
 instead.
 
    An exit status of 0 means no differences were found, 1 means some
@@ -4158,110 +4162,110 @@ differences were found, and 2 means trouble.
 
 * Menu:
 
-* sdiff Options:: Summary of options to 'diff'.
+* sdiff Options:: Summary of options to ‘diff’.
 
 \1f
 File: diffutils.info,  Node: sdiff Options,  Up: Invoking sdiff
 
-16.1 Options to 'sdiff'
+16.1 Options to ‘sdiff’
 =======================
 
-Below is a summary of all of the options that GNU 'sdiff' accepts.  Each
+Below is a summary of all of the options that GNU ‘sdiff’ accepts.  Each
 option has two equivalent names, one of which is a single letter
-preceded by '-', and the other of which is a long name preceded by '--'.
+preceded by ‘-’, and the other of which is a long name preceded by ‘--’.
 Multiple single letter options (unless they take an argument) can be
 combined into a single command line argument.  Long named options can be
 abbreviated to any unique prefix of their name.
 
-'-a'
-'--text'
+‘-a’
+‘--text’
      Treat all files as text and compare them line-by-line, even if they
      do not appear to be text.  *Note Binary::.
 
-'-b'
-'--ignore-space-change'
+‘-b’
+‘--ignore-space-change’
      Ignore changes in amount of white space.  *Note White Space::.
 
-'-B'
-'--ignore-blank-lines'
+‘-B’
+‘--ignore-blank-lines’
      Ignore changes that just insert or delete blank lines.  *Note Blank
      Lines::.
 
-'-d'
-'--minimal'
+‘-d’
+‘--minimal’
      Change the algorithm to perhaps find a smaller set of changes.
-     This makes 'sdiff' slower (sometimes much slower).  *Note diff
+     This makes ‘sdiff’ slower (sometimes much slower).  *Note diff
      Performance::.
 
-'--diff-program=PROGRAM'
+‘--diff-program=PROGRAM’
      Use the compatible comparison program PROGRAM to compare files
-     instead of 'diff'.
+     instead of ‘diff’.
 
-'-E'
-'--ignore-tab-expansion'
+‘-E’
+‘--ignore-tab-expansion’
      Ignore changes due to tab expansion.  *Note White Space::.
 
-'--help'
+‘--help’
      Output a summary of usage and then exit.
 
-'-i'
-'--ignore-case'
+‘-i’
+‘--ignore-case’
      Ignore changes in case; consider upper- and lower-case to be the
      same.  *Note Case Folding::.
 
-'-I REGEXP'
-'--ignore-matching-lines=REGEXP'
+‘-I REGEXP’
+‘--ignore-matching-lines=REGEXP’
      Ignore changes that just insert or delete lines that match REGEXP.
      *Note Specified Lines::.
 
-'-l'
-'--left-column'
+‘-l’
+‘--left-column’
      Print only the left column of two common lines.  *Note Side by Side
      Format::.
 
-'-o FILE'
-'--output=FILE'
+‘-o FILE’
+‘--output=FILE’
      Put merged output into FILE.  This option is required for merging.
 
-'-s'
-'--suppress-common-lines'
+‘-s’
+‘--suppress-common-lines’
      Do not print common lines.  *Note Side by Side Format::.
 
-'--speed-large-files'
+‘--speed-large-files’
      Use heuristics to speed handling of large files that have numerous
      scattered small changes.  *Note diff Performance::.
 
-'--strip-trailing-cr'
+‘--strip-trailing-cr’
      Strip any trailing carriage return at the end of an input line.
      *Note Binary::.
 
-'-t'
-'--expand-tabs'
+‘-t’
+‘--expand-tabs’
      Expand tabs to spaces in the output, to preserve the alignment of
      tabs in the input files.  *Note Tabs::.
 
-'--tabsize=COLUMNS'
+‘--tabsize=COLUMNS’
      Assume that tab stops are set every COLUMNS (default 8) print
      columns.  *Note Tabs::.
 
-'-v'
-'--version'
+‘-v’
+‘--version’
      Output version information and then exit.
 
-'-w COLUMNS'
-'--width=COLUMNS'
+‘-w COLUMNS’
+‘--width=COLUMNS’
      Output at most COLUMNS (default 130) print columns per line.  *Note
      Side by Side Format::.  Note that for historical reasons, this
-     option is '-W' in 'diff', '-w' in 'sdiff'.
+     option is ‘-W’ in ‘diff’, ‘-w’ in ‘sdiff’.
 
-'-W'
-'--ignore-all-space'
+‘-W’
+‘--ignore-all-space’
      Ignore white space when comparing lines.  *Note White Space::.
-     Note that for historical reasons, this option is '-w' in 'diff',
-     '-W' in 'sdiff'.
+     Note that for historical reasons, this option is ‘-w’ in ‘diff’,
+     ‘-W’ in ‘sdiff’.
 
-'-Z'
-'--ignore-trailing-space'
+‘-Z’
+‘--ignore-trailing-space’
      Ignore white space at line end.  *Note White Space::.
 
 \1f
@@ -4272,30 +4276,30 @@ File: diffutils.info,  Node: Standards conformance,  Next: Projects,  Prev: Invo
 
 In a few cases, the GNU utilities' default behavior is incompatible with
 the POSIX standard.  To suppress these incompatibilities, define the
-'POSIXLY_CORRECT' environment variable.  Unless you are checking for
-POSIX conformance, you probably do not need to define 'POSIXLY_CORRECT'.
+‘POSIXLY_CORRECT’ environment variable.  Unless you are checking for
+POSIX conformance, you probably do not need to define ‘POSIXLY_CORRECT’.
 
    Normally options and operands can appear in any order, and programs
 act as if all the options appear before any operands.  For example,
-'diff lao tzu -C 2' acts like 'diff -C 2 lao tzu', since '2' is an
-option-argument of '-C'.  However, if the 'POSIXLY_CORRECT' environment
+‘diff lao tzu -C 2’ acts like ‘diff -C 2 lao tzu’, since ‘2’ is an
+option-argument of ‘-C’.  However, if the ‘POSIXLY_CORRECT’ environment
 variable is set, options must appear before operands, unless otherwise
 specified for a particular command.
 
    Newer versions of POSIX are occasionally incompatible with older
 versions.  For example, older versions of POSIX allowed the command
-'diff -c -10' to have the same meaning as 'diff -C 10', but POSIX
-1003.1-2001 'diff' no longer allows digit-string options like '-10'.
+‘diff -c -10’ to have the same meaning as ‘diff -C 10’, but POSIX
+1003.1-2001 ‘diff’ no longer allows digit-string options like ‘-10’.
 
    The GNU utilities normally conform to the version of POSIX that is
 standard for your system.  To cause them to conform to a different
-version of POSIX, define the '_POSIX2_VERSION' environment variable to a
+version of POSIX, define the ‘_POSIX2_VERSION’ environment variable to a
 value of the form YYYYMM specifying the year and month the standard was
-adopted.  Two values are currently supported for '_POSIX2_VERSION':
-'199209' stands for POSIX 1003.2-1992, and '200112' stands for POSIX
+adopted.  Two values are currently supported for ‘_POSIX2_VERSION’:
+‘199209’ stands for POSIX 1003.2-1992, and ‘200112’ stands for POSIX
 1003.1-2001.  For example, if you are running older software that
-assumes an older version of POSIX and uses 'diff -c -10', you can work
-around the compatibility problems by setting '_POSIX2_VERSION=199209' in
+assumes an older version of POSIX and uses ‘diff -c -10’, you can work
+around the compatibility problems by setting ‘_POSIX2_VERSION=199209’ in
 your environment.
 
 \1f
@@ -4304,7 +4308,7 @@ File: diffutils.info,  Node: Projects,  Next: Copying This Manual,  Prev: Standa
 18 Future Projects
 ******************
 
-Here are some ideas for improving GNU 'diff' and 'patch'.  The GNU
+Here are some ideas for improving GNU ‘diff’ and ‘patch’.  The GNU
 project has identified some improvements as potential programming
 projects for volunteers.  You can also help by reporting any bugs that
 you find.
@@ -4322,14 +4326,14 @@ coordinate with other volunteers.
 \1f
 File: diffutils.info,  Node: Shortcomings,  Next: Bugs,  Up: Projects
 
-18.1 Suggested Projects for Improving GNU 'diff' and 'patch'
+18.1 Suggested Projects for Improving GNU ‘diff’ and ‘patch’
 ============================================================
 
-One should be able to use GNU 'diff' to generate a patch from any pair
+One should be able to use GNU ‘diff’ to generate a patch from any pair
 of directory trees, and given the patch and a copy of one such tree, use
-'patch' to generate a faithful copy of the other.  Unfortunately, some
+‘patch’ to generate a faithful copy of the other.  Unfortunately, some
 changes to directory trees cannot be expressed using current patch
-formats; also, 'patch' does not handle some of the existing formats.
+formats; also, ‘patch’ does not handle some of the existing formats.
 These shortcomings motivate the following suggested projects.
 
 * Menu:
@@ -4348,24 +4352,24 @@ File: diffutils.info,  Node: Internationalization,  Next: Changing Structure,  U
 18.1.1 Handling Multibyte and Varying-Width Characters
 ------------------------------------------------------
 
-'diff', 'diff3' and 'sdiff' treat each line of input as a string of
+‘diff’, ‘diff3’ and ‘sdiff’ treat each line of input as a string of
 unibyte characters.  This can mishandle multibyte characters in some
-cases.  For example, when asked to ignore spaces, 'diff' does not
+cases.  For example, when asked to ignore spaces, ‘diff’ does not
 properly ignore a multibyte space character.
 
-   Also, 'diff' currently assumes that each byte is one column wide, and
+   Also, ‘diff’ currently assumes that each byte is one column wide, and
 this assumption is incorrect in some locales, e.g., locales that use
-UTF-8 encoding.  This causes problems with the '-y' or '--side-by-side'
-option of 'diff'.
+UTF-8 encoding.  This causes problems with the ‘-y’ or ‘--side-by-side’
+option of ‘diff’.
 
    These problems need to be fixed without unduly affecting the
 performance of the utilities in unibyte environments.
 
    The IBM GNU/Linux Technology Center Internationalization Team has
-proposed patches to support internationalized 'diff'
+proposed patches to support internationalized ‘diff’
 (http://oss.software.ibm.com/developer/opensource/linux/patches/i18n/diffutils-2.7.2-i18n-0.1.patch.gz).
 Unfortunately, these patches are incomplete and are to an older version
-of 'diff', so more work needs to be done in this area.
+of ‘diff’, so more work needs to be done in this area.
 
 \1f
 File: diffutils.info,  Node: Changing Structure,  Next: Special Files,  Prev: Internationalization,  Up: Shortcomings
@@ -4373,21 +4377,21 @@ File: diffutils.info,  Node: Changing Structure,  Next: Special Files,  Prev: In
 18.1.2 Handling Changes to the Directory Structure
 --------------------------------------------------
 
-'diff' and 'patch' do not handle some changes to directory structure.
-For example, suppose one directory tree contains a directory named 'D'
+‘diff’ and ‘patch’ do not handle some changes to directory structure.
+For example, suppose one directory tree contains a directory named ‘D’
 with some subsidiary files, and another contains a file with the same
-name 'D'.  'diff -r' does not output enough information for 'patch' to
+name ‘D’.  ‘diff -r’ does not output enough information for ‘patch’ to
 transform the directory subtree into the file.
 
    There should be a way to specify that a file has been removed without
 having to include its entire contents in the patch file.  There should
-also be a way to tell 'patch' that a file was renamed, even if there is
-no way for 'diff' to generate such information.  There should be a way
-to tell 'patch' that a file's timestamp has changed, even if its
+also be a way to tell ‘patch’ that a file was renamed, even if there is
+no way for ‘diff’ to generate such information.  There should be a way
+to tell ‘patch’ that a file's timestamp has changed, even if its
 contents have not changed.
 
-   These problems can be fixed by extending the 'diff' output format to
-represent changes in directory structure, and extending 'patch' to
+   These problems can be fixed by extending the ‘diff’ output format to
+represent changes in directory structure, and extending ‘patch’ to
 understand these extensions.
 
 \1f
@@ -4398,18 +4402,18 @@ File: diffutils.info,  Node: Special Files,  Next: Unusual File Names,  Prev: Ch
 
 Some files are neither directories nor regular files: they are unusual
 files like symbolic links, device special files, named pipes, and
-sockets.  Currently, 'diff' treats symbolic links as if they were the
-pointed-to files, except that a recursive 'diff' reports an error if it
-detects infinite loops of symbolic links (e.g., symbolic links to '..').
-'diff' treats other special files like regular files if they are
+sockets.  Currently, ‘diff’ treats symbolic links as if they were the
+pointed-to files, except that a recursive ‘diff’ reports an error if it
+detects infinite loops of symbolic links (e.g., symbolic links to ‘..’).
+‘diff’ treats other special files like regular files if they are
 specified at the top level, but simply reports their presence when
-comparing directories.  This means that 'patch' cannot represent changes
+comparing directories.  This means that ‘patch’ cannot represent changes
 to such files.  For example, if you change which file a symbolic link
-points to, 'diff' outputs the difference between the two files, instead
+points to, ‘diff’ outputs the difference between the two files, instead
 of the change to the symbolic link.
 
-   'diff' should optionally report changes to special files specially,
-and 'patch' should be extended to understand these extensions.
+   ‘diff’ should optionally report changes to special files specially,
+and ‘patch’ should be extended to understand these extensions.
 
 \1f
 File: diffutils.info,  Node: Unusual File Names,  Next: Timestamp Order,  Prev: Special Files,  Up: Shortcomings
@@ -4418,11 +4422,11 @@ File: diffutils.info,  Node: Unusual File Names,  Next: Timestamp Order,  Prev:
 -------------------------------------------------
 
 When a file name contains an unusual character like a newline or white
-space, 'diff -r' generates a patch that 'patch' cannot parse.  The
-problem is with format of 'diff' output, not just with 'patch', because
-with odd enough file names one can cause 'diff' to generate a patch that
+space, ‘diff -r’ generates a patch that ‘patch’ cannot parse.  The
+problem is with format of ‘diff’ output, not just with ‘patch’, because
+with odd enough file names one can cause ‘diff’ to generate a patch that
 is syntactically correct but patches the wrong files.  The format of
-'diff' output should be extended to handle all possible file names.
+‘diff’ output should be extended to handle all possible file names.
 
 \1f
 File: diffutils.info,  Node: Timestamp Order,  Next: Ignoring Changes,  Prev: Unusual File Names,  Up: Shortcomings
@@ -4430,12 +4434,12 @@ File: diffutils.info,  Node: Timestamp Order,  Next: Ignoring Changes,  Prev: Un
 18.1.5 Outputting Diffs in Timestamp Order
 ------------------------------------------
 
-Applying 'patch' to a multiple-file diff can result in files whose
-timestamps are out of order.  GNU 'patch' has options to restore the
+Applying ‘patch’ to a multiple-file diff can result in files whose
+timestamps are out of order.  GNU ‘patch’ has options to restore the
 timestamps of the updated files (*note Patching Timestamps::), but
 sometimes it is useful to generate a patch that works even if the
 recipient does not have GNU patch, or does not use these options.  One
-way to do this would be to implement a 'diff' option to output diffs in
+way to do this would be to implement a ‘diff’ option to output diffs in
 timestamp order.
 
 \1f
@@ -4446,8 +4450,8 @@ File: diffutils.info,  Node: Ignoring Changes,  Next: Speedups,  Prev: Timestamp
 
 It would be nice to have a feature for specifying two strings, one in
 FROM-FILE and one in TO-FILE, which should be considered to match.
-Thus, if the two strings are 'foo' and 'bar', then if two lines differ
-only in that 'foo' in file 1 corresponds to 'bar' in file 2, the lines
+Thus, if the two strings are ‘foo’ and ‘bar’, then if two lines differ
+only in that ‘foo’ in file 1 corresponds to ‘bar’ in file 2, the lines
 are treated as identical.
 
    It is not clear how general this feature can or should be, or what
@@ -4468,7 +4472,7 @@ File: diffutils.info,  Node: Speedups,  Prev: Ignoring Changes,  Up: Shortcoming
 
 When comparing two large directory structures, one of which was
 originally copied from the other with timestamps preserved (e.g., with
-'cp -pR'), it would greatly improve performance if an option told 'diff'
+‘cp -pR’), it would greatly improve performance if an option told ‘diff’
 to assume that two files with the same size and timestamps have the same
 content.  *Note diff Performance::.
 
@@ -4478,12 +4482,12 @@ File: diffutils.info,  Node: Bugs,  Prev: Shortcomings,  Up: Projects
 18.2 Reporting Bugs
 ===================
 
-If you think you have found a bug in GNU 'cmp', 'diff', 'diff3', or
-'sdiff', please report it by electronic mail to the GNU utilities bug
+If you think you have found a bug in GNU ‘cmp’, ‘diff’, ‘diff3’, or
+‘sdiff’, please report it by electronic mail to the GNU utilities bug
 report mailing list (http://mail.gnu.org/mailman/listinfo/bug-diffutils)
-<bug-diffutils@gnu.org>.  Please send bug reports for GNU 'patch' to
+<bug-diffutils@gnu.org>.  Please send bug reports for GNU ‘patch’ to
 <bug-patch@gnu.org>.  Send as precise a description of the problem as
-you can, including the output of the '--version' option and sample input
+you can, including the output of the ‘--version’ option and sample input
 files that produce the bug, if applicable.  If you have a nontrivial fix
 for the bug, please send it as well.  If you have a patch, please send
 it too.  It may simplify the maintainer's job if the patch is relative
@@ -4498,7 +4502,8 @@ Appendix A Copying This Manual
 
                      Version 1.3, 3 November 2008
 
-     Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
+     Copyright © 2000-2002, 2007-2008, 2022-2023 Free Software
+     Foundation, Inc.
      <https://fsf.org/>
 
      Everyone is permitted to copy and distribute verbatim copies
@@ -4507,7 +4512,7 @@ Appendix A Copying This Manual
   0. PREAMBLE
 
      The purpose of this License is to make a manual, textbook, or other
-     functional and useful document "free" in the sense of freedom: to
+     functional and useful document “free” in the sense of freedom: to
      assure everyone the effective freedom to copy and redistribute it,
      with or without modifying it, either commercially or
      noncommercially.  Secondarily, this License preserves for the
@@ -4991,17 +4996,17 @@ Appendix C Index
 \0\b[index\0\b]
 * Menu:
 
+* _POSIX2_VERSION:                       Standards conformance.
+                                                              (line  23)
 * ! output format:                       Context.             (line   6)
 * +- output format:                      Unified Format.      (line   6)
 * < output format:                       Normal.              (line   6)
 * <<<<<<< for marking conflicts:         Marking Conflicts.   (line   6)
-* _POSIX2_VERSION:                       Standards conformance.
-                                                              (line  23)
-* ad capability:                         diff Options.        (line 179)
+* ad capability:                         diff Options.        (line 182)
 * aligning tab stops:                    Tabs.                (line   6)
 * alternate file names:                  Alternate Names.     (line   6)
-* always color option:                   diff Options.        (line  43)
-* auto color option:                     diff Options.        (line  42)
+* always color option:                   diff Options.        (line  46)
+* auto color option:                     diff Options.        (line  44)
 * backup file names:                     Backup Names.        (line   6)
 * backup file strategy:                  Backups.             (line   6)
 * binary file diff:                      Binary.              (line   6)
@@ -5026,7 +5031,7 @@ Appendix C Index
 * context output format:                 Context.             (line   6)
 * creating files:                        Creating and Removing.
                                                               (line   6)
-* de capability:                         diff Options.        (line 184)
+* de capability:                         diff Options.        (line 187)
 * diagnostics from patch:                patch Messages.      (line   6)
 * diff invocation:                       Invoking diff.       (line   6)
 * diff merging:                          Interactive Merging. (line   6)
@@ -5057,7 +5062,7 @@ Appendix C Index
 * fuzz factor when patching:             Inexact.             (line   6)
 * gibibyte, definition of:               cmp Options.         (line  87)
 * gigabyte, definition of:               cmp Options.         (line  84)
-* hd capability:                         diff Options.        (line 189)
+* hd capability:                         diff Options.        (line 192)
 * headings:                              Sections.            (line   6)
 * hunks:                                 Hunks.               (line   6)
 * hunks for diff3:                       diff3 Hunks.         (line   6)
@@ -5088,7 +5093,7 @@ Appendix C Index
 * LC_TIME:                               Detailed Context.    (line  12)
 * line formats:                          Line Formats.        (line   6)
 * line group formats:                    Line Group Formats.  (line   6)
-* ln capability:                         diff Options.        (line 194)
+* ln capability:                         diff Options.        (line 197)
 * mebibyte, definition of:               cmp Options.         (line  82)
 * megabyte, definition of:               cmp Options.         (line  79)
 * merge commands:                        Merge Commands.      (line   6)
@@ -5101,7 +5106,7 @@ Appendix C Index
                                                               (line   6)
 * multiple patches:                      Multiple Patches.    (line   6)
 * newline treatment by diff:             Incomplete Lines.    (line   6)
-* none color option:                     diff Options.        (line  40)
+* none color option:                     diff Options.        (line  41)
 * normal output format:                  Normal.              (line   6)
 * options for cmp:                       cmp Options.         (line   6)
 * options for diff:                      diff Options.        (line   6)
@@ -5121,13 +5126,13 @@ Appendix C Index
 * patch options:                         patch Options.       (line   6)
 * patch producer tips:                   Tips for Patch Producers.
                                                               (line   6)
+* PATCH_GET:                             Revision Control.    (line  13)
+* PATCH_VERSION_CONTROL:                 Backup Names.        (line  21)
 * patch, common mistakes:                Avoiding Common Mistakes.
                                                               (line   6)
 * patches, shrinking:                    Generating Smaller Patches.
                                                               (line   6)
 * patching directories:                  patch Directories.   (line   6)
-* PATCH_GET:                             Revision Control.    (line  13)
-* PATCH_VERSION_CONTROL:                 Backup Names.        (line  21)
 * pebibyte, definition of:               cmp Options.         (line  97)
 * performance of diff:                   diff Performance.    (line   6)
 * petabyte, definition of:               cmp Options.         (line  94)
@@ -5171,7 +5176,7 @@ Appendix C Index
 * tab stop alignment:                    Tabs.                (line   6)
 * tebibyte, definition of:               cmp Options.         (line  92)
 * terabyte, definition of:               cmp Options.         (line  89)
-* terminal, using color iff:             diff Options.        (line  42)
+* terminal, using color iff:             diff Options.        (line  44)
 * testing patch:                         Dry Runs.            (line   6)
 * text versus binary diff:               Binary.              (line   6)
 * timestamp format, context diffs:       Detailed Context.    (line  12)
@@ -5196,119 +5201,119 @@ Appendix C Index
 
 \1f
 Tag Table:
-Node: Top\7f1431
-Node: Overview\7f3644
-Node: Comparison\7f7398
-Node: Hunks\7f10340
-Node: White Space\7f11781
-Node: Blank Lines\7f13620
-Node: Specified Lines\7f14609
-Node: Case Folding\7f15735
-Node: Brief\7f16152
-Node: Binary\7f17475
-Node: Output Formats\7f21272
-Node: Sample diff Input\7f21997
-Node: Context\7f23496
-Node: Context Format\7f25073
-Node: Example Context\7f25865
-Node: Less Context\7f27372
-Node: Detailed Context\7f28561
-Node: Unified Format\7f30756
-Node: Example Unified\7f31565
-Node: Detailed Unified\7f32603
-Node: Sections\7f34243
-Node: Specified Headings\7f35002
-Node: C Function Headings\7f36551
-Node: Alternate Names\7f37397
-Node: Side by Side\7f38310
-Node: Side by Side Format\7f40460
-Node: Example Side by Side\7f41362
-Node: Normal\7f42702
-Node: Example Normal\7f43703
-Node: Detailed Normal\7f44439
-Node: Scripts\7f46178
-Node: ed Scripts\7f46583
-Node: Example ed\7f47789
-Node: Detailed ed\7f48239
-Node: Forward ed\7f49998
-Node: RCS\7f50774
-Node: If-then-else\7f51990
-Node: Line Group Formats\7f53668
-Node: Line Formats\7f59549
-Node: Example If-then-else\7f62818
-Node: Detailed If-then-else\7f63897
-Node: Incomplete Lines\7f65782
-Node: Comparing Directories\7f67418
-Node: Adjusting Output\7f71619
-Node: Tabs\7f72126
-Node: Trailing Blanks\7f73740
-Node: Pagination\7f74965
-Node: diff Performance\7f75433
-Node: Comparing Three Files\7f78522
-Node: Sample diff3 Input\7f79400
-Node: Example diff3 Normal\7f80348
-Node: Detailed diff3 Normal\7f81408
-Node: diff3 Hunks\7f83196
-Node: diff3 Merging\7f84462
-Node: Which Changes\7f86707
-Node: Marking Conflicts\7f88107
-Node: Bypassing ed\7f90562
-Node: Merging Incomplete Lines\7f91905
-Node: Saving the Changed File\7f92631
-Node: Interactive Merging\7f93247
-Node: sdiff Option Summary\7f93956
-Node: Merge Commands\7f95159
-Node: Merging with patch\7f96448
-Node: patch Input\7f98815
-Node: Revision Control\7f99497
-Node: Imperfect\7f100667
-Node: Changed White Space\7f101816
-Node: Reversed Patches\7f102613
-Node: Inexact\7f104077
-Node: Dry Runs\7f107633
-Node: Creating and Removing\7f108497
-Node: Patching Timestamps\7f109546
-Node: Multiple Patches\7f111733
-Node: patch Directories\7f114394
-Node: Backups\7f116018
-Node: Backup Names\7f117082
-Ref: Backup Names-Footnote-1\7f120037
-Node: Reject Names\7f120164
-Node: patch Messages\7f120753
-Node: More or Fewer Messages\7f121813
-Node: patch and Keyboard Input\7f122444
-Node: patch Quoting Style\7f123473
-Node: patch and POSIX\7f124619
-Node: patch and Tradition\7f125458
-Node: Making Patches\7f128879
-Node: Tips for Patch Producers\7f129705
-Node: Tips for Patch Consumers\7f130960
-Node: Avoiding Common Mistakes\7f131597
-Node: Generating Smaller Patches\7f134122
-Node: Invoking cmp\7f135881
-Node: cmp Options\7f137431
-Node: Invoking diff\7f141075
-Node: diff Options\7f142694
-Node: Invoking diff3\7f152543
-Node: diff3 Options\7f153181
-Node: Invoking patch\7f156214
-Node: patch Options\7f157422
-Node: Invoking sdiff\7f162642
-Node: sdiff Options\7f163784
-Node: Standards conformance\7f166756
-Node: Projects\7f168502
-Node: Shortcomings\7f169214
-Node: Internationalization\7f170314
-Node: Changing Structure\7f171480
-Node: Special Files\7f172583
-Node: Unusual File Names\7f173694
-Node: Timestamp Order\7f174332
-Node: Ignoring Changes\7f174968
-Node: Speedups\7f175737
-Node: Bugs\7f176199
-Node: Copying This Manual\7f177052
-Node: Translations\7f202173
-Node: Index\7f202545
+Node: Top\7f1454
+Node: Overview\7f3703
+Node: Comparison\7f7577
+Node: Hunks\7f10559
+Node: White Space\7f12080
+Node: Blank Lines\7f13995
+Node: Specified Lines\7f15016
+Node: Case Folding\7f16174
+Node: Brief\7f16615
+Node: Binary\7f17990
+Node: Output Formats\7f21919
+Node: Sample diff Input\7f22660
+Node: Context\7f24187
+Node: Context Format\7f25796
+Node: Example Context\7f26604
+Node: Less Context\7f28115
+Node: Detailed Context\7f29308
+Node: Unified Format\7f31549
+Node: Example Unified\7f32382
+Node: Detailed Unified\7f33424
+Node: Sections\7f35091
+Node: Specified Headings\7f35854
+Node: C Function Headings\7f37455
+Node: Alternate Names\7f38337
+Node: Side by Side\7f39282
+Node: Side by Side Format\7f41480
+Node: Example Side by Side\7f42406
+Node: Normal\7f43750
+Node: Example Normal\7f44763
+Node: Detailed Normal\7f45503
+Node: Scripts\7f47266
+Node: ed Scripts\7f47687
+Node: Example ed\7f48981
+Node: Detailed ed\7f49439
+Node: Forward ed\7f51258
+Node: RCS\7f52078
+Node: If-then-else\7f53326
+Node: Line Group Formats\7f55060
+Node: Line Formats\7f61129
+Node: Example If-then-else\7f64514
+Node: Detailed If-then-else\7f65597
+Node: Incomplete Lines\7f67550
+Node: Comparing Directories\7f69254
+Node: Adjusting Output\7f73639
+Node: Tabs\7f74158
+Node: Trailing Blanks\7f75824
+Node: Pagination\7f77073
+Node: diff Performance\7f77565
+Node: Comparing Three Files\7f80750
+Node: Sample diff3 Input\7f81648
+Node: Example diff3 Normal\7f82608
+Node: Detailed diff3 Normal\7f83676
+Node: diff3 Hunks\7f85520
+Node: diff3 Merging\7f86906
+Node: Which Changes\7f89211
+Node: Marking Conflicts\7f90687
+Node: Bypassing ed\7f93254
+Node: Merging Incomplete Lines\7f94633
+Node: Saving the Changed File\7f95391
+Node: Interactive Merging\7f96067
+Node: sdiff Option Summary\7f96808
+Node: Merge Commands\7f98103
+Node: Merging with patch\7f99464
+Node: patch Input\7f101907
+Node: Revision Control\7f102645
+Node: Imperfect\7f103859
+Node: Changed White Space\7f105044
+Node: Reversed Patches\7f105857
+Node: Inexact\7f107381
+Node: Dry Runs\7f111009
+Node: Creating and Removing\7f111909
+Node: Patching Timestamps\7f113002
+Node: Multiple Patches\7f115293
+Node: patch Directories\7f118052
+Node: Backups\7f119756
+Node: Backup Names\7f120860
+Ref: Backup Names-Footnote-1\7f123971
+Node: Reject Names\7f124106
+Node: patch Messages\7f124723
+Node: More or Fewer Messages\7f125803
+Node: patch and Keyboard Input\7f126470
+Node: patch Quoting Style\7f127551
+Node: patch and POSIX\7f128749
+Node: patch and Tradition\7f129614
+Node: Making Patches\7f133211
+Node: Tips for Patch Producers\7f134041
+Node: Tips for Patch Consumers\7f135328
+Node: Avoiding Common Mistakes\7f135977
+Node: Generating Smaller Patches\7f138566
+Node: Invoking cmp\7f140377
+Node: cmp Options\7f141967
+Node: Invoking diff\7f145871
+Node: diff Options\7f147562
+Node: Invoking diff3\7f157955
+Node: diff3 Options\7f158617
+Node: Invoking patch\7f161866
+Node: patch Options\7f163138
+Node: Invoking sdiff\7f168670
+Node: sdiff Options\7f169876
+Node: Standards conformance\7f173044
+Node: Projects\7f174858
+Node: Shortcomings\7f175578
+Node: Internationalization\7f176698
+Node: Changing Structure\7f177904
+Node: Special Files\7f179051
+Node: Unusual File Names\7f180194
+Node: Timestamp Order\7f180856
+Node: Ignoring Changes\7f181504
+Node: Speedups\7f182289
+Node: Bugs\7f182759
+Node: Copying This Manual\7f183636
+Node: Translations\7f208768
+Node: Index\7f209140
 \1f
 End Tag Table
 
index eed9bdb..e428646 100644 (file)
@@ -14,7 +14,7 @@ and documents the GNU @command{diff}, @command{diff3},
 differences between files and the GNU @command{patch} command for
 using their output to update files.
 
-Copyright @copyright{} 1992--1994, 1998, 2001--2002, 2004, 2006, 2009--2021
+Copyright @copyright{} 1992--1994, 1998, 2001--2002, 2004, 2006, 2009--2023
 Free Software Foundation, Inc.
 
 @quotation
index eaf3da0..cffa98b 100644 (file)
@@ -5,7 +5,8 @@
 @c hence no sectioning command or @node.
 
 @display
-Copyright @copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
+Copyright @copyright{} 2000--2002, 2007--2008, 2022--2023 Free Software
+Foundation, Inc.
 @uref{https://fsf.org/}
 
 Everyone is permitted to copy and distribute verbatim copies
index b0969cc..0fb45e9 100644 (file)
@@ -1,4 +1,4 @@
-@set UPDATED 2 January 2021
-@set UPDATED-MONTH January 2021
-@set EDITION 3.8
-@set VERSION 3.8
+@set UPDATED 2 January 2023
+@set UPDATED-MONTH January 2023
+@set EDITION 3.10
+@set VERSION 3.10
index b0969cc..0fb45e9 100644 (file)
@@ -1,4 +1,4 @@
-@set UPDATED 2 January 2021
-@set UPDATED-MONTH January 2021
-@set EDITION 3.8
-@set VERSION 3.8
+@set UPDATED 2 January 2023
+@set UPDATED-MONTH January 2023
+@set EDITION 3.10
+@set VERSION 3.10
index e077ca7..d651d90 100755 (executable)
--- a/exgettext
+++ b/exgettext
@@ -1,7 +1,7 @@
 #! /bin/sh
 # Wrapper around gettext for programs using the msgid convention.
 
-# Copyright (C) 1998, 2001, 2004, 2009-2013, 2015-2021 Free Software
+# Copyright (C) 1998, 2001, 2004, 2009-2013, 2015-2023 Free Software
 # Foundation, Inc.
 
 # Written by Paul Eggert <eggert@twinsun.com>.
index aa9f987..865b1bd 100644 (file)
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.16d from Makefile.am.
+# Makefile.in generated by automake 1.16i from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2021 Free Software Foundation, Inc.
+# Copyright (C) 1994-2023 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 
 @SET_MAKE@
 
-# Copyright (C) 2002-2021 Free Software Foundation, Inc.
+# Copyright (C) 2002-2023 Free Software Foundation, Inc.
 #
 # This file is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
+# the Free Software Foundation, either version 3 of the License, or
 # (at your option) any later version.
 #
 # This file is distributed in the hope that it will be useful,
@@ -94,6 +94,8 @@ am__make_running_with_option = \
   test $$has_opt = yes
 am__make_dryrun = (target_option=n; $(am__make_running_with_option))
 am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+am__rm_f = rm -f $(am__rm_f_notfound)
+am__rm_rf = rm -rf $(am__rm_f_notfound)
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -112,53 +114,56 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
-TESTS = test-accept$(EXEEXT) test-alloca-opt$(EXEEXT) \
-       test-areadlink$(EXEEXT) test-argmatch$(EXEEXT) \
-       test-arpa_inet$(EXEEXT) test-binary-io.sh test-bind$(EXEEXT) \
+TESTS = test-accept$(EXEEXT) test-alignasof$(EXEEXT) \
+       test-alloca-opt$(EXEEXT) test-areadlink$(EXEEXT) \
+       test-argmatch$(EXEEXT) test-arpa_inet$(EXEEXT) \
+       test-assert$(EXEEXT) test-binary-io.sh test-bind$(EXEEXT) \
        test-bitrotate$(EXEEXT) test-btowc1.sh test-btowc2.sh \
-       test-c-ctype$(EXEEXT) test-c-stack.sh test-c-stack2.sh \
-       test-c-strcase.sh test-calloc-gnu$(EXEEXT) \
-       test-cloexec$(EXEEXT) test-close$(EXEEXT) \
-       test-connect$(EXEEXT) test-ctype$(EXEEXT) \
-       test-dirname$(EXEEXT) test-dup2$(EXEEXT) \
-       test-dynarray$(EXEEXT) test-environ$(EXEEXT) \
-       test-errno$(EXEEXT) test-exclude1.sh test-exclude2.sh \
-       test-exclude3.sh test-exclude4.sh test-exclude5.sh \
-       test-exclude6.sh test-exclude7.sh test-exclude8.sh \
-       test-fcntl-h$(EXEEXT) test-fcntl$(EXEEXT) test-fdopen$(EXEEXT) \
-       test-fgetc$(EXEEXT) test-filenamecat$(EXEEXT) \
-       test-float$(EXEEXT) test-fnmatch-h$(EXEEXT) \
-       test-fnmatch$(EXEEXT) test-fopen-gnu$(EXEEXT) \
-       test-fopen$(EXEEXT) test-fputc$(EXEEXT) test-fread$(EXEEXT) \
-       test-free$(EXEEXT) test-freopen$(EXEEXT) test-fstat$(EXEEXT) \
-       test-ftruncate.sh test-fwrite$(EXEEXT) \
-       test-getcwd-lgpl$(EXEEXT) test-getdtablesize$(EXEEXT) \
-       test-getopt-gnu$(EXEEXT) test-getopt-posix$(EXEEXT) \
-       test-getprogname$(EXEEXT) test-getrandom$(EXEEXT) \
-       test-gettimeofday$(EXEEXT) test-hard-locale$(EXEEXT) \
+       test-btowc3.sh test-c-ctype$(EXEEXT) test-c-stack.sh \
+       test-c-stack2.sh test-c-strcase.sh test-c-strcasestr$(EXEEXT) \
+       test-calloc-gnu$(EXEEXT) test-cloexec$(EXEEXT) \
+       test-close$(EXEEXT) test-connect$(EXEEXT) test-ctype$(EXEEXT) \
+       test-dirname$(EXEEXT) test-dup2$(EXEEXT) test-environ$(EXEEXT) \
+       test-errno$(EXEEXT) test-error.sh test-exclude1.sh \
+       test-exclude2.sh test-exclude3.sh test-exclude4.sh \
+       test-exclude5.sh test-exclude6.sh test-exclude7.sh \
+       test-exclude8.sh test-fcntl-h$(EXEEXT) test-fcntl$(EXEEXT) \
+       test-fdopen$(EXEEXT) test-fgetc$(EXEEXT) \
+       test-filenamecat$(EXEEXT) test-float$(EXEEXT) \
+       test-fnmatch-h$(EXEEXT) test-fnmatch$(EXEEXT) \
+       test-fopen-gnu$(EXEEXT) test-fopen$(EXEEXT) \
+       test-fputc$(EXEEXT) test-fread$(EXEEXT) test-free$(EXEEXT) \
+       test-freopen$(EXEEXT) test-fstat$(EXEEXT) test-ftruncate.sh \
+       test-fwrite$(EXEEXT) test-getcwd-lgpl$(EXEEXT) \
+       test-getdtablesize$(EXEEXT) test-getopt-gnu$(EXEEXT) \
+       test-getopt-posix$(EXEEXT) test-getprogname$(EXEEXT) \
+       test-getrandom$(EXEEXT) test-gettimeofday$(EXEEXT) \
+       test-dynarray$(EXEEXT) test-hard-locale$(EXEEXT) \
        test-hash$(EXEEXT) test-iconv-h$(EXEEXT) test-iconv$(EXEEXT) \
        test-ignore-value$(EXEEXT) test-inet_pton$(EXEEXT) \
        test-intprops$(EXEEXT) test-inttostr$(EXEEXT) \
        test-inttypes$(EXEEXT) test-ioctl$(EXEEXT) \
        test-isblank$(EXEEXT) test-iswblank$(EXEEXT) test-iswdigit.sh \
        test-iswxdigit.sh test-langinfo$(EXEEXT) \
-       test-limits-h$(EXEEXT) test-listen$(EXEEXT) \
-       test-locale$(EXEEXT) test-localeconv$(EXEEXT) \
-       test-lstat$(EXEEXT) test-malloc-gnu$(EXEEXT) \
-       test-malloca$(EXEEXT) test-mbrtowc1.sh test-mbrtowc2.sh \
-       test-mbrtowc3.sh test-mbrtowc4.sh test-mbrtowc5.sh \
-       test-mbrtowc-w32-1.sh test-mbrtowc-w32-2.sh \
-       test-mbrtowc-w32-3.sh test-mbrtowc-w32-4.sh \
-       test-mbrtowc-w32-5.sh test-mbrtowc-w32-6.sh \
-       test-mbrtowc-w32-7.sh test-mbscasecmp.sh test-mbsinit.sh \
-       test-mbsrtowcs1.sh test-mbsrtowcs2.sh test-mbsrtowcs3.sh \
-       test-mbsrtowcs4.sh test-mbsstr1$(EXEEXT) test-mbsstr2.sh \
-       test-mbsstr3.sh test-memchr$(EXEEXT) test-mkdir$(EXEEXT) \
+       test-largefile$(EXEEXT) test-limits-h$(EXEEXT) \
+       test-listen$(EXEEXT) test-locale$(EXEEXT) \
+       test-localeconv$(EXEEXT) test-lstat$(EXEEXT) \
+       test-malloc-gnu$(EXEEXT) test-malloca$(EXEEXT) \
+       test-mbrtowc1.sh test-mbrtowc2.sh test-mbrtowc3.sh \
+       test-mbrtowc4.sh test-mbrtowc5.sh test-mbrtowc-w32-1.sh \
+       test-mbrtowc-w32-2.sh test-mbrtowc-w32-3.sh \
+       test-mbrtowc-w32-4.sh test-mbrtowc-w32-5.sh \
+       test-mbrtowc-w32-6.sh test-mbrtowc-w32-7.sh test-mbscasecmp.sh \
+       test-mbsinit.sh test-mbsrtowcs1.sh test-mbsrtowcs2.sh \
+       test-mbsrtowcs3.sh test-mbsrtowcs4.sh test-mbsrtowcs5.sh \
+       test-mbsstr1$(EXEEXT) test-mbsstr2.sh test-mbsstr3.sh \
+       test-memchr$(EXEEXT) test-mkdir$(EXEEXT) \
        test-nanosleep$(EXEEXT) test-netinet_in$(EXEEXT) \
-       test-nl_langinfo.sh test-nl_langinfo-mt$(EXEEXT) \
-       test-nstrftime$(EXEEXT) test-open$(EXEEXT) \
-       test-pathmax$(EXEEXT) test-perror.sh test-perror2$(EXEEXT) \
-       test-pipe$(EXEEXT) test-pthread$(EXEEXT) \
+       test-nl_langinfo1.sh test-nl_langinfo2.sh \
+       test-nl_langinfo-mt$(EXEEXT) test-nstrftime$(EXEEXT) \
+       test-nullptr$(EXEEXT) test-open$(EXEEXT) test-pathmax$(EXEEXT) \
+       test-perror.sh test-perror2$(EXEEXT) test-pipe$(EXEEXT) \
+       test-pselect$(EXEEXT) test-pthread$(EXEEXT) \
        test-pthread-thread$(EXEEXT) test-pthread_sigmask1$(EXEEXT) \
        test-pthread_sigmask2$(EXEEXT) test-quotearg-simple$(EXEEXT) \
        test-raise$(EXEEXT) test-rawmemchr$(EXEEXT) \
@@ -169,15 +174,14 @@ TESTS = test-accept$(EXEEXT) test-alloca-opt$(EXEEXT) \
        test-setlocale_null$(EXEEXT) \
        test-setlocale_null-mt-one$(EXEEXT) \
        test-setlocale_null-mt-all$(EXEEXT) test-setsockopt$(EXEEXT) \
-       test-sh-quote$(EXEEXT) test-sigaction$(EXEEXT) \
-       test-signal-h$(EXEEXT) test-sigprocmask$(EXEEXT) \
-       test-sigsegv-catch-segv1$(EXEEXT) \
+       test-sh-quote$(EXEEXT) test-signal-h$(EXEEXT) \
+       test-sigprocmask$(EXEEXT) test-sigsegv-catch-segv1$(EXEEXT) \
        test-sigsegv-catch-segv2$(EXEEXT) \
        test-sigsegv-catch-stackoverflow1$(EXEEXT) \
        test-sigsegv-catch-stackoverflow2$(EXEEXT) test-sleep$(EXEEXT) \
        test-snprintf$(EXEEXT) test-sockets$(EXEEXT) \
        test-stat$(EXEEXT) test-stat-time$(EXEEXT) \
-       test-stdalign$(EXEEXT) test-stdbool$(EXEEXT) \
+       test-stdbool$(EXEEXT) test-stdckdint$(EXEEXT) \
        test-stddef$(EXEEXT) test-stdint$(EXEEXT) test-stdio$(EXEEXT) \
        test-stdlib$(EXEEXT) test-strerror$(EXEEXT) \
        test-strerror_r$(EXEEXT) test-striconv$(EXEEXT) \
@@ -189,34 +193,35 @@ TESTS = test-accept$(EXEEXT) test-alloca-opt$(EXEEXT) \
        test-sys_stat$(EXEEXT) test-sys_time$(EXEEXT) \
        test-sys_types$(EXEEXT) test-sys_uio$(EXEEXT) \
        test-sys_wait$(EXEEXT) test-init.sh test-thread_self$(EXEEXT) \
-       test-thread_create$(EXEEXT) test-time$(EXEEXT) \
-       test-timespec$(EXEEXT) test-unistd$(EXEEXT) \
+       test-thread_create$(EXEEXT) test-time-h$(EXEEXT) \
+       test-time$(EXEEXT) test-timespec$(EXEEXT) test-trim1.sh \
+       test-trim2.sh test-trim3.sh test-unistd$(EXEEXT) \
        test-u8-mbtoucr$(EXEEXT) test-u8-uctomb$(EXEEXT) \
        test-uc_width$(EXEEXT) uniwidth/test-uc_width2.sh \
        test-unsetenv$(EXEEXT) test-update-copyright.sh \
-       test-vasnprintf$(EXEEXT) test-vasprintf$(EXEEXT) \
-       test-vc-list-files-git.sh test-vc-list-files-cvs.sh \
-       test-verify$(EXEEXT) test-verify.sh test-version-etc.sh \
-       test-wchar$(EXEEXT) test-wcrtomb.sh test-wcrtomb-w32-1.sh \
-       test-wcrtomb-w32-2.sh test-wcrtomb-w32-3.sh \
-       test-wcrtomb-w32-4.sh test-wcrtomb-w32-5.sh \
-       test-wcrtomb-w32-6.sh test-wcrtomb-w32-7.sh \
-       test-wctype-h$(EXEEXT) test-wcwidth$(EXEEXT) \
-       test-xalloc-die.sh test-xstdopen.sh test-xstrtoimax.sh \
-       test-xstrtol.sh test-xvasprintf$(EXEEXT)
+       test-vasnprintf$(EXEEXT) test-vc-list-files-git.sh \
+       test-vc-list-files-cvs.sh test-verify$(EXEEXT) test-verify.sh \
+       test-version-etc.sh test-wchar$(EXEEXT) test-wcrtomb.sh \
+       test-wcrtomb-w32-1.sh test-wcrtomb-w32-2.sh \
+       test-wcrtomb-w32-3.sh test-wcrtomb-w32-4.sh \
+       test-wcrtomb-w32-5.sh test-wcrtomb-w32-6.sh \
+       test-wcrtomb-w32-7.sh test-wctype-h$(EXEEXT) \
+       test-wcwidth$(EXEEXT) test-xalloc-die.sh test-xstdopen.sh \
+       test-xstrtoimax.sh test-xstrtol.sh test-year2038$(EXEEXT)
 XFAIL_TESTS =
 noinst_PROGRAMS = current-locale$(EXEEXT) test-localcharset$(EXEEXT)
-check_PROGRAMS = test-accept$(EXEEXT) test-alloca-opt$(EXEEXT) \
-       test-areadlink$(EXEEXT) test-argmatch$(EXEEXT) \
-       test-arpa_inet$(EXEEXT) test-binary-io$(EXEEXT) \
+check_PROGRAMS = test-accept$(EXEEXT) test-alignasof$(EXEEXT) \
+       test-alloca-opt$(EXEEXT) test-areadlink$(EXEEXT) \
+       test-argmatch$(EXEEXT) test-arpa_inet$(EXEEXT) \
+       test-assert$(EXEEXT) test-binary-io$(EXEEXT) \
        test-bind$(EXEEXT) test-bitrotate$(EXEEXT) test-btowc$(EXEEXT) \
        test-c-ctype$(EXEEXT) test-c-stack$(EXEEXT) \
        test-c-strcasecmp$(EXEEXT) test-c-strncasecmp$(EXEEXT) \
-       test-calloc-gnu$(EXEEXT) test-cloexec$(EXEEXT) \
-       test-close$(EXEEXT) test-connect$(EXEEXT) test-ctype$(EXEEXT) \
-       test-dirname$(EXEEXT) test-dup2$(EXEEXT) \
-       test-dynarray$(EXEEXT) test-environ$(EXEEXT) \
-       test-errno$(EXEEXT) test-exclude$(EXEEXT) \
+       test-c-strcasestr$(EXEEXT) test-calloc-gnu$(EXEEXT) \
+       test-cloexec$(EXEEXT) test-close$(EXEEXT) \
+       test-connect$(EXEEXT) test-ctype$(EXEEXT) \
+       test-dirname$(EXEEXT) test-dup2$(EXEEXT) test-environ$(EXEEXT) \
+       test-errno$(EXEEXT) test-error$(EXEEXT) test-exclude$(EXEEXT) \
        test-fcntl-h$(EXEEXT) test-fcntl$(EXEEXT) test-fdopen$(EXEEXT) \
        test-fgetc$(EXEEXT) test-filenamecat$(EXEEXT) \
        test-float$(EXEEXT) test-fnmatch-h$(EXEEXT) \
@@ -227,27 +232,29 @@ check_PROGRAMS = test-accept$(EXEEXT) test-alloca-opt$(EXEEXT) \
        test-getcwd-lgpl$(EXEEXT) test-getdtablesize$(EXEEXT) \
        test-getopt-gnu$(EXEEXT) test-getopt-posix$(EXEEXT) \
        test-getprogname$(EXEEXT) test-getrandom$(EXEEXT) \
-       test-gettimeofday$(EXEEXT) test-hard-locale$(EXEEXT) \
-       test-hash$(EXEEXT) test-iconv-h$(EXEEXT) test-iconv$(EXEEXT) \
+       test-gettimeofday$(EXEEXT) test-dynarray$(EXEEXT) \
+       test-hard-locale$(EXEEXT) test-hash$(EXEEXT) \
+       test-iconv-h$(EXEEXT) test-iconv$(EXEEXT) \
        test-ignore-value$(EXEEXT) test-inet_pton$(EXEEXT) \
        test-intprops$(EXEEXT) test-inttostr$(EXEEXT) \
        test-inttypes$(EXEEXT) test-ioctl$(EXEEXT) \
        test-isblank$(EXEEXT) test-iswblank$(EXEEXT) \
        test-iswdigit$(EXEEXT) test-iswxdigit$(EXEEXT) \
-       test-langinfo$(EXEEXT) test-limits-h$(EXEEXT) \
-       test-listen$(EXEEXT) test-locale$(EXEEXT) \
-       test-localeconv$(EXEEXT) test-lstat$(EXEEXT) \
-       test-malloc-gnu$(EXEEXT) test-malloca$(EXEEXT) \
-       test-mbrtowc$(EXEEXT) test-mbrtowc-w32$(EXEEXT) \
-       test-mbscasecmp$(EXEEXT) test-mbsinit$(EXEEXT) \
-       test-mbsrtowcs$(EXEEXT) test-mbsstr1$(EXEEXT) \
-       test-mbsstr2$(EXEEXT) test-mbsstr3$(EXEEXT) \
-       test-memchr$(EXEEXT) test-mkdir$(EXEEXT) \
+       test-langinfo$(EXEEXT) test-largefile$(EXEEXT) \
+       test-limits-h$(EXEEXT) test-listen$(EXEEXT) \
+       test-locale$(EXEEXT) test-localeconv$(EXEEXT) \
+       test-lstat$(EXEEXT) test-malloc-gnu$(EXEEXT) \
+       test-malloca$(EXEEXT) test-mbrtowc$(EXEEXT) \
+       test-mbrtowc-w32$(EXEEXT) test-mbscasecmp$(EXEEXT) \
+       test-mbsinit$(EXEEXT) test-mbsrtowcs$(EXEEXT) \
+       test-mbsstr1$(EXEEXT) test-mbsstr2$(EXEEXT) \
+       test-mbsstr3$(EXEEXT) test-memchr$(EXEEXT) test-mkdir$(EXEEXT) \
        test-nanosleep$(EXEEXT) test-netinet_in$(EXEEXT) \
-       test-nl_langinfo$(EXEEXT) test-nl_langinfo-mt$(EXEEXT) \
-       test-nstrftime$(EXEEXT) test-open$(EXEEXT) \
-       test-pathmax$(EXEEXT) test-perror$(EXEEXT) \
-       test-perror2$(EXEEXT) test-pipe$(EXEEXT) test-pthread$(EXEEXT) \
+       test-nl_langinfo1$(EXEEXT) test-nl_langinfo2$(EXEEXT) \
+       test-nl_langinfo-mt$(EXEEXT) test-nstrftime$(EXEEXT) \
+       test-nullptr$(EXEEXT) test-open$(EXEEXT) test-pathmax$(EXEEXT) \
+       test-perror$(EXEEXT) test-perror2$(EXEEXT) test-pipe$(EXEEXT) \
+       test-pselect$(EXEEXT) test-pthread$(EXEEXT) \
        test-pthread-thread$(EXEEXT) test-pthread_sigmask1$(EXEEXT) \
        test-pthread_sigmask2$(EXEEXT) test-quotearg-simple$(EXEEXT) \
        test-raise$(EXEEXT) test-rawmemchr$(EXEEXT) \
@@ -258,15 +265,14 @@ check_PROGRAMS = test-accept$(EXEEXT) test-alloca-opt$(EXEEXT) \
        test-setenv$(EXEEXT) test-setlocale_null$(EXEEXT) \
        test-setlocale_null-mt-one$(EXEEXT) \
        test-setlocale_null-mt-all$(EXEEXT) test-setsockopt$(EXEEXT) \
-       test-sh-quote$(EXEEXT) test-sigaction$(EXEEXT) \
-       test-signal-h$(EXEEXT) test-sigprocmask$(EXEEXT) \
-       test-sigsegv-catch-segv1$(EXEEXT) \
+       test-sh-quote$(EXEEXT) test-signal-h$(EXEEXT) \
+       test-sigprocmask$(EXEEXT) test-sigsegv-catch-segv1$(EXEEXT) \
        test-sigsegv-catch-segv2$(EXEEXT) \
        test-sigsegv-catch-stackoverflow1$(EXEEXT) \
        test-sigsegv-catch-stackoverflow2$(EXEEXT) test-sleep$(EXEEXT) \
        test-snprintf$(EXEEXT) test-sockets$(EXEEXT) \
        test-stat$(EXEEXT) test-stat-time$(EXEEXT) \
-       test-stdalign$(EXEEXT) test-stdbool$(EXEEXT) \
+       test-stdbool$(EXEEXT) test-stdckdint$(EXEEXT) \
        test-stddef$(EXEEXT) test-stdint$(EXEEXT) test-stdio$(EXEEXT) \
        test-stdlib$(EXEEXT) test-strerror$(EXEEXT) \
        test-strerror_r$(EXEEXT) test-striconv$(EXEEXT) \
@@ -278,38 +284,70 @@ check_PROGRAMS = test-accept$(EXEEXT) test-alloca-opt$(EXEEXT) \
        test-sys_stat$(EXEEXT) test-sys_time$(EXEEXT) \
        test-sys_types$(EXEEXT) test-sys_uio$(EXEEXT) \
        test-sys_wait$(EXEEXT) test-thread_self$(EXEEXT) \
-       test-thread_create$(EXEEXT) test-time$(EXEEXT) \
-       test-timespec$(EXEEXT) test-unistd$(EXEEXT) \
-       test-u8-mbtoucr$(EXEEXT) test-u8-uctomb$(EXEEXT) \
-       test-uc_width$(EXEEXT) test-uc_width2$(EXEEXT) \
-       test-unsetenv$(EXEEXT) test-vasnprintf$(EXEEXT) \
-       test-vasprintf$(EXEEXT) test-verify$(EXEEXT) \
+       test-thread_create$(EXEEXT) test-time-h$(EXEEXT) \
+       test-time$(EXEEXT) test-timespec$(EXEEXT) test-trim$(EXEEXT) \
+       test-unistd$(EXEEXT) test-u8-mbtoucr$(EXEEXT) \
+       test-u8-uctomb$(EXEEXT) test-uc_width$(EXEEXT) \
+       test-uc_width2$(EXEEXT) test-unsetenv$(EXEEXT) \
+       test-vasnprintf$(EXEEXT) test-verify$(EXEEXT) \
        test-version-etc$(EXEEXT) test-wchar$(EXEEXT) \
        test-wcrtomb$(EXEEXT) test-wcrtomb-w32$(EXEEXT) \
        test-wctype-h$(EXEEXT) test-wcwidth$(EXEEXT) \
        test-xalloc-die$(EXEEXT) test-xstdopen$(EXEEXT) \
        test-xstrtoimax$(EXEEXT) test-xstrtol$(EXEEXT) \
-       test-xstrtoul$(EXEEXT) test-xvasprintf$(EXEEXT)
+       test-xstrtoul$(EXEEXT) test-year2038$(EXEEXT)
 EXTRA_PROGRAMS = test-verify-try$(EXEEXT)
+@GL_COND_OBJ_ACCEPT_TRUE@am__append_1 = accept.c
+@GL_COND_OBJ_ATOLL_TRUE@am__append_2 = atoll.c
+@GL_COND_OBJ_BIND_TRUE@am__append_3 = bind.c
+@GL_COND_OBJ_CONNECT_TRUE@am__append_4 = connect.c
+@GL_COND_OBJ_FDOPEN_TRUE@am__append_5 = fdopen.c
+@GL_COND_OBJ_FLOAT_TRUE@am__append_6 = float.c
+@GL_COND_OBJ_ITOLD_TRUE@am__append_7 = itold.c
+@GL_COND_OBJ_FTRUNCATE_TRUE@am__append_8 = ftruncate.c
+@GL_COND_OBJ_GETCWD_LGPL_TRUE@am__append_9 = getcwd-lgpl.c
+@GL_COND_OBJ_INET_PTON_TRUE@am__append_10 = inet_pton.c
+@GL_COND_OBJ_IOCTL_TRUE@am__append_11 = ioctl.c
+@GL_COND_OBJ_LISTEN_TRUE@am__append_12 = listen.c
+@GL_COND_OBJ_NANOSLEEP_TRUE@am__append_13 = nanosleep.c
+@GL_COND_OBJ_PERROR_TRUE@am__append_14 = perror.c
+@GL_COND_OBJ_PIPE_TRUE@am__append_15 = pipe.c
+@GL_COND_OBJ_PSELECT_TRUE@am__append_16 = pselect.c
+@GL_COND_OBJ_PTHREAD_THREAD_TRUE@am__append_17 = pthread-thread.c
+@GL_COND_OBJ_PTHREAD_SIGMASK_TRUE@am__append_18 = pthread_sigmask.c
+@GL_COND_OBJ_PUTENV_TRUE@am__append_19 = putenv.c
+@GL_COND_OBJ_SELECT_TRUE@am__append_20 = select.c
+@GL_COND_OBJ_SETSOCKOPT_TRUE@am__append_21 = setsockopt.c
+@GL_COND_OBJ_SLEEP_TRUE@am__append_22 = sleep.c
+@GL_COND_OBJ_SOCKET_TRUE@am__append_23 = socket.c
+@GL_COND_OBJ_SYMLINK_TRUE@am__append_24 = symlink.c
+@GL_COND_OBJ_TIME_TRUE@am__append_25 = time.c
+@GL_COND_OBJ_WCTOB_TRUE@am__append_26 = wctob.c
+@GL_COND_OBJ_WCTOMB_TRUE@am__append_27 = wctomb.c
+@GL_COND_OBJ_WINDOWS_THREAD_TRUE@am__append_28 = windows-thread.c
+@GL_COND_OBJ_WINDOWS_TLS_TRUE@am__append_29 = windows-tls.c
 subdir = gnulib-tests
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/__inline.m4 \
        $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \
        $(top_srcdir)/m4/arpa_inet_h.m4 \
-       $(top_srcdir)/m4/asm-underscore.m4 $(top_srcdir)/m4/atoll.m4 \
+       $(top_srcdir)/m4/asm-underscore.m4 \
+       $(top_srcdir)/m4/assert_h.m4 $(top_srcdir)/m4/atoll.m4 \
        $(top_srcdir)/m4/btowc.m4 $(top_srcdir)/m4/builtin-expect.m4 \
-       $(top_srcdir)/m4/c-stack.m4 $(top_srcdir)/m4/calloc.m4 \
-       $(top_srcdir)/m4/clock_time.m4 $(top_srcdir)/m4/close.m4 \
-       $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
-       $(top_srcdir)/m4/ctype_h.m4 \
+       $(top_srcdir)/m4/c-bool.m4 $(top_srcdir)/m4/c-stack.m4 \
+       $(top_srcdir)/m4/calloc.m4 $(top_srcdir)/m4/clock_time.m4 \
+       $(top_srcdir)/m4/close.m4 $(top_srcdir)/m4/codeset.m4 \
+       $(top_srcdir)/m4/config-h.m4 $(top_srcdir)/m4/ctype_h.m4 \
        $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \
        $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \
        $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \
-       $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \
-       $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \
-       $(top_srcdir)/m4/fcntl.m4 $(top_srcdir)/m4/fcntl_h.m4 \
-       $(top_srcdir)/m4/fdopen.m4 $(top_srcdir)/m4/filenamecat.m4 \
+       $(top_srcdir)/m4/error_h.m4 $(top_srcdir)/m4/exponentd.m4 \
+       $(top_srcdir)/m4/extensions.m4 \
+       $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fclose.m4 \
+       $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \
+       $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopen.m4 \
+       $(top_srcdir)/m4/fflush.m4 $(top_srcdir)/m4/filenamecat.m4 \
        $(top_srcdir)/m4/flexmember.m4 $(top_srcdir)/m4/float_h.m4 \
        $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fnmatch_h.m4 \
        $(top_srcdir)/m4/fopen.m4 $(top_srcdir)/m4/fpieee.m4 \
@@ -325,15 +363,16 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \
        $(top_srcdir)/m4/iconv_h.m4 $(top_srcdir)/m4/iconv_open.m4 \
        $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inet_pton.m4 \
-       $(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/intlmacosx.m4 \
-       $(top_srcdir)/m4/intmax_t.m4 $(top_srcdir)/m4/inttostr.m4 \
-       $(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-       $(top_srcdir)/m4/ioctl.m4 $(top_srcdir)/m4/isblank.m4 \
-       $(top_srcdir)/m4/iswblank.m4 $(top_srcdir)/m4/iswdigit.m4 \
-       $(top_srcdir)/m4/iswxdigit.m4 $(top_srcdir)/m4/langinfo_h.m4 \
-       $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lib-ld.m4 \
-       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-       $(top_srcdir)/m4/libsigsegv.m4 \
+       $(top_srcdir)/m4/inline.m4 \
+       $(top_srcdir)/m4/intl-thread-locale.m4 \
+       $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \
+       $(top_srcdir)/m4/inttostr.m4 $(top_srcdir)/m4/inttypes.m4 \
+       $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/ioctl.m4 \
+       $(top_srcdir)/m4/isblank.m4 $(top_srcdir)/m4/iswblank.m4 \
+       $(top_srcdir)/m4/iswdigit.m4 $(top_srcdir)/m4/iswxdigit.m4 \
+       $(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/largefile.m4 \
+       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libsigsegv.m4 \
        $(top_srcdir)/m4/libunistring-base.m4 \
        $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/localcharset.m4 \
        $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \
@@ -355,11 +394,13 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/netinet_in_h.m4 \
        $(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \
        $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/nstrftime.m4 \
-       $(top_srcdir)/m4/off_t.m4 $(top_srcdir)/m4/open-cloexec.m4 \
+       $(top_srcdir)/m4/nullptr.m4 $(top_srcdir)/m4/off_t.m4 \
+       $(top_srcdir)/m4/open-cloexec.m4 \
        $(top_srcdir)/m4/open-slash.m4 $(top_srcdir)/m4/open.m4 \
-       $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/perror.m4 \
-       $(top_srcdir)/m4/pipe.m4 $(top_srcdir)/m4/po.m4 \
-       $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \
+       $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/perl.m4 \
+       $(top_srcdir)/m4/perror.m4 $(top_srcdir)/m4/pipe.m4 \
+       $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf.m4 \
+       $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/pselect.m4 \
        $(top_srcdir)/m4/pthread-thread.m4 \
        $(top_srcdir)/m4/pthread_h.m4 \
        $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \
@@ -370,9 +411,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/reallocarray.m4 $(top_srcdir)/m4/regex.m4 \
        $(top_srcdir)/m4/sched_h.m4 $(top_srcdir)/m4/select.m4 \
        $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/setlocale_null.m4 \
-       $(top_srcdir)/m4/sigaction.m4 $(top_srcdir)/m4/sigaltstack.m4 \
-       $(top_srcdir)/m4/signal_h.m4 \
-       $(top_srcdir)/m4/signalblocking.m4 \
+       $(top_srcdir)/m4/sigaltstack.m4 $(top_srcdir)/m4/signal_h.m4 \
+       $(top_srcdir)/m4/signalblocking.m4 $(top_srcdir)/m4/sigsegv.m4 \
        $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \
        $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \
        $(top_srcdir)/m4/sockets.m4 $(top_srcdir)/m4/socklen.m4 \
@@ -380,9 +420,9 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/stack-direction.m4 \
        $(top_srcdir)/m4/stat-time.m4 $(top_srcdir)/m4/stat.m4 \
        $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdarg.m4 \
-       $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \
-       $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \
-       $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \
+       $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \
+       $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \
+       $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/stpcpy.m4 \
        $(top_srcdir)/m4/strcase.m4 $(top_srcdir)/m4/strerror.m4 \
        $(top_srcdir)/m4/strerror_r.m4 $(top_srcdir)/m4/string_h.m4 \
        $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strnlen.m4 \
@@ -396,12 +436,12 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/sys_uio_h.m4 \
        $(top_srcdir)/m4/sys_wait_h.m4 $(top_srcdir)/m4/tempname.m4 \
        $(top_srcdir)/m4/thread.m4 $(top_srcdir)/m4/threadlib.m4 \
-       $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/time_r.m4 \
-       $(top_srcdir)/m4/time_rz.m4 $(top_srcdir)/m4/timegm.m4 \
-       $(top_srcdir)/m4/timespec.m4 $(top_srcdir)/m4/tm_gmtoff.m4 \
-       $(top_srcdir)/m4/tzset.m4 $(top_srcdir)/m4/unistd_h.m4 \
-       $(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/vasnprintf.m4 \
-       $(top_srcdir)/m4/vasprintf.m4 $(top_srcdir)/m4/version-etc.m4 \
+       $(top_srcdir)/m4/time.m4 $(top_srcdir)/m4/time_h.m4 \
+       $(top_srcdir)/m4/time_r.m4 $(top_srcdir)/m4/time_rz.m4 \
+       $(top_srcdir)/m4/timegm.m4 $(top_srcdir)/m4/timespec.m4 \
+       $(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/tzset.m4 \
+       $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/unlocked-io.m4 \
+       $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/version-etc.m4 \
        $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/warn-on-use.m4 \
        $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/m4/wchar_h.m4 \
        $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wcrtomb.m4 \
@@ -410,7 +450,6 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/wmemchr.m4 \
        $(top_srcdir)/m4/wmempcpy.m4 $(top_srcdir)/m4/xalloc.m4 \
        $(top_srcdir)/m4/xsize.m4 $(top_srcdir)/m4/xstrtol.m4 \
-       $(top_srcdir)/m4/xvasprintf.m4 $(top_srcdir)/m4/year2038.m4 \
        $(top_srcdir)/m4/zzgnulib.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
@@ -427,12 +466,64 @@ am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
 am__v_AR_0 = @echo "  AR      " $@;
 am__v_AR_1 = 
 libtests_a_AR = $(AR) $(ARFLAGS)
+libtests_a_RANLIB = $(RANLIB)
 am__DEPENDENCIES_1 =
+am__libtests_a_SOURCES_DIST = accept.c atoll.c bind.c c-strcasestr.h \
+       c-strcasestr.c connect.c dtotimespec.c fdopen.c float.c \
+       itold.c ftruncate.c getcwd-lgpl.c hash-pjw.h hash-pjw.c \
+       inet_pton.c ioctl.c listen.c nanosleep.c perror.c pipe.c \
+       pselect.c pthread-thread.c pthread_sigmask.c putenv.c select.c \
+       setsockopt.c size_max.h sleep.c socket.c sockets.h sockets.c \
+       symlink.c sys_socket.c glthread/thread.h glthread/thread.c \
+       time.c timespec-add.c timespec-sub.c wctob.c wctomb.c \
+       windows-thread.c windows-tls.c xsize.h xsize.c xstrtol-error.c
+@GL_COND_OBJ_ACCEPT_TRUE@am__objects_1 = accept.$(OBJEXT)
+@GL_COND_OBJ_ATOLL_TRUE@am__objects_2 = atoll.$(OBJEXT)
+@GL_COND_OBJ_BIND_TRUE@am__objects_3 = bind.$(OBJEXT)
+@GL_COND_OBJ_CONNECT_TRUE@am__objects_4 = connect.$(OBJEXT)
+@GL_COND_OBJ_FDOPEN_TRUE@am__objects_5 = fdopen.$(OBJEXT)
+@GL_COND_OBJ_FLOAT_TRUE@am__objects_6 = float.$(OBJEXT)
+@GL_COND_OBJ_ITOLD_TRUE@am__objects_7 = itold.$(OBJEXT)
+@GL_COND_OBJ_FTRUNCATE_TRUE@am__objects_8 = ftruncate.$(OBJEXT)
+@GL_COND_OBJ_GETCWD_LGPL_TRUE@am__objects_9 = getcwd-lgpl.$(OBJEXT)
+@GL_COND_OBJ_INET_PTON_TRUE@am__objects_10 = inet_pton.$(OBJEXT)
+@GL_COND_OBJ_IOCTL_TRUE@am__objects_11 = ioctl.$(OBJEXT)
+@GL_COND_OBJ_LISTEN_TRUE@am__objects_12 = listen.$(OBJEXT)
+@GL_COND_OBJ_NANOSLEEP_TRUE@am__objects_13 = nanosleep.$(OBJEXT)
+@GL_COND_OBJ_PERROR_TRUE@am__objects_14 = perror.$(OBJEXT)
+@GL_COND_OBJ_PIPE_TRUE@am__objects_15 = pipe.$(OBJEXT)
+@GL_COND_OBJ_PSELECT_TRUE@am__objects_16 = pselect.$(OBJEXT)
+@GL_COND_OBJ_PTHREAD_THREAD_TRUE@am__objects_17 =  \
+@GL_COND_OBJ_PTHREAD_THREAD_TRUE@      pthread-thread.$(OBJEXT)
+@GL_COND_OBJ_PTHREAD_SIGMASK_TRUE@am__objects_18 =  \
+@GL_COND_OBJ_PTHREAD_SIGMASK_TRUE@     pthread_sigmask.$(OBJEXT)
+@GL_COND_OBJ_PUTENV_TRUE@am__objects_19 = putenv.$(OBJEXT)
+@GL_COND_OBJ_SELECT_TRUE@am__objects_20 = select.$(OBJEXT)
+@GL_COND_OBJ_SETSOCKOPT_TRUE@am__objects_21 = setsockopt.$(OBJEXT)
+@GL_COND_OBJ_SLEEP_TRUE@am__objects_22 = sleep.$(OBJEXT)
+@GL_COND_OBJ_SOCKET_TRUE@am__objects_23 = socket.$(OBJEXT)
+@GL_COND_OBJ_SYMLINK_TRUE@am__objects_24 = symlink.$(OBJEXT)
 am__dirstamp = $(am__leading_dot)dirstamp
-am_libtests_a_OBJECTS = dtotimespec.$(OBJEXT) hash-pjw.$(OBJEXT) \
-       sig-handler.$(OBJEXT) sockets.$(OBJEXT) sys_socket.$(OBJEXT) \
-       glthread/thread.$(OBJEXT) timespec-add.$(OBJEXT) \
-       timespec-sub.$(OBJEXT) xstrtol-error.$(OBJEXT)
+@GL_COND_OBJ_TIME_TRUE@am__objects_25 = time.$(OBJEXT)
+@GL_COND_OBJ_WCTOB_TRUE@am__objects_26 = wctob.$(OBJEXT)
+@GL_COND_OBJ_WCTOMB_TRUE@am__objects_27 = wctomb.$(OBJEXT)
+@GL_COND_OBJ_WINDOWS_THREAD_TRUE@am__objects_28 =  \
+@GL_COND_OBJ_WINDOWS_THREAD_TRUE@      windows-thread.$(OBJEXT)
+@GL_COND_OBJ_WINDOWS_TLS_TRUE@am__objects_29 = windows-tls.$(OBJEXT)
+am_libtests_a_OBJECTS = $(am__objects_1) $(am__objects_2) \
+       $(am__objects_3) c-strcasestr.$(OBJEXT) $(am__objects_4) \
+       dtotimespec.$(OBJEXT) $(am__objects_5) $(am__objects_6) \
+       $(am__objects_7) $(am__objects_8) $(am__objects_9) \
+       hash-pjw.$(OBJEXT) $(am__objects_10) $(am__objects_11) \
+       $(am__objects_12) $(am__objects_13) $(am__objects_14) \
+       $(am__objects_15) $(am__objects_16) $(am__objects_17) \
+       $(am__objects_18) $(am__objects_19) $(am__objects_20) \
+       $(am__objects_21) $(am__objects_22) $(am__objects_23) \
+       sockets.$(OBJEXT) $(am__objects_24) sys_socket.$(OBJEXT) \
+       glthread/thread.$(OBJEXT) $(am__objects_25) \
+       timespec-add.$(OBJEXT) timespec-sub.$(OBJEXT) \
+       $(am__objects_26) $(am__objects_27) $(am__objects_28) \
+       $(am__objects_29) xsize.$(OBJEXT) xstrtol-error.$(OBJEXT)
 libtests_a_OBJECTS = $(am_libtests_a_OBJECTS)
 am_current_locale_OBJECTS = locale.$(OBJEXT)
 current_locale_OBJECTS = $(am_current_locale_OBJECTS)
@@ -445,6 +536,12 @@ test_accept_OBJECTS = test-accept.$(OBJEXT)
 am__DEPENDENCIES_2 = libtests.a ../lib/libdiffutils.a libtests.a \
        ../lib/libdiffutils.a libtests.a $(am__DEPENDENCIES_1)
 test_accept_DEPENDENCIES = $(am__DEPENDENCIES_2)
+test_alignasof_SOURCES = test-alignasof.c
+test_alignasof_OBJECTS = test-alignasof.$(OBJEXT)
+test_alignasof_LDADD = $(LDADD)
+test_alignasof_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
+       libtests.a ../lib/libdiffutils.a libtests.a \
+       $(am__DEPENDENCIES_1)
 test_alloca_opt_SOURCES = test-alloca-opt.c
 test_alloca_opt_OBJECTS = test-alloca-opt.$(OBJEXT)
 test_alloca_opt_LDADD = $(LDADD)
@@ -467,6 +564,11 @@ test_arpa_inet_LDADD = $(LDADD)
 test_arpa_inet_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
        libtests.a ../lib/libdiffutils.a libtests.a \
        $(am__DEPENDENCIES_1)
+test_assert_SOURCES = test-assert.c
+test_assert_OBJECTS = test-assert.$(OBJEXT)
+test_assert_LDADD = $(LDADD)
+test_assert_DEPENDENCIES = libtests.a ../lib/libdiffutils.a libtests.a \
+       ../lib/libdiffutils.a libtests.a $(am__DEPENDENCIES_1)
 test_binary_io_SOURCES = test-binary-io.c
 test_binary_io_OBJECTS = test-binary-io.$(OBJEXT)
 test_binary_io_LDADD = $(LDADD)
@@ -495,6 +597,12 @@ test_c_stack_DEPENDENCIES = $(am__DEPENDENCIES_2) \
 test_c_strcasecmp_SOURCES = test-c-strcasecmp.c
 test_c_strcasecmp_OBJECTS = test-c-strcasecmp.$(OBJEXT)
 test_c_strcasecmp_DEPENDENCIES = $(am__DEPENDENCIES_2)
+test_c_strcasestr_SOURCES = test-c-strcasestr.c
+test_c_strcasestr_OBJECTS = test-c-strcasestr.$(OBJEXT)
+test_c_strcasestr_LDADD = $(LDADD)
+test_c_strcasestr_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
+       libtests.a ../lib/libdiffutils.a libtests.a \
+       $(am__DEPENDENCIES_1)
 test_c_strncasecmp_SOURCES = test-c-strncasecmp.c
 test_c_strncasecmp_OBJECTS = test-c-strncasecmp.$(OBJEXT)
 test_c_strncasecmp_DEPENDENCIES = $(am__DEPENDENCIES_2)
@@ -549,6 +657,9 @@ test_errno_OBJECTS = test-errno.$(OBJEXT)
 test_errno_LDADD = $(LDADD)
 test_errno_DEPENDENCIES = libtests.a ../lib/libdiffutils.a libtests.a \
        ../lib/libdiffutils.a libtests.a $(am__DEPENDENCIES_1)
+test_error_SOURCES = test-error.c
+test_error_OBJECTS = test-error.$(OBJEXT)
+test_error_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1)
 test_exclude_SOURCES = test-exclude.c
 test_exclude_OBJECTS = test-exclude.$(OBJEXT)
 test_exclude_DEPENDENCIES = $(am__DEPENDENCIES_2) \
@@ -745,6 +856,12 @@ test_langinfo_LDADD = $(LDADD)
 test_langinfo_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
        libtests.a ../lib/libdiffutils.a libtests.a \
        $(am__DEPENDENCIES_1)
+test_largefile_SOURCES = test-largefile.c
+test_largefile_OBJECTS = test-largefile.$(OBJEXT)
+test_largefile_LDADD = $(LDADD)
+test_largefile_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
+       libtests.a ../lib/libdiffutils.a libtests.a \
+       $(am__DEPENDENCIES_1)
 test_limits_h_SOURCES = test-limits-h.c
 test_limits_h_OBJECTS = test-limits-h.$(OBJEXT)
 test_limits_h_LDADD = $(LDADD)
@@ -839,19 +956,28 @@ test_netinet_in_LDADD = $(LDADD)
 test_netinet_in_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
        libtests.a ../lib/libdiffutils.a libtests.a \
        $(am__DEPENDENCIES_1)
-test_nl_langinfo_SOURCES = test-nl_langinfo.c
-test_nl_langinfo_OBJECTS = test-nl_langinfo.$(OBJEXT)
-test_nl_langinfo_DEPENDENCIES = $(am__DEPENDENCIES_2)
 test_nl_langinfo_mt_SOURCES = test-nl_langinfo-mt.c
 test_nl_langinfo_mt_OBJECTS = test-nl_langinfo-mt.$(OBJEXT)
 test_nl_langinfo_mt_DEPENDENCIES = $(am__DEPENDENCIES_2) \
        $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+test_nl_langinfo1_SOURCES = test-nl_langinfo1.c
+test_nl_langinfo1_OBJECTS = test-nl_langinfo1.$(OBJEXT)
+test_nl_langinfo1_DEPENDENCIES = $(am__DEPENDENCIES_2)
+test_nl_langinfo2_SOURCES = test-nl_langinfo2.c
+test_nl_langinfo2_OBJECTS = test-nl_langinfo2.$(OBJEXT)
+test_nl_langinfo2_DEPENDENCIES = $(am__DEPENDENCIES_2)
 test_nstrftime_SOURCES = test-nstrftime.c
 test_nstrftime_OBJECTS = test-nstrftime.$(OBJEXT)
 test_nstrftime_LDADD = $(LDADD)
 test_nstrftime_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
        libtests.a ../lib/libdiffutils.a libtests.a \
        $(am__DEPENDENCIES_1)
+test_nullptr_SOURCES = test-nullptr.c
+test_nullptr_OBJECTS = test-nullptr.$(OBJEXT)
+test_nullptr_LDADD = $(LDADD)
+test_nullptr_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
+       libtests.a ../lib/libdiffutils.a libtests.a \
+       $(am__DEPENDENCIES_1)
 test_open_SOURCES = test-open.c
 test_open_OBJECTS = test-open.$(OBJEXT)
 test_open_LDADD = $(LDADD)
@@ -879,6 +1005,10 @@ test_pipe_OBJECTS = test-pipe.$(OBJEXT)
 test_pipe_LDADD = $(LDADD)
 test_pipe_DEPENDENCIES = libtests.a ../lib/libdiffutils.a libtests.a \
        ../lib/libdiffutils.a libtests.a $(am__DEPENDENCIES_1)
+test_pselect_SOURCES = test-pselect.c
+test_pselect_OBJECTS = test-pselect.$(OBJEXT)
+test_pselect_DEPENDENCIES = $(am__DEPENDENCIES_2) \
+       $(am__DEPENDENCIES_1)
 test_pthread_SOURCES = test-pthread.c
 test_pthread_OBJECTS = test-pthread.$(OBJEXT)
 test_pthread_LDADD = $(LDADD)
@@ -970,12 +1100,6 @@ test_sh_quote_SOURCES = test-sh-quote.c
 test_sh_quote_OBJECTS = test-sh-quote.$(OBJEXT)
 test_sh_quote_DEPENDENCIES = $(am__DEPENDENCIES_2) \
        $(am__DEPENDENCIES_1)
-test_sigaction_SOURCES = test-sigaction.c
-test_sigaction_OBJECTS = test-sigaction.$(OBJEXT)
-test_sigaction_LDADD = $(LDADD)
-test_sigaction_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
-       libtests.a ../lib/libdiffutils.a libtests.a \
-       $(am__DEPENDENCIES_1)
 test_signal_h_SOURCES = test-signal-h.c
 test_signal_h_OBJECTS = test-signal-h.$(OBJEXT)
 test_signal_h_LDADD = $(LDADD)
@@ -1029,18 +1153,18 @@ test_stat_time_SOURCES = test-stat-time.c
 test_stat_time_OBJECTS = test-stat-time.$(OBJEXT)
 test_stat_time_DEPENDENCIES = $(am__DEPENDENCIES_2) \
        $(am__DEPENDENCIES_1)
-test_stdalign_SOURCES = test-stdalign.c
-test_stdalign_OBJECTS = test-stdalign.$(OBJEXT)
-test_stdalign_LDADD = $(LDADD)
-test_stdalign_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
-       libtests.a ../lib/libdiffutils.a libtests.a \
-       $(am__DEPENDENCIES_1)
 test_stdbool_SOURCES = test-stdbool.c
 test_stdbool_OBJECTS = test-stdbool.$(OBJEXT)
 test_stdbool_LDADD = $(LDADD)
 test_stdbool_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
        libtests.a ../lib/libdiffutils.a libtests.a \
        $(am__DEPENDENCIES_1)
+test_stdckdint_SOURCES = test-stdckdint.c
+test_stdckdint_OBJECTS = test-stdckdint.$(OBJEXT)
+test_stdckdint_LDADD = $(LDADD)
+test_stdckdint_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
+       libtests.a ../lib/libdiffutils.a libtests.a \
+       $(am__DEPENDENCIES_1)
 test_stddef_SOURCES = test-stddef.c
 test_stddef_OBJECTS = test-stddef.$(OBJEXT)
 test_stddef_LDADD = $(LDADD)
@@ -1176,12 +1300,20 @@ test_time_OBJECTS = test-time.$(OBJEXT)
 test_time_LDADD = $(LDADD)
 test_time_DEPENDENCIES = libtests.a ../lib/libdiffutils.a libtests.a \
        ../lib/libdiffutils.a libtests.a $(am__DEPENDENCIES_1)
+test_time_h_SOURCES = test-time-h.c
+test_time_h_OBJECTS = test-time-h.$(OBJEXT)
+test_time_h_LDADD = $(LDADD)
+test_time_h_DEPENDENCIES = libtests.a ../lib/libdiffutils.a libtests.a \
+       ../lib/libdiffutils.a libtests.a $(am__DEPENDENCIES_1)
 test_timespec_SOURCES = test-timespec.c
 test_timespec_OBJECTS = test-timespec.$(OBJEXT)
 test_timespec_LDADD = $(LDADD)
 test_timespec_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
        libtests.a ../lib/libdiffutils.a libtests.a \
        $(am__DEPENDENCIES_1)
+test_trim_SOURCES = test-trim.c
+test_trim_OBJECTS = test-trim.$(OBJEXT)
+test_trim_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1)
 am_test_u8_mbtoucr_OBJECTS = unistr/test-u8-mbtoucr.$(OBJEXT)
 test_u8_mbtoucr_OBJECTS = $(am_test_u8_mbtoucr_OBJECTS)
 test_u8_mbtoucr_DEPENDENCIES = $(am__DEPENDENCIES_2)
@@ -1211,12 +1343,6 @@ test_vasnprintf_LDADD = $(LDADD)
 test_vasnprintf_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
        libtests.a ../lib/libdiffutils.a libtests.a \
        $(am__DEPENDENCIES_1)
-test_vasprintf_SOURCES = test-vasprintf.c
-test_vasprintf_OBJECTS = test-vasprintf.$(OBJEXT)
-test_vasprintf_LDADD = $(LDADD)
-test_vasprintf_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
-       libtests.a ../lib/libdiffutils.a libtests.a \
-       $(am__DEPENDENCIES_1)
 test_verify_SOURCES = test-verify.c
 test_verify_OBJECTS = test-verify.$(OBJEXT)
 test_verify_LDADD = $(LDADD)
@@ -1269,9 +1395,12 @@ test_xstrtol_DEPENDENCIES = $(am__DEPENDENCIES_2)
 test_xstrtoul_SOURCES = test-xstrtoul.c
 test_xstrtoul_OBJECTS = test-xstrtoul.$(OBJEXT)
 test_xstrtoul_DEPENDENCIES = $(am__DEPENDENCIES_2)
-test_xvasprintf_SOURCES = test-xvasprintf.c
-test_xvasprintf_OBJECTS = test-xvasprintf.$(OBJEXT)
-test_xvasprintf_DEPENDENCIES = $(am__DEPENDENCIES_2)
+test_year2038_SOURCES = test-year2038.c
+test_year2038_OBJECTS = test-year2038.$(OBJEXT)
+test_year2038_LDADD = $(LDADD)
+test_year2038_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
+       libtests.a ../lib/libdiffutils.a libtests.a \
+       $(am__DEPENDENCIES_1)
 AM_V_P = $(am__v_P_@AM_V@)
 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
 am__v_P_0 = false
@@ -1288,43 +1417,47 @@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/lib
 depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
 am__maybe_remake_depfiles = depfiles
 am__depfiles_remade = ./$(DEPDIR)/accept.Po ./$(DEPDIR)/alloca.Po \
-       ./$(DEPDIR)/atoll.Po ./$(DEPDIR)/bind.Po \
+       ./$(DEPDIR)/asnprintf.Po ./$(DEPDIR)/atoll.Po \
+       ./$(DEPDIR)/bind.Po ./$(DEPDIR)/c-strcasestr.Po \
        ./$(DEPDIR)/connect.Po ./$(DEPDIR)/dtotimespec.Po \
-       ./$(DEPDIR)/fdopen.Po ./$(DEPDIR)/ftruncate.Po \
-       ./$(DEPDIR)/getcwd-lgpl.Po ./$(DEPDIR)/hash-pjw.Po \
-       ./$(DEPDIR)/inet_pton.Po ./$(DEPDIR)/ioctl.Po \
+       ./$(DEPDIR)/fdopen.Po ./$(DEPDIR)/float.Po \
+       ./$(DEPDIR)/ftruncate.Po ./$(DEPDIR)/getcwd-lgpl.Po \
+       ./$(DEPDIR)/hash-pjw.Po ./$(DEPDIR)/inet_pton.Po \
+       ./$(DEPDIR)/ioctl.Po ./$(DEPDIR)/itold.Po \
        ./$(DEPDIR)/listen.Po ./$(DEPDIR)/locale.Po \
        ./$(DEPDIR)/nanosleep.Po ./$(DEPDIR)/perror.Po \
-       ./$(DEPDIR)/pipe.Po ./$(DEPDIR)/pthread-thread.Po \
-       ./$(DEPDIR)/pthread_sigmask.Po ./$(DEPDIR)/putenv.Po \
-       ./$(DEPDIR)/select.Po ./$(DEPDIR)/setsockopt.Po \
-       ./$(DEPDIR)/sig-handler.Po ./$(DEPDIR)/sigaction.Po \
-       ./$(DEPDIR)/sigprocmask.Po ./$(DEPDIR)/sleep.Po \
+       ./$(DEPDIR)/pipe.Po ./$(DEPDIR)/printf-args.Po \
+       ./$(DEPDIR)/printf-parse.Po ./$(DEPDIR)/pselect.Po \
+       ./$(DEPDIR)/pthread-thread.Po ./$(DEPDIR)/pthread_sigmask.Po \
+       ./$(DEPDIR)/putenv.Po ./$(DEPDIR)/select.Po \
+       ./$(DEPDIR)/setsockopt.Po ./$(DEPDIR)/sleep.Po \
        ./$(DEPDIR)/snprintf.Po ./$(DEPDIR)/socket.Po \
        ./$(DEPDIR)/sockets.Po ./$(DEPDIR)/strerror_r.Po \
        ./$(DEPDIR)/symlink.Po ./$(DEPDIR)/sys_socket.Po \
-       ./$(DEPDIR)/test-accept.Po ./$(DEPDIR)/test-alloca-opt.Po \
-       ./$(DEPDIR)/test-areadlink.Po ./$(DEPDIR)/test-argmatch.Po \
-       ./$(DEPDIR)/test-arpa_inet.Po ./$(DEPDIR)/test-binary-io.Po \
+       ./$(DEPDIR)/test-accept.Po ./$(DEPDIR)/test-alignasof.Po \
+       ./$(DEPDIR)/test-alloca-opt.Po ./$(DEPDIR)/test-areadlink.Po \
+       ./$(DEPDIR)/test-argmatch.Po ./$(DEPDIR)/test-arpa_inet.Po \
+       ./$(DEPDIR)/test-assert.Po ./$(DEPDIR)/test-binary-io.Po \
        ./$(DEPDIR)/test-bind.Po ./$(DEPDIR)/test-bitrotate.Po \
        ./$(DEPDIR)/test-btowc.Po ./$(DEPDIR)/test-c-ctype.Po \
        ./$(DEPDIR)/test-c-stack.Po ./$(DEPDIR)/test-c-strcasecmp.Po \
+       ./$(DEPDIR)/test-c-strcasestr.Po \
        ./$(DEPDIR)/test-c-strncasecmp.Po \
        ./$(DEPDIR)/test-calloc-gnu.Po ./$(DEPDIR)/test-cloexec.Po \
        ./$(DEPDIR)/test-close.Po ./$(DEPDIR)/test-connect.Po \
        ./$(DEPDIR)/test-ctype.Po ./$(DEPDIR)/test-dirname.Po \
        ./$(DEPDIR)/test-dup2.Po ./$(DEPDIR)/test-dynarray.Po \
        ./$(DEPDIR)/test-environ.Po ./$(DEPDIR)/test-errno.Po \
-       ./$(DEPDIR)/test-exclude.Po ./$(DEPDIR)/test-fcntl-h.Po \
-       ./$(DEPDIR)/test-fcntl.Po ./$(DEPDIR)/test-fdopen.Po \
-       ./$(DEPDIR)/test-fgetc.Po ./$(DEPDIR)/test-filenamecat.Po \
-       ./$(DEPDIR)/test-float.Po ./$(DEPDIR)/test-fnmatch-h.Po \
-       ./$(DEPDIR)/test-fnmatch.Po ./$(DEPDIR)/test-fopen-gnu.Po \
-       ./$(DEPDIR)/test-fopen.Po ./$(DEPDIR)/test-fputc.Po \
-       ./$(DEPDIR)/test-fread.Po ./$(DEPDIR)/test-free.Po \
-       ./$(DEPDIR)/test-freopen.Po ./$(DEPDIR)/test-fstat.Po \
-       ./$(DEPDIR)/test-ftruncate.Po ./$(DEPDIR)/test-fwrite.Po \
-       ./$(DEPDIR)/test-getcwd-lgpl.Po \
+       ./$(DEPDIR)/test-error.Po ./$(DEPDIR)/test-exclude.Po \
+       ./$(DEPDIR)/test-fcntl-h.Po ./$(DEPDIR)/test-fcntl.Po \
+       ./$(DEPDIR)/test-fdopen.Po ./$(DEPDIR)/test-fgetc.Po \
+       ./$(DEPDIR)/test-filenamecat.Po ./$(DEPDIR)/test-float.Po \
+       ./$(DEPDIR)/test-fnmatch-h.Po ./$(DEPDIR)/test-fnmatch.Po \
+       ./$(DEPDIR)/test-fopen-gnu.Po ./$(DEPDIR)/test-fopen.Po \
+       ./$(DEPDIR)/test-fputc.Po ./$(DEPDIR)/test-fread.Po \
+       ./$(DEPDIR)/test-free.Po ./$(DEPDIR)/test-freopen.Po \
+       ./$(DEPDIR)/test-fstat.Po ./$(DEPDIR)/test-ftruncate.Po \
+       ./$(DEPDIR)/test-fwrite.Po ./$(DEPDIR)/test-getcwd-lgpl.Po \
        ./$(DEPDIR)/test-getdtablesize.Po \
        ./$(DEPDIR)/test-getopt-gnu.Po \
        ./$(DEPDIR)/test-getopt-posix.Po \
@@ -1337,22 +1470,24 @@ am__depfiles_remade = ./$(DEPDIR)/accept.Po ./$(DEPDIR)/alloca.Po \
        ./$(DEPDIR)/test-inttypes.Po ./$(DEPDIR)/test-ioctl.Po \
        ./$(DEPDIR)/test-isblank.Po ./$(DEPDIR)/test-iswblank.Po \
        ./$(DEPDIR)/test-iswdigit.Po ./$(DEPDIR)/test-iswxdigit.Po \
-       ./$(DEPDIR)/test-langinfo.Po ./$(DEPDIR)/test-limits-h.Po \
-       ./$(DEPDIR)/test-listen.Po ./$(DEPDIR)/test-localcharset.Po \
-       ./$(DEPDIR)/test-locale.Po ./$(DEPDIR)/test-localeconv.Po \
-       ./$(DEPDIR)/test-lstat.Po ./$(DEPDIR)/test-malloc-gnu.Po \
-       ./$(DEPDIR)/test-malloca.Po ./$(DEPDIR)/test-mbrtowc-w32.Po \
-       ./$(DEPDIR)/test-mbrtowc.Po ./$(DEPDIR)/test-mbscasecmp.Po \
-       ./$(DEPDIR)/test-mbsinit.Po ./$(DEPDIR)/test-mbsrtowcs.Po \
-       ./$(DEPDIR)/test-mbsstr1.Po ./$(DEPDIR)/test-mbsstr2.Po \
-       ./$(DEPDIR)/test-mbsstr3.Po ./$(DEPDIR)/test-memchr.Po \
-       ./$(DEPDIR)/test-mkdir.Po ./$(DEPDIR)/test-nanosleep.Po \
-       ./$(DEPDIR)/test-netinet_in.Po \
+       ./$(DEPDIR)/test-langinfo.Po ./$(DEPDIR)/test-largefile.Po \
+       ./$(DEPDIR)/test-limits-h.Po ./$(DEPDIR)/test-listen.Po \
+       ./$(DEPDIR)/test-localcharset.Po ./$(DEPDIR)/test-locale.Po \
+       ./$(DEPDIR)/test-localeconv.Po ./$(DEPDIR)/test-lstat.Po \
+       ./$(DEPDIR)/test-malloc-gnu.Po ./$(DEPDIR)/test-malloca.Po \
+       ./$(DEPDIR)/test-mbrtowc-w32.Po ./$(DEPDIR)/test-mbrtowc.Po \
+       ./$(DEPDIR)/test-mbscasecmp.Po ./$(DEPDIR)/test-mbsinit.Po \
+       ./$(DEPDIR)/test-mbsrtowcs.Po ./$(DEPDIR)/test-mbsstr1.Po \
+       ./$(DEPDIR)/test-mbsstr2.Po ./$(DEPDIR)/test-mbsstr3.Po \
+       ./$(DEPDIR)/test-memchr.Po ./$(DEPDIR)/test-mkdir.Po \
+       ./$(DEPDIR)/test-nanosleep.Po ./$(DEPDIR)/test-netinet_in.Po \
        ./$(DEPDIR)/test-nl_langinfo-mt.Po \
-       ./$(DEPDIR)/test-nl_langinfo.Po ./$(DEPDIR)/test-nstrftime.Po \
-       ./$(DEPDIR)/test-open.Po ./$(DEPDIR)/test-pathmax.Po \
-       ./$(DEPDIR)/test-perror.Po ./$(DEPDIR)/test-perror2.Po \
-       ./$(DEPDIR)/test-pipe.Po ./$(DEPDIR)/test-pthread-thread.Po \
+       ./$(DEPDIR)/test-nl_langinfo1.Po \
+       ./$(DEPDIR)/test-nl_langinfo2.Po ./$(DEPDIR)/test-nstrftime.Po \
+       ./$(DEPDIR)/test-nullptr.Po ./$(DEPDIR)/test-open.Po \
+       ./$(DEPDIR)/test-pathmax.Po ./$(DEPDIR)/test-perror.Po \
+       ./$(DEPDIR)/test-perror2.Po ./$(DEPDIR)/test-pipe.Po \
+       ./$(DEPDIR)/test-pselect.Po ./$(DEPDIR)/test-pthread-thread.Po \
        ./$(DEPDIR)/test-pthread.Po \
        ./$(DEPDIR)/test-pthread_sigmask1.Po \
        ./$(DEPDIR)/test-pthread_sigmask2.Po \
@@ -1367,16 +1502,15 @@ am__depfiles_remade = ./$(DEPDIR)/accept.Po ./$(DEPDIR)/alloca.Po \
        ./$(DEPDIR)/test-setlocale_null-mt-one.Po \
        ./$(DEPDIR)/test-setlocale_null.Po \
        ./$(DEPDIR)/test-setsockopt.Po ./$(DEPDIR)/test-sh-quote.Po \
-       ./$(DEPDIR)/test-sigaction.Po ./$(DEPDIR)/test-signal-h.Po \
-       ./$(DEPDIR)/test-sigprocmask.Po \
+       ./$(DEPDIR)/test-signal-h.Po ./$(DEPDIR)/test-sigprocmask.Po \
        ./$(DEPDIR)/test-sigsegv-catch-segv1.Po \
        ./$(DEPDIR)/test-sigsegv-catch-segv2.Po \
        ./$(DEPDIR)/test-sigsegv-catch-stackoverflow1.Po \
        ./$(DEPDIR)/test-sigsegv-catch-stackoverflow2.Po \
        ./$(DEPDIR)/test-sleep.Po ./$(DEPDIR)/test-snprintf.Po \
        ./$(DEPDIR)/test-sockets.Po ./$(DEPDIR)/test-stat-time.Po \
-       ./$(DEPDIR)/test-stat.Po ./$(DEPDIR)/test-stdalign.Po \
-       ./$(DEPDIR)/test-stdbool.Po ./$(DEPDIR)/test-stddef.Po \
+       ./$(DEPDIR)/test-stat.Po ./$(DEPDIR)/test-stdbool.Po \
+       ./$(DEPDIR)/test-stdckdint.Po ./$(DEPDIR)/test-stddef.Po \
        ./$(DEPDIR)/test-stdint.Po ./$(DEPDIR)/test-stdio.Po \
        ./$(DEPDIR)/test-stdlib.Po ./$(DEPDIR)/test-strerror.Po \
        ./$(DEPDIR)/test-strerror_r.Po ./$(DEPDIR)/test-striconv.Po \
@@ -1388,20 +1522,22 @@ am__depfiles_remade = ./$(DEPDIR)/accept.Po ./$(DEPDIR)/alloca.Po \
        ./$(DEPDIR)/test-sys_stat.Po ./$(DEPDIR)/test-sys_time.Po \
        ./$(DEPDIR)/test-sys_types.Po ./$(DEPDIR)/test-sys_uio.Po \
        ./$(DEPDIR)/test-sys_wait.Po ./$(DEPDIR)/test-thread_create.Po \
-       ./$(DEPDIR)/test-thread_self.Po ./$(DEPDIR)/test-time.Po \
-       ./$(DEPDIR)/test-timespec.Po ./$(DEPDIR)/test-unistd.Po \
+       ./$(DEPDIR)/test-thread_self.Po ./$(DEPDIR)/test-time-h.Po \
+       ./$(DEPDIR)/test-time.Po ./$(DEPDIR)/test-timespec.Po \
+       ./$(DEPDIR)/test-trim.Po ./$(DEPDIR)/test-unistd.Po \
        ./$(DEPDIR)/test-unsetenv.Po ./$(DEPDIR)/test-vasnprintf.Po \
-       ./$(DEPDIR)/test-vasprintf.Po ./$(DEPDIR)/test-verify-try.Po \
-       ./$(DEPDIR)/test-verify.Po ./$(DEPDIR)/test-version-etc.Po \
-       ./$(DEPDIR)/test-wchar.Po ./$(DEPDIR)/test-wcrtomb-w32.Po \
-       ./$(DEPDIR)/test-wcrtomb.Po ./$(DEPDIR)/test-wctype-h.Po \
-       ./$(DEPDIR)/test-wcwidth.Po ./$(DEPDIR)/test-xalloc-die.Po \
-       ./$(DEPDIR)/test-xstdopen.Po ./$(DEPDIR)/test-xstrtoimax.Po \
-       ./$(DEPDIR)/test-xstrtol.Po ./$(DEPDIR)/test-xstrtoul.Po \
-       ./$(DEPDIR)/test-xvasprintf.Po ./$(DEPDIR)/timespec-add.Po \
-       ./$(DEPDIR)/timespec-sub.Po ./$(DEPDIR)/wctob.Po \
-       ./$(DEPDIR)/wctomb.Po ./$(DEPDIR)/windows-thread.Po \
-       ./$(DEPDIR)/windows-tls.Po ./$(DEPDIR)/xstrtol-error.Po \
+       ./$(DEPDIR)/test-verify-try.Po ./$(DEPDIR)/test-verify.Po \
+       ./$(DEPDIR)/test-version-etc.Po ./$(DEPDIR)/test-wchar.Po \
+       ./$(DEPDIR)/test-wcrtomb-w32.Po ./$(DEPDIR)/test-wcrtomb.Po \
+       ./$(DEPDIR)/test-wctype-h.Po ./$(DEPDIR)/test-wcwidth.Po \
+       ./$(DEPDIR)/test-xalloc-die.Po ./$(DEPDIR)/test-xstdopen.Po \
+       ./$(DEPDIR)/test-xstrtoimax.Po ./$(DEPDIR)/test-xstrtol.Po \
+       ./$(DEPDIR)/test-xstrtoul.Po ./$(DEPDIR)/test-year2038.Po \
+       ./$(DEPDIR)/time.Po ./$(DEPDIR)/timespec-add.Po \
+       ./$(DEPDIR)/timespec-sub.Po ./$(DEPDIR)/vasnprintf.Po \
+       ./$(DEPDIR)/wctob.Po ./$(DEPDIR)/wctomb.Po \
+       ./$(DEPDIR)/windows-thread.Po ./$(DEPDIR)/windows-tls.Po \
+       ./$(DEPDIR)/xsize.Po ./$(DEPDIR)/xstrtol-error.Po \
        glthread/$(DEPDIR)/thread.Po \
        unistr/$(DEPDIR)/test-u8-mbtoucr.Po \
        unistr/$(DEPDIR)/test-u8-uctomb.Po \
@@ -1421,15 +1557,16 @@ am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD    " $@;
 am__v_CCLD_1 = 
 SOURCES = $(libtests_a_SOURCES) $(EXTRA_libtests_a_SOURCES) \
-       $(current_locale_SOURCES) test-accept.c test-alloca-opt.c \
-       test-areadlink.c test-argmatch.c test-arpa_inet.c \
-       test-binary-io.c test-bind.c test-bitrotate.c test-btowc.c \
-       test-c-ctype.c test-c-stack.c test-c-strcasecmp.c \
-       test-c-strncasecmp.c test-calloc-gnu.c test-cloexec.c \
-       test-close.c test-connect.c test-ctype.c test-dirname.c \
-       test-dup2.c test-dynarray.c test-environ.c test-errno.c \
-       test-exclude.c test-fcntl.c test-fcntl-h.c test-fdopen.c \
-       test-fgetc.c test-filenamecat.c test-float.c test-fnmatch.c \
+       $(current_locale_SOURCES) test-accept.c test-alignasof.c \
+       test-alloca-opt.c test-areadlink.c test-argmatch.c \
+       test-arpa_inet.c test-assert.c test-binary-io.c test-bind.c \
+       test-bitrotate.c test-btowc.c test-c-ctype.c test-c-stack.c \
+       test-c-strcasecmp.c test-c-strcasestr.c test-c-strncasecmp.c \
+       test-calloc-gnu.c test-cloexec.c test-close.c test-connect.c \
+       test-ctype.c test-dirname.c test-dup2.c test-dynarray.c \
+       test-environ.c test-errno.c test-error.c test-exclude.c \
+       test-fcntl.c test-fcntl-h.c test-fdopen.c test-fgetc.c \
+       test-filenamecat.c test-float.c test-fnmatch.c \
        test-fnmatch-h.c test-fopen.c test-fopen-gnu.c test-fputc.c \
        test-fread.c test-free.c test-freopen.c test-fstat.c \
        test-ftruncate.c test-fwrite.c test-getcwd-lgpl.c \
@@ -1439,27 +1576,27 @@ SOURCES = $(libtests_a_SOURCES) $(EXTRA_libtests_a_SOURCES) \
        test-ignore-value.c test-inet_pton.c test-intprops.c \
        test-inttostr.c test-inttypes.c test-ioctl.c test-isblank.c \
        test-iswblank.c test-iswdigit.c test-iswxdigit.c \
-       test-langinfo.c test-limits-h.c test-listen.c \
+       test-langinfo.c test-largefile.c test-limits-h.c test-listen.c \
        test-localcharset.c test-locale.c test-localeconv.c \
        test-lstat.c test-malloc-gnu.c test-malloca.c test-mbrtowc.c \
        test-mbrtowc-w32.c test-mbscasecmp.c test-mbsinit.c \
        test-mbsrtowcs.c test-mbsstr1.c test-mbsstr2.c test-mbsstr3.c \
        test-memchr.c test-mkdir.c test-nanosleep.c test-netinet_in.c \
-       test-nl_langinfo.c test-nl_langinfo-mt.c test-nstrftime.c \
-       test-open.c test-pathmax.c test-perror.c test-perror2.c \
-       test-pipe.c test-pthread.c test-pthread-thread.c \
-       test-pthread_sigmask1.c test-pthread_sigmask2.c \
-       test-quotearg-simple.c test-raise.c test-rawmemchr.c \
-       test-readlink.c test-realloc-gnu.c test-reallocarray.c \
-       test-regex.c test-sched.c test-select.c test-select-fd.c \
-       test-select-stdin.c test-setenv.c test-setlocale_null.c \
-       test-setlocale_null-mt-all.c test-setlocale_null-mt-one.c \
-       test-setsockopt.c test-sh-quote.c test-sigaction.c \
+       test-nl_langinfo-mt.c test-nl_langinfo1.c test-nl_langinfo2.c \
+       test-nstrftime.c test-nullptr.c test-open.c test-pathmax.c \
+       test-perror.c test-perror2.c test-pipe.c test-pselect.c \
+       test-pthread.c test-pthread-thread.c test-pthread_sigmask1.c \
+       test-pthread_sigmask2.c test-quotearg-simple.c test-raise.c \
+       test-rawmemchr.c test-readlink.c test-realloc-gnu.c \
+       test-reallocarray.c test-regex.c test-sched.c test-select.c \
+       test-select-fd.c test-select-stdin.c test-setenv.c \
+       test-setlocale_null.c test-setlocale_null-mt-all.c \
+       test-setlocale_null-mt-one.c test-setsockopt.c test-sh-quote.c \
        test-signal-h.c test-sigprocmask.c test-sigsegv-catch-segv1.c \
        test-sigsegv-catch-segv2.c test-sigsegv-catch-stackoverflow1.c \
        test-sigsegv-catch-stackoverflow2.c test-sleep.c \
        test-snprintf.c test-sockets.c test-stat.c test-stat-time.c \
-       test-stdalign.c test-stdbool.c test-stddef.c test-stdint.c \
+       test-stdbool.c test-stdckdint.c test-stddef.c test-stdint.c \
        test-stdio.c test-stdlib.c test-strerror.c test-strerror_r.c \
        test-striconv.c test-string.c test-strings.c test-strnlen.c \
        test-strtoimax.c test-strtoll.c test-symlink.c \
@@ -1467,55 +1604,57 @@ SOURCES = $(libtests_a_SOURCES) $(EXTRA_libtests_a_SOURCES) \
        test-sys_socket.c test-sys_stat.c test-sys_time.c \
        test-sys_types.c test-sys_uio.c test-sys_wait.c \
        test-thread_create.c test-thread_self.c test-time.c \
-       test-timespec.c $(test_u8_mbtoucr_SOURCES) \
-       $(test_u8_uctomb_SOURCES) $(test_uc_width_SOURCES) \
-       $(test_uc_width2_SOURCES) test-unistd.c test-unsetenv.c \
-       test-vasnprintf.c test-vasprintf.c test-verify.c \
+       test-time-h.c test-timespec.c test-trim.c \
+       $(test_u8_mbtoucr_SOURCES) $(test_u8_uctomb_SOURCES) \
+       $(test_uc_width_SOURCES) $(test_uc_width2_SOURCES) \
+       test-unistd.c test-unsetenv.c test-vasnprintf.c test-verify.c \
        test-verify-try.c test-version-etc.c test-wchar.c \
        test-wcrtomb.c test-wcrtomb-w32.c test-wctype-h.c \
        test-wcwidth.c test-xalloc-die.c test-xstdopen.c \
        test-xstrtoimax.c test-xstrtol.c test-xstrtoul.c \
-       test-xvasprintf.c
-DIST_SOURCES = $(libtests_a_SOURCES) $(EXTRA_libtests_a_SOURCES) \
-       $(current_locale_SOURCES) test-accept.c test-alloca-opt.c \
+       test-year2038.c
+DIST_SOURCES = $(am__libtests_a_SOURCES_DIST) \
+       $(EXTRA_libtests_a_SOURCES) $(current_locale_SOURCES) \
+       test-accept.c test-alignasof.c test-alloca-opt.c \
        test-areadlink.c test-argmatch.c test-arpa_inet.c \
-       test-binary-io.c test-bind.c test-bitrotate.c test-btowc.c \
-       test-c-ctype.c test-c-stack.c test-c-strcasecmp.c \
-       test-c-strncasecmp.c test-calloc-gnu.c test-cloexec.c \
-       test-close.c test-connect.c test-ctype.c test-dirname.c \
-       test-dup2.c test-dynarray.c test-environ.c test-errno.c \
-       test-exclude.c test-fcntl.c test-fcntl-h.c test-fdopen.c \
-       test-fgetc.c test-filenamecat.c test-float.c test-fnmatch.c \
-       test-fnmatch-h.c test-fopen.c test-fopen-gnu.c test-fputc.c \
-       test-fread.c test-free.c test-freopen.c test-fstat.c \
-       test-ftruncate.c test-fwrite.c test-getcwd-lgpl.c \
-       test-getdtablesize.c test-getopt-gnu.c test-getopt-posix.c \
-       test-getprogname.c test-getrandom.c test-gettimeofday.c \
-       test-hard-locale.c test-hash.c test-iconv.c test-iconv-h.c \
-       test-ignore-value.c test-inet_pton.c test-intprops.c \
-       test-inttostr.c test-inttypes.c test-ioctl.c test-isblank.c \
-       test-iswblank.c test-iswdigit.c test-iswxdigit.c \
-       test-langinfo.c test-limits-h.c test-listen.c \
+       test-assert.c test-binary-io.c test-bind.c test-bitrotate.c \
+       test-btowc.c test-c-ctype.c test-c-stack.c test-c-strcasecmp.c \
+       test-c-strcasestr.c test-c-strncasecmp.c test-calloc-gnu.c \
+       test-cloexec.c test-close.c test-connect.c test-ctype.c \
+       test-dirname.c test-dup2.c test-dynarray.c test-environ.c \
+       test-errno.c test-error.c test-exclude.c test-fcntl.c \
+       test-fcntl-h.c test-fdopen.c test-fgetc.c test-filenamecat.c \
+       test-float.c test-fnmatch.c test-fnmatch-h.c test-fopen.c \
+       test-fopen-gnu.c test-fputc.c test-fread.c test-free.c \
+       test-freopen.c test-fstat.c test-ftruncate.c test-fwrite.c \
+       test-getcwd-lgpl.c test-getdtablesize.c test-getopt-gnu.c \
+       test-getopt-posix.c test-getprogname.c test-getrandom.c \
+       test-gettimeofday.c test-hard-locale.c test-hash.c \
+       test-iconv.c test-iconv-h.c test-ignore-value.c \
+       test-inet_pton.c test-intprops.c test-inttostr.c \
+       test-inttypes.c test-ioctl.c test-isblank.c test-iswblank.c \
+       test-iswdigit.c test-iswxdigit.c test-langinfo.c \
+       test-largefile.c test-limits-h.c test-listen.c \
        test-localcharset.c test-locale.c test-localeconv.c \
        test-lstat.c test-malloc-gnu.c test-malloca.c test-mbrtowc.c \
        test-mbrtowc-w32.c test-mbscasecmp.c test-mbsinit.c \
        test-mbsrtowcs.c test-mbsstr1.c test-mbsstr2.c test-mbsstr3.c \
        test-memchr.c test-mkdir.c test-nanosleep.c test-netinet_in.c \
-       test-nl_langinfo.c test-nl_langinfo-mt.c test-nstrftime.c \
-       test-open.c test-pathmax.c test-perror.c test-perror2.c \
-       test-pipe.c test-pthread.c test-pthread-thread.c \
-       test-pthread_sigmask1.c test-pthread_sigmask2.c \
-       test-quotearg-simple.c test-raise.c test-rawmemchr.c \
-       test-readlink.c test-realloc-gnu.c test-reallocarray.c \
-       test-regex.c test-sched.c test-select.c test-select-fd.c \
-       test-select-stdin.c test-setenv.c test-setlocale_null.c \
-       test-setlocale_null-mt-all.c test-setlocale_null-mt-one.c \
-       test-setsockopt.c test-sh-quote.c test-sigaction.c \
+       test-nl_langinfo-mt.c test-nl_langinfo1.c test-nl_langinfo2.c \
+       test-nstrftime.c test-nullptr.c test-open.c test-pathmax.c \
+       test-perror.c test-perror2.c test-pipe.c test-pselect.c \
+       test-pthread.c test-pthread-thread.c test-pthread_sigmask1.c \
+       test-pthread_sigmask2.c test-quotearg-simple.c test-raise.c \
+       test-rawmemchr.c test-readlink.c test-realloc-gnu.c \
+       test-reallocarray.c test-regex.c test-sched.c test-select.c \
+       test-select-fd.c test-select-stdin.c test-setenv.c \
+       test-setlocale_null.c test-setlocale_null-mt-all.c \
+       test-setlocale_null-mt-one.c test-setsockopt.c test-sh-quote.c \
        test-signal-h.c test-sigprocmask.c test-sigsegv-catch-segv1.c \
        test-sigsegv-catch-segv2.c test-sigsegv-catch-stackoverflow1.c \
        test-sigsegv-catch-stackoverflow2.c test-sleep.c \
        test-snprintf.c test-sockets.c test-stat.c test-stat-time.c \
-       test-stdalign.c test-stdbool.c test-stddef.c test-stdint.c \
+       test-stdbool.c test-stdckdint.c test-stddef.c test-stdint.c \
        test-stdio.c test-stdlib.c test-strerror.c test-strerror_r.c \
        test-striconv.c test-string.c test-strings.c test-strnlen.c \
        test-strtoimax.c test-strtoll.c test-symlink.c \
@@ -1523,15 +1662,15 @@ DIST_SOURCES = $(libtests_a_SOURCES) $(EXTRA_libtests_a_SOURCES) \
        test-sys_socket.c test-sys_stat.c test-sys_time.c \
        test-sys_types.c test-sys_uio.c test-sys_wait.c \
        test-thread_create.c test-thread_self.c test-time.c \
-       test-timespec.c $(test_u8_mbtoucr_SOURCES) \
-       $(test_u8_uctomb_SOURCES) $(test_uc_width_SOURCES) \
-       $(test_uc_width2_SOURCES) test-unistd.c test-unsetenv.c \
-       test-vasnprintf.c test-vasprintf.c test-verify.c \
+       test-time-h.c test-timespec.c test-trim.c \
+       $(test_u8_mbtoucr_SOURCES) $(test_u8_uctomb_SOURCES) \
+       $(test_uc_width_SOURCES) $(test_uc_width2_SOURCES) \
+       test-unistd.c test-unsetenv.c test-vasnprintf.c test-verify.c \
        test-verify-try.c test-version-etc.c test-wchar.c \
        test-wcrtomb.c test-wcrtomb-w32.c test-wctype-h.c \
        test-wcwidth.c test-xalloc-die.c test-xstdopen.c \
        test-xstrtoimax.c test-xstrtol.c test-xstrtoul.c \
-       test-xvasprintf.c
+       test-year2038.c
 RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
        ctags-recursive dvi-recursive html-recursive info-recursive \
        install-data-recursive install-dvi-recursive \
@@ -1615,10 +1754,9 @@ am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 am__uninstall_files_from_dir = { \
-  test -z "$$files" \
-    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
-    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
-         $(am__cd) "$$dir" && rm -f $$files; }; \
+  { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+  || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+       $(am__cd) "$$dir" && echo $$files | $(am__xargs_n) 40 $(am__rm_f); }; \
   }
 am__recheck_rx = ^[    ]*:recheck:[    ]*
 am__global_test_result_rx = ^[         ]*:global-test-result:[         ]*
@@ -1813,6 +1951,7 @@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
 AR = @AR@
 ARFLAGS = @ARFLAGS@
+ASSERT_H = @ASSERT_H@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -1824,8 +1963,9 @@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
 BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
 CC = @CC@
 CCDEPMODE = @CCDEPMODE@
-CFLAGS = @GL_CFLAG_ALLOW_WARNINGS@ @CFLAGS@
+CFLAGS = @GL_CFLAG_ALLOW_WARNINGS@ $(GL_CFLAG_GNULIB_WARNINGS) @CFLAGS@
 CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
+CLOCK_TIME_LIB = @CLOCK_TIME_LIB@
 CONFIG_INCLUDE = @CONFIG_INCLUDE@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
@@ -1837,7 +1977,6 @@ DEPDIR = @DEPDIR@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-EGREP = @EGREP@
 EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@
 EMULTIHOP_VALUE = @EMULTIHOP_VALUE@
 ENOLINK_HIDDEN = @ENOLINK_HIDDEN@
@@ -1845,14 +1984,17 @@ ENOLINK_VALUE = @ENOLINK_VALUE@
 EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@
 EOVERFLOW_VALUE = @EOVERFLOW_VALUE@
 ERRNO_H = @ERRNO_H@
+ERROR_H = @ERROR_H@
 ETAGS = @ETAGS@
 EXEEXT = @EXEEXT@
 FLOAT_H = @FLOAT_H@
 FNMATCH_H = @FNMATCH_H@
 GETOPT_CDEFS_H = @GETOPT_CDEFS_H@
 GETOPT_H = @GETOPT_H@
+GETRANDOM_LIB = @GETRANDOM_LIB@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@
+GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@
 GL_CXXFLAG_ALLOW_WARNINGS = @GL_CXXFLAG_ALLOW_WARNINGS@
 GL_GNULIB_ACCEPT = @GL_GNULIB_ACCEPT@
 GL_GNULIB_ACCEPT4 = @GL_GNULIB_ACCEPT4@
@@ -1861,9 +2003,11 @@ GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@
 GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@
 GL_GNULIB_BIND = @GL_GNULIB_BIND@
 GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@
+GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@
 GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@
 GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@
 GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@
+GL_GNULIB_CHMOD = @GL_GNULIB_CHMOD@
 GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@
 GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@
 GL_GNULIB_CONNECT = @GL_GNULIB_CONNECT@
@@ -1901,6 +2045,7 @@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@
 GL_GNULIB_FGETS = @GL_GNULIB_FGETS@
 GL_GNULIB_FNMATCH = @GL_GNULIB_FNMATCH@
 GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@
+GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@
 GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@
 GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@
 GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@
@@ -1936,7 +2081,9 @@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@
 GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@
 GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@
 GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@
+GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@
 GL_GNULIB_GETPEERNAME = @GL_GNULIB_GETPEERNAME@
+GL_GNULIB_GETPROGNAME = @GL_GNULIB_GETPROGNAME@
 GL_GNULIB_GETRANDOM = @GL_GNULIB_GETRANDOM@
 GL_GNULIB_GETSOCKNAME = @GL_GNULIB_GETSOCKNAME@
 GL_GNULIB_GETSOCKOPT = @GL_GNULIB_GETSOCKOPT@
@@ -1968,6 +2115,7 @@ GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@
 GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@
 GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@
 GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@
+GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@
 GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@
 GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@
 GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@
@@ -1988,6 +2136,7 @@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@
 GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@
 GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@
 GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@
+GL_GNULIB_MBSTOWCS = @GL_GNULIB_MBSTOWCS@
 GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@
 GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@
 GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@
@@ -2034,6 +2183,7 @@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@
 GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@
 GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@
 GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@
+GL_GNULIB_MEMSET_EXPLICIT = @GL_GNULIB_MEMSET_EXPLICIT@
 GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@
 GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@
 GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@
@@ -2090,6 +2240,7 @@ GL_GNULIB_READ = @GL_GNULIB_READ@
 GL_GNULIB_READLINK = @GL_GNULIB_READLINK@
 GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@
 GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@
+GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@
 GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@
 GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@
 GL_GNULIB_RECV = @GL_GNULIB_RECV@
@@ -2153,8 +2304,10 @@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@
 GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@
 GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@
 GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@
+GL_GNULIB_TIME = @GL_GNULIB_TIME@
 GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@
 GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@
+GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@
 GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@
 GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@
 GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@
@@ -2228,6 +2381,7 @@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@
 GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
 GNULIB_WARN_CFLAGS = @GNULIB_WARN_CFLAGS@
 GREP = @GREP@
+HARD_LOCALE_LIB = @HARD_LOCALE_LIB@
 HAVE_ACCEPT4 = @HAVE_ACCEPT4@
 HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@
 HAVE_ALLOCA_H = @HAVE_ALLOCA_H@
@@ -2258,6 +2412,7 @@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@
 HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
 HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
 HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
+HAVE_DECL_GETW = @HAVE_DECL_GETW@
 HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
 HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
 HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@
@@ -2267,6 +2422,8 @@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@
 HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
 HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
 HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@
+HAVE_DECL_PROGRAM_INVOCATION_NAME = @HAVE_DECL_PROGRAM_INVOCATION_NAME@
+HAVE_DECL_PUTW = @HAVE_DECL_PUTW@
 HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
 HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
 HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@
@@ -2290,6 +2447,9 @@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
 HAVE_DPRINTF = @HAVE_DPRINTF@
 HAVE_DUP3 = @HAVE_DUP3@
 HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
+HAVE_ERROR = @HAVE_ERROR@
+HAVE_ERROR_AT_LINE = @HAVE_ERROR_AT_LINE@
+HAVE_ERROR_H = @HAVE_ERROR_H@
 HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
 HAVE_EXECVPE = @HAVE_EXECVPE@
 HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@
@@ -2320,12 +2480,15 @@ HAVE_GETLOGIN = @HAVE_GETLOGIN@
 HAVE_GETOPT_H = @HAVE_GETOPT_H@
 HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
 HAVE_GETPASS = @HAVE_GETPASS@
+HAVE_GETPROGNAME = @HAVE_GETPROGNAME@
 HAVE_GETRANDOM = @HAVE_GETRANDOM@
 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
 HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@
 HAVE_GETUMASK = @HAVE_GETUMASK@
 HAVE_GRANTPT = @HAVE_GRANTPT@
 HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
+HAVE_IMAXABS = @HAVE_IMAXABS@
+HAVE_IMAXDIV = @HAVE_IMAXDIV@
 HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@
 HAVE_INITSTATE = @HAVE_INITSTATE@
 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
@@ -2353,6 +2516,7 @@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
 HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
 HAVE_MBTOWC = @HAVE_MBTOWC@
 HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MEMSET_EXPLICIT = @HAVE_MEMSET_EXPLICIT@
 HAVE_MKDIRAT = @HAVE_MKDIRAT@
 HAVE_MKDTEMP = @HAVE_MKDTEMP@
 HAVE_MKFIFO = @HAVE_MKFIFO@
@@ -2510,9 +2674,11 @@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
 HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@
 HAVE_TIMEGM = @HAVE_TIMEGM@
 HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@
+HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@
 HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@
 HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
 HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNISTRING_WOE32DLL_H = @HAVE_UNISTRING_WOE32DLL_H@
 HAVE_UNLINKAT = @HAVE_UNLINKAT@
 HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
 HAVE_USLEEP = @HAVE_USLEEP@
@@ -2562,7 +2728,6 @@ HAVE_WMEMPCPY = @HAVE_WMEMPCPY@
 HAVE_WMEMSET = @HAVE_WMEMSET@
 HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@
 HAVE_XLOCALE_H = @HAVE_XLOCALE_H@
-HAVE__BOOL = @HAVE__BOOL@
 HAVE__EXIT = @HAVE__EXIT@
 HELP2MAN = @HELP2MAN@
 HOST_CPU = @HOST_CPU@
@@ -2628,15 +2793,20 @@ LTLIBOBJS = @LTLIBOBJS@
 LTLIBSIGSEGV = @LTLIBSIGSEGV@
 LTLIBTHREAD = @LTLIBTHREAD@
 MAKEINFO = @MAKEINFO@
+MBRTOWC_LIB = @MBRTOWC_LIB@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
+NANOSLEEP_LIB = @NANOSLEEP_LIB@
 NETINET_IN_H = @NETINET_IN_H@
 NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@
+NEXT_ASSERT_H = @NEXT_ASSERT_H@
 NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@
+NEXT_AS_FIRST_DIRECTIVE_ASSERT_H = @NEXT_AS_FIRST_DIRECTIVE_ASSERT_H@
 NEXT_AS_FIRST_DIRECTIVE_CTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_CTYPE_H@
 NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@
+NEXT_AS_FIRST_DIRECTIVE_ERROR_H = @NEXT_AS_FIRST_DIRECTIVE_ERROR_H@
 NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@
 NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@
 NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H = @NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H@
@@ -2672,6 +2842,7 @@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@
 NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@
 NEXT_CTYPE_H = @NEXT_CTYPE_H@
 NEXT_ERRNO_H = @NEXT_ERRNO_H@
+NEXT_ERROR_H = @NEXT_ERROR_H@
 NEXT_FCNTL_H = @NEXT_FCNTL_H@
 NEXT_FLOAT_H = @NEXT_FLOAT_H@
 NEXT_FNMATCH_H = @NEXT_FNMATCH_H@
@@ -2714,27 +2885,35 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
 PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
 POSUB = @POSUB@
 PRAGMA_COLUMNS = @PRAGMA_COLUMNS@
 PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
 PRIPTR_PREFIX = @PRIPTR_PREFIX@
 PR_PROGRAM = @PR_PROGRAM@
 PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@
+PTHREAD_SIGMASK_LIB = @PTHREAD_SIGMASK_LIB@
 PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
 RANLIB = @RANLIB@
 REPLACE_ACCESS = @REPLACE_ACCESS@
 REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@
 REPLACE_BTOWC = @REPLACE_BTOWC@
-REPLACE_CALLOC = @REPLACE_CALLOC@
+REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@
+REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@
 REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@
+REPLACE_CHMOD = @REPLACE_CHMOD@
 REPLACE_CHOWN = @REPLACE_CHOWN@
 REPLACE_CLOSE = @REPLACE_CLOSE@
+REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@
 REPLACE_CREAT = @REPLACE_CREAT@
 REPLACE_CTIME = @REPLACE_CTIME@
 REPLACE_DPRINTF = @REPLACE_DPRINTF@
 REPLACE_DUP = @REPLACE_DUP@
 REPLACE_DUP2 = @REPLACE_DUP2@
+REPLACE_DUP3 = @REPLACE_DUP3@
 REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
+REPLACE_ERROR = @REPLACE_ERROR@
+REPLACE_ERROR_AT_LINE = @REPLACE_ERROR_AT_LINE@
 REPLACE_EXECL = @REPLACE_EXECL@
 REPLACE_EXECLE = @REPLACE_EXECLE@
 REPLACE_EXECLP = @REPLACE_EXECLP@
@@ -2747,11 +2926,13 @@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@
 REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
 REPLACE_FCLOSE = @REPLACE_FCLOSE@
 REPLACE_FCNTL = @REPLACE_FCNTL@
+REPLACE_FDATASYNC = @REPLACE_FDATASYNC@
 REPLACE_FDOPEN = @REPLACE_FDOPEN@
 REPLACE_FFLUSH = @REPLACE_FFLUSH@
 REPLACE_FFSLL = @REPLACE_FFSLL@
 REPLACE_FNMATCH = @REPLACE_FNMATCH@
 REPLACE_FOPEN = @REPLACE_FOPEN@
+REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@
 REPLACE_FPRINTF = @REPLACE_FPRINTF@
 REPLACE_FPURGE = @REPLACE_FPURGE@
 REPLACE_FREE = @REPLACE_FREE@
@@ -2769,17 +2950,24 @@ REPLACE_GETCWD = @REPLACE_GETCWD@
 REPLACE_GETDELIM = @REPLACE_GETDELIM@
 REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
 REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@
+REPLACE_GETENTROPY = @REPLACE_GETENTROPY@
 REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
 REPLACE_GETLINE = @REPLACE_GETLINE@
+REPLACE_GETLOADAVG = @REPLACE_GETLOADAVG@
 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
 REPLACE_GETPASS = @REPLACE_GETPASS@
+REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@
+REPLACE_GETPROGNAME = @REPLACE_GETPROGNAME@
 REPLACE_GETRANDOM = @REPLACE_GETRANDOM@
+REPLACE_GETSUBOPT = @REPLACE_GETSUBOPT@
 REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
 REPLACE_GMTIME = @REPLACE_GMTIME@
 REPLACE_ICONV = @REPLACE_ICONV@
 REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@
 REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@
+REPLACE_IMAXABS = @REPLACE_IMAXABS@
+REPLACE_IMAXDIV = @REPLACE_IMAXDIV@
 REPLACE_INET_NTOP = @REPLACE_INET_NTOP@
 REPLACE_INET_PTON = @REPLACE_INET_PTON@
 REPLACE_INITSTATE = @REPLACE_INITSTATE@
@@ -2798,21 +2986,27 @@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@
 REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
 REPLACE_LSEEK = @REPLACE_LSEEK@
 REPLACE_LSTAT = @REPLACE_LSTAT@
-REPLACE_MALLOC = @REPLACE_MALLOC@
+REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@
+REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@
 REPLACE_MBRLEN = @REPLACE_MBRLEN@
 REPLACE_MBRTOWC = @REPLACE_MBRTOWC@
 REPLACE_MBSINIT = @REPLACE_MBSINIT@
 REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@
 REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@
 REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@
+REPLACE_MBSTOWCS = @REPLACE_MBSTOWCS@
 REPLACE_MBTOWC = @REPLACE_MBTOWC@
+REPLACE_MB_CUR_MAX = @REPLACE_MB_CUR_MAX@
 REPLACE_MEMCHR = @REPLACE_MEMCHR@
 REPLACE_MEMMEM = @REPLACE_MEMMEM@
+REPLACE_MEMPCPY = @REPLACE_MEMPCPY@
 REPLACE_MKDIR = @REPLACE_MKDIR@
 REPLACE_MKFIFO = @REPLACE_MKFIFO@
 REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@
 REPLACE_MKNOD = @REPLACE_MKNOD@
 REPLACE_MKNODAT = @REPLACE_MKNODAT@
+REPLACE_MKOSTEMP = @REPLACE_MKOSTEMP@
+REPLACE_MKOSTEMPS = @REPLACE_MKOSTEMPS@
 REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
 REPLACE_MKTIME = @REPLACE_MKTIME@
 REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
@@ -2823,8 +3017,10 @@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
 REPLACE_OPEN = @REPLACE_OPEN@
 REPLACE_OPENAT = @REPLACE_OPENAT@
 REPLACE_PERROR = @REPLACE_PERROR@
+REPLACE_PIPE2 = @REPLACE_PIPE2@
 REPLACE_POPEN = @REPLACE_POPEN@
 REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@
+REPLACE_POSIX_OPENPT = @REPLACE_POSIX_OPENPT@
 REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
@@ -2891,8 +3087,9 @@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
 REPLACE_READ = @REPLACE_READ@
 REPLACE_READLINK = @REPLACE_READLINK@
 REPLACE_READLINKAT = @REPLACE_READLINKAT@
-REPLACE_REALLOC = @REPLACE_REALLOC@
 REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@
+REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@
+REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@
 REPLACE_REALPATH = @REPLACE_REALPATH@
 REPLACE_REMOVE = @REPLACE_REMOVE@
 REPLACE_RENAME = @REPLACE_RENAME@
@@ -2901,6 +3098,7 @@ REPLACE_RMDIR = @REPLACE_RMDIR@
 REPLACE_SCHED_YIELD = @REPLACE_SCHED_YIELD@
 REPLACE_SELECT = @REPLACE_SELECT@
 REPLACE_SETENV = @REPLACE_SETENV@
+REPLACE_SETHOSTNAME = @REPLACE_SETHOSTNAME@
 REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
 REPLACE_SETSTATE = @REPLACE_SETSTATE@
 REPLACE_SLEEP = @REPLACE_SLEEP@
@@ -2909,6 +3107,7 @@ REPLACE_SPRINTF = @REPLACE_SPRINTF@
 REPLACE_STAT = @REPLACE_STAT@
 REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@
 REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
+REPLACE_STPCPY = @REPLACE_STPCPY@
 REPLACE_STPNCPY = @REPLACE_STPNCPY@
 REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
 REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@
@@ -2935,7 +3134,9 @@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
 REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@
 REPLACE_SYMLINK = @REPLACE_SYMLINK@
 REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
+REPLACE_TIME = @REPLACE_TIME@
 REPLACE_TIMEGM = @REPLACE_TIMEGM@
+REPLACE_TIMESPEC_GET = @REPLACE_TIMESPEC_GET@
 REPLACE_TMPFILE = @REPLACE_TMPFILE@
 REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
 REPLACE_TRUNCATE = @REPLACE_TRUNCATE@
@@ -2953,25 +3154,33 @@ REPLACE_VPRINTF = @REPLACE_VPRINTF@
 REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@
 REPLACE_VSPRINTF = @REPLACE_VSPRINTF@
 REPLACE_WCRTOMB = @REPLACE_WCRTOMB@
+REPLACE_WCSCMP = @REPLACE_WCSCMP@
 REPLACE_WCSFTIME = @REPLACE_WCSFTIME@
+REPLACE_WCSNCMP = @REPLACE_WCSNCMP@
 REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@
 REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@
+REPLACE_WCSSTR = @REPLACE_WCSSTR@
 REPLACE_WCSTOK = @REPLACE_WCSTOK@
 REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@
 REPLACE_WCTOB = @REPLACE_WCTOB@
 REPLACE_WCTOMB = @REPLACE_WCTOMB@
 REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
+REPLACE_WMEMCMP = @REPLACE_WMEMCMP@
+REPLACE_WMEMPCPY = @REPLACE_WMEMPCPY@
 REPLACE_WRITE = @REPLACE_WRITE@
+REPLACE__EXIT = @REPLACE__EXIT@
+SCHED_YIELD_LIB = @SCHED_YIELD_LIB@
 SED = @SED@
+SELECT_LIB = @SELECT_LIB@
+SETLOCALE_NULL_LIB = @SETLOCALE_NULL_LIB@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIGSEGV_H = @SIGSEGV_H@
 SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
 SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
 SRC_VERSION_C = @SRC_VERSION_C@
-STDALIGN_H = @STDALIGN_H@
 STDARG_H = @STDARG_H@
-STDBOOL_H = @STDBOOL_H@
+STDCKDINT_H = @STDCKDINT_H@
 STDDEF_H = @STDDEF_H@
 STDINT_H = @STDINT_H@
 STRIP = @STRIP@
@@ -3009,8 +3218,10 @@ ac_ct_CC = @ac_ct_CC@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
+am__rm_f_notfound = @am__rm_f_notfound@
 am__tar = @am__tar@
 am__untar = @am__untar@
+am__xargs_n = @am__xargs_n@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
@@ -3023,8 +3234,10 @@ datarootdir = @datarootdir@
 docdir = @docdir@
 dvidir = @dvidir@
 exec_prefix = @exec_prefix@
+gl_LIBOBJDEPS = @gl_LIBOBJDEPS@
 gl_LIBOBJS = @gl_LIBOBJS@
 gl_LTLIBOBJS = @gl_LTLIBOBJS@
+gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@
 gltests_LIBOBJS = @gltests_LIBOBJS@
 gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
 gltests_WITNESS = @gltests_WITNESS@
@@ -3057,7 +3270,7 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-AUTOMAKE_OPTIONS = 1.11 foreign subdir-objects
+AUTOMAKE_OPTIONS = 1.14 foreign subdir-objects
 SUBDIRS = .
 TESTS_ENVIRONMENT = EXEEXT='@EXEEXT@' srcdir='$(srcdir)' \
        LOCALE_FR='@LOCALE_FR@' LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' \
@@ -3075,55 +3288,58 @@ TESTS_ENVIRONMENT = EXEEXT='@EXEEXT@' srcdir='$(srcdir)' \
        LOCALE_ZH_CN='@LOCALE_ZH_CN@' \
        LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' \
        LOCALE_ZH_CN='@LOCALE_ZH_CN@' LOCALE_FR='@LOCALE_FR@' \
-       LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' abs_aux_dir='$(abs_aux_dir)' \
+       LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' \
+       LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' \
+       LOCALE_ZH_CN='@LOCALE_ZH_CN@' abs_aux_dir='$(abs_aux_dir)' \
        abs_aux_dir='$(abs_aux_dir)' MAKE='$(MAKE)' \
        LOCALE_FR='@LOCALE_FR@' LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' \
        LOCALE_JA='@LOCALE_JA@' LOCALE_ZH_CN='@LOCALE_ZH_CN@'
 noinst_HEADERS = 
 noinst_LIBRARIES = 
 check_LIBRARIES = libtests.a
-EXTRA_DIST = accept.c w32sock.h test-accept.c signature.h macros.h \
-       alloca.c test-alloca-opt.c test-areadlink.h test-areadlink.c \
-       macros.h test-argmatch.c macros.h arpa_inet.in.h \
-       test-arpa_inet.c atoll.c test-binary-io.sh test-binary-io.c \
-       macros.h bind.c w32sock.h test-bind.c signature.h macros.h \
-       test-bitrotate.c macros.h test-btowc1.sh test-btowc2.sh \
-       test-btowc.c signature.h macros.h test-c-ctype.c macros.h \
-       test-c-stack.c test-c-stack.sh test-c-stack2.sh macros.h \
-       test-c-strcase.sh test-c-strcasecmp.c test-c-strncasecmp.c \
-       macros.h test-calloc-gnu.c macros.h test-cloexec.c macros.h \
-       test-close.c signature.h macros.h connect.c w32sock.h \
-       test-connect.c signature.h macros.h test-ctype.c \
-       test-dirname.c test-dup2.c signature.h macros.h \
-       test-dynarray.c macros.h test-environ.c test-errno.c \
-       test-exclude.c test-exclude1.sh test-exclude2.sh \
+EXTRA_DIST = w32sock.h test-accept.c signature.h macros.h \
+       test-alignasof.c macros.h alloca.c test-alloca-opt.c \
+       test-areadlink.h test-areadlink.c macros.h test-argmatch.c \
+       macros.h arpa_inet.in.h test-arpa_inet.c test-assert.c \
+       test-binary-io.sh test-binary-io.c macros.h w32sock.h \
+       test-bind.c signature.h macros.h test-bitrotate.c macros.h \
+       test-btowc1.sh test-btowc2.sh test-btowc3.sh test-btowc.c \
+       signature.h macros.h test-c-ctype.c macros.h test-c-stack.c \
+       test-c-stack.sh test-c-stack2.sh macros.h test-c-strcase.sh \
+       test-c-strcasecmp.c test-c-strncasecmp.c macros.h \
+       str-two-way.h test-c-strcasestr.c macros.h test-calloc-gnu.c \
+       macros.h test-cloexec.c macros.h test-close.c signature.h \
+       macros.h w32sock.h test-connect.c signature.h macros.h \
+       test-ctype.c test-dirname.c test-dup2.c signature.h macros.h \
+       test-environ.c test-errno.c test-error.sh test-error.c \
+       macros.h test-exclude.c test-exclude1.sh test-exclude2.sh \
        test-exclude3.sh test-exclude4.sh test-exclude5.sh \
        test-exclude6.sh test-exclude7.sh test-exclude8.sh \
-       test-fcntl-h.c test-fcntl.c signature.h macros.h fdopen.c \
-       test-fdopen.c signature.h macros.h test-fgetc.c signature.h \
-       macros.h test-filenamecat.c test-float.c macros.h \
+       test-fcntl-h.c test-fcntl.c signature.h macros.h test-fdopen.c \
+       signature.h macros.h test-fgetc.c signature.h macros.h \
+       test-filenamecat.c float.in.h test-float.c macros.h \
        test-fnmatch-h.c test-fnmatch.c signature.h macros.h \
        test-fopen-gnu.c macros.h test-fopen.h test-fopen.c \
        signature.h macros.h fpucw.h test-fputc.c signature.h macros.h \
        test-fread.c signature.h macros.h test-free.c macros.h \
        test-freopen.c signature.h macros.h test-fstat.c signature.h \
-       macros.h ftruncate.c test-ftruncate.c test-ftruncate.sh \
-       signature.h macros.h test-fwrite.c signature.h macros.h \
-       getcwd-lgpl.c test-getcwd-lgpl.c signature.h macros.h \
-       test-getdtablesize.c signature.h macros.h macros.h signature.h \
-       test-getopt-gnu.c test-getopt-main.h test-getopt.h \
-       test-getopt_long.h macros.h signature.h test-getopt-posix.c \
-       test-getopt-main.h test-getopt.h test-getprogname.c \
-       test-getrandom.c signature.h macros.h signature.h \
-       test-gettimeofday.c test-hard-locale.c locale.c test-hash.c \
-       macros.h test-iconv-h.c test-iconv.c signature.h macros.h \
-       test-ignore-value.c inet_pton.c test-inet_pton.c signature.h \
-       macros.h test-intprops.c macros.h macros.h test-inttostr.c \
-       test-inttypes.c ioctl.c w32sock.h test-ioctl.c signature.h \
-       macros.h test-isblank.c signature.h macros.h test-iswblank.c \
-       macros.h test-iswdigit.sh test-iswdigit.c signature.h macros.h \
+       macros.h test-ftruncate.c test-ftruncate.sh signature.h \
+       macros.h test-fwrite.c signature.h macros.h test-getcwd-lgpl.c \
+       signature.h macros.h test-getdtablesize.c signature.h macros.h \
+       macros.h signature.h test-getopt-gnu.c test-getopt-main.h \
+       test-getopt.h test-getopt_long.h macros.h signature.h \
+       test-getopt-posix.c test-getopt-main.h test-getopt.h \
+       test-getprogname.c test-getrandom.c signature.h macros.h \
+       test-gettimeofday.c signature.h macros.h test-dynarray.c \
+       macros.h test-hard-locale.c locale.c test-hash.c macros.h \
+       test-iconv-h.c test-iconv.c signature.h macros.h \
+       test-ignore-value.c test-inet_pton.c signature.h macros.h \
+       test-intprops.c macros.h macros.h test-inttostr.c \
+       test-inttypes.c w32sock.h test-ioctl.c signature.h macros.h \
+       test-isblank.c signature.h macros.h test-iswblank.c macros.h \
+       test-iswdigit.sh test-iswdigit.c signature.h macros.h \
        test-iswxdigit.sh test-iswxdigit.c signature.h macros.h \
-       test-langinfo.c test-limits-h.c listen.c w32sock.h \
+       test-langinfo.c test-largefile.c test-limits-h.c w32sock.h \
        test-listen.c signature.h macros.h test-localcharset.c \
        test-locale.c test-localeconv.c signature.h macros.h \
        test-lstat.h test-lstat.c signature.h macros.h \
@@ -3136,61 +3352,63 @@ EXTRA_DIST = accept.c w32sock.h test-accept.c signature.h macros.h \
        signature.h macros.h test-mbscasecmp.sh test-mbscasecmp.c \
        macros.h test-mbsinit.sh test-mbsinit.c signature.h macros.h \
        test-mbsrtowcs1.sh test-mbsrtowcs2.sh test-mbsrtowcs3.sh \
-       test-mbsrtowcs4.sh test-mbsrtowcs.c signature.h macros.h \
-       test-mbsstr1.c test-mbsstr2.sh test-mbsstr2.c test-mbsstr3.sh \
-       test-mbsstr3.c macros.h test-memchr.c zerosize-ptr.h \
-       signature.h macros.h test-mkdir.h test-mkdir.c signature.h \
-       macros.h nanosleep.c test-nanosleep.c signature.h macros.h \
-       netinet_in.in.h test-netinet_in.c test-nl_langinfo.sh \
-       test-nl_langinfo.c test-nl_langinfo-mt.c signature.h macros.h \
-       test-nstrftime.c macros.h test-open.h test-open.c signature.h \
-       macros.h test-pathmax.c perror.c macros.h signature.h \
-       test-perror.c test-perror2.c test-perror.sh pipe.c test-pipe.c \
-       signature.h macros.h pthread.in.h test-pthread.c \
-       pthread-thread.c test-pthread-thread.c macros.h \
-       pthread_sigmask.c test-pthread_sigmask1.c \
-       test-pthread_sigmask2.c signature.h macros.h putenv.c \
+       test-mbsrtowcs4.sh test-mbsrtowcs5.sh test-mbsrtowcs.c \
+       signature.h macros.h test-mbsstr1.c test-mbsstr2.sh \
+       test-mbsstr2.c test-mbsstr3.sh test-mbsstr3.c macros.h \
+       test-memchr.c zerosize-ptr.h signature.h macros.h test-mkdir.h \
+       test-mkdir.c signature.h macros.h test-nanosleep.c signature.h \
+       macros.h netinet_in.in.h test-netinet_in.c \
+       test-nl_langinfo1.sh test-nl_langinfo2.sh test-nl_langinfo1.c \
+       test-nl_langinfo2.c test-nl_langinfo-mt.c signature.h macros.h \
+       test-nstrftime.c macros.h test-nullptr.c macros.h test-open.h \
+       test-open.c signature.h macros.h test-pathmax.c macros.h \
+       signature.h test-perror.c test-perror2.c test-perror.sh \
+       test-pipe.c signature.h macros.h test-pselect.c test-select.h \
+       macros.h signature.h pthread.in.h test-pthread.c \
+       test-pthread-thread.c macros.h test-pthread_sigmask1.c \
+       test-pthread_sigmask2.c signature.h macros.h \
        test-quotearg-simple.c test-quotearg.h macros.h zerosize-ptr.h \
        test-raise.c signature.h macros.h test-rawmemchr.c \
        zerosize-ptr.h signature.h macros.h test-readlink.h \
        test-readlink.c signature.h macros.h test-realloc-gnu.c \
        macros.h test-reallocarray.c signature.h macros.h test-regex.c \
-       macros.h same-inode.h sched.in.h test-sched.c select.c \
-       macros.h signature.h test-select.c test-select.h \
-       test-select-fd.c test-select-in.sh test-select-out.sh \
-       test-select-stdin.c test-setenv.c signature.h macros.h \
-       test-setlocale_null.c test-setlocale_null-mt-one.c \
-       test-setlocale_null-mt-all.c setsockopt.c w32sock.h \
-       test-setsockopt.c signature.h macros.h test-sh-quote.c \
-       sig-handler.h sigaction.c test-sigaction.c signature.h \
-       macros.h test-signal-h.c sigprocmask.c test-sigprocmask.c \
-       signature.h macros.h test-sigsegv-catch-segv1.c \
-       test-sigsegv-catch-segv2.c test-sigsegv-catch-stackoverflow1.c \
+       macros.h same-inode.h sched.in.h test-sched.c macros.h \
+       signature.h test-select.c test-select.h test-select-fd.c \
+       test-select-in.sh test-select-out.sh test-select-stdin.c \
+       test-setenv.c signature.h macros.h test-setlocale_null.c \
+       test-setlocale_null-mt-one.c test-setlocale_null-mt-all.c \
+       w32sock.h test-setsockopt.c signature.h macros.h \
+       test-sh-quote.c test-signal-h.c test-sigprocmask.c signature.h \
+       macros.h test-sigsegv-catch-segv1.c test-sigsegv-catch-segv2.c \
+       test-sigsegv-catch-stackoverflow1.c \
        test-sigsegv-catch-stackoverflow2.c altstack-util.h \
-       mmap-anon-util.h sleep.c test-sleep.c signature.h macros.h \
-       _Noreturn.h arg-nonnull.h c++defs.h warn-on-use.h snprintf.c \
-       test-snprintf.c signature.h macros.h socket.c w32sock.h \
-       w32sock.h test-sockets.c test-stat.h test-stat.c signature.h \
-       macros.h test-stat-time.c macros.h nap.h test-stdalign.c \
-       macros.h test-stdbool.c test-stddef.c test-stdint.c \
-       test-stdio.c test-stdlib.c test-sys_wait.h test-strerror.c \
-       signature.h macros.h strerror_r.c test-strerror_r.c \
-       signature.h macros.h test-striconv.c macros.h test-string.c \
-       test-strings.c test-strnlen.c zerosize-ptr.h signature.h \
-       macros.h test-strtoimax.c signature.h macros.h test-strtoll.c \
-       signature.h macros.h symlink.c test-symlink.h test-symlink.c \
-       signature.h macros.h sys_ioctl.in.h test-sys_ioctl.c \
-       test-sys_random.c sys_select.in.h test-sys_select.c \
-       signature.h sys_socket.in.h test-sys_socket.c test-sys_stat.c \
-       test-sys_time.c test-sys_types.c sys_uio.in.h test-sys_uio.c \
-       test-sys_wait.c test-sys_wait.h init.sh test-init.sh \
-       test-thread_self.c test-thread_create.c macros.h test-time.c \
-       test-timespec.c macros.h test-unistd.c \
+       mmap-anon-util.h test-sleep.c signature.h macros.h _Noreturn.h \
+       arg-nonnull.h c++defs.h warn-on-use.h snprintf.c \
+       test-snprintf.c signature.h macros.h w32sock.h w32sock.h \
+       test-sockets.c test-stat.h test-stat.c signature.h macros.h \
+       test-stat-time.c macros.h nap.h test-stdbool.c macros.h \
+       test-intprops.c test-stdckdint.c test-stddef.c test-stdint.c \
+       test-stdio.c nan.h macros.h test-stdlib.c test-sys_wait.h \
+       test-strerror.c signature.h macros.h strerror_r.c \
+       test-strerror_r.c signature.h macros.h test-striconv.c \
+       macros.h test-string.c test-strings.c test-strnlen.c \
+       zerosize-ptr.h signature.h macros.h test-strtoimax.c \
+       signature.h macros.h test-strtoll.c signature.h macros.h \
+       test-symlink.h test-symlink.c signature.h macros.h \
+       sys_ioctl.in.h test-sys_ioctl.c test-sys_random.c \
+       sys_select.in.h test-sys_select.c signature.h sys_socket.in.h \
+       test-sys_socket.c test-sys_stat.c test-sys_time.c \
+       test-sys_types.c sys_uio.in.h test-sys_uio.c test-sys_wait.c \
+       test-sys_wait.h 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-timespec.c macros.h test-trim1.sh \
+       test-trim2.sh test-trim3.sh test-trim.c macros.h test-unistd.c \
        unistr/test-u8-mbtoucr.c macros.h unistr/test-u8-uctomb.c \
        macros.h uniwidth/test-uc_width.c uniwidth/test-uc_width2.c \
        uniwidth/test-uc_width2.sh macros.h test-unsetenv.c \
-       signature.h macros.h test-update-copyright.sh \
-       test-vasnprintf.c macros.h test-vasprintf.c signature.h \
+       signature.h macros.h test-update-copyright.sh asnprintf.c \
+       float+.h printf-args.c printf-args.h printf-parse.c \
+       printf-parse.h vasnprintf.c vasnprintf.h test-vasnprintf.c \
        macros.h test-vc-list-files-git.sh test-vc-list-files-cvs.sh \
        test-verify.c test-verify-try.c test-verify.sh \
        test-version-etc.c test-version-etc.sh test-wchar.c \
@@ -3198,25 +3416,25 @@ EXTRA_DIST = accept.c w32sock.h test-accept.c signature.h macros.h \
        test-wcrtomb-w32-2.sh test-wcrtomb-w32-3.sh \
        test-wcrtomb-w32-4.sh test-wcrtomb-w32-5.sh \
        test-wcrtomb-w32-6.sh test-wcrtomb-w32-7.sh test-wcrtomb-w32.c \
-       signature.h macros.h wctob.c wctomb-impl.h wctomb.c \
-       test-wctype-h.c macros.h test-wcwidth.c signature.h macros.h \
-       windows-thread.c windows-thread.h windows-tls.c windows-tls.h \
-       test-xalloc-die.c test-xalloc-die.sh test-xstdopen.c \
-       test-xstdopen.sh macros.h test-xstrtoimax.c test-xstrtoimax.sh \
-       xstrtol-error.h test-xstrtol.c test-xstrtoul.c test-xstrtol.sh \
-       test-xvasprintf.c macros.h
-BUILT_SOURCES = arpa/inet.h $(NETINET_IN_H) pthread.h sched.h \
-       sys/ioctl.h sys/select.h sys/socket.h sys/uio.h
+       signature.h macros.h wctomb-impl.h test-wctype-h.c macros.h \
+       test-wcwidth.c signature.h macros.h windows-thread.h \
+       windows-tls.h test-xalloc-die.c test-xalloc-die.sh \
+       test-xstdopen.c test-xstdopen.sh macros.h test-xstrtoimax.c \
+       test-xstrtoimax.sh xstrtol-error.h test-xstrtol.c \
+       test-xstrtoul.c test-xstrtol.sh test-year2038.c
+BUILT_SOURCES = arpa/inet.h $(FLOAT_H) $(NETINET_IN_H) pthread.h \
+       sched.h sys/ioctl.h sys/select.h sys/socket.h sys/uio.h
 SUFFIXES = 
 
 # This test expects compilation of test-verify-try.c to fail, and
 # each time it fails, the makefile rule does not perform the usual
 #  "mv -f $name.Tpo $name.po, so tell make clean to remove that file.
 MOSTLYCLEANFILES = core *.stackdump arpa/inet.h arpa/inet.h-t \
-       t-c-stack.tmp t-c-stack2.tmp netinet/in.h netinet/in.h-t \
-       pthread.h pthread.h-t sched.h sched.h-t sys/ioctl.h \
-       sys/ioctl.h-t sys/select.h sys/select.h-t sys/socket.h \
-       sys/socket.h-t sys/uio.h sys/uio.h-t .deps/test-verify-try.Tpo
+       t-c-stack.tmp t-c-stack2.tmp float.h float.h-t netinet/in.h \
+       netinet/in.h-t pthread.h pthread.h-t sched.h sched.h-t \
+       sys/ioctl.h sys/ioctl.h-t sys/select.h sys/select.h-t \
+       sys/socket.h sys/socket.h-t sys/uio.h sys/uio.h-t \
+       .deps/test-verify-try.Tpo
 MOSTLYCLEANDIRS = arpa netinet sys sys sys sys
 CLEANFILES = 
 DISTCLEANFILES = 
@@ -3229,72 +3447,96 @@ AM_CPPFLAGS = \
   -I../lib -I$(srcdir)/../lib
 
 LDADD = libtests.a ../lib/libdiffutils.a libtests.a ../lib/libdiffutils.a libtests.a $(LIBTESTS_LIBDEPS)
-libtests_a_SOURCES = dtotimespec.c hash-pjw.h hash-pjw.c sig-handler.c \
-       sockets.h sockets.c sys_socket.c glthread/thread.h \
-       glthread/thread.c timespec-add.c timespec-sub.c \
+libtests_a_SOURCES = $(am__append_1) $(am__append_2) $(am__append_3) \
+       c-strcasestr.h c-strcasestr.c $(am__append_4) dtotimespec.c \
+       $(am__append_5) $(am__append_6) $(am__append_7) \
+       $(am__append_8) $(am__append_9) hash-pjw.h hash-pjw.c \
+       $(am__append_10) $(am__append_11) $(am__append_12) \
+       $(am__append_13) $(am__append_14) $(am__append_15) \
+       $(am__append_16) $(am__append_17) $(am__append_18) \
+       $(am__append_19) $(am__append_20) $(am__append_21) size_max.h \
+       $(am__append_22) $(am__append_23) sockets.h sockets.c \
+       $(am__append_24) sys_socket.c glthread/thread.h \
+       glthread/thread.c $(am__append_25) timespec-add.c \
+       timespec-sub.c $(am__append_26) $(am__append_27) \
+       $(am__append_28) $(am__append_29) xsize.h xsize.c \
        xstrtol-error.c
 libtests_a_LIBADD = $(gltests_LIBOBJS) @ALLOCA@
 libtests_a_DEPENDENCIES = $(gltests_LIBOBJS) @ALLOCA@
-EXTRA_libtests_a_SOURCES = accept.c alloca.c atoll.c bind.c connect.c \
-       fdopen.c ftruncate.c getcwd-lgpl.c inet_pton.c ioctl.c \
-       listen.c nanosleep.c perror.c pipe.c pthread-thread.c \
-       pthread_sigmask.c putenv.c select.c setsockopt.c sigaction.c \
-       sigprocmask.c sleep.c snprintf.c socket.c strerror_r.c \
-       symlink.c wctob.c wctomb.c windows-thread.c windows-tls.c
+EXTRA_libtests_a_SOURCES = alloca.c snprintf.c strerror_r.c \
+       asnprintf.c printf-args.c printf-parse.c vasnprintf.c
 AM_LIBTOOLFLAGS = --preserve-dup-deps
 test_accept_LDADD = $(LDADD) @LIBSOCKET@
-test_argmatch_LDADD = $(LDADD) @LIBINTL@ $(LIB_MBRTOWC)
+test_argmatch_LDADD = $(LDADD) @LIBINTL@ $(MBRTOWC_LIB)
 test_bind_LDADD = $(LDADD) @LIBSOCKET@ $(INET_PTON_LIB)
-test_btowc_LDADD = $(LDADD) $(LIB_SETLOCALE)
-test_c_ctype_LDADD = $(LDADD) $(LIB_SETLOCALE)
+test_btowc_LDADD = $(LDADD) $(SETLOCALE_LIB)
+test_c_ctype_LDADD = $(LDADD) $(SETLOCALE_LIB)
 test_c_stack_LDADD = $(LDADD) $(LIBCSTACK) @LIBINTL@
-test_c_strcasecmp_LDADD = $(LDADD) $(LIB_SETLOCALE)
-test_c_strncasecmp_LDADD = $(LDADD) $(LIB_SETLOCALE)
+test_c_strcasecmp_LDADD = $(LDADD) $(SETLOCALE_LIB)
+test_c_strncasecmp_LDADD = $(LDADD) $(SETLOCALE_LIB)
 test_connect_LDADD = $(LDADD) @LIBSOCKET@ $(INET_PTON_LIB)
 test_dirname_LDADD = $(LDADD) @LIBINTL@
-test_exclude_LDADD = $(LDADD) $(LIBUNISTRING) @LIBINTL@ $(LIB_MBRTOWC) $(LIBTHREAD)
+test_error_LDADD = $(LDADD) $(LIBINTL)
+test_exclude_LDADD = $(LDADD) $(LIBUNISTRING) @LIBINTL@ $(MBRTOWC_LIB) $(LIBTHREAD)
 test_filenamecat_LDADD = $(LDADD) @LIBINTL@
-test_fnmatch_LDADD = $(LDADD) $(LIB_MBRTOWC)
+test_fnmatch_LDADD = $(LDADD) $(MBRTOWC_LIB)
+
+# In 'sed', replace the pattern space with a "DO NOT EDIT" comment.
+SED_HEADER_NOEDIT = s,.*,/* DO NOT EDIT! GENERATED AUTOMATICALLY! */,
+
+# '$(SED_HEADER_STDOUT) -e "..."' runs 'sed' but first outputs "DO NOT EDIT".
+SED_HEADER_STDOUT = sed -e 1h -e '1$(SED_HEADER_NOEDIT)' -e 1G
+
+# '$(SED_HEADER_TO_AT_t) FILE' copies FILE to $@-t, prepending a leading
+# "DO_NOT_EDIT".  Although this could be done more simply via:
+#      SED_HEADER_TO_AT_t = $(SED_HEADER_STDOUT) > $@-t
+# the -n and 'w' avoid a fork+exec, at least when GNU Make is used.
+SED_HEADER_TO_AT_t = $(SED_HEADER_STDOUT) -n -e 'w $@-t'
+
+# Use $(gl_V_at) instead of $(AM_V_GEN) or $(AM_V_at) on a line that
+gl_V_at = $(AM_V_GEN)
 test_getcwd_lgpl_LDADD = $(LDADD) $(LIBINTL)
 test_getopt_gnu_LDADD = $(LDADD) $(LIBINTL)
 test_getopt_posix_LDADD = $(LDADD) $(LIBINTL)
 test_getprogname_LDADD = $(LDADD)
-test_getrandom_LDADD = $(LDADD) @LIB_GETRANDOM@
+test_getrandom_LDADD = $(LDADD) @GETRANDOM_LIB@
 GPERF = gperf
 V_GPERF = $(V_GPERF_@AM_V@)
 V_GPERF_ = $(V_GPERF_@AM_DEFAULT_V@)
 V_GPERF_0 = @echo "  GPERF   " $@;
-test_hard_locale_LDADD = $(LDADD) $(LIB_SETLOCALE) @LIB_HARD_LOCALE@
+test_hard_locale_LDADD = $(LDADD) $(SETLOCALE_LIB) @HARD_LOCALE_LIB@
 current_locale_SOURCES = locale.c
 test_iconv_LDADD = $(LDADD) @LIBICONV@
 test_inet_pton_LDADD = $(LDADD) @INET_PTON_LIB@
-test_iswdigit_LDADD = $(LDADD) $(LIB_SETLOCALE) $(LIB_MBRTOWC)
-test_iswxdigit_LDADD = $(LDADD) $(LIB_SETLOCALE) $(LIB_MBRTOWC)
+test_iswdigit_LDADD = $(LDADD) $(SETLOCALE_LIB) $(MBRTOWC_LIB)
+test_iswxdigit_LDADD = $(LDADD) $(SETLOCALE_LIB) $(MBRTOWC_LIB)
 test_listen_LDADD = $(LDADD) @LIBSOCKET@
-test_localcharset_LDADD = $(LDADD) $(LIB_SETLOCALE)
-test_mbrtowc_LDADD = $(LDADD) $(LIB_SETLOCALE) $(LIB_MBRTOWC)
-test_mbscasecmp_LDADD = $(LDADD) $(LIBUNISTRING) $(LIB_SETLOCALE) $(LIB_MBRTOWC)
-test_mbsinit_LDADD = $(LDADD) $(LIB_SETLOCALE) $(LIB_MBRTOWC)
-test_mbsrtowcs_LDADD = $(LDADD) $(LIB_SETLOCALE) $(LIB_MBRTOWC)
-test_mbsstr1_LDADD = $(LDADD) $(LIBUNISTRING) $(LIB_MBRTOWC)
-test_mbsstr2_LDADD = $(LDADD) $(LIBUNISTRING) $(LIB_SETLOCALE) $(LIB_MBRTOWC)
-test_mbsstr3_LDADD = $(LDADD) $(LIBUNISTRING) $(LIB_SETLOCALE) $(LIB_MBRTOWC)
-test_nanosleep_LDADD = $(LDADD) $(LIB_NANOSLEEP)
-test_nl_langinfo_LDADD = $(LDADD) $(LIB_SETLOCALE)
-test_nl_langinfo_mt_LDADD = $(LDADD) $(LIB_SETLOCALE) $(LIBMULTITHREAD) $(LIB_NANOSLEEP)
+test_localcharset_LDADD = $(LDADD) $(SETLOCALE_LIB)
+test_mbrtowc_LDADD = $(LDADD) $(SETLOCALE_LIB) $(MBRTOWC_LIB)
+test_mbscasecmp_LDADD = $(LDADD) $(LIBUNISTRING) $(SETLOCALE_LIB) $(MBRTOWC_LIB)
+test_mbsinit_LDADD = $(LDADD) $(SETLOCALE_LIB) $(MBRTOWC_LIB)
+test_mbsrtowcs_LDADD = $(LDADD) $(SETLOCALE_LIB) $(MBRTOWC_LIB)
+test_mbsstr1_LDADD = $(LDADD) $(LIBUNISTRING) $(MBRTOWC_LIB)
+test_mbsstr2_LDADD = $(LDADD) $(LIBUNISTRING) $(SETLOCALE_LIB) $(MBRTOWC_LIB)
+test_mbsstr3_LDADD = $(LDADD) $(LIBUNISTRING) $(SETLOCALE_LIB) $(MBRTOWC_LIB)
+test_nanosleep_LDADD = $(LDADD) $(NANOSLEEP_LIB)
+test_nl_langinfo1_LDADD = $(LDADD) $(SETLOCALE_LIB)
+test_nl_langinfo2_LDADD = $(LDADD) $(SETLOCALE_LIB)
+test_nl_langinfo_mt_LDADD = $(LDADD) $(SETLOCALE_LIB) $(LIBMULTITHREAD) $(NANOSLEEP_LIB)
+test_pselect_LDADD = $(LDADD) @SELECT_LIB@ @LIBSOCKET@ @PTHREAD_SIGMASK_LIB@ $(INET_PTON_LIB)
 test_pthread_thread_LDADD = $(LDADD) @LIBPMULTITHREAD@
-test_pthread_sigmask1_LDADD = $(LDADD) @LIB_PTHREAD_SIGMASK@
-test_pthread_sigmask2_LDADD = $(LDADD) @LIB_PTHREAD_SIGMASK@ @LIBMULTITHREAD@
-test_quotearg_simple_LDADD = $(LDADD) @LIBINTL@ $(LIB_MBRTOWC)
-test_regex_LDADD = $(LDADD) $(LIB_SETLOCALE) $(LIB_MBRTOWC) @LIBINTL@ $(LIBTHREAD)
-test_select_LDADD = $(LDADD) @LIB_SELECT@ @LIBSOCKET@ $(INET_PTON_LIB)
-test_select_fd_LDADD = $(LDADD) @LIB_SELECT@
-test_select_stdin_LDADD = $(LDADD) @LIB_SELECT@
-test_setlocale_null_LDADD = $(LDADD) @LIB_SETLOCALE_NULL@
-test_setlocale_null_mt_one_LDADD = $(LDADD) @LIB_SETLOCALE_NULL@ $(LIBMULTITHREAD) $(LIB_NANOSLEEP)
-test_setlocale_null_mt_all_LDADD = $(LDADD) @LIB_SETLOCALE_NULL@ $(LIBMULTITHREAD) $(LIB_NANOSLEEP)
+test_pthread_sigmask1_LDADD = $(LDADD) @PTHREAD_SIGMASK_LIB@
+test_pthread_sigmask2_LDADD = $(LDADD) @PTHREAD_SIGMASK_LIB@ @LIBMULTITHREAD@
+test_quotearg_simple_LDADD = $(LDADD) @LIBINTL@ $(MBRTOWC_LIB)
+test_regex_LDADD = $(LDADD) $(SETLOCALE_LIB) $(MBRTOWC_LIB) @LIBINTL@ $(LIBTHREAD)
+test_select_LDADD = $(LDADD) @SELECT_LIB@ @LIBSOCKET@ $(INET_PTON_LIB)
+test_select_fd_LDADD = $(LDADD) @SELECT_LIB@
+test_select_stdin_LDADD = $(LDADD) @SELECT_LIB@
+test_setlocale_null_LDADD = $(LDADD) @SETLOCALE_NULL_LIB@
+test_setlocale_null_mt_one_LDADD = $(LDADD) @SETLOCALE_NULL_LIB@ $(LIBMULTITHREAD) $(NANOSLEEP_LIB)
+test_setlocale_null_mt_all_LDADD = $(LDADD) @SETLOCALE_NULL_LIB@ $(LIBMULTITHREAD) $(NANOSLEEP_LIB)
 test_setsockopt_LDADD = $(LDADD) @LIBSOCKET@
-test_sh_quote_LDADD = $(LDADD) @LIBINTL@ $(LIB_MBRTOWC)
+test_sh_quote_LDADD = $(LDADD) @LIBINTL@ $(MBRTOWC_LIB)
 test_sigsegv_catch_segv1_LDADD = $(LDADD) $(LIBSIGSEGV)
 test_sigsegv_catch_segv2_LDADD = $(LDADD) $(LIBSIGSEGV)
 test_sigsegv_catch_stackoverflow1_LDADD = $(LDADD) $(LIBSIGSEGV)
@@ -3321,10 +3563,11 @@ CXXDEFS_H = $(srcdir)/c++defs.h
 WARN_ON_USE_H = $(srcdir)/warn-on-use.h
 test_sockets_LDADD = $(LDADD) @LIBSOCKET@
 test_stat_LDADD = $(LDADD) $(LIBINTL)
-test_stat_time_LDADD = $(LDADD) $(LIB_NANOSLEEP)
+test_stat_time_LDADD = $(LDADD) $(NANOSLEEP_LIB)
 test_striconv_LDADD = $(LDADD) @LIBICONV@
 test_thread_self_LDADD = $(LDADD) @LIBTHREAD@
 test_thread_create_LDADD = $(LDADD) @LIBMULTITHREAD@
+test_trim_LDADD = $(LDADD) $(LIBUNISTRING) @LIBINTL@ $(MBRTOWC_LIB)
 test_u8_mbtoucr_SOURCES = unistr/test-u8-mbtoucr.c
 test_u8_mbtoucr_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_uctomb_SOURCES = unistr/test-u8-uctomb.c
@@ -3334,14 +3577,13 @@ test_uc_width_LDADD = $(LDADD) $(LIBUNISTRING)
 test_uc_width2_SOURCES = uniwidth/test-uc_width2.c
 test_uc_width2_LDADD = $(LDADD) $(LIBUNISTRING)
 test_version_etc_LDADD = $(LDADD) @LIBINTL@
-test_wcrtomb_LDADD = $(LDADD) $(LIB_SETLOCALE)
-test_wcwidth_LDADD = $(LDADD) $(LIB_SETLOCALE) $(LIBUNISTRING)
+test_wcrtomb_LDADD = $(LDADD) $(SETLOCALE_LIB)
+test_wcwidth_LDADD = $(LDADD) $(SETLOCALE_LIB) $(LIBUNISTRING)
 test_xalloc_die_LDADD = $(LDADD) @LIBINTL@
 test_xstdopen_LDADD = $(LDADD) @LIBINTL@
 test_xstrtoimax_LDADD = $(LDADD) @LIBINTL@
 test_xstrtol_LDADD = $(LDADD) @LIBINTL@
 test_xstrtoul_LDADD = $(LDADD) @LIBINTL@
-test_xvasprintf_LDADD = $(LDADD) @LIBINTL@
 all: $(BUILT_SOURCES)
        $(MAKE) $(AM_MAKEFLAGS) all-recursive
 
@@ -3379,29 +3621,29 @@ $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
 $(am__aclocal_m4_deps):
 
 clean-checkPROGRAMS:
-       -test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS)
+       -$(am__rm_f) $(check_PROGRAMS)
 
 clean-noinstPROGRAMS:
-       -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
+       -$(am__rm_f) $(noinst_PROGRAMS)
 
 clean-checkLIBRARIES:
-       -test -z "$(check_LIBRARIES)" || rm -f $(check_LIBRARIES)
+       -$(am__rm_f) $(check_LIBRARIES)
 
 clean-noinstLIBRARIES:
-       -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+       -$(am__rm_f) $(noinst_LIBRARIES)
 glthread/$(am__dirstamp):
        @$(MKDIR_P) glthread
-       @: > glthread/$(am__dirstamp)
+       @: >>glthread/$(am__dirstamp)
 glthread/$(DEPDIR)/$(am__dirstamp):
        @$(MKDIR_P) glthread/$(DEPDIR)
-       @: > glthread/$(DEPDIR)/$(am__dirstamp)
+       @: >>glthread/$(DEPDIR)/$(am__dirstamp)
 glthread/thread.$(OBJEXT): glthread/$(am__dirstamp) \
        glthread/$(DEPDIR)/$(am__dirstamp)
 
 libtests.a: $(libtests_a_OBJECTS) $(libtests_a_DEPENDENCIES) $(EXTRA_libtests_a_DEPENDENCIES) 
        $(AM_V_at)-rm -f libtests.a
        $(AM_V_AR)$(libtests_a_AR) libtests.a $(libtests_a_OBJECTS) $(libtests_a_LIBADD)
-       $(AM_V_at)$(RANLIB) libtests.a
+       $(AM_V_at)$(libtests_a_RANLIB) libtests.a
 
 current-locale$(EXEEXT): $(current_locale_OBJECTS) $(current_locale_DEPENDENCIES) $(EXTRA_current_locale_DEPENDENCIES) 
        @rm -f current-locale$(EXEEXT)
@@ -3411,6 +3653,10 @@ test-accept$(EXEEXT): $(test_accept_OBJECTS) $(test_accept_DEPENDENCIES) $(EXTRA
        @rm -f test-accept$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_accept_OBJECTS) $(test_accept_LDADD) $(LIBS)
 
+test-alignasof$(EXEEXT): $(test_alignasof_OBJECTS) $(test_alignasof_DEPENDENCIES) $(EXTRA_test_alignasof_DEPENDENCIES) 
+       @rm -f test-alignasof$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_alignasof_OBJECTS) $(test_alignasof_LDADD) $(LIBS)
+
 test-alloca-opt$(EXEEXT): $(test_alloca_opt_OBJECTS) $(test_alloca_opt_DEPENDENCIES) $(EXTRA_test_alloca_opt_DEPENDENCIES) 
        @rm -f test-alloca-opt$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_alloca_opt_OBJECTS) $(test_alloca_opt_LDADD) $(LIBS)
@@ -3427,6 +3673,10 @@ test-arpa_inet$(EXEEXT): $(test_arpa_inet_OBJECTS) $(test_arpa_inet_DEPENDENCIES
        @rm -f test-arpa_inet$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_arpa_inet_OBJECTS) $(test_arpa_inet_LDADD) $(LIBS)
 
+test-assert$(EXEEXT): $(test_assert_OBJECTS) $(test_assert_DEPENDENCIES) $(EXTRA_test_assert_DEPENDENCIES) 
+       @rm -f test-assert$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_assert_OBJECTS) $(test_assert_LDADD) $(LIBS)
+
 test-binary-io$(EXEEXT): $(test_binary_io_OBJECTS) $(test_binary_io_DEPENDENCIES) $(EXTRA_test_binary_io_DEPENDENCIES) 
        @rm -f test-binary-io$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_binary_io_OBJECTS) $(test_binary_io_LDADD) $(LIBS)
@@ -3455,6 +3705,10 @@ test-c-strcasecmp$(EXEEXT): $(test_c_strcasecmp_OBJECTS) $(test_c_strcasecmp_DEP
        @rm -f test-c-strcasecmp$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_c_strcasecmp_OBJECTS) $(test_c_strcasecmp_LDADD) $(LIBS)
 
+test-c-strcasestr$(EXEEXT): $(test_c_strcasestr_OBJECTS) $(test_c_strcasestr_DEPENDENCIES) $(EXTRA_test_c_strcasestr_DEPENDENCIES) 
+       @rm -f test-c-strcasestr$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_c_strcasestr_OBJECTS) $(test_c_strcasestr_LDADD) $(LIBS)
+
 test-c-strncasecmp$(EXEEXT): $(test_c_strncasecmp_OBJECTS) $(test_c_strncasecmp_DEPENDENCIES) $(EXTRA_test_c_strncasecmp_DEPENDENCIES) 
        @rm -f test-c-strncasecmp$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_c_strncasecmp_OBJECTS) $(test_c_strncasecmp_LDADD) $(LIBS)
@@ -3499,6 +3753,10 @@ test-errno$(EXEEXT): $(test_errno_OBJECTS) $(test_errno_DEPENDENCIES) $(EXTRA_te
        @rm -f test-errno$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_errno_OBJECTS) $(test_errno_LDADD) $(LIBS)
 
+test-error$(EXEEXT): $(test_error_OBJECTS) $(test_error_DEPENDENCIES) $(EXTRA_test_error_DEPENDENCIES) 
+       @rm -f test-error$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_error_OBJECTS) $(test_error_LDADD) $(LIBS)
+
 test-exclude$(EXEEXT): $(test_exclude_OBJECTS) $(test_exclude_DEPENDENCIES) $(EXTRA_test_exclude_DEPENDENCIES) 
        @rm -f test-exclude$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_exclude_OBJECTS) $(test_exclude_LDADD) $(LIBS)
@@ -3659,6 +3917,10 @@ test-langinfo$(EXEEXT): $(test_langinfo_OBJECTS) $(test_langinfo_DEPENDENCIES) $
        @rm -f test-langinfo$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_langinfo_OBJECTS) $(test_langinfo_LDADD) $(LIBS)
 
+test-largefile$(EXEEXT): $(test_largefile_OBJECTS) $(test_largefile_DEPENDENCIES) $(EXTRA_test_largefile_DEPENDENCIES) 
+       @rm -f test-largefile$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_largefile_OBJECTS) $(test_largefile_LDADD) $(LIBS)
+
 test-limits-h$(EXEEXT): $(test_limits_h_OBJECTS) $(test_limits_h_DEPENDENCIES) $(EXTRA_test_limits_h_DEPENDENCIES) 
        @rm -f test-limits-h$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_limits_h_OBJECTS) $(test_limits_h_LDADD) $(LIBS)
@@ -3739,18 +4001,26 @@ test-netinet_in$(EXEEXT): $(test_netinet_in_OBJECTS) $(test_netinet_in_DEPENDENC
        @rm -f test-netinet_in$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_netinet_in_OBJECTS) $(test_netinet_in_LDADD) $(LIBS)
 
-test-nl_langinfo$(EXEEXT): $(test_nl_langinfo_OBJECTS) $(test_nl_langinfo_DEPENDENCIES) $(EXTRA_test_nl_langinfo_DEPENDENCIES) 
-       @rm -f test-nl_langinfo$(EXEEXT)
-       $(AM_V_CCLD)$(LINK) $(test_nl_langinfo_OBJECTS) $(test_nl_langinfo_LDADD) $(LIBS)
-
 test-nl_langinfo-mt$(EXEEXT): $(test_nl_langinfo_mt_OBJECTS) $(test_nl_langinfo_mt_DEPENDENCIES) $(EXTRA_test_nl_langinfo_mt_DEPENDENCIES) 
        @rm -f test-nl_langinfo-mt$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_nl_langinfo_mt_OBJECTS) $(test_nl_langinfo_mt_LDADD) $(LIBS)
 
+test-nl_langinfo1$(EXEEXT): $(test_nl_langinfo1_OBJECTS) $(test_nl_langinfo1_DEPENDENCIES) $(EXTRA_test_nl_langinfo1_DEPENDENCIES) 
+       @rm -f test-nl_langinfo1$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_nl_langinfo1_OBJECTS) $(test_nl_langinfo1_LDADD) $(LIBS)
+
+test-nl_langinfo2$(EXEEXT): $(test_nl_langinfo2_OBJECTS) $(test_nl_langinfo2_DEPENDENCIES) $(EXTRA_test_nl_langinfo2_DEPENDENCIES) 
+       @rm -f test-nl_langinfo2$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_nl_langinfo2_OBJECTS) $(test_nl_langinfo2_LDADD) $(LIBS)
+
 test-nstrftime$(EXEEXT): $(test_nstrftime_OBJECTS) $(test_nstrftime_DEPENDENCIES) $(EXTRA_test_nstrftime_DEPENDENCIES) 
        @rm -f test-nstrftime$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_nstrftime_OBJECTS) $(test_nstrftime_LDADD) $(LIBS)
 
+test-nullptr$(EXEEXT): $(test_nullptr_OBJECTS) $(test_nullptr_DEPENDENCIES) $(EXTRA_test_nullptr_DEPENDENCIES) 
+       @rm -f test-nullptr$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_nullptr_OBJECTS) $(test_nullptr_LDADD) $(LIBS)
+
 test-open$(EXEEXT): $(test_open_OBJECTS) $(test_open_DEPENDENCIES) $(EXTRA_test_open_DEPENDENCIES) 
        @rm -f test-open$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_open_OBJECTS) $(test_open_LDADD) $(LIBS)
@@ -3771,6 +4041,10 @@ test-pipe$(EXEEXT): $(test_pipe_OBJECTS) $(test_pipe_DEPENDENCIES) $(EXTRA_test_
        @rm -f test-pipe$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pipe_OBJECTS) $(test_pipe_LDADD) $(LIBS)
 
+test-pselect$(EXEEXT): $(test_pselect_OBJECTS) $(test_pselect_DEPENDENCIES) $(EXTRA_test_pselect_DEPENDENCIES) 
+       @rm -f test-pselect$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_pselect_OBJECTS) $(test_pselect_LDADD) $(LIBS)
+
 test-pthread$(EXEEXT): $(test_pthread_OBJECTS) $(test_pthread_DEPENDENCIES) $(EXTRA_test_pthread_DEPENDENCIES) 
        @rm -f test-pthread$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pthread_OBJECTS) $(test_pthread_LDADD) $(LIBS)
@@ -3855,10 +4129,6 @@ test-sh-quote$(EXEEXT): $(test_sh_quote_OBJECTS) $(test_sh_quote_DEPENDENCIES) $
        @rm -f test-sh-quote$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_sh_quote_OBJECTS) $(test_sh_quote_LDADD) $(LIBS)
 
-test-sigaction$(EXEEXT): $(test_sigaction_OBJECTS) $(test_sigaction_DEPENDENCIES) $(EXTRA_test_sigaction_DEPENDENCIES) 
-       @rm -f test-sigaction$(EXEEXT)
-       $(AM_V_CCLD)$(LINK) $(test_sigaction_OBJECTS) $(test_sigaction_LDADD) $(LIBS)
-
 test-signal-h$(EXEEXT): $(test_signal_h_OBJECTS) $(test_signal_h_DEPENDENCIES) $(EXTRA_test_signal_h_DEPENDENCIES) 
        @rm -f test-signal-h$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_signal_h_OBJECTS) $(test_signal_h_LDADD) $(LIBS)
@@ -3903,14 +4173,14 @@ test-stat-time$(EXEEXT): $(test_stat_time_OBJECTS) $(test_stat_time_DEPENDENCIES
        @rm -f test-stat-time$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_stat_time_OBJECTS) $(test_stat_time_LDADD) $(LIBS)
 
-test-stdalign$(EXEEXT): $(test_stdalign_OBJECTS) $(test_stdalign_DEPENDENCIES) $(EXTRA_test_stdalign_DEPENDENCIES) 
-       @rm -f test-stdalign$(EXEEXT)
-       $(AM_V_CCLD)$(LINK) $(test_stdalign_OBJECTS) $(test_stdalign_LDADD) $(LIBS)
-
 test-stdbool$(EXEEXT): $(test_stdbool_OBJECTS) $(test_stdbool_DEPENDENCIES) $(EXTRA_test_stdbool_DEPENDENCIES) 
        @rm -f test-stdbool$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_stdbool_OBJECTS) $(test_stdbool_LDADD) $(LIBS)
 
+test-stdckdint$(EXEEXT): $(test_stdckdint_OBJECTS) $(test_stdckdint_DEPENDENCIES) $(EXTRA_test_stdckdint_DEPENDENCIES) 
+       @rm -f test-stdckdint$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_stdckdint_OBJECTS) $(test_stdckdint_LDADD) $(LIBS)
+
 test-stddef$(EXEEXT): $(test_stddef_OBJECTS) $(test_stddef_DEPENDENCIES) $(EXTRA_test_stddef_DEPENDENCIES) 
        @rm -f test-stddef$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_stddef_OBJECTS) $(test_stddef_LDADD) $(LIBS)
@@ -4011,15 +4281,23 @@ test-time$(EXEEXT): $(test_time_OBJECTS) $(test_time_DEPENDENCIES) $(EXTRA_test_
        @rm -f test-time$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_time_OBJECTS) $(test_time_LDADD) $(LIBS)
 
+test-time-h$(EXEEXT): $(test_time_h_OBJECTS) $(test_time_h_DEPENDENCIES) $(EXTRA_test_time_h_DEPENDENCIES) 
+       @rm -f test-time-h$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_time_h_OBJECTS) $(test_time_h_LDADD) $(LIBS)
+
 test-timespec$(EXEEXT): $(test_timespec_OBJECTS) $(test_timespec_DEPENDENCIES) $(EXTRA_test_timespec_DEPENDENCIES) 
        @rm -f test-timespec$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_timespec_OBJECTS) $(test_timespec_LDADD) $(LIBS)
+
+test-trim$(EXEEXT): $(test_trim_OBJECTS) $(test_trim_DEPENDENCIES) $(EXTRA_test_trim_DEPENDENCIES) 
+       @rm -f test-trim$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_trim_OBJECTS) $(test_trim_LDADD) $(LIBS)
 unistr/$(am__dirstamp):
        @$(MKDIR_P) unistr
-       @: > unistr/$(am__dirstamp)
+       @: >>unistr/$(am__dirstamp)
 unistr/$(DEPDIR)/$(am__dirstamp):
        @$(MKDIR_P) unistr/$(DEPDIR)
-       @: > unistr/$(DEPDIR)/$(am__dirstamp)
+       @: >>unistr/$(DEPDIR)/$(am__dirstamp)
 unistr/test-u8-mbtoucr.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
 
@@ -4034,10 +4312,10 @@ test-u8-uctomb$(EXEEXT): $(test_u8_uctomb_OBJECTS) $(test_u8_uctomb_DEPENDENCIES
        $(AM_V_CCLD)$(LINK) $(test_u8_uctomb_OBJECTS) $(test_u8_uctomb_LDADD) $(LIBS)
 uniwidth/$(am__dirstamp):
        @$(MKDIR_P) uniwidth
-       @: > uniwidth/$(am__dirstamp)
+       @: >>uniwidth/$(am__dirstamp)
 uniwidth/$(DEPDIR)/$(am__dirstamp):
        @$(MKDIR_P) uniwidth/$(DEPDIR)
-       @: > uniwidth/$(DEPDIR)/$(am__dirstamp)
+       @: >>uniwidth/$(DEPDIR)/$(am__dirstamp)
 uniwidth/test-uc_width.$(OBJEXT): uniwidth/$(am__dirstamp) \
        uniwidth/$(DEPDIR)/$(am__dirstamp)
 
@@ -4063,10 +4341,6 @@ test-vasnprintf$(EXEEXT): $(test_vasnprintf_OBJECTS) $(test_vasnprintf_DEPENDENC
        @rm -f test-vasnprintf$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_vasnprintf_OBJECTS) $(test_vasnprintf_LDADD) $(LIBS)
 
-test-vasprintf$(EXEEXT): $(test_vasprintf_OBJECTS) $(test_vasprintf_DEPENDENCIES) $(EXTRA_test_vasprintf_DEPENDENCIES) 
-       @rm -f test-vasprintf$(EXEEXT)
-       $(AM_V_CCLD)$(LINK) $(test_vasprintf_OBJECTS) $(test_vasprintf_LDADD) $(LIBS)
-
 test-verify$(EXEEXT): $(test_verify_OBJECTS) $(test_verify_DEPENDENCIES) $(EXTRA_test_verify_DEPENDENCIES) 
        @rm -f test-verify$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_verify_OBJECTS) $(test_verify_LDADD) $(LIBS)
@@ -4119,9 +4393,9 @@ test-xstrtoul$(EXEEXT): $(test_xstrtoul_OBJECTS) $(test_xstrtoul_DEPENDENCIES) $
        @rm -f test-xstrtoul$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_xstrtoul_OBJECTS) $(test_xstrtoul_LDADD) $(LIBS)
 
-test-xvasprintf$(EXEEXT): $(test_xvasprintf_OBJECTS) $(test_xvasprintf_DEPENDENCIES) $(EXTRA_test_xvasprintf_DEPENDENCIES) 
-       @rm -f test-xvasprintf$(EXEEXT)
-       $(AM_V_CCLD)$(LINK) $(test_xvasprintf_OBJECTS) $(test_xvasprintf_LDADD) $(LIBS)
+test-year2038$(EXEEXT): $(test_year2038_OBJECTS) $(test_year2038_DEPENDENCIES) $(EXTRA_test_year2038_DEPENDENCIES) 
+       @rm -f test-year2038$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_year2038_OBJECTS) $(test_year2038_LDADD) $(LIBS)
 
 mostlyclean-compile:
        -rm -f *.$(OBJEXT)
@@ -4134,29 +4408,33 @@ distclean-compile:
 
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/accept.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alloca.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asnprintf.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atoll.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bind.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-strcasestr.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/connect.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dtotimespec.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fdopen.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/float.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ftruncate.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getcwd-lgpl.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hash-pjw.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inet_pton.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/itold.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/listen.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/locale.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nanosleep.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/perror.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pipe.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printf-args.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printf-parse.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pselect.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pthread-thread.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pthread_sigmask.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/putenv.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/select.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setsockopt.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sig-handler.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigaction.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigprocmask.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sleep.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/snprintf.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/socket.Po@am__quote@ # am--include-marker
@@ -4165,10 +4443,12 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/symlink.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sys_socket.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-accept.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-alignasof.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-alloca-opt.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-areadlink.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-argmatch.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-arpa_inet.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-assert.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-binary-io.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-bind.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-bitrotate.Po@am__quote@ # am--include-marker
@@ -4176,6 +4456,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-c-ctype.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-c-stack.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-c-strcasecmp.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-c-strcasestr.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-c-strncasecmp.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-calloc-gnu.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-cloexec.Po@am__quote@ # am--include-marker
@@ -4187,6 +4468,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-dynarray.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-environ.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-errno.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-error.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-exclude.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fcntl-h.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fcntl.Po@am__quote@ # am--include-marker
@@ -4227,6 +4509,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-iswdigit.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-iswxdigit.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-langinfo.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-largefile.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-limits-h.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-listen.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-localcharset.Po@am__quote@ # am--include-marker
@@ -4248,13 +4531,16 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-nanosleep.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-netinet_in.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-nl_langinfo-mt.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-nl_langinfo.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-nl_langinfo1.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-nl_langinfo2.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-nstrftime.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-nullptr.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-open.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-pathmax.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-perror.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-perror2.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-pipe.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-pselect.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-pthread-thread.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-pthread.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-pthread_sigmask1.Po@am__quote@ # am--include-marker
@@ -4276,7 +4562,6 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-setlocale_null.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-setsockopt.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sh-quote.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sigaction.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-signal-h.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sigprocmask.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sigsegv-catch-segv1.Po@am__quote@ # am--include-marker
@@ -4288,8 +4573,8 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sockets.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stat-time.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stat.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stdalign.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stdbool.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stdckdint.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stddef.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stdint.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stdio.Po@am__quote@ # am--include-marker
@@ -4314,12 +4599,13 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sys_wait.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-thread_create.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-thread_self.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-time-h.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-time.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-timespec.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-trim.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-unistd.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-unsetenv.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-vasnprintf.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-vasprintf.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-verify-try.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-verify.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-version-etc.Po@am__quote@ # am--include-marker
@@ -4333,13 +4619,16 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-xstrtoimax.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-xstrtol.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-xstrtoul.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-xvasprintf.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-year2038.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/time.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timespec-add.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timespec-sub.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vasnprintf.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wctob.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wctomb.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/windows-thread.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/windows-tls.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xsize.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrtol-error.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@glthread/$(DEPDIR)/thread.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u8-mbtoucr.Po@am__quote@ # am--include-marker
@@ -4349,7 +4638,7 @@ distclean-compile:
 
 $(am__depfiles_remade):
        @$(MKDIR_P) $(@D)
-       @echo '# dummy' >$@-t && $(am__mv) $@-t $@
+       @: >>$@
 
 am--depfiles: $(am__depfiles_remade)
 
@@ -4589,17 +4878,16 @@ $(TEST_SUITE_LOG): $(TEST_LOGS)
        $$success || exit 1
 
 check-TESTS: $(check_PROGRAMS) $(check_LIBRARIES)
-       @list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list
-       @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
-       @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+       @$(am__rm_f) $(RECHECK_LOGS)
+       @$(am__rm_f) $(RECHECK_LOGS:.log=.trs)
+       @$(am__rm_f) $(TEST_SUITE_LOG)
        @set +e; $(am__set_TESTS_bases); \
        log_list=`for i in $$bases; do echo $$i.log; done`; \
-       trs_list=`for i in $$bases; do echo $$i.trs; done`; \
-       log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
+       log_list=`echo $$log_list`; \
        $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
        exit $$?;
 recheck: all $(check_PROGRAMS) $(check_LIBRARIES)
-       @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+       @$(am__rm_f) $(TEST_SUITE_LOG)
        @set +e; $(am__set_TESTS_bases); \
        bases=`for i in $$bases; do echo $$i; done \
                 | $(am__list_recheck_tests)` || exit 1; \
@@ -4616,6 +4904,13 @@ test-accept.log: test-accept$(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-alignasof.log: test-alignasof$(EXEEXT)
+       @p='test-alignasof$(EXEEXT)'; \
+       b='test-alignasof'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
 test-alloca-opt.log: test-alloca-opt$(EXEEXT)
        @p='test-alloca-opt$(EXEEXT)'; \
        b='test-alloca-opt'; \
@@ -4644,6 +4939,13 @@ test-arpa_inet.log: test-arpa_inet$(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-assert.log: test-assert$(EXEEXT)
+       @p='test-assert$(EXEEXT)'; \
+       b='test-assert'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
 test-binary-io.sh.log: test-binary-io.sh
        @p='test-binary-io.sh'; \
        b='test-binary-io.sh'; \
@@ -4679,6 +4981,13 @@ test-btowc2.sh.log: test-btowc2.sh
        --log-file $$b.log --trs-file $$b.trs \
        $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
        "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-btowc3.sh.log: test-btowc3.sh
+       @p='test-btowc3.sh'; \
+       b='test-btowc3.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
 test-c-ctype.log: test-c-ctype$(EXEEXT)
        @p='test-c-ctype$(EXEEXT)'; \
        b='test-c-ctype'; \
@@ -4707,6 +5016,13 @@ test-c-strcase.sh.log: test-c-strcase.sh
        --log-file $$b.log --trs-file $$b.trs \
        $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
        "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-c-strcasestr.log: test-c-strcasestr$(EXEEXT)
+       @p='test-c-strcasestr$(EXEEXT)'; \
+       b='test-c-strcasestr'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
 test-calloc-gnu.log: test-calloc-gnu$(EXEEXT)
        @p='test-calloc-gnu$(EXEEXT)'; \
        b='test-calloc-gnu'; \
@@ -4756,13 +5072,6 @@ test-dup2.log: test-dup2$(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-dynarray.log: test-dynarray$(EXEEXT)
-       @p='test-dynarray$(EXEEXT)'; \
-       b='test-dynarray'; \
-       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-       --log-file $$b.log --trs-file $$b.trs \
-       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-       "$$tst" $(AM_TESTS_FD_REDIRECT)
 test-environ.log: test-environ$(EXEEXT)
        @p='test-environ$(EXEEXT)'; \
        b='test-environ'; \
@@ -4777,6 +5086,13 @@ test-errno.log: test-errno$(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-error.sh.log: test-error.sh
+       @p='test-error.sh'; \
+       b='test-error.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
 test-exclude1.sh.log: test-exclude1.sh
        @p='test-exclude1.sh'; \
        b='test-exclude1.sh'; \
@@ -5001,6 +5317,13 @@ test-gettimeofday.log: test-gettimeofday$(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-dynarray.log: test-dynarray$(EXEEXT)
+       @p='test-dynarray$(EXEEXT)'; \
+       b='test-dynarray'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
 test-hard-locale.log: test-hard-locale$(EXEEXT)
        @p='test-hard-locale$(EXEEXT)'; \
        b='test-hard-locale'; \
@@ -5106,6 +5429,13 @@ test-langinfo.log: test-langinfo$(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-largefile.log: test-largefile$(EXEEXT)
+       @p='test-largefile$(EXEEXT)'; \
+       b='test-largefile'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
 test-limits-h.log: test-limits-h$(EXEEXT)
        @p='test-limits-h$(EXEEXT)'; \
        b='test-limits-h'; \
@@ -5281,6 +5611,13 @@ test-mbsrtowcs4.sh.log: test-mbsrtowcs4.sh
        --log-file $$b.log --trs-file $$b.trs \
        $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
        "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-mbsrtowcs5.sh.log: test-mbsrtowcs5.sh
+       @p='test-mbsrtowcs5.sh'; \
+       b='test-mbsrtowcs5.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
 test-mbsstr1.log: test-mbsstr1$(EXEEXT)
        @p='test-mbsstr1$(EXEEXT)'; \
        b='test-mbsstr1'; \
@@ -5330,9 +5667,16 @@ test-netinet_in.log: test-netinet_in$(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-nl_langinfo.sh.log: test-nl_langinfo.sh
-       @p='test-nl_langinfo.sh'; \
-       b='test-nl_langinfo.sh'; \
+test-nl_langinfo1.sh.log: test-nl_langinfo1.sh
+       @p='test-nl_langinfo1.sh'; \
+       b='test-nl_langinfo1.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-nl_langinfo2.sh.log: test-nl_langinfo2.sh
+       @p='test-nl_langinfo2.sh'; \
+       b='test-nl_langinfo2.sh'; \
        $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
        --log-file $$b.log --trs-file $$b.trs \
        $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
@@ -5351,6 +5695,13 @@ test-nstrftime.log: test-nstrftime$(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-nullptr.log: test-nullptr$(EXEEXT)
+       @p='test-nullptr$(EXEEXT)'; \
+       b='test-nullptr'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
 test-open.log: test-open$(EXEEXT)
        @p='test-open$(EXEEXT)'; \
        b='test-open'; \
@@ -5386,6 +5737,13 @@ test-pipe.log: test-pipe$(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-pselect.log: test-pselect$(EXEEXT)
+       @p='test-pselect$(EXEEXT)'; \
+       b='test-pselect'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
 test-pthread.log: test-pthread$(EXEEXT)
        @p='test-pthread$(EXEEXT)'; \
        b='test-pthread'; \
@@ -5533,13 +5891,6 @@ test-sh-quote.log: test-sh-quote$(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-sigaction.log: test-sigaction$(EXEEXT)
-       @p='test-sigaction$(EXEEXT)'; \
-       b='test-sigaction'; \
-       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-       --log-file $$b.log --trs-file $$b.trs \
-       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-       "$$tst" $(AM_TESTS_FD_REDIRECT)
 test-signal-h.log: test-signal-h$(EXEEXT)
        @p='test-signal-h$(EXEEXT)'; \
        b='test-signal-h'; \
@@ -5617,16 +5968,16 @@ test-stat-time.log: test-stat-time$(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-stdalign.log: test-stdalign$(EXEEXT)
-       @p='test-stdalign$(EXEEXT)'; \
-       b='test-stdalign'; \
+test-stdbool.log: test-stdbool$(EXEEXT)
+       @p='test-stdbool$(EXEEXT)'; \
+       b='test-stdbool'; \
        $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
        --log-file $$b.log --trs-file $$b.trs \
        $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
        "$$tst" $(AM_TESTS_FD_REDIRECT)
-test-stdbool.log: test-stdbool$(EXEEXT)
-       @p='test-stdbool$(EXEEXT)'; \
-       b='test-stdbool'; \
+test-stdckdint.log: test-stdckdint$(EXEEXT)
+       @p='test-stdckdint$(EXEEXT)'; \
+       b='test-stdckdint'; \
        $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
        --log-file $$b.log --trs-file $$b.trs \
        $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
@@ -5806,6 +6157,13 @@ test-thread_create.log: test-thread_create$(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-time-h.log: test-time-h$(EXEEXT)
+       @p='test-time-h$(EXEEXT)'; \
+       b='test-time-h'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
 test-time.log: test-time$(EXEEXT)
        @p='test-time$(EXEEXT)'; \
        b='test-time'; \
@@ -5820,6 +6178,27 @@ test-timespec.log: test-timespec$(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-trim1.sh.log: test-trim1.sh
+       @p='test-trim1.sh'; \
+       b='test-trim1.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-trim2.sh.log: test-trim2.sh
+       @p='test-trim2.sh'; \
+       b='test-trim2.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-trim3.sh.log: test-trim3.sh
+       @p='test-trim3.sh'; \
+       b='test-trim3.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
 test-unistd.log: test-unistd$(EXEEXT)
        @p='test-unistd$(EXEEXT)'; \
        b='test-unistd'; \
@@ -5876,13 +6255,6 @@ test-vasnprintf.log: test-vasnprintf$(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-vasprintf.log: test-vasprintf$(EXEEXT)
-       @p='test-vasprintf$(EXEEXT)'; \
-       b='test-vasprintf'; \
-       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-       --log-file $$b.log --trs-file $$b.trs \
-       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-       "$$tst" $(AM_TESTS_FD_REDIRECT)
 test-vc-list-files-git.sh.log: test-vc-list-files-git.sh
        @p='test-vc-list-files-git.sh'; \
        b='test-vc-list-files-git.sh'; \
@@ -6023,9 +6395,9 @@ test-xstrtol.sh.log: test-xstrtol.sh
        --log-file $$b.log --trs-file $$b.trs \
        $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
        "$$tst" $(AM_TESTS_FD_REDIRECT)
-test-xvasprintf.log: test-xvasprintf$(EXEEXT)
-       @p='test-xvasprintf$(EXEEXT)'; \
-       b='test-xvasprintf'; \
+test-year2038.log: test-year2038$(EXEEXT)
+       @p='test-year2038$(EXEEXT)'; \
+       b='test-year2038'; \
        $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
        --log-file $$b.log --trs-file $$b.trs \
        $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
@@ -6132,30 +6504,30 @@ install-strip:
            "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
        fi
 mostlyclean-generic:
-       -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
-       -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
-       -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
-       -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+       -$(am__rm_f) $(MOSTLYCLEANFILES)
+       -$(am__rm_f) $(TEST_LOGS)
+       -$(am__rm_f) $(TEST_LOGS:.log=.trs)
+       -$(am__rm_f) $(TEST_SUITE_LOG)
 
 clean-generic:
-       -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+       -$(am__rm_f) $(CLEANFILES)
 
 distclean-generic:
-       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-       -rm -f glthread/$(DEPDIR)/$(am__dirstamp)
-       -rm -f glthread/$(am__dirstamp)
-       -rm -f unistr/$(DEPDIR)/$(am__dirstamp)
-       -rm -f unistr/$(am__dirstamp)
-       -rm -f uniwidth/$(DEPDIR)/$(am__dirstamp)
-       -rm -f uniwidth/$(am__dirstamp)
-       -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+       -$(am__rm_f) $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || $(am__rm_f) $(CONFIG_CLEAN_VPATH_FILES)
+       -$(am__rm_f) $(DISTCLEANFILES)
+       -$(am__rm_f) glthread/$(DEPDIR)/$(am__dirstamp)
+       -$(am__rm_f) glthread/$(am__dirstamp)
+       -$(am__rm_f) unistr/$(DEPDIR)/$(am__dirstamp)
+       -$(am__rm_f) unistr/$(am__dirstamp)
+       -$(am__rm_f) uniwidth/$(DEPDIR)/$(am__dirstamp)
+       -$(am__rm_f) uniwidth/$(am__dirstamp)
 
 maintainer-clean-generic:
        @echo "This command is intended for maintainers to use"
        @echo "it deletes files that may require special tools to rebuild."
-       -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
-       -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+       -$(am__rm_f) $(BUILT_SOURCES)
+       -$(am__rm_f) $(MAINTAINERCLEANFILES)
 clean: clean-recursive
 
 clean-am: clean-checkLIBRARIES clean-checkPROGRAMS clean-generic \
@@ -6163,31 +6535,35 @@ clean-am: clean-checkLIBRARIES clean-checkPROGRAMS clean-generic \
        mostlyclean-am
 
 distclean: distclean-recursive
-               -rm -f ./$(DEPDIR)/accept.Po
+       -rm -f ./$(DEPDIR)/accept.Po
        -rm -f ./$(DEPDIR)/alloca.Po
+       -rm -f ./$(DEPDIR)/asnprintf.Po
        -rm -f ./$(DEPDIR)/atoll.Po
        -rm -f ./$(DEPDIR)/bind.Po
+       -rm -f ./$(DEPDIR)/c-strcasestr.Po
        -rm -f ./$(DEPDIR)/connect.Po
        -rm -f ./$(DEPDIR)/dtotimespec.Po
        -rm -f ./$(DEPDIR)/fdopen.Po
+       -rm -f ./$(DEPDIR)/float.Po
        -rm -f ./$(DEPDIR)/ftruncate.Po
        -rm -f ./$(DEPDIR)/getcwd-lgpl.Po
        -rm -f ./$(DEPDIR)/hash-pjw.Po
        -rm -f ./$(DEPDIR)/inet_pton.Po
        -rm -f ./$(DEPDIR)/ioctl.Po
+       -rm -f ./$(DEPDIR)/itold.Po
        -rm -f ./$(DEPDIR)/listen.Po
        -rm -f ./$(DEPDIR)/locale.Po
        -rm -f ./$(DEPDIR)/nanosleep.Po
        -rm -f ./$(DEPDIR)/perror.Po
        -rm -f ./$(DEPDIR)/pipe.Po
+       -rm -f ./$(DEPDIR)/printf-args.Po
+       -rm -f ./$(DEPDIR)/printf-parse.Po
+       -rm -f ./$(DEPDIR)/pselect.Po
        -rm -f ./$(DEPDIR)/pthread-thread.Po
        -rm -f ./$(DEPDIR)/pthread_sigmask.Po
        -rm -f ./$(DEPDIR)/putenv.Po
        -rm -f ./$(DEPDIR)/select.Po
        -rm -f ./$(DEPDIR)/setsockopt.Po
-       -rm -f ./$(DEPDIR)/sig-handler.Po
-       -rm -f ./$(DEPDIR)/sigaction.Po
-       -rm -f ./$(DEPDIR)/sigprocmask.Po
        -rm -f ./$(DEPDIR)/sleep.Po
        -rm -f ./$(DEPDIR)/snprintf.Po
        -rm -f ./$(DEPDIR)/socket.Po
@@ -6196,10 +6572,12 @@ distclean: distclean-recursive
        -rm -f ./$(DEPDIR)/symlink.Po
        -rm -f ./$(DEPDIR)/sys_socket.Po
        -rm -f ./$(DEPDIR)/test-accept.Po
+       -rm -f ./$(DEPDIR)/test-alignasof.Po
        -rm -f ./$(DEPDIR)/test-alloca-opt.Po
        -rm -f ./$(DEPDIR)/test-areadlink.Po
        -rm -f ./$(DEPDIR)/test-argmatch.Po
        -rm -f ./$(DEPDIR)/test-arpa_inet.Po
+       -rm -f ./$(DEPDIR)/test-assert.Po
        -rm -f ./$(DEPDIR)/test-binary-io.Po
        -rm -f ./$(DEPDIR)/test-bind.Po
        -rm -f ./$(DEPDIR)/test-bitrotate.Po
@@ -6207,6 +6585,7 @@ distclean: distclean-recursive
        -rm -f ./$(DEPDIR)/test-c-ctype.Po
        -rm -f ./$(DEPDIR)/test-c-stack.Po
        -rm -f ./$(DEPDIR)/test-c-strcasecmp.Po
+       -rm -f ./$(DEPDIR)/test-c-strcasestr.Po
        -rm -f ./$(DEPDIR)/test-c-strncasecmp.Po
        -rm -f ./$(DEPDIR)/test-calloc-gnu.Po
        -rm -f ./$(DEPDIR)/test-cloexec.Po
@@ -6218,6 +6597,7 @@ distclean: distclean-recursive
        -rm -f ./$(DEPDIR)/test-dynarray.Po
        -rm -f ./$(DEPDIR)/test-environ.Po
        -rm -f ./$(DEPDIR)/test-errno.Po
+       -rm -f ./$(DEPDIR)/test-error.Po
        -rm -f ./$(DEPDIR)/test-exclude.Po
        -rm -f ./$(DEPDIR)/test-fcntl-h.Po
        -rm -f ./$(DEPDIR)/test-fcntl.Po
@@ -6258,6 +6638,7 @@ distclean: distclean-recursive
        -rm -f ./$(DEPDIR)/test-iswdigit.Po
        -rm -f ./$(DEPDIR)/test-iswxdigit.Po
        -rm -f ./$(DEPDIR)/test-langinfo.Po
+       -rm -f ./$(DEPDIR)/test-largefile.Po
        -rm -f ./$(DEPDIR)/test-limits-h.Po
        -rm -f ./$(DEPDIR)/test-listen.Po
        -rm -f ./$(DEPDIR)/test-localcharset.Po
@@ -6279,13 +6660,16 @@ distclean: distclean-recursive
        -rm -f ./$(DEPDIR)/test-nanosleep.Po
        -rm -f ./$(DEPDIR)/test-netinet_in.Po
        -rm -f ./$(DEPDIR)/test-nl_langinfo-mt.Po
-       -rm -f ./$(DEPDIR)/test-nl_langinfo.Po
+       -rm -f ./$(DEPDIR)/test-nl_langinfo1.Po
+       -rm -f ./$(DEPDIR)/test-nl_langinfo2.Po
        -rm -f ./$(DEPDIR)/test-nstrftime.Po
+       -rm -f ./$(DEPDIR)/test-nullptr.Po
        -rm -f ./$(DEPDIR)/test-open.Po
        -rm -f ./$(DEPDIR)/test-pathmax.Po
        -rm -f ./$(DEPDIR)/test-perror.Po
        -rm -f ./$(DEPDIR)/test-perror2.Po
        -rm -f ./$(DEPDIR)/test-pipe.Po
+       -rm -f ./$(DEPDIR)/test-pselect.Po
        -rm -f ./$(DEPDIR)/test-pthread-thread.Po
        -rm -f ./$(DEPDIR)/test-pthread.Po
        -rm -f ./$(DEPDIR)/test-pthread_sigmask1.Po
@@ -6307,7 +6691,6 @@ distclean: distclean-recursive
        -rm -f ./$(DEPDIR)/test-setlocale_null.Po
        -rm -f ./$(DEPDIR)/test-setsockopt.Po
        -rm -f ./$(DEPDIR)/test-sh-quote.Po
-       -rm -f ./$(DEPDIR)/test-sigaction.Po
        -rm -f ./$(DEPDIR)/test-signal-h.Po
        -rm -f ./$(DEPDIR)/test-sigprocmask.Po
        -rm -f ./$(DEPDIR)/test-sigsegv-catch-segv1.Po
@@ -6319,8 +6702,8 @@ distclean: distclean-recursive
        -rm -f ./$(DEPDIR)/test-sockets.Po
        -rm -f ./$(DEPDIR)/test-stat-time.Po
        -rm -f ./$(DEPDIR)/test-stat.Po
-       -rm -f ./$(DEPDIR)/test-stdalign.Po
        -rm -f ./$(DEPDIR)/test-stdbool.Po
+       -rm -f ./$(DEPDIR)/test-stdckdint.Po
        -rm -f ./$(DEPDIR)/test-stddef.Po
        -rm -f ./$(DEPDIR)/test-stdint.Po
        -rm -f ./$(DEPDIR)/test-stdio.Po
@@ -6345,12 +6728,13 @@ distclean: distclean-recursive
        -rm -f ./$(DEPDIR)/test-sys_wait.Po
        -rm -f ./$(DEPDIR)/test-thread_create.Po
        -rm -f ./$(DEPDIR)/test-thread_self.Po
+       -rm -f ./$(DEPDIR)/test-time-h.Po
        -rm -f ./$(DEPDIR)/test-time.Po
        -rm -f ./$(DEPDIR)/test-timespec.Po
+       -rm -f ./$(DEPDIR)/test-trim.Po
        -rm -f ./$(DEPDIR)/test-unistd.Po
        -rm -f ./$(DEPDIR)/test-unsetenv.Po
        -rm -f ./$(DEPDIR)/test-vasnprintf.Po
-       -rm -f ./$(DEPDIR)/test-vasprintf.Po
        -rm -f ./$(DEPDIR)/test-verify-try.Po
        -rm -f ./$(DEPDIR)/test-verify.Po
        -rm -f ./$(DEPDIR)/test-version-etc.Po
@@ -6364,13 +6748,16 @@ distclean: distclean-recursive
        -rm -f ./$(DEPDIR)/test-xstrtoimax.Po
        -rm -f ./$(DEPDIR)/test-xstrtol.Po
        -rm -f ./$(DEPDIR)/test-xstrtoul.Po
-       -rm -f ./$(DEPDIR)/test-xvasprintf.Po
+       -rm -f ./$(DEPDIR)/test-year2038.Po
+       -rm -f ./$(DEPDIR)/time.Po
        -rm -f ./$(DEPDIR)/timespec-add.Po
        -rm -f ./$(DEPDIR)/timespec-sub.Po
+       -rm -f ./$(DEPDIR)/vasnprintf.Po
        -rm -f ./$(DEPDIR)/wctob.Po
        -rm -f ./$(DEPDIR)/wctomb.Po
        -rm -f ./$(DEPDIR)/windows-thread.Po
        -rm -f ./$(DEPDIR)/windows-tls.Po
+       -rm -f ./$(DEPDIR)/xsize.Po
        -rm -f ./$(DEPDIR)/xstrtol-error.Po
        -rm -f glthread/$(DEPDIR)/thread.Po
        -rm -f unistr/$(DEPDIR)/test-u8-mbtoucr.Po
@@ -6422,31 +6809,35 @@ install-ps-am:
 installcheck-am:
 
 maintainer-clean: maintainer-clean-recursive
-               -rm -f ./$(DEPDIR)/accept.Po
+       -rm -f ./$(DEPDIR)/accept.Po
        -rm -f ./$(DEPDIR)/alloca.Po
+       -rm -f ./$(DEPDIR)/asnprintf.Po
        -rm -f ./$(DEPDIR)/atoll.Po
        -rm -f ./$(DEPDIR)/bind.Po
+       -rm -f ./$(DEPDIR)/c-strcasestr.Po
        -rm -f ./$(DEPDIR)/connect.Po
        -rm -f ./$(DEPDIR)/dtotimespec.Po
        -rm -f ./$(DEPDIR)/fdopen.Po
+       -rm -f ./$(DEPDIR)/float.Po
        -rm -f ./$(DEPDIR)/ftruncate.Po
        -rm -f ./$(DEPDIR)/getcwd-lgpl.Po
        -rm -f ./$(DEPDIR)/hash-pjw.Po
        -rm -f ./$(DEPDIR)/inet_pton.Po
        -rm -f ./$(DEPDIR)/ioctl.Po
+       -rm -f ./$(DEPDIR)/itold.Po
        -rm -f ./$(DEPDIR)/listen.Po
        -rm -f ./$(DEPDIR)/locale.Po
        -rm -f ./$(DEPDIR)/nanosleep.Po
        -rm -f ./$(DEPDIR)/perror.Po
        -rm -f ./$(DEPDIR)/pipe.Po
+       -rm -f ./$(DEPDIR)/printf-args.Po
+       -rm -f ./$(DEPDIR)/printf-parse.Po
+       -rm -f ./$(DEPDIR)/pselect.Po
        -rm -f ./$(DEPDIR)/pthread-thread.Po
        -rm -f ./$(DEPDIR)/pthread_sigmask.Po
        -rm -f ./$(DEPDIR)/putenv.Po
        -rm -f ./$(DEPDIR)/select.Po
        -rm -f ./$(DEPDIR)/setsockopt.Po
-       -rm -f ./$(DEPDIR)/sig-handler.Po
-       -rm -f ./$(DEPDIR)/sigaction.Po
-       -rm -f ./$(DEPDIR)/sigprocmask.Po
        -rm -f ./$(DEPDIR)/sleep.Po
        -rm -f ./$(DEPDIR)/snprintf.Po
        -rm -f ./$(DEPDIR)/socket.Po
@@ -6455,10 +6846,12 @@ maintainer-clean: maintainer-clean-recursive
        -rm -f ./$(DEPDIR)/symlink.Po
        -rm -f ./$(DEPDIR)/sys_socket.Po
        -rm -f ./$(DEPDIR)/test-accept.Po
+       -rm -f ./$(DEPDIR)/test-alignasof.Po
        -rm -f ./$(DEPDIR)/test-alloca-opt.Po
        -rm -f ./$(DEPDIR)/test-areadlink.Po
        -rm -f ./$(DEPDIR)/test-argmatch.Po
        -rm -f ./$(DEPDIR)/test-arpa_inet.Po
+       -rm -f ./$(DEPDIR)/test-assert.Po
        -rm -f ./$(DEPDIR)/test-binary-io.Po
        -rm -f ./$(DEPDIR)/test-bind.Po
        -rm -f ./$(DEPDIR)/test-bitrotate.Po
@@ -6466,6 +6859,7 @@ maintainer-clean: maintainer-clean-recursive
        -rm -f ./$(DEPDIR)/test-c-ctype.Po
        -rm -f ./$(DEPDIR)/test-c-stack.Po
        -rm -f ./$(DEPDIR)/test-c-strcasecmp.Po
+       -rm -f ./$(DEPDIR)/test-c-strcasestr.Po
        -rm -f ./$(DEPDIR)/test-c-strncasecmp.Po
        -rm -f ./$(DEPDIR)/test-calloc-gnu.Po
        -rm -f ./$(DEPDIR)/test-cloexec.Po
@@ -6477,6 +6871,7 @@ maintainer-clean: maintainer-clean-recursive
        -rm -f ./$(DEPDIR)/test-dynarray.Po
        -rm -f ./$(DEPDIR)/test-environ.Po
        -rm -f ./$(DEPDIR)/test-errno.Po
+       -rm -f ./$(DEPDIR)/test-error.Po
        -rm -f ./$(DEPDIR)/test-exclude.Po
        -rm -f ./$(DEPDIR)/test-fcntl-h.Po
        -rm -f ./$(DEPDIR)/test-fcntl.Po
@@ -6517,6 +6912,7 @@ maintainer-clean: maintainer-clean-recursive
        -rm -f ./$(DEPDIR)/test-iswdigit.Po
        -rm -f ./$(DEPDIR)/test-iswxdigit.Po
        -rm -f ./$(DEPDIR)/test-langinfo.Po
+       -rm -f ./$(DEPDIR)/test-largefile.Po
        -rm -f ./$(DEPDIR)/test-limits-h.Po
        -rm -f ./$(DEPDIR)/test-listen.Po
        -rm -f ./$(DEPDIR)/test-localcharset.Po
@@ -6538,13 +6934,16 @@ maintainer-clean: maintainer-clean-recursive
        -rm -f ./$(DEPDIR)/test-nanosleep.Po
        -rm -f ./$(DEPDIR)/test-netinet_in.Po
        -rm -f ./$(DEPDIR)/test-nl_langinfo-mt.Po
-       -rm -f ./$(DEPDIR)/test-nl_langinfo.Po
+       -rm -f ./$(DEPDIR)/test-nl_langinfo1.Po
+       -rm -f ./$(DEPDIR)/test-nl_langinfo2.Po
        -rm -f ./$(DEPDIR)/test-nstrftime.Po
+       -rm -f ./$(DEPDIR)/test-nullptr.Po
        -rm -f ./$(DEPDIR)/test-open.Po
        -rm -f ./$(DEPDIR)/test-pathmax.Po
        -rm -f ./$(DEPDIR)/test-perror.Po
        -rm -f ./$(DEPDIR)/test-perror2.Po
        -rm -f ./$(DEPDIR)/test-pipe.Po
+       -rm -f ./$(DEPDIR)/test-pselect.Po
        -rm -f ./$(DEPDIR)/test-pthread-thread.Po
        -rm -f ./$(DEPDIR)/test-pthread.Po
        -rm -f ./$(DEPDIR)/test-pthread_sigmask1.Po
@@ -6566,7 +6965,6 @@ maintainer-clean: maintainer-clean-recursive
        -rm -f ./$(DEPDIR)/test-setlocale_null.Po
        -rm -f ./$(DEPDIR)/test-setsockopt.Po
        -rm -f ./$(DEPDIR)/test-sh-quote.Po
-       -rm -f ./$(DEPDIR)/test-sigaction.Po
        -rm -f ./$(DEPDIR)/test-signal-h.Po
        -rm -f ./$(DEPDIR)/test-sigprocmask.Po
        -rm -f ./$(DEPDIR)/test-sigsegv-catch-segv1.Po
@@ -6578,8 +6976,8 @@ maintainer-clean: maintainer-clean-recursive
        -rm -f ./$(DEPDIR)/test-sockets.Po
        -rm -f ./$(DEPDIR)/test-stat-time.Po
        -rm -f ./$(DEPDIR)/test-stat.Po
-       -rm -f ./$(DEPDIR)/test-stdalign.Po
        -rm -f ./$(DEPDIR)/test-stdbool.Po
+       -rm -f ./$(DEPDIR)/test-stdckdint.Po
        -rm -f ./$(DEPDIR)/test-stddef.Po
        -rm -f ./$(DEPDIR)/test-stdint.Po
        -rm -f ./$(DEPDIR)/test-stdio.Po
@@ -6604,12 +7002,13 @@ maintainer-clean: maintainer-clean-recursive
        -rm -f ./$(DEPDIR)/test-sys_wait.Po
        -rm -f ./$(DEPDIR)/test-thread_create.Po
        -rm -f ./$(DEPDIR)/test-thread_self.Po
+       -rm -f ./$(DEPDIR)/test-time-h.Po
        -rm -f ./$(DEPDIR)/test-time.Po
        -rm -f ./$(DEPDIR)/test-timespec.Po
+       -rm -f ./$(DEPDIR)/test-trim.Po
        -rm -f ./$(DEPDIR)/test-unistd.Po
        -rm -f ./$(DEPDIR)/test-unsetenv.Po
        -rm -f ./$(DEPDIR)/test-vasnprintf.Po
-       -rm -f ./$(DEPDIR)/test-vasprintf.Po
        -rm -f ./$(DEPDIR)/test-verify-try.Po
        -rm -f ./$(DEPDIR)/test-verify.Po
        -rm -f ./$(DEPDIR)/test-version-etc.Po
@@ -6623,13 +7022,16 @@ maintainer-clean: maintainer-clean-recursive
        -rm -f ./$(DEPDIR)/test-xstrtoimax.Po
        -rm -f ./$(DEPDIR)/test-xstrtol.Po
        -rm -f ./$(DEPDIR)/test-xstrtoul.Po
-       -rm -f ./$(DEPDIR)/test-xvasprintf.Po
+       -rm -f ./$(DEPDIR)/test-year2038.Po
+       -rm -f ./$(DEPDIR)/time.Po
        -rm -f ./$(DEPDIR)/timespec-add.Po
        -rm -f ./$(DEPDIR)/timespec-sub.Po
+       -rm -f ./$(DEPDIR)/vasnprintf.Po
        -rm -f ./$(DEPDIR)/wctob.Po
        -rm -f ./$(DEPDIR)/wctomb.Po
        -rm -f ./$(DEPDIR)/windows-thread.Po
        -rm -f ./$(DEPDIR)/windows-tls.Po
+       -rm -f ./$(DEPDIR)/xsize.Po
        -rm -f ./$(DEPDIR)/xstrtol-error.Po
        -rm -f glthread/$(DEPDIR)/thread.Po
        -rm -f unistr/$(DEPDIR)/test-u8-mbtoucr.Po
@@ -6679,10 +7081,9 @@ uninstall-am:
 # We need the following in order to create <arpa/inet.h> when the system
 # doesn't have one.
 arpa/inet.h: arpa_inet.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H)
-       $(AM_V_at)$(MKDIR_P) arpa
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(AM_V_GEN)$(MKDIR_P) 'arpa'
+       $(AM_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
@@ -6699,34 +7100,45 @@ arpa/inet.h: arpa_inet.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/arpa_inet.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/arpa_inet.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
+
+# We need the following in order to create <float.h> when the system
+# doesn't have one that works with the given compiler.
+@GL_GENERATE_FLOAT_H_TRUE@float.h: float.in.h $(top_builddir)/config.status
+@GL_GENERATE_FLOAT_H_TRUE@     $(gl_V_at)$(SED_HEADER_STDOUT) \
+@GL_GENERATE_FLOAT_H_TRUE@           -e 's|@''GUARD_PREFIX''@|GL|g' \
+@GL_GENERATE_FLOAT_H_TRUE@           -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+@GL_GENERATE_FLOAT_H_TRUE@           -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+@GL_GENERATE_FLOAT_H_TRUE@           -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+@GL_GENERATE_FLOAT_H_TRUE@           -e 's|@''NEXT_FLOAT_H''@|$(NEXT_FLOAT_H)|g' \
+@GL_GENERATE_FLOAT_H_TRUE@           -e 's|@''REPLACE_ITOLD''@|$(REPLACE_ITOLD)|g' \
+@GL_GENERATE_FLOAT_H_TRUE@           $(srcdir)/float.in.h > $@-t
+@GL_GENERATE_FLOAT_H_TRUE@     $(AM_V_at)mv $@-t $@
+@GL_GENERATE_FLOAT_H_FALSE@float.h: $(top_builddir)/config.status
+@GL_GENERATE_FLOAT_H_FALSE@    rm -f $@
 
 # We need the following in order to create <netinet/in.h> when the system
 # doesn't have one.
 @GL_GENERATE_NETINET_IN_H_TRUE@netinet/in.h: netinet_in.in.h $(top_builddir)/config.status
-@GL_GENERATE_NETINET_IN_H_TRUE@        $(AM_V_at)$(MKDIR_P) netinet
-@GL_GENERATE_NETINET_IN_H_TRUE@        $(AM_V_GEN)rm -f $@-t $@ && \
-@GL_GENERATE_NETINET_IN_H_TRUE@        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-@GL_GENERATE_NETINET_IN_H_TRUE@          sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+@GL_GENERATE_NETINET_IN_H_TRUE@        $(AM_V_GEN)$(MKDIR_P) 'netinet'
+@GL_GENERATE_NETINET_IN_H_TRUE@        $(AM_V_at)$(SED_HEADER_STDOUT) \
+@GL_GENERATE_NETINET_IN_H_TRUE@              -e 's|@''GUARD_PREFIX''@|GL|g' \
 @GL_GENERATE_NETINET_IN_H_TRUE@              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
 @GL_GENERATE_NETINET_IN_H_TRUE@              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
 @GL_GENERATE_NETINET_IN_H_TRUE@              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
 @GL_GENERATE_NETINET_IN_H_TRUE@              -e 's|@''NEXT_NETINET_IN_H''@|$(NEXT_NETINET_IN_H)|g' \
 @GL_GENERATE_NETINET_IN_H_TRUE@              -e 's|@''HAVE_NETINET_IN_H''@|$(HAVE_NETINET_IN_H)|g' \
-@GL_GENERATE_NETINET_IN_H_TRUE@              < $(srcdir)/netinet_in.in.h; \
-@GL_GENERATE_NETINET_IN_H_TRUE@        } > $@-t && \
-@GL_GENERATE_NETINET_IN_H_TRUE@        mv $@-t $@
+@GL_GENERATE_NETINET_IN_H_TRUE@              $(srcdir)/netinet_in.in.h > $@-t
+@GL_GENERATE_NETINET_IN_H_TRUE@        $(AM_V_at)mv $@-t $@
 @GL_GENERATE_NETINET_IN_H_FALSE@netinet/in.h: $(top_builddir)/config.status
 @GL_GENERATE_NETINET_IN_H_FALSE@       rm -f $@
 
 # We need the following in order to create <pthread.h> when the system
 # doesn't have one that works with the given compiler.
 pthread.h: pthread.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(_NORETURN_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''HAVE_PTHREAD_H''@|$(HAVE_PTHREAD_H)|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
@@ -6852,16 +7264,15 @@ pthread.h: pthread.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(_NORETURN_H
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _Noreturn/r $(_NORETURN_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
-       } > $@-t && \
-       mv $@-t $@
+             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
+             > $@-t
+       $(AM_V_at)mv $@-t $@
 
 # We need the following in order to create a replacement for <sched.h> when
 # the system doesn't have one.
 sched.h: sched.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''HAVE_SCHED_H''@|$(HAVE_SCHED_H)|g' \
              -e 's|@''HAVE_SYS_CDEFS_H''@|$(HAVE_SYS_CDEFS_H)|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
@@ -6874,17 +7285,15 @@ sched.h: sched.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
              -e 's|@''REPLACE_SCHED_YIELD''@|$(REPLACE_SCHED_YIELD)|g' \
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/sched.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/sched.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 
 # We need the following in order to create <sys/ioctl.h> when the system
 # does not have a complete one.
 sys/ioctl.h: sys_ioctl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
-       $(AM_V_at)$(MKDIR_P) sys
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(AM_V_GEN)$(MKDIR_P) 'sys'
+       $(AM_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''HAVE_SYS_IOCTL_H''@|$(HAVE_SYS_IOCTL_H)|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
@@ -6896,17 +7305,15 @@ sys/ioctl.h: sys_ioctl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON
              -e 's|@''REPLACE_IOCTL''@|$(REPLACE_IOCTL)|g' \
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/sys_ioctl.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/sys_ioctl.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 
 # We need the following in order to create <sys/select.h> when the system
 # doesn't have one that works with the given compiler.
 sys/select.h: sys_select.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
-       $(AM_V_at)$(MKDIR_P) sys
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(AM_V_GEN)$(MKDIR_P) 'sys'
+       $(AM_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
@@ -6920,17 +7327,15 @@ sys/select.h: sys_select.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_
              -e 's|@''REPLACE_SELECT''@|$(REPLACE_SELECT)|g' \
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/sys_select.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/sys_select.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 
 # We need the following in order to create <sys/socket.h> when the system
 # doesn't have one that works with the given compiler.
 sys/socket.h: sys_socket.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H)
-       $(AM_V_at)$(MKDIR_P) sys
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(AM_V_GEN)$(MKDIR_P) 'sys'
+       $(AM_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
@@ -6961,25 +7366,22 @@ sys/socket.h: sys_socket.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/sys_socket.in.h; \
-       } > $@-t && \
-       mv -f $@-t $@
+             $(srcdir)/sys_socket.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 
 # We need the following in order to create <sys/uio.h> when the system
 # doesn't have one that works with the given compiler.
 sys/uio.h: sys_uio.in.h $(top_builddir)/config.status
-       $(AM_V_at)$(MKDIR_P) sys
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(AM_V_GEN)$(MKDIR_P) 'sys'
+       $(AM_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
              -e 's|@''NEXT_SYS_UIO_H''@|$(NEXT_SYS_UIO_H)|g' \
              -e 's|@''HAVE_SYS_UIO_H''@|$(HAVE_SYS_UIO_H)|g' \
-             < $(srcdir)/sys_uio.in.h; \
-       } > $@-t && \
-       mv -f $@-t $@
+             $(srcdir)/sys_uio.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 
 all: all-notice
 all-notice:
index cb72f26..6ecea98 100644 (file)
@@ -1,5 +1,5 @@
 /* A C macro for declaring that a function does not return.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 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
        AIX system header files and several gnulib header files use precisely
        this syntax with 'extern'.  */
 #  define _Noreturn [[noreturn]]
+# elif (defined __clang__ && __clang_major__ < 16 \
+        && defined _GL_WORK_AROUND_LLVM_BUG_59792)
+   /* Compile with -D_GL_WORK_AROUND_LLVM_BUG_59792 to work around
+      that rare LLVM bug, though you may get many false-alarm warnings.  */
+#  define _Noreturn
 # elif ((!defined __cplusplus || defined __clang__) \
         && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \
             || (!defined __STRICT_ANSI__ \
-                && (__4 < __GNUC__ + (7 <= __GNUC_MINOR__) \
+                && (4 < __GNUC__ + (7 <= __GNUC_MINOR__) \
                     || (defined __apple_build_version__ \
                         ? 6000000 <= __apple_build_version__ \
                         : 3 < __clang_major__ + (5 <= __clang_minor__))))))
index 71457db..2641ced 100644 (file)
@@ -1,6 +1,6 @@
 /* accept.c --- wrappers for Windows accept function
 
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 4880283..5eb16a9 100644 (file)
 #include <string.h>
 #include <stdlib.h>
 
-#ifdef emacs
-# include "lisp.h"
-# include "blockinput.h"
-# ifdef EMACS_FREE
-#  undef free
-#  define free EMACS_FREE
-# endif
-#else
-# define memory_full() abort ()
-#endif
-
 /* If compiling with GCC or clang, this file is not needed.  */
 #if !(defined __GNUC__ || defined __clang__)
 
    there must be some other way alloca is supposed to work.  */
 # ifndef alloca
 
-#  ifdef emacs
-#   ifdef static
-/* actually, only want this if static is defined as ""
-   -- this is for usg, in which emacs must undefine static
-   in order to make unexec workable
-   */
-#    ifndef STACK_DIRECTION
-you
-lose
--- must know STACK_DIRECTION at compile-time
-/* Using #error here is not wise since this file should work for
-   old and obscure compilers.  */
-#    endif /* STACK_DIRECTION undefined */
-#   endif /* static */
-#  endif /* emacs */
-
 /* Define STACK_DIRECTION if you know the direction of stack
    growth for your system; otherwise it will be automatically
    deduced at run-time.
@@ -145,10 +118,6 @@ alloca (size_t size)
   {
     register header *hp;        /* Traverses linked list.  */
 
-#  ifdef emacs
-    BLOCK_INPUT;
-#  endif
-
     for (hp = last_alloca_header; hp != NULL;)
       if ((STACK_DIR > 0 && hp->h.deep > depth)
           || (STACK_DIR < 0 && hp->h.deep < depth))
@@ -163,10 +132,6 @@ alloca (size_t size)
         break;                  /* Rest are not deeper.  */
 
     last_alloca_header = hp;    /* -> last valid storage.  */
-
-#  ifdef emacs
-    UNBLOCK_INPUT;
-#  endif
   }
 
   if (size == 0)
index fbd0d13..80e4d4e 100644 (file)
@@ -1,5 +1,5 @@
 /* Some auxiliary stuff for defining an alternate stack.
-   Copyright (C) 2010-2021 Free Software Foundation, Inc.
+   Copyright (C) 2010-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index b4de241..9498ae1 100644 (file)
@@ -1,5 +1,5 @@
 /* A C macro for declaring that specific arguments must not be NULL.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
index 9968067..12876b5 100644 (file)
@@ -1,6 +1,6 @@
 /* A GNU-like <arpa/inet.h>.
 
-   Copyright (C) 2005-2006, 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2005-2006, 2008-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 #ifndef _@GUARD_PREFIX@_ARPA_INET_H
 #define _@GUARD_PREFIX@_ARPA_INET_H
 
+/* This file uses GNULIB_POSIXCHECK, HAVE_RAW_DECL_*.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 /* Get all possible declarations of inet_ntop() and inet_pton().  */
 #if (@GNULIB_INET_NTOP@ || @GNULIB_INET_PTON@ || defined GNULIB_POSIXCHECK) \
     && @HAVE_WS2TCPIP_H@
similarity index 94%
rename from lib/asnprintf.c
rename to gnulib-tests/asnprintf.c
index c5367b2..f4861bf 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 0e40254..03a110f 100644 (file)
@@ -1,9 +1,9 @@
-/* Copyright (C) 1991, 1997-1998, 2008-2021 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1997-1998, 2008-2023 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
    it under the terms of the GNU Lesser General Public License as
-   published by the Free Software Foundation; either version 3 of the
+   published by the Free Software Foundation, either version 3 of the
    License, or (at your option) any later version.
 
    This file is distributed in the hope that it will be useful,
index 0e47254..c67bade 100644 (file)
@@ -1,6 +1,6 @@
 /* bind.c --- wrappers for Windows bind function
 
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index a47b61a..458c014 100644 (file)
@@ -1,5 +1,5 @@
 /* C++ compatible function declaration macros.
-   Copyright (C) 2010-2021 Free Software Foundation, Inc.
+   Copyright (C) 2010-2023 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
    Example:
      _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...)
                                   _GL_ARG_NONNULL ((1)));
+
+   Note: Attributes, such as _GL_ATTRIBUTE_DEPRECATED, are supported in front
+   of a _GL_FUNCDECL_RPL invocation only in C mode, not in C++ mode.  (That's
+   because
+     [[...]] extern "C" <declaration>;
+   is invalid syntax in C++.)
  */
 #define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \
   _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes)
diff --git a/gnulib-tests/c-strcasestr.c b/gnulib-tests/c-strcasestr.c
new file mode 100644 (file)
index 0000000..46fd4cd
--- /dev/null
@@ -0,0 +1,76 @@
+/* c-strcasestr.c -- case insensitive substring search in C locale
+   Copyright (C) 2005-2023 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2005.
+
+   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/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "c-strcasestr.h"
+
+#include <string.h>
+
+#include "c-ctype.h"
+#include "c-strcase.h"
+
+/* Two-Way algorithm.  */
+#define RETURN_TYPE char *
+#define AVAILABLE(h, h_l, j, n_l)                       \
+  (!memchr ((h) + (h_l), '\0', (j) + (n_l) - (h_l))     \
+   && ((h_l) = (j) + (n_l)))
+#define CANON_ELEMENT c_tolower
+#define CMP_FUNC(p1, p2, l)                             \
+  c_strncasecmp ((const char *) (p1), (const char *) (p2), l)
+#include "str-two-way.h"
+
+/* Find the first occurrence of NEEDLE in HAYSTACK, using case-insensitive
+   comparison from the C locale, regardless of the current locale.  */
+char *
+c_strcasestr (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 &= (c_tolower ((unsigned char) *haystack++)
+           == c_tolower ((unsigned char) *needle++));
+  if (*needle)
+    return NULL;
+  if (ok)
+    return (char *) haystack_start;
+  needle_len = needle - needle_start;
+  haystack = haystack_start + 1;
+  haystack_len = needle_len - 1;
+
+  /* Perform the search.  Abstract memory is considered to be an array
+     of 'unsigned char' values, not an array of 'char' values.  See
+     ISO C 99 section 6.2.6.1.  */
+  if (needle_len < LONG_NEEDLE_THRESHOLD)
+    return two_way_short_needle ((const unsigned char *) haystack,
+                                 haystack_len,
+                                 (const unsigned char *) needle_start,
+                                 needle_len);
+  return two_way_long_needle ((const unsigned char *) haystack, haystack_len,
+                              (const unsigned char *) needle_start,
+                              needle_len);
+}
+
+#undef LONG_NEEDLE_THRESHOLD
diff --git a/gnulib-tests/c-strcasestr.h b/gnulib-tests/c-strcasestr.h
new file mode 100644 (file)
index 0000000..f62ab1f
--- /dev/null
@@ -0,0 +1,36 @@
+/* Case-insensitive searching in a string in C locale.
+   Copyright (C) 2005, 2009-2023 Free Software Foundation, Inc.
+
+   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/>.  */
+
+#ifndef C_STRCASESTR_H
+#define C_STRCASESTR_H
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Find the first occurrence of NEEDLE in HAYSTACK, using case-insensitive
+   comparison.  */
+extern char *c_strcasestr (const char *haystack, const char *needle);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* C_STRCASESTR_H */
index b2b2e93..1ac4a74 100644 (file)
@@ -1,6 +1,6 @@
 /* connect.c --- wrappers for Windows connect function
 
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 73061a3..28a44b6 100644 (file)
@@ -1,10 +1,10 @@
 /* Convert double to timespec.
 
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index a5266c8..6cd6470 100644 (file)
@@ -1,5 +1,5 @@
 /* Open a stream with a given file descriptor.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
similarity index 98%
rename from lib/float+.h
rename to gnulib-tests/float+.h
index ad891f6..e7531e4 100644 (file)
@@ -1,5 +1,5 @@
 /* Supplemental information about the floating-point formats.
-   Copyright (C) 2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2007.
 
    This file is free software: you can redistribute it and/or modify
similarity index 95%
rename from lib/float.c
rename to gnulib-tests/float.c
index dd1e84a..f81ff33 100644 (file)
@@ -1,5 +1,5 @@
 /* Auxiliary definitions for <float.h>.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2011.
 
    This file is free software: you can redistribute it and/or modify
similarity index 99%
rename from lib/float.in.h
rename to gnulib-tests/float.in.h
index f52aba3..bf2c502 100644 (file)
@@ -1,6 +1,6 @@
 /* A correct <float.h>.
 
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 4060911..7dcb310 100644 (file)
@@ -1,5 +1,5 @@
 /* Manipulating the FPU control word.  -*- coding: utf-8 -*-
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2007.
 
    This file is free software: you can redistribute it and/or modify
index 873f302..b662523 100644 (file)
@@ -1,9 +1,9 @@
 /* ftruncate emulations for native Windows.
-   Copyright (C) 1992-2021 Free Software Foundation, Inc.
+   Copyright (C) 1992-2023 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3, or (at your option)
+   the Free Software Foundation, either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
index a9dd848..8a5bde9 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2021 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2023 Free Software Foundation, Inc.
    This file is part of gnulib.
 
    This file is free software: you can redistribute it and/or modify
index de44932..ce6b9a8 100644 (file)
@@ -1,5 +1,5 @@
 /* Creating and controlling threads.
-   Copyright (C) 2005-2021 Free Software Foundation, Inc.
+   Copyright (C) 2005-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
@@ -139,9 +139,11 @@ gl_thread_self (void)
             /* Memory allocation failed.  There is not much we can do.  Have to
                busy-loop, waiting for the availability of memory.  */
             {
-              struct timespec ts;
-              ts.tv_sec = 1;
-              ts.tv_nsec = 0;
+              struct timespec ts =
+                {
+                  .tv_sec = 1,
+                  .tv_nsec = 0
+                };
               thrd_sleep (&ts, NULL);
             }
           }
index 44f05f3..88bc53e 100644 (file)
@@ -1,5 +1,5 @@
 /* Creating and controlling threads.
-   Copyright (C) 2005-2021 Free Software Foundation, Inc.
+   Copyright (C) 2005-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 #ifndef _GLTHREAD_THREAD_H
 #define _GLTHREAD_THREAD_H
 
+/* This file uses _Noreturn, HAVE_THREADS_H, HAVE_PTHREAD_ATFORK.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 #include <errno.h>
 #include <stdlib.h>
 
@@ -228,7 +233,7 @@ extern const gl_thread_t gl_null_thread;
 #  define gl_thread_self() \
      (pthread_in_use () ? pthread_self () : (pthread_t) 0)
 #  define gl_thread_self_pointer() \
-     (pthread_in_use () ? (void *) pthread_self () : NULL)
+     (pthread_in_use () ? (void *) (pthread_t) pthread_self () : NULL)
 # endif
 # define gl_thread_exit(RETVAL) \
     (void) (pthread_in_use () ? (pthread_exit (RETVAL), 0) : 0)
index 7eb14e6..3925cda 100644 (file)
@@ -1,10 +1,10 @@
 ## DO NOT EDIT! GENERATED AUTOMATICALLY!
 ## Process this file with automake to produce Makefile.in.
-# Copyright (C) 2002-2021 Free Software Foundation, Inc.
+# Copyright (C) 2002-2023 Free Software Foundation, Inc.
 #
 # This file is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
+# the Free Software Foundation, either version 3 of the License, or
 # (at your option) any later version.
 #
 # This file is distributed in the hope that it will be useful,
@@ -22,7 +22,7 @@
 #
 # Generated by gnulib-tool.
 
-AUTOMAKE_OPTIONS = 1.11 foreign subdir-objects
+AUTOMAKE_OPTIONS = 1.14 foreign subdir-objects
 
 SUBDIRS = .
 TESTS =
@@ -43,7 +43,7 @@ CLEANFILES =
 DISTCLEANFILES =
 MAINTAINERCLEANFILES =
 
-CFLAGS = @GL_CFLAG_ALLOW_WARNINGS@ @CFLAGS@
+CFLAGS = @GL_CFLAG_ALLOW_WARNINGS@ $(GL_CFLAG_GNULIB_WARNINGS) @CFLAGS@
 CXXFLAGS = @GL_CXXFLAG_ALLOW_WARNINGS@ @CXXFLAGS@
 
 AM_CPPFLAGS = \
@@ -64,10 +64,11 @@ TESTS_ENVIRONMENT += EXEEXT='@EXEEXT@' srcdir='$(srcdir)'
 
 ## begin gnulib module accept
 
+if GL_COND_OBJ_ACCEPT
+libtests_a_SOURCES += accept.c
+endif
 
-EXTRA_DIST += accept.c w32sock.h
-
-EXTRA_libtests_a_SOURCES += accept.c
+EXTRA_DIST += w32sock.h
 
 ## end   gnulib module accept
 
@@ -80,6 +81,14 @@ EXTRA_DIST += test-accept.c signature.h macros.h
 
 ## end   gnulib module accept-tests
 
+## begin gnulib module alignasof-tests
+
+TESTS += test-alignasof
+check_PROGRAMS += test-alignasof
+EXTRA_DIST += test-alignasof.c macros.h
+
+## end   gnulib module alignasof-tests
+
 ## begin gnulib module alloca
 
 
@@ -112,7 +121,7 @@ EXTRA_DIST += test-areadlink.h test-areadlink.c macros.h
 
 TESTS += test-argmatch
 check_PROGRAMS += test-argmatch
-test_argmatch_LDADD = $(LDADD) @LIBINTL@ $(LIB_MBRTOWC)
+test_argmatch_LDADD = $(LDADD) @LIBINTL@ $(MBRTOWC_LIB)
 
 EXTRA_DIST += test-argmatch.c macros.h
 
@@ -125,10 +134,9 @@ BUILT_SOURCES += arpa/inet.h
 # We need the following in order to create <arpa/inet.h> when the system
 # doesn't have one.
 arpa/inet.h: arpa_inet.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H)
-       $(AM_V_at)$(MKDIR_P) arpa
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(AM_V_GEN)$(MKDIR_P) '%reldir%/arpa'
+       $(AM_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
@@ -145,9 +153,8 @@ arpa/inet.h: arpa_inet.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/arpa_inet.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/arpa_inet.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 MOSTLYCLEANFILES += arpa/inet.h arpa/inet.h-t
 MOSTLYCLEANDIRS += arpa
 
@@ -163,12 +170,19 @@ EXTRA_DIST += test-arpa_inet.c
 
 ## end   gnulib module arpa_inet-tests
 
-## begin gnulib module atoll
+## begin gnulib module assert-h-tests
+
+TESTS += test-assert
+check_PROGRAMS += test-assert
+EXTRA_DIST += test-assert.c
 
+## end   gnulib module assert-h-tests
 
-EXTRA_DIST += atoll.c
+## begin gnulib module atoll
 
-EXTRA_libtests_a_SOURCES += atoll.c
+if GL_COND_OBJ_ATOLL
+libtests_a_SOURCES += atoll.c
+endif
 
 ## end   gnulib module atoll
 
@@ -183,10 +197,11 @@ EXTRA_DIST += test-binary-io.sh test-binary-io.c macros.h
 
 ## begin gnulib module bind
 
+if GL_COND_OBJ_BIND
+libtests_a_SOURCES += bind.c
+endif
 
-EXTRA_DIST += bind.c w32sock.h
-
-EXTRA_libtests_a_SOURCES += bind.c
+EXTRA_DIST += w32sock.h
 
 ## end   gnulib module bind
 
@@ -209,11 +224,11 @@ EXTRA_DIST += test-bitrotate.c macros.h
 
 ## begin gnulib module btowc-tests
 
-TESTS += test-btowc1.sh test-btowc2.sh
+TESTS += test-btowc1.sh test-btowc2.sh test-btowc3.sh
 TESTS_ENVIRONMENT += LOCALE_FR='@LOCALE_FR@' LOCALE_FR_UTF8='@LOCALE_FR_UTF8@'
 check_PROGRAMS += test-btowc
-test_btowc_LDADD = $(LDADD) $(LIB_SETLOCALE)
-EXTRA_DIST += test-btowc1.sh test-btowc2.sh test-btowc.c signature.h macros.h
+test_btowc_LDADD = $(LDADD) $(SETLOCALE_LIB)
+EXTRA_DIST += test-btowc1.sh test-btowc2.sh test-btowc3.sh test-btowc.c signature.h macros.h
 
 ## end   gnulib module btowc-tests
 
@@ -221,7 +236,7 @@ EXTRA_DIST += test-btowc1.sh test-btowc2.sh test-btowc.c signature.h macros.h
 
 TESTS += test-c-ctype
 check_PROGRAMS += test-c-ctype
-test_c_ctype_LDADD = $(LDADD) $(LIB_SETLOCALE)
+test_c_ctype_LDADD = $(LDADD) $(SETLOCALE_LIB)
 EXTRA_DIST += test-c-ctype.c macros.h
 
 ## end   gnulib module c-ctype-tests
@@ -242,12 +257,29 @@ EXTRA_DIST += test-c-stack.c test-c-stack.sh test-c-stack2.sh macros.h
 TESTS += test-c-strcase.sh
 TESTS_ENVIRONMENT += LOCALE_FR='@LOCALE_FR@' LOCALE_TR_UTF8='@LOCALE_TR_UTF8@'
 check_PROGRAMS += test-c-strcasecmp test-c-strncasecmp
-test_c_strcasecmp_LDADD = $(LDADD) $(LIB_SETLOCALE)
-test_c_strncasecmp_LDADD = $(LDADD) $(LIB_SETLOCALE)
+test_c_strcasecmp_LDADD = $(LDADD) $(SETLOCALE_LIB)
+test_c_strncasecmp_LDADD = $(LDADD) $(SETLOCALE_LIB)
 EXTRA_DIST += test-c-strcase.sh test-c-strcasecmp.c test-c-strncasecmp.c macros.h
 
 ## end   gnulib module c-strcase-tests
 
+## begin gnulib module c-strcasestr
+
+libtests_a_SOURCES += c-strcasestr.h c-strcasestr.c
+
+EXTRA_DIST += str-two-way.h
+
+## end   gnulib module c-strcasestr
+
+## begin gnulib module c-strcasestr-tests
+
+TESTS += test-c-strcasestr
+check_PROGRAMS += test-c-strcasestr
+
+EXTRA_DIST += test-c-strcasestr.c macros.h
+
+## end   gnulib module c-strcasestr-tests
+
 ## begin gnulib module calloc-gnu-tests
 
 TESTS += test-calloc-gnu
@@ -274,10 +306,11 @@ EXTRA_DIST += test-close.c signature.h macros.h
 
 ## begin gnulib module connect
 
+if GL_COND_OBJ_CONNECT
+libtests_a_SOURCES += connect.c
+endif
 
-EXTRA_DIST += connect.c w32sock.h
-
-EXTRA_libtests_a_SOURCES += connect.c
+EXTRA_DIST += w32sock.h
 
 ## end   gnulib module connect
 
@@ -321,14 +354,6 @@ EXTRA_DIST += test-dup2.c signature.h macros.h
 
 ## end   gnulib module dup2-tests
 
-## begin gnulib module dynarray-tests
-
-TESTS += test-dynarray
-check_PROGRAMS += test-dynarray
-EXTRA_DIST += test-dynarray.c macros.h
-
-## end   gnulib module dynarray-tests
-
 ## begin gnulib module environ-tests
 
 TESTS += test-environ
@@ -347,6 +372,15 @@ EXTRA_DIST += test-errno.c
 
 ## end   gnulib module errno-tests
 
+## begin gnulib module error-tests
+
+TESTS += test-error.sh
+check_PROGRAMS += test-error
+test_error_LDADD = $(LDADD) $(LIBINTL)
+EXTRA_DIST += test-error.sh test-error.c macros.h
+
+## end   gnulib module error-tests
+
 ## begin gnulib module exclude-tests
 
 TESTS += \
@@ -360,7 +394,7 @@ TESTS += \
  test-exclude8.sh
 
 check_PROGRAMS += test-exclude
-test_exclude_LDADD = $(LDADD) $(LIBUNISTRING) @LIBINTL@ $(LIB_MBRTOWC) $(LIBTHREAD)
+test_exclude_LDADD = $(LDADD) $(LIBUNISTRING) @LIBINTL@ $(MBRTOWC_LIB) $(LIBTHREAD)
 EXTRA_DIST += test-exclude.c test-exclude1.sh test-exclude2.sh test-exclude3.sh test-exclude4.sh test-exclude5.sh test-exclude6.sh test-exclude7.sh test-exclude8.sh
 
 ## end   gnulib module exclude-tests
@@ -383,10 +417,9 @@ EXTRA_DIST += test-fcntl.c signature.h macros.h
 
 ## begin gnulib module fdopen
 
-
-EXTRA_DIST += fdopen.c
-
-EXTRA_libtests_a_SOURCES += fdopen.c
+if GL_COND_OBJ_FDOPEN
+libtests_a_SOURCES += fdopen.c
+endif
 
 ## end   gnulib module fdopen
 
@@ -415,6 +448,40 @@ EXTRA_DIST += test-filenamecat.c
 
 ## end   gnulib module filenamecat-tests
 
+## begin gnulib module float
+
+BUILT_SOURCES += $(FLOAT_H)
+
+# We need the following in order to create <float.h> when the system
+# doesn't have one that works with the given compiler.
+if GL_GENERATE_FLOAT_H
+float.h: float.in.h $(top_builddir)/config.status
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+             -e 's|@''NEXT_FLOAT_H''@|$(NEXT_FLOAT_H)|g' \
+             -e 's|@''REPLACE_ITOLD''@|$(REPLACE_ITOLD)|g' \
+             $(srcdir)/float.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
+else
+float.h: $(top_builddir)/config.status
+       rm -f $@
+endif
+MOSTLYCLEANFILES += float.h float.h-t
+
+if GL_COND_OBJ_FLOAT
+libtests_a_SOURCES += float.c
+endif
+if GL_COND_OBJ_ITOLD
+libtests_a_SOURCES += itold.c
+endif
+
+EXTRA_DIST += float.in.h
+
+## end   gnulib module float
+
 ## begin gnulib module float-tests
 
 TESTS += test-float
@@ -435,7 +502,7 @@ EXTRA_DIST += test-fnmatch-h.c
 
 TESTS += test-fnmatch
 check_PROGRAMS += test-fnmatch
-test_fnmatch_LDADD = $(LDADD) $(LIB_MBRTOWC)
+test_fnmatch_LDADD = $(LDADD) $(MBRTOWC_LIB)
 EXTRA_DIST += test-fnmatch.c signature.h macros.h
 
 ## end   gnulib module fnmatch-tests
@@ -507,10 +574,9 @@ EXTRA_DIST += test-fstat.c signature.h macros.h
 
 ## begin gnulib module ftruncate
 
-
-EXTRA_DIST += ftruncate.c
-
-EXTRA_libtests_a_SOURCES += ftruncate.c
+if GL_COND_OBJ_FTRUNCATE
+libtests_a_SOURCES += ftruncate.c
+endif
 
 ## end   gnulib module ftruncate
 
@@ -530,12 +596,30 @@ EXTRA_DIST += test-fwrite.c signature.h macros.h
 
 ## end   gnulib module fwrite-tests
 
-## begin gnulib module getcwd-lgpl
+## begin gnulib module gen-header
+
+# In 'sed', replace the pattern space with a "DO NOT EDIT" comment.
+SED_HEADER_NOEDIT = s,.*,/* DO NOT EDIT! GENERATED AUTOMATICALLY! */,
+
+# '$(SED_HEADER_STDOUT) -e "..."' runs 'sed' but first outputs "DO NOT EDIT".
+SED_HEADER_STDOUT = sed -e 1h -e '1$(SED_HEADER_NOEDIT)' -e 1G
 
+# '$(SED_HEADER_TO_AT_t) FILE' copies FILE to $@-t, prepending a leading
+# "DO_NOT_EDIT".  Although this could be done more simply via:
+#      SED_HEADER_TO_AT_t = $(SED_HEADER_STDOUT) > $@-t
+# the -n and 'w' avoid a fork+exec, at least when GNU Make is used.
+SED_HEADER_TO_AT_t = $(SED_HEADER_STDOUT) -n -e 'w $@-t'
 
-EXTRA_DIST += getcwd-lgpl.c
+# Use $(gl_V_at) instead of $(AM_V_GEN) or $(AM_V_at) on a line that
+gl_V_at = $(AM_V_GEN)
 
-EXTRA_libtests_a_SOURCES += getcwd-lgpl.c
+## end   gnulib module gen-header
+
+## begin gnulib module getcwd-lgpl
+
+if GL_COND_OBJ_GETCWD_LGPL
+libtests_a_SOURCES += getcwd-lgpl.c
+endif
 
 ## end   gnulib module getcwd-lgpl
 
@@ -588,7 +672,7 @@ EXTRA_DIST += test-getprogname.c
 
 TESTS += test-getrandom
 check_PROGRAMS += test-getrandom
-test_getrandom_LDADD = $(LDADD) @LIB_GETRANDOM@
+test_getrandom_LDADD = $(LDADD) @GETRANDOM_LIB@
 EXTRA_DIST += test-getrandom.c signature.h macros.h
 
 ## end   gnulib module getrandom-tests
@@ -598,10 +682,18 @@ EXTRA_DIST += test-getrandom.c signature.h macros.h
 TESTS += test-gettimeofday
 check_PROGRAMS += test-gettimeofday
 
-EXTRA_DIST += signature.h test-gettimeofday.c
+EXTRA_DIST += test-gettimeofday.c signature.h macros.h
 
 ## end   gnulib module gettimeofday-tests
 
+## begin gnulib module glibc-internal/dynarray-tests
+
+TESTS += test-dynarray
+check_PROGRAMS += test-dynarray
+EXTRA_DIST += test-dynarray.c macros.h
+
+## end   gnulib module glibc-internal/dynarray-tests
+
 ## begin gnulib module gperf
 
 GPERF = gperf
@@ -615,7 +707,7 @@ V_GPERF_0 = @echo "  GPERF   " $@;
 
 TESTS += test-hard-locale
 check_PROGRAMS += test-hard-locale
-test_hard_locale_LDADD = $(LDADD) $(LIB_SETLOCALE) @LIB_HARD_LOCALE@
+test_hard_locale_LDADD = $(LDADD) $(SETLOCALE_LIB) @HARD_LOCALE_LIB@
 # We cannot call this program 'locale', because the C++ compiler on Mac OS X
 # would then barf upon '#include <locale>'. So, call it 'current-locale'.
 noinst_PROGRAMS += current-locale
@@ -666,10 +758,9 @@ EXTRA_DIST += test-ignore-value.c
 
 ## begin gnulib module inet_pton
 
-
-EXTRA_DIST += inet_pton.c
-
-EXTRA_libtests_a_SOURCES += inet_pton.c
+if GL_COND_OBJ_INET_PTON
+libtests_a_SOURCES += inet_pton.c
+endif
 
 ## end   gnulib module inet_pton
 
@@ -708,10 +799,11 @@ EXTRA_DIST += test-inttypes.c
 
 ## begin gnulib module ioctl
 
+if GL_COND_OBJ_IOCTL
+libtests_a_SOURCES += ioctl.c
+endif
 
-EXTRA_DIST += ioctl.c w32sock.h
-
-EXTRA_libtests_a_SOURCES += ioctl.c
+EXTRA_DIST += w32sock.h
 
 ## end   gnulib module ioctl
 
@@ -748,7 +840,7 @@ TESTS_ENVIRONMENT += \
   LOCALE_JA='@LOCALE_JA@' \
   LOCALE_ZH_CN='@LOCALE_ZH_CN@'
 check_PROGRAMS += test-iswdigit
-test_iswdigit_LDADD = $(LDADD) $(LIB_SETLOCALE) $(LIB_MBRTOWC)
+test_iswdigit_LDADD = $(LDADD) $(SETLOCALE_LIB) $(MBRTOWC_LIB)
 EXTRA_DIST += test-iswdigit.sh test-iswdigit.c signature.h macros.h
 
 ## end   gnulib module iswdigit-tests
@@ -762,7 +854,7 @@ TESTS_ENVIRONMENT += \
   LOCALE_JA='@LOCALE_JA@' \
   LOCALE_ZH_CN='@LOCALE_ZH_CN@'
 check_PROGRAMS += test-iswxdigit
-test_iswxdigit_LDADD = $(LDADD) $(LIB_SETLOCALE) $(LIB_MBRTOWC)
+test_iswxdigit_LDADD = $(LDADD) $(SETLOCALE_LIB) $(MBRTOWC_LIB)
 EXTRA_DIST += test-iswxdigit.sh test-iswxdigit.c signature.h macros.h
 
 ## end   gnulib module iswxdigit-tests
@@ -775,6 +867,14 @@ EXTRA_DIST += test-langinfo.c
 
 ## end   gnulib module langinfo-tests
 
+## begin gnulib module largefile-tests
+
+TESTS += test-largefile
+check_PROGRAMS += test-largefile
+EXTRA_DIST += test-largefile.c
+
+## end   gnulib module largefile-tests
+
 ## begin gnulib module limits-h-tests
 
 TESTS += test-limits-h
@@ -785,10 +885,11 @@ EXTRA_DIST += test-limits-h.c
 
 ## begin gnulib module listen
 
+if GL_COND_OBJ_LISTEN
+libtests_a_SOURCES += listen.c
+endif
 
-EXTRA_DIST += listen.c w32sock.h
-
-EXTRA_libtests_a_SOURCES += listen.c
+EXTRA_DIST += w32sock.h
 
 ## end   gnulib module listen
 
@@ -804,7 +905,7 @@ EXTRA_DIST += test-listen.c signature.h macros.h
 ## begin gnulib module localcharset-tests
 
 noinst_PROGRAMS += test-localcharset
-test_localcharset_LDADD = $(LDADD) $(LIB_SETLOCALE)
+test_localcharset_LDADD = $(LDADD) $(SETLOCALE_LIB)
 EXTRA_DIST += test-localcharset.c
 
 ## end   gnulib module localcharset-tests
@@ -864,7 +965,7 @@ TESTS_ENVIRONMENT += \
   LOCALE_JA='@LOCALE_JA@' \
   LOCALE_ZH_CN='@LOCALE_ZH_CN@'
 check_PROGRAMS += test-mbrtowc test-mbrtowc-w32
-test_mbrtowc_LDADD = $(LDADD) $(LIB_SETLOCALE) $(LIB_MBRTOWC)
+test_mbrtowc_LDADD = $(LDADD) $(SETLOCALE_LIB) $(MBRTOWC_LIB)
 EXTRA_DIST += test-mbrtowc1.sh test-mbrtowc2.sh test-mbrtowc3.sh test-mbrtowc4.sh test-mbrtowc5.sh test-mbrtowc.c test-mbrtowc-w32-1.sh test-mbrtowc-w32-2.sh test-mbrtowc-w32-3.sh test-mbrtowc-w32-4.sh test-mbrtowc-w32-5.sh test-mbrtowc-w32-6.sh test-mbrtowc-w32-7.sh test-mbrtowc-w32.c signature.h macros.h
 
 ## end   gnulib module mbrtowc-tests
@@ -874,7 +975,7 @@ EXTRA_DIST += test-mbrtowc1.sh test-mbrtowc2.sh test-mbrtowc3.sh test-mbrtowc4.s
 TESTS += test-mbscasecmp.sh
 TESTS_ENVIRONMENT += LOCALE_TR_UTF8='@LOCALE_TR_UTF8@'
 check_PROGRAMS += test-mbscasecmp
-test_mbscasecmp_LDADD = $(LDADD) $(LIBUNISTRING) $(LIB_SETLOCALE) $(LIB_MBRTOWC)
+test_mbscasecmp_LDADD = $(LDADD) $(LIBUNISTRING) $(SETLOCALE_LIB) $(MBRTOWC_LIB)
 EXTRA_DIST += test-mbscasecmp.sh test-mbscasecmp.c macros.h
 
 ## end   gnulib module mbscasecmp-tests
@@ -884,22 +985,24 @@ EXTRA_DIST += test-mbscasecmp.sh test-mbscasecmp.c macros.h
 TESTS += test-mbsinit.sh
 TESTS_ENVIRONMENT += LOCALE_FR_UTF8='@LOCALE_FR_UTF8@'
 check_PROGRAMS += test-mbsinit
-test_mbsinit_LDADD = $(LDADD) $(LIB_SETLOCALE) $(LIB_MBRTOWC)
+test_mbsinit_LDADD = $(LDADD) $(SETLOCALE_LIB) $(MBRTOWC_LIB)
 EXTRA_DIST += test-mbsinit.sh test-mbsinit.c signature.h macros.h
 
 ## end   gnulib module mbsinit-tests
 
 ## begin gnulib module mbsrtowcs-tests
 
-TESTS += test-mbsrtowcs1.sh test-mbsrtowcs2.sh test-mbsrtowcs3.sh test-mbsrtowcs4.sh
+TESTS += \
+  test-mbsrtowcs1.sh test-mbsrtowcs2.sh test-mbsrtowcs3.sh test-mbsrtowcs4.sh \
+  test-mbsrtowcs5.sh
 TESTS_ENVIRONMENT += \
   LOCALE_FR='@LOCALE_FR@' \
   LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' \
   LOCALE_JA='@LOCALE_JA@' \
   LOCALE_ZH_CN='@LOCALE_ZH_CN@'
 check_PROGRAMS += test-mbsrtowcs
-test_mbsrtowcs_LDADD = $(LDADD) $(LIB_SETLOCALE) $(LIB_MBRTOWC)
-EXTRA_DIST += test-mbsrtowcs1.sh test-mbsrtowcs2.sh test-mbsrtowcs3.sh test-mbsrtowcs4.sh test-mbsrtowcs.c signature.h macros.h
+test_mbsrtowcs_LDADD = $(LDADD) $(SETLOCALE_LIB) $(MBRTOWC_LIB)
+EXTRA_DIST += test-mbsrtowcs1.sh test-mbsrtowcs2.sh test-mbsrtowcs3.sh test-mbsrtowcs4.sh test-mbsrtowcs5.sh test-mbsrtowcs.c signature.h macros.h
 
 ## end   gnulib module mbsrtowcs-tests
 
@@ -908,9 +1011,9 @@ EXTRA_DIST += test-mbsrtowcs1.sh test-mbsrtowcs2.sh test-mbsrtowcs3.sh test-mbsr
 TESTS += test-mbsstr1 test-mbsstr2.sh test-mbsstr3.sh
 TESTS_ENVIRONMENT += LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' LOCALE_ZH_CN='@LOCALE_ZH_CN@'
 check_PROGRAMS += test-mbsstr1 test-mbsstr2 test-mbsstr3
-test_mbsstr1_LDADD = $(LDADD) $(LIBUNISTRING) $(LIB_MBRTOWC)
-test_mbsstr2_LDADD = $(LDADD) $(LIBUNISTRING) $(LIB_SETLOCALE) $(LIB_MBRTOWC)
-test_mbsstr3_LDADD = $(LDADD) $(LIBUNISTRING) $(LIB_SETLOCALE) $(LIB_MBRTOWC)
+test_mbsstr1_LDADD = $(LDADD) $(LIBUNISTRING) $(MBRTOWC_LIB)
+test_mbsstr2_LDADD = $(LDADD) $(LIBUNISTRING) $(SETLOCALE_LIB) $(MBRTOWC_LIB)
+test_mbsstr3_LDADD = $(LDADD) $(LIBUNISTRING) $(SETLOCALE_LIB) $(MBRTOWC_LIB)
 EXTRA_DIST += test-mbsstr1.c test-mbsstr2.sh test-mbsstr2.c test-mbsstr3.sh test-mbsstr3.c macros.h
 
 ## end   gnulib module mbsstr-tests
@@ -933,10 +1036,9 @@ EXTRA_DIST += test-mkdir.h test-mkdir.c signature.h macros.h
 
 ## begin gnulib module nanosleep
 
-
-EXTRA_DIST += nanosleep.c
-
-EXTRA_libtests_a_SOURCES += nanosleep.c
+if GL_COND_OBJ_NANOSLEEP
+libtests_a_SOURCES += nanosleep.c
+endif
 
 ## end   gnulib module nanosleep
 
@@ -944,7 +1046,7 @@ EXTRA_libtests_a_SOURCES += nanosleep.c
 
 TESTS += test-nanosleep
 check_PROGRAMS += test-nanosleep
-test_nanosleep_LDADD = $(LDADD) $(LIB_NANOSLEEP)
+test_nanosleep_LDADD = $(LDADD) $(NANOSLEEP_LIB)
 EXTRA_DIST += test-nanosleep.c signature.h macros.h
 
 ## end   gnulib module nanosleep-tests
@@ -957,18 +1059,16 @@ BUILT_SOURCES += $(NETINET_IN_H)
 # doesn't have one.
 if GL_GENERATE_NETINET_IN_H
 netinet/in.h: netinet_in.in.h $(top_builddir)/config.status
-       $(AM_V_at)$(MKDIR_P) netinet
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(AM_V_GEN)$(MKDIR_P) '%reldir%/netinet'
+       $(AM_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
              -e 's|@''NEXT_NETINET_IN_H''@|$(NEXT_NETINET_IN_H)|g' \
              -e 's|@''HAVE_NETINET_IN_H''@|$(HAVE_NETINET_IN_H)|g' \
-             < $(srcdir)/netinet_in.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/netinet_in.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 else
 netinet/in.h: $(top_builddir)/config.status
        rm -f $@
@@ -990,12 +1090,13 @@ EXTRA_DIST += test-netinet_in.c
 
 ## begin gnulib module nl_langinfo-tests
 
-TESTS += test-nl_langinfo.sh test-nl_langinfo-mt
+TESTS += test-nl_langinfo1.sh test-nl_langinfo2.sh test-nl_langinfo-mt
 TESTS_ENVIRONMENT += LOCALE_FR='@LOCALE_FR@' LOCALE_FR_UTF8='@LOCALE_FR_UTF8@'
-check_PROGRAMS += test-nl_langinfo test-nl_langinfo-mt
-test_nl_langinfo_LDADD = $(LDADD) $(LIB_SETLOCALE)
-test_nl_langinfo_mt_LDADD = $(LDADD) $(LIB_SETLOCALE) $(LIBMULTITHREAD) $(LIB_NANOSLEEP)
-EXTRA_DIST += test-nl_langinfo.sh test-nl_langinfo.c test-nl_langinfo-mt.c signature.h macros.h
+check_PROGRAMS += test-nl_langinfo1 test-nl_langinfo2 test-nl_langinfo-mt
+test_nl_langinfo1_LDADD = $(LDADD) $(SETLOCALE_LIB)
+test_nl_langinfo2_LDADD = $(LDADD) $(SETLOCALE_LIB)
+test_nl_langinfo_mt_LDADD = $(LDADD) $(SETLOCALE_LIB) $(LIBMULTITHREAD) $(NANOSLEEP_LIB)
+EXTRA_DIST += test-nl_langinfo1.sh test-nl_langinfo2.sh test-nl_langinfo1.c test-nl_langinfo2.c test-nl_langinfo-mt.c signature.h macros.h
 
 ## end   gnulib module nl_langinfo-tests
 
@@ -1007,6 +1108,14 @@ EXTRA_DIST += test-nstrftime.c macros.h
 
 ## end   gnulib module nstrftime-tests
 
+## begin gnulib module nullptr-tests
+
+TESTS += test-nullptr
+check_PROGRAMS += test-nullptr
+EXTRA_DIST += test-nullptr.c macros.h
+
+## end   gnulib module nullptr-tests
+
 ## begin gnulib module open-tests
 
 TESTS += test-open
@@ -1025,10 +1134,9 @@ EXTRA_DIST += test-pathmax.c
 
 ## begin gnulib module perror
 
-
-EXTRA_DIST += perror.c
-
-EXTRA_libtests_a_SOURCES += perror.c
+if GL_COND_OBJ_PERROR
+libtests_a_SOURCES += perror.c
+endif
 
 ## end   gnulib module perror
 
@@ -1042,10 +1150,9 @@ EXTRA_DIST += macros.h signature.h test-perror.c test-perror2.c test-perror.sh
 
 ## begin gnulib module pipe-posix
 
-
-EXTRA_DIST += pipe.c
-
-EXTRA_libtests_a_SOURCES += pipe.c
+if GL_COND_OBJ_PIPE
+libtests_a_SOURCES += pipe.c
+endif
 
 ## end   gnulib module pipe-posix
 
@@ -1057,6 +1164,23 @@ EXTRA_DIST += test-pipe.c signature.h macros.h
 
 ## end   gnulib module pipe-posix-tests
 
+## begin gnulib module pselect
+
+if GL_COND_OBJ_PSELECT
+libtests_a_SOURCES += pselect.c
+endif
+
+## end   gnulib module pselect
+
+## begin gnulib module pselect-tests
+
+TESTS += test-pselect
+check_PROGRAMS += test-pselect
+test_pselect_LDADD = $(LDADD) @SELECT_LIB@ @LIBSOCKET@ @PTHREAD_SIGMASK_LIB@ $(INET_PTON_LIB)
+EXTRA_DIST += test-pselect.c test-select.h macros.h signature.h
+
+## end   gnulib module pselect-tests
+
 ## begin gnulib module pthread-h
 
 BUILT_SOURCES += pthread.h
@@ -1064,9 +1188,8 @@ BUILT_SOURCES += pthread.h
 # We need the following in order to create <pthread.h> when the system
 # doesn't have one that works with the given compiler.
 pthread.h: pthread.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(_NORETURN_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''HAVE_PTHREAD_H''@|$(HAVE_PTHREAD_H)|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
@@ -1192,9 +1315,9 @@ pthread.h: pthread.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(_NORETURN_H
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _Noreturn/r $(_NORETURN_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
-       } > $@-t && \
-       mv $@-t $@
+             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
+             > $@-t
+       $(AM_V_at)mv $@-t $@
 MOSTLYCLEANFILES += pthread.h pthread.h-t
 
 EXTRA_DIST += pthread.in.h
@@ -1211,10 +1334,9 @@ EXTRA_DIST += test-pthread.c
 
 ## begin gnulib module pthread-thread
 
-
-EXTRA_DIST += pthread-thread.c
-
-EXTRA_libtests_a_SOURCES += pthread-thread.c
+if GL_COND_OBJ_PTHREAD_THREAD
+libtests_a_SOURCES += pthread-thread.c
+endif
 
 ## end   gnulib module pthread-thread
 
@@ -1229,10 +1351,9 @@ EXTRA_DIST += test-pthread-thread.c macros.h
 
 ## begin gnulib module pthread_sigmask
 
-
-EXTRA_DIST += pthread_sigmask.c
-
-EXTRA_libtests_a_SOURCES += pthread_sigmask.c
+if GL_COND_OBJ_PTHREAD_SIGMASK
+libtests_a_SOURCES += pthread_sigmask.c
+endif
 
 ## end   gnulib module pthread_sigmask
 
@@ -1240,18 +1361,17 @@ EXTRA_libtests_a_SOURCES += pthread_sigmask.c
 
 TESTS += test-pthread_sigmask1 test-pthread_sigmask2
 check_PROGRAMS += test-pthread_sigmask1 test-pthread_sigmask2
-test_pthread_sigmask1_LDADD = $(LDADD) @LIB_PTHREAD_SIGMASK@
-test_pthread_sigmask2_LDADD = $(LDADD) @LIB_PTHREAD_SIGMASK@ @LIBMULTITHREAD@
+test_pthread_sigmask1_LDADD = $(LDADD) @PTHREAD_SIGMASK_LIB@
+test_pthread_sigmask2_LDADD = $(LDADD) @PTHREAD_SIGMASK_LIB@ @LIBMULTITHREAD@
 EXTRA_DIST += test-pthread_sigmask1.c test-pthread_sigmask2.c signature.h macros.h
 
 ## end   gnulib module pthread_sigmask-tests
 
 ## begin gnulib module putenv
 
-
-EXTRA_DIST += putenv.c
-
-EXTRA_libtests_a_SOURCES += putenv.c
+if GL_COND_OBJ_PUTENV
+libtests_a_SOURCES += putenv.c
+endif
 
 ## end   gnulib module putenv
 
@@ -1259,7 +1379,7 @@ EXTRA_libtests_a_SOURCES += putenv.c
 
 TESTS += test-quotearg-simple
 check_PROGRAMS += test-quotearg-simple
-test_quotearg_simple_LDADD = $(LDADD) @LIBINTL@ $(LIB_MBRTOWC)
+test_quotearg_simple_LDADD = $(LDADD) @LIBINTL@ $(MBRTOWC_LIB)
 EXTRA_DIST += test-quotearg-simple.c test-quotearg.h macros.h zerosize-ptr.h
 
 ## end   gnulib module quotearg-simple-tests
@@ -1308,7 +1428,7 @@ EXTRA_DIST += test-reallocarray.c signature.h macros.h
 
 TESTS += test-regex
 check_PROGRAMS += test-regex
-test_regex_LDADD = $(LDADD) $(LIB_SETLOCALE) $(LIB_MBRTOWC) @LIBINTL@ $(LIBTHREAD)
+test_regex_LDADD = $(LDADD) $(SETLOCALE_LIB) $(MBRTOWC_LIB) @LIBINTL@ $(LIBTHREAD)
 EXTRA_DIST += test-regex.c macros.h
 
 ## end   gnulib module regex-tests
@@ -1327,9 +1447,8 @@ BUILT_SOURCES += sched.h
 # We need the following in order to create a replacement for <sched.h> when
 # the system doesn't have one.
 sched.h: sched.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''HAVE_SCHED_H''@|$(HAVE_SCHED_H)|g' \
              -e 's|@''HAVE_SYS_CDEFS_H''@|$(HAVE_SYS_CDEFS_H)|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
@@ -1342,9 +1461,8 @@ sched.h: sched.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
              -e 's|@''REPLACE_SCHED_YIELD''@|$(REPLACE_SCHED_YIELD)|g' \
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/sched.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/sched.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 MOSTLYCLEANFILES += sched.h sched.h-t
 
 EXTRA_DIST += sched.in.h
@@ -1361,10 +1479,9 @@ EXTRA_DIST += test-sched.c
 
 ## begin gnulib module select
 
-
-EXTRA_DIST += select.c
-
-EXTRA_libtests_a_SOURCES += select.c
+if GL_COND_OBJ_SELECT
+libtests_a_SOURCES += select.c
+endif
 
 ## end   gnulib module select
 
@@ -1373,9 +1490,9 @@ EXTRA_libtests_a_SOURCES += select.c
 TESTS += test-select test-select-in.sh test-select-out.sh
 # test-select-stdin has to be run by hand.
 check_PROGRAMS += test-select test-select-fd test-select-stdin
-test_select_LDADD = $(LDADD) @LIB_SELECT@ @LIBSOCKET@ $(INET_PTON_LIB)
-test_select_fd_LDADD = $(LDADD) @LIB_SELECT@
-test_select_stdin_LDADD = $(LDADD) @LIB_SELECT@
+test_select_LDADD = $(LDADD) @SELECT_LIB@ @LIBSOCKET@ $(INET_PTON_LIB)
+test_select_fd_LDADD = $(LDADD) @SELECT_LIB@
+test_select_stdin_LDADD = $(LDADD) @SELECT_LIB@
 EXTRA_DIST += macros.h signature.h test-select.c test-select.h test-select-fd.c test-select-in.sh test-select-out.sh test-select-stdin.c
 
 ## end   gnulib module select-tests
@@ -1398,19 +1515,20 @@ check_PROGRAMS += \
   test-setlocale_null \
   test-setlocale_null-mt-one \
   test-setlocale_null-mt-all
-test_setlocale_null_LDADD = $(LDADD) @LIB_SETLOCALE_NULL@
-test_setlocale_null_mt_one_LDADD = $(LDADD) @LIB_SETLOCALE_NULL@ $(LIBMULTITHREAD) $(LIB_NANOSLEEP)
-test_setlocale_null_mt_all_LDADD = $(LDADD) @LIB_SETLOCALE_NULL@ $(LIBMULTITHREAD) $(LIB_NANOSLEEP)
+test_setlocale_null_LDADD = $(LDADD) @SETLOCALE_NULL_LIB@
+test_setlocale_null_mt_one_LDADD = $(LDADD) @SETLOCALE_NULL_LIB@ $(LIBMULTITHREAD) $(NANOSLEEP_LIB)
+test_setlocale_null_mt_all_LDADD = $(LDADD) @SETLOCALE_NULL_LIB@ $(LIBMULTITHREAD) $(NANOSLEEP_LIB)
 EXTRA_DIST += test-setlocale_null.c test-setlocale_null-mt-one.c test-setlocale_null-mt-all.c
 
 ## end   gnulib module setlocale-null-tests
 
 ## begin gnulib module setsockopt
 
+if GL_COND_OBJ_SETSOCKOPT
+libtests_a_SOURCES += setsockopt.c
+endif
 
-EXTRA_DIST += setsockopt.c w32sock.h
-
-EXTRA_libtests_a_SOURCES += setsockopt.c
+EXTRA_DIST += w32sock.h
 
 ## end   gnulib module setsockopt
 
@@ -1427,29 +1545,11 @@ EXTRA_DIST += test-setsockopt.c signature.h macros.h
 
 TESTS += test-sh-quote
 check_PROGRAMS += test-sh-quote
-test_sh_quote_LDADD = $(LDADD) @LIBINTL@ $(LIB_MBRTOWC)
+test_sh_quote_LDADD = $(LDADD) @LIBINTL@ $(MBRTOWC_LIB)
 EXTRA_DIST += test-sh-quote.c
 
 ## end   gnulib module sh-quote-tests
 
-## begin gnulib module sigaction
-
-libtests_a_SOURCES += sig-handler.c
-
-EXTRA_DIST += sig-handler.h sigaction.c
-
-EXTRA_libtests_a_SOURCES += sigaction.c
-
-## end   gnulib module sigaction
-
-## begin gnulib module sigaction-tests
-
-TESTS += test-sigaction
-check_PROGRAMS += test-sigaction
-EXTRA_DIST += test-sigaction.c signature.h macros.h
-
-## end   gnulib module sigaction-tests
-
 ## begin gnulib module signal-h-tests
 
 TESTS += test-signal-h
@@ -1458,15 +1558,6 @@ EXTRA_DIST += test-signal-h.c
 
 ## end   gnulib module signal-h-tests
 
-## begin gnulib module sigprocmask
-
-
-EXTRA_DIST += sigprocmask.c
-
-EXTRA_libtests_a_SOURCES += sigprocmask.c
-
-## end   gnulib module sigprocmask
-
 ## begin gnulib module sigprocmask-tests
 
 TESTS += test-sigprocmask
@@ -1495,12 +1586,17 @@ EXTRA_DIST += test-sigsegv-catch-segv1.c test-sigsegv-catch-segv2.c test-sigsegv
 
 ## end   gnulib module sigsegv-tests
 
-## begin gnulib module sleep
+## begin gnulib module size_max
 
+libtests_a_SOURCES += size_max.h
 
-EXTRA_DIST += sleep.c
+## end   gnulib module size_max
 
-EXTRA_libtests_a_SOURCES += sleep.c
+## begin gnulib module sleep
+
+if GL_COND_OBJ_SLEEP
+libtests_a_SOURCES += sleep.c
+endif
 
 ## end   gnulib module sleep
 
@@ -1580,10 +1676,11 @@ EXTRA_DIST += test-snprintf.c signature.h macros.h
 
 ## begin gnulib module socket
 
+if GL_COND_OBJ_SOCKET
+libtests_a_SOURCES += socket.c
+endif
 
-EXTRA_DIST += socket.c w32sock.h
-
-EXTRA_libtests_a_SOURCES += socket.c
+EXTRA_DIST += w32sock.h
 
 ## end   gnulib module socket
 
@@ -1617,19 +1714,11 @@ EXTRA_DIST += test-stat.h test-stat.c signature.h macros.h
 
 TESTS += test-stat-time
 check_PROGRAMS += test-stat-time
-test_stat_time_LDADD = $(LDADD) $(LIB_NANOSLEEP)
+test_stat_time_LDADD = $(LDADD) $(NANOSLEEP_LIB)
 EXTRA_DIST += test-stat-time.c macros.h nap.h
 
 ## end   gnulib module stat-time-tests
 
-## begin gnulib module stdalign-tests
-
-TESTS += test-stdalign
-check_PROGRAMS += test-stdalign
-EXTRA_DIST += test-stdalign.c macros.h
-
-## end   gnulib module stdalign-tests
-
 ## begin gnulib module stdbool-tests
 
 TESTS += test-stdbool
@@ -1638,6 +1727,14 @@ EXTRA_DIST += test-stdbool.c
 
 ## end   gnulib module stdbool-tests
 
+## begin gnulib module stdckdint-tests
+
+TESTS += test-stdckdint
+check_PROGRAMS += test-stdckdint
+EXTRA_DIST += macros.h test-intprops.c test-stdckdint.c
+
+## end   gnulib module stdckdint-tests
+
 ## begin gnulib module stddef-tests
 
 TESTS += test-stddef
@@ -1658,7 +1755,7 @@ EXTRA_DIST += test-stdint.c
 
 TESTS += test-stdio
 check_PROGRAMS += test-stdio
-EXTRA_DIST += test-stdio.c
+EXTRA_DIST += test-stdio.c nan.h macros.h
 
 ## end   gnulib module stdio-tests
 
@@ -1747,10 +1844,9 @@ EXTRA_DIST += test-strtoll.c signature.h macros.h
 
 ## begin gnulib module symlink
 
-
-EXTRA_DIST += symlink.c
-
-EXTRA_libtests_a_SOURCES += symlink.c
+if GL_COND_OBJ_SYMLINK
+libtests_a_SOURCES += symlink.c
+endif
 
 ## end   gnulib module symlink
 
@@ -1769,10 +1865,9 @@ BUILT_SOURCES += sys/ioctl.h
 # We need the following in order to create <sys/ioctl.h> when the system
 # does not have a complete one.
 sys/ioctl.h: sys_ioctl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
-       $(AM_V_at)$(MKDIR_P) sys
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(AM_V_GEN)$(MKDIR_P) '%reldir%/sys'
+       $(AM_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''HAVE_SYS_IOCTL_H''@|$(HAVE_SYS_IOCTL_H)|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
@@ -1784,9 +1879,8 @@ sys/ioctl.h: sys_ioctl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON
              -e 's|@''REPLACE_IOCTL''@|$(REPLACE_IOCTL)|g' \
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/sys_ioctl.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/sys_ioctl.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 MOSTLYCLEANFILES += sys/ioctl.h sys/ioctl.h-t
 MOSTLYCLEANDIRS += sys
 
@@ -1817,10 +1911,9 @@ BUILT_SOURCES += sys/select.h
 # We need the following in order to create <sys/select.h> when the system
 # doesn't have one that works with the given compiler.
 sys/select.h: sys_select.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
-       $(AM_V_at)$(MKDIR_P) sys
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(AM_V_GEN)$(MKDIR_P) '%reldir%/sys'
+       $(AM_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
@@ -1834,9 +1927,8 @@ sys/select.h: sys_select.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_
              -e 's|@''REPLACE_SELECT''@|$(REPLACE_SELECT)|g' \
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/sys_select.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/sys_select.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 MOSTLYCLEANFILES += sys/select.h sys/select.h-t
 MOSTLYCLEANDIRS += sys
 
@@ -1860,10 +1952,9 @@ libtests_a_SOURCES += sys_socket.c
 # We need the following in order to create <sys/socket.h> when the system
 # doesn't have one that works with the given compiler.
 sys/socket.h: sys_socket.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H)
-       $(AM_V_at)$(MKDIR_P) sys
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(AM_V_GEN)$(MKDIR_P) '%reldir%/sys'
+       $(AM_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
@@ -1894,9 +1985,8 @@ sys/socket.h: sys_socket.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/sys_socket.in.h; \
-       } > $@-t && \
-       mv -f $@-t $@
+             $(srcdir)/sys_socket.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 MOSTLYCLEANFILES += sys/socket.h sys/socket.h-t
 MOSTLYCLEANDIRS += sys
 
@@ -1943,18 +2033,16 @@ BUILT_SOURCES += sys/uio.h
 # We need the following in order to create <sys/uio.h> when the system
 # doesn't have one that works with the given compiler.
 sys/uio.h: sys_uio.in.h $(top_builddir)/config.status
-       $(AM_V_at)$(MKDIR_P) sys
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(AM_V_GEN)$(MKDIR_P) '%reldir%/sys'
+       $(AM_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
              -e 's|@''NEXT_SYS_UIO_H''@|$(NEXT_SYS_UIO_H)|g' \
              -e 's|@''HAVE_SYS_UIO_H''@|$(HAVE_SYS_UIO_H)|g' \
-             < $(srcdir)/sys_uio.in.h; \
-       } > $@-t && \
-       mv -f $@-t $@
+             $(srcdir)/sys_uio.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 MOSTLYCLEANFILES += sys/uio.h sys/uio.h-t
 MOSTLYCLEANDIRS += sys
 
@@ -2002,11 +2090,27 @@ EXTRA_DIST += test-thread_self.c test-thread_create.c macros.h
 
 ## end   gnulib module thread-tests
 
+## begin gnulib module time
+
+if GL_COND_OBJ_TIME
+libtests_a_SOURCES += time.c
+endif
+
+## end   gnulib module time
+
+## begin gnulib module time-h-tests
+
+TESTS += test-time-h
+check_PROGRAMS += test-time-h
+EXTRA_DIST += test-time-h.c
+
+## end   gnulib module time-h-tests
+
 ## begin gnulib module time-tests
 
 TESTS += test-time
 check_PROGRAMS += test-time
-EXTRA_DIST += test-time.c
+EXTRA_DIST += test-time.c signature.h macros.h
 
 ## end   gnulib module time-tests
 
@@ -2030,6 +2134,18 @@ EXTRA_DIST += test-timespec.c macros.h
 
 ## end   gnulib module timespec-tests
 
+## begin gnulib module trim-tests
+
+TESTS += test-trim1.sh test-trim2.sh test-trim3.sh
+TESTS_ENVIRONMENT += \
+  LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' \
+  LOCALE_ZH_CN='@LOCALE_ZH_CN@'
+check_PROGRAMS += test-trim
+test_trim_LDADD = $(LDADD) $(LIBUNISTRING) @LIBINTL@ $(MBRTOWC_LIB)
+EXTRA_DIST += test-trim1.sh test-trim2.sh test-trim3.sh test-trim.c macros.h
+
+## end   gnulib module trim-tests
+
 ## begin gnulib module unistd-tests
 
 TESTS += test-unistd
@@ -2086,6 +2202,15 @@ EXTRA_DIST += test-update-copyright.sh
 
 ## end   gnulib module update-copyright-tests
 
+## begin gnulib module vasnprintf
+
+
+EXTRA_DIST += asnprintf.c float+.h printf-args.c printf-args.h printf-parse.c printf-parse.h vasnprintf.c vasnprintf.h
+
+EXTRA_libtests_a_SOURCES += asnprintf.c printf-args.c printf-parse.c vasnprintf.c
+
+## end   gnulib module vasnprintf
+
 ## begin gnulib module vasnprintf-tests
 
 TESTS += test-vasnprintf
@@ -2095,15 +2220,6 @@ EXTRA_DIST += test-vasnprintf.c macros.h
 
 ## end   gnulib module vasnprintf-tests
 
-## begin gnulib module vasprintf-tests
-
-TESTS += test-vasprintf
-check_PROGRAMS += test-vasprintf
-
-EXTRA_DIST += test-vasprintf.c signature.h macros.h
-
-## end   gnulib module vasprintf-tests
-
 ## begin gnulib module vc-list-files-tests
 
 TESTS += test-vc-list-files-git.sh
@@ -2160,26 +2276,26 @@ TESTS_ENVIRONMENT += \
   LOCALE_JA='@LOCALE_JA@' \
   LOCALE_ZH_CN='@LOCALE_ZH_CN@'
 check_PROGRAMS += test-wcrtomb test-wcrtomb-w32
-test_wcrtomb_LDADD = $(LDADD) $(LIB_SETLOCALE)
+test_wcrtomb_LDADD = $(LDADD) $(SETLOCALE_LIB)
 EXTRA_DIST += test-wcrtomb.sh test-wcrtomb.c test-wcrtomb-w32-1.sh test-wcrtomb-w32-2.sh test-wcrtomb-w32-3.sh test-wcrtomb-w32-4.sh test-wcrtomb-w32-5.sh test-wcrtomb-w32-6.sh test-wcrtomb-w32-7.sh test-wcrtomb-w32.c signature.h macros.h
 
 ## end   gnulib module wcrtomb-tests
 
 ## begin gnulib module wctob
 
-
-EXTRA_DIST += wctob.c
-
-EXTRA_libtests_a_SOURCES += wctob.c
+if GL_COND_OBJ_WCTOB
+libtests_a_SOURCES += wctob.c
+endif
 
 ## end   gnulib module wctob
 
 ## begin gnulib module wctomb
 
+if GL_COND_OBJ_WCTOMB
+libtests_a_SOURCES += wctomb.c
+endif
 
-EXTRA_DIST += wctomb-impl.h wctomb.c
-
-EXTRA_libtests_a_SOURCES += wctomb.c
+EXTRA_DIST += wctomb-impl.h
 
 ## end   gnulib module wctomb
 
@@ -2195,26 +2311,28 @@ EXTRA_DIST += test-wctype-h.c macros.h
 
 TESTS += test-wcwidth
 check_PROGRAMS += test-wcwidth
-test_wcwidth_LDADD = $(LDADD) $(LIB_SETLOCALE) $(LIBUNISTRING)
+test_wcwidth_LDADD = $(LDADD) $(SETLOCALE_LIB) $(LIBUNISTRING)
 EXTRA_DIST += test-wcwidth.c signature.h macros.h
 
 ## end   gnulib module wcwidth-tests
 
 ## begin gnulib module windows-thread
 
+if GL_COND_OBJ_WINDOWS_THREAD
+libtests_a_SOURCES += windows-thread.c
+endif
 
-EXTRA_DIST += windows-thread.c windows-thread.h
-
-EXTRA_libtests_a_SOURCES += windows-thread.c
+EXTRA_DIST += windows-thread.h
 
 ## end   gnulib module windows-thread
 
 ## begin gnulib module windows-tls
 
+if GL_COND_OBJ_WINDOWS_TLS
+libtests_a_SOURCES += windows-tls.c
+endif
 
-EXTRA_DIST += windows-tls.c windows-tls.h
-
-EXTRA_libtests_a_SOURCES += windows-tls.c
+EXTRA_DIST += windows-tls.h
 
 ## end   gnulib module windows-tls
 
@@ -2227,6 +2345,12 @@ EXTRA_DIST += test-xalloc-die.c test-xalloc-die.sh
 
 ## end   gnulib module xalloc-die-tests
 
+## begin gnulib module xsize
+
+libtests_a_SOURCES += xsize.h xsize.c
+
+## end   gnulib module xsize
+
 ## begin gnulib module xstdopen-tests
 
 TESTS += test-xstdopen.sh
@@ -2263,15 +2387,13 @@ EXTRA_DIST += test-xstrtol.c test-xstrtoul.c test-xstrtol.sh
 
 ## end   gnulib module xstrtol-tests
 
-## begin gnulib module xvasprintf-tests
-
-TESTS += test-xvasprintf
-check_PROGRAMS += test-xvasprintf
-test_xvasprintf_LDADD = $(LDADD) @LIBINTL@
+## begin gnulib module year2038-tests
 
-EXTRA_DIST += test-xvasprintf.c macros.h
+TESTS += test-year2038
+check_PROGRAMS += test-year2038
+EXTRA_DIST += test-year2038.c
 
-## end   gnulib module xvasprintf-tests
+## end   gnulib module year2038-tests
 
 all: all-notice
 all-notice:
index 19e7762..74afac7 100644 (file)
@@ -1,6 +1,6 @@
 /* hash-pjw.c -- compute a hash value from a NUL-terminated string.
 
-   Copyright (C) 2001, 2003, 2006, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2003, 2006, 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index cb18cf3..69af02f 100644 (file)
@@ -1,5 +1,5 @@
 /* hash-pjw.h -- declaration for a simple hash function
-   Copyright (C) 2001, 2003, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2003, 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
    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/>.  */
 
+/* This file uses _GL_ATTRIBUTE_PURE.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 #include <stddef.h>
 
 /* Compute a hash code for a NUL-terminated string starting at X,
index 14e8b0a..49a27bb 100644 (file)
@@ -1,6 +1,6 @@
 /* inet_pton.c -- convert IPv4 and IPv6 addresses from text to binary form
 
-   Copyright (C) 2006, 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2008-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 9ef8348..0494097 100644 (file)
@@ -1,6 +1,6 @@
 # source this file; set up for tests
 
-# Copyright (C) 2009-2021 Free Software Foundation, Inc.
+# Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -271,12 +271,10 @@ test -n "$EXEEXT" && test -n "$BASH_VERSION" && shopt -s expand_aliases
 #
 # First, try to use the mktemp program.
 # Failing that, we'll roll our own mktemp-like function:
-#  - try to get random bytes from /dev/urandom
+#  - try to get random bytes from /dev/urandom, mapping them to file-name bytes
 #  - failing that, generate output from a combination of quickly-varying
-#      sources and gzip.  Ignore non-varying gzip header, and extract
-#      "random" bits from there.
-#  - given those bits, map to file-name bytes using tr, and try to create
-#      the desired directory.
+#      sources and awk.
+#  - try to create the desired directory.
 #  - make only $MAX_TRIES_ attempts
 
 # Helper function.  Print $N pseudo-random bytes from a-zA-Z0-9.
@@ -296,20 +294,27 @@ rand_bytes_ ()
     return
   fi
 
-  n_plus_50_=`expr $n_ + 50`
-  cmds_='date; date +%N; free; who -a; w; ps auxww; ps -ef'
-  data_=` (eval "$cmds_") 2>&1 | gzip `
-
-  # Ensure that $data_ has length at least 50+$n_
-  while :; do
-    len_=`echo "$data_"|wc -c`
-    test $n_plus_50_ -le $len_ && break;
-    data_=` (echo "$data_"; eval "$cmds_") 2>&1 | gzip `
-  done
-
-  echo "$data_" \
-    | dd bs=1 skip=50 count=$n_ 2>/dev/null \
-    | LC_ALL=C tr -c $chars_ 01234567$chars_$chars_$chars_
+  # Fall back on quickly-varying sources + awk.
+  # Limit awk program to 7th Edition Unix so that it works even on Solaris 10.
+
+  (date; date +%N; free; who -a; w; ps auxww; ps -ef) 2>&1 | awk '
+     BEGIN {
+       n = '"$n_"'
+       for (i = 0; i < 256; i++)
+         ordinal[sprintf ("%c", i)] = i
+     }
+     {
+       for (i = 1; i <= length; i++)
+         a[ai++ % n] += ordinal[substr ($0, i, 1)]
+     }
+     END {
+       chars = "'"$chars_"'"
+       charslen = length (chars)
+       for (i = 0; i < n; i++)
+         printf "%s", substr (chars, a[i] % charslen + 1, 1)
+       printf "\n"
+     }
+  '
 }
 
 mktempd_ ()
@@ -426,6 +431,23 @@ setup_ ()
   for sig_ in 1 2 3 13 15; do
     eval "trap 'Exit $(expr $sig_ + 128)' $sig_"
   done
+
+  # Remove relative and non-accessible directories from PATH, including '.'
+  # and Zero-length entries.
+  saved_IFS="$IFS"
+  IFS=:
+  new_PATH=
+  sep_=
+  for dir in $PATH; do
+    case "$dir" in
+      /*) test -d "$dir/." || continue
+          new_PATH="${new_PATH}${sep_}${dir}"
+          sep_=':';;
+    esac
+  done
+  IFS="$saved_IFS"
+  PATH="$new_PATH"
+  export PATH
 }
 
 # This is a stub function that is run upon trap (upon regular exit and
@@ -624,18 +646,19 @@ compare_dev_null_ ()
 
 for diff_opt_ in -u -U3 -c '' no; do
   test "$diff_opt_" != no &&
-    diff_out_=`exec 2>/dev/null; diff $diff_opt_ "$0" "$0" < /dev/null` &&
+    diff_out_=`exec 2>/dev/null
+      LC_ALL=C diff $diff_opt_ "$0" "$0" < /dev/null` &&
     break
 done
 if test "$diff_opt_" != no; then
   if test -z "$diff_out_"; then
-    compare_ () { diff $diff_opt_ "$@"; }
+    compare_ () { LC_ALL=C diff $diff_opt_ "$@"; }
   else
     compare_ ()
     {
       # If no differences were found, AIX and HP-UX 'diff' produce output
       # like "No differences encountered".  Hide this output.
-      diff $diff_opt_ "$@" > diff.out
+      LC_ALL=C diff $diff_opt_ "$@" > diff.out
       diff_status_=$?
       test $diff_status_ -eq 0 || cat diff.out || diff_status_=2
       rm -f diff.out || diff_status_=2
@@ -680,4 +703,4 @@ test -f "$srcdir/init.cfg" \
 setup_ "$@"
 # This trap is here, rather than in the setup_ function, because some
 # shells run the exit trap at shell function exit, rather than script exit.
-trap remove_tmp_ 0
+trap remove_tmp_ EXIT
index ca90582..65cce13 100644 (file)
@@ -1,6 +1,6 @@
 /* ioctl.c --- wrappers for Windows ioctl function
 
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
similarity index 94%
rename from lib/itold.c
rename to gnulib-tests/itold.c
index 7984866..0ef4464 100644 (file)
@@ -1,5 +1,5 @@
 /* Replacement for 'int' to 'long double' conversion routine.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2011.
 
    This file is free software: you can redistribute it and/or modify
index a145f82..85600fa 100644 (file)
@@ -1,6 +1,6 @@
 /* listen.c --- wrappers for Windows listen function
 
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 6185c4d..a71d885 100644 (file)
@@ -1,9 +1,9 @@
 /* Program that prints the names of the categories of the current locale.
-   Copyright (C) 2019-2021 Free Software Foundation, Inc.
+   Copyright (C) 2019-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index fccfc50..eea9056 100644 (file)
@@ -1,9 +1,9 @@
 /* Common macros used by gnulib tests.
-   Copyright (C) 2006-2021 Free Software Foundation, Inc.
+   Copyright (C) 2006-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index b526cb6..0854122 100644 (file)
@@ -1,5 +1,5 @@
 /* Some auxiliary stuff for using mmap & friends.
-   Copyright (C) 2002-2021 Free Software Foundation, Inc.
+   Copyright (C) 2002-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff --git a/gnulib-tests/nan.h b/gnulib-tests/nan.h
new file mode 100644 (file)
index 0000000..05f141d
--- /dev/null
@@ -0,0 +1,85 @@
+/* Macros for not-a-number.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   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/>.  */
+
+
+/* IBM z/OS supports both hexadecimal and IEEE floating-point formats. The
+   former does not support NaN and its isnan() implementation returns zero
+   for all values.  */
+#if defined __MVS__ && defined __IBMC__ && !defined __BFP__
+# error "NaN is not supported with IBM's hexadecimal floating-point format; please re-compile with -qfloat=ieee"
+#endif
+
+/* NaNf () returns a 'float' not-a-number.  */
+
+/* The Compaq (ex-DEC) C 6.4 compiler and the Microsoft MSVC 9 compiler choke
+   on the expression 0.0 / 0.0.  The IBM XL C compiler on z/OS complains.
+   PGI 16.10 complains.  */
+#if (defined __DECC || defined _MSC_VER \
+     || (defined __MVS__ && defined __IBMC__)   \
+     || defined __PGI)
+static float
+NaNf ()
+{
+  static float zero = 0.0f;
+  return zero / zero;
+}
+#else
+# define NaNf() (0.0f / 0.0f)
+#endif
+
+
+/* NaNd () returns a 'double' not-a-number.  */
+
+/* The Compaq (ex-DEC) C 6.4 compiler and the Microsoft MSVC 9 compiler choke
+   on the expression 0.0 / 0.0.  The IBM XL C compiler on z/OS complains.
+   PGI 16.10 complains.  */
+#if (defined __DECC || defined _MSC_VER \
+     || (defined __MVS__ && defined __IBMC__)   \
+     || defined __PGI)
+static double
+NaNd ()
+{
+  static double zero = 0.0;
+  return zero / zero;
+}
+#else
+# define NaNd() (0.0 / 0.0)
+#endif
+
+
+/* NaNl () returns a 'long double' not-a-number.  */
+
+/* On Irix 6.5, gcc 3.4.3 can't compute compile-time NaN, and needs the
+   runtime type conversion.
+   The Microsoft MSVC 9 compiler chokes on the expression 0.0L / 0.0L.
+   The IBM XL C compiler on z/OS complains.
+   PGI 16.10 complains.  */
+#ifdef __sgi
+static long double NaNl ()
+{
+  double zero = 0.0;
+  return zero / zero;
+}
+#elif defined _MSC_VER || (defined __MVS__ && defined __IBMC__) || defined __PGI
+static long double
+NaNl ()
+{
+  static long double zero = 0.0L;
+  return zero / zero;
+}
+#else
+# define NaNl() (0.0L / 0.0L)
+#endif
index 10990dc..10974df 100644 (file)
@@ -1,6 +1,6 @@
 /* Provide a replacement for the POSIX nanosleep function.
 
-   Copyright (C) 1999-2000, 2002, 2004-2021 Free Software Foundation, Inc.
+   Copyright (C) 1999-2000, 2002, 2004-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 #include <time.h>
 
 #include "intprops.h"
-#include "sig-handler.h"
-#include "verify.h"
 
-#include <stdbool.h>
 #include <stdio.h>
 #include <sys/types.h>
 #include <sys/select.h>
 #include <signal.h>
 
-#include <sys/time.h>
 #include <errno.h>
 
 #include <unistd.h>
@@ -61,11 +57,10 @@ nanosleep (const struct timespec *requested_delay,
 
   {
     /* Verify that time_t is large enough.  */
-    verify (TYPE_MAXIMUM (time_t) / 24 / 24 / 60 / 60);
+    static_assert (TYPE_MAXIMUM (time_t) / 24 / 24 / 60 / 60);
     const time_t limit = 24 * 24 * 60 * 60;
     time_t seconds = requested_delay->tv_sec;
-    struct timespec intermediate;
-    intermediate.tv_nsec = requested_delay->tv_nsec;
+    struct timespec intermediate = *requested_delay;
 
     while (limit < seconds)
       {
@@ -181,45 +176,9 @@ nanosleep (const struct timespec *requested_delay,
 }
 
 #else
-/* Unix platforms lacking nanosleep. */
-
-/* Some systems (MSDOS) don't have SIGCONT.
-   Using SIGTERM here turns the signal-handling code below
-   into a no-op on such systems. */
-# ifndef SIGCONT
-#  define SIGCONT SIGTERM
-# endif
-
-static sig_atomic_t volatile suspended;
-
-/* Handle SIGCONT. */
-
-static _GL_ASYNC_SAFE void
-sighandler (int sig)
-{
-  suspended = 1;
-}
-
-/* Suspend execution for at least *TS_DELAY seconds.  */
-
-static int
-my_usleep (const struct timespec *ts_delay)
-{
-  struct timeval tv_delay;
-  tv_delay.tv_sec = ts_delay->tv_sec;
-  tv_delay.tv_usec = (ts_delay->tv_nsec + 999) / 1000;
-  if (tv_delay.tv_usec == 1000000)
-    {
-      if (tv_delay.tv_sec == TYPE_MAXIMUM (time_t))
-        tv_delay.tv_usec = 1000000 - 1; /* close enough */
-      else
-        {
-          tv_delay.tv_sec++;
-          tv_delay.tv_usec = 0;
-        }
-    }
-  return select (0, NULL, NULL, NULL, &tv_delay);
-}
+/* Other platforms lacking nanosleep.
+   It's not clear whether these are still practical porting targets.
+   For now, just fall back on pselect.  */
 
 /* Suspend execution for at least *REQUESTED_DELAY seconds.  The
    *REMAINING_DELAY part isn't implemented yet.  */
@@ -228,49 +187,6 @@ int
 nanosleep (const struct timespec *requested_delay,
            struct timespec *remaining_delay)
 {
-  static bool initialized;
-
-  if (requested_delay->tv_nsec < 0 || BILLION <= requested_delay->tv_nsec)
-    {
-      errno = EINVAL;
-      return -1;
-    }
-
-  /* set up sig handler */
-  if (! initialized)
-    {
-      struct sigaction oldact;
-
-      sigaction (SIGCONT, NULL, &oldact);
-      if (get_handler (&oldact) != SIG_IGN)
-        {
-          struct sigaction newact;
-
-          newact.sa_handler = sighandler;
-          sigemptyset (&newact.sa_mask);
-          newact.sa_flags = 0;
-          sigaction (SIGCONT, &newact, NULL);
-        }
-      initialized = true;
-    }
-
-  suspended = 0;
-
-  if (my_usleep (requested_delay) == -1)
-    {
-      if (suspended)
-        {
-          /* Calculate time remaining.  */
-          /* FIXME: the code in sleep doesn't use this, so there's no
-             rush to implement it.  */
-
-          errno = EINTR;
-        }
-      return -1;
-    }
-
-  /* FIXME: Restore sig handler?  */
-
-  return 0;
+  return pselect (0, NULL, NULL, NULL, requested_delay, NULL);
 }
 #endif
index 3d0a51d..5dea86d 100644 (file)
@@ -1,9 +1,9 @@
 /* Assist in file system timestamp tests.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -20,9 +20,8 @@
 # define GLTEST_NAP_H
 
 # include <limits.h>
-# include <stdbool.h>
 
-# include <intprops.h>
+# include <stdckdint.h>
 
 /* Avoid a conflict with a function called nap() on UnixWare.  */
 # if defined _SCO_DS || (defined __SCO_VERSION__ || defined __sysv5__)  /* OpenServer, UnixWare */
@@ -55,9 +54,9 @@ diff_timespec (struct timespec a, struct timespec b)
   if (! (bs < as || (bs == as && bns < ans)))
     return 0;
 
-  if (INT_SUBTRACT_WRAPV (as, bs, &sdiff)
-      || INT_MULTIPLY_WRAPV (sdiff, 1000000000, &sdiff)
-      || INT_ADD_WRAPV (sdiff, ans - bns, &sdiff))
+  if (ckd_sub (&sdiff, as, bs)
+      || ckd_mul (&sdiff, sdiff, 1000000000)
+      || ckd_add (&sdiff, sdiff, ans - bns))
     return INT_MAX;
 
   return sdiff;
index 21f3a64..f88923a 100644 (file)
@@ -1,5 +1,5 @@
 /* Substitute for <netinet/in.h>.
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index d02b4f6..a10cf71 100644 (file)
@@ -1,5 +1,5 @@
 /* Print a message describing error code.
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
    Written by Bruno Haible and Simon Josefsson.
 
    This file is free software: you can redistribute it and/or modify
index fc978f2..e8573ed 100644 (file)
@@ -1,5 +1,5 @@
 /* Create a pipe.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
similarity index 60%
rename from lib/printf-args.c
rename to gnulib-tests/printf-args.c
index b822682..b2b21ae 100644 (file)
@@ -1,5 +1,5 @@
 /* Decomposed printf argument list.
-   Copyright (C) 1999, 2002-2003, 2005-2007, 2009-2021 Free Software
+   Copyright (C) 1999, 2002-2003, 2005-2007, 2009-2023 Free Software
    Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
@@ -29,6 +29,9 @@
 # include "printf-args.h"
 #endif
 
+/* Get INT_WIDTH.  */
+#include <limits.h>
+
 #ifdef STATIC
 STATIC
 #endif
@@ -71,6 +74,102 @@ PRINTF_FETCHARGS (va_list args, arguments *a)
       case TYPE_ULONGLONGINT:
         ap->a.a_ulonglongint = va_arg (args, unsigned long long int);
         break;
+      case TYPE_INT8_T:
+        #if INT8_WIDTH < INT_WIDTH
+        ap->a.a_int8_t = va_arg (args, /* int8_t */ int);
+        #else
+        ap->a.a_int8_t = va_arg (args, int8_t);
+        #endif
+        break;
+      case TYPE_UINT8_T:
+        #if UINT8_WIDTH < INT_WIDTH
+        ap->a.a_uint8_t = va_arg (args, /* uint8_t */ int);
+        #else
+        ap->a.a_uint8_t = va_arg (args, uint8_t);
+        #endif
+        break;
+      case TYPE_INT16_T:
+        #if INT16_WIDTH < INT_WIDTH
+        ap->a.a_int16_t = va_arg (args, /* int16_t */ int);
+        #else
+        ap->a.a_int16_t = va_arg (args, int16_t);
+        #endif
+        break;
+      case TYPE_UINT16_T:
+        #if UINT16_WIDTH < INT_WIDTH
+        ap->a.a_uint16_t = va_arg (args, /* uint16_t */ int);
+        #else
+        ap->a.a_uint16_t = va_arg (args, uint16_t);
+        #endif
+        break;
+      case TYPE_INT32_T:
+        #if INT32_WIDTH < INT_WIDTH
+        ap->a.a_int32_t = va_arg (args, /* int32_t */ int);
+        #else
+        ap->a.a_int32_t = va_arg (args, int32_t);
+        #endif
+        break;
+      case TYPE_UINT32_T:
+        #if UINT32_WIDTH < INT_WIDTH
+        ap->a.a_uint32_t = va_arg (args, /* uint32_t */ int);
+        #else
+        ap->a.a_uint32_t = va_arg (args, uint32_t);
+        #endif
+        break;
+      case TYPE_INT64_T:
+        ap->a.a_int64_t = va_arg (args, int64_t);
+        break;
+      case TYPE_UINT64_T:
+        ap->a.a_uint64_t = va_arg (args, uint64_t);
+        break;
+      case TYPE_INT_FAST8_T:
+        #if INT_FAST8_WIDTH < INT_WIDTH
+        ap->a.a_int_fast8_t = va_arg (args, /* int_fast8_t */ int);
+        #else
+        ap->a.a_int_fast8_t = va_arg (args, int_fast8_t);
+        #endif
+        break;
+      case TYPE_UINT_FAST8_T:
+        #if UINT_FAST8_WIDTH < INT_WIDTH
+        ap->a.a_uint_fast8_t = va_arg (args, /* uint_fast8_t */ int);
+        #else
+        ap->a.a_uint_fast8_t = va_arg (args, uint_fast8_t);
+        #endif
+        break;
+      case TYPE_INT_FAST16_T:
+        #if INT_FAST16_WIDTH < INT_WIDTH
+        ap->a.a_int_fast16_t = va_arg (args, /* int_fast16_t */ int);
+        #else
+        ap->a.a_int_fast16_t = va_arg (args, int_fast16_t);
+        #endif
+        break;
+      case TYPE_UINT_FAST16_T:
+        #if UINT_FAST16_WIDTH < INT_WIDTH
+        ap->a.a_uint_fast16_t = va_arg (args, /* uint_fast16_t */ int);
+        #else
+        ap->a.a_uint_fast16_t = va_arg (args, uint_fast16_t);
+        #endif
+        break;
+      case TYPE_INT_FAST32_T:
+        #if INT_FAST32_WIDTH < INT_WIDTH
+        ap->a.a_int_fast32_t = va_arg (args, /* int_fast32_t */ int);
+        #else
+        ap->a.a_int_fast32_t = va_arg (args, int_fast32_t);
+        #endif
+        break;
+      case TYPE_UINT_FAST32_T:
+        #if UINT_FAST32_WIDTH < INT_WIDTH
+        ap->a.a_uint_fast32_t = va_arg (args, /* uint_fast32_t */ int);
+        #else
+        ap->a.a_uint_fast32_t = va_arg (args, uint_fast32_t);
+        #endif
+        break;
+      case TYPE_INT_FAST64_T:
+        ap->a.a_int_fast64_t = va_arg (args, int_fast64_t);
+        break;
+      case TYPE_UINT_FAST64_T:
+        ap->a.a_uint_fast64_t = va_arg (args, uint_fast64_t);
+        break;
       case TYPE_DOUBLE:
         ap->a.a_double = va_arg (args, double);
         break;
@@ -136,6 +235,30 @@ PRINTF_FETCHARGS (va_list args, arguments *a)
       case TYPE_COUNT_LONGLONGINT_POINTER:
         ap->a.a_count_longlongint_pointer = va_arg (args, long long int *);
         break;
+      case TYPE_COUNT_INT8_T_POINTER:
+        ap->a.a_count_int8_t_pointer = va_arg (args, int8_t *);
+        break;
+      case TYPE_COUNT_INT16_T_POINTER:
+        ap->a.a_count_int16_t_pointer = va_arg (args, int16_t *);
+        break;
+      case TYPE_COUNT_INT32_T_POINTER:
+        ap->a.a_count_int32_t_pointer = va_arg (args, int32_t *);
+        break;
+      case TYPE_COUNT_INT64_T_POINTER:
+        ap->a.a_count_int64_t_pointer = va_arg (args, int64_t *);
+        break;
+      case TYPE_COUNT_INT_FAST8_T_POINTER:
+        ap->a.a_count_int_fast8_t_pointer = va_arg (args, int_fast8_t *);
+        break;
+      case TYPE_COUNT_INT_FAST16_T_POINTER:
+        ap->a.a_count_int_fast16_t_pointer = va_arg (args, int_fast16_t *);
+        break;
+      case TYPE_COUNT_INT_FAST32_T_POINTER:
+        ap->a.a_count_int_fast32_t_pointer = va_arg (args, int_fast32_t *);
+        break;
+      case TYPE_COUNT_INT_FAST64_T_POINTER:
+        ap->a.a_count_int_fast64_t_pointer = va_arg (args, int_fast64_t *);
+        break;
 #if ENABLE_UNISTDIO
       /* The unistdio extensions.  */
       case TYPE_U8_STRING:
similarity index 61%
rename from lib/printf-args.h
rename to gnulib-tests/printf-args.h
index c8d9174..1101610 100644 (file)
@@ -1,5 +1,5 @@
 /* Decomposed printf argument list.
-   Copyright (C) 1999, 2002-2003, 2006-2007, 2011-2021 Free Software
+   Copyright (C) 1999, 2002-2003, 2006-2007, 2011-2023 Free Software
    Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
@@ -41,6 +41,9 @@
 # include <wchar.h>
 #endif
 
+/* Get intN_t, uintN_t, intN_fast_t, uintN_fast_t.  */
+#include <stdint.h>
+
 /* Get va_list.  */
 #include <stdarg.h>
 
@@ -59,6 +62,26 @@ typedef enum
   TYPE_ULONGINT,
   TYPE_LONGLONGINT,
   TYPE_ULONGLONGINT,
+  /* According to ISO C 23 § 7.23.6.1, "all exact-width integer types",
+     "all minimum-width integer types", and "all fastest minimum-width integer
+     types" defined in <stdint.h> should be supported.  But for portability
+     between platforms, we support only those with N = 8, 16, 32, 64.  */
+  TYPE_INT8_T,
+  TYPE_UINT8_T,
+  TYPE_INT16_T,
+  TYPE_UINT16_T,
+  TYPE_INT32_T,
+  TYPE_UINT32_T,
+  TYPE_INT64_T,
+  TYPE_UINT64_T,
+  TYPE_INT_FAST8_T,
+  TYPE_UINT_FAST8_T,
+  TYPE_INT_FAST16_T,
+  TYPE_UINT_FAST16_T,
+  TYPE_INT_FAST32_T,
+  TYPE_UINT_FAST32_T,
+  TYPE_INT_FAST64_T,
+  TYPE_UINT_FAST64_T,
   TYPE_DOUBLE,
   TYPE_LONGDOUBLE,
   TYPE_CHAR,
@@ -74,7 +97,15 @@ typedef enum
   TYPE_COUNT_SHORT_POINTER,
   TYPE_COUNT_INT_POINTER,
   TYPE_COUNT_LONGINT_POINTER,
-  TYPE_COUNT_LONGLONGINT_POINTER
+  TYPE_COUNT_LONGLONGINT_POINTER,
+  TYPE_COUNT_INT8_T_POINTER,
+  TYPE_COUNT_INT16_T_POINTER,
+  TYPE_COUNT_INT32_T_POINTER,
+  TYPE_COUNT_INT64_T_POINTER,
+  TYPE_COUNT_INT_FAST8_T_POINTER,
+  TYPE_COUNT_INT_FAST16_T_POINTER,
+  TYPE_COUNT_INT_FAST32_T_POINTER,
+  TYPE_COUNT_INT_FAST64_T_POINTER
 #if ENABLE_UNISTDIO
   /* The unistdio extensions.  */
 , TYPE_U8_STRING
@@ -99,7 +130,23 @@ typedef struct
     unsigned long int           a_ulongint;
     long long int               a_longlongint;
     unsigned long long int      a_ulonglongint;
-    float                       a_float;
+    int8_t                      a_int8_t;
+    uint8_t                     a_uint8_t;
+    int16_t                     a_int16_t;
+    uint16_t                    a_uint16_t;
+    int32_t                     a_int32_t;
+    uint32_t                    a_uint32_t;
+    int64_t                     a_int64_t;
+    uint64_t                    a_uint64_t;
+    int_fast8_t                 a_int_fast8_t;
+    uint_fast8_t                a_uint_fast8_t;
+    int_fast16_t                a_int_fast16_t;
+    uint_fast16_t               a_uint_fast16_t;
+    int_fast32_t                a_int_fast32_t;
+    uint_fast32_t               a_uint_fast32_t;
+    int_fast64_t                a_int_fast64_t;
+    uint_fast64_t               a_uint_fast64_t;
+    float                       a_float;                     /* unused */
     double                      a_double;
     long double                 a_longdouble;
     int                         a_char;
@@ -116,6 +163,14 @@ typedef struct
     int *                       a_count_int_pointer;
     long int *                  a_count_longint_pointer;
     long long int *             a_count_longlongint_pointer;
+    int8_t *                    a_count_int8_t_pointer;
+    int16_t *                   a_count_int16_t_pointer;
+    int32_t *                   a_count_int32_t_pointer;
+    int64_t *                   a_count_int64_t_pointer;
+    int_fast8_t *               a_count_int_fast8_t_pointer;
+    int_fast16_t *              a_count_int_fast16_t_pointer;
+    int_fast32_t *              a_count_int_fast32_t_pointer;
+    int_fast64_t *              a_count_int_fast64_t_pointer;
 #if ENABLE_UNISTDIO
     /* The unistdio extensions.  */
     const uint8_t *             a_u8_string;
similarity index 54%
rename from lib/printf-parse.c
rename to gnulib-tests/printf-parse.c
index f21cc17..d3f2c3c 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999-2000, 2002-2003, 2006-2021 Free Software Foundation, Inc.
+   Copyright (C) 1999-2000, 2002-2003, 2006-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
@@ -326,226 +326,317 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a)
             arg_type type;
 
             /* Parse argument type/size specifiers.  */
-            {
-              int flags = 0;
-
-              for (;;)
-                {
-                  if (*cp == 'h')
-                    {
-                      flags |= (1 << (flags & 1));
-                      cp++;
-                    }
-                  else if (*cp == 'L')
-                    {
-                      flags |= 4;
-                      cp++;
-                    }
-                  else if (*cp == 'l')
-                    {
-                      flags += 8;
-                      cp++;
-                    }
-                  else if (*cp == 'j')
-                    {
-                      if (sizeof (intmax_t) > sizeof (long))
-                        {
-                          /* intmax_t = long long */
-                          flags += 16;
-                        }
-                      else if (sizeof (intmax_t) > sizeof (int))
-                        {
-                          /* intmax_t = long */
-                          flags += 8;
-                        }
-                      cp++;
-                    }
-                  else if (*cp == 'z' || *cp == 'Z')
-                    {
-                      /* 'z' is standardized in ISO C 99, but glibc uses 'Z'
-                         because the warning facility in gcc-2.95.2 understands
-                         only 'Z' (see gcc-2.95.2/gcc/c-common.c:1784).  */
-                      if (sizeof (size_t) > sizeof (long))
-                        {
-                          /* size_t = long long */
-                          flags += 16;
-                        }
-                      else if (sizeof (size_t) > sizeof (int))
-                        {
-                          /* size_t = long */
-                          flags += 8;
-                        }
-                      cp++;
-                    }
-                  else if (*cp == 't')
-                    {
-                      if (sizeof (ptrdiff_t) > sizeof (long))
-                        {
-                          /* ptrdiff_t = long long */
-                          flags += 16;
-                        }
-                      else if (sizeof (ptrdiff_t) > sizeof (int))
-                        {
-                          /* ptrdiff_t = long */
-                          flags += 8;
-                        }
-                      cp++;
-                    }
+            /* Relevant for the conversion characters d, i.  */
+            arg_type signed_type = TYPE_INT;
+            /* Relevant for the conversion characters b, o, u, x, X.  */
+            arg_type unsigned_type = TYPE_UINT;
+            /* Relevant for the conversion characters n.  */
+            arg_type pointer_type = TYPE_COUNT_INT_POINTER;
+            /* Relevant for the conversion characters a, A, e, E, f, F, g, G.  */
+            arg_type floatingpoint_type = TYPE_DOUBLE;
+
+            if (*cp == 'h')
+              {
+                if (cp[1] == 'h')
+                  {
+                    signed_type = TYPE_SCHAR;
+                    unsigned_type = TYPE_UCHAR;
+                    pointer_type = TYPE_COUNT_SCHAR_POINTER;
+                    cp += 2;
+                  }
+                else
+                  {
+                    signed_type = TYPE_SHORT;
+                    unsigned_type = TYPE_USHORT;
+                    pointer_type = TYPE_COUNT_SHORT_POINTER;
+                    cp++;
+                  }
+              }
+            else if (*cp == 'l')
+              {
+                if (cp[1] == 'l')
+                  {
+                    signed_type = TYPE_LONGLONGINT;
+                    unsigned_type = TYPE_ULONGLONGINT;
+                    pointer_type = TYPE_COUNT_LONGLONGINT_POINTER;
+                    /* For backward compatibility only.  */
+                    floatingpoint_type = TYPE_LONGDOUBLE;
+                    cp += 2;
+                  }
+                else
+                  {
+                    signed_type = TYPE_LONGINT;
+                    unsigned_type = TYPE_ULONGINT;
+                    pointer_type = TYPE_COUNT_LONGINT_POINTER;
+                    cp++;
+                  }
+              }
+            else if (*cp == 'j')
+              {
+                if (sizeof (intmax_t) > sizeof (long))
+                  {
+                    /* intmax_t = long long */
+                    signed_type = TYPE_LONGLONGINT;
+                    unsigned_type = TYPE_ULONGLONGINT;
+                    pointer_type = TYPE_COUNT_LONGLONGINT_POINTER;
+                    /* For backward compatibility only.  */
+                    floatingpoint_type = TYPE_LONGDOUBLE;
+                  }
+                else if (sizeof (intmax_t) > sizeof (int))
+                  {
+                    /* intmax_t = long */
+                    signed_type = TYPE_LONGINT;
+                    unsigned_type = TYPE_ULONGINT;
+                    pointer_type = TYPE_COUNT_LONGINT_POINTER;
+                  }
+                cp++;
+              }
+            else if (*cp == 'z' || *cp == 'Z')
+              {
+                /* 'z' is standardized in ISO C 99, but glibc uses 'Z'
+                   because the warning facility in gcc-2.95.2 understands
+                   only 'Z' (see gcc-2.95.2/gcc/c-common.c:1784).  */
+                if (sizeof (size_t) > sizeof (long))
+                  {
+                    /* size_t = unsigned long long */
+                    signed_type = TYPE_LONGLONGINT;
+                    unsigned_type = TYPE_ULONGLONGINT;
+                    pointer_type = TYPE_COUNT_LONGLONGINT_POINTER;
+                    /* For backward compatibility only.  */
+                    floatingpoint_type = TYPE_LONGDOUBLE;
+                  }
+                else if (sizeof (size_t) > sizeof (int))
+                  {
+                    /* size_t = unsigned long */
+                    signed_type = TYPE_LONGINT;
+                    unsigned_type = TYPE_ULONGINT;
+                    pointer_type = TYPE_COUNT_LONGINT_POINTER;
+                  }
+                cp++;
+              }
+            else if (*cp == 't')
+              {
+                if (sizeof (ptrdiff_t) > sizeof (long))
+                  {
+                    /* ptrdiff_t = long long */
+                    signed_type = TYPE_LONGLONGINT;
+                    unsigned_type = TYPE_ULONGLONGINT;
+                    pointer_type = TYPE_COUNT_LONGLONGINT_POINTER;
+                    /* For backward compatibility only.  */
+                    floatingpoint_type = TYPE_LONGDOUBLE;
+                  }
+                else if (sizeof (ptrdiff_t) > sizeof (int))
+                  {
+                    /* ptrdiff_t = long */
+                    signed_type = TYPE_LONGINT;
+                    unsigned_type = TYPE_ULONGINT;
+                    pointer_type = TYPE_COUNT_LONGINT_POINTER;
+                  }
+                cp++;
+              }
+            else if (*cp == 'w')
+              {
+                /* wN and wfN are standardized in ISO C 23.  */
+                if (cp[1] == 'f')
+                  {
+                    if (cp[2] == '8')
+                      {
+                        signed_type = TYPE_INT_FAST8_T;
+                        unsigned_type = TYPE_UINT_FAST8_T;
+                        pointer_type = TYPE_COUNT_INT_FAST8_T_POINTER;
+                        cp += 3;
+                      }
+                    else if (cp[2] == '1' && cp[3] == '6')
+                      {
+                        signed_type = TYPE_INT_FAST16_T;
+                        unsigned_type = TYPE_UINT_FAST16_T;
+                        pointer_type = TYPE_COUNT_INT_FAST16_T_POINTER;
+                        cp += 4;
+                      }
+                    else if (cp[2] == '3' && cp[3] == '2')
+                      {
+                        signed_type = TYPE_INT_FAST32_T;
+                        unsigned_type = TYPE_UINT_FAST32_T;
+                        pointer_type = TYPE_COUNT_INT_FAST32_T_POINTER;
+                        cp += 4;
+                      }
+                    else if (cp[2] == '6' && cp[3] == '4')
+                      {
+                        signed_type = TYPE_INT_FAST64_T;
+                        unsigned_type = TYPE_UINT_FAST64_T;
+                        pointer_type = TYPE_COUNT_INT_FAST64_T_POINTER;
+                        cp += 4;
+                      }
+                  }
+                else
+                  {
+                    if (cp[1] == '8')
+                      {
+                        signed_type = TYPE_INT8_T;
+                        unsigned_type = TYPE_UINT8_T;
+                        pointer_type = TYPE_COUNT_INT8_T_POINTER;
+                        cp += 2;
+                      }
+                    else if (cp[1] == '1' && cp[2] == '6')
+                      {
+                        signed_type = TYPE_INT16_T;
+                        unsigned_type = TYPE_UINT16_T;
+                        pointer_type = TYPE_COUNT_INT16_T_POINTER;
+                        cp += 3;
+                      }
+                    else if (cp[1] == '3' && cp[2] == '2')
+                      {
+                        signed_type = TYPE_INT32_T;
+                        unsigned_type = TYPE_UINT32_T;
+                        pointer_type = TYPE_COUNT_INT32_T_POINTER;
+                        cp += 3;
+                      }
+                    else if (cp[1] == '6' && cp[2] == '4')
+                      {
+                        signed_type = TYPE_INT64_T;
+                        unsigned_type = TYPE_UINT64_T;
+                        pointer_type = TYPE_COUNT_INT64_T_POINTER;
+                        cp += 3;
+                      }
+                  }
+              }
+            else if (*cp == 'L')
+              {
+                signed_type = TYPE_LONGLONGINT;
+                unsigned_type = TYPE_ULONGLONGINT;
+                pointer_type = TYPE_COUNT_LONGLONGINT_POINTER;
+                floatingpoint_type = TYPE_LONGDOUBLE;
+                cp++;
+              }
 #if defined __APPLE__ && defined __MACH__
-                  /* On Mac OS X 10.3, PRIdMAX is defined as "qd".
-                     We cannot change it to "lld" because PRIdMAX must also
-                     be understood by the system's printf routines.  */
-                  else if (*cp == 'q')
-                    {
-                      if (64 / 8 > sizeof (long))
-                        {
-                          /* int64_t = long long */
-                          flags += 16;
-                        }
-                      else
-                        {
-                          /* int64_t = long */
-                          flags += 8;
-                        }
-                      cp++;
-                    }
+            /* On Mac OS X 10.3, PRIdMAX is defined as "qd".
+               We cannot change it to "lld" because PRIdMAX must also
+               be understood by the system's printf routines.  */
+            else if (*cp == 'q')
+              {
+                if (64 / 8 > sizeof (long))
+                  {
+                    /* int64_t = long long */
+                    signed_type = TYPE_LONGLONGINT;
+                    unsigned_type = TYPE_ULONGLONGINT;
+                    pointer_type = TYPE_COUNT_LONGLONGINT_POINTER;
+                    /* For backward compatibility only.  */
+                    floatingpoint_type = TYPE_LONGDOUBLE;
+                  }
+                else
+                  {
+                    /* int64_t = long */
+                    signed_type = TYPE_LONGINT;
+                    unsigned_type = TYPE_ULONGINT;
+                    pointer_type = TYPE_COUNT_LONGINT_POINTER;
+                  }
+                cp++;
+              }
 #endif
 #if defined _WIN32 && ! defined __CYGWIN__
-                  /* On native Windows, PRIdMAX is defined as "I64d".
-                     We cannot change it to "lld" because PRIdMAX must also
-                     be understood by the system's printf routines.  */
-                  else if (*cp == 'I' && cp[1] == '6' && cp[2] == '4')
-                    {
-                      if (64 / 8 > sizeof (long))
-                        {
-                          /* __int64 = long long */
-                          flags += 16;
-                        }
-                      else
-                        {
-                          /* __int64 = long */
-                          flags += 8;
-                        }
-                      cp += 3;
-                    }
+            /* On native Windows, PRIdMAX is defined as "I64d".
+               We cannot change it to "lld" because PRIdMAX must also
+               be understood by the system's printf routines.  */
+            else if (*cp == 'I' && cp[1] == '6' && cp[2] == '4')
+              {
+                if (64 / 8 > sizeof (long))
+                  {
+                    /* __int64_t = long long */
+                    signed_type = TYPE_LONGLONGINT;
+                    unsigned_type = TYPE_ULONGLONGINT;
+                    pointer_type = TYPE_COUNT_LONGLONGINT_POINTER;
+                    /* For backward compatibility only.  */
+                    floatingpoint_type = TYPE_LONGDOUBLE;
+                  }
+                else
+                  {
+                    /* __int64_t = long */
+                    signed_type = TYPE_LONGINT;
+                    unsigned_type = TYPE_ULONGINT;
+                    pointer_type = TYPE_COUNT_LONGINT_POINTER;
+                  }
+                cp++;
+              }
 #endif
-                  else
-                    break;
-                }
 
-              /* Read the conversion character.  */
-              c = *cp++;
-              switch (c)
-                {
-                case 'd': case 'i':
-                  /* If 'long long' is larger than 'long':  */
-                  if (flags >= 16 || (flags & 4))
-                    type = TYPE_LONGLONGINT;
-                  else
-                  /* If 'long long' is the same as 'long', we parse "lld" into
-                     TYPE_LONGINT.  */
-                  if (flags >= 8)
-                    type = TYPE_LONGINT;
-                  else if (flags & 2)
-                    type = TYPE_SCHAR;
-                  else if (flags & 1)
-                    type = TYPE_SHORT;
-                  else
-                    type = TYPE_INT;
-                  break;
-                case 'o': case 'u': case 'x': case 'X':
-                  /* If 'unsigned long long' is larger than 'unsigned long':  */
-                  if (flags >= 16 || (flags & 4))
-                    type = TYPE_ULONGLONGINT;
-                  else
-                  /* If 'unsigned long long' is the same as 'unsigned long', we
-                     parse "llu" into TYPE_ULONGINT.  */
-                  if (flags >= 8)
-                    type = TYPE_ULONGINT;
-                  else if (flags & 2)
-                    type = TYPE_UCHAR;
-                  else if (flags & 1)
-                    type = TYPE_USHORT;
-                  else
-                    type = TYPE_UINT;
-                  break;
-                case 'f': case 'F': case 'e': case 'E': case 'g': case 'G':
-                case 'a': case 'A':
-                  if (flags >= 16 || (flags & 4))
-                    type = TYPE_LONGDOUBLE;
-                  else
-                    type = TYPE_DOUBLE;
-                  break;
-                case 'c':
-                  if (flags >= 8)
+            /* Read the conversion character.  */
+            c = *cp++;
+            switch (c)
+              {
+              case 'd': case 'i':
+                type = signed_type;
+                break;
+              case 'b': case 'o': case 'u': case 'x': case 'X':
+              #if SUPPORT_GNU_PRINTF_DIRECTIVES \
+                  || (__GLIBC__ + (__GLIBC_MINOR__ >= 35) > 2)
+              case 'B':
+              #endif
+                type = unsigned_type;
+                break;
+              case 'f': case 'F': case 'e': case 'E': case 'g': case 'G':
+              case 'a': case 'A':
+                type = floatingpoint_type;
+                break;
+              case 'c':
+                if (signed_type == TYPE_LONGINT
+                    /* For backward compatibility only.  */
+                    || signed_type == TYPE_LONGLONGINT)
 #if HAVE_WINT_T
-                    type = TYPE_WIDE_CHAR;
+                  type = TYPE_WIDE_CHAR;
 #else
-                    goto error;
+                  goto error;
 #endif
-                  else
-                    type = TYPE_CHAR;
-                  break;
+                else
+                  type = TYPE_CHAR;
+                break;
 #if HAVE_WINT_T
-                case 'C':
-                  type = TYPE_WIDE_CHAR;
-                  c = 'c';
-                  break;
+              case 'C':
+                type = TYPE_WIDE_CHAR;
+                c = 'c';
+                break;
 #endif
-                case 's':
-                  if (flags >= 8)
+              case 's':
+                if (signed_type == TYPE_LONGINT
+                    /* For backward compatibility only.  */
+                    || signed_type == TYPE_LONGLONGINT)
 #if HAVE_WCHAR_T
-                    type = TYPE_WIDE_STRING;
+                  type = TYPE_WIDE_STRING;
 #else
-                    goto error;
+                  goto error;
 #endif
-                  else
-                    type = TYPE_STRING;
-                  break;
+                else
+                  type = TYPE_STRING;
+                break;
 #if HAVE_WCHAR_T
-                case 'S':
-                  type = TYPE_WIDE_STRING;
-                  c = 's';
-                  break;
+              case 'S':
+                type = TYPE_WIDE_STRING;
+                c = 's';
+                break;
 #endif
-                case 'p':
-                  type = TYPE_POINTER;
-                  break;
-                case 'n':
-                  /* If 'long long' is larger than 'long':  */
-                  if (flags >= 16 || (flags & 4))
-                    type = TYPE_COUNT_LONGLONGINT_POINTER;
-                  else
-                  /* If 'long long' is the same as 'long', we parse "lln" into
-                     TYPE_COUNT_LONGINT_POINTER.  */
-                  if (flags >= 8)
-                    type = TYPE_COUNT_LONGINT_POINTER;
-                  else if (flags & 2)
-                    type = TYPE_COUNT_SCHAR_POINTER;
-                  else if (flags & 1)
-                    type = TYPE_COUNT_SHORT_POINTER;
-                  else
-                    type = TYPE_COUNT_INT_POINTER;
-                  break;
+              case 'p':
+                type = TYPE_POINTER;
+                break;
+              case 'n':
+                type = pointer_type;
+                break;
 #if ENABLE_UNISTDIO
-                /* The unistdio extensions.  */
-                case 'U':
-                  if (flags >= 16)
-                    type = TYPE_U32_STRING;
-                  else if (flags >= 8)
-                    type = TYPE_U16_STRING;
-                  else
-                    type = TYPE_U8_STRING;
-                  break;
+              /* The unistdio extensions.  */
+              case 'U':
+                if (signed_type == TYPE_LONGLONGINT)
+                  type = TYPE_U32_STRING;
+                else if (signed_type == TYPE_LONGINT)
+                  type = TYPE_U16_STRING;
+                else
+                  type = TYPE_U8_STRING;
+                break;
 #endif
-                case '%':
-                  type = TYPE_NONE;
-                  break;
-                default:
-                  /* Unknown conversion character.  */
-                  goto error;
-                }
-            }
+              case '%':
+                type = TYPE_NONE;
+                break;
+              default:
+                /* Unknown conversion character.  */
+                goto error;
+              }
 
             if (type != TYPE_NONE)
               {
similarity index 92%
rename from lib/printf-parse.h
rename to gnulib-tests/printf-parse.h
index 77b7409..45febac 100644 (file)
@@ -1,5 +1,5 @@
 /* Parse printf format string.
-   Copyright (C) 1999, 2002-2003, 2005, 2007, 2010-2021 Free Software
+   Copyright (C) 1999, 2002-2003, 2005, 2007, 2010-2023 Free Software
    Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
@@ -61,7 +61,7 @@ typedef struct
   const char* precision_start;
   const char* precision_end;
   size_t precision_arg_index;
-  char conversion; /* d i o u x X f F e E g G a A c s p n U % but not C S */
+  char conversion; /* d i b B o u x X f F e E g G a A c s p n U % but not C S */
   size_t arg_index;
 }
 char_directive;
@@ -91,7 +91,7 @@ typedef struct
   const uint8_t* precision_start;
   const uint8_t* precision_end;
   size_t precision_arg_index;
-  uint8_t conversion; /* d i o u x X f F e E g G a A c s p n U % but not C S */
+  uint8_t conversion; /* d i b B o u x X f F e E g G a A c s p n U % but not C S */
   size_t arg_index;
 }
 u8_directive;
@@ -119,7 +119,7 @@ typedef struct
   const uint16_t* precision_start;
   const uint16_t* precision_end;
   size_t precision_arg_index;
-  uint16_t conversion; /* d i o u x X f F e E g G a A c s p n U % but not C S */
+  uint16_t conversion; /* d i b B o u x X f F e E g G a A c s p n U % but not C S */
   size_t arg_index;
 }
 u16_directive;
@@ -147,7 +147,7 @@ typedef struct
   const uint32_t* precision_start;
   const uint32_t* precision_end;
   size_t precision_arg_index;
-  uint32_t conversion; /* d i o u x X f F e E g G a A c s p n U % but not C S */
+  uint32_t conversion; /* d i b B o u x X f F e E g G a A c s p n U % but not C S */
   size_t arg_index;
 }
 u32_directive;
diff --git a/gnulib-tests/pselect.c b/gnulib-tests/pselect.c
new file mode 100644 (file)
index 0000000..1b8c191
--- /dev/null
@@ -0,0 +1,118 @@
+/* pselect - synchronous I/O multiplexing
+
+   Copyright 2011-2023 Free Software Foundation, Inc.
+
+   This file is part of gnulib.
+
+   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 Paul Eggert */
+
+#include <config.h>
+
+#include <sys/select.h>
+
+#include <errno.h>
+#include <signal.h>
+
+/* Examine the size-NFDS file descriptor sets in RFDS, WFDS, and XFDS
+   to see whether some of their descriptors are ready for reading,
+   ready for writing, or have exceptions pending.  Wait for at most
+   TIMEOUT seconds, and use signal mask SIGMASK while waiting.  A null
+   pointer parameter stands for no descriptors, an infinite timeout,
+   or an unaffected signal mask.  */
+
+#if !HAVE_PSELECT
+
+int
+pselect (int nfds, fd_set *restrict rfds,
+         fd_set *restrict wfds, fd_set *restrict xfds,
+         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;
+    }
+
+  if (timeout)
+    {
+      if (! (0 <= timeout->tv_nsec && timeout->tv_nsec < 1000000000))
+        {
+          errno = EINVAL;
+          return -1;
+        }
+
+      tv = (struct timeval) {
+        .tv_sec = timeout->tv_sec,
+        .tv_usec = (timeout->tv_nsec + 999) / 1000
+      };
+      tvp = &tv;
+    }
+  else
+    tvp = NULL;
+
+  /* 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);
+
+  if (sigmask)
+    {
+      int select_errno = errno;
+      pthread_sigmask (SIG_SETMASK, &origmask, NULL);
+      errno = select_errno;
+    }
+
+  return select_result;
+}
+
+#else /* HAVE_PSELECT */
+# include <unistd.h>
+# undef pselect
+
+int
+rpl_pselect (int nfds, fd_set *restrict rfds,
+             fd_set *restrict wfds, fd_set *restrict xfds,
+             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++)
+    {
+      if (((rfds && FD_ISSET (i, rfds))
+           || (wfds && FD_ISSET (i, wfds))
+           || (xfds && FD_ISSET (i, xfds)))
+          && dup2 (i, i) != i)
+        return -1;
+    }
+
+  return pselect (nfds, rfds, wfds, xfds, timeout, sigmask);
+}
+
+#endif
index 6e603bc..5a4e466 100644 (file)
@@ -1,5 +1,5 @@
 /* Creating and controlling POSIX threads.
-   Copyright (C) 2010-2021 Free Software Foundation, Inc.
+   Copyright (C) 2010-2023 Free Software Foundation, Inc.
 
    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,7 +57,7 @@ pthread_attr_setdetachstate (pthread_attr_t *attr, int detachstate)
 }
 
 int
-pthread_attr_destroy (pthread_attr_t *attr _GL_UNUSED)
+pthread_attr_destroy (_GL_UNUSED pthread_attr_t *attr)
 {
   return 0;
 }
index c4cd36c..966f58b 100644 (file)
@@ -1,6 +1,6 @@
 /* Implement the most essential subset of POSIX 1003.1-2008 pthread.h.
 
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 #ifndef _@GUARD_PREFIX@_PTHREAD_H_
 #define _@GUARD_PREFIX@_PTHREAD_H_
 
+/* This file uses _Noreturn, _GL_ATTRIBUTE_PURE, GNULIB_POSIXCHECK,
+   HAVE_RAW_DECL_*.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 #define __need_system_stdlib_h
 #include <stdlib.h>
 #undef __need_system_stdlib_h
 #include <sys/types.h>
 #include <time.h>
 
+/* The __attribute__ feature is available in gcc versions 2.5 and later.
+   The attribute __pure__ was added in gcc 2.96.  */
+#ifndef _GL_ATTRIBUTE_PURE
+# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) || defined __clang__
+#  define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
+# else
+#  define _GL_ATTRIBUTE_PURE /* empty */
+# endif
+#endif
+
 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
 
 /* The definition of _Noreturn is copied here.  */
@@ -1958,6 +1974,35 @@ _GL_WARN_ON_USE (pthread_spin_destroy, "pthread_spin_destroy is not portable - "
 #endif
 
 
+#if defined __cplusplus && defined GNULIB_NAMESPACE && !@HAVE_PTHREAD_H@ && defined __MINGW32__
+/* Provide the symbols required by mingw's <bits/gthr-default.h>.  */
+using GNULIB_NAMESPACE::pthread_create;
+using GNULIB_NAMESPACE::pthread_self;
+using GNULIB_NAMESPACE::pthread_equal;
+using GNULIB_NAMESPACE::pthread_detach;
+using GNULIB_NAMESPACE::pthread_join;
+using GNULIB_NAMESPACE::pthread_once;
+using GNULIB_NAMESPACE::pthread_mutex_init;
+using GNULIB_NAMESPACE::pthread_mutexattr_init;
+using GNULIB_NAMESPACE::pthread_mutexattr_settype;
+using GNULIB_NAMESPACE::pthread_mutexattr_destroy;
+using GNULIB_NAMESPACE::pthread_mutex_lock;
+using GNULIB_NAMESPACE::pthread_mutex_trylock;
+using GNULIB_NAMESPACE::pthread_mutex_timedlock;
+using GNULIB_NAMESPACE::pthread_mutex_unlock;
+using GNULIB_NAMESPACE::pthread_mutex_destroy;
+using GNULIB_NAMESPACE::pthread_cond_wait;
+using GNULIB_NAMESPACE::pthread_cond_timedwait;
+using GNULIB_NAMESPACE::pthread_cond_signal;
+using GNULIB_NAMESPACE::pthread_cond_broadcast;
+using GNULIB_NAMESPACE::pthread_cond_destroy;
+using GNULIB_NAMESPACE::pthread_key_create;
+using GNULIB_NAMESPACE::pthread_setspecific;
+using GNULIB_NAMESPACE::pthread_getspecific;
+using GNULIB_NAMESPACE::pthread_key_delete;
+#endif
+
+
 #endif /* _@GUARD_PREFIX@_PTHREAD_H_ */
 #endif /* _@GUARD_PREFIX@_PTHREAD_H_ */
 #endif
index 11b7091..1281075 100644 (file)
@@ -1,5 +1,5 @@
 /* POSIX compatible signal blocking for threads.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 435d10f..5d33940 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1994, 1997-1998, 2000, 2003-2021 Free Software
+/* Copyright (C) 1991, 1994, 1997-1998, 2000, 2003-2023 Free Software
    Foundation, Inc.
 
    NOTE: The canonical source of this file is maintained with the GNU C
@@ -6,7 +6,7 @@
 
    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 3 of the
+   published by the Free Software Foundation, either version 3 of the
    License, or (at your option) any later version.
 
    This file is distributed in the hope that it will be useful,
index c727777..10964f0 100644 (file)
@@ -1,6 +1,6 @@
 /* Determine whether two stat buffers are known to refer to the same file.
 
-   Copyright (C) 2006, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index cdfe1ae..21aab51 100644 (file)
@@ -1,5 +1,5 @@
 /* A GNU-like <sched.h>.
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 #endif
 @PRAGMA_COLUMNS@
 
+/* This file uses #include_next of a system file that defines time_t.
+   For the 'year2038' module to work right, <config.h> needs to have been
+   included before.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 /* The include_next requires a split double-inclusion guard.  */
 #if @HAVE_SCHED_H@
 # if @HAVE_SYS_CDEFS_H@
 #ifndef _@GUARD_PREFIX@_SCHED_H
 #define _@GUARD_PREFIX@_SCHED_H
 
+/* This file uses GNULIB_POSIXCHECK, HAVE_RAW_DECL_*.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 /* Get pid_t.
    This is needed on glibc 2.11 (see
    glibc bug <https://sourceware.org/bugzilla/show_bug.cgi?id=13198>)
index eddac4b..6b6ca41 100644 (file)
@@ -1,7 +1,7 @@
 /* Emulation for select(2)
    Contributed by Paolo Bonzini.
 
-   Copyright 2008-2021 Free Software Foundation, Inc.
+   Copyright 2008-2023 Free Software Foundation, Inc.
 
    This file is part of gnulib.
 
@@ -279,8 +279,11 @@ rpl_select (int nfds, fd_set *rfds, fd_set *wfds, fd_set *xfds,
   int i, fd, rc;
   clock_t tend;
 
-  if (nfds > FD_SETSIZE)
-    nfds = FD_SETSIZE;
+  if (nfds < 0 || nfds > FD_SETSIZE)
+    {
+      errno = EINVAL;
+      return -1;
+    }
 
   if (!timeout)
     wait_timeout = INFINITE;
index 10b1e90..d435741 100644 (file)
@@ -1,6 +1,6 @@
 /* setsockopt.c --- wrappers for Windows setsockopt function
 
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
diff --git a/gnulib-tests/sig-handler.h b/gnulib-tests/sig-handler.h
deleted file mode 100644 (file)
index 0ce5897..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Convenience declarations when working with <signal.h>.
-
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
-
-   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/>.  */
-
-#ifndef _GL_SIG_HANDLER_H
-#define _GL_SIG_HANDLER_H
-
-#include <signal.h>
-
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
-_GL_INLINE_HEADER_BEGIN
-#ifndef SIG_HANDLER_INLINE
-# define SIG_HANDLER_INLINE _GL_INLINE
-#endif
-
-/* Convenience type when working with signal handlers.  */
-typedef void (*sa_handler_t) (int);
-
-/* Return the handler of a signal, as a sa_handler_t value regardless
-   of its true type.  The resulting function can be compared to
-   special values like SIG_IGN but it is not portable to call it.  */
-SIG_HANDLER_INLINE sa_handler_t _GL_ATTRIBUTE_PURE
-get_handler (struct sigaction const *a)
-{
-  /* POSIX says that special values like SIG_IGN can only occur when
-     action.sa_flags does not contain SA_SIGINFO.  But in Linux 2.4,
-     for example, sa_sigaction and sa_handler are aliases and a signal
-     is ignored if sa_sigaction (after casting) equals SIG_IGN.  In
-     this case, this implementation relies on the fact that the two
-     are aliases, and simply returns sa_handler.  */
-  return a->sa_handler;
-}
-
-_GL_INLINE_HEADER_END
-
-#endif /* _GL_SIG_HANDLER_H */
diff --git a/gnulib-tests/sigaction.c b/gnulib-tests/sigaction.c
deleted file mode 100644 (file)
index e1ace46..0000000
+++ /dev/null
@@ -1,204 +0,0 @@
-/* POSIX compatible signal blocking.
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
-   Written by Eric Blake <ebb9@byu.net>, 2008.
-
-   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/>.  */
-
-#include <config.h>
-
-/* Specification.  */
-#include <signal.h>
-
-#include <errno.h>
-#include <stdint.h>
-#include <stdlib.h>
-
-/* This implementation of sigaction is tailored to native Windows behavior:
-   signal() has SysV semantics (ie. the handler is uninstalled before
-   it is invoked).  This is an inherent data race if an asynchronous
-   signal is sent twice in a row before we can reinstall our handler,
-   but there's nothing we can do about it.  Meanwhile, sigprocmask()
-   is not present, and while we can use the gnulib replacement to
-   provide critical sections, it too suffers from potential data races
-   in the face of an ill-timed asynchronous signal.  And we compound
-   the situation by reading static storage in a signal handler, which
-   POSIX warns is not generically async-signal-safe.  Oh well.
-
-   Additionally:
-     - We don't implement SA_NOCLDSTOP or SA_NOCLDWAIT, because SIGCHLD
-       is not defined.
-     - We don't implement SA_ONSTACK, because sigaltstack() is not present.
-     - We ignore SA_RESTART, because blocking native Windows API calls are
-       not interrupted anyway when an asynchronous signal occurs, and the
-       MSVCRT runtime never sets errno to EINTR.
-     - We don't implement SA_SIGINFO because it is impossible to do so
-       portably.
-
-   POSIX states that an application should not mix signal() and
-   sigaction().  We support the use of signal() within the gnulib
-   sigprocmask() substitute, but all other application code linked
-   with this module should stick with only sigaction().  */
-
-/* Check some of our assumptions.  */
-#if defined SIGCHLD || defined HAVE_SIGALTSTACK || defined HAVE_SIGINTERRUPT
-# error "Revisit the assumptions made in the sigaction module"
-#endif
-
-/* Out-of-range substitutes make a good fallback for uncatchable
-   signals.  */
-#ifndef SIGKILL
-# define SIGKILL (-1)
-#endif
-#ifndef SIGSTOP
-# define SIGSTOP (-1)
-#endif
-
-/* On native Windows, as of 2008, the signal SIGABRT_COMPAT is an alias
-   for the signal SIGABRT.  Only one signal handler is stored for both
-   SIGABRT and SIGABRT_COMPAT.  SIGABRT_COMPAT is not a signal of its own.  */
-#if defined _WIN32 && ! defined __CYGWIN__
-# undef SIGABRT_COMPAT
-# define SIGABRT_COMPAT 6
-#endif
-
-/* A signal handler.  */
-typedef void (*handler_t) (int signal);
-
-/* Set of current actions.  If sa_handler for an entry is NULL, then
-   that signal is not currently handled by the sigaction handler.  */
-static struct sigaction volatile action_array[NSIG] /* = 0 */;
-
-/* Signal handler that is installed for signals.  */
-static void
-sigaction_handler (int sig)
-{
-  handler_t handler;
-  sigset_t mask;
-  sigset_t oldmask;
-  int saved_errno = errno;
-  if (sig < 0 || NSIG <= sig || !action_array[sig].sa_handler)
-    {
-      /* Unexpected situation; be careful to avoid recursive abort.  */
-      if (sig == SIGABRT)
-        signal (SIGABRT, SIG_DFL);
-      abort ();
-    }
-
-  /* Reinstall the signal handler when required; otherwise update the
-     bookkeeping so that the user's handler may call sigaction and get
-     accurate results.  We know the signal isn't currently blocked, or
-     we wouldn't be in its handler, therefore we know that we are not
-     interrupting a sigaction() call.  There is a race where any
-     asynchronous instance of the same signal occurring before we
-     reinstall the handler will trigger the default handler; oh
-     well.  */
-  handler = action_array[sig].sa_handler;
-  if ((action_array[sig].sa_flags & SA_RESETHAND) == 0)
-    signal (sig, sigaction_handler);
-  else
-    action_array[sig].sa_handler = NULL;
-
-  /* Block appropriate signals.  */
-  mask = action_array[sig].sa_mask;
-  if ((action_array[sig].sa_flags & SA_NODEFER) == 0)
-    sigaddset (&mask, sig);
-  sigprocmask (SIG_BLOCK, &mask, &oldmask);
-
-  /* Invoke the user's handler, then restore prior mask.  */
-  errno = saved_errno;
-  handler (sig);
-  saved_errno = errno;
-  sigprocmask (SIG_SETMASK, &oldmask, NULL);
-  errno = saved_errno;
-}
-
-/* Change and/or query the action that will be taken on delivery of
-   signal SIG.  If not NULL, ACT describes the new behavior.  If not
-   NULL, OACT is set to the prior behavior.  Return 0 on success, or
-   set errno and return -1 on failure.  */
-int
-sigaction (int sig, const struct sigaction *restrict act,
-           struct sigaction *restrict oact)
-{
-  sigset_t mask;
-  sigset_t oldmask;
-  int saved_errno;
-
-  if (sig < 0 || NSIG <= sig || sig == SIGKILL || sig == SIGSTOP
-      || (act && act->sa_handler == SIG_ERR))
-    {
-      errno = EINVAL;
-      return -1;
-    }
-
-#ifdef SIGABRT_COMPAT
-  if (sig == SIGABRT_COMPAT)
-    sig = SIGABRT;
-#endif
-
-  /* POSIX requires sigaction() to be async-signal-safe.  In other
-     words, if an asynchronous signal can occur while we are anywhere
-     inside this function, the user's handler could then call
-     sigaction() recursively and expect consistent results.  We meet
-     this rule by using sigprocmask to block all signals before
-     modifying any data structure that could be read from a signal
-     handler; this works since we know that the gnulib sigprocmask
-     replacement does not try to use sigaction() from its handler.  */
-  if (!act && !oact)
-    return 0;
-  sigfillset (&mask);
-  sigprocmask (SIG_BLOCK, &mask, &oldmask);
-  if (oact)
-    {
-      if (action_array[sig].sa_handler)
-        *oact = action_array[sig];
-      else
-        {
-          /* Safe to change the handler at will here, since all
-             signals are currently blocked.  */
-          oact->sa_handler = signal (sig, SIG_DFL);
-          if (oact->sa_handler == SIG_ERR)
-            goto failure;
-          signal (sig, oact->sa_handler);
-          oact->sa_flags = SA_RESETHAND | SA_NODEFER;
-          sigemptyset (&oact->sa_mask);
-        }
-    }
-
-  if (act)
-    {
-      /* Safe to install the handler before updating action_array,
-         since all signals are currently blocked.  */
-      if (act->sa_handler == SIG_DFL || act->sa_handler == SIG_IGN)
-        {
-          if (signal (sig, act->sa_handler) == SIG_ERR)
-            goto failure;
-          action_array[sig].sa_handler = NULL;
-        }
-      else
-        {
-          if (signal (sig, sigaction_handler) == SIG_ERR)
-            goto failure;
-          action_array[sig] = *act;
-        }
-    }
-  sigprocmask (SIG_SETMASK, &oldmask, NULL);
-  return 0;
-
- failure:
-  saved_errno = errno;
-  sigprocmask (SIG_SETMASK, &oldmask, NULL);
-  errno = saved_errno;
-  return -1;
-}
index f791783..e939fec 100644 (file)
@@ -1,9 +1,9 @@
 /* Macro for checking that a function declaration is compliant.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -43,6 +43,6 @@
 # define SIGNATURE_CHECK1(fn, ret, args, id) \
   SIGNATURE_CHECK2 (fn, ret, args, id) /* macroexpand line */
 # define SIGNATURE_CHECK2(fn, ret, args, id) \
-  static ret (* _GL_UNUSED signature_check ## id) args = fn
+  _GL_UNUSED static ret (*signature_check ## id) args = fn
 
 #endif /* SIGNATURE_CHECK */
similarity index 86%
rename from lib/size_max.h
rename to gnulib-tests/size_max.h
index 1186ba9..2cfd31a 100644 (file)
@@ -1,5 +1,5 @@
 /* size_max.h -- declare SIZE_MAX through system headers
-   Copyright (C) 2005-2006, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2005-2006, 2009-2023 Free Software Foundation, Inc.
    Written by Simon Josefsson.
 
    This file is free software: you can redistribute it and/or modify
 #ifndef GNULIB_SIZE_MAX_H
 #define GNULIB_SIZE_MAX_H
 
+/* This file uses HAVE_STDINT_H.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 /* Get SIZE_MAX declaration on systems like Solaris 7/8/9.  */
 # include <limits.h>
 /* Get SIZE_MAX declaration on systems like glibc 2.  */
index 0b49eb7..37c1213 100644 (file)
@@ -1,5 +1,5 @@
 /* Pausing execution of the current thread.
-   Copyright (C) 2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2007.
 
    This file is free software: you can redistribute it and/or modify
@@ -22,8 +22,6 @@
 
 #include <limits.h>
 
-#include "verify.h"
-
 #if defined _WIN32 && ! defined __CYGWIN__
 
 # define WIN32_LEAN_AND_MEAN  /* avoid including junk */
@@ -56,7 +54,7 @@ unsigned int
 rpl_sleep (unsigned int seconds)
 {
   /* This requires int larger than 16 bits.  */
-  verify (UINT_MAX / 24 / 24 / 60 / 60);
+  static_assert (UINT_MAX / 24 / 24 / 60 / 60);
   const unsigned int limit = 24 * 24 * 60 * 60;
   while (limit < seconds)
     {
index a589cf1..cdff314 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 2004, 2006-2021 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2006-2023 Free Software Foundation, Inc.
    Written by Simon Josefsson and Paul Eggert.
 
    This file is free software: you can redistribute it and/or modify
index 0f2e6ff..7ad6eb9 100644 (file)
@@ -1,6 +1,6 @@
 /* socket.c --- wrappers for Windows socket function
 
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 934da73..ca99db8 100644 (file)
@@ -1,6 +1,6 @@
 /* sockets.c --- wrappers for Windows socket functions
 
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
@@ -113,7 +113,7 @@ static int initialized_sockets_version /* = 0 */;
 #endif /* WINDOWS_SOCKETS */
 
 int
-gl_sockets_startup (int version _GL_UNUSED)
+gl_sockets_startup (_GL_UNUSED int version)
 {
 #if WINDOWS_SOCKETS
   if (version > initialized_sockets_version)
index e70c2bb..55d5e3a 100644 (file)
@@ -1,6 +1,6 @@
 /* sockets.h - wrappers for Windows socket functions
 
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 #ifndef SOCKETS_H
 #define SOCKETS_H 1
 
+/* This file uses _GL_ATTRIBUTE_CONST.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 #define SOCKETS_1_0 0x0001
 #define SOCKETS_1_1 0x0101
 #define SOCKETS_2_0 0x0002
diff --git a/gnulib-tests/str-two-way.h b/gnulib-tests/str-two-way.h
new file mode 100644 (file)
index 0000000..dfe7022
--- /dev/null
@@ -0,0 +1,452 @@
+/* Byte-wise substring search, using the Two-Way algorithm.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Written by Eric Blake <ebb9@byu.net>, 2008.
+
+   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/>.  */
+
+/* Before including this file, you need to include <config.h> and
+   <string.h>, and define:
+     RETURN_TYPE             A macro that expands to the return type.
+     AVAILABLE(h, h_l, j, n_l)
+                             A macro that returns nonzero if there are
+                             at least N_L bytes left starting at H[J].
+                             H is 'unsigned char *', H_L, J, and N_L
+                             are 'size_t'; H_L is an lvalue.  For
+                             NUL-terminated searches, H_L can be
+                             modified each iteration to avoid having
+                             to compute the end of H up front.
+
+  For case-insensitivity, you may optionally define:
+     CMP_FUNC(p1, p2, l)     A macro that returns 0 iff the first L
+                             characters of P1 and P2 are equal.
+     CANON_ELEMENT(c)        A macro that canonicalizes an element right after
+                             it has been fetched from one of the two strings.
+                             The argument is an 'unsigned char'; the result
+                             must be an 'unsigned char' as well.
+
+  This file undefines the macros documented above, and defines
+  LONG_NEEDLE_THRESHOLD.
+*/
+
+#include <limits.h>
+#include <stdint.h>
+
+/* We use the Two-Way string matching algorithm (also known as
+   Chrochemore-Perrin), which guarantees linear complexity with
+   constant space.  Additionally, for long needles, we also use a bad
+   character shift table similar to the Boyer-Moore algorithm to
+   achieve improved (potentially sub-linear) performance.
+
+   See https://www-igm.univ-mlv.fr/~lecroq/string/node26.html#SECTION00260,
+   https://en.wikipedia.org/wiki/Boyer-Moore_string_search_algorithm,
+   https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.34.6641&rep=rep1&type=pdf
+*/
+
+/* Point at which computing a bad-byte shift table is likely to be
+   worthwhile.  Small needles should not compute a table, since it
+   adds (1 << CHAR_BIT) + NEEDLE_LEN computations of preparation for a
+   speedup no greater than a factor of NEEDLE_LEN.  The larger the
+   needle, the better the potential performance gain.  On the other
+   hand, on non-POSIX systems with CHAR_BIT larger than eight, the
+   memory required for the table is prohibitive.  */
+#if CHAR_BIT < 10
+# define LONG_NEEDLE_THRESHOLD 32U
+#else
+# define LONG_NEEDLE_THRESHOLD SIZE_MAX
+#endif
+
+#ifndef MAX
+# define MAX(a, b) ((a < b) ? (b) : (a))
+#endif
+
+#ifndef CANON_ELEMENT
+# define CANON_ELEMENT(c) c
+#endif
+#ifndef CMP_FUNC
+# define CMP_FUNC memcmp
+#endif
+
+/* Perform a critical factorization of NEEDLE, of length NEEDLE_LEN.
+   Return the index of the first byte in the right half, and set
+   *PERIOD to the global period of the right half.
+
+   The global period of a string is the smallest index (possibly its
+   length) at which all remaining bytes in the string are repetitions
+   of the prefix (the last repetition may be a subset of the prefix).
+
+   When NEEDLE is factored into two halves, a local period is the
+   length of the smallest word that shares a suffix with the left half
+   and shares a prefix with the right half.  All factorizations of a
+   non-empty NEEDLE have a local period of at least 1 and no greater
+   than NEEDLE_LEN.
+
+   A critical factorization has the property that the local period
+   equals the global period.  All strings have at least one critical
+   factorization with the left half smaller than the global period.
+   And while some strings have more than one critical factorization,
+   it is provable that with an ordered alphabet, at least one of the
+   critical factorizations corresponds to a maximal suffix.
+
+   Given an ordered alphabet, a critical factorization can be computed
+   in linear time, with 2 * NEEDLE_LEN comparisons, by computing the
+   shorter of two ordered maximal suffixes.  The ordered maximal
+   suffixes are determined by lexicographic comparison while tracking
+   periodicity.  */
+static size_t
+critical_factorization (const unsigned char *needle, size_t needle_len,
+                        size_t *period)
+{
+  /* Index of last byte of left half, or SIZE_MAX.  */
+  size_t max_suffix, max_suffix_rev;
+  size_t j; /* Index into NEEDLE for current candidate suffix.  */
+  size_t k; /* Offset into current period.  */
+  size_t p; /* Intermediate period.  */
+  unsigned char a, b; /* Current comparison bytes.  */
+
+  /* Special case NEEDLE_LEN of 1 or 2 (all callers already filtered
+     out 0-length needles.  */
+  if (needle_len < 3)
+    {
+      *period = 1;
+      return needle_len - 1;
+    }
+
+  /* Invariants:
+     0 <= j < NEEDLE_LEN - 1
+     -1 <= max_suffix{,_rev} < j (treating SIZE_MAX as if it were signed)
+     min(max_suffix, max_suffix_rev) < global period of NEEDLE
+     1 <= p <= global period of NEEDLE
+     p == global period of the substring NEEDLE[max_suffix{,_rev}+1...j]
+     1 <= k <= p
+  */
+
+  /* Perform lexicographic search.  */
+  max_suffix = SIZE_MAX;
+  j = 0;
+  k = p = 1;
+  while (j + k < needle_len)
+    {
+      a = CANON_ELEMENT (needle[j + k]);
+      b = CANON_ELEMENT (needle[max_suffix + k]);
+      if (a < b)
+        {
+          /* Suffix is smaller, period is entire prefix so far.  */
+          j += k;
+          k = 1;
+          p = j - max_suffix;
+        }
+      else if (a == b)
+        {
+          /* Advance through repetition of the current period.  */
+          if (k != p)
+            ++k;
+          else
+            {
+              j += p;
+              k = 1;
+            }
+        }
+      else /* b < a */
+        {
+          /* Suffix is larger, start over from current location.  */
+          max_suffix = j++;
+          k = p = 1;
+        }
+    }
+  *period = p;
+
+  /* Perform reverse lexicographic search.  */
+  max_suffix_rev = SIZE_MAX;
+  j = 0;
+  k = p = 1;
+  while (j + k < needle_len)
+    {
+      a = CANON_ELEMENT (needle[j + k]);
+      b = CANON_ELEMENT (needle[max_suffix_rev + k]);
+      if (b < a)
+        {
+          /* Suffix is smaller, period is entire prefix so far.  */
+          j += k;
+          k = 1;
+          p = j - max_suffix_rev;
+        }
+      else if (a == b)
+        {
+          /* Advance through repetition of the current period.  */
+          if (k != p)
+            ++k;
+          else
+            {
+              j += p;
+              k = 1;
+            }
+        }
+      else /* a < b */
+        {
+          /* Suffix is larger, start over from current location.  */
+          max_suffix_rev = j++;
+          k = p = 1;
+        }
+    }
+
+  /* Choose the shorter suffix.  Return the index of the first byte of
+     the right half, rather than the last byte of the left half.
+
+     For some examples, 'banana' has two critical factorizations, both
+     exposed by the two lexicographic extreme suffixes of 'anana' and
+     'nana', where both suffixes have a period of 2.  On the other
+     hand, with 'aab' and 'bba', both strings have a single critical
+     factorization of the last byte, with the suffix having a period
+     of 1.  While the maximal lexicographic suffix of 'aab' is 'b',
+     the maximal lexicographic suffix of 'bba' is 'ba', which is not a
+     critical factorization.  Conversely, the maximal reverse
+     lexicographic suffix of 'a' works for 'bba', but not 'ab' for
+     'aab'.  The shorter suffix of the two will always be a critical
+     factorization.  */
+  if (max_suffix_rev + 1 < max_suffix + 1)
+    return max_suffix + 1;
+  *period = p;
+  return max_suffix_rev + 1;
+}
+
+/* Return the first location of non-empty NEEDLE within HAYSTACK, or
+   NULL.  HAYSTACK_LEN is the minimum known length of HAYSTACK.  This
+   method is optimized for NEEDLE_LEN < LONG_NEEDLE_THRESHOLD.
+   Performance is guaranteed to be linear, with an initialization cost
+   of 2 * NEEDLE_LEN comparisons.
+
+   If AVAILABLE does not modify HAYSTACK_LEN (as in memmem), then at
+   most 2 * HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching.
+   If AVAILABLE modifies HAYSTACK_LEN (as in strstr), then at most 3 *
+   HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching.  */
+static RETURN_TYPE _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);
+
+  /* Perform the search.  Each iteration compares the right half
+     first.  */
+  if (CMP_FUNC (needle, needle + period, suffix) == 0)
+    {
+      /* Entire needle is periodic; a mismatch in the left half can
+         only advance by the period, so use memory to avoid rescanning
+         known occurrences of the period in the right half.  */
+      size_t memory = 0;
+      j = 0;
+      while (AVAILABLE (haystack, haystack_len, j, needle_len))
+        {
+          /* Scan for matches in right half.  */
+          i = MAX (suffix, memory);
+          while (i < needle_len && (CANON_ELEMENT (needle[i])
+                                    == CANON_ELEMENT (haystack[i + j])))
+            ++i;
+          if (needle_len <= i)
+            {
+              /* Scan for matches in left half.  */
+              i = suffix - 1;
+              while (memory < i + 1 && (CANON_ELEMENT (needle[i])
+                                        == CANON_ELEMENT (haystack[i + j])))
+                --i;
+              if (i + 1 < memory + 1)
+                return (RETURN_TYPE) (haystack + j);
+              /* No match, so remember how many repetitions of period
+                 on the right half were scanned.  */
+              j += period;
+              memory = needle_len - period;
+            }
+          else
+            {
+              j += i - suffix + 1;
+              memory = 0;
+            }
+        }
+    }
+  else
+    {
+      /* The two halves of needle are distinct; no extra memory is
+         required, and any mismatch results in a maximal shift.  */
+      period = MAX (suffix, needle_len - suffix) + 1;
+      j = 0;
+      while (AVAILABLE (haystack, haystack_len, j, needle_len))
+        {
+          /* Scan for matches in right half.  */
+          i = suffix;
+          while (i < needle_len && (CANON_ELEMENT (needle[i])
+                                    == CANON_ELEMENT (haystack[i + j])))
+            ++i;
+          if (needle_len <= i)
+            {
+              /* Scan for matches in left half.  */
+              i = suffix - 1;
+              while (i != SIZE_MAX && (CANON_ELEMENT (needle[i])
+                                       == CANON_ELEMENT (haystack[i + j])))
+                --i;
+              if (i == SIZE_MAX)
+                return (RETURN_TYPE) (haystack + j);
+              j += period;
+            }
+          else
+            j += i - suffix + 1;
+        }
+    }
+  return NULL;
+}
+
+/* Return the first location of non-empty NEEDLE within HAYSTACK, or
+   NULL.  HAYSTACK_LEN is the minimum known length of HAYSTACK.  This
+   method is optimized for LONG_NEEDLE_THRESHOLD <= NEEDLE_LEN.
+   Performance is guaranteed to be linear, with an initialization cost
+   of 3 * NEEDLE_LEN + (1 << CHAR_BIT) operations.
+
+   If AVAILABLE does not modify HAYSTACK_LEN (as in memmem), then at
+   most 2 * HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching,
+   and sublinear performance O(HAYSTACK_LEN / NEEDLE_LEN) is possible.
+   If AVAILABLE modifies HAYSTACK_LEN (as in strstr), then at most 3 *
+   HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching, and
+   sublinear performance is not possible.  */
+static RETURN_TYPE _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);
+
+  /* Populate shift_table.  For each possible byte value c,
+     shift_table[c] is the distance from the last occurrence of c to
+     the end of NEEDLE, or NEEDLE_LEN if c is absent from the NEEDLE.
+     shift_table[NEEDLE[NEEDLE_LEN - 1]] contains the only 0.  */
+  for (i = 0; i < 1U << CHAR_BIT; i++)
+    shift_table[i] = needle_len;
+  for (i = 0; i < needle_len; i++)
+    shift_table[CANON_ELEMENT (needle[i])] = needle_len - i - 1;
+
+  /* Perform the search.  Each iteration compares the right half
+     first.  */
+  if (CMP_FUNC (needle, needle + period, suffix) == 0)
+    {
+      /* Entire needle is periodic; a mismatch in the left half can
+         only advance by the period, so use memory to avoid rescanning
+         known occurrences of the period in the right half.  */
+      size_t memory = 0;
+      size_t shift;
+      j = 0;
+      while (AVAILABLE (haystack, haystack_len, j, needle_len))
+        {
+          /* Check the last byte first; if it does not match, then
+             shift to the next possible match location.  */
+          shift = shift_table[CANON_ELEMENT (haystack[j + needle_len - 1])];
+          if (0 < shift)
+            {
+              if (memory && shift < period)
+                {
+                  /* Since needle is periodic, but the last period has
+                     a byte out of place, there can be no match until
+                     after the mismatch.  */
+                  shift = needle_len - period;
+                }
+              memory = 0;
+              j += shift;
+              continue;
+            }
+          /* Scan for matches in right half.  The last byte has
+             already been matched, by virtue of the shift table.  */
+          i = MAX (suffix, memory);
+          while (i < needle_len - 1 && (CANON_ELEMENT (needle[i])
+                                        == CANON_ELEMENT (haystack[i + j])))
+            ++i;
+          if (needle_len - 1 <= i)
+            {
+              /* Scan for matches in left half.  */
+              i = suffix - 1;
+              while (memory < i + 1 && (CANON_ELEMENT (needle[i])
+                                        == CANON_ELEMENT (haystack[i + j])))
+                --i;
+              if (i + 1 < memory + 1)
+                return (RETURN_TYPE) (haystack + j);
+              /* No match, so remember how many repetitions of period
+                 on the right half were scanned.  */
+              j += period;
+              memory = needle_len - period;
+            }
+          else
+            {
+              j += i - suffix + 1;
+              memory = 0;
+            }
+        }
+    }
+  else
+    {
+      /* The two halves of needle are distinct; no extra memory is
+         required, and any mismatch results in a maximal shift.  */
+      size_t shift;
+      period = MAX (suffix, needle_len - suffix) + 1;
+      j = 0;
+      while (AVAILABLE (haystack, haystack_len, j, needle_len))
+        {
+          /* Check the last byte first; if it does not match, then
+             shift to the next possible match location.  */
+          shift = shift_table[CANON_ELEMENT (haystack[j + needle_len - 1])];
+          if (0 < shift)
+            {
+              j += shift;
+              continue;
+            }
+          /* Scan for matches in right half.  The last byte has
+             already been matched, by virtue of the shift table.  */
+          i = suffix;
+          while (i < needle_len - 1 && (CANON_ELEMENT (needle[i])
+                                        == CANON_ELEMENT (haystack[i + j])))
+            ++i;
+          if (needle_len - 1 <= i)
+            {
+              /* Scan for matches in left half.  */
+              i = suffix - 1;
+              while (i != SIZE_MAX && (CANON_ELEMENT (needle[i])
+                                       == CANON_ELEMENT (haystack[i + j])))
+                --i;
+              if (i == SIZE_MAX)
+                return (RETURN_TYPE) (haystack + j);
+              j += period;
+            }
+          else
+            j += i - suffix + 1;
+        }
+    }
+  return NULL;
+}
+
+#undef AVAILABLE
+#undef CANON_ELEMENT
+#undef CMP_FUNC
+#undef MAX
+#undef RETURN_TYPE
index f024452..ffe1266 100644 (file)
@@ -1,6 +1,6 @@
 /* strerror_r.c --- POSIX compatible system error routine
 
-   Copyright (C) 2010-2021 Free Software Foundation, Inc.
+   Copyright (C) 2010-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 
 #include "strerror-override.h"
 
-#if (__GLIBC__ >= 2 || defined __UCLIBC__ || defined __CYGWIN__) && HAVE___XPG_STRERROR_R /* glibc >= 2.3.4, cygwin >= 1.7.9 */
+#if STRERROR_R_CHAR_P
 
-# define USE_XPG_STRERROR_R 1
-extern
-#ifdef __cplusplus
-"C"
-#endif
-int __xpg_strerror_r (int errnum, char *buf, size_t buflen);
+# if HAVE___XPG_STRERROR_R
+_GL_EXTERN_C int __xpg_strerror_r (int errnum, char *buf, size_t buflen);
+# endif
 
-#elif HAVE_DECL_STRERROR_R && !(__GLIBC__ >= 2 || defined __UCLIBC__ || defined __CYGWIN__)
+#elif HAVE_DECL_STRERROR_R
 
-/* The system's strerror_r function is OK, except that its third argument
+/* The system's strerror_r function's API is OK, except that its third argument
    is 'int', not 'size_t', or its return type is wrong.  */
 
 # include <limits.h>
 
-# define USE_SYSTEM_STRERROR_R 1
-
-#else /* (__GLIBC__ >= 2 || defined __UCLIBC__ || defined __CYGWIN__ ? !HAVE___XPG_STRERROR_R : !HAVE_DECL_STRERROR_R) */
+#else
 
 /* Use the system's strerror().  Exclude glibc and cygwin because the
    system strerror_r has the wrong return type, and cygwin 1.7.9
    strerror_r clobbers strerror.  */
 # undef strerror
 
-# define USE_SYSTEM_STRERROR 1
-
 # if defined __NetBSD__ || defined __hpux || (defined _WIN32 && !defined __CYGWIN__) || defined __sgi || (defined __sun && !defined _LP64) || defined __CYGWIN__
 
 /* No locking needed.  */
@@ -166,22 +159,31 @@ strerror_r (int errnum, char *buf, size_t buflen)
     int ret;
     int saved_errno = errno;
 
-#if USE_XPG_STRERROR_R
+#if STRERROR_R_CHAR_P
 
     {
+      ret = 0;
+
+# if HAVE___XPG_STRERROR_R
       ret = __xpg_strerror_r (errnum, buf, buflen);
-      if (ret < 0)
-        ret = errno;
+      /* ret is 0 upon success, or EINVAL or ERANGE upon failure.  */
+# endif
+
       if (!*buf)
         {
-          /* glibc 2.13 would not touch buf on err, so we have to fall
-             back to GNU strerror_r which always returns a thread-safe
-             untruncated string to (partially) copy into our buf.  */
-          safe_copy (buf, buflen, strerror_r (errnum, buf, buflen));
+          /* glibc 2.13 ... 2.34 (at least) don't touch buf upon failure.
+             Therefore we have to fall back to strerror_r which, for valid
+             errnum, returns a thread-safe untruncated string.  For invalid
+             errnum, though, it returns a truncated string, which does not
+             allow us to determine whether to return ERANGE or 0.  Thus we
+             need to pass a sufficiently large buffer.  */
+          char stackbuf[80];
+          char *errstring = strerror_r (errnum, stackbuf, sizeof stackbuf);
+          ret = errstring ? safe_copy (buf, buflen, errstring) : errno;
         }
     }
 
-#elif USE_SYSTEM_STRERROR_R
+#elif HAVE_DECL_STRERROR_R
 
     if (buflen > INT_MAX)
       buflen = INT_MAX;
@@ -245,7 +247,7 @@ strerror_r (int errnum, char *buf, size_t buflen)
       }
 # endif
 
-#else /* USE_SYSTEM_STRERROR */
+#else /* strerror_r is not declared.  */
 
     /* Try to do what strerror (errnum) does, but without clobbering the
        buffer used by strerror().  */
index 6e48898..b5009ae 100644 (file)
@@ -1,9 +1,9 @@
 /* Stub for symlink().
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    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 3 of the
+   published by the Free Software Foundation, either version 3 of the
    License, or (at your option) any later version.
 
    This file is distributed in the hope that it will be useful,
@@ -47,8 +47,8 @@ rpl_symlink (char const *contents, char const *name)
 
 /* The system does not support symlinks.  */
 int
-symlink (char const *contents _GL_UNUSED,
-         char const *name _GL_UNUSED)
+symlink (_GL_UNUSED char const *contents,
+         _GL_UNUSED char const *name)
 {
   errno = ENOSYS;
   return -1;
index f1b2a1b..78a7903 100644 (file)
@@ -1,5 +1,5 @@
 /* Substitute for and wrapper around <sys/ioctl.h>.
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 #ifndef _@GUARD_PREFIX@_SYS_IOCTL_H
 #define _@GUARD_PREFIX@_SYS_IOCTL_H
 
+/* This file uses GNULIB_POSIXCHECK, HAVE_RAW_DECL_*.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 /* AIX 5.1 and Solaris 10 declare ioctl() in <unistd.h> and in <stropts.h>,
    but not in <sys/ioctl.h>.
    Haiku declares ioctl() in <unistd.h>, but not in <sys/ioctl.h>.
@@ -62,7 +67,9 @@ _GL_FUNCDECL_SYS (ioctl, int,
 _GL_CXXALIAS_SYS (ioctl, int,
                   (int fd, int request, ... /* {void *,char *} arg */));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (ioctl);
+# endif
 #elif @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
 # undef ioctl
 # define ioctl ioctl_used_without_requesting_gnulib_module_ioctl
index f8ef648..3abfc48 100644 (file)
@@ -1,5 +1,5 @@
 /* Substitute for <sys/select.h>.
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 # endif
 @PRAGMA_COLUMNS@
 
+/* This file uses #include_next of a system file that defines time_t.
+   For the 'year2038' module to work right, <config.h> needs to have been
+   included before.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 /* On OSF/1 and Solaris 2.6, <sys/types.h> and <sys/time.h>
    both include <sys/select.h>.
-   On Cygwin, <sys/time.h> includes <sys/select.h>.
+   On Cygwin and OpenBSD, <sys/time.h> includes <sys/select.h>.
    Simply delegate to the system's header in this case.  */
 #if (@HAVE_SYS_SELECT_H@                                                \
      && !defined _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_TYPES_H             \
@@ -39,6 +46,7 @@
            || (!defined _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_TIME_H       \
                && ((defined __osf__ && defined _SYS_TIME_H_             \
                     && defined _OSF_SOURCE)                             \
+                   || (defined __OpenBSD__ && defined _SYS_TIME_H_)     \
                    || (defined __sun && defined _SYS_TIME_H             \
                        && (! (defined _XOPEN_SOURCE                     \
                               || defined _POSIX_C_SOURCE)               \
 
 #ifndef _@GUARD_PREFIX@_SYS_SELECT_H
 
+/* This file uses GNULIB_POSIXCHECK, HAVE_RAW_DECL_*.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 /* On many platforms, <sys/select.h> assumes prior inclusion of
    <sys/types.h>.  Also, mingw defines sigset_t there, instead of
    in <signal.h> where it belongs.  */
    of 'struct timeval', and no definition of this type.
    Also, Mac OS X, AIX, HP-UX, IRIX, Solaris, Interix declare select()
    in <sys/time.h>.
-   But avoid namespace pollution on glibc systems and "unknown type
-   name" problems on Cygwin.  */
-# if !(defined __GLIBC__ || defined __CYGWIN__)
+   But avoid namespace pollution on glibc systems, a circular include
+   <sys/select.h> -> <sys/time.h> -> <sys/select.h> on FreeBSD 13.1, and
+   "unknown type name" problems on Cygwin.  */
+# if !(defined __GLIBC__ || defined __FreeBSD__ || defined __CYGWIN__)
 #  include <sys/time.h>
 # endif
 
@@ -278,11 +292,17 @@ _GL_FUNCDECL_SYS (pselect, int,
                   (int, fd_set *restrict, fd_set *restrict, fd_set *restrict,
                    struct timespec const *restrict, const sigset_t *restrict));
 #  endif
-_GL_CXXALIAS_SYS (pselect, int,
-                  (int, fd_set *restrict, fd_set *restrict, fd_set *restrict,
-                   struct timespec const *restrict, const sigset_t *restrict));
+/* Need to cast, because on AIX 7, the second, third, fourth argument may be
+                        void *restrict,   void *restrict,   void *restrict.  */
+_GL_CXXALIAS_SYS_CAST (pselect, int,
+                       (int,
+                        fd_set *restrict, fd_set *restrict, fd_set *restrict,
+                        struct timespec const *restrict,
+                        const sigset_t *restrict));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (pselect);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef pselect
 # if HAVE_RAW_DECL_PSELECT
index d90b32c..b7388ce 100644 (file)
@@ -1,6 +1,6 @@
 /* Inline functions for <sys/socket.h>.
 
-   Copyright (C) 2012-2021 Free Software Foundation, Inc.
+   Copyright (C) 2012-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 0a2c57d..afeedf0 100644 (file)
@@ -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-2021 Free Software Foundation, Inc.
+   Copyright (C) 2005-2023 Free Software Foundation, Inc.
    Written by Simon Josefsson.
 
    This file is free software: you can redistribute it and/or modify
 #ifndef _@GUARD_PREFIX@_SYS_SOCKET_H
 #define _@GUARD_PREFIX@_SYS_SOCKET_H
 
-#ifndef _GL_INLINE_HEADER_BEGIN
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, GNULIB_POSIXCHECK,
+   HAVE_RAW_DECL_*, alignof.  */
+#if !_GL_CONFIG_H_INCLUDED
  #error "Please include config.h first."
 #endif
+
 _GL_INLINE_HEADER_BEGIN
 #ifndef _GL_SYS_SOCKET_INLINE
 # define _GL_SYS_SOCKET_INLINE _GL_INLINE
@@ -97,7 +100,6 @@ typedef unsigned char   sa_family_t;
 #  endif
 # endif
 #else
-# include <stdalign.h>
 /* Code taken from glibc sysdeps/unix/sysv/linux/bits/socket.h on
    2009-05-08, licensed under LGPLv2.1+, plus portability fixes. */
 # define __ss_aligntype unsigned long int
index 507ab01..64c4fb6 100644 (file)
@@ -1,5 +1,5 @@
 /* Substitute for <sys/uio.h>.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 49b87b1..1d56efc 100644 (file)
@@ -1,9 +1,9 @@
 /* Test accepting a connection to a server socket.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
similarity index 71%
rename from gnulib-tests/test-stdalign.c
rename to gnulib-tests/test-alignasof.c
index 38812b6..18c0d48 100644 (file)
@@ -1,9 +1,9 @@
-/* Test of <stdalign.h>.
-   Copyright 2009-2021 Free Software Foundation, Inc.
+/* Test of alignasof module.
+   Copyright 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
 
 #include <config.h>
 
-#include <stdalign.h>
-
 #include <stddef.h>
 #include <stdint.h>
 
-#include "verify.h"
-
 #include "macros.h"
 
 typedef long double longdouble;
@@ -33,32 +29,22 @@ typedef struct { char a[2]; } struct2;
 typedef struct { char a[3]; } struct3;
 typedef struct { char a[4]; } struct4;
 
-verify (__alignof_is_defined == 1);
-#ifndef alignof
-# error "alignof is not a macro"
-#endif
-
-#if __alignas_is_defined
-verify (__alignas_is_defined == 1);
-# ifndef alignas
-#  error "alignas is not a macro"
-# endif
+#if (202311 <= __STDC_VERSION__ || __alignas_is_defined \
+     || 201103 <= __cplusplus)
 /* mingw can go up only to 8.  8 is all that GNU Emacs needs, so let's
    limit the test to 8 for now.  */
 # define TEST_ALIGNMENT 8
 #else
-# define _Alignas(alignment)
+# undef alignas
 # define alignas(alignment)
 # define TEST_ALIGNMENT 1
 #endif
 
 #define CHECK_STATIC(type) \
   typedef struct { char slot1; type slot2; } type##_helper; \
-  verify (alignof (type) == offsetof (type##_helper, slot2)); \
-  verify (_Alignof (type) == alignof (type)); \
+  static_assert (alignof (type) == offsetof (type##_helper, slot2)); \
   const int type##_alignment = alignof (type); \
-  type alignas (TEST_ALIGNMENT) static_##type##_alignas; \
-  type _Alignas (TEST_ALIGNMENT) static_##type##_Alignas
+  type alignas (TEST_ALIGNMENT) static_##type##_alignas
 
 #define CHECK_ALIGNED(var) ASSERT ((uintptr_t) &(var) % TEST_ALIGNMENT == 0)
 
@@ -96,31 +82,19 @@ main ()
   return 77;
 #else
   CHECK_ALIGNED (static_char_alignas);
-  CHECK_ALIGNED (static_char_Alignas);
   CHECK_ALIGNED (static_short_alignas);
-  CHECK_ALIGNED (static_short_Alignas);
   CHECK_ALIGNED (static_int_alignas);
-  CHECK_ALIGNED (static_int_Alignas);
   CHECK_ALIGNED (static_long_alignas);
-  CHECK_ALIGNED (static_long_Alignas);
 # ifdef INT64_MAX
   CHECK_ALIGNED (static_int64_t_alignas);
-  CHECK_ALIGNED (static_int64_t_Alignas);
 # endif
   CHECK_ALIGNED (static_float_alignas);
-  CHECK_ALIGNED (static_float_Alignas);
   CHECK_ALIGNED (static_double_alignas);
-  CHECK_ALIGNED (static_double_Alignas);
   /* CHECK_ALIGNED (static_longdouble_alignas); */
-  /* CHECK_ALIGNED (static_longdouble_Alignas); */
   CHECK_ALIGNED (static_struct1_alignas);
-  CHECK_ALIGNED (static_struct1_Alignas);
   CHECK_ALIGNED (static_struct2_alignas);
-  CHECK_ALIGNED (static_struct2_Alignas);
   CHECK_ALIGNED (static_struct3_alignas);
-  CHECK_ALIGNED (static_struct3_Alignas);
   CHECK_ALIGNED (static_struct4_alignas);
-  CHECK_ALIGNED (static_struct4_Alignas);
   return 0;
 #endif
 }
index fdbf6f5..b059439 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of optional automatic memory allocation.
-   Copyright (C) 2005, 2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2007, 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index d1313db..45492ac 100644 (file)
@@ -1,9 +1,9 @@
 /* Tests of areadlink.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -22,7 +22,6 @@
 
 #include <fcntl.h>
 #include <errno.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -38,7 +37,7 @@
 
 /* Wrapper for testing areadlink.  */
 static char *
-do_areadlink (char const *name, size_t ignored _GL_UNUSED)
+do_areadlink (char const *name, _GL_UNUSED size_t ignored)
 {
   return areadlink (name);
 }
index 65aeb59..32cae3f 100644 (file)
@@ -1,9 +1,9 @@
 /* Tests of areadlink and friends.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index a7ea67c..80aba52 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of exact or abbreviated match search.
-   Copyright (C) 1990, 1998-1999, 2001-2021 Free Software Foundation, Inc.
+   Copyright (C) 1990, 1998-1999, 2001-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
 
 #include <config.h>
 
+/* As of GCC 11.2.1, gcc -Wanalyzer-too-complex reports that main's
+   use of CHECK macros expands to code that is too complicated for gcc
+   -fanalyzer.  Suppress the resulting bogus warnings.  */
+#if 10 <= __GNUC__
+# pragma GCC diagnostic ignored "-Wanalyzer-null-argument"
+#endif
+
 #include "argmatch.h"
 
 #include <stdlib.h>
@@ -118,38 +125,63 @@ main (int argc, char *argv[])
       }                                                                 \
   } while (0)
 
+#define CHECK_EXACT(Input, Output)                                      \
+  do {                                                                  \
+    ASSERT (ARGMATCH_EXACT (Input, backup_args) == Output);             \
+  } while (0)
+
   /* Not found.  */
   CHECK ("klingon", -1);
+  CHECK_EXACT ("klingon", -1);
 
   /* Exact match.  */
   CHECK ("none", 1);
+  CHECK_EXACT ("none", 1);
   CHECK ("nil", 7);
+  CHECK_EXACT ("nil", 7);
 
   /* Too long.  */
   CHECK ("nilpotent", -1);
+  CHECK_EXACT ("nilpotent", -1);
 
   /* Abbreviated.  */
   CHECK ("simpl", 3);
+  CHECK_EXACT ("simpl", -1);
   CHECK ("simp", 3);
+  CHECK_EXACT ("simp", -1);
   CHECK ("sim", 3);
+  CHECK_EXACT ("sim", -1);
 
   /* Exact match and abbreviated.  */
   CHECK ("numbered", 9);
+  CHECK_EXACT ("numbered", 9);
   CHECK ("numbere", -2);
+  CHECK_EXACT ("numbere", -1);
   CHECK ("number", -2);
+  CHECK_EXACT ("number", -1);
   CHECK ("numbe", -2);
+  CHECK_EXACT ("numbe", -1);
   CHECK ("numb", -2);
+  CHECK_EXACT ("numb", -1);
   CHECK ("num", -2);
+  CHECK_EXACT ("num", -1);
   CHECK ("nu", -2);
+  CHECK_EXACT ("nu", -1);
   CHECK ("n", -2);
+  CHECK_EXACT ("n", -1);
 
   /* Ambiguous abbreviated.  */
   CHECK ("ne", -2);
+  CHECK_EXACT ("ne", -1);
 
   /* Ambiguous abbreviated, but same value ("single" and "simple").  */
   CHECK ("si", 3);
+  CHECK_EXACT ("si", -1);
   CHECK ("s", 3);
+  CHECK_EXACT ("s", -1);
+
 #undef CHECK
+#undef CHECK_EXACT
 
   argmatch_backup_usage (stdout);
 
index 10a27e1..a19192b 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of <arpa/inet.h> substitute.
-   Copyright (C) 2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
diff --git a/gnulib-tests/test-assert.c b/gnulib-tests/test-assert.c
new file mode 100644 (file)
index 0000000..1bb79ae
--- /dev/null
@@ -0,0 +1,71 @@
+/* Test assert.h and static_assert.
+   Copyright 2022-2023 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   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/>.  */
+
+/* Written by Paul Eggert.  */
+
+#include <config.h>
+
+#define STATIC_ASSERT_TESTS \
+  static_assert (2 + 2 == 4, "arithmetic does not work"); \
+  static_assert (2 + 2 == 4); \
+  static_assert (sizeof (char) == 1, "sizeof does not work"); \
+  static_assert (sizeof (char) == 1)
+
+STATIC_ASSERT_TESTS;
+
+static char const *
+assert (char const *p, int i)
+{
+  return p + i;
+}
+
+static char const *
+f (char const *p)
+{
+  return assert (p, 0);
+}
+
+#include <assert.h>
+
+STATIC_ASSERT_TESTS;
+
+static int
+g (void)
+{
+  assert (f ("this should work"));
+  return 0;
+}
+
+#define NDEBUG 1
+#include <assert.h>
+
+STATIC_ASSERT_TESTS;
+
+static int
+h (void)
+{
+  assert (f ("this should work"));
+  return 0;
+}
+
+int
+main (void)
+{
+  STATIC_ASSERT_TESTS;
+  g ();
+  h ();
+  return 0;
+}
index 7da8f8b..a474d37 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of binary mode I/O.
-   Copyright (C) 2005, 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2007-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index a177d94..7bc5aa0 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 tmpfiles=""
-trap 'rm -fr $tmpfiles' 1 2 3 15
+trap 'rm -fr $tmpfiles' HUP INT QUIT TERM
 
 tmpfiles="$tmpfiles t-bin-out0.tmp t-bin-out1.tmp"
 ${CHECKER} ./test-binary-io${EXEEXT} 1 > t-bin-out1.tmp || exit 1
index 8054e9d..98b3e5b 100644 (file)
@@ -1,9 +1,9 @@
 /* Test binding a server socket to a port.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 98d15e2..f92b31b 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of <bitrotate.h> substitute.
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 040abff..8a803e5 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of conversion of unibyte character to wide character.
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -39,6 +39,15 @@ main (int argc, char *argv[])
 
   ASSERT (btowc (EOF) == WEOF);
 
+#ifdef __ANDROID__
+  /* On Android ≥ 5.0, the default locale is the "C.UTF-8" locale, not the
+     "C" locale.  Furthermore, when you attempt to set the "C" or "POSIX"
+     locale via setlocale(), what you get is a "C" locale with UTF-8 encoding,
+     that is, effectively the "C.UTF-8" locale.  */
+  if (argc > 1 && strcmp (argv[1], "3") == 0 && MB_CUR_MAX > 1)
+    argv[1] = "2";
+#endif
+
   if (argc > 1)
     switch (argv[1][0])
       {
@@ -57,6 +66,25 @@ main (int argc, char *argv[])
         for (c = 0x80; c < 0x100; c++)
           ASSERT (btowc (c) == WEOF);
         return 0;
+
+      case '3':
+        /* C or POSIX locale.  */
+        for (c = 0; c < 0x100; c++)
+          if (c != 0)
+            {
+              /* We are testing all nonnull bytes.  */
+              wint_t wc = btowc (c);
+              /* POSIX:2018 says: "In the POSIX locale, btowc() shall not return
+                 WEOF if c has a value in the range 0 to 255 inclusive."  */
+              if (c < 0x80)
+                /* c is an ASCII character.  */
+                ASSERT (wc == c);
+              else
+                /* On most platforms, the bytes 0x80..0xFF map to U+0080..U+00FF.
+                   But on musl libc, the bytes 0x80..0xFF map to U+DF80..U+DFFF.  */
+                ASSERT (wc == c || wc == 0xDF00 + c);
+            }
+        return 0;
       }
 
   return 1;
index ab4b287..e51e1c5 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 # Test in an ISO-8859-1 or ISO-8859-15 locale.
-: ${LOCALE_FR=fr_FR}
+: "${LOCALE_FR=fr_FR}"
 if test $LOCALE_FR = none; then
   if test -f /usr/bin/localedef; then
     echo "Skipping test: no traditional french locale is installed"
index d7d4d9c..9f38f4e 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 # Test whether a specific UTF-8 locale is installed.
-: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+: "${LOCALE_FR_UTF8=fr_FR.UTF-8}"
 if test $LOCALE_FR_UTF8 = none; then
   if test -f /usr/bin/localedef; then
     echo "Skipping test: no french Unicode locale is installed"
diff --git a/gnulib-tests/test-btowc3.sh b/gnulib-tests/test-btowc3.sh
new file mode 100755 (executable)
index 0000000..ee9e143
--- /dev/null
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+# Test whether the POSIX locale has encoding errors.
+LC_ALL=C \
+${CHECKER} ./test-btowc${EXEEXT} 3 || exit 1
+LC_ALL=POSIX \
+${CHECKER} ./test-btowc${EXEEXT} 3 || exit 1
+
+exit 0
index 2077eb4..ad306b6 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of character handling in C locale.
-   Copyright (C) 2005, 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2007-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 2c5a49a..2f689d9 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of c-stack module.
-   Copyright (C) 2002, 2004, 2006, 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2004, 2006, 2008-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 54009d3..f0bec55 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 tmpfiles=""
-trap 'rm -fr $tmpfiles' 1 2 3 15
+trap 'rm -fr $tmpfiles' HUP INT QUIT TERM
 
 tmpfiles="t-c-stack.tmp"
 ${CHECKER} ./test-c-stack${EXEEXT} 2> t-c-stack.tmp
index 7f03593..b7f8b26 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 tmpfiles=""
-trap 'rm -fr $tmpfiles' 1 2 3 15
+trap 'rm -fr $tmpfiles' HUP INT QUIT TERM
 
 tmpfiles="t-c-stack2.tmp"
 
index 14bdfb2..9f491e0 100755 (executable)
@@ -5,14 +5,14 @@ ${CHECKER} ./test-c-strcasecmp${EXEEXT} || exit 1
 ${CHECKER} ./test-c-strncasecmp${EXEEXT} || exit 1
 
 # Test in an ISO-8859-1 or ISO-8859-15 locale.
-: ${LOCALE_FR=fr_FR}
+: "${LOCALE_FR=fr_FR}"
 if test $LOCALE_FR != none; then
   LC_ALL=$LOCALE_FR ${CHECKER} ./test-c-strcasecmp${EXEEXT} locale || exit 1
   LC_ALL=$LOCALE_FR ${CHECKER} ./test-c-strncasecmp${EXEEXT} locale || exit 1
 fi
 
 # Test in a Turkish UTF-8 locale.
-: ${LOCALE_TR_UTF8=tr_TR.UTF-8}
+: "${LOCALE_TR_UTF8=tr_TR.UTF-8}"
 if test $LOCALE_TR_UTF8 != none; then
   LC_ALL=$LOCALE_TR_UTF8 ${CHECKER} ./test-c-strcasecmp${EXEEXT} locale || exit 1
   LC_ALL=$LOCALE_TR_UTF8 ${CHECKER} ./test-c-strncasecmp${EXEEXT} locale || exit 1
index cc2efb0..ad33a68 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of case-insensitive string comparison function.
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
diff --git a/gnulib-tests/test-c-strcasestr.c b/gnulib-tests/test-c-strcasestr.c
new file mode 100644 (file)
index 0000000..4f0a6c2
--- /dev/null
@@ -0,0 +1,272 @@
+/* Test of case-insensitive searching in a string.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   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/>.  */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007.  */
+
+#include <config.h>
+
+#include "c-strcasestr.h"
+
+#include <stdlib.h>
+#include <string.h>
+
+#include "macros.h"
+
+int
+main ()
+{
+  {
+    const char input[] = "foo";
+    const char *result = c_strcasestr (input, "");
+    ASSERT (result == input);
+  }
+
+  {
+    const char input[] = "foo";
+    const char *result = c_strcasestr (input, "O");
+    ASSERT (result == input + 1);
+  }
+
+  {
+    const char input[] = "ABC ABCDAB ABCDABCDABDE";
+    const char *result = c_strcasestr (input, "ABCDaBD");
+    ASSERT (result == input + 15);
+  }
+
+  {
+    const char input[] = "ABC ABCDAB ABCDABCDABDE";
+    const char *result = c_strcasestr (input, "ABCDaBE");
+    ASSERT (result == NULL);
+  }
+
+  {
+    const char input[] = "ABC ABCDAB ABCDABCDABDE";
+    const char *result = c_strcasestr (input, "ABCDaBCD");
+    ASSERT (result == input + 11);
+  }
+
+  /* Check that a long periodic needle does not cause false positives.  */
+  {
+    const char input[] = "F_BD_CE_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD"
+                         "_C3_88_20_EF_BF_BD_EF_BF_BD_EF_BF_BD"
+                         "_C3_A7_20_EF_BF_BD";
+    const char need[] = "_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD";
+    const char *result = c_strcasestr (input, need);
+    ASSERT (result == NULL);
+  }
+  {
+    const char input[] = "F_BD_CE_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD"
+                         "_C3_88_20_EF_BF_BD_EF_BF_BD_EF_BF_BD"
+                         "_C3_A7_20_EF_BF_BD_DA_B5_C2_A6_20"
+                         "_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD";
+    const char need[] = "_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD";
+    const char *result = c_strcasestr (input, need);
+    ASSERT (result == input + 115);
+  }
+
+  /* Check that a very long haystack is handled quickly if the needle is
+     short and occurs near the beginning.  */
+  {
+    size_t repeat = 10000;
+    size_t m = 1000000;
+    const char *needle =
+      "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
+      "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaaaaaAAAAaaaaaaa"
+      "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
+    char *haystack = (char *) malloc (m + 1);
+    if (haystack != NULL)
+      {
+        memset (haystack, 'A', m);
+        haystack[0] = 'B';
+        haystack[m] = '\0';
+
+        for (; repeat > 0; repeat--)
+          {
+            ASSERT (c_strcasestr (haystack, needle) == haystack + 1);
+          }
+
+        free (haystack);
+      }
+  }
+
+  /* Check that a very long needle is discarded quickly if the haystack is
+     short.  */
+  {
+    size_t repeat = 10000;
+    size_t m = 1000000;
+    const char *haystack =
+      "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
+      "ABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB";
+    char *needle = (char *) malloc (m + 1);
+    if (needle != NULL)
+      {
+        memset (needle, 'A', m);
+        needle[m] = '\0';
+
+        for (; repeat > 0; repeat--)
+          {
+            ASSERT (c_strcasestr (haystack, needle) == NULL);
+          }
+
+        free (needle);
+      }
+  }
+
+  /* Check that the asymptotic worst-case complexity is not quadratic.  */
+  {
+    size_t m = 1000000;
+    char *haystack = (char *) malloc (2 * m + 2);
+    char *needle = (char *) malloc (m + 2);
+    if (haystack != NULL && needle != NULL)
+      {
+        const char *result;
+
+        memset (haystack, 'A', 2 * m);
+        haystack[2 * m] = 'B';
+        haystack[2 * m + 1] = '\0';
+
+        memset (needle, 'a', m);
+        needle[m] = 'B';
+        needle[m + 1] = '\0';
+
+        result = c_strcasestr (haystack, needle);
+        ASSERT (result == haystack + m);
+      }
+    free (needle);
+    free (haystack);
+  }
+
+  {
+    /* Ensure that with a barely periodic "short" needle, c_strcasestr's
+       search does not mistakenly skip just past the match point.
+       This use of c_strcasestr would mistakenly return NULL before
+       gnulib v0.0-4927.  */
+    const char *haystack =
+      "\n"
+      "with_build_libsubdir\n"
+      "with_local_prefix\n"
+      "with_gxx_include_dir\n"
+      "with_cpp_install_dir\n"
+      "enable_generated_files_in_srcdir\n"
+      "with_gnu_ld\n"
+      "with_ld\n"
+      "with_demangler_in_ld\n"
+      "with_gnu_as\n"
+      "with_as\n"
+      "enable_largefile\n"
+      "enable_werror_always\n"
+      "enable_checking\n"
+      "enable_coverage\n"
+      "enable_gather_detailed_mem_stats\n"
+      "enable_build_with_cxx\n"
+      "with_stabs\n"
+      "enable_multilib\n"
+      "enable___cxa_atexit\n"
+      "enable_decimal_float\n"
+      "enable_fixed_point\n"
+      "enable_threads\n"
+      "enable_tls\n"
+      "enable_objc_gc\n"
+      "with_dwarf2\n"
+      "enable_shared\n"
+      "with_build_sysroot\n"
+      "with_sysroot\n"
+      "with_specs\n"
+      "with_pkgversion\n"
+      "with_bugurl\n"
+      "enable_languages\n"
+      "with_multilib_list\n";
+    const char *needle = "\n"
+      "with_GNU_ld\n";
+    const char* p = c_strcasestr (haystack, needle);
+    ASSERT (p - haystack == 114);
+  }
+
+  {
+    /* Same bug, shorter trigger.  */
+    const char *haystack = "..wi.D.";
+    const char *needle = ".d.";
+    const char* p = c_strcasestr (haystack, needle);
+    ASSERT (p - haystack == 4);
+  }
+
+  {
+    /* Like the above, but trigger the flaw in two_way_long_needle
+       by using a needle of length LONG_NEEDLE_THRESHOLD (32) or greater.
+       Rather than trying to find the right alignment manually, I've
+       arbitrarily chosen the following needle and template for the
+       haystack, and ensure that for each placement of the needle in
+       that haystack, c_strcasestr finds it.  */
+    const char *needle = "\nwith_gnu_ld-extend-to-len-32-b\n";
+    const char *h =
+      "\n"
+      "with_build_libsubdir\n"
+      "with_local_prefix\n"
+      "with_gxx_include_dir\n"
+      "with_cpp_install_dir\n"
+      "with_e_\n"
+      "..............................\n"
+      "with_FGHIJKLMNOPQRSTUVWXYZ\n"
+      "with_567890123456789\n"
+      "with_multilib_list\n";
+    size_t h_len = strlen (h);
+    char *haystack = malloc (h_len + 1);
+    size_t i;
+    ASSERT (haystack);
+    for (i = 0; i < h_len - strlen (needle); i++)
+      {
+        const char *p;
+        memcpy (haystack, h, h_len + 1);
+        memcpy (haystack + i, needle, strlen (needle) + 1);
+        p = c_strcasestr (haystack, needle);
+        ASSERT (p);
+        ASSERT (p - haystack == i);
+      }
+    free (haystack);
+  }
+
+  /* Test case from Yves Bastide.
+     <https://www.openwall.com/lists/musl/2014/04/18/2>  */
+  {
+    const char input[] = "playing PLAY play PLAY always";
+    const char *result = c_strcasestr (input, "play PLAY play");
+    ASSERT (result == input + 8);
+  }
+
+  /* Test long needles.  */
+  {
+    size_t m = 1024;
+    char *haystack = (char *) malloc (2 * m + 1);
+    char *needle = (char *) malloc (m + 1);
+    if (haystack != NULL && needle != NULL)
+      {
+        const char *p;
+        haystack[0] = 'x';
+        memset (haystack + 1, ' ', m - 1);
+        memset (haystack + m, 'x', m);
+        haystack[2 * m] = '\0';
+        memset (needle, 'X', m);
+        needle[m] = '\0';
+        p = c_strcasestr (haystack, needle);
+        ASSERT (p);
+        ASSERT (p - haystack == m);
+      }
+    free (needle);
+    free (haystack);
+  }
+
+  return 0;
+}
index 6cbdce0..c8501a2 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of case-insensitive string comparison function.
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index a98a75f..fd72c44 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of calloc function.
-   Copyright (C) 2010-2021 Free Software Foundation, Inc.
+   Copyright (C) 2010-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -63,7 +63,7 @@ main ()
         ASSERT (p == NULL);
         ASSERT (errno == ENOMEM);
 
-       p = calloc (SIZE_MAX / n + 1, identity (n));
+        p = calloc (SIZE_MAX / n + 1, identity (n));
         ASSERT (p == NULL);
         ASSERT (errno == ENOMEM);
       }
index 660e455..e8c8eb6 100644 (file)
@@ -1,9 +1,9 @@
 /* Test duplicating non-inheritable file descriptors.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 992475f..9e3ec86 100644 (file)
@@ -1,9 +1,9 @@
 /* Test closing a file or socket.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 5e2905b..84b1367 100644 (file)
@@ -1,9 +1,9 @@
 /* Test connecting a client socket.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 43256a4..3b385fd 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of <ctype.h> substitute.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 3f90e17..bebd732 100644 (file)
@@ -1,9 +1,9 @@
 /* Test the gnulib dirname module.
-   Copyright (C) 2005-2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2005-2007, 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -18,7 +18,6 @@
 
 #include "dirname.h"
 
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
index 6c2e65e..8acbc03 100644 (file)
@@ -1,9 +1,9 @@
 /* Test duplicating file descriptors.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -50,6 +50,12 @@ SIGNATURE_CHECK (dup2, int, (int, int));
 
 #include "macros.h"
 
+/* Tell GCC not to warn about the specific edge cases tested here.  */
+#if __GNUC__ >= 13
+# pragma GCC diagnostic ignored "-Wanalyzer-fd-leak"
+# pragma GCC diagnostic ignored "-Wanalyzer-fd-use-without-check"
+#endif
+
 /* Return non-zero if FD is open.  */
 static int
 is_open (int fd)
index c3f9a29..b462416 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of type-safe arrays that grow dynamically.
-   Copyright (C) 2021 Free Software Foundation, Inc.
+   Copyright (C) 2021-2023 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 2935e43..3df1f0f 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of environ variable.
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 59c5344..c665e28 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of <errno.h> substitute.
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
diff --git a/gnulib-tests/test-error.c b/gnulib-tests/test-error.c
new file mode 100644 (file)
index 0000000..697e783
--- /dev/null
@@ -0,0 +1,88 @@
+/* Test of error.h functions.
+   Copyright (C) 2023 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   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/>.  */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2023.  */
+
+#include <config.h>
+
+#include "error.h"
+
+#include <errno.h>
+
+#include "macros.h"
+
+/* Custom function to not show the program name in error messages.  */
+static void
+print_no_progname (void)
+{
+}
+
+int
+main (int argc, char *argv[])
+{
+  /* Test error() function with zero STATUS and zero ERRNUM.  */
+  error (0, 0, "bummer");
+  /* With format string arguments.  */
+  errno = EINVAL; /* should be ignored */
+  error (0, 0, "Zonk %d%d%d is too large", 1, 2, 3);
+  /* With non-ASCII characters.  */
+  error (0, 0, "Pokémon started");
+  /* Verify error_message_count.  */
+  ASSERT (error_message_count == 3);
+
+  /* Test error_at_line() function with zero STATUS and zero ERRNUM.  */
+  error_at_line (0, 0, "d1/foo.c", 10, "invalid blub");
+  error_at_line (0, 0, "d1/foo.c", 10, "invalid blarn");
+  /* Verify error_message_count.  */
+  ASSERT (error_message_count == 5);
+
+  /* Test error_one_per_line.  */
+  error_one_per_line = 1;
+  error_at_line (0, 0, "d1/foo.c", 10, "unsupported glink");
+  /* Another line number.  */
+  error_at_line (0, 0, "d1/foo.c", 13, "invalid brump");
+  /* Another file name.  */
+  error_at_line (0, 0, "d2/foo.c", 13, "unsupported flinge");
+  /* Same file name and same line number => message not shown.  */
+  error_at_line (0, 0, "d2/foo.c", 13, "invalid bark");
+  /* Verify error_message_count.  */
+  ASSERT (error_message_count == 8);
+  error_one_per_line = 0;
+
+  /* Test error_print_progname.  */
+  error_print_progname = print_no_progname;
+  error (0, 0, "hammer");
+  error (0, 0, "boing %d%d%d is too large", 1, 2, 3);
+  #if 0
+  /* The documentation does not describe the output if the file name is NULL. */
+  error_at_line (0, 0, NULL, 42, "drummer too loud");
+  #endif
+  error_at_line (0, 0, "d2/bar.c", 11, "bark too loud");
+  /* Verify error_message_count.  */
+  ASSERT (error_message_count == 11);
+  error_print_progname = NULL;
+
+  /* Test error() function with nonzero ERRNUM.  */
+  errno = EINVAL; /* should be ignored */
+  error (0, EACCES, "can't steal");
+  /* Verify error_message_count.  */
+  ASSERT (error_message_count == 12);
+
+  /* Test error() function with nonzero STATUS.  */
+  error (4, 0, "fatal error");
+
+  return 0;
+}
diff --git a/gnulib-tests/test-error.sh b/gnulib-tests/test-error.sh
new file mode 100755 (executable)
index 0000000..d173e18
--- /dev/null
@@ -0,0 +1,36 @@
+#!/bin/sh
+# Test of the 'error' module.
+
+. "${srcdir=.}/init.sh"; path_prepend_ .
+
+${CHECKER} test-error${EXEEXT} > out 2> err
+# Verify the exit code.
+case $? in
+  4) ;;
+  *) Exit 1;;
+esac
+
+# Normalize the stderr output on Windows platforms.
+tr -d '\015' < err | sed 's,.*test-error[.ex]*:,test-error:,' > err2 || Exit 1
+
+# Verify the stderr output.
+compare - err2 <<\EOF || Exit 1
+test-error: bummer
+test-error: Zonk 123 is too large
+test-error: Pokémon started
+test-error:d1/foo.c:10: invalid blub
+test-error:d1/foo.c:10: invalid blarn
+test-error:d1/foo.c:10: unsupported glink
+test-error:d1/foo.c:13: invalid brump
+test-error:d2/foo.c:13: unsupported flinge
+hammer
+boing 123 is too large
+d2/bar.c:11: bark too loud
+test-error: can't steal: Permission denied
+test-error: fatal error
+EOF
+
+# Verify the stdout output.
+test -s out && Exit 1
+
+Exit 0
index 1f4baf3..5a81cab 100644 (file)
@@ -1,10 +1,10 @@
 /* Test suite for exclude.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
    This file is part of the GNUlib Library.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   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,
@@ -20,7 +20,6 @@
 #include <stdlib.h>
 #include <errno.h>
 #include <string.h>
-#include <stdbool.h>
 #include <fnmatch.h>
 
 #include "exclude.h"
index 613994c..9aca1d8 100755 (executable)
@@ -1,11 +1,11 @@
 #! /bin/sh
 # Test suite for exclude.
-# Copyright (C) 2009-2021 Free Software Foundation, Inc.
+# Copyright (C) 2009-2023 Free Software Foundation, Inc.
 # This file is part of the GNUlib Library.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
+# 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,
index a0d078d..ff7ced0 100755 (executable)
@@ -1,11 +1,11 @@
 #! /bin/sh
 # Test suite for exclude.
-# Copyright (C) 2009-2021 Free Software Foundation, Inc.
+# Copyright (C) 2009-2023 Free Software Foundation, Inc.
 # This file is part of the GNUlib Library.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
+# 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,
index 3c6c9a9..97744dc 100755 (executable)
@@ -1,11 +1,11 @@
 #! /bin/sh
 # Test suite for exclude.
-# Copyright (C) 2009-2021 Free Software Foundation, Inc.
+# Copyright (C) 2009-2023 Free Software Foundation, Inc.
 # This file is part of the GNUlib Library.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
+# 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,
index 8fa1405..998dae0 100755 (executable)
@@ -1,11 +1,11 @@
 #! /bin/sh
 # Test suite for exclude.
-# Copyright (C) 2009-2021 Free Software Foundation, Inc.
+# Copyright (C) 2009-2023 Free Software Foundation, Inc.
 # This file is part of the GNUlib Library.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
+# 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,
index 86dfc49..f386df8 100755 (executable)
@@ -1,11 +1,11 @@
 #! /bin/sh
 # Test suite for exclude.
-# Copyright (C) 2009-2021 Free Software Foundation, Inc.
+# Copyright (C) 2009-2023 Free Software Foundation, Inc.
 # This file is part of the GNUlib Library.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
+# 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,
index 87dfe3a..8362b01 100755 (executable)
@@ -1,11 +1,11 @@
 #! /bin/sh
 # Test suite for exclude.
-# Copyright (C) 2009-2021 Free Software Foundation, Inc.
+# Copyright (C) 2009-2023 Free Software Foundation, Inc.
 # This file is part of the GNUlib Library.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
+# 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,
index ed09185..08f67ef 100755 (executable)
@@ -1,11 +1,11 @@
 #! /bin/sh
 # Test suite for exclude.
-# Copyright (C) 2009-2021 Free Software Foundation, Inc.
+# Copyright (C) 2009-2023 Free Software Foundation, Inc.
 # This file is part of the GNUlib Library.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
+# 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,
index e4f6791..a2e007d 100755 (executable)
@@ -1,11 +1,11 @@
 #! /bin/sh
 # Test suite for exclude.
-# Copyright (C) 2010-2021 Free Software Foundation, Inc.
+# Copyright (C) 2010-2023 Free Software Foundation, Inc.
 # This file is part of the GNUlib Library.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
+# 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,
index ab25cf7..c255213 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of <fcntl.h> substitute.
-   Copyright (C) 2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index cb834b4..5fb554a 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of fcntl(2).
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -27,7 +27,6 @@ SIGNATURE_CHECK (fcntl, int, (int, int, ...));
 /* Helpers.  */
 #include <errno.h>
 #include <stdarg.h>
-#include <stdbool.h>
 #include <unistd.h>
 
 #if defined _WIN32 && ! defined __CYGWIN__
@@ -45,6 +44,12 @@ SIGNATURE_CHECK (fcntl, int, (int, int, ...));
 #include "binary-io.h"
 #include "macros.h"
 
+/* Tell GCC not to warn about the specific edge cases tested here.  */
+#if __GNUC__ >= 13
+# pragma GCC diagnostic ignored "-Wanalyzer-fd-leak"
+# pragma GCC diagnostic ignored "-Wanalyzer-va-arg-type-mismatch"
+#endif
+
 #if !O_BINARY
 # define set_binary_mode(f,m) zero ()
 static int zero (void) { return 0; }
index 86793bc..cf28f8e 100644 (file)
@@ -1,9 +1,9 @@
 /* Test opening a stream with a file descriptor.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -33,9 +33,14 @@ main (void)
      failure, since the behavior is not well-defined on invalid file
      descriptors, so try fdopen 1000 times and if that's not enough to
      fail due to EMFILE, so be it.  */
+  #if defined __ANDROID__ /* fdsan */
+    #define COUNT 1
+  #else
+    #define COUNT 1000
+  #endif
 
   int i;
-  for (i = 0; i < 1000; i++)
+  for (i = 0; i < COUNT; i++)
     {
       errno = 0;
       if (! fdopen (STDOUT_FILENO, "w"))
index 6faae5c..c8c65f5 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of fgetc() function.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3, or (at your option)
+   the Free Software Foundation, either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -54,6 +54,7 @@ main (int argc, char **argv)
 
   /* Test that fgetc() sets errno if someone else closes the stream
      fd behind the back of stdio.  */
+  #if !defined __ANDROID__ /* fdsan */
   {
     FILE *fp = fopen (filename, "r");
     ASSERT (fp != NULL);
@@ -64,6 +65,7 @@ main (int argc, char **argv)
     ASSERT (ferror (fp));
     fclose (fp);
   }
+  #endif
 
   /* Test that fgetc() sets errno if the stream was constructed with
      an invalid file descriptor.  */
index 384342d..8cc5f94 100644 (file)
@@ -1,10 +1,10 @@
 /* Test of concatenation of two arbitrary file names.
 
-   Copyright (C) 1996-2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 1996-2007, 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -23,7 +23,6 @@
 
 #include "idx.h"
 
-#include <stdbool.h>
 #include <stddef.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -31,7 +30,7 @@
 
 
 int
-main (int argc _GL_UNUSED, char *argv[])
+main (_GL_UNUSED int argc, char *argv[])
 {
   static char const *const tests[][3] =
     {
index f79e819..07c3ad1 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of <float.h> substitute.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
 
 #include <float.h>
 
-#include "fpucw.h"
-#include "macros.h"
-
 /* Check that FLT_RADIX is a constant expression.  */
 int a[] = { FLT_RADIX };
 
+/* ----------------------- Check macros for 'float' ----------------------- */
+
+/* Check that the FLT_* macros expand to constant expressions.  */
+int fb[] =
+  {
+    FLT_MANT_DIG, FLT_MIN_EXP, FLT_MAX_EXP,
+    FLT_DIG, FLT_MIN_10_EXP, FLT_MAX_10_EXP
+  };
+float fc[] = { FLT_EPSILON, FLT_MIN, FLT_MAX };
+
+/* ----------------------- Check macros for 'double' ----------------------- */
+
+/* Check that the DBL_* macros expand to constant expressions.  */
+int db[] =
+  {
+    DBL_MANT_DIG, DBL_MIN_EXP, DBL_MAX_EXP,
+    DBL_DIG, DBL_MIN_10_EXP, DBL_MAX_10_EXP
+  };
+double dc[] = { DBL_EPSILON, DBL_MIN, DBL_MAX };
+
+/* -------------------- Check macros for 'long double' -------------------- */
+
+/* Check that the LDBL_* macros expand to constant expressions.  */
+int lb[] =
+  {
+    LDBL_MANT_DIG, LDBL_MIN_EXP, LDBL_MAX_EXP,
+    LDBL_DIG, LDBL_MIN_10_EXP, LDBL_MAX_10_EXP
+  };
+long double lc1 = LDBL_EPSILON;
+long double lc2 = LDBL_MIN;
+#if 0 /* LDBL_MAX is not a constant expression on some platforms.  */
+long double lc3 = LDBL_MAX;
+#endif
+
+/* ------------------------------------------------------------------------- */
+
+#include "fpucw.h"
+#include "macros.h"
+
 #if FLT_RADIX == 2
 
 /* Return 2^n.  */
@@ -117,14 +153,6 @@ pow2l (int n)
 
 /* ----------------------- Check macros for 'float' ----------------------- */
 
-/* Check that the FLT_* macros expand to constant expressions.  */
-int fb[] =
-  {
-    FLT_MANT_DIG, FLT_MIN_EXP, FLT_MAX_EXP,
-    FLT_DIG, FLT_MIN_10_EXP, FLT_MAX_10_EXP
-  };
-float fc[] = { FLT_EPSILON, FLT_MIN, FLT_MAX };
-
 static void
 test_float (void)
 {
@@ -196,14 +224,6 @@ test_float (void)
 
 /* ----------------------- Check macros for 'double' ----------------------- */
 
-/* Check that the DBL_* macros expand to constant expressions.  */
-int db[] =
-  {
-    DBL_MANT_DIG, DBL_MIN_EXP, DBL_MAX_EXP,
-    DBL_DIG, DBL_MIN_10_EXP, DBL_MAX_10_EXP
-  };
-double dc[] = { DBL_EPSILON, DBL_MIN, DBL_MAX };
-
 static void
 test_double (void)
 {
@@ -275,18 +295,6 @@ test_double (void)
 
 /* -------------------- Check macros for 'long double' -------------------- */
 
-/* Check that the LDBL_* macros expand to constant expressions.  */
-int lb[] =
-  {
-    LDBL_MANT_DIG, LDBL_MIN_EXP, LDBL_MAX_EXP,
-    LDBL_DIG, LDBL_MIN_10_EXP, LDBL_MAX_10_EXP
-  };
-long double lc1 = LDBL_EPSILON;
-long double lc2 = LDBL_MIN;
-#if 0 /* LDBL_MAX is not a constant expression on some platforms.  */
-long double lc3 = LDBL_MAX;
-#endif
-
 static void
 test_long_double (void)
 {
index 86246fd..e26b640 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of <fnmatch.h> substitute.
-   Copyright (C) 2018-2021 Free Software Foundation, Inc.
+   Copyright (C) 2018-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index ae7fc8a..3777aa2 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of fnmatch string matching function.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -28,29 +28,27 @@ SIGNATURE_CHECK (fnmatch, int, (char const *, char const *, int));
 int
 main ()
 {
-  int res;
+  ASSERT (fnmatch ("", "", 0) == 0);
 
-  ASSERT (res = fnmatch ("", "", 0) == 0);
+  ASSERT (fnmatch ("*", "", 0) == 0);
+  ASSERT (fnmatch ("*", "foo", 0) == 0);
+  ASSERT (fnmatch ("*", "bar", 0) == 0);
+  ASSERT (fnmatch ("*", "*", 0) == 0);
+  ASSERT (fnmatch ("**", "f", 0) == 0);
+  ASSERT (fnmatch ("**", "foo.txt", 0) == 0);
+  ASSERT (fnmatch ("*.*", "foo.txt", 0) == 0);
 
-  ASSERT (res = fnmatch ("*", "", 0) == 0);
-  ASSERT (res = fnmatch ("*", "foo", 0) == 0);
-  ASSERT (res = fnmatch ("*", "bar", 0) == 0);
-  ASSERT (res = fnmatch ("*", "*", 0) == 0);
-  ASSERT (res = fnmatch ("**", "f", 0) == 0);
-  ASSERT (res = fnmatch ("**", "foo.txt", 0) == 0);
-  ASSERT (res = fnmatch ("*.*", "foo.txt", 0) == 0);
+  ASSERT (fnmatch ("foo*.txt", "foobar.txt", 0) == 0);
 
-  ASSERT (res = fnmatch ("foo*.txt", "foobar.txt", 0) == 0);
-
-  ASSERT (res = fnmatch ("foo.txt", "foo.txt", 0) == 0);
-  ASSERT (res = fnmatch ("foo\\.txt", "foo.txt", 0) == 0);
-  ASSERT (res = fnmatch ("foo\\.txt", "foo.txt", FNM_NOESCAPE) == FNM_NOMATCH);
+  ASSERT (fnmatch ("foo.txt", "foo.txt", 0) == 0);
+  ASSERT (fnmatch ("foo\\.txt", "foo.txt", 0) == 0);
+  ASSERT (fnmatch ("foo\\.txt", "foo.txt", FNM_NOESCAPE) == FNM_NOMATCH);
 
   /* Verify that an unmatched [ is treated as a literal, as POSIX
      requires.  This test ensures that glibc Bugzilla bug #12378 stays
      fixed.
    */
-  ASSERT (res = fnmatch ("[/b", "[/b", 0) == 0);
+  ASSERT (fnmatch ("[/b", "[/b", 0) == 0);
 
   ASSERT (fnmatch ("[[:alpha:]'[:alpha:]\0]", "a", 0) == FNM_NOMATCH);
   ASSERT (fnmatch ("[a[.\0.]]", "a", 0) == FNM_NOMATCH);
index 26c5762..1fa8824 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of opening a file stream.
-   Copyright (C) 2020-2021 Free Software Foundation, Inc.
+   Copyright (C) 2020-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index f69a13a..17984e0 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of opening a file stream.
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index b6a3dcb..751afd8 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of opening a file stream.
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
 
 #include "macros.h"
 
+/* Tell GCC not to warn about the specific edge cases tested here.  */
+#if __GNUC__ >= 10
+# pragma GCC diagnostic ignored "-Wanalyzer-file-leak"
+#endif
+
 /* Test fopen.  Assumes BASE is defined.  */
 
 static int
index 47bb844..3a9e7c3 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of fputc() function.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3, or (at your option)
+   the Free Software Foundation, either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -45,6 +45,7 @@ main (int argc, char **argv)
 
   /* Test that fputc() on an unbuffered stream sets errno if someone else
      closes the stream fd behind the back of stdio.  */
+  #if !defined __ANDROID__ /* fdsan */
   {
     FILE *fp = fopen (filename, "w");
     ASSERT (fp != NULL);
@@ -56,6 +57,7 @@ main (int argc, char **argv)
     ASSERT (ferror (fp));
     fclose (fp);
   }
+  #endif
 
   /* Test that fputc() on an unbuffered stream sets errno if the stream
      was constructed with an invalid file descriptor.  */
index f8214ca..d6d16ec 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of fread() function.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3, or (at your option)
+   the Free Software Foundation, either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -54,6 +54,7 @@ main (int argc, char **argv)
 
   /* Test that fread() sets errno if someone else closes the stream
      fd behind the back of stdio.  */
+  #if !defined __ANDROID__ /* fdsan */
   {
     FILE *fp = fopen (filename, "r");
     char buf[5];
@@ -65,6 +66,7 @@ main (int argc, char **argv)
     ASSERT (ferror (fp));
     fclose (fp);
   }
+  #endif
 
   /* Test that fread() sets errno if the stream was constructed with
      an invalid file descriptor.  */
index 53f1085..c530e86 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of free() function.
-   Copyright (C) 2020-2021 Free Software Foundation, Inc.
+   Copyright (C) 2020-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index bbe551e..11efa5f 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of opening a file stream.
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 0d78e17..59c2dc4 100644 (file)
@@ -1,9 +1,9 @@
 /* Tests of fstat() function.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index d11b8eb..bcd6393 100644 (file)
@@ -1,9 +1,9 @@
 /* Test truncating a file.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 17e80bd..503e849 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of fwrite() function.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3, or (at your option)
+   the Free Software Foundation, either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -45,6 +45,7 @@ main (int argc, char **argv)
 
   /* Test that fwrite() on an unbuffered stream sets errno if someone else
      closes the stream fd behind the back of stdio.  */
+  #if !defined __ANDROID__ /* fdsan */
   {
     FILE *fp = fopen (filename, "w");
     char buf[5] = "world";
@@ -57,6 +58,7 @@ main (int argc, char **argv)
     ASSERT (ferror (fp));
     fclose (fp);
   }
+  #endif
 
   /* Test that fwrite() on an unbuffered stream sets errno if the stream
      was constructed with an invalid file descriptor.  */
index 17080d9..821244f 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of getcwd() function.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index d56c682..d2c93f1 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of getdtablesize() function.
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -25,6 +25,11 @@ SIGNATURE_CHECK (getdtablesize, int, (void));
 
 #include "macros.h"
 
+/* Tell GCC not to warn about the specific edge cases tested here.  */
+#if __GNUC__ >= 13
+# pragma GCC diagnostic ignored "-Wanalyzer-fd-leak"
+#endif
+
 int
 main (int argc, char *argv[])
 {
index fe1ab3c..8289a3c 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of command line argument processing.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index c86dc8d..510685d 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of command line argument processing.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 26d5764..f933b38 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of command line argument processing.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 5cc9d8c..781acc1 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of command line argument processing.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -16,7 +16,6 @@
 
 /* Written by Bruno Haible <bruno@clisp.org>, 2009.  */
 
-#include <stdbool.h>
 
 /* The glibc/gnulib implementation of getopt supports setting optind =
    0, but not all other implementations do.  This matters for getopt.
index 5e3c50a..c686aed 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of command line argument processing.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 21eb338..168c0cb 100644 (file)
@@ -1,9 +1,9 @@
 /* Test the gnulib getprogname module.
-   Copyright (C) 2016-2021 Free Software Foundation, Inc.
+   Copyright (C) 2016-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -16,7 +16,8 @@
 
 #include <config.h>
 
-#include "getprogname.h"
+#include <stdlib.h>
+
 #include <string.h>
 #include <assert.h>
 
index 73abe6b..4670118 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of getting random bytes.
-   Copyright (C) 2020-2021 Free Software Foundation, Inc.
+   Copyright (C) 2020-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index f9139d0..d1d5206 100644 (file)
@@ -1,10 +1,9 @@
 /*
- * Copyright (C) 2005, 2007, 2009-2021 Free Software Foundation, Inc.
- * Written by Jim Meyering.
+ * Copyright (C) 2005, 2007, 2009-2023 Free Software Foundation, Inc.
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
+ * the Free Software Foundation, either version 3 of the License, or
  * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
@@ -15,6 +14,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/>.  */
 
+/* Written by Jim Meyering and Bruno Haible.  */
+
 #include <config.h>
 
 #include <sys/time.h>
@@ -26,10 +27,13 @@ SIGNATURE_CHECK (gettimeofday, int,
 #include <time.h>
 
 #include <stdio.h>
+#include <stdlib.h>
 #include <string.h>
 
-int
-main (void)
+#include "macros.h"
+
+static void
+test_clobber ()
 {
   time_t t = 0;
   struct tm *lt;
@@ -41,7 +45,44 @@ main (void)
   if (memcmp (lt, &saved_lt, sizeof (struct tm)) != 0)
     {
       fprintf (stderr, "gettimeofday still clobbers the localtime buffer!\n");
-      return 1;
+      exit (1);
     }
+}
+
+static void
+test_consistency ()
+{
+  struct timeval tv1;
+  time_t tt2;
+  struct timeval tv3;
+  time_t tt4;
+
+  ASSERT (gettimeofday (&tv1, NULL) == 0);
+  tt2 = time (NULL);
+  ASSERT (gettimeofday (&tv3, NULL) == 0);
+  tt4 = time (NULL);
+
+  /* Verify monotonicity of gettimeofday().  */
+  ASSERT (tv1.tv_sec < tv3.tv_sec
+          || (tv1.tv_sec == tv3.tv_sec && tv1.tv_usec <= tv3.tv_usec));
+
+  /* Verify monotonicity of time().  */
+  ASSERT (tt2 <= tt4);
+
+  /* Verify that the tv_sec field of the result is the same as time(NULL).  */
+  /* Note: It's here that the dependency to the 'time' module is needed.
+     Without it, this assertion would sometimes fail on glibc systems, see
+     https://sourceware.org/bugzilla/show_bug.cgi?id=30200  */
+  ASSERT (tv1.tv_sec <= tt2);
+  ASSERT (tt2 <= tv3.tv_sec);
+  ASSERT (tv3.tv_sec <= tt4);
+}
+
+int
+main (void)
+{
+  test_clobber ();
+  test_consistency ();
+
   return 0;
 }
index ff29b36..6f94e6c 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of determination whether a locale is different from the "C" locale.
-   Copyright (C) 2019-2021 Free Software Foundation, Inc.
+   Copyright (C) 2019-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -21,7 +21,6 @@
 #include "hard-locale.h"
 
 #include <locale.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <string.h>
 
@@ -39,8 +38,10 @@ test_one (const char *name, int failure_bitmask)
       /* musl libc has special code for the C.UTF-8 locale; other than that,
          all locale names are accepted and all locales are trivial.
          OpenBSD returns the locale name that was set, but we don't know how it
-         behaves under the hood.  Likewise for Haiku.  */
-#if defined MUSL_LIBC || defined __OpenBSD__ || defined __HAIKU__
+         behaves under the hood.  Likewise for Haiku.
+         On Android >= 5.0, the "C" locale may have UTF-8 encoding, and we don't
+         know how it will behave in the future.  */
+#if defined MUSL_LIBC || defined __OpenBSD__ || defined __HAIKU__ || defined __ANDROID__
       expected = true;
 #else
       expected = !all_trivial;
@@ -58,12 +59,14 @@ test_one (const char *name, int failure_bitmask)
 
       /* On NetBSD 7.0, some locales such as de_DE.ISO8859-1 and de_DE.UTF-8
          have the LC_COLLATE category set to "C".
-         Similarly, on musl libc, with the C.UTF-8 locale.  */
+         Similarly, on musl libc, with the C.UTF-8 locale.
+         On Android >= 5.0, the "C" locale may have UTF-8 encoding, and we don't
+         know how it will behave in the future.  */
 #if defined __NetBSD__
       expected = false;
 #elif defined MUSL_LIBC
       expected = strcmp (name, "C.UTF-8") != 0;
-#elif (defined __OpenBSD__ && HAVE_DUPLOCALE) || defined __HAIKU__ /* OpenBSD >= 6.2, Haiku */
+#elif (defined __OpenBSD__ && HAVE_DUPLOCALE) || defined __HAIKU__ || defined __ANDROID__ /* OpenBSD >= 6.2, Haiku, Android */
       expected = true;
 #else
       expected = !all_trivial;
@@ -87,12 +90,16 @@ main ()
 {
   int fail = 0;
 
-  /* The initial locale is the "C" or "POSIX" locale.  */
+  /* The initial locale is the "C" or "POSIX" locale.
+     On Android >= 5.0, it is equivalent to the "C.UTF-8" locale, cf.
+     <https://lists.gnu.org/archive/html/bug-gnulib/2023-01/msg00141.html>.  */
+#if ! defined __ANDROID__
   if (hard_locale (LC_CTYPE) || hard_locale (LC_COLLATE))
     {
       fprintf (stderr, "The initial locale should not be hard!\n");
       fail |= 1;
     }
+#endif
 
   all_trivial = (setlocale (LC_ALL, "foobar") != NULL);
 
index 4e8c59f..08a14e2 100644 (file)
@@ -1,10 +1,10 @@
 /*
- * Copyright (C) 2009-2021 Free Software Foundation, Inc.
+ * Copyright (C) 2009-2023 Free Software Foundation, Inc.
  * Written by Jim Meyering
  *
  * This 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
+ * 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,
@@ -23,7 +23,6 @@
 
 #include <stdio.h>
 #include <stdlib.h>
-#include <stdbool.h>
 #include <string.h>
 #include <unistd.h>
 
index bba7fe3..98d8a9f 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of <iconv.h> substitute.
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index f35113f..2b6a019 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of character set conversion.
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 6191d7d..c2e6aaf 100644 (file)
@@ -1,10 +1,10 @@
 /* Test the "ignore-value" module.
 
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 9d2e50f..b6c1571 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of inet_pton function.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 7b8c451..badc139 100755 (executable)
@@ -1,11 +1,11 @@
 #!/bin/sh
 # Unit tests for init.sh
-# Copyright (C) 2011-2021 Free Software Foundation, Inc.
+# Copyright (C) 2011-2023 Free Software Foundation, Inc.
 # This file is part of the GNUlib Library.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
+# 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,
@@ -16,7 +16,7 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
 
-: ${srcdir=.}
+: "${srcdir=.}"
 . "$srcdir/init.sh"; path_prepend_ .
 
 fail=0
index fff4218..5785706 100644 (file)
@@ -1,9 +1,9 @@
 /* Test intprops.h.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
 
 #include <config.h>
 
-#include "intprops.h"
-#include "verify.h"
+#ifdef TEST_STDCKDINT
+# include <stdckdint.h>
+#else
+# include "intprops.h"
+#endif
 
-#include <stdbool.h>
 #include <inttypes.h>
 #include <limits.h>
 
 
 /* Compile-time verification of expression X.
    In this file, we need it as a statement, rather than as a declaration.  */
-#define verify_stmt(x) do { verify (x); } while (0)
+#define verify_stmt(x) do { static_assert (x); } while (0)
 
 /* VERIFY (X) uses a static assertion for compilers that are known to work,
    and falls back on a dynamic assertion for other compilers.
+   But it ignores X if testing stdckdint.h.
    These tests should be checkable via 'verify' rather than 'ASSERT', but
    using 'verify' would run into a bug with HP-UX 11.23 cc; see
    <https://lists.gnu.org/r/bug-gnulib/2011-05/msg00401.html>.  */
-#if __GNUC__ || __clang__ || __SUNPRO_C
+#ifdef TEST_STDCKDINT
+# define VERIFY(x) ((void) 0)
+#elif __GNUC__ || __clang__ || __SUNPRO_C
 # define VERIFY(x) verify_stmt (x)
 #else
 # define VERIFY(x) ASSERT (x)
@@ -65,6 +70,7 @@ main (void)
   /* Use VERIFY for tests that must be integer constant expressions,
      ASSERT otherwise.  */
 
+#ifndef TEST_STDCKDINT
   /* TYPE_IS_INTEGER.  */
   ASSERT (TYPE_IS_INTEGER (bool));
   ASSERT (TYPE_IS_INTEGER (char));
@@ -161,6 +167,7 @@ main (void)
   VERIFY (INT_STRLEN_BOUND (int64_t) == sizeof ("-9223372036854775808") - 1);
   VERIFY (INT_BUFSIZE_BOUND (int64_t) == sizeof ("-9223372036854775808"));
   #endif
+#endif
 
   /* All the INT_<op>_RANGE_OVERFLOW tests are equally valid as
      INT_<op>_OVERFLOW tests, so define macros to do both.  OP is the
index 9422ad4..a8870b7 100644 (file)
@@ -1,9 +1,9 @@
 /* Test inttostr functions, and incidentally, INT_BUFSIZE_BOUND
-   Copyright (C) 2010-2021 Free Software Foundation, Inc.
+   Copyright (C) 2010-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index f7f2e3a..6c27275 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of <inttypes.h> substitute.
-   Copyright (C) 2006-2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2006-2007, 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -20,8 +20,6 @@
 
 #include <inttypes.h>
 
-#include <stddef.h>
-
 /* Tests for macros supposed to be defined in inttypes.h.  */
 
 const char *k = /* implicit string concatenation */
index 6d7b629..646fe57 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of ioctl() function.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index eca2366..5f2a183 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of isblank() function.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 3f69114..d8db5ff 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of iswblank() function.
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index bcd66a0..c2beb8d 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of iswdigit() function.
-   Copyright (C) 2020-2021 Free Software Foundation, Inc.
+   Copyright (C) 2020-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 1bde602..142a224 100755 (executable)
@@ -5,7 +5,7 @@ LC_ALL=C     ${CHECKER} ./test-iswdigit${EXEEXT} 0 || exit 1
 LC_ALL=POSIX ${CHECKER} ./test-iswdigit${EXEEXT} 0 || exit 1
 
 # Test in an ISO-8859-1 or ISO-8859-15 locale.
-: ${LOCALE_FR=fr_FR}
+: "${LOCALE_FR=fr_FR}"
 if test $LOCALE_FR != none; then
   LC_ALL=$LOCALE_FR \
   ${CHECKER} ./test-iswdigit${EXEEXT} 1 \
@@ -13,7 +13,7 @@ if test $LOCALE_FR != none; then
 fi
 
 # Test whether a specific EUC-JP locale is installed.
-: ${LOCALE_JA=ja_JP}
+: "${LOCALE_JA=ja_JP}"
 if test $LOCALE_JA != none; then
   LC_ALL=$LOCALE_JA \
   ${CHECKER} ./test-iswdigit${EXEEXT} 2 \
@@ -21,7 +21,7 @@ if test $LOCALE_JA != none; then
 fi
 
 # Test whether a specific UTF-8 locale is installed.
-: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+: "${LOCALE_FR_UTF8=fr_FR.UTF-8}"
 if test $LOCALE_FR_UTF8 != none; then
   LC_ALL=$LOCALE_FR_UTF8 \
   ${CHECKER} ./test-iswdigit${EXEEXT} 3 \
@@ -29,7 +29,7 @@ if test $LOCALE_FR_UTF8 != none; then
 fi
 
 # Test whether a specific GB18030 locale is installed.
-: ${LOCALE_ZH_CN=zh_CN.GB18030}
+: "${LOCALE_ZH_CN=zh_CN.GB18030}"
 if test $LOCALE_ZH_CN != none; then
   LC_ALL=$LOCALE_ZH_CN \
   ${CHECKER} ./test-iswdigit${EXEEXT} 4 \
index 15425ee..84101fd 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of iswxdigit() function.
-   Copyright (C) 2020-2021 Free Software Foundation, Inc.
+   Copyright (C) 2020-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index f545438..9bdaff4 100755 (executable)
@@ -5,7 +5,7 @@ LC_ALL=C     ${CHECKER} ./test-iswxdigit${EXEEXT} 0 || exit 1
 LC_ALL=POSIX ${CHECKER} ./test-iswxdigit${EXEEXT} 0 || exit 1
 
 # Test in an ISO-8859-1 or ISO-8859-15 locale.
-: ${LOCALE_FR=fr_FR}
+: "${LOCALE_FR=fr_FR}"
 if test $LOCALE_FR != none; then
   LC_ALL=$LOCALE_FR \
   ${CHECKER} ./test-iswxdigit${EXEEXT} 1 \
@@ -13,7 +13,7 @@ if test $LOCALE_FR != none; then
 fi
 
 # Test whether a specific EUC-JP locale is installed.
-: ${LOCALE_JA=ja_JP}
+: "${LOCALE_JA=ja_JP}"
 if test $LOCALE_JA != none; then
   LC_ALL=$LOCALE_JA \
   ${CHECKER} ./test-iswxdigit${EXEEXT} 2 \
@@ -21,7 +21,7 @@ if test $LOCALE_JA != none; then
 fi
 
 # Test whether a specific UTF-8 locale is installed.
-: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+: "${LOCALE_FR_UTF8=fr_FR.UTF-8}"
 if test $LOCALE_FR_UTF8 != none; then
   LC_ALL=$LOCALE_FR_UTF8 \
   ${CHECKER} ./test-iswxdigit${EXEEXT} 3 \
@@ -29,7 +29,7 @@ if test $LOCALE_FR_UTF8 != none; then
 fi
 
 # Test whether a specific GB18030 locale is installed.
-: ${LOCALE_ZH_CN=zh_CN.GB18030}
+: "${LOCALE_ZH_CN=zh_CN.GB18030}"
 if test $LOCALE_ZH_CN != none; then
   LC_ALL=$LOCALE_ZH_CN \
   ${CHECKER} ./test-iswxdigit${EXEEXT} 4 \
index 4215ea7..743cd12 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of <langinfo.h> substitute.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
diff --git a/gnulib-tests/test-largefile.c b/gnulib-tests/test-largefile.c
new file mode 100644 (file)
index 0000000..eb7861d
--- /dev/null
@@ -0,0 +1,51 @@
+/* Test of largefile module.
+   Copyright (C) 2023 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   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/>.  */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2023.  */
+
+/* This test may fail if AC_SYS_LARGEFILE could not arrange for a 64-bit off_t.
+   This should be rare, though: only very old systems don't have support for
+   files larger than 2 GiB.  */
+
+#include <config.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include "intprops.h"
+
+/* Although these tests could be done with static_assert, the test
+   harness prefers dynamic checking.  */
+
+int
+main (void)
+{
+  int result = 0;
+
+  /* Check the range of off_t.
+     With MSVC, this test succeeds only thanks to the 'sys_types' module.  */
+  if (TYPE_MAXIMUM (off_t) >> 31 >> 31 == 0)
+    result |= 1;
+
+  /* Check the size of the 'struct stat' field 'st_size'.
+     With MSVC, this test succeeds only thanks to the 'sys_stat' module.  */
+  {
+    struct stat st;
+    if (sizeof st.st_size != sizeof (off_t))
+      result |= 2;
+  }
+
+  return result;
+}
index f3394c1..d7cfba7 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of <limits.h> substitute.
-   Copyright 2016-2021 Free Software Foundation, Inc.
+   Copyright 2016-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
 
 #include <limits.h>
 
-#include "verify.h"
-
 #if 4 < __GNUC__ + (3 <= __GNUC_MINOR__)
 # pragma GCC diagnostic ignored "-Woverlength-strings"
 #endif
 
 #define verify_width(width, min, max) \
-  verify ((max) >> ((width) - 1 - ((min) < 0)) == 1)
+  static_assert ((max) >> ((width) - 1 - ((min) < 0)) == 1)
 
 /* Macros borrowed from intprops.h.  */
 #define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
@@ -53,50 +51,50 @@ verify_width (LONG_BIT, LONG_MIN, LONG_MAX);
 /* Numerical limit macros.  */
 
 char               limits1[]  = { CHAR_MIN, CHAR_MAX };
-verify (TYPE_MINIMUM (char) == CHAR_MIN);
-verify (TYPE_MAXIMUM (char) == CHAR_MAX);
+static_assert (TYPE_MINIMUM (char) == CHAR_MIN);
+static_assert (TYPE_MAXIMUM (char) == CHAR_MAX);
 
 signed char        limits2[]  = { SCHAR_MIN, SCHAR_MAX };
-verify (TYPE_MINIMUM (signed char) == SCHAR_MIN);
-verify (TYPE_MAXIMUM (signed char) == SCHAR_MAX);
+static_assert (TYPE_MINIMUM (signed char) == SCHAR_MIN);
+static_assert (TYPE_MAXIMUM (signed char) == SCHAR_MAX);
 
 unsigned char      limits3[]  = { UCHAR_MAX };
-verify (TYPE_MINIMUM (unsigned char) == 0);
-verify (TYPE_MAXIMUM (unsigned char) == UCHAR_MAX);
+static_assert (TYPE_MINIMUM (unsigned char) == 0);
+static_assert (TYPE_MAXIMUM (unsigned char) == UCHAR_MAX);
 
 short              limits4[]  = { SHRT_MIN, SHRT_MAX };
-verify (TYPE_MINIMUM (short int) == SHRT_MIN);
-verify (TYPE_MAXIMUM (short int) == SHRT_MAX);
+static_assert (TYPE_MINIMUM (short int) == SHRT_MIN);
+static_assert (TYPE_MAXIMUM (short int) == SHRT_MAX);
 
 unsigned short     limits5[]  = { USHRT_MAX };
-verify (TYPE_MINIMUM (unsigned short int) == 0);
-verify (TYPE_MAXIMUM (unsigned short int) == USHRT_MAX);
+static_assert (TYPE_MINIMUM (unsigned short int) == 0);
+static_assert (TYPE_MAXIMUM (unsigned short int) == USHRT_MAX);
 
 int                limits6[]  = { INT_MIN, INT_MAX };
-verify (TYPE_MINIMUM (int) == INT_MIN);
-verify (TYPE_MAXIMUM (int) == INT_MAX);
+static_assert (TYPE_MINIMUM (int) == INT_MIN);
+static_assert (TYPE_MAXIMUM (int) == INT_MAX);
 
 unsigned int       limits7[]  = { UINT_MAX };
-verify (TYPE_MINIMUM (unsigned int) == 0);
-verify (TYPE_MAXIMUM (unsigned int) == UINT_MAX);
+static_assert (TYPE_MINIMUM (unsigned int) == 0);
+static_assert (TYPE_MAXIMUM (unsigned int) == UINT_MAX);
 
 long               limits8[]  = { LONG_MIN, LONG_MAX };
-verify (TYPE_MINIMUM (long int) == LONG_MIN);
-verify (TYPE_MAXIMUM (long int) == LONG_MAX);
+static_assert (TYPE_MINIMUM (long int) == LONG_MIN);
+static_assert (TYPE_MAXIMUM (long int) == LONG_MAX);
 
 unsigned long      limits9[]  = { ULONG_MAX };
-verify (TYPE_MINIMUM (unsigned long int) == 0);
-verify (TYPE_MAXIMUM (unsigned long int) == ULONG_MAX);
+static_assert (TYPE_MINIMUM (unsigned long int) == 0);
+static_assert (TYPE_MAXIMUM (unsigned long int) == ULONG_MAX);
 
 long long          limits10[] = { LLONG_MIN, LLONG_MAX };
-verify (TYPE_MINIMUM (long long int) == LLONG_MIN);
-verify (TYPE_MAXIMUM (long long int) == LLONG_MAX);
+static_assert (TYPE_MINIMUM (long long int) == LLONG_MIN);
+static_assert (TYPE_MAXIMUM (long long int) == LLONG_MAX);
 
 unsigned long long limits11[] = { ULLONG_MAX };
-verify (TYPE_MINIMUM (unsigned long long int) == 0);
-verify (TYPE_MAXIMUM (unsigned long long int) == ULLONG_MAX);
+static_assert (TYPE_MINIMUM (unsigned long long int) == 0);
+static_assert (TYPE_MAXIMUM (unsigned long long int) == ULLONG_MAX);
 
-/* Macros specified by ISO/IEC TS 18661-1:2014.  */
+/* Macros specified by C23 and by ISO/IEC TS 18661-1:2014.  */
 
 verify_width (CHAR_WIDTH, CHAR_MIN, CHAR_MAX);
 verify_width (SCHAR_WIDTH, SCHAR_MIN, SCHAR_MAX);
@@ -110,10 +108,12 @@ verify_width (ULONG_WIDTH, 0, ULONG_MAX);
 verify_width (LLONG_WIDTH, LLONG_MIN, LLONG_MAX);
 verify_width (ULLONG_WIDTH, 0, ULLONG_MAX);
 
-/* Macros specified by C2x.  */
+/* Macros specified by C23.  */
 
 int bool_attrs[] = { BOOL_MAX, BOOL_WIDTH };
-verify (BOOL_MAX == (((1U << (BOOL_WIDTH - 1)) - 1) * 2) + 1);
+static_assert (BOOL_MAX == (((1U << (BOOL_WIDTH - 1)) - 1) * 2) + 1);
+
+static_assert (0 < MB_LEN_MAX);
 
 int
 main (void)
index 3692514..8d85779 100644 (file)
@@ -1,9 +1,9 @@
 /* Test listen() function.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -27,6 +27,11 @@ SIGNATURE_CHECK (listen, int, (int, int));
 #include "sockets.h"
 #include "macros.h"
 
+/* Tell GCC not to warn about the specific edge cases tested here.  */
+#if __GNUC__ >= 13
+# pragma GCC diagnostic ignored "-Wanalyzer-fd-use-without-check"
+#endif
+
 int
 main (void)
 {
index 07b756c..e0ea591 100644 (file)
@@ -1,9 +1,9 @@
 /* Manual test of localcharset() function.
-   Copyright (C) 2018-2021 Free Software Foundation, Inc.
+   Copyright (C) 2018-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 59644fa..8314679 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of <locale.h> substitute.
-   Copyright (C) 2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -20,8 +20,6 @@
 
 #include <locale.h>
 
-#include "verify.h"
-
 int a[] =
   {
     LC_ALL,
@@ -39,7 +37,7 @@ int ls;
 
 /* Check that NULL can be passed through varargs as a pointer type,
    per POSIX 2008.  */
-verify (sizeof NULL == sizeof (void *));
+static_assert (sizeof NULL == sizeof (void *));
 
 int
 main ()
index b7998ef..ab3f5fe 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of localeconv() function.
-   Copyright (C) 2012-2021 Free Software Foundation, Inc.
+   Copyright (C) 2012-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index b8481fb..61aed86 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of lstat() function.
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -29,7 +29,6 @@ SIGNATURE_CHECK (lstat, int, (char const *, struct stat *));
 
 #include <fcntl.h>
 #include <errno.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
index 08803da..8a36767 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of lstat() function.
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 0160c6c..e2462da 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of malloc function.
-   Copyright (C) 2010-2021 Free Software Foundation, Inc.
+   Copyright (C) 2010-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 52d95a5..ad3dc1b 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of safe automatic memory allocation.
-   Copyright (C) 2005, 2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2007, 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 7de6959..5d07bb0 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of conversion of multibyte character to wide character.
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 404128b..cf43011 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of conversion of multibyte character to wide character.
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -26,6 +26,7 @@ SIGNATURE_CHECK (mbrtowc, size_t, (wchar_t *, char const *, size_t,
 
 #include <locale.h>
 #include <stdio.h>
+#include <stdlib.h>
 #include <string.h>
 
 #include "macros.h"
@@ -72,10 +73,6 @@ main (int argc, char *argv[])
     for (c = 0; c < 0x100; c++)
       switch (c)
         {
-        default:
-          if (! (c && 1 < argc && argv[1][0] == '5'))
-            break;
-          FALLTHROUGH;
         case '\t': case '\v': case '\f':
         case ' ': case '!': case '"': case '#': case '%':
         case '&': case '\'': case '(': case ')': case '*':
@@ -97,25 +94,23 @@ main (int argc, char *argv[])
         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 argv[1] starts
-             with '5' so we are testing all nonnull bytes.  */
+          /* c is in the ISO C "basic character set".  */
+          ASSERT (c < 0x80);
+          /* c is an ASCII character.  */
           buf[0] = c;
+
           wc = (wchar_t) 0xBADFACE;
           ret = mbrtowc (&wc, buf, 1, &state);
           ASSERT (ret == 1);
-          if (c < 0x80)
-            /* c is an ASCII character.  */
-            ASSERT (wc == c);
-          else
-            /* argv[1] starts with '5', that is, we are testing the C or POSIX
-               locale.
-               On most platforms, the bytes 0x80..0xFF map to U+0080..U+00FF.
-               But on musl libc, the bytes 0x80..0xFF map to U+DF80..U+DFFF.  */
-            ASSERT (wc == (btowc (c) == 0xDF00 + c ? btowc (c) : c));
+          ASSERT (wc == c);
           ASSERT (mbsinit (&state));
+
           ret = mbrtowc (NULL, buf, 1, &state);
           ASSERT (ret == 1);
           ASSERT (mbsinit (&state));
+
+          break;
+        default:
           break;
         }
   }
@@ -130,6 +125,15 @@ main (int argc, char *argv[])
     ASSERT (mbsinit (&state));
   }
 
+#ifdef __ANDROID__
+  /* On Android ≥ 5.0, the default locale is the "C.UTF-8" locale, not the
+     "C" locale.  Furthermore, when you attempt to set the "C" or "POSIX"
+     locale via setlocale(), what you get is a "C" locale with UTF-8 encoding,
+     that is, effectively the "C.UTF-8" locale.  */
+  if (argc > 1 && strcmp (argv[1], "5") == 0 && MB_CUR_MAX > 1)
+    argv[1] = "2";
+#endif
+
   if (argc > 1)
     switch (argv[1][0])
       {
@@ -349,7 +353,37 @@ main (int argc, char *argv[])
         return 0;
 
       case '5':
-        /* C locale; tested above.  */
+        /* C or POSIX locale.  */
+        {
+          int c;
+          char buf[1];
+
+          memset (&state, '\0', sizeof (mbstate_t));
+          for (c = 0; c < 0x100; c++)
+            if (c != 0)
+              {
+                /* We are testing all nonnull bytes.  */
+                buf[0] = c;
+
+                wc = (wchar_t) 0xBADFACE;
+                ret = mbrtowc (&wc, buf, 1, &state);
+                /* POSIX:2018 says: "In the POSIX locale an [EILSEQ] error
+                   cannot occur since all byte values are valid characters."  */
+                ASSERT (ret == 1);
+                if (c < 0x80)
+                  /* c is an ASCII character.  */
+                  ASSERT (wc == c);
+                else
+                  /* On most platforms, the bytes 0x80..0xFF map to U+0080..U+00FF.
+                     But on musl libc, the bytes 0x80..0xFF map to U+DF80..U+DFFF.  */
+                  ASSERT (wc == (btowc (c) == 0xDF00 + c ? btowc (c) : c));
+                ASSERT (mbsinit (&state));
+
+                ret = mbrtowc (NULL, buf, 1, &state);
+                ASSERT (ret == 1);
+                ASSERT (mbsinit (&state));
+              }
+        }
         return 0;
       }
 
index 00b108b..2b6eaf9 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 # Test in an ISO-8859-1 or ISO-8859-15 locale.
-: ${LOCALE_FR=fr_FR}
+: "${LOCALE_FR=fr_FR}"
 if test $LOCALE_FR = none; then
   if test -f /usr/bin/localedef; then
     echo "Skipping test: no traditional french locale is installed"
index 5036930..6868e86 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 # Test whether a specific UTF-8 locale is installed.
-: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+: "${LOCALE_FR_UTF8=fr_FR.UTF-8}"
 if test $LOCALE_FR_UTF8 = none; then
   if test -f /usr/bin/localedef; then
     echo "Skipping test: no french Unicode locale is installed"
index 2773fa7..eca8d64 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 # Test whether a specific EUC-JP locale is installed.
-: ${LOCALE_JA=ja_JP}
+: "${LOCALE_JA=ja_JP}"
 if test $LOCALE_JA = none; then
   if test -f /usr/bin/localedef; then
     echo "Skipping test: no traditional japanese locale is installed"
index 92f641c..7da23a3 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 # Test whether a specific GB18030 locale is installed.
-: ${LOCALE_ZH_CN=zh_CN.GB18030}
+: "${LOCALE_ZH_CN=zh_CN.GB18030}"
 if test $LOCALE_ZH_CN = none; then
   if test -f /usr/bin/localedef; then
     echo "Skipping test: no transitional chinese locale is installed"
index 490496d..4c6c6fe 100755 (executable)
@@ -1,6 +1,9 @@
 #!/bin/sh
+
 # Test whether the POSIX locale has encoding errors.
 LC_ALL=C \
-${CHECKER} ./test-mbrtowc${EXEEXT} 5 || exit
+${CHECKER} ./test-mbrtowc${EXEEXT} 5 || exit 1
 LC_ALL=POSIX \
-${CHECKER} ./test-mbrtowc${EXEEXT} 5
+${CHECKER} ./test-mbrtowc${EXEEXT} 5 || exit 1
+
+exit 0
index c1b5c8f..9ecff60 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of case-insensitive string comparison function.
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 5201951..73e62b5 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 # Test whether a specific Turkish locale is installed.
-: ${LOCALE_TR_UTF8=tr_TR.UTF-8}
+: "${LOCALE_TR_UTF8=tr_TR.UTF-8}"
 if test $LOCALE_TR_UTF8 = none; then
   if test -f /usr/bin/localedef; then
     echo "Skipping test: no turkish Unicode locale is installed"
index bda3a3b..8b9779c 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of test for initial conversion state.
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 7308714..25d4b2e 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 # Test whether a specific UTF-8 locale is installed.
-: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+: "${LOCALE_FR_UTF8=fr_FR.UTF-8}"
 if test $LOCALE_FR_UTF8 = none; then
   if test -f /usr/bin/localedef; then
     echo "Skipping test: no french Unicode locale is installed"
index 1489978..3c351f2 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of conversion of string to wide string.
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -72,6 +72,15 @@ main (int argc, char *argv[])
     ASSERT (mbsinit (&state));
   }
 
+#ifdef __ANDROID__
+  /* On Android ≥ 5.0, the default locale is the "C.UTF-8" locale, not the
+     "C" locale.  Furthermore, when you attempt to set the "C" or "POSIX"
+     locale via setlocale(), what you get is a "C" locale with UTF-8 encoding,
+     that is, effectively the "C.UTF-8" locale.  */
+  if (argc > 1 && strcmp (argv[1], "5") == 0 && MB_CUR_MAX > 1)
+    argv[1] = "2";
+#endif
+
   if (argc > 1)
     {
       int unlimited;
@@ -281,6 +290,72 @@ main (int argc, char *argv[])
               }
               break;
 
+            case '5':
+              /* C or POSIX locale.  */
+              {
+                char input[] = "n/a";
+                memset (&state, '\0', sizeof (mbstate_t));
+
+                src = input;
+                temp_state = state;
+                ret = mbsrtowcs (NULL, &src, unlimited ? BUFSIZE : 1, &temp_state);
+                ASSERT (ret == 3);
+                ASSERT (src == input);
+                ASSERT (mbsinit (&state));
+
+                src = input;
+                ret = mbsrtowcs (buf, &src, unlimited ? BUFSIZE : 1, &state);
+                ASSERT (ret == (unlimited ? 3 : 1));
+                ASSERT (src == (unlimited ? NULL : input + 1));
+                ASSERT (buf[0] == 'n');
+                if (unlimited)
+                  {
+                    ASSERT (buf[1] == '/');
+                    ASSERT (buf[2] == 'a');
+                    ASSERT (buf[3] == 0);
+                    ASSERT (buf[4] == (wchar_t) 0xBADFACE);
+                  }
+                else
+                  ASSERT (buf[1] == (wchar_t) 0xBADFACE);
+                ASSERT (mbsinit (&state));
+              }
+              {
+                int c;
+                char input[2];
+
+                memset (&state, '\0', sizeof (mbstate_t));
+                for (c = 0; c < 0x100; c++)
+                  if (c != 0)
+                    {
+                      /* We are testing all nonnull bytes.  */
+                      input[0] = c;
+                      input[1] = '\0';
+
+                      src = input;
+                      ret = mbsrtowcs (NULL, &src, unlimited ? BUFSIZE : 1, &state);
+                      ASSERT (ret == 1);
+                      ASSERT (src == input);
+                      ASSERT (mbsinit (&state));
+
+                      buf[0] = buf[1] = (wchar_t) 0xBADFACE;
+                      src = input;
+                      ret = mbsrtowcs (buf, &src, unlimited ? BUFSIZE : 1, &state);
+                      /* POSIX:2018 says: "In the POSIX locale an [EILSEQ] error
+                         cannot occur since all byte values are valid characters."  */
+                      ASSERT (ret == 1);
+                      ASSERT (src == (unlimited ? NULL : input + 1));
+                      if (c < 0x80)
+                        /* c is an ASCII character.  */
+                        ASSERT (buf[0] == c);
+                      else
+                        /* On most platforms, the bytes 0x80..0xFF map to U+0080..U+00FF.
+                           But on musl libc, the bytes 0x80..0xFF map to U+DF80..U+DFFF.  */
+                        ASSERT (buf[0] == (btowc (c) == 0xDF00 + c ? btowc (c) : c));
+                      ASSERT (mbsinit (&state));
+                    }
+              }
+              break;
+
             default:
               return 1;
             }
index 66ba231..f8c54ab 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 # Test in an ISO-8859-1 or ISO-8859-15 locale.
-: ${LOCALE_FR=fr_FR}
+: "${LOCALE_FR=fr_FR}"
 if test $LOCALE_FR = none; then
   if test -f /usr/bin/localedef; then
     echo "Skipping test: no traditional french locale is installed"
index 6786efd..1cae31c 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 # Test whether a specific UTF-8 locale is installed.
-: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+: "${LOCALE_FR_UTF8=fr_FR.UTF-8}"
 if test $LOCALE_FR_UTF8 = none; then
   if test -f /usr/bin/localedef; then
     echo "Skipping test: no french Unicode locale is installed"
index 54e9832..908c140 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 # Test whether a specific EUC-JP locale is installed.
-: ${LOCALE_JA=ja_JP}
+: "${LOCALE_JA=ja_JP}"
 if test $LOCALE_JA = none; then
   if test -f /usr/bin/localedef; then
     echo "Skipping test: no traditional japanese locale is installed"
index 8acda08..135bc5f 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 # Test whether a specific GB18030 locale is installed.
-: ${LOCALE_ZH_CN=zh_CN.GB18030}
+: "${LOCALE_ZH_CN=zh_CN.GB18030}"
 if test $LOCALE_ZH_CN = none; then
   if test -f /usr/bin/localedef; then
     echo "Skipping test: no transitional chinese locale is installed"
diff --git a/gnulib-tests/test-mbsrtowcs5.sh b/gnulib-tests/test-mbsrtowcs5.sh
new file mode 100755 (executable)
index 0000000..96734a7
--- /dev/null
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+# Test whether the POSIX locale has encoding errors.
+LC_ALL=C \
+${CHECKER} ./test-mbsrtowcs${EXEEXT} 5 || exit 1
+LC_ALL=POSIX \
+${CHECKER} ./test-mbsrtowcs${EXEEXT} 5 || exit 1
+
+exit 0
index a34cfe6..0de4a9a 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of searching in a string.
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 6727358..2f034ab 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of searching in a string.
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 5ef7139..d1905d6 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 # Test whether a specific UTF-8 locale is installed.
-: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+: "${LOCALE_FR_UTF8=fr_FR.UTF-8}"
 if test $LOCALE_FR_UTF8 = none; then
   if test -f /usr/bin/localedef; then
     echo "Skipping test: no french Unicode locale is installed"
index 91834df..5831f17 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of searching in a string.
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 539f9c0..5e781bf 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 # Test whether a specific GB18030 locale is installed.
-: ${LOCALE_ZH_CN=zh_CN.GB18030}
+: "${LOCALE_ZH_CN=zh_CN.GB18030}"
 if test $LOCALE_ZH_CN = none; then
   if test -f /usr/bin/localedef; then
     echo "Skipping test: no chinese GB18030 locale is installed"
index 1357d08..9d31353 100644 (file)
@@ -1,10 +1,10 @@
 /*
- * Copyright (C) 2008-2021 Free Software Foundation, Inc.
+ * Copyright (C) 2008-2023 Free Software Foundation, Inc.
  * Written by Eric Blake and Bruno Haible
  *
  * This 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
+ * 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,
index ab65cb8..022d80d 100644 (file)
@@ -1,9 +1,9 @@
 /* Tests of mkdir.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -25,7 +25,6 @@ SIGNATURE_CHECK (mkdir, int, (char const *, mode_t));
 
 #include <fcntl.h>
 #include <errno.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
index 204f522..4e57abe 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of mkdir() function.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 4464006..c2f2a19 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of nanosleep() function.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -43,16 +43,27 @@ main (void)
 {
   struct timespec ts;
 
+  /* Check that negative nanosecond values cause failure.  */
+  ts.tv_sec = 1;
+  ts.tv_nsec = -1;
+  errno = 0;
+  ASSERT (nanosleep (&ts, NULL) == -1);
+  ASSERT (errno == EINVAL);
+
   ts.tv_sec = 1000;
   ts.tv_nsec = -1;
   errno = 0;
   ASSERT (nanosleep (&ts, NULL) == -1);
   ASSERT (errno == EINVAL);
+
+  /* Check that too large nanosecond values cause failure.  */
+  ts.tv_sec = 1000;
   ts.tv_nsec = 1000000000;
   errno = 0;
   ASSERT (nanosleep (&ts, NULL) == -1);
   ASSERT (errno == EINVAL);
 
+  /* Check successful call.  */
   ts.tv_sec = 0;
   ts.tv_nsec = 1;
   ASSERT (nanosleep (&ts, &ts) == 0);
index c0de97f..0639d2f 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of <netinet/in.h> substitute.
-   Copyright (C) 2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 5ff6490..806a093 100644 (file)
@@ -1,9 +1,9 @@
 /* Multithread-safety test for nl_langinfo().
-   Copyright (C) 2019-2021 Free Software Foundation, Inc.
+   Copyright (C) 2019-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
diff --git a/gnulib-tests/test-nl_langinfo.sh b/gnulib-tests/test-nl_langinfo.sh
deleted file mode 100755 (executable)
index b1ce46c..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/sh
-
-LC_ALL=C ${CHECKER} ./test-nl_langinfo${EXEEXT} 0 || exit 1
-
-# Test whether a specific traditional locale is installed.
-: ${LOCALE_FR=fr_FR}
-if test $LOCALE_FR != none; then
-  LC_ALL=$LOCALE_FR ${CHECKER} ./test-nl_langinfo${EXEEXT} 1 || exit 1
-fi
-
-# Test whether a specific UTF-8 locale is installed.
-: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
-if test $LOCALE_FR_UTF8 != none; then
-  LC_ALL=$LOCALE_FR_UTF8 ${CHECKER} ./test-nl_langinfo${EXEEXT} 2 || exit 1
-fi
-
-exit 0
similarity index 98%
rename from gnulib-tests/test-nl_langinfo.c
rename to gnulib-tests/test-nl_langinfo1.c
index def628b..5254f86 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of nl_langinfo replacement.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
diff --git a/gnulib-tests/test-nl_langinfo1.sh b/gnulib-tests/test-nl_langinfo1.sh
new file mode 100755 (executable)
index 0000000..9acfcdd
--- /dev/null
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+LC_ALL=C ${CHECKER} ./test-nl_langinfo1${EXEEXT} 0 || exit 1
+
+# Test whether a specific traditional locale is installed.
+: "${LOCALE_FR=fr_FR}"
+if test $LOCALE_FR != none; then
+  LC_ALL=$LOCALE_FR ${CHECKER} ./test-nl_langinfo1${EXEEXT} 1 || exit 1
+fi
+
+# Test whether a specific UTF-8 locale is installed.
+: "${LOCALE_FR_UTF8=fr_FR.UTF-8}"
+if test $LOCALE_FR_UTF8 != none; then
+  LC_ALL=$LOCALE_FR_UTF8 ${CHECKER} ./test-nl_langinfo1${EXEEXT} 2 || exit 1
+fi
+
+exit 0
diff --git a/gnulib-tests/test-nl_langinfo2.c b/gnulib-tests/test-nl_langinfo2.c
new file mode 100644 (file)
index 0000000..7f276da
--- /dev/null
@@ -0,0 +1,136 @@
+/* Test of nl_langinfo replacement.
+   Copyright (C) 2023 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   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/>.  */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2023.  */
+
+#include <config.h>
+
+#include <langinfo.h>
+
+#include <locale.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "c-strcase.h"
+#include "c-strcasestr.h"
+#include "macros.h"
+
+int
+main (int argc, char *argv[])
+{
+#if HAVE_WORKING_USELOCALE
+  /* Check that nl_langinfo() uses the per-thread locale.  */
+  int pass;
+  bool skipped_all = true;
+
+  /* Extract a few items from the C locale.  */
+  /* nl_langinfo items of the LC_CTYPE category */
+  const char *c_CODESET = nl_langinfo (CODESET);
+  /* nl_langinfo items of the LC_NUMERIC category */
+  const char *c_RADIXCHAR = nl_langinfo (RADIXCHAR);
+  /* nl_langinfo items of the LC_TIME category */
+  const char *c_T_FMT_AMPM = nl_langinfo (T_FMT_AMPM);
+  const char *c_AM_STR = nl_langinfo (AM_STR);
+  const char *c_PM_STR = nl_langinfo (PM_STR);
+  /* nl_langinfo items of the LC_MONETARY category */
+  const char *c_CRNCYSTR = nl_langinfo (CRNCYSTR);
+  /* nl_langinfo items of the LC_MESSAGES category */
+  const char *c_YESEXPR = nl_langinfo (YESEXPR);
+
+  /* Sanity checks.  */
+  (void) c_CODESET;
+  ASSERT (strcmp (c_RADIXCHAR, ".") == 0);
+  ASSERT (strlen (c_T_FMT_AMPM) > 0);
+  ASSERT (strlen (c_AM_STR) > 0);
+  ASSERT (strlen (c_PM_STR) > 0);
+  ASSERT (strlen (c_CRNCYSTR) <= 1); /* "-", "+", ".", or "" */
+  ASSERT (c_strcasestr (c_YESEXPR, "y" /* from "yes" */) != NULL);
+
+  for (pass = 1; pass <= 2; pass++)
+    {
+      /* pass    locale
+          1        traditional French locale
+          2        French UTF-8 locale
+       */
+      const char *fr_locale_name =
+        getenv (pass == 1 ? "LOCALE_FR" : "LOCALE_FR_UTF8");
+      if (strcmp (fr_locale_name, "none") != 0)
+        {
+          /* Use a per-thread locale.  */
+          locale_t fr_locale = newlocale (LC_ALL_MASK, fr_locale_name, NULL);
+          if (fr_locale != NULL)
+            {
+              uselocale (fr_locale);
+
+              /* Extract a few items from the current locale, and check the
+                 values.  */
+
+              /* nl_langinfo items of the LC_CTYPE category */
+              const char *fr_CODESET = nl_langinfo (CODESET);
+              if (pass == 1)
+                ASSERT (strstr (fr_CODESET, "8859") != NULL);
+              else if (pass == 2)
+                ASSERT (c_strcasecmp (fr_CODESET, "UTF-8") == 0
+                        || c_strcasecmp (fr_CODESET, "UTF8") == 0);
+
+              /* nl_langinfo items of the LC_NUMERIC category */
+              const char *fr_RADIXCHAR = nl_langinfo (RADIXCHAR);
+              ASSERT (strcmp (fr_RADIXCHAR, ",") == 0);
+
+              /* nl_langinfo items of the LC_TIME category */
+              /* macOS and Solaris 11 don't get the LC_TIME values right.
+                 Poor.  */
+              #if !((defined __APPLE__ && defined __MACH__) || defined __sun)
+              const char *fr_T_FMT_AMPM = nl_langinfo (T_FMT_AMPM);
+              const char *fr_AM_STR = nl_langinfo (AM_STR);
+              const char *fr_PM_STR = nl_langinfo (PM_STR);
+              ASSERT (strlen (fr_T_FMT_AMPM) == 0
+                      || strcmp (fr_T_FMT_AMPM, "%I:%M:%S") == 0);
+              ASSERT (strlen (fr_AM_STR) == 0);
+              ASSERT (strlen (fr_PM_STR) == 0);
+              #endif
+
+              /* nl_langinfo items of the LC_MONETARY category */
+              /* macOS doesn't get the EUR currency symbol or abbreviation
+                 right.  Very poor.  */
+              #if !(defined __APPLE__ && defined __MACH__)
+              const char *fr_CRNCYSTR = nl_langinfo (CRNCYSTR);
+              if (pass == 2)
+                ASSERT (strlen (fr_CRNCYSTR) >= 1
+                        && strcmp (fr_CRNCYSTR + 1, "€") == 0);
+              #endif
+
+              /* nl_langinfo items of the LC_MESSAGES category */
+              const char *fr_YESEXPR = nl_langinfo (YESEXPR);
+              ASSERT (c_strcasestr (fr_YESEXPR, "o" /* from "oui" */) != NULL);
+
+              skipped_all = false;
+            }
+        }
+    }
+
+  if (skipped_all)
+    {
+      fputs ("Skipping test: French locale is not installed\n", stderr);
+      return 77;
+    }
+
+  return 0;
+#else
+  fputs ("Skipping test: uselocale() not available\n", stderr);
+  return 77;
+#endif
+}
diff --git a/gnulib-tests/test-nl_langinfo2.sh b/gnulib-tests/test-nl_langinfo2.sh
new file mode 100755 (executable)
index 0000000..6333c90
--- /dev/null
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+# The name of a specific traditional locale.
+: "${LOCALE_FR=fr_FR}"
+
+# The name of a specific UTF-8 locale.
+: "${LOCALE_FR_UTF8=fr_FR.UTF-8}"
+
+# Make them accessible as environment variables.
+export LOCALE_FR LOCALE_FR_UTF8
+
+${CHECKER} ./test-nl_langinfo2${EXEEXT}
index 98a2eca..22dab6c 100644 (file)
@@ -1,9 +1,9 @@
 /* Test that nstrftime works as required.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
diff --git a/gnulib-tests/test-nullptr.c b/gnulib-tests/test-nullptr.c
new file mode 100644 (file)
index 0000000..1f9abc7
--- /dev/null
@@ -0,0 +1,69 @@
+/* Test nullptr.
+   Copyright 2023 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   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/>.  */
+
+/* Written by Bruno Haible.  */
+
+#include <config.h>
+
+int *my_null = nullptr;
+
+#if 0 /* not yet */
+/* Header that is supposed to define nullptr_t.  */
+# include <stddef.h>
+#endif
+
+#include <stdarg.h>
+
+#include "macros.h"
+
+#if 0 /* not yet */
+
+static void
+simple_callee (nullptr_t x)
+{
+  ASSERT (x == NULL);
+}
+
+#endif
+
+void
+varargs_callee (const char *first, ...)
+{
+  va_list args;
+  const char *arg;
+
+  ASSERT (first[0] == 't');
+  va_start (args, first);
+
+  arg = va_arg (args, const char *);
+  ASSERT (arg == NULL);
+
+  arg = va_arg (args, const char *);
+  ASSERT (arg[0] == 'f');
+
+  arg = va_arg (args, const char *);
+  ASSERT (arg == NULL);
+
+  va_end (args);
+}
+
+int
+main ()
+{
+  varargs_callee ("type", nullptr, "foo", nullptr);
+
+  return 0;
+}
index 1524af4..e137cef 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of opening a file descriptor.
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -24,7 +24,6 @@
 SIGNATURE_CHECK (open, int, (char const *, int, ...));
 
 #include <errno.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <unistd.h>
 
index 9ceb798..d3af821 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of opening a file descriptor.
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
 
 /* Written by Bruno Haible <bruno@clisp.org>, 2007.  */
 
+/* Tell GCC not to warn about the specific edge cases tested here.  */
+#if __GNUC__ >= 13
+# pragma GCC diagnostic ignored "-Wanalyzer-fd-leak"
+#endif
+
 /* Make test_open always inline if we're using Fortify, which defines
    __always_inline to do that.  Do nothing otherwise.  This works
    around a glibc bug whereby 'open' cannot be used as a function
index 2ba1cc2..f65b2d8 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of "pathmax.h".
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 1012396..3ef0bc8 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of perror() function.
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3, or (at your option)
+   the Free Software Foundation, either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
index e776609..e624441 100755 (executable)
@@ -1,5 +1,5 @@
 #!/bin/sh
-: ${srcdir=.}
+: "${srcdir=.}"
 . "$srcdir/init.sh"; path_prepend_ .
 
 # Test NULL prefix. Result should not contain a number, except in lines that
index adce4a6..25390ff 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of perror() function.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3, or (at your option)
+   the Free Software Foundation, either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
 #include <string.h>
 #include <unistd.h>
 
+/* Tell GCC not to warn about myerr being leaked.  */
+#if __GNUC__ >= 13
+# pragma GCC diagnostic ignored "-Wanalyzer-fd-leak"
+#endif
+
 /* This test intentionally parses stderr.  So, we arrange to have fd 10
    (outside the range of interesting fd's during the test) set up to
    duplicate the original stderr.  */
index 5ae2a0a..de1dd2f 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of pipe.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3, or (at your option)
+   the Free Software Foundation, either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -22,7 +22,6 @@
 SIGNATURE_CHECK (pipe, int, (int[2]));
 
 #include <fcntl.h>
-#include <stdbool.h>
 
 #if defined _WIN32 && ! defined __CYGWIN__
 /* Get declarations of the native Windows API functions.  */
diff --git a/gnulib-tests/test-pselect.c b/gnulib-tests/test-pselect.c
new file mode 100644 (file)
index 0000000..a383f1d
--- /dev/null
@@ -0,0 +1,49 @@
+/* Test of pselect() substitute.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   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>
+
+#include <sys/select.h>
+
+#include "signature.h"
+
+SIGNATURE_CHECK (pselect, int,
+                 (int, fd_set *restrict, fd_set *restrict, fd_set *restrict,
+                  struct timespec const *restrict, const sigset_t *restrict));
+
+#define TEST_PORT 12347
+#include "test-select.h"
+
+static int
+my_select (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
+           struct timeval *timeout)
+{
+  struct timespec ts;
+  struct timespec *pts = NULL;
+  if (timeout)
+    {
+      ts.tv_sec = timeout->tv_sec;
+      ts.tv_nsec = timeout->tv_usec * 1000;
+      pts = &ts;
+    }
+  return pselect (nfds, readfds, writefds, exceptfds, pts, NULL);
+}
+
+int
+main (void)
+{
+  return test_function (my_select);
+}
index 094e8d1..5a5bce5 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of pthread_create () function.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 89c68dc..0c67762 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of <pthread.h> substitute.
-   Copyright (C) 2019-2021 Free Software Foundation, Inc.
+   Copyright (C) 2019-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -20,8 +20,6 @@
 
 #include <pthread.h>
 
-#include "verify.h"
-
 /* Check that the types are all defined.  */
 
 pthread_t t1;
index f12b17c..b1b6eb5 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of pthread_sigmask in a single-threaded program.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -24,6 +24,7 @@
 SIGNATURE_CHECK (pthread_sigmask, int, (int, const sigset_t *, sigset_t *));
 
 #include <errno.h>
+#include <limits.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
@@ -44,9 +45,15 @@ int
 main (int argc, char *argv[])
 {
   sigset_t set;
-  int pid = getpid ();
+  pid_t pid = getpid ();
   char command[80];
 
+  if (LONG_MAX < pid)
+    {
+      fputs ("Skipping test: pid too large\n", stderr);
+      return 77;
+    }
+
   signal (SIGINT, sigint_handler);
 
   sigemptyset (&set);
@@ -59,7 +66,7 @@ main (int argc, char *argv[])
   ASSERT (pthread_sigmask (SIG_BLOCK, &set, NULL) == 0);
 
   /* Request a SIGINT signal from outside.  */
-  sprintf (command, "sh -c 'sleep 1; kill -%d %d' &", SIGINT, pid);
+  sprintf (command, "sh -c 'sleep 1; kill -INT %ld' &", (long) pid);
   ASSERT (system (command) == 0);
 
   /* Wait.  */
index f57fc93..94f951f 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of pthread_sigmask in a multi-threaded program.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 795e30f..896c4bf 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of quotearg family of functions.
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3, or (at your option)
+   the Free Software Foundation, either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -21,7 +21,6 @@
 #include "quotearg.h"
 
 #include <ctype.h>
-#include <stdbool.h>
 #include <stdint.h>
 #include <stdlib.h>
 #include <string.h>
@@ -255,7 +254,7 @@ use_quote_double_quotes (const char *str, size_t *len)
 }
 
 int
-main (int argc _GL_UNUSED, char *argv[])
+main (_GL_UNUSED int argc, char *argv[])
 {
   int i;
   bool ascii_only = MB_CUR_MAX == 1 && !isprint ((unsigned char) LQ[0]);
index 065b54b..4cd2776 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of quotearg family of functions.
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3, or (at your option)
+   the Free Software Foundation, either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
index d7fe02b..7574b2b 100644 (file)
@@ -1,9 +1,9 @@
 /* Test raising a signal.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index f53f875..c2f6416 100644 (file)
@@ -1,10 +1,10 @@
 /*
- * Copyright (C) 2008-2021 Free Software Foundation, Inc.
+ * Copyright (C) 2008-2023 Free Software Foundation, Inc.
  * Written by Eric Blake and Bruno Haible
  *
  * This 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
+ * 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,
index e2ab9df..51f1fcb 100644 (file)
@@ -1,9 +1,9 @@
 /* Tests of readlink.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -25,7 +25,6 @@ SIGNATURE_CHECK (readlink, ssize_t, (char const *, char *, size_t));
 
 #include <fcntl.h>
 #include <errno.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
index c95d889..2c10dff 100644 (file)
@@ -1,9 +1,9 @@
 /* Tests of readlink.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 6f98be0..28afc62 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of realloc function.
-   Copyright (C) 2010-2021 Free Software Foundation, Inc.
+   Copyright (C) 2010-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index ff90962..26a366a 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of reallocarray function.
-   Copyright (C) 2010-2021 Free Software Foundation, Inc.
+   Copyright (C) 2010-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index ed4ca64..787ca51 100644 (file)
@@ -1,9 +1,9 @@
 /* Test regular expressions
-   Copyright 1996-2001, 2003-2021 Free Software Foundation, Inc.
+   Copyright 1996-2001, 2003-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -134,31 +134,31 @@ bug_regex11 (void)
     {
       n = regcomp (&re, tests[i].pattern, tests[i].flags);
       if (n != 0)
-       {
-         char buf[500];
-         regerror (n, &re, buf, sizeof (buf));
-         report_error ("%s: regcomp %zd failed: %s", tests[i].pattern, i, buf);
-         continue;
-       }
+        {
+          char buf[500];
+          regerror (n, &re, buf, sizeof (buf));
+          report_error ("%s: regcomp %zd failed: %s", tests[i].pattern, i, buf);
+          continue;
+        }
 
       if (regexec (&re, tests[i].string, tests[i].nmatch, rm, 0))
-       {
-         report_error ("%s: regexec %zd failed", tests[i].pattern, i);
-         regfree (&re);
-         continue;
-       }
+        {
+          report_error ("%s: regexec %zd failed", tests[i].pattern, i);
+          regfree (&re);
+          continue;
+        }
 
       for (n = 0; n < tests[i].nmatch; ++n)
-       if (rm[n].rm_so != tests[i].rm[n].rm_so
+        if (rm[n].rm_so != tests[i].rm[n].rm_so
               || rm[n].rm_eo != tests[i].rm[n].rm_eo)
-         {
-           if (tests[i].rm[n].rm_so == -1 && tests[i].rm[n].rm_eo == -1)
-             break;
-           report_error ("%s: regexec %zd match failure rm[%d] %d..%d",
+          {
+            if (tests[i].rm[n].rm_so == -1 && tests[i].rm[n].rm_eo == -1)
+              break;
+            report_error ("%s: regexec %zd match failure rm[%d] %d..%d",
                           tests[i].pattern, i, n,
                           (int) rm[n].rm_so, (int) rm[n].rm_eo);
-           break;
-         }
+            break;
+          }
 
       regfree (&re);
     }
index f3c4195..b379714 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of <sched.h> substitute.
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -29,7 +29,7 @@ int b[] = { SCHED_FIFO, SCHED_RR, SCHED_OTHER };
 /* Check that the types are all defined.  */
 pid_t t1;
 
-static int f1;
+int f1;
 
 int
 main ()
index 229e821..c99e5bb 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of select() substitute, reading or writing from a given file descriptor.
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 68176d3..ad86ea2 100755 (executable)
@@ -5,7 +5,7 @@
 # of /dev/null.
 
 tmpfiles=""
-trap 'rm -fr $tmpfiles' 1 2 3 15
+trap 'rm -fr $tmpfiles' HUP INT QUIT TERM
 
 tmpfiles="$tmpfiles t-select-in.tmp"
 
index dbeace5..cfa5e17 100755 (executable)
@@ -2,7 +2,7 @@
 # Test select() on file descriptors opened for writing.
 
 tmpfiles=""
-trap 'rm -fr $tmpfiles' 1 2 3 15
+trap 'rm -fr $tmpfiles' HUP INT QUIT TERM
 
 tmpfiles="$tmpfiles t-select-out.out t-select-out.tmp"
 
index 26ca8a8..1182391 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of select() substitute, reading from stdin.
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index a4ff8d1..b460060 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of select() substitute.
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -25,6 +25,7 @@
 SIGNATURE_CHECK (select, int, (int, fd_set *, fd_set *, fd_set *,
                                struct timeval *));
 
+#define TEST_PORT 12346
 #include "test-select.h"
 
 int
index 6348a49..902e085 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of select() substitute.
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -24,7 +24,6 @@
 #include <unistd.h>
 #include <fcntl.h>
 #include <stdlib.h>
-#include <stdbool.h>
 #include <sys/ioctl.h>
 #include <errno.h>
 
 # include <sys/wait.h>
 #endif
 
-#define TEST_PORT       12345
-
+/* Tell GCC not to warn about the specific edge cases tested here.  */
+#if __GNUC__ >= 13
+# pragma GCC diagnostic ignored "-Wanalyzer-fd-use-without-check"
+#endif
 
 typedef int (*select_fn) (int, fd_set *, fd_set *, fd_set *, struct timeval *);
 
index 034a7d2..422d9b7 100644 (file)
@@ -1,9 +1,9 @@
 /* Tests of setenv.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index f733036..7480406 100644 (file)
@@ -1,9 +1,9 @@
 /* Multithread-safety test for setlocale_null_r (LC_ALL, ...).
-   Copyright (C) 2019-2021 Free Software Foundation, Inc.
+   Copyright (C) 2019-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -166,7 +166,7 @@ Solaris 11.0         OK
 Solaris 11.4         OK
 Solaris OpenIndiana  OK
 Haiku                crash < 1 sec
-Cygwin               crash < 1 sec
+Cygwin < 3.4.6       crash < 1 sec
 mingw                OK
 MSVC                 OK (assuming compiler option /MD !)
 */
index 5f9b85b..4829082 100644 (file)
@@ -1,9 +1,9 @@
 /* Multithread-safety test for setlocale_null_r (LC_xxx, ...).
-   Copyright (C) 2019-2021 Free Software Foundation, Inc.
+   Copyright (C) 2019-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index ebe0d36..2495964 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of setlocale_null_r function.
-   Copyright (C) 2019-2021 Free Software Foundation, Inc.
+   Copyright (C) 2019-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -27,6 +27,6 @@ static char buf[SETLOCALE_NULL_ALL_MAX];
 int
 main ()
 {
-  /* Check that setlocale_null_r() can be used with $(LIB_SETLOCALE_NULL).  */
+  /* Check that setlocale_null_r() can be used with $(SETLOCALE_NULL_LIB).  */
   return setlocale_null_r (LC_ALL, buf, sizeof (buf)) != 0;
 }
index 09ae1aa..0543e39 100644 (file)
@@ -1,9 +1,9 @@
 /* Test setsockopt() function.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 09f8992..19b28ad 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of sh-quote module.
-   Copyright (C) 2012-2021 Free Software Foundation, Inc.
+   Copyright (C) 2012-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
diff --git a/gnulib-tests/test-sigaction.c b/gnulib-tests/test-sigaction.c
deleted file mode 100644 (file)
index fc4a45c..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-/* Test of sigaction() function.
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
-
-   This 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/>.  */
-
-/* Written by Eric Blake <ebb9@byu.net>, 2008.  */
-
-#include <config.h>
-
-#include <signal.h>
-
-#include "signature.h"
-SIGNATURE_CHECK (sigaction, int, (int, struct sigaction const *,
-                                  struct sigaction *));
-
-#include <stddef.h>
-
-#include "macros.h"
-
-#ifndef SA_NOCLDSTOP
-# define SA_NOCLDSTOP 0
-#endif
-#ifndef SA_ONSTACK
-# define SA_ONSTACK 0
-#endif
-#ifndef SA_RESETHAND
-# define SA_RESETHAND 0
-#endif
-#ifndef SA_RESTART
-# define SA_RESTART 0
-#endif
-#ifndef SA_SIGINFO
-# define SA_SIGINFO 0
-#endif
-#ifndef SA_NOCLDWAIT
-# define SA_NOCLDWAIT 0
-#endif
-
-/* Define a mask of flags required by POSIX.  Some implementations
-   provide other flags as extensions, such as SA_RESTORER, that we
-   must ignore in this test.  */
-#define MASK_SA_FLAGS (SA_NOCLDSTOP | SA_ONSTACK | SA_RESETHAND | SA_RESTART \
-                       | SA_SIGINFO | SA_NOCLDWAIT | SA_NODEFER)
-
-/* This test is unsafe in the presence of an asynchronous SIGABRT,
-   because we install a signal-handler that is intentionally not
-   async-safe.  Hopefully, this does not lead to too many reports of
-   false failures, since people don't generally use 'kill -s SIGABRT'
-   to end a runaway program.  */
-
-static void
-handler (int sig)
-{
-  static int entry_count;
-  struct sigaction sa;
-  ASSERT (sig == SIGABRT);
-  ASSERT (sigaction (SIGABRT, NULL, &sa) == 0);
-  ASSERT ((sa.sa_flags & SA_SIGINFO) == 0);
-  switch (entry_count++)
-    {
-    case 0:
-      ASSERT ((sa.sa_flags & SA_RESETHAND) == 0);
-      ASSERT (sa.sa_handler == handler);
-      break;
-    case 1:
-      /* This assertion fails on glibc-2.3.6 systems with LinuxThreads,
-         when this program is linked with -lpthread, due to the sigaction()
-         override in libpthread.so.  */
-#if !(defined __GLIBC__ || defined __UCLIBC__)
-      ASSERT (sa.sa_handler == SIG_DFL);
-#endif
-      break;
-    default:
-      ASSERT (0);
-    }
-}
-
-int
-main (void)
-{
-  struct sigaction sa;
-  struct sigaction old_sa;
-  sa.sa_handler = handler;
-
-  sa.sa_flags = 0;
-  ASSERT (sigemptyset (&sa.sa_mask) == 0);
-  ASSERT (sigaction (SIGABRT, &sa, NULL) == 0);
-  ASSERT (raise (SIGABRT) == 0);
-
-  sa.sa_flags = SA_RESETHAND | SA_NODEFER;
-  ASSERT (sigaction (SIGABRT, &sa, &old_sa) == 0);
-  ASSERT ((old_sa.sa_flags & MASK_SA_FLAGS) == 0);
-  ASSERT (old_sa.sa_handler == handler);
-  ASSERT (raise (SIGABRT) == 0);
-
-  sa.sa_handler = SIG_DFL;
-  ASSERT (sigaction (SIGABRT, &sa, &old_sa) == 0);
-  ASSERT ((old_sa.sa_flags & SA_SIGINFO) == 0);
-#if !(defined __GLIBC__ || defined __UCLIBC__) /* see above */
-  ASSERT (old_sa.sa_handler == SIG_DFL);
-#endif
-
-  sa.sa_handler = SIG_IGN;
-  ASSERT (sigaction (SIGABRT, &sa, NULL) == 0);
-  ASSERT (raise (SIGABRT) == 0);
-  ASSERT (sigaction (SIGABRT, NULL, &old_sa) == 0);
-  ASSERT (old_sa.sa_handler == SIG_IGN);
-  ASSERT (raise (SIGABRT) == 0);
-
-  return 0;
-}
index b9d5176..05ec06c 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of <signal.h> substitute.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index bf000d7..b6d0114 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of sigprocmask.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -24,6 +24,7 @@
 SIGNATURE_CHECK (sigprocmask, int, (int, const sigset_t *, sigset_t *));
 
 #include <errno.h>
+#include <limits.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
@@ -47,7 +48,7 @@ main (int argc, char *argv[])
   pid_t pid = getpid ();
   char command[80];
 
-  if (sizeof (int) < sizeof pid && 0x7fffffff < pid)
+  if (LONG_MAX < pid)
     {
       fputs ("Skipping test: pid too large\n", stderr);
       return 77;
@@ -66,7 +67,7 @@ main (int argc, char *argv[])
   ASSERT (sigprocmask (SIG_BLOCK, &set, NULL) == 0);
 
   /* Request a SIGINT signal from outside.  */
-  sprintf (command, "sh -c 'sleep 1; kill -%d %d' &", SIGINT, (int) pid);
+  sprintf (command, "sh -c 'sleep 1; kill -INT %ld' &", (long) pid);
   ASSERT (system (command) == 0);
 
   /* Wait.  */
index 68f65c5..55effac 100644 (file)
@@ -1,5 +1,5 @@
 /* Test that the handler is called, with the right fault address.
-   Copyright (C) 2002-2021 Free Software Foundation, Inc.
+   Copyright (C) 2002-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -40,7 +40,7 @@ uintptr_t page;
 
 volatile int handler_called = 0;
 
-int
+static int
 handler (void *fault_address, int serious)
 {
   handler_called++;
@@ -54,7 +54,7 @@ handler (void *fault_address, int serious)
   return 0;
 }
 
-void
+static void
 crasher (uintptr_t p)
 {
   *(volatile int *) (p + 0x678) = 42;
index b2a4804..1628f1a 100644 (file)
@@ -1,5 +1,5 @@
 /* Test that the handler can be exited multiple times.
-   Copyright (C) 2002-2021 Free Software Foundation, Inc.
+   Copyright (C) 2002-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 2f1e6f4..0c4f1d4 100644 (file)
@@ -1,5 +1,5 @@
 /* Test the stack overflow handler.
-   Copyright (C) 2002-2021 Free Software Foundation, Inc.
+   Copyright (C) 2002-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 # endif
 # include "altstack-util.h"
 
-jmp_buf mainloop;
-sigset_t mainsigset;
+static jmp_buf mainloop;
+static sigset_t mainsigset;
 
-volatile int pass = 0;
+static volatile int pass = 0;
 
-volatile char *stack_lower_bound;
-volatile char *stack_upper_bound;
+static volatile char *stack_lower_bound;
+static volatile char *stack_upper_bound;
 
 static void
 stackoverflow_handler_continuation (void *arg1, void *arg2, void *arg3)
@@ -59,7 +59,7 @@ stackoverflow_handler_continuation (void *arg1, void *arg2, void *arg3)
   longjmp (mainloop, arg);
 }
 
-void
+static void
 stackoverflow_handler (int emergency, stackoverflow_context_t scp)
 {
   char dummy;
@@ -73,7 +73,7 @@ stackoverflow_handler (int emergency, stackoverflow_context_t scp)
                          (void *) (long) (emergency ? -1 : pass), NULL, NULL);
 }
 
-volatile int *
+static volatile int *
 recurse_1 (int n, volatile int *p)
 {
   if (n < INT_MAX)
@@ -81,7 +81,7 @@ recurse_1 (int n, volatile int *p)
   return p;
 }
 
-int
+static int
 recurse (volatile int n)
 {
   return *recurse_1 (n, &n);
index 5914e32..7330938 100644 (file)
@@ -1,5 +1,5 @@
 /* Test that stack overflow and SIGSEGV are correctly distinguished.
-   Copyright (C) 2002-2021 Free Software Foundation, Inc.
+   Copyright (C) 2002-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 # endif
 # include "altstack-util.h"
 
-jmp_buf mainloop;
-sigset_t mainsigset;
+static jmp_buf mainloop;
+static sigset_t mainsigset;
 
-volatile int pass = 0;
-uintptr_t page;
-volatile int *null_pointer_to_volatile_int /* = NULL */;
+static volatile int pass = 0;
+static uintptr_t page;
+static volatile int *null_pointer_to_volatile_int /* = NULL */;
 
 static void
 stackoverflow_handler_continuation (void *arg1, void *arg2, void *arg3)
@@ -60,7 +60,7 @@ stackoverflow_handler_continuation (void *arg1, void *arg2, void *arg3)
   longjmp (mainloop, arg);
 }
 
-void
+static void
 stackoverflow_handler (int emergency, stackoverflow_context_t scp)
 {
   pass++;
@@ -76,7 +76,7 @@ stackoverflow_handler (int emergency, stackoverflow_context_t scp)
                          (void *) (long) (emergency ? -1 : pass), NULL, NULL);
 }
 
-int
+static int
 sigsegv_handler (void *address, int emergency)
 {
   /* This test is necessary to distinguish stack overflow and SIGSEGV.  */
@@ -96,7 +96,7 @@ sigsegv_handler (void *address, int emergency)
                                 (void *) (long) pass, NULL, NULL);
 }
 
-volatile int *
+static volatile int *
 recurse_1 (int n, volatile int *p)
 {
   if (n < INT_MAX)
@@ -104,7 +104,7 @@ recurse_1 (int n, volatile int *p)
   return p;
 }
 
-int
+static int
 recurse (volatile int n)
 {
   return *recurse_1 (n, &n);
index be9ee83..391c490 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of sleep() function.
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index ea6de1c..d106ad6 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of snprintf() function.
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 8fd603c..9293b7c 100644 (file)
@@ -1,10 +1,10 @@
 /*
- * Copyright (C) 2008-2021 Free Software Foundation, Inc.
+ * Copyright (C) 2008-2023 Free Software Foundation, Inc.
  * Written by Simon Josefsson.
  *
  * This 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
+ * 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,
index cd0f3c3..f20f5e2 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of <stat-time.h>.
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 6f0a995..47fe894 100644 (file)
@@ -1,9 +1,9 @@
 /* Tests of stat.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -29,7 +29,6 @@ SIGNATURE_CHECK (stat, int, (char const *, struct stat *));
 
 #include <fcntl.h>
 #include <errno.h>
-#include <stdbool.h>
 #include <stdlib.h>
 #include <stdio.h>
 #include <unistd.h>
index e728ca2..f2132c2 100644 (file)
@@ -1,9 +1,9 @@
 /* Tests of stat.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 60e5242..a4ff4d4 100644 (file)
@@ -1,9 +1,9 @@
-/* Test of <stdbool.h> substitute.
-   Copyright (C) 2002-2007, 2009-2021 Free Software Foundation, Inc.
+/* Test bool.
+   Copyright (C) 2002-2007, 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
 
 #include <config.h>
 
-#include <stdbool.h>
-
-#ifndef bool
- "error: bool is not defined"
-#endif
-#ifndef false
- "error: false is not defined"
+#ifdef TEST_STDBOOL_H
+# include <stdbool.h>
 #endif
+
 #if false
  "error: false is not 0"
 #endif
-#ifndef true
- "error: true is not defined"
-#endif
 #if true != 1
  "error: true is not 1"
 #endif
-#ifndef __bool_true_false_are_defined
- "error: __bool_true_false_are_defined is not defined"
-#endif
 
 /* Several tests cannot be guaranteed with gnulib's <stdbool.h>, at
    least, not for all compilers and compiler options.  */
-#if HAVE_STDBOOL_H || 3 <= __GNUC__ || 4 <= __clang_major__
-struct s { _Bool s: 1; _Bool t; } s;
+#if ((HAVE_C_BOOL || defined __cplusplus \
+      || HAVE_STDBOOL_H || 3 <= __GNUC__ || 4 <= __clang_major__) \
+     && !(defined _MSC_VER || defined __SUNPRO_C))
+# define WORKING_BOOL 1
+#else
+# define WORKING_BOOL 0
+#endif
+
+#if WORKING_BOOL
+struct s { bool s: 1; bool t; } s;
 #endif
 
 char a[true == 1 ? 1 : -1];
 char b[false == 0 ? 1 : -1];
-char c[__bool_true_false_are_defined == 1 ? 1 : -1];
-#if HAVE_STDBOOL_H || 3 <= __GNUC__ || 4 <= __clang_major__ /* See above.  */
+#if WORKING_BOOL
 char d[(bool) 0.5 == true ? 1 : -1];
 # ifdef ADDRESS_CHECK_OKAY /* Avoid gcc warning.  */
 /* C99 may plausibly be interpreted as not requiring support for a cast from
@@ -73,30 +70,30 @@ char d[(bool) 0.5 == true ? 1 : -1];
 bool e = &s;
 #  endif
 # endif
-char f[(_Bool) 0.0 == false ? 1 : -1];
+char f[(bool) 0.0 == false ? 1 : -1];
 #endif
 char g[true];
-char h[sizeof (_Bool)];
-#if HAVE_STDBOOL_H || 3 <= __GNUC__ || 4 <= __clang_major__ /* See above.  */
+char h[sizeof (bool)];
+#if WORKING_BOOL
 char i[sizeof s.t];
 #endif
 enum { j = false, k = true, l = false * true, m = true * 256 };
-_Bool n[m];
+bool n[m];
 char o[sizeof n == m * sizeof n[0] ? 1 : -1];
-char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1];
+char p[-1 - (bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1];
 /* Catch a bug in an HP-UX C compiler.  See
    https://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
    https://lists.gnu.org/r/bug-coreutils/2005-11/msg00161.html
  */
-_Bool q = true;
-_Bool *pq = &q;
+bool q = true;
+bool *pq = &q;
 
 int
 main ()
 {
   int error = 0;
 
-#if HAVE_STDBOOL_H || 3 <= __GNUC_ || 4 <= __clang_major___ /* See above.  */
+#if WORKING_BOOL
 # ifdef ADDRESS_CHECK_OKAY /* Avoid gcc warning.  */
   /* A cast from a variable's address to bool is valid in expressions.  */
   {
similarity index 50%
rename from lib/xasprintf.c
rename to gnulib-tests/test-stdckdint.c
index 3a893d2..43d5e80 100644 (file)
@@ -1,10 +1,9 @@
-/* vasprintf and asprintf with out-of-memory checking.
-   Copyright (C) 1999, 2002-2004, 2006, 2009-2021 Free Software Foundation,
-   Inc.
+/* Test <stdckdint.h>.
+   Copyright 2022-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    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>
+/* Written by Paul Eggert.  */
 
-/* Specification.  */
-#include "xvasprintf.h"
+/* Tell test-intprops.c to test <stdckdint.h> instead of <intprops.h>.  */
 
-char *
-xasprintf (const char *format, ...)
-{
-  va_list args;
-  char *result;
+#define TEST_STDCKDINT 1
 
-  va_start (args, format);
-  result = xvasprintf (format, args);
-  va_end (args);
+#define INT_ADD_WRAPV(a, b, r) ckd_add (r, a, b)
+#define INT_SUBTRACT_WRAPV(a, b, r) ckd_sub (r, a, b)
+#define INT_MULTIPLY_WRAPV(a, b, r) ckd_mul (r, a, b)
 
-  return result;
-}
+/* Luckily, test-intprops.c uses INT_NEGATE_OVERFLOW only on INT_MIN.  */
+#define INT_NEGATE_OVERFLOW(a) ((a) < -INT_MAX)
+
+#include "test-intprops.c"
index 21b46b9..359fece 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of <stddef.h> substitute.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -19,9 +19,6 @@
 #include <config.h>
 
 #include <stddef.h>
-#include <limits.h>
-#include <stdalign.h>
-#include "verify.h"
 
 /* Check that appropriate types are defined.  */
 wchar_t a = 'c';
@@ -31,7 +28,7 @@ max_align_t x;
 
 /* Check that NULL can be passed through varargs as a pointer type,
    per POSIX 2008.  */
-verify (sizeof NULL == sizeof (void *));
+static_assert (sizeof NULL == sizeof (void *));
 
 /* Check that offsetof produces integer constants with correct type.  */
 struct d
@@ -42,34 +39,60 @@ struct d
 /* Solaris 10 has a bug where offsetof is under-parenthesized, and
    cannot be used as an arbitrary expression.  However, since it is
    unlikely to bite real code, we ignore that short-coming.  */
-/* verify (sizeof offsetof (struct d, e) == sizeof (size_t)); */
-verify (sizeof (offsetof (struct d, e)) == sizeof (size_t));
-verify (offsetof (struct d, f) == 1);
-
-/* offsetof promotes to an unsigned integer if and only if sizes do
-   not fit in int.  */
-verify ((offsetof (struct d, e) < -1) == (INT_MAX < (size_t) -1));
+/* static_assert (sizeof offsetof (struct d, e) == sizeof (size_t)); */
+static_assert (sizeof (offsetof (struct d, e)) == sizeof (size_t));
+static_assert (offsetof (struct d, f) == 1);
 
 /* Check max_align_t's alignment.  */
-verify (alignof (double) <= alignof (max_align_t));
-verify (alignof (int) <= alignof (max_align_t));
-verify (alignof (long double) <= alignof (max_align_t));
-verify (alignof (long int) <= alignof (max_align_t));
-verify (alignof (ptrdiff_t) <= alignof (max_align_t));
-verify (alignof (size_t) <= alignof (max_align_t));
-verify (alignof (wchar_t) <= alignof (max_align_t));
-verify (alignof (struct d) <= alignof (max_align_t));
+static_assert (alignof (double) <= alignof (max_align_t));
+static_assert (alignof (int) <= alignof (max_align_t));
+static_assert (alignof (long double) <= alignof (max_align_t));
+static_assert (alignof (long int) <= alignof (max_align_t));
+static_assert (alignof (ptrdiff_t) <= alignof (max_align_t));
+static_assert (alignof (size_t) <= alignof (max_align_t));
+static_assert (alignof (wchar_t) <= alignof (max_align_t));
+static_assert (alignof (struct d) <= alignof (max_align_t));
 #if defined __GNUC__ || defined __clang__ || defined __IBM__ALIGNOF__
-verify (__alignof__ (double) <= __alignof__ (max_align_t));
-verify (__alignof__ (int) <= __alignof__ (max_align_t));
-verify (__alignof__ (long double) <= __alignof__ (max_align_t));
-verify (__alignof__ (long int) <= __alignof__ (max_align_t));
-verify (__alignof__ (ptrdiff_t) <= __alignof__ (max_align_t));
-verify (__alignof__ (size_t) <= __alignof__ (max_align_t));
-verify (__alignof__ (wchar_t) <= __alignof__ (max_align_t));
-verify (__alignof__ (struct d) <= __alignof__ (max_align_t));
+static_assert (__alignof__ (double) <= __alignof__ (max_align_t));
+static_assert (__alignof__ (int) <= __alignof__ (max_align_t));
+static_assert (__alignof__ (long double) <= __alignof__ (max_align_t));
+static_assert (__alignof__ (long int) <= __alignof__ (max_align_t));
+static_assert (__alignof__ (ptrdiff_t) <= __alignof__ (max_align_t));
+static_assert (__alignof__ (size_t) <= __alignof__ (max_align_t));
+static_assert (__alignof__ (wchar_t) <= __alignof__ (max_align_t));
+static_assert (__alignof__ (struct d) <= __alignof__ (max_align_t));
 #endif
 
+int test_unreachable_optimization (int x);
+_Noreturn void test_unreachable_noreturn (void);
+
+int
+test_unreachable_optimization (int x)
+{
+  /* Check that the compiler uses 'unreachable' for optimization.
+     This function, when compiled with optimization, should have code
+     equivalent to
+       return x + 3;
+     Use 'objdump --disassemble test-stddef.o' to verify this.  */
+  if (x < 4)
+    unreachable ();
+  return (x > 1 ? x + 3 : 2 * x + 10);
+}
+
+_Noreturn void
+test_unreachable_noreturn (void)
+{
+  /* Check that the compiler's data-flow analysis recognizes 'unreachable ()'.
+     This function should not elicit a warning.  */
+  unreachable ();
+}
+
+#include <limits.h> /* INT_MAX */
+
+/* offsetof promotes to an unsigned integer if and only if sizes do
+   not fit in int.  */
+static_assert ((offsetof (struct d, e) < -1) == (INT_MAX < (size_t) -1));
+
 int
 main (void)
 {
index dc6fad7..a34c33f 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of <stdint.h> substitute.
-   Copyright (C) 2006-2021 Free Software Foundation, Inc.
+   Copyright (C) 2006-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -247,9 +247,10 @@ uintmax_t j[2] = { UINTMAX_C (17), UINTMAX_MAX };
 verify (TYPE_MAXIMUM (uintmax_t) == UINTMAX_MAX);
 verify_same_types (UINTMAX_MAX, (uintmax_t) 0 + 0);
 
-/* As of 2007, Sun C and HP-UX 10.20 cc don't support 'long long' constants in
+/* Older Sun C and HP-UX 10.20 cc don't support 'long long' constants in
    the preprocessor.  */
-#if !(defined __SUNPRO_C || (defined __hpux && !defined __GNUC__))
+#if !((defined __SUNPRO_C && __SUNPRO_C < 0x5150) \
+      || (defined __hpux && !defined __GNUC__))
 #if INTMAX_MIN && INTMAX_MAX && UINTMAX_MAX
 /* ok */
 #else
index 8fd000a..9794f4d 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of <stdio.h> substitute.
-   Copyright (C) 2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
 
 #include <stdio.h>
 
-#include "verify.h"
-
 /* Check that the various SEEK_* macros are defined.  */
 int sk[] = { SEEK_CUR, SEEK_END, SEEK_SET };
 
+/* Check that the _PRINTF_NAN_LEN_MAX macro is defined.  */
+int pnlm[] = { _PRINTF_NAN_LEN_MAX };
+
 /* Check that NULL can be passed through varargs as a pointer type,
    per POSIX 2008.  */
-verify (sizeof NULL == sizeof (void *));
+static_assert (sizeof NULL == sizeof (void *));
 
 /* Check that the types are all defined.  */
 fpos_t t1;
@@ -36,8 +37,37 @@ size_t t3;
 ssize_t t4;
 va_list t5;
 
+#include <string.h>
+
+#include "nan.h"
+#include "macros.h"
+
 int
 main (void)
 {
+#if defined DBL_EXPBIT0_WORD && defined DBL_EXPBIT0_BIT
+  /* Check the value of _PRINTF_NAN_LEN_MAX.  */
+  {
+    #define NWORDS \
+      ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
+    typedef union { double value; unsigned int word[NWORDS]; } memory_double;
+
+    double value1;
+    memory_double value2;
+    char buf[64];
+
+    value1 = NaNd();
+    sprintf (buf, "%g", value1);
+    ASSERT (strlen (buf) <= _PRINTF_NAN_LEN_MAX);
+
+    value2.value = NaNd ();
+    #if DBL_EXPBIT0_BIT == 20
+    value2.word[DBL_EXPBIT0_WORD] ^= 0x54321;
+    #endif
+    sprintf (buf, "%g", value2.value);
+    ASSERT (strlen (buf) <= _PRINTF_NAN_LEN_MAX);
+  }
+#endif
+
   return 0;
 }
index 427263e..0d39847 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of <stdlib.h> substitute.
-   Copyright (C) 2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -20,8 +20,6 @@
 
 #include <stdlib.h>
 
-#include "verify.h"
-
 /* Check that EXIT_SUCCESS is 0, per POSIX.  */
 static int exitcode = EXIT_SUCCESS;
 #if EXIT_SUCCESS
@@ -36,7 +34,7 @@ static int exitcode = EXIT_SUCCESS;
 
 /* Check that NULL can be passed through varargs as a pointer type,
    per POSIX 2008.  */
-verify (sizeof NULL == sizeof (void *));
+static_assert (sizeof NULL == sizeof (void *));
 
 #if GNULIB_TEST_SYSTEM_POSIX
 # include "test-sys_wait.h"
@@ -47,8 +45,19 @@ verify (sizeof NULL == sizeof (void *));
 int
 main (void)
 {
-  if (test_sys_wait_macros ())
+  /* POSIX:2018 says:
+     "In the POSIX locale the value of MB_CUR_MAX shall be 1."  */
+  /* On Android ≥ 5.0, the default locale is the "C.UTF-8" locale, not the
+     "C" locale.  Furthermore, when you attempt to set the "C" or "POSIX"
+     locale via setlocale(), what you get is a "C" locale with UTF-8 encoding,
+     that is, effectively the "C.UTF-8" locale.  */
+#ifndef __ANDROID__
+  if (MB_CUR_MAX != 1)
     return 1;
+#endif
+
+  if (test_sys_wait_macros ())
+    return 2;
 
   return exitcode;
 }
index 2e4125b..d23e982 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of strerror() function.
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3, or (at your option)
+   the Free Software Foundation, either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
index 6e72194..7ad4424 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of strerror_r() function.
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3, or (at your option)
+   the Free Software Foundation, either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
index 55bd3df..461886e 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of character set conversion.
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index bad996f..054d7dd 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of <string.h> substitute.
-   Copyright (C) 2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
 
 #include <string.h>
 
-#include "verify.h"
-
 /* Check that NULL can be passed through varargs as a pointer type,
    per POSIX 2008.  */
-verify (sizeof NULL == sizeof (void *));
+static_assert (sizeof NULL == sizeof (void *));
 
 int
 main (void)
index 4ac1ac5..4104216 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of <strings.h> substitute.
-   Copyright (C) 2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 6470ebc..2102d74 100644 (file)
@@ -1,10 +1,10 @@
 /*
- * Copyright (C) 2010-2021 Free Software Foundation, Inc.
+ * Copyright (C) 2010-2023 Free Software Foundation, Inc.
  * Written by Eric Blake
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
+ * 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,
index 3aa83c6..7d770b5 100644 (file)
@@ -1,9 +1,9 @@
 /*
- * Copyright (C) 2011-2021 Free Software Foundation, Inc.
+ * Copyright (C) 2011-2023 Free Software Foundation, Inc.
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
+ * the Free Software Foundation, either version 3 of the License, or
  * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
index 5f2b193..24cb4eb 100644 (file)
@@ -1,9 +1,9 @@
 /*
- * Copyright (C) 2011-2021 Free Software Foundation, Inc.
+ * Copyright (C) 2011-2023 Free Software Foundation, Inc.
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
+ * the Free Software Foundation, either version 3 of the License, or
  * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
@@ -239,5 +239,67 @@ main (void)
     ASSERT (errno == 0);
   }
 
+  /* Binary integer syntax.  */
+  {
+    const char input[] = "0b111010";
+    char *ptr;
+    long long result;
+    errno = 0;
+    result = strtoll (input, &ptr, 10);
+    ASSERT (result == 0LL);
+    ASSERT (ptr == input + 1);
+    ASSERT (errno == 0);
+  }
+  {
+    const char input[] = "0b111010";
+    char *ptr;
+    long long result;
+    errno = 0;
+    result = strtoll (input, &ptr, 2);
+    ASSERT (result == 58LL);
+    ASSERT (ptr == input + 8);
+    ASSERT (errno == 0);
+  }
+  {
+    const char input[] = "0b111010";
+    char *ptr;
+    long long result;
+    errno = 0;
+    result = strtoll (input, &ptr, 0);
+    ASSERT (result == 58LL);
+    ASSERT (ptr == input + 8);
+    ASSERT (errno == 0);
+  }
+  {
+    const char input[] = "0b";
+    char *ptr;
+    long long result;
+    errno = 0;
+    result = strtoll (input, &ptr, 10);
+    ASSERT (result == 0LL);
+    ASSERT (ptr == input + 1);
+    ASSERT (errno == 0);
+  }
+  {
+    const char input[] = "0b";
+    char *ptr;
+    long long result;
+    errno = 0;
+    result = strtoll (input, &ptr, 2);
+    ASSERT (result == 0LL);
+    ASSERT (ptr == input + 1);
+    ASSERT (errno == 0);
+  }
+  {
+    const char input[] = "0b";
+    char *ptr;
+    long long result;
+    errno = 0;
+    result = strtoll (input, &ptr, 0);
+    ASSERT (result == 0LL);
+    ASSERT (ptr == input + 1);
+    ASSERT (errno == 0);
+  }
+
   return 0;
 }
index 95a3fbf..c3cd831 100644 (file)
@@ -1,9 +1,9 @@
 /* Tests of symlink.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -25,7 +25,6 @@ SIGNATURE_CHECK (symlink, int, (char const *, char const *));
 
 #include <fcntl.h>
 #include <errno.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <sys/stat.h>
index 3128d0a..46a5c77 100644 (file)
@@ -1,9 +1,9 @@
 /* Tests of symlink.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 151bf31..dd053d4 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of <sys/ioctl.h> substitute.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 1bf5336..574e231 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of <sys/random.h> substitute.
-   Copyright (C) 2020-2021 Free Software Foundation, Inc.
+   Copyright (C) 2020-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 48667ce..f8905ce 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of <sys/select.h> substitute.
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
 
 #include <sys/select.h>
 
+/* Check that the 'struct timeval' type is defined.  */
+struct timeval a;
+
+/* Check that a.tv_sec is wide enough to hold a time_t, ignoring
+   signedness issues.  */
+typedef int verify_tv_sec_type[sizeof (time_t) <= sizeof (a.tv_sec) ? 1 : -1];
+
+/* Check that sigset_t is defined.  */
+sigset_t t2;
+
 #include "signature.h"
 
 /* The following may be macros without underlying functions, so only
@@ -37,16 +47,6 @@ SIGNATURE_CHECK (FD_SET, int, (int, fd_set *));
 SIGNATURE_CHECK (FD_ZERO, void, (fd_set *));
 #endif
 
-/* Check that the 'struct timeval' type is defined.  */
-struct timeval a;
-
-/* Check that a.tv_sec is wide enough to hold a time_t, ignoring
-   signedness issues.  */
-typedef int verify_tv_sec_type[sizeof (time_t) <= sizeof (a.tv_sec) ? 1 : -1];
-
-/* Check that sigset_t is defined.  */
-sigset_t t2;
-
 int
 main (void)
 {
index 49f4958..02ec637 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of <sys/socket.h> substitute.
-   Copyright (C) 2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -20,8 +20,6 @@
 
 #include <sys/socket.h>
 
-#include <errno.h>
-
 #if HAVE_SHUTDOWN
 /* Check some integer constant expressions.  */
 int a[] = { SHUT_RD, SHUT_WR, SHUT_RDWR };
@@ -40,6 +38,8 @@ struct iovec io;
 /* Check that a minimal set of 'struct msghdr' is defined.  */
 struct msghdr msg;
 
+#include <errno.h>
+
 int
 main (void)
 {
index e5f88c0..8453fc4 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of <sys/stat.h> substitute.
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -20,8 +20,6 @@
 
 #include <sys/stat.h>
 
-#include "verify.h"
-
 /* Check the existence of some macros.  */
 int a[] =
   {
@@ -61,264 +59,264 @@ int a[] =
 
 /* Sanity checks.  */
 
-verify (S_IRWXU == (S_IRUSR | S_IWUSR | S_IXUSR));
-verify (S_IRWXG == (S_IRGRP | S_IWGRP | S_IXGRP));
-verify (S_IRWXO == (S_IROTH | S_IWOTH | S_IXOTH));
+static_assert (S_IRWXU == (S_IRUSR | S_IWUSR | S_IXUSR));
+static_assert (S_IRWXG == (S_IRGRP | S_IWGRP | S_IXGRP));
+static_assert (S_IRWXO == (S_IROTH | S_IWOTH | S_IXOTH));
 
 #ifdef S_IFBLK
-verify (S_ISBLK (S_IFBLK));
+static_assert (S_ISBLK (S_IFBLK));
 #endif
-verify (!S_ISBLK (S_IFCHR));
-verify (!S_ISBLK (S_IFDIR));
-verify (!S_ISBLK (S_IFIFO));
-verify (!S_ISBLK (S_IFREG));
+static_assert (!S_ISBLK (S_IFCHR));
+static_assert (!S_ISBLK (S_IFDIR));
+static_assert (!S_ISBLK (S_IFIFO));
+static_assert (!S_ISBLK (S_IFREG));
 #ifdef S_IFLNK
-verify (!S_ISBLK (S_IFLNK));
+static_assert (!S_ISBLK (S_IFLNK));
 #endif
 #ifdef S_IFSOCK
-verify (!S_ISBLK (S_IFSOCK));
+static_assert (!S_ISBLK (S_IFSOCK));
 #endif
 
 #ifdef S_IFBLK
-verify (!S_ISCHR (S_IFBLK));
+static_assert (!S_ISCHR (S_IFBLK));
 #endif
-verify (S_ISCHR (S_IFCHR));
-verify (!S_ISCHR (S_IFDIR));
-verify (!S_ISCHR (S_IFIFO));
-verify (!S_ISCHR (S_IFREG));
+static_assert (S_ISCHR (S_IFCHR));
+static_assert (!S_ISCHR (S_IFDIR));
+static_assert (!S_ISCHR (S_IFIFO));
+static_assert (!S_ISCHR (S_IFREG));
 #ifdef S_IFLNK
-verify (!S_ISCHR (S_IFLNK));
+static_assert (!S_ISCHR (S_IFLNK));
 #endif
 #ifdef S_IFSOCK
-verify (!S_ISCHR (S_IFSOCK));
+static_assert (!S_ISCHR (S_IFSOCK));
 #endif
 
 #ifdef S_IFBLK
-verify (!S_ISDIR (S_IFBLK));
+static_assert (!S_ISDIR (S_IFBLK));
 #endif
-verify (!S_ISDIR (S_IFCHR));
-verify (S_ISDIR (S_IFDIR));
-verify (!S_ISDIR (S_IFIFO));
-verify (!S_ISDIR (S_IFREG));
+static_assert (!S_ISDIR (S_IFCHR));
+static_assert (S_ISDIR (S_IFDIR));
+static_assert (!S_ISDIR (S_IFIFO));
+static_assert (!S_ISDIR (S_IFREG));
 #ifdef S_IFLNK
-verify (!S_ISDIR (S_IFLNK));
+static_assert (!S_ISDIR (S_IFLNK));
 #endif
 #ifdef S_IFSOCK
-verify (!S_ISDIR (S_IFSOCK));
+static_assert (!S_ISDIR (S_IFSOCK));
 #endif
 
 #ifdef S_IFBLK
-verify (!S_ISFIFO (S_IFBLK));
+static_assert (!S_ISFIFO (S_IFBLK));
 #endif
-verify (!S_ISFIFO (S_IFCHR));
-verify (!S_ISFIFO (S_IFDIR));
-verify (S_ISFIFO (S_IFIFO));
-verify (!S_ISFIFO (S_IFREG));
+static_assert (!S_ISFIFO (S_IFCHR));
+static_assert (!S_ISFIFO (S_IFDIR));
+static_assert (S_ISFIFO (S_IFIFO));
+static_assert (!S_ISFIFO (S_IFREG));
 #ifdef S_IFLNK
-verify (!S_ISFIFO (S_IFLNK));
+static_assert (!S_ISFIFO (S_IFLNK));
 #endif
 #ifdef S_IFSOCK
-verify (!S_ISFIFO (S_IFSOCK));
+static_assert (!S_ISFIFO (S_IFSOCK));
 #endif
 
 #ifdef S_IFBLK
-verify (!S_ISREG (S_IFBLK));
+static_assert (!S_ISREG (S_IFBLK));
 #endif
-verify (!S_ISREG (S_IFCHR));
-verify (!S_ISREG (S_IFDIR));
-verify (!S_ISREG (S_IFIFO));
-verify (S_ISREG (S_IFREG));
+static_assert (!S_ISREG (S_IFCHR));
+static_assert (!S_ISREG (S_IFDIR));
+static_assert (!S_ISREG (S_IFIFO));
+static_assert (S_ISREG (S_IFREG));
 #ifdef S_IFLNK
-verify (!S_ISREG (S_IFLNK));
+static_assert (!S_ISREG (S_IFLNK));
 #endif
 #ifdef S_IFSOCK
-verify (!S_ISREG (S_IFSOCK));
+static_assert (!S_ISREG (S_IFSOCK));
 #endif
 
 #ifdef S_IFBLK
-verify (!S_ISLNK (S_IFBLK));
+static_assert (!S_ISLNK (S_IFBLK));
 #endif
-verify (!S_ISLNK (S_IFCHR));
-verify (!S_ISLNK (S_IFDIR));
-verify (!S_ISLNK (S_IFIFO));
-verify (!S_ISLNK (S_IFREG));
+static_assert (!S_ISLNK (S_IFCHR));
+static_assert (!S_ISLNK (S_IFDIR));
+static_assert (!S_ISLNK (S_IFIFO));
+static_assert (!S_ISLNK (S_IFREG));
 #ifdef S_IFLNK
-verify (S_ISLNK (S_IFLNK));
+static_assert (S_ISLNK (S_IFLNK));
 #endif
 #ifdef S_IFSOCK
-verify (!S_ISLNK (S_IFSOCK));
+static_assert (!S_ISLNK (S_IFSOCK));
 #endif
 
 #ifdef S_IFBLK
-verify (!S_ISSOCK (S_IFBLK));
+static_assert (!S_ISSOCK (S_IFBLK));
 #endif
-verify (!S_ISSOCK (S_IFCHR));
-verify (!S_ISSOCK (S_IFDIR));
-verify (!S_ISSOCK (S_IFIFO));
-verify (!S_ISSOCK (S_IFREG));
+static_assert (!S_ISSOCK (S_IFCHR));
+static_assert (!S_ISSOCK (S_IFDIR));
+static_assert (!S_ISSOCK (S_IFIFO));
+static_assert (!S_ISSOCK (S_IFREG));
 #ifdef S_IFLNK
-verify (!S_ISSOCK (S_IFLNK));
+static_assert (!S_ISSOCK (S_IFLNK));
 #endif
 #ifdef S_IFSOCK
-verify (S_ISSOCK (S_IFSOCK));
+static_assert (S_ISSOCK (S_IFSOCK));
 #endif
 
 #ifdef S_IFBLK
-verify (!S_ISDOOR (S_IFBLK));
+static_assert (!S_ISDOOR (S_IFBLK));
 #endif
-verify (!S_ISDOOR (S_IFCHR));
-verify (!S_ISDOOR (S_IFDIR));
-verify (!S_ISDOOR (S_IFIFO));
-verify (!S_ISDOOR (S_IFREG));
+static_assert (!S_ISDOOR (S_IFCHR));
+static_assert (!S_ISDOOR (S_IFDIR));
+static_assert (!S_ISDOOR (S_IFIFO));
+static_assert (!S_ISDOOR (S_IFREG));
 #ifdef S_IFLNK
-verify (!S_ISDOOR (S_IFLNK));
+static_assert (!S_ISDOOR (S_IFLNK));
 #endif
 #ifdef S_IFSOCK
-verify (!S_ISDOOR (S_IFSOCK));
+static_assert (!S_ISDOOR (S_IFSOCK));
 #endif
 
 #ifdef S_IFBLK
-verify (!S_ISMPB (S_IFBLK));
+static_assert (!S_ISMPB (S_IFBLK));
 #endif
-verify (!S_ISMPB (S_IFCHR));
-verify (!S_ISMPB (S_IFDIR));
-verify (!S_ISMPB (S_IFIFO));
-verify (!S_ISMPB (S_IFREG));
+static_assert (!S_ISMPB (S_IFCHR));
+static_assert (!S_ISMPB (S_IFDIR));
+static_assert (!S_ISMPB (S_IFIFO));
+static_assert (!S_ISMPB (S_IFREG));
 #ifdef S_IFLNK
-verify (!S_ISMPB (S_IFLNK));
+static_assert (!S_ISMPB (S_IFLNK));
 #endif
 #ifdef S_IFSOCK
-verify (!S_ISMPB (S_IFSOCK));
+static_assert (!S_ISMPB (S_IFSOCK));
 #endif
 
 #ifdef S_IFBLK
-verify (!S_ISMPX (S_IFBLK));
+static_assert (!S_ISMPX (S_IFBLK));
 #endif
-verify (!S_ISMPX (S_IFCHR));
-verify (!S_ISMPX (S_IFDIR));
-verify (!S_ISMPX (S_IFIFO));
-verify (!S_ISMPX (S_IFREG));
+static_assert (!S_ISMPX (S_IFCHR));
+static_assert (!S_ISMPX (S_IFDIR));
+static_assert (!S_ISMPX (S_IFIFO));
+static_assert (!S_ISMPX (S_IFREG));
 #ifdef S_IFLNK
-verify (!S_ISMPX (S_IFLNK));
+static_assert (!S_ISMPX (S_IFLNK));
 #endif
 #ifdef S_IFSOCK
-verify (!S_ISMPX (S_IFSOCK));
+static_assert (!S_ISMPX (S_IFSOCK));
 #endif
 
 #ifdef S_IFBLK
-verify (!S_ISNAM (S_IFBLK));
+static_assert (!S_ISNAM (S_IFBLK));
 #endif
-verify (!S_ISNAM (S_IFCHR));
-verify (!S_ISNAM (S_IFDIR));
-verify (!S_ISNAM (S_IFIFO));
-verify (!S_ISNAM (S_IFREG));
+static_assert (!S_ISNAM (S_IFCHR));
+static_assert (!S_ISNAM (S_IFDIR));
+static_assert (!S_ISNAM (S_IFIFO));
+static_assert (!S_ISNAM (S_IFREG));
 #ifdef S_IFLNK
-verify (!S_ISNAM (S_IFLNK));
+static_assert (!S_ISNAM (S_IFLNK));
 #endif
 #ifdef S_IFSOCK
-verify (!S_ISNAM (S_IFSOCK));
+static_assert (!S_ISNAM (S_IFSOCK));
 #endif
 
 #ifdef S_IFBLK
-verify (!S_ISNWK (S_IFBLK));
+static_assert (!S_ISNWK (S_IFBLK));
 #endif
-verify (!S_ISNWK (S_IFCHR));
-verify (!S_ISNWK (S_IFDIR));
-verify (!S_ISNWK (S_IFIFO));
-verify (!S_ISNWK (S_IFREG));
+static_assert (!S_ISNWK (S_IFCHR));
+static_assert (!S_ISNWK (S_IFDIR));
+static_assert (!S_ISNWK (S_IFIFO));
+static_assert (!S_ISNWK (S_IFREG));
 #ifdef S_IFLNK
-verify (!S_ISNWK (S_IFLNK));
+static_assert (!S_ISNWK (S_IFLNK));
 #endif
 #ifdef S_IFSOCK
-verify (!S_ISNWK (S_IFSOCK));
+static_assert (!S_ISNWK (S_IFSOCK));
 #endif
 
 #ifdef S_IFBLK
-verify (!S_ISPORT (S_IFBLK));
+static_assert (!S_ISPORT (S_IFBLK));
 #endif
-verify (!S_ISPORT (S_IFCHR));
-verify (!S_ISPORT (S_IFDIR));
-verify (!S_ISPORT (S_IFIFO));
-verify (!S_ISPORT (S_IFREG));
+static_assert (!S_ISPORT (S_IFCHR));
+static_assert (!S_ISPORT (S_IFDIR));
+static_assert (!S_ISPORT (S_IFIFO));
+static_assert (!S_ISPORT (S_IFREG));
 #ifdef S_IFLNK
-verify (!S_ISPORT (S_IFLNK));
+static_assert (!S_ISPORT (S_IFLNK));
 #endif
 #ifdef S_IFSOCK
-verify (!S_ISPORT (S_IFSOCK));
+static_assert (!S_ISPORT (S_IFSOCK));
 #endif
 
 #ifdef S_IFBLK
-verify (!S_ISCTG (S_IFBLK));
+static_assert (!S_ISCTG (S_IFBLK));
 #endif
-verify (!S_ISCTG (S_IFCHR));
-verify (!S_ISCTG (S_IFDIR));
-verify (!S_ISCTG (S_IFIFO));
-verify (!S_ISCTG (S_IFREG));
+static_assert (!S_ISCTG (S_IFCHR));
+static_assert (!S_ISCTG (S_IFDIR));
+static_assert (!S_ISCTG (S_IFIFO));
+static_assert (!S_ISCTG (S_IFREG));
 #ifdef S_IFLNK
-verify (!S_ISCTG (S_IFLNK));
+static_assert (!S_ISCTG (S_IFLNK));
 #endif
 #ifdef S_IFSOCK
-verify (!S_ISCTG (S_IFSOCK));
+static_assert (!S_ISCTG (S_IFSOCK));
 #endif
 
 #ifdef S_IFBLK
-verify (!S_ISOFD (S_IFBLK));
+static_assert (!S_ISOFD (S_IFBLK));
 #endif
-verify (!S_ISOFD (S_IFCHR));
-verify (!S_ISOFD (S_IFDIR));
-verify (!S_ISOFD (S_IFIFO));
-verify (!S_ISOFD (S_IFREG));
+static_assert (!S_ISOFD (S_IFCHR));
+static_assert (!S_ISOFD (S_IFDIR));
+static_assert (!S_ISOFD (S_IFIFO));
+static_assert (!S_ISOFD (S_IFREG));
 #ifdef S_IFLNK
-verify (!S_ISOFD (S_IFLNK));
+static_assert (!S_ISOFD (S_IFLNK));
 #endif
 #ifdef S_IFSOCK
-verify (!S_ISOFD (S_IFSOCK));
+static_assert (!S_ISOFD (S_IFSOCK));
 #endif
 
 #ifdef S_IFBLK
-verify (!S_ISOFL (S_IFBLK));
+static_assert (!S_ISOFL (S_IFBLK));
 #endif
-verify (!S_ISOFL (S_IFCHR));
-verify (!S_ISOFL (S_IFDIR));
-verify (!S_ISOFL (S_IFIFO));
-verify (!S_ISOFL (S_IFREG));
+static_assert (!S_ISOFL (S_IFCHR));
+static_assert (!S_ISOFL (S_IFDIR));
+static_assert (!S_ISOFL (S_IFIFO));
+static_assert (!S_ISOFL (S_IFREG));
 #ifdef S_IFLNK
-verify (!S_ISOFL (S_IFLNK));
+static_assert (!S_ISOFL (S_IFLNK));
 #endif
 #ifdef S_IFSOCK
-verify (!S_ISOFL (S_IFSOCK));
+static_assert (!S_ISOFL (S_IFSOCK));
 #endif
 
 #ifdef S_IFBLK
-verify (!S_ISWHT (S_IFBLK));
+static_assert (!S_ISWHT (S_IFBLK));
 #endif
-verify (!S_ISWHT (S_IFCHR));
-verify (!S_ISWHT (S_IFDIR));
-verify (!S_ISWHT (S_IFIFO));
-verify (!S_ISWHT (S_IFREG));
+static_assert (!S_ISWHT (S_IFCHR));
+static_assert (!S_ISWHT (S_IFDIR));
+static_assert (!S_ISWHT (S_IFIFO));
+static_assert (!S_ISWHT (S_IFREG));
 #ifdef S_IFLNK
-verify (!S_ISWHT (S_IFLNK));
+static_assert (!S_ISWHT (S_IFLNK));
 #endif
 #ifdef S_IFSOCK
-verify (!S_ISWHT (S_IFSOCK));
+static_assert (!S_ISWHT (S_IFSOCK));
 #endif
 
 /* POSIX 2008 requires traditional encoding of permission constants.  */
-verify (S_IRWXU == 00700);
-verify (S_IRUSR == 00400);
-verify (S_IWUSR == 00200);
-verify (S_IXUSR == 00100);
-verify (S_IRWXG == 00070);
-verify (S_IRGRP == 00040);
-verify (S_IWGRP == 00020);
-verify (S_IXGRP == 00010);
-verify (S_IRWXO == 00007);
-verify (S_IROTH == 00004);
-verify (S_IWOTH == 00002);
-verify (S_IXOTH == 00001);
-verify (S_ISUID == 04000);
-verify (S_ISGID == 02000);
-verify (S_ISVTX == 01000);
+static_assert (S_IRWXU == 00700);
+static_assert (S_IRUSR == 00400);
+static_assert (S_IWUSR == 00200);
+static_assert (S_IXUSR == 00100);
+static_assert (S_IRWXG == 00070);
+static_assert (S_IRGRP == 00040);
+static_assert (S_IWGRP == 00020);
+static_assert (S_IXGRP == 00010);
+static_assert (S_IRWXO == 00007);
+static_assert (S_IROTH == 00004);
+static_assert (S_IWOTH == 00002);
+static_assert (S_IXOTH == 00001);
+static_assert (S_ISUID == 04000);
+static_assert (S_ISGID == 02000);
+static_assert (S_ISVTX == 01000);
 
 #if ((0 <= UTIME_NOW && UTIME_NOW < 1000000000)           \
      || (0 <= UTIME_OMIT && UTIME_OMIT < 1000000000)      \
index 764321b..f0df8b8 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of <sys/time.h> substitute.
-   Copyright (C) 2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index a0bcc04..f9f2bb7 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of <sys/types.h> substitute.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 723f36b..3ecd170 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of <sys/uio.h> substitute.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 595956a..7fbef06 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of <sys/wait.h> substitute.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 4508f57..376a315 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of macros shared between <sys/wait.h> and <stdlib.h>.
-   Copyright (C) 2010-2021 Free Software Foundation, Inc.
+   Copyright (C) 2010-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -40,14 +40,14 @@ test_sys_wait_macros (void)
     }
   i = WEXITSTATUS (i) + WSTOPSIG (i) + WTERMSIG (i);
 
+#if 0
   switch (i)
     {
-#if 0
   /* Gnulib doesn't guarantee these, yet.  */
     case WNOHANG:
     case WUNTRACED:
-#endif
       break;
     }
+#endif
   return 0;
 }
index f4213d4..9312d8e 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of gl_thread_create () macro.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 69d876d..3073605 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of gl_thread_self () macro.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
diff --git a/gnulib-tests/test-time-h.c b/gnulib-tests/test-time-h.c
new file mode 100644 (file)
index 0000000..2240705
--- /dev/null
@@ -0,0 +1,43 @@
+/* Test of <time.h> substitute.
+   Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   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/>.  */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007.  */
+
+#include <config.h>
+
+#include <time.h>
+
+/* Check that the types are all defined.  */
+struct timespec t1;
+#if 0
+/* POSIX:2008 does not require pid_t in <time.h> unconditionally, and indeed
+   it's missing on Mac OS X 10.5, FreeBSD 6.4, OpenBSD 4.9, mingw.  */
+pid_t t2;
+#endif
+
+/* Check that NULL can be passed through varargs as a pointer type,
+   per POSIX 2008.  */
+static_assert (sizeof NULL == sizeof (void *));
+
+/* Check that TIME_UTC is defined and a positive integer.  */
+int t3 = TIME_UTC;
+static_assert (TIME_UTC > 0);
+
+int
+main (void)
+{
+  return 0;
+}
index e5a4522..3986ee2 100644 (file)
@@ -1,9 +1,9 @@
-/* Test of <time.h> substitute.
-   Copyright (C) 2007, 2009-2021 Free Software Foundation, Inc.
+/* Test of time() function.
+   Copyright (C) 2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
 
-/* Written by Bruno Haible <bruno@clisp.org>, 2007.  */
+/* Written by Bruno Haible.  */
 
 #include <config.h>
 
 #include <time.h>
 
-#include "verify.h"
+#include "signature.h"
+SIGNATURE_CHECK (time, time_t, (time_t *));
 
-/* Check that the types are all defined.  */
-struct timespec t1;
-#if 0
-/* POSIX:2008 does not require pid_t in <time.h> unconditionally, and indeed
-   it's missing on Mac OS X 10.5, FreeBSD 6.4, OpenBSD 4.9, mingw.  */
-pid_t t2;
-#endif
+#include <sys/time.h>
 
-/* Check that NULL can be passed through varargs as a pointer type,
-   per POSIX 2008.  */
-verify (sizeof NULL == sizeof (void *));
-
-/* Check that TIME_UTC is defined and a positive integer.  */
-int t3 = TIME_UTC;
-verify (TIME_UTC > 0);
+#include "macros.h"
 
 int
 main (void)
 {
+  /* Check consistency of time() with gettimeofday().tv_sec.  */
+  struct timeval tv1;
+  struct timeval tv2;
+  time_t tt3;
+
+  /* Wait until gettimeofday() reports an increase in tv_sec.  */
+  ASSERT (gettimeofday (&tv1, NULL) == 0);
+  do
+    ASSERT (gettimeofday (&tv2, NULL) == 0);
+  while (tv2.tv_sec == tv1.tv_sec);
+  /* We are now at the beginning of a second.  Test whether time() reports
+     the new second or the previous one.  */
+  tt3 = time (NULL);
+  ASSERT (tt3 >= tv2.tv_sec);
+
   return 0;
 }
index 4af9f83..de7cb6f 100644 (file)
@@ -1,9 +1,9 @@
 /* Test timespec functions.
-   Copyright 2015-2021 Free Software Foundation, Inc.
+   Copyright 2015-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -23,7 +23,6 @@
 #include "intprops.h"
 #include "macros.h"
 
-#include <stdbool.h>
 #include <limits.h>
 
 static struct { int s; int ns; } const prototype[] =
diff --git a/gnulib-tests/test-trim.c b/gnulib-tests/test-trim.c
new file mode 100644 (file)
index 0000000..e2f5043
--- /dev/null
@@ -0,0 +1,158 @@
+/* Tests of removing leading and/or trailing whitespaces.
+   Copyright (C) 2023 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   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/>.  */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2023.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "trim.h"
+
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "macros.h"
+
+static void
+test_ascii (void)
+{
+  {
+    char *result = trim ("");
+    ASSERT (strcmp (result, "") == 0);
+    free (result);
+    result = trim_leading ("");
+    ASSERT (strcmp (result, "") == 0);
+    free (result);
+    result = trim_trailing ("");
+    ASSERT (strcmp (result, "") == 0);
+    free (result);
+  }
+
+  {
+    char *result = trim ("  ");
+    ASSERT (strcmp (result, "") == 0);
+    free (result);
+    result = trim_leading ("  ");
+    ASSERT (strcmp (result, "") == 0);
+    free (result);
+    result = trim_trailing ("  ");
+    ASSERT (strcmp (result, "") == 0);
+    free (result);
+  }
+
+  {
+    char *result = trim ("Hello world");
+    ASSERT (strcmp (result, "Hello world") == 0);
+    free (result);
+    result = trim_leading ("Hello world");
+    ASSERT (strcmp (result, "Hello world") == 0);
+    free (result);
+    result = trim_trailing ("Hello world");
+    ASSERT (strcmp (result, "Hello world") == 0);
+    free (result);
+  }
+
+  {
+    char *result = trim ("   Hello world");
+    ASSERT (strcmp (result, "Hello world") == 0);
+    free (result);
+    result = trim_leading ("   Hello world");
+    ASSERT (strcmp (result, "Hello world") == 0);
+    free (result);
+    result = trim_trailing ("   Hello world");
+    ASSERT (strcmp (result, "   Hello world") == 0);
+    free (result);
+  }
+
+  {
+    char *result = trim ("Hello world  ");
+    ASSERT (strcmp (result, "Hello world") == 0);
+    free (result);
+    result = trim_leading ("Hello world  ");
+    ASSERT (strcmp (result, "Hello world  ") == 0);
+    free (result);
+    result = trim_trailing ("Hello world  ");
+    ASSERT (strcmp (result, "Hello world") == 0);
+    free (result);
+  }
+
+  {
+    char *result = trim ("   Hello world  ");
+    ASSERT (strcmp (result, "Hello world") == 0);
+    free (result);
+    result = trim_leading ("   Hello world  ");
+    ASSERT (strcmp (result, "Hello world  ") == 0);
+    free (result);
+    result = trim_trailing ("   Hello world  ");
+    ASSERT (strcmp (result, "   Hello world") == 0);
+    free (result);
+  }
+}
+
+int
+main (int argc, char *argv[])
+{
+  /* configure should already have checked that the locale is supported.  */
+  if (setlocale (LC_ALL, "") == NULL)
+    return 1;
+
+  /* Test ASCII arguments.  */
+  test_ascii ();
+
+  if (argc > 1)
+    switch (argv[1][0])
+      {
+      case '1':
+        /* C or POSIX locale.  */
+        return 0;
+
+      case '2':
+        /* Locale encoding is UTF-8.  */
+        { /* U+2002 EN SPACE */
+          char *result = trim ("\342\200\202\302\267foo\342\200\202");
+          ASSERT (strcmp (result, "\302\267foo") == 0);
+          free (result);
+        }
+        { /* U+3000 IDEOGRAPHIC SPACE */
+          char *result = trim ("\343\200\200\302\267foo\343\200\200");
+          ASSERT (strcmp (result, "\302\267foo") == 0);
+          free (result);
+        }
+        return 0;
+
+      case '3':
+        /* Locale encoding is GB18030.  */
+        #if !(defined __FreeBSD__ || defined __DragonFly__ || defined __sun)
+        { /* U+2002 EN SPACE */
+          char *result = trim ("\201\066\243\070\241\244foo\201\066\243\070");
+          ASSERT (strcmp (result, "\241\244foo") == 0);
+          free (result);
+        }
+        #endif
+        #if !(defined __FreeBSD__ || defined __DragonFly__)
+        { /* U+3000 IDEOGRAPHIC SPACE */
+          char *result = trim ("\241\241\241\244foo\241\241");
+          ASSERT (strcmp (result, "\241\244foo") == 0);
+          free (result);
+        }
+        #endif
+        return 0;
+      }
+
+  return 1;
+}
diff --git a/gnulib-tests/test-trim1.sh b/gnulib-tests/test-trim1.sh
new file mode 100755 (executable)
index 0000000..7d6ffe0
--- /dev/null
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+# Test in the "C" or "POSIX" locale.
+LC_ALL=C \
+${CHECKER} ./test-trim${EXEEXT} 1
diff --git a/gnulib-tests/test-trim2.sh b/gnulib-tests/test-trim2.sh
new file mode 100755 (executable)
index 0000000..1c14bd5
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+# Test whether a specific UTF-8 locale is installed.
+: "${LOCALE_FR_UTF8=fr_FR.UTF-8}"
+if test $LOCALE_FR_UTF8 = none; then
+  if test -f /usr/bin/localedef; then
+    echo "Skipping test: no french Unicode locale is installed"
+  else
+    echo "Skipping test: no french Unicode locale is supported"
+  fi
+  exit 77
+fi
+
+LC_ALL=$LOCALE_FR_UTF8 \
+${CHECKER} ./test-trim${EXEEXT} 2
diff --git a/gnulib-tests/test-trim3.sh b/gnulib-tests/test-trim3.sh
new file mode 100755 (executable)
index 0000000..1da4307
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+# Test whether a specific GB18030 locale is installed.
+: "${LOCALE_ZH_CN=zh_CN.GB18030}"
+if test $LOCALE_ZH_CN = none; then
+  if test -f /usr/bin/localedef; then
+    echo "Skipping test: no transitional chinese locale is installed"
+  else
+    echo "Skipping test: no transitional chinese locale is supported"
+  fi
+  exit 77
+fi
+
+LC_ALL=$LOCALE_ZH_CN \
+${CHECKER} ./test-trim${EXEEXT} 3
index ca7422c..08c5832 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of <unistd.h> substitute.
-   Copyright (C) 2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
 
 #include <unistd.h>
 
-#include "verify.h"
-
 /* Check that NULL can be passed through varargs as a pointer type,
    per POSIX 2008.  */
-verify (sizeof NULL == sizeof (void *));
+static_assert (sizeof NULL == sizeof (void *));
 
 /* Check that the various SEEK_* macros are defined.  */
 int sk[] = { SEEK_CUR, SEEK_END, SEEK_SET };
index e61fbbc..d8e5b01 100644 (file)
@@ -1,9 +1,9 @@
 /* Tests of unsetenv.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -32,7 +32,8 @@ SIGNATURE_CHECK (unsetenv, int, (char const *));
 int
 main (void)
 {
-  char entry[] = "b=2";
+  /* Static to pacify gcc -Wanalyzer-putenv-of-auto-var.  */
+  static char entry[] = "b=2";
 
   /* Test removal when multiple entries present.  */
   ASSERT (putenv ((char *) "a=1") == 0);
index 7813f1e..a84ae34 100755 (executable)
@@ -1,11 +1,11 @@
 #!/bin/sh
 # Test suite for update-copyright.
-# Copyright (C) 2009-2021 Free Software Foundation, Inc.
+# Copyright (C) 2009-2023 Free Software Foundation, Inc.
 # This file is part of the GNUlib Library.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
+# 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,
@@ -28,7 +28,7 @@ PATH=$abs_aux_dir:$PATH
 export PATH
 
 TMP_BASE=update-copyright.test
-trap 'rm -f $TMP_BASE*' 0 1 2 3 15
+trap 'rm -f $TMP_BASE*' EXIT HUP INT QUIT TERM
 
 ## --------------------------------- ##
 ## Skip if user does not have perl.  ##
@@ -68,7 +68,7 @@ echo a > $TMP-in
 # Skip this test if Perl is too old.  FIXME: 5.8.0 is just a guess.
 # We have a report that 5.6.1 is inadequate and that 5.8.0 works.
 perl -e 'require 5.8.0' || {
-  echo '$0: skipping this test; Perl version is too old' 1>&2
+  echo "$0: skipping this test; Perl version is too old" 1>&2
   exit 77
 }
 
@@ -115,6 +115,10 @@ Copyright (C) 1990-2005, 2007-2009 Acme, Inc.
 # Copyright (C) 1990-2005, 2007-2009 Free Software
 # Foundation, Inc.
 EOF
+cat > $TMP.8 <<EOF
+Copyright (C) 2008 Free Software Foundation, Inc.
+Copyright (C) 2008 Free Software Foundation, Inc.
+EOF
 
 UPDATE_COPYRIGHT_YEAR=2009 \
   update-copyright $TMP.? 1> $TMP-stdout 2> $TMP-stderr
@@ -157,6 +161,10 @@ Copyright (C) 1990-2005, 2007-2009 Acme, Inc.
 # Copyright (C) 1990-2005, 2007-2009 Free Software
 # Foundation, Inc.
 EOF
+compare - $TMP.8 <<EOF || exit 1
+Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+EOF
 
 UPDATE_COPYRIGHT_YEAR=2010 UPDATE_COPYRIGHT_USE_INTERVALS=1 \
   update-copyright $TMP.? 1> $TMP-stdout 2> $TMP-stderr
index 9d99743..635654b 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of vasnprintf() and asnprintf() functions.
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
diff --git a/gnulib-tests/test-vasprintf.c b/gnulib-tests/test-vasprintf.c
deleted file mode 100644 (file)
index cbebce7..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-/* Test of vasprintf() and asprintf() functions.
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
-
-   This 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/>.  */
-
-/* Written by Bruno Haible <bruno@clisp.org>, 2007.  */
-
-#include <config.h>
-
-#include <stdio.h>
-
-#include "signature.h"
-SIGNATURE_CHECK (asprintf, int, (char **, char const *, ...));
-SIGNATURE_CHECK (vasprintf, int, (char **, char const *, va_list));
-
-#include <stdarg.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "macros.h"
-
-static int
-my_asprintf (char **result, const char *format, ...)
-{
-  va_list args;
-  int ret;
-
-  va_start (args, format);
-  ret = vasprintf (result, format, args);
-  va_end (args);
-  return ret;
-}
-
-static void
-test_vasprintf ()
-{
-  int repeat;
-
-  for (repeat = 0; repeat <= 8; repeat++)
-    {
-      char *result;
-      int retval = my_asprintf (&result, "%d", 12345);
-      ASSERT (retval == 5);
-      ASSERT (result != NULL);
-      ASSERT (strcmp (result, "12345") == 0);
-      free (result);
-    }
-
-  for (repeat = 0; repeat <= 8; repeat++)
-    {
-      char *result;
-      int retval = my_asprintf (&result, "%08lx", 12345UL);
-      ASSERT (retval == 8);
-      ASSERT (result != NULL);
-      ASSERT (strcmp (result, "00003039") == 0);
-      free (result);
-    }
-}
-
-static void
-test_asprintf ()
-{
-  int repeat;
-
-  for (repeat = 0; repeat <= 8; repeat++)
-    {
-      char *result;
-      int retval = asprintf (&result, "%d", 12345);
-      ASSERT (retval == 5);
-      ASSERT (result != NULL);
-      ASSERT (strcmp (result, "12345") == 0);
-      free (result);
-    }
-
-  for (repeat = 0; repeat <= 8; repeat++)
-    {
-      char *result;
-      int retval = asprintf (&result, "%08lx", 12345UL);
-      ASSERT (retval == 8);
-      ASSERT (result != NULL);
-      ASSERT (strcmp (result, "00003039") == 0);
-      free (result);
-    }
-}
-
-int
-main (int argc, char *argv[])
-{
-  test_vasprintf ();
-  test_asprintf ();
-  return 0;
-}
index 3a7e1c5..40723fa 100755 (executable)
@@ -1,11 +1,11 @@
 #!/bin/sh
 # Unit tests for vc-list-files
-# Copyright (C) 2008-2021 Free Software Foundation, Inc.
+# Copyright (C) 2008-2023 Free Software Foundation, Inc.
 # This file is part of the GNUlib Library.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
+# 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,
@@ -16,7 +16,7 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
 
-: ${srcdir=.}
+: "${srcdir=.}"
 . "$srcdir/init.sh"; path_prepend_ .
 
 tmpdir=vc-cvs
index 3359ffb..ab10800 100755 (executable)
@@ -1,11 +1,11 @@
 #!/bin/sh
 # Unit tests for vc-list-files
-# Copyright (C) 2008-2021 Free Software Foundation, Inc.
+# Copyright (C) 2008-2023 Free Software Foundation, Inc.
 # This file is part of the GNUlib Library.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
+# 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,
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
 
-: ${srcdir=.}
+: "${srcdir=.}"
 . "$srcdir/init.sh"; path_prepend_ .
 
 tmpdir=vc-git-$$
 GIT_DIR= GIT_WORK_TREE=; unset GIT_DIR GIT_WORK_TREE
 
+# Ignore local git configurations that may interact badly with
+# commands below.  For example, if the user has set
+# commit.gpgsign=true in ~/.gitconfig the 'git commit' below will
+# require a OpenPGP private key operation which trigger PIN prompts
+# and unwanted hardware access on the developer's machine.
+GIT_CONFIG_GLOBAL=/dev/null; export GIT_CONFIG_GLOBAL
+
 fail=1
 mkdir $tmpdir && cd $tmpdir &&
   # without git, skip the test
index e97ea2a..ed7a1c3 100644 (file)
@@ -1,10 +1,10 @@
 /* Test the "verify" module.
 
-   Copyright (C) 2017-2021 Free Software Foundation, Inc.
+   Copyright (C) 2017-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 65b926a..e581a10 100644 (file)
@@ -1,10 +1,10 @@
 /* Test the "verify" module.
 
-   Copyright (C) 2005, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index a098556..c81f228 100644 (file)
@@ -1,10 +1,10 @@
 /* Test suite for version-etc.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
    This file is part of the GNUlib Library.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   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,
@@ -23,7 +23,7 @@
 #define AUTHORS "Sergey Poznyakoff", "Eric Blake"
 
 int
-main (int argc _GL_UNUSED, char **argv)
+main (_GL_UNUSED int argc, char **argv)
 {
   version_etc (stdout, "test-version-etc", "dummy", "0", AUTHORS,
                (const char *) NULL);
index 20b9e9b..11dcc28 100755 (executable)
@@ -1,11 +1,11 @@
 #! /bin/sh
 # Test suite for version-etc.
-# Copyright (C) 2009-2021 Free Software Foundation, Inc.
+# Copyright (C) 2009-2023 Free Software Foundation, Inc.
 # This file is part of the GNUlib Library.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
+# 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,
index 65c685c..4b8d537 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of <wchar.h> substitute.
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
 
 #include <wchar.h>
 
-#include "verify.h"
-
 /* Check that the types wchar_t and wint_t are defined.  */
 wchar_t a = 'c';
 wint_t b = 'x';
 
 /* Check that NULL can be passed through varargs as a pointer type,
    per POSIX 2008.  */
-verify (sizeof NULL == sizeof (void *));
+static_assert (sizeof NULL == sizeof (void *));
 
 int
 main (void)
index b354260..4e75fe0 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of conversion of wide character to multibyte character.
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 74f2d1d..6ec0750 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of conversion of wide character to multibyte character.
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 1a31b6e..01d8d53 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 # Test in an ISO-8859-1 or ISO-8859-15 locale.
-: ${LOCALE_FR=fr_FR}
+: "${LOCALE_FR=fr_FR}"
 if test $LOCALE_FR != none; then
   LC_ALL=$LOCALE_FR \
   ${CHECKER} ./test-wcrtomb${EXEEXT} 1 \
@@ -9,7 +9,7 @@ if test $LOCALE_FR != none; then
 fi
 
 # Test whether a specific UTF-8 locale is installed.
-: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+: "${LOCALE_FR_UTF8=fr_FR.UTF-8}"
 if test $LOCALE_FR_UTF8 != none; then
   LC_ALL=$LOCALE_FR_UTF8 \
   ${CHECKER} ./test-wcrtomb${EXEEXT} 2 \
@@ -17,7 +17,7 @@ if test $LOCALE_FR_UTF8 != none; then
 fi
 
 # Test whether a specific EUC-JP locale is installed.
-: ${LOCALE_JA=ja_JP}
+: "${LOCALE_JA=ja_JP}"
 if test $LOCALE_JA != none; then
   LC_ALL=$LOCALE_JA \
   ${CHECKER} ./test-wcrtomb${EXEEXT} 3 \
@@ -25,7 +25,7 @@ if test $LOCALE_JA != none; then
 fi
 
 # Test whether a specific GB18030 locale is installed.
-: ${LOCALE_ZH_CN=zh_CN.GB18030}
+: "${LOCALE_ZH_CN=zh_CN.GB18030}"
 if test $LOCALE_ZH_CN != none; then
   LC_ALL=$LOCALE_ZH_CN \
   ${CHECKER} ./test-wcrtomb${EXEEXT} 4 \
index f96c73d..ceee02b 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of <wctype.h> substitute.
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -20,8 +20,6 @@
 
 #include <wctype.h>
 
-#include "macros.h"
-
 /* Check that the type wint_t is defined.  */
 wint_t a = 'x';
 /* Check that WEOF is defined.  */
@@ -33,6 +31,8 @@ wctype_t p;
 /* Check that the type wctrans_t is defined.  */
 wctrans_t q;
 
+#include "macros.h"
+
 int
 main (void)
 {
index e5e3a54..b6aa41f 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of wcwidth() function.
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 3da598b..07dcb1d 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of xalloc_die() function.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -21,7 +21,7 @@
 #include "xalloc.h"
 
 int
-main (int argc _GL_UNUSED, char **argv)
+main (_GL_UNUSED int argc, char **argv)
 {
   xalloc_die ();
   return 0;
index b88d959..822a270 100755 (executable)
@@ -1,11 +1,11 @@
 #!/bin/sh
 # Test suite for xalloc_die.
-# Copyright (C) 2009-2021 Free Software Foundation, Inc.
+# Copyright (C) 2009-2023 Free Software Foundation, Inc.
 # This file is part of the GNUlib Library.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
+# 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,
index 89f3090..b1c7f78 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of xstdopen() function.
-   Copyright (C) 2019-2021 Free Software Foundation, Inc.
+   Copyright (C) 2019-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 6a48e67..f41e52e 100755 (executable)
@@ -1,5 +1,5 @@
 #!/bin/sh
-: ${srcdir=.}
+: "${srcdir=.}"
 . "$srcdir/init.sh"; path_prepend_ .
 
 too_big=99999999999999999999999999999999999999999999999999999999999999999999
index f07a1f4..9c5d35f 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of xstrtol module.
-   Copyright (C) 1995-1996, 1998-2001, 2003-2021 Free Software Foundation, Inc.
+   Copyright (C) 1995-1996, 1998-2001, 2003-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 15dd911..e82b585 100755 (executable)
@@ -1,5 +1,5 @@
 #!/bin/sh
-: ${srcdir=.}
+: "${srcdir=.}"
 . "$srcdir/init.sh"; path_prepend_ .
 
 too_big=99999999999999999999999999999999999999999999999999999999999999999999
diff --git a/gnulib-tests/test-xvasprintf.c b/gnulib-tests/test-xvasprintf.c
deleted file mode 100644 (file)
index b637444..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-/* Test of xvasprintf() and xasprintf() functions.
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
-
-   This 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/>.  */
-
-/* Written by Bruno Haible <bruno@clisp.org>, 2007.  */
-
-/* Tell GCC not to warn about the specific edge cases tested here.  */
-#if (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) || 4 < __GNUC__
-# pragma GCC diagnostic ignored "-Wformat-zero-length"
-# pragma GCC diagnostic ignored "-Wformat-nonliteral"
-# pragma GCC diagnostic ignored "-Wformat-security"
-#endif
-
-#include <config.h>
-
-#include "xvasprintf.h"
-
-#include <stdarg.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "macros.h"
-
-static char *
-my_xasprintf (const char *format, ...)
-{
-  va_list args;
-  char *ret;
-
-  va_start (args, format);
-  ret = xvasprintf (format, args);
-  va_end (args);
-  return ret;
-}
-
-static void
-test_xvasprintf (void)
-{
-  int repeat;
-  char *result;
-
-  for (repeat = 0; repeat <= 8; repeat++)
-    {
-      result = my_xasprintf ("%d", 12345);
-      ASSERT (result != NULL);
-      ASSERT (strcmp (result, "12345") == 0);
-      free (result);
-    }
-
-  {
-    /* Silence gcc warning about zero-length format string.  */
-    const char *empty = "";
-    result = my_xasprintf (empty);
-    ASSERT (result != NULL);
-    ASSERT (strcmp (result, "") == 0);
-    free (result);
-  }
-
-  result = my_xasprintf ("%s", "foo");
-  ASSERT (result != NULL);
-  ASSERT (strcmp (result, "foo") == 0);
-  free (result);
-
-  result = my_xasprintf ("%s%s", "foo", "bar");
-  ASSERT (result != NULL);
-  ASSERT (strcmp (result, "foobar") == 0);
-  free (result);
-
-  result = my_xasprintf ("%s%sbaz", "foo", "bar");
-  ASSERT (result != NULL);
-  ASSERT (strcmp (result, "foobarbaz") == 0);
-  free (result);
-}
-
-static void
-test_xasprintf (void)
-{
-  int repeat;
-  char *result;
-
-  for (repeat = 0; repeat <= 8; repeat++)
-    {
-      result = xasprintf ("%d", 12345);
-      ASSERT (result != NULL);
-      ASSERT (strcmp (result, "12345") == 0);
-      free (result);
-    }
-
-  {
-    /* Silence gcc warning about zero-length format string,
-       and about "format not a string literal and no format"
-       (whatever that means) .  */
-    const char *empty = "";
-    result = xasprintf (empty, empty);
-    ASSERT (result != NULL);
-    ASSERT (strcmp (result, "") == 0);
-    free (result);
-  }
-
-  result = xasprintf ("%s", "foo");
-  ASSERT (result != NULL);
-  ASSERT (strcmp (result, "foo") == 0);
-  free (result);
-
-  result = xasprintf ("%s%s", "foo", "bar");
-  ASSERT (result != NULL);
-  ASSERT (strcmp (result, "foobar") == 0);
-  free (result);
-
-  result = my_xasprintf ("%s%sbaz", "foo", "bar");
-  ASSERT (result != NULL);
-  ASSERT (strcmp (result, "foobarbaz") == 0);
-  free (result);
-}
-
-int
-main (int argc _GL_UNUSED, char *argv[])
-{
-  test_xvasprintf ();
-  test_xasprintf ();
-
-  return 0;
-}
diff --git a/gnulib-tests/test-year2038.c b/gnulib-tests/test-year2038.c
new file mode 100644 (file)
index 0000000..d1989eb
--- /dev/null
@@ -0,0 +1,39 @@
+/* Test of year2038 module.
+   Copyright (C) 2023 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   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/>.  */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2023.  */
+
+/* This test fails if AC_SYS_YEAR2038 could not arrange for a time_t
+   that supports values > 2147483647.
+   This can happen
+     - on systems that are not year 2038 safe, or
+     - if the user specified --disable-year2038 at configure time.
+   It is intended that this test fails in these circumstances.  */
+
+#include <config.h>
+
+#include <sys/types.h>
+#include "intprops.h"
+
+/* Although this test could be done with static_assert, the test
+   harness prefers dynamic checking.  */
+
+int
+main (void)
+{
+  /* Check the range of time_t.  */
+  return TYPE_MAXIMUM (time_t) >> 31 == 0;
+}
similarity index 63%
rename from lib/asprintf.c
rename to gnulib-tests/time.c
index 9c78c13..4e2ee31 100644 (file)
@@ -1,6 +1,5 @@
-/* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2021 Free Software Foundation,
-   Inc.
+/* Provide time() for systems for which it's broken.
+   Copyright (C) 2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
    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.  */
+
 #include <config.h>
 
 /* Specification.  */
-#ifdef IN_LIBASPRINTF
-# include "vasprintf.h"
-#else
-# include <stdio.h>
-#endif
+#include <time.h>
 
-#include <stdarg.h>
+#include <stdlib.h>
+#include <sys/time.h>
 
-int
-asprintf (char **resultp, const char *format, ...)
+time_t
+time (time_t *tp)
 {
-  va_list args;
-  int result;
+  struct timeval tv;
+  time_t tt;
+
+  if (gettimeofday (&tv, NULL) < 0)
+    abort ();
+  tt = tv.tv_sec;
+
+  if (tp)
+    *tp = tt;
 
-  va_start (args, format);
-  result = vasprintf (resultp, format, args);
-  va_end (args);
-  return result;
+  return tt;
 }
index 5460a04..38c4dfc 100644 (file)
@@ -1,10 +1,10 @@
 /* Add two struct timespec values.
 
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -23,6 +23,7 @@
 #include <config.h>
 #include "timespec.h"
 
+#include <stdckdint.h>
 #include "intprops.h"
 
 struct timespec
@@ -38,7 +39,7 @@ timespec_add (struct timespec a, struct timespec b)
     {
       rns = nsd;
       time_t bs1;
-      if (!INT_ADD_WRAPV (bs, 1, &bs1))
+      if (!ckd_add (&bs1, bs, 1))
         bs = bs1;
       else if (rs < 0)
         rs++;
@@ -46,7 +47,7 @@ timespec_add (struct timespec a, struct timespec b)
         goto high_overflow;
     }
 
-  if (INT_ADD_WRAPV (rs, bs, &rs))
+  if (ckd_add (&rs, rs, bs))
     {
       if (bs < 0)
         {
index 88ef69a..f805240 100644 (file)
@@ -1,10 +1,10 @@
 /* Subtract two struct timespec values.
 
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -24,6 +24,7 @@
 #include <config.h>
 #include "timespec.h"
 
+#include <stdckdint.h>
 #include "intprops.h"
 
 struct timespec
@@ -38,7 +39,7 @@ timespec_sub (struct timespec a, struct timespec b)
     {
       rns = ns + TIMESPEC_HZ;
       time_t bs1;
-      if (!INT_ADD_WRAPV (bs, 1, &bs1))
+      if (!ckd_add (&bs1, bs, 1))
         bs = bs1;
       else if (- TYPE_SIGNED (time_t) < rs)
         rs--;
@@ -46,7 +47,7 @@ timespec_sub (struct timespec a, struct timespec b)
         goto low_overflow;
     }
 
-  if (INT_SUBTRACT_WRAPV (rs, bs, &rs))
+  if (ckd_sub (&rs, rs, bs))
     {
       if (0 < bs)
         {
index 680014b..6628b70 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of u8_mbtoucr() function.
-   Copyright (C) 2010-2021 Free Software Foundation, Inc.
+   Copyright (C) 2010-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index ed8b077..7e8b518 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of u8_uctomb() function.
-   Copyright (C) 2010-2021 Free Software Foundation, Inc.
+   Copyright (C) 2010-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index c957d3c..a8bfdc9 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of uc_width() function.
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 2a68670..69395a3 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of uc_width() function.
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 23866c9..ae6f8f4 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 tmpfiles=""
-trap 'rm -fr $tmpfiles' 1 2 3 15
+trap 'rm -fr $tmpfiles' HUP INT QUIT TERM
 
 tmpfiles="$tmpfiles uc_width.out"
 ${CHECKER} ./test-uc_width2${EXEEXT} | LC_ALL=C tr -d '\r' > uc_width.out
@@ -55,7 +55,9 @@ cat > uc_width.ok <<\EOF
 07A6..07B0     0
 07B1..07EA     A
 07EB..07F3     0
-07F4..0815     A
+07F4..07FC     A
+07FD           0
+07FE..0815     A
 0816..0819     0
 081A           A
 081B..0823     0
@@ -65,8 +67,12 @@ cat > uc_width.ok <<\EOF
 0829..082D     0
 082E..0858     A
 0859..085B     0
-085C..08D3     A
-08D4..0902     0
+085C..088F     A
+0890..0891     0
+0892..0897     A
+0898..089F     0
+08A0..08C9     A
+08CA..0902     0
 0903..0939     A
 093A           0
 093B           A
@@ -89,7 +95,9 @@ cat > uc_width.ok <<\EOF
 09CD           0
 09CE..09E1     A
 09E2..09E3     0
-09E4..0A00     A
+09E4..09FD     A
+09FE           0
+09FF..0A00     A
 0A01..0A02     0
 0A03..0A3B     A
 0A3C           0
@@ -117,7 +125,9 @@ cat > uc_width.ok <<\EOF
 0ACD           0
 0ACE..0AE1     A
 0AE2..0AE3     0
-0AE4..0B00     A
+0AE4..0AF9     A
+0AFA..0AFF     0
+0B00           A
 0B01           0
 0B02..0B3B     A
 0B3C           0
@@ -127,8 +137,8 @@ cat > uc_width.ok <<\EOF
 0B41..0B44     0
 0B45..0B4C     A
 0B4D           0
-0B4E..0B55     A
-0B56           0
+0B4E..0B54     A
+0B55..0B56     0
 0B57..0B61     A
 0B62..0B63     0
 0B64..0B81     A
@@ -139,7 +149,11 @@ cat > uc_width.ok <<\EOF
 0BCD           0
 0BCE..0BFF     A
 0C00           0
-0C01..0C3D     A
+0C01..0C03     A
+0C04           0
+0C05..0C3B     A
+0C3C           0
+0C3D           A
 0C3E..0C40     0
 0C41..0C45     A
 0C46..0C48     0
@@ -157,15 +171,19 @@ cat > uc_width.ok <<\EOF
 0CCC..0CCD     0
 0CCE..0CE1     A
 0CE2..0CE3     0
-0CE4..0D00     A
-0D01           0
-0D02..0D40     A
+0CE4..0CFF     A
+0D00..0D01     0
+0D02..0D3A     A
+0D3B..0D3C     0
+0D3D..0D40     A
 0D41..0D44     0
 0D45..0D4C     A
 0D4D           0
 0D4E..0D61     A
 0D62..0D63     0
-0D64..0DC9     A
+0D64..0D80     A
+0D81           0
+0D82..0DC9     A
 0DCA           0
 0DCB..0DD1     A
 0DD2..0DD4     0
@@ -180,12 +198,10 @@ cat > uc_width.ok <<\EOF
 0E4F..0EB0     A
 0EB1           0
 0EB2..0EB3     A
-0EB4..0EB9     0
-0EBA           A
-0EBB..0EBC     0
+0EB4..0EBC     0
 0EBD..0EC7     A
-0EC8..0ECD     0
-0ECE..0F17     A
+0EC8..0ECE     0
+0ECF..0F17     A
 0F18..0F19     0
 0F1A..0F34     A
 0F35           0
@@ -229,13 +245,14 @@ cat > uc_width.ok <<\EOF
 109D           0
 109E..10FF     A
 1100..115F     2
-1160..135C     A
+1160..11FF     0
+1200..135C     A
 135D..135F     0
 1360..1711     A
 1712..1714     0
 1715..1731     A
-1732..1734     0
-1735..1751     A
+1732..1733     0
+1734..1751     A
 1752..1753     0
 1754..1771     A
 1772..1773     0
@@ -250,8 +267,8 @@ cat > uc_width.ok <<\EOF
 17D4..17DC     A
 17DD           0
 17DE..180A     A
-180B..180E     0
-180F..1884     A
+180B..180F     0
+1810..1884     A
 1885..1886     0
 1887..18A8     A
 18A9           0
@@ -282,8 +299,8 @@ cat > uc_width.ok <<\EOF
 1A7D..1A7E     A
 1A7F           0
 1A80..1AAF     A
-1AB0..1ABE     0
-1ABF..1AFF     A
+1AB0..1ACE     0
+1ACF..1AFF     A
 1B00..1B03     0
 1B04..1B33     A
 1B34           0
@@ -328,9 +345,7 @@ cat > uc_width.ok <<\EOF
 1CF5..1CF7     A
 1CF8..1CF9     0
 1CFA..1DBF     A
-1DC0..1DF5     0
-1DF6..1DFA     A
-1DFB..1DFF     0
+1DC0..1DFF     0
 1E00..200A     A
 200B..200F     0
 2010..2029     A
@@ -343,9 +358,75 @@ cat > uc_width.ok <<\EOF
 20A9           1
 20AA..20CF     A
 20D0..20F0     0
-20F1..2328     A
+20F1..2319     A
+231A..231B     2
+231C..2328     A
 2329..232A     2
-232B..2CEE     A
+232B..23E8     A
+23E9..23EC     2
+23ED..23EF     A
+23F0           2
+23F1..23F2     A
+23F3           2
+23F4..25FC     A
+25FD..25FE     2
+25FF..2613     A
+2614..2615     2
+2616..2647     A
+2648..2653     2
+2654..267E     A
+267F           2
+2680..2692     A
+2693           2
+2694..26A0     A
+26A1           2
+26A2..26A9     A
+26AA..26AB     2
+26AC..26BC     A
+26BD..26BE     2
+26BF..26C3     A
+26C4..26C5     2
+26C6..26CD     A
+26CE           2
+26CF..26D3     A
+26D4           2
+26D5..26E9     A
+26EA           2
+26EB..26F1     A
+26F2..26F3     2
+26F4           A
+26F5           2
+26F6..26F9     A
+26FA           2
+26FB..26FC     A
+26FD           2
+26FE..2704     A
+2705           2
+2706..2709     A
+270A..270B     2
+270C..2727     A
+2728           2
+2729..274B     A
+274C           2
+274D           A
+274E           2
+274F..2752     A
+2753..2755     2
+2756           A
+2757           2
+2758..2794     A
+2795..2797     2
+2798..27AF     A
+27B0           2
+27B1..27BE     A
+27BF           2
+27C0..2B1A     A
+2B1B..2B1C     2
+2B1D..2B4F     A
+2B50           2
+2B51..2B54     A
+2B55           2
+2B56..2CEE     A
 2CEF..2CF1     0
 2CF2..2D7E     A
 2D7F           0
@@ -358,7 +439,9 @@ cat > uc_width.ok <<\EOF
 303F           A
 3040..3098     2
 3099..309A     0
-309B..4DBF     2
+309B..3247     2
+3248..324F     A
+3250..4DBF     2
 4DC0..4DFF     A
 4E00..A4CF     2
 A4D0..A66E     A
@@ -377,23 +460,29 @@ A807..A80A        A
 A80B           0
 A80C..A824     A
 A825..A826     0
-A827..A8C3     A
+A827..A82B     A
+A82C           0
+A82D..A8C3     A
 A8C4..A8C5     0
 A8C6..A8DF     A
 A8E0..A8F1     0
-A8F2..A925     A
+A8F2..A8FE     A
+A8FF           0
+A900..A925     A
 A926..A92D     0
 A92E..A946     A
 A947..A951     0
-A952..A97F     A
+A952..A95F     A
+A960..A97C     2
+A97D..A97F     A
 A980..A982     0
 A983..A9B2     A
 A9B3           0
 A9B4..A9B5     A
 A9B6..A9B9     0
 A9BA..A9BB     A
-A9BC           0
-A9BD..A9E4     A
+A9BC..A9BD     0
+A9BE..A9E4     A
 A9E5           0
 A9E6..AA28     A
 AA29..AA2E     0
@@ -429,7 +518,11 @@ ABE9..ABEC A
 ABED           0
 ABEE..ABFF     A
 AC00..D7A3     2
-D7A4..F8FF     A
+D7A4..D7AF     A
+D7B0..D7C6     0
+D7C7..D7CA     A
+D7CB..D7FB     0
+D7FC..F8FF     A
 F900..FAFF     2
 FB00..FB1D     A
 FB1E           0
@@ -463,11 +556,25 @@ FFFC..101FC       1
 10A3F          0
 10A40..10AE4   1
 10AE5..10AE6   0
-10AE7..11000   1
+10AE7..10D23   1
+10D24..10D27   0
+10D28..10EAA   1
+10EAB..10EAC   0
+10EAD..10EFC   1
+10EFD..10EFF   0
+10F00..10F45   1
+10F46..10F50   0
+10F51..10F81   1
+10F82..10F85   0
+10F86..11000   1
 11001          0
 11002..11037   1
 11038..11046   0
-11047..1107E   1
+11047..1106F   1
+11070          0
+11071..11072   1
+11073..11074   0
+11075..1107E   1
 1107F..11081   0
 11082..110B2   1
 110B3..110B6   0
@@ -475,7 +582,11 @@ FFFC..101FC        1
 110B9..110BA   0
 110BB..110BC   1
 110BD          0
-110BE..110FF   1
+110BE..110C1   1
+110C2          0
+110C3..110CC   1
+110CD          0
+110CE..110FF   1
 11100..11102   0
 11103..11126   1
 11127..1112B   0
@@ -487,9 +598,11 @@ FFFC..101FC        1
 11180..11181   0
 11182..111B5   1
 111B6..111BE   0
-111BF..111C9   1
-111CA..111CC   0
-111CD..1122E   1
+111BF..111C8   1
+111C9..111CC   0
+111CD..111CE   1
+111CF          0
+111D0..1122E   1
 1122F..11231   0
 11232..11233   1
 11234          0
@@ -497,14 +610,16 @@ FFFC..101FC       1
 11236..11237   0
 11238..1123D   1
 1123E          0
-1123F..112DE   1
+1123F..11240   1
+11241          0
+11242..112DE   1
 112DF          0
 112E0..112E2   1
 112E3..112EA   0
 112EB..112FF   1
 11300..11301   0
-11302..1133B   1
-1133C          0
+11302..1133A   1
+1133B..1133C   0
 1133D..1133F   1
 11340          0
 11341..11365   1
@@ -517,7 +632,9 @@ FFFC..101FC 1
 11442..11444   0
 11445          1
 11446          0
-11447..114B2   1
+11447..1145D   1
+1145E          0
+1145F..114B2   1
 114B3..114B8   0
 114B9          1
 114BA          0
@@ -553,7 +670,41 @@ FFFC..101FC        1
 11722..11725   0
 11726          1
 11727..1172B   0
-1172C..11C2F   1
+1172C..1182E   1
+1182F..11837   0
+11838          1
+11839..1183A   0
+1183B..1193A   1
+1193B..1193C   0
+1193D          1
+1193E          0
+1193F..11942   1
+11943          0
+11944..119D3   1
+119D4..119D7   0
+119D8..119D9   1
+119DA..119DB   0
+119DC..119DF   1
+119E0          0
+119E1..11A00   1
+11A01..11A06   0
+11A07..11A08   1
+11A09..11A0A   0
+11A0B..11A32   1
+11A33..11A38   0
+11A39..11A3A   1
+11A3B..11A3E   0
+11A3F..11A46   1
+11A47          0
+11A48..11A50   1
+11A51..11A56   0
+11A57..11A58   1
+11A59..11A5B   0
+11A5C..11A89   1
+11A8A..11A96   0
+11A97          1
+11A98..11A99   0
+11A9A..11C2F   1
 11C30..11C36   0
 11C37          1
 11C38..11C3D   0
@@ -565,17 +716,78 @@ FFFC..101FC       1
 11CB2..11CB3   0
 11CB4          1
 11CB5..11CB6   0
-11CB7..16AEF   1
+11CB7..11D30   1
+11D31..11D36   0
+11D37..11D39   1
+11D3A          0
+11D3B          1
+11D3C..11D3D   0
+11D3E          1
+11D3F..11D45   0
+11D46          1
+11D47          0
+11D48..11D8F   1
+11D90..11D91   0
+11D92..11D94   1
+11D95          0
+11D96          1
+11D97          0
+11D98..11EF2   1
+11EF3..11EF4   0
+11EF5..11EFF   1
+11F00..11F01   0
+11F02..11F35   1
+11F36..11F3A   0
+11F3B..11F3F   1
+11F40          0
+11F41          1
+11F42          0
+11F43..1342F   1
+13430..13440   0
+13441..13446   1
+13447..13455   0
+13456..16AEF   1
 16AF0..16AF4   0
 16AF5..16B2F   1
 16B30..16B36   0
-16B37..16F8E   1
+16B37..16F4E   1
+16F4F          0
+16F50..16F8E   1
 16F8F..16F92   0
-16F93..1BC9C   1
+16F93..16FDF   1
+16FE0..16FE3   2
+16FE4          0
+16FE5..16FEF   1
+16FF0..16FF1   2
+16FF2..16FFF   1
+17000..187F7   2
+187F8..187FF   1
+18800..18CD5   2
+18CD6..18CFF   1
+18D00..18D08   2
+18D09..1AFEF   1
+1AFF0..1AFF3   2
+1AFF4          1
+1AFF5..1AFFB   2
+1AFFC          1
+1AFFD..1AFFE   2
+1AFFF          1
+1B000..1B122   2
+1B123..1B14F   1
+1B150..1B152   2
+1B153..1B163   1
+1B164..1B167   2
+1B168..1B16F   1
+1B170..1B2FB   2
+1B2FC..1BC9C   1
 1BC9D..1BC9E   0
 1BC9F          1
 1BCA0..1BCA3   0
-1BCA4..1D166   1
+1BCA4..1CEFF   1
+1CF00..1CF2D   0
+1CF2E..1CF2F   1
+1CF30..1CF46   0
+1CF47..1D166   1
 1D167..1D169   0
 1D16A..1D172   1
 1D173..1D182   0
@@ -607,11 +819,107 @@ FFFC..101FC      1
 1E023..1E024   0
 1E025          1
 1E026..1E02A   0
-1E02B..1E8CF   1
+1E02B..1E08E   1
+1E08F          0
+1E090..1E12F   1
+1E130..1E136   0
+1E137..1E2AD   1
+1E2AE          0
+1E2AF..1E2EB   1
+1E2EC..1E2EF   0
+1E2F0..1E4EB   1
+1E4EC..1E4EF   0
+1E4F0..1E8CF   1
 1E8D0..1E8D6   0
 1E8D7..1E943   1
 1E944..1E94A   0
-1E94B..1FFFF   1
+1E94B..1F003   1
+1F004          2
+1F005..1F0CE   1
+1F0CF          2
+1F0D0..1F18D   1
+1F18E          2
+1F18F..1F190   1
+1F191..1F19A   2
+1F19B..1F1FF   1
+1F200..1F320   2
+1F321..1F32C   1
+1F32D..1F335   2
+1F336          1
+1F337..1F37C   2
+1F37D          1
+1F37E..1F393   2
+1F394..1F39F   1
+1F3A0..1F3CA   2
+1F3CB..1F3CE   1
+1F3CF..1F3D3   2
+1F3D4..1F3DF   1
+1F3E0..1F3F0   2
+1F3F1..1F3F3   1
+1F3F4          2
+1F3F5..1F3F7   1
+1F3F8..1F43E   2
+1F43F          1
+1F440          2
+1F441          1
+1F442..1F4FC   2
+1F4FD..1F4FE   1
+1F4FF..1F53D   2
+1F53E..1F54A   1
+1F54B..1F54E   2
+1F54F          1
+1F550..1F567   2
+1F568..1F579   1
+1F57A          2
+1F57B..1F594   1
+1F595..1F596   2
+1F597..1F5A3   1
+1F5A4          2
+1F5A5..1F5FA   1
+1F5FB..1F64F   2
+1F650..1F67F   1
+1F680..1F6C5   2
+1F6C6..1F6CB   1
+1F6CC          2
+1F6CD..1F6CF   1
+1F6D0..1F6D2   2
+1F6D3..1F6D4   1
+1F6D5..1F6D7   2
+1F6D8..1F6DC   1
+1F6DD..1F6DF   2
+1F6E0..1F6EA   1
+1F6EB..1F6EC   2
+1F6ED..1F6F3   1
+1F6F4..1F6FC   2
+1F6FD..1F7DF   1
+1F7E0..1F7EB   2
+1F7EC..1F7EF   1
+1F7F0          2
+1F7F1..1F90B   1
+1F90C..1F93A   2
+1F93B          1
+1F93C..1F945   2
+1F946          1
+1F947..1F9FF   2
+1FA00..1FA6F   1
+1FA70..1FA74   2
+1FA75..1FA77   1
+1FA78..1FA7C   2
+1FA7D..1FA7F   1
+1FA80..1FA86   2
+1FA87..1FA8F   1
+1FA90..1FAAC   2
+1FAAD..1FAAF   1
+1FAB0..1FABA   2
+1FABB..1FABF   1
+1FAC0..1FAC5   2
+1FAC6..1FACF   1
+1FAD0..1FAD9   2
+1FADA..1FADF   1
+1FAE0..1FAE7   2
+1FAE8..1FAEF   1
+1FAF0..1FAF6   2
+1FAF7..1FFFF   1
 20000..3FFFF   2
 40000..E0000   1
 E0001          0
@@ -622,7 +930,7 @@ E0100..E01EF        0
 E01F0..10FFFF  1
 EOF
 
-: ${DIFF=diff}
+: "${DIFF=diff}"
 ${DIFF} uc_width.ok uc_width.out
 result=$?
 
similarity index 77%
rename from lib/vasnprintf.c
rename to gnulib-tests/vasnprintf.c
index 12c532e..63a6cd6 100644 (file)
@@ -1,5 +1,5 @@
 /* vsprintf with automatic memory allocation.
-   Copyright (C) 1999, 2002-2021 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 #ifndef VASNPRINTF
 # include <config.h>
 #endif
+
+/* As of GCC 11.2.1, gcc -Wanalyzer-too-complex reports that main's
+   use of CHECK macros expands to code that is too complicated for gcc
+   -fanalyzer.  Suppress the resulting bogus warnings.  */
+#if 10 <= __GNUC__
+# pragma GCC diagnostic ignored "-Wanalyzer-null-argument"
+#endif
+
 #include <alloca.h>
 
 /* Specification.  */
@@ -75,8 +83,9 @@
 #include <stdio.h>      /* snprintf(), sprintf() */
 #include <stdlib.h>     /* abort(), malloc(), realloc(), free() */
 #include <string.h>     /* memcpy(), strlen() */
+#include <wchar.h>      /* mbstate_t, mbrtowc(), mbrlen(), wcrtomb() */
 #include <errno.h>      /* errno */
-#include <limits.h>     /* CHAR_BIT */
+#include <limits.h>     /* CHAR_BIT, INT_WIDTH, LONG_WIDTH */
 #include <float.h>      /* DBL_MAX_EXP, LDBL_MAX_EXP */
 #if HAVE_NL_LANGINFO
 # include <langinfo.h>
 #include "xsize.h"
 
 #include "attribute.h"
-#include "verify.h"
 
-#if (NEED_PRINTF_DOUBLE || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL
+#if NEED_PRINTF_DOUBLE || NEED_PRINTF_LONG_DOUBLE || (NEED_WPRINTF_DIRECTIVE_LA && WIDE_CHAR_VERSION)
 # include <math.h>
 # include "float+.h"
 #endif
 
-#if (NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE) && !defined IN_LIBINTL
+#if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE
 # include <math.h>
 # include "isnand-nolibm.h"
 #endif
 
-#if (NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE) && !defined IN_LIBINTL
+#if NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE || (NEED_WPRINTF_DIRECTIVE_LA && WIDE_CHAR_VERSION)
 # include <math.h>
 # include "isnanl-nolibm.h"
 # include "fpucw.h"
 #endif
 
-#if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_DOUBLE) && !defined IN_LIBINTL
+#if NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_DOUBLE
 # include <math.h>
 # include "isnand-nolibm.h"
 # include "printf-frexp.h"
 #endif
 
-#if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL
+#if NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE || (NEED_WPRINTF_DIRECTIVE_LA && WIDE_CHAR_VERSION)
 # include <math.h>
 # include "isnanl-nolibm.h"
 # include "printf-frexpl.h"
 #  define VASNPRINTF vasnwprintf
 #  define FCHAR_T wchar_t
 #  define DCHAR_T wchar_t
-#  define TCHAR_T wchar_t
-#  define DCHAR_IS_TCHAR 1
 #  define DIRECTIVE wchar_t_directive
 #  define DIRECTIVES wchar_t_directives
 #  define PRINTF_PARSE wprintf_parse
 # endif
 #endif
 #if WIDE_CHAR_VERSION
-  /* TCHAR_T is wchar_t.  */
-# define USE_SNPRINTF 1
-# if HAVE_DECL__SNWPRINTF
-   /* On Windows, the function swprintf() has a different signature than
-      on Unix; we use the function _snwprintf() or - on mingw - snwprintf()
-      instead.  The mingw function snwprintf() has fewer bugs than the
-      MSVCRT function _snwprintf(), so prefer that.  */
-#  if defined __MINGW32__
-#   define SNPRINTF snwprintf
+  /* DCHAR_T is wchar_t.  */
+# if HAVE_DECL__SNWPRINTF || (HAVE_SWPRINTF && HAVE_WORKING_SWPRINTF)
+#  define TCHAR_T wchar_t
+#  define DCHAR_IS_TCHAR 1
+#  define USE_SNPRINTF 1
+#  if HAVE_DECL__SNWPRINTF
+    /* On Windows, the function swprintf() has a different signature than
+       on Unix; we use the function _snwprintf() or - on mingw - snwprintf()
+       instead.  The mingw function snwprintf() has fewer bugs than the
+       MSVCRT function _snwprintf(), so prefer that.  */
+#   if defined __MINGW32__
+#    define SNPRINTF snwprintf
+#   else
+#    define SNPRINTF _snwprintf
+#    define USE_MSVC__SNPRINTF 1
+#   endif
 #  else
-#   define SNPRINTF _snwprintf
-#   define USE_MSVC__SNPRINTF 1
+    /* Unix.  */
+#   define SNPRINTF swprintf
 #  endif
 # else
-   /* Unix.  */
-#  define SNPRINTF swprintf
+   /* Old platforms such as NetBSD 3.0, OpenBSD 3.8, HP-UX 11.00, IRIX 6.5.  */
+#   define TCHAR_T char
 # endif
-#else
+#endif
+#if !WIDE_CHAR_VERSION || !DCHAR_IS_TCHAR
   /* TCHAR_T is char.  */
   /* Use snprintf if it exists under the name 'snprintf' or '_snprintf'.
      But don't use it on BeOS, since BeOS snprintf produces no output if the
@@ -233,7 +247,7 @@ local_strnlen (const char *string, size_t maxlen)
 # endif
 #endif
 
-#if (((!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF) && WIDE_CHAR_VERSION) || ((!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || (NEED_PRINTF_DIRECTIVE_LS && !defined IN_LIBINTL)) && !WIDE_CHAR_VERSION && DCHAR_IS_TCHAR)) && HAVE_WCHAR_T
+#if (((!USE_SNPRINTF || WIDE_CHAR_VERSION || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF) && WIDE_CHAR_VERSION) || ((!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || NEED_PRINTF_DIRECTIVE_LS) && !WIDE_CHAR_VERSION && DCHAR_IS_TCHAR)) && HAVE_WCHAR_T
 # if HAVE_WCSLEN
 #  define local_wcslen wcslen
 # else
@@ -256,8 +270,8 @@ local_wcslen (const wchar_t *s)
 # endif
 #endif
 
-#if (!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF) && HAVE_WCHAR_T && WIDE_CHAR_VERSION
-# if HAVE_WCSNLEN
+#if (!USE_SNPRINTF || (WIDE_CHAR_VERSION && DCHAR_IS_TCHAR) || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF) && HAVE_WCHAR_T && WIDE_CHAR_VERSION
+# if HAVE_WCSNLEN && HAVE_DECL_WCSNLEN
 #  define local_wcsnlen wcsnlen
 # else
 #  ifndef local_wcsnlen_defined
@@ -275,7 +289,7 @@ local_wcsnlen (const wchar_t *s, size_t maxlen)
 # endif
 #endif
 
-#if (((!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || (NEED_PRINTF_DIRECTIVE_LS && !defined IN_LIBINTL) || ENABLE_WCHAR_FALLBACK) && HAVE_WCHAR_T) || (ENABLE_WCHAR_FALLBACK && HAVE_WINT_T)) && !WIDE_CHAR_VERSION
+#if (((!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || NEED_PRINTF_DIRECTIVE_LS || ENABLE_WCHAR_FALLBACK) && HAVE_WCHAR_T) || ((NEED_PRINTF_DIRECTIVE_LC || ENABLE_WCHAR_FALLBACK) && HAVE_WINT_T)) && !WIDE_CHAR_VERSION
 # if ENABLE_WCHAR_FALLBACK
 static size_t
 wctomb_fallback (char *s, wchar_t wc)
@@ -343,7 +357,7 @@ local_wctomb (char *s, wchar_t wc)
 # endif
 #endif
 
-#if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE || NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE) && !defined IN_LIBINTL
+#if NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE || NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE || (NEED_WPRINTF_DIRECTIVE_LA && WIDE_CHAR_VERSION)
 /* Determine the decimal-point character according to the current locale.  */
 # ifndef decimal_point_char_defined
 #  define decimal_point_char_defined 1
@@ -370,7 +384,7 @@ decimal_point_char (void)
 # endif
 #endif
 
-#if NEED_PRINTF_INFINITE_DOUBLE && !NEED_PRINTF_DOUBLE && !defined IN_LIBINTL
+#if NEED_PRINTF_INFINITE_DOUBLE && !NEED_PRINTF_DOUBLE
 
 /* Equivalent to !isfinite(x) || x == 0, but does not require libm.  */
 static int
@@ -381,7 +395,7 @@ is_infinite_or_zero (double x)
 
 #endif
 
-#if NEED_PRINTF_INFINITE_LONG_DOUBLE && !NEED_PRINTF_LONG_DOUBLE && !defined IN_LIBINTL
+#if NEED_PRINTF_INFINITE_LONG_DOUBLE && !NEED_PRINTF_LONG_DOUBLE
 
 /* Equivalent to !isfinite(x) || x == 0, but does not require libm.  */
 static int
@@ -392,7 +406,7 @@ is_infinite_or_zerol (long double x)
 
 #endif
 
-#if (NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE) && !defined IN_LIBINTL
+#if NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE
 
 /* Converting 'long double' to decimal without rare rounding bugs requires
    real bignums.  We use the naming conventions of GNU gmp, but vastly simpler
@@ -400,11 +414,11 @@ is_infinite_or_zerol (long double x)
 
 typedef unsigned int mp_limb_t;
 # define GMP_LIMB_BITS 32
-verify (sizeof (mp_limb_t) * CHAR_BIT == GMP_LIMB_BITS);
+static_assert (sizeof (mp_limb_t) * CHAR_BIT == GMP_LIMB_BITS);
 
 typedef unsigned long long mp_twolimb_t;
 # define GMP_TWOLIMB_BITS 64
-verify (sizeof (mp_twolimb_t) * CHAR_BIT == GMP_TWOLIMB_BITS);
+static_assert (sizeof (mp_twolimb_t) * CHAR_BIT == GMP_TWOLIMB_BITS);
 
 /* Representation of a bignum >= 0.  */
 typedef struct
@@ -907,13 +921,20 @@ divide (mpn_t a, mpn_t b, mpn_t *q)
       q_ptr[q_len++] = 1;
     }
   keep_q:
-  if (tmp_roomptr != NULL)
-    free (tmp_roomptr);
+  free (tmp_roomptr);
   q->limbs = q_ptr;
   q->nlimbs = q_len;
   return roomptr;
 }
 
+/* Avoid pointless GCC warning "argument 1 value '18446744073709551615' exceeds
+   maximum object size 9223372036854775807", triggered by the use of xsum as
+   argument of malloc.  */
+# if __GNUC__ >= 7
+#  pragma GCC diagnostic push
+#  pragma GCC diagnostic ignored "-Walloc-size-larger-than="
+# endif
+
 /* Convert a bignum a >= 0, multiplied with 10^extra_zeroes, to decimal
    representation.
    Destroys the contents of a.
@@ -970,6 +991,10 @@ convert_to_decimal (mpn_t a, size_t extra_zeroes)
   return c_ptr;
 }
 
+# if __GNUC__ >= 7
+#  pragma GCC diagnostic pop
+# endif
+
 # if NEED_PRINTF_LONG_DOUBLE
 
 /* Assuming x is finite and >= 0:
@@ -1164,8 +1189,6 @@ scale10_round_decimal_decoded (int e, mpn_t m, void *memory, int n)
   void *z_memory;
   char *digits;
 
-  if (memory == NULL)
-    return NULL;
   /* 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).  */
@@ -1373,10 +1396,13 @@ scale10_round_decimal_decoded (int e, mpn_t m, void *memory, int n)
 static char *
 scale10_round_decimal_long_double (long double x, int n)
 {
-  int e IF_LINT(= 0);
+  int e;
   mpn_t m;
   void *memory = decode_long_double (x, &e, &m);
-  return scale10_round_decimal_decoded (e, m, memory, n);
+  if (memory != NULL)
+    return scale10_round_decimal_decoded (e, m, memory, n);
+  else
+    return NULL;
 }
 
 # endif
@@ -1391,10 +1417,13 @@ scale10_round_decimal_long_double (long double x, int n)
 static char *
 scale10_round_decimal_double (double x, int n)
 {
-  int e IF_LINT(= 0);
+  int e;
   mpn_t m;
   void *memory = decode_double (x, &e, &m);
-  return scale10_round_decimal_decoded (e, m, memory, n);
+  if (memory != NULL)
+    return scale10_round_decimal_decoded (e, m, memory, n);
+  else
+    return NULL;
 }
 
 # endif
@@ -1597,7 +1626,7 @@ is_borderline (const char *digits, size_t precision)
 
 #endif
 
-#if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF
+#if !USE_SNPRINTF || (WIDE_CHAR_VERSION && DCHAR_IS_TCHAR) || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF
 
 /* Use a different function name, to make it possible that the 'wchar_t'
    parametrization and the 'char' parametrization get compiled in the same
@@ -1620,24 +1649,156 @@ MAX_ROOM_NEEDED (const arguments *ap, size_t arg_index, FCHAR_T conversion,
   switch (conversion)
     {
     case 'd': case 'i': case 'u':
-      if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT)
-        tmp_length =
-          (unsigned int) (sizeof (unsigned long long) * CHAR_BIT
-                          * 0.30103 /* binary -> decimal */
-                         )
-          + 1; /* turn floor into ceil */
-      else if (type == TYPE_LONGINT || type == TYPE_ULONGINT)
-        tmp_length =
-          (unsigned int) (sizeof (unsigned long) * CHAR_BIT
-                          * 0.30103 /* binary -> decimal */
-                         )
-          + 1; /* turn floor into ceil */
-      else
-        tmp_length =
-          (unsigned int) (sizeof (unsigned int) * CHAR_BIT
-                          * 0.30103 /* binary -> decimal */
-                         )
-          + 1; /* turn floor into ceil */
+      switch (type)
+        {
+        default:
+          tmp_length =
+            (unsigned int) (sizeof (unsigned int) * CHAR_BIT
+                            * 0.30103 /* binary -> decimal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_LONGINT:
+          tmp_length =
+            (unsigned int) (sizeof (long int) * CHAR_BIT
+                            * 0.30103 /* binary -> decimal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_ULONGINT:
+          tmp_length =
+            (unsigned int) (sizeof (unsigned long int) * CHAR_BIT
+                            * 0.30103 /* binary -> decimal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_LONGLONGINT:
+          tmp_length =
+            (unsigned int) (sizeof (long long int) * CHAR_BIT
+                            * 0.30103 /* binary -> decimal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_ULONGLONGINT:
+          tmp_length =
+            (unsigned int) (sizeof (unsigned long long int) * CHAR_BIT
+                            * 0.30103 /* binary -> decimal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_INT8_T:
+          tmp_length =
+            (unsigned int) (sizeof (int8_t) * CHAR_BIT
+                            * 0.30103 /* binary -> decimal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_UINT8_T:
+          tmp_length =
+            (unsigned int) (sizeof (uint8_t) * CHAR_BIT
+                            * 0.30103 /* binary -> decimal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_INT16_T:
+          tmp_length =
+            (unsigned int) (sizeof (int16_t) * CHAR_BIT
+                            * 0.30103 /* binary -> decimal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_UINT16_T:
+          tmp_length =
+            (unsigned int) (sizeof (uint16_t) * CHAR_BIT
+                            * 0.30103 /* binary -> decimal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_INT32_T:
+          tmp_length =
+            (unsigned int) (sizeof (int32_t) * CHAR_BIT
+                            * 0.30103 /* binary -> decimal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_UINT32_T:
+          tmp_length =
+            (unsigned int) (sizeof (uint32_t) * CHAR_BIT
+                            * 0.30103 /* binary -> decimal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_INT64_T:
+          tmp_length =
+            (unsigned int) (sizeof (int64_t) * CHAR_BIT
+                            * 0.30103 /* binary -> decimal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_UINT64_T:
+          tmp_length =
+            (unsigned int) (sizeof (uint64_t) * CHAR_BIT
+                            * 0.30103 /* binary -> decimal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_INT_FAST8_T:
+          tmp_length =
+            (unsigned int) (sizeof (int_fast8_t) * CHAR_BIT
+                            * 0.30103 /* binary -> decimal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_UINT_FAST8_T:
+          tmp_length =
+            (unsigned int) (sizeof (uint_fast8_t) * CHAR_BIT
+                            * 0.30103 /* binary -> decimal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_INT_FAST16_T:
+          tmp_length =
+            (unsigned int) (sizeof (int_fast16_t) * CHAR_BIT
+                            * 0.30103 /* binary -> decimal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_UINT_FAST16_T:
+          tmp_length =
+            (unsigned int) (sizeof (uint_fast16_t) * CHAR_BIT
+                            * 0.30103 /* binary -> decimal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_INT_FAST32_T:
+          tmp_length =
+            (unsigned int) (sizeof (int_fast32_t) * CHAR_BIT
+                            * 0.30103 /* binary -> decimal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_UINT_FAST32_T:
+          tmp_length =
+            (unsigned int) (sizeof (uint_fast32_t) * CHAR_BIT
+                            * 0.30103 /* binary -> decimal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_INT_FAST64_T:
+          tmp_length =
+            (unsigned int) (sizeof (int_fast64_t) * CHAR_BIT
+                            * 0.30103 /* binary -> decimal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_UINT_FAST64_T:
+          tmp_length =
+            (unsigned int) (sizeof (uint_fast64_t) * CHAR_BIT
+                            * 0.30103 /* binary -> decimal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        }
       if (tmp_length < precision)
         tmp_length = precision;
       /* Multiply by 2, as an estimate for FLAG_GROUP.  */
@@ -1646,25 +1807,156 @@ MAX_ROOM_NEEDED (const arguments *ap, size_t arg_index, FCHAR_T conversion,
       tmp_length = xsum (tmp_length, 1);
       break;
 
+    case 'b':
+    #if SUPPORT_GNU_PRINTF_DIRECTIVES \
+        || (__GLIBC__ + (__GLIBC_MINOR__ >= 35) > 2)
+    case 'B':
+    #endif
+      switch (type)
+        {
+        default:
+          tmp_length =
+            (unsigned int) (sizeof (unsigned int) * CHAR_BIT)
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_ULONGINT:
+          tmp_length =
+            (unsigned int) (sizeof (unsigned long int) * CHAR_BIT)
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_ULONGLONGINT:
+          tmp_length =
+            (unsigned int) (sizeof (unsigned long long int) * CHAR_BIT)
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_UINT8_T:
+          tmp_length =
+            (unsigned int) (sizeof (uint8_t) * CHAR_BIT)
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_UINT16_T:
+          tmp_length =
+            (unsigned int) (sizeof (uint16_t) * CHAR_BIT)
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_UINT32_T:
+          tmp_length =
+            (unsigned int) (sizeof (uint32_t) * CHAR_BIT)
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_UINT64_T:
+          tmp_length =
+            (unsigned int) (sizeof (uint64_t) * CHAR_BIT)
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_UINT_FAST8_T:
+          tmp_length =
+            (unsigned int) (sizeof (uint_fast8_t) * CHAR_BIT)
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_UINT_FAST16_T:
+          tmp_length =
+            (unsigned int) (sizeof (uint_fast16_t) * CHAR_BIT)
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_UINT_FAST32_T:
+          tmp_length =
+            (unsigned int) (sizeof (uint_fast32_t) * CHAR_BIT)
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_UINT_FAST64_T:
+          tmp_length =
+            (unsigned int) (sizeof (uint_fast64_t) * CHAR_BIT)
+            + 1; /* turn floor into ceil */
+          break;
+        }
+      if (tmp_length < precision)
+        tmp_length = precision;
+      /* Add 2, to account for a prefix from the alternate form.  */
+      tmp_length = xsum (tmp_length, 2);
+      break;
+
     case 'o':
-      if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT)
-        tmp_length =
-          (unsigned int) (sizeof (unsigned long long) * CHAR_BIT
-                          * 0.333334 /* binary -> octal */
-                         )
-          + 1; /* turn floor into ceil */
-      else if (type == TYPE_LONGINT || type == TYPE_ULONGINT)
-        tmp_length =
-          (unsigned int) (sizeof (unsigned long) * CHAR_BIT
-                          * 0.333334 /* binary -> octal */
-                         )
-          + 1; /* turn floor into ceil */
-      else
-        tmp_length =
-          (unsigned int) (sizeof (unsigned int) * CHAR_BIT
-                          * 0.333334 /* binary -> octal */
-                         )
-          + 1; /* turn floor into ceil */
+      switch (type)
+        {
+        default:
+          tmp_length =
+            (unsigned int) (sizeof (unsigned int) * CHAR_BIT
+                            * 0.333334 /* binary -> octal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_ULONGINT:
+          tmp_length =
+            (unsigned int) (sizeof (unsigned long int) * CHAR_BIT
+                            * 0.333334 /* binary -> octal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_ULONGLONGINT:
+          tmp_length =
+            (unsigned int) (sizeof (unsigned long long int) * CHAR_BIT
+                            * 0.333334 /* binary -> octal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_UINT8_T:
+          tmp_length =
+            (unsigned int) (sizeof (uint8_t) * CHAR_BIT
+                            * 0.333334 /* binary -> octal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_UINT16_T:
+          tmp_length =
+            (unsigned int) (sizeof (uint16_t) * CHAR_BIT
+                            * 0.333334 /* binary -> octal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_UINT32_T:
+          tmp_length =
+            (unsigned int) (sizeof (uint32_t) * CHAR_BIT
+                            * 0.333334 /* binary -> octal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_UINT64_T:
+          tmp_length =
+            (unsigned int) (sizeof (uint64_t) * CHAR_BIT
+                            * 0.333334 /* binary -> octal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_UINT_FAST8_T:
+          tmp_length =
+            (unsigned int) (sizeof (uint_fast8_t) * CHAR_BIT
+                            * 0.333334 /* binary -> octal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_UINT_FAST16_T:
+          tmp_length =
+            (unsigned int) (sizeof (uint_fast16_t) * CHAR_BIT
+                            * 0.333334 /* binary -> octal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_UINT_FAST32_T:
+          tmp_length =
+            (unsigned int) (sizeof (uint_fast32_t) * CHAR_BIT
+                            * 0.333334 /* binary -> octal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_UINT_FAST64_T:
+          tmp_length =
+            (unsigned int) (sizeof (uint_fast64_t) * CHAR_BIT
+                            * 0.333334 /* binary -> octal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        }
       if (tmp_length < precision)
         tmp_length = precision;
       /* Add 1, to account for a leading sign.  */
@@ -1672,27 +1964,89 @@ MAX_ROOM_NEEDED (const arguments *ap, size_t arg_index, FCHAR_T conversion,
       break;
 
     case 'x': case 'X':
-      if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT)
-        tmp_length =
-          (unsigned int) (sizeof (unsigned long long) * CHAR_BIT
-                          * 0.25 /* binary -> hexadecimal */
-                         )
-          + 1; /* turn floor into ceil */
-      else if (type == TYPE_LONGINT || type == TYPE_ULONGINT)
-        tmp_length =
-          (unsigned int) (sizeof (unsigned long) * CHAR_BIT
-                          * 0.25 /* binary -> hexadecimal */
-                         )
-          + 1; /* turn floor into ceil */
-      else
-        tmp_length =
-          (unsigned int) (sizeof (unsigned int) * CHAR_BIT
-                          * 0.25 /* binary -> hexadecimal */
-                         )
-          + 1; /* turn floor into ceil */
+      switch (type)
+        {
+        default:
+          tmp_length =
+            (unsigned int) (sizeof (unsigned int) * CHAR_BIT
+                            * 0.25 /* binary -> hexadecimal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_ULONGINT:
+          tmp_length =
+            (unsigned int) (sizeof (unsigned long int) * CHAR_BIT
+                            * 0.25 /* binary -> hexadecimal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_ULONGLONGINT:
+          tmp_length =
+            (unsigned int) (sizeof (unsigned long long int) * CHAR_BIT
+                            * 0.25 /* binary -> hexadecimal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_UINT8_T:
+          tmp_length =
+            (unsigned int) (sizeof (uint8_t) * CHAR_BIT
+                            * 0.25 /* binary -> hexadecimal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_UINT16_T:
+          tmp_length =
+            (unsigned int) (sizeof (uint16_t) * CHAR_BIT
+                            * 0.25 /* binary -> hexadecimal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_UINT32_T:
+          tmp_length =
+            (unsigned int) (sizeof (uint32_t) * CHAR_BIT
+                            * 0.25 /* binary -> hexadecimal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_UINT64_T:
+          tmp_length =
+            (unsigned int) (sizeof (uint64_t) * CHAR_BIT
+                            * 0.25 /* binary -> hexadecimal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_UINT_FAST8_T:
+          tmp_length =
+            (unsigned int) (sizeof (uint_fast8_t) * CHAR_BIT
+                            * 0.25 /* binary -> hexadecimal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_UINT_FAST16_T:
+          tmp_length =
+            (unsigned int) (sizeof (uint_fast16_t) * CHAR_BIT
+                            * 0.25 /* binary -> hexadecimal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_UINT_FAST32_T:
+          tmp_length =
+            (unsigned int) (sizeof (uint_fast32_t) * CHAR_BIT
+                            * 0.25 /* binary -> hexadecimal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        case TYPE_UINT_FAST64_T:
+          tmp_length =
+            (unsigned int) (sizeof (uint_fast64_t) * CHAR_BIT
+                            * 0.25 /* binary -> hexadecimal */
+                           )
+            + 1; /* turn floor into ceil */
+          break;
+        }
       if (tmp_length < precision)
         tmp_length = precision;
-      /* Add 2, to account for a leading sign or alternate form.  */
+      /* Add 2, to account for a prefix from the alternate form.  */
       tmp_length = xsum (tmp_length, 2);
       break;
 
@@ -1865,11 +2219,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
     free (a.arg);
 
   if (PRINTF_FETCHARGS (args, &a) < 0)
-    {
-      CLEANUP ();
-      errno = EINVAL;
-      return NULL;
-    }
+    goto fail_1_with_EINVAL;
 
   {
     size_t buf_neededlength;
@@ -1905,19 +2255,12 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
         buf_malloced = buf;
       }
 
-    if (resultbuf != NULL)
-      {
-        result = resultbuf;
-        allocated = *lengthp;
-      }
-    else
-      {
-        result = NULL;
-        allocated = 0;
-      }
+    result = resultbuf;
+    allocated = (resultbuf != NULL ? *lengthp : 0);
     length = 0;
     /* Invariants:
-       result is either == resultbuf or == NULL or malloc-allocated.
+       result is either == resultbuf or malloc-allocated.
+       If result == NULL, resultbuf is == NULL as well.
        If length > 0, then result != NULL.  */
 
     /* Ensures that allocated >= needed.  Aborts through a jump to
@@ -1934,7 +2277,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
         memory_size = xtimes (allocated, sizeof (DCHAR_T));                  \
         if (size_overflow_p (memory_size))                                   \
           oom_statement                                                      \
-        if (result == resultbuf || result == NULL)                           \
+        if (result == resultbuf)                                             \
           memory = (DCHAR_T *) malloc (memory_size);                         \
         else                                                                 \
           memory = (DCHAR_T *) realloc (result, memory_size);                \
@@ -2009,6 +2352,30 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                   case TYPE_COUNT_LONGLONGINT_POINTER:
                     *a.arg[dp->arg_index].a.a_count_longlongint_pointer = length;
                     break;
+                  case TYPE_COUNT_INT8_T_POINTER:
+                    *a.arg[dp->arg_index].a.a_count_int8_t_pointer = length;
+                    break;
+                  case TYPE_COUNT_INT16_T_POINTER:
+                    *a.arg[dp->arg_index].a.a_count_int16_t_pointer = length;
+                    break;
+                  case TYPE_COUNT_INT32_T_POINTER:
+                    *a.arg[dp->arg_index].a.a_count_int32_t_pointer = length;
+                    break;
+                  case TYPE_COUNT_INT64_T_POINTER:
+                    *a.arg[dp->arg_index].a.a_count_int64_t_pointer = length;
+                    break;
+                  case TYPE_COUNT_INT_FAST8_T_POINTER:
+                    *a.arg[dp->arg_index].a.a_count_int_fast8_t_pointer = length;
+                    break;
+                  case TYPE_COUNT_INT_FAST16_T_POINTER:
+                    *a.arg[dp->arg_index].a.a_count_int_fast16_t_pointer = length;
+                    break;
+                  case TYPE_COUNT_INT_FAST32_T_POINTER:
+                    *a.arg[dp->arg_index].a.a_count_int_fast32_t_pointer = length;
+                    break;
+                  case TYPE_COUNT_INT_FAST64_T_POINTER:
+                    *a.arg[dp->arg_index].a.a_count_int_fast64_t_pointer = length;
+                    break;
                   default:
                     abort ();
                   }
@@ -2104,15 +2471,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                               if (count == 0)
                                 break;
                               if (count < 0)
-                                {
-                                  if (!(result == resultbuf || result == NULL))
-                                    free (result);
-                                  if (buf_malloced != NULL)
-                                    free (buf_malloced);
-                                  CLEANUP ();
-                                  errno = EILSEQ;
-                                  return NULL;
-                                }
+                                goto fail_with_EILSEQ;
                               arg_end += count;
                               characters++;
                             }
@@ -2129,15 +2488,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                               if (count == 0)
                                 break;
                               if (count < 0)
-                                {
-                                  if (!(result == resultbuf || result == NULL))
-                                    free (result);
-                                  if (buf_malloced != NULL)
-                                    free (buf_malloced);
-                                  CLEANUP ();
-                                  errno = EILSEQ;
-                                  return NULL;
-                                }
+                                goto fail_with_EILSEQ;
                               arg_end += count;
                               characters++;
                             }
@@ -2150,7 +2501,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                           characters = 0;
                         }
 
-                      if (characters < width && !(dp->flags & FLAG_LEFT))
+                      if (characters < width && !(flags & FLAG_LEFT))
                         {
                           size_t n = width - characters;
                           ENSURE_ALLOCATION (xsum (length, n));
@@ -2183,14 +2534,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                                        converted, &converted_len);
 #  endif
                         if (converted == NULL)
-                          {
-                            if (!(result == resultbuf || result == NULL))
-                              free (result);
-                            if (buf_malloced != NULL)
-                              free (buf_malloced);
-                            CLEANUP ();
-                            return NULL;
-                          }
+                          goto fail_with_errno;
                         if (converted != result + length)
                           {
                             ENSURE_ALLOCATION_ELSE (xsum (length, converted_len),
@@ -2202,7 +2546,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                       }
 # endif
 
-                      if (characters < width && (dp->flags & FLAG_LEFT))
+                      if (characters < width && (flags & FLAG_LEFT))
                         {
                           size_t n = width - characters;
                           ENSURE_ALLOCATION (xsum (length, n));
@@ -2229,15 +2573,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                               if (count == 0)
                                 break;
                               if (count < 0)
-                                {
-                                  if (!(result == resultbuf || result == NULL))
-                                    free (result);
-                                  if (buf_malloced != NULL)
-                                    free (buf_malloced);
-                                  CLEANUP ();
-                                  errno = EILSEQ;
-                                  return NULL;
-                                }
+                                goto fail_with_EILSEQ;
                               arg_end += count;
                               characters++;
                             }
@@ -2254,15 +2590,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                               if (count == 0)
                                 break;
                               if (count < 0)
-                                {
-                                  if (!(result == resultbuf || result == NULL))
-                                    free (result);
-                                  if (buf_malloced != NULL)
-                                    free (buf_malloced);
-                                  CLEANUP ();
-                                  errno = EILSEQ;
-                                  return NULL;
-                                }
+                                goto fail_with_EILSEQ;
                               arg_end += count;
                               characters++;
                             }
@@ -2275,7 +2603,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                           characters = 0;
                         }
 
-                      if (characters < width && !(dp->flags & FLAG_LEFT))
+                      if (characters < width && !(flags & FLAG_LEFT))
                         {
                           size_t n = width - characters;
                           ENSURE_ALLOCATION (xsum (length, n));
@@ -2308,14 +2636,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                                         converted, &converted_len);
 #  endif
                         if (converted == NULL)
-                          {
-                            if (!(result == resultbuf || result == NULL))
-                              free (result);
-                            if (buf_malloced != NULL)
-                              free (buf_malloced);
-                            CLEANUP ();
-                            return NULL;
-                          }
+                          goto fail_with_errno;
                         if (converted != result + length)
                           {
                             ENSURE_ALLOCATION_ELSE (xsum (length, converted_len),
@@ -2327,7 +2648,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                       }
 # endif
 
-                      if (characters < width && (dp->flags & FLAG_LEFT))
+                      if (characters < width && (flags & FLAG_LEFT))
                         {
                           size_t n = width - characters;
                           ENSURE_ALLOCATION (xsum (length, n));
@@ -2354,15 +2675,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                               if (count == 0)
                                 break;
                               if (count < 0)
-                                {
-                                  if (!(result == resultbuf || result == NULL))
-                                    free (result);
-                                  if (buf_malloced != NULL)
-                                    free (buf_malloced);
-                                  CLEANUP ();
-                                  errno = EILSEQ;
-                                  return NULL;
-                                }
+                                goto fail_with_EILSEQ;
                               arg_end += count;
                               characters++;
                             }
@@ -2379,15 +2692,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                               if (count == 0)
                                 break;
                               if (count < 0)
-                                {
-                                  if (!(result == resultbuf || result == NULL))
-                                    free (result);
-                                  if (buf_malloced != NULL)
-                                    free (buf_malloced);
-                                  CLEANUP ();
-                                  errno = EILSEQ;
-                                  return NULL;
-                                }
+                                goto fail_with_EILSEQ;
                               arg_end += count;
                               characters++;
                             }
@@ -2400,7 +2705,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                           characters = 0;
                         }
 
-                      if (characters < width && !(dp->flags & FLAG_LEFT))
+                      if (characters < width && !(flags & FLAG_LEFT))
                         {
                           size_t n = width - characters;
                           ENSURE_ALLOCATION (xsum (length, n));
@@ -2433,14 +2738,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                                         converted, &converted_len);
 #  endif
                         if (converted == NULL)
-                          {
-                            if (!(result == resultbuf || result == NULL))
-                              free (result);
-                            if (buf_malloced != NULL)
-                              free (buf_malloced);
-                            CLEANUP ();
-                            return NULL;
-                          }
+                          goto fail_with_errno;
                         if (converted != result + length)
                           {
                             ENSURE_ALLOCATION_ELSE (xsum (length, converted_len),
@@ -2452,7 +2750,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                       }
 # endif
 
-                      if (characters < width && (dp->flags & FLAG_LEFT))
+                      if (characters < width && (flags & FLAG_LEFT))
                         {
                           size_t n = width - characters;
                           ENSURE_ALLOCATION (xsum (length, n));
@@ -2467,7 +2765,150 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                   }
               }
 #endif
-#if (!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || (NEED_PRINTF_DIRECTIVE_LS && !defined IN_LIBINTL) || ENABLE_WCHAR_FALLBACK) && HAVE_WCHAR_T
+#if WIDE_CHAR_VERSION && !DCHAR_IS_TCHAR
+            else if ((dp->conversion == 's'
+                      && a.arg[dp->arg_index].type == TYPE_WIDE_STRING)
+                     || (dp->conversion == 'c'
+                         && a.arg[dp->arg_index].type == TYPE_WIDE_CHAR))
+              {
+                /* %ls or %lc in vasnwprintf.  See the specification of
+                    fwprintf.  */
+                /* It would be silly to use snprintf ("%ls", ...) and then
+                   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;
+                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;
+                        width = arg;
+                        if (arg < 0)
+                          {
+                            /* "A negative field width is taken as a '-' flag
+                                followed by a positive field width."  */
+                            flags |= FLAG_LEFT;
+                            width = -width;
+                          }
+                      }
+                    else
+                      {
+                        const FCHAR_T *digitp = dp->width_start;
+
+                        do
+                          width = xsum (xtimes (width, 10), *digitp++ - '0');
+                        while (digitp != dp->width_end);
+                      }
+                  }
+
+                {
+                  const wchar_t *ls_arg;
+                  wchar_t lc_arg[1];
+                  size_t characters;
+
+                  if (dp->conversion == 's')
+                    {
+                      int has_precision;
+                      size_t precision;
+
+                      has_precision = 0;
+                      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;
+                              /* "A negative precision is taken as if the precision
+                                  were omitted."  */
+                              if (arg >= 0)
+                                {
+                                  precision = arg;
+                                  has_precision = 1;
+                                }
+                            }
+                          else
+                            {
+                              const FCHAR_T *digitp = dp->precision_start + 1;
+
+                              precision = 0;
+                              while (digitp != dp->precision_end)
+                                precision = xsum (xtimes (precision, 10), *digitp++ - '0');
+                              has_precision = 1;
+                            }
+                        }
+
+                      ls_arg = a.arg[dp->arg_index].a.a_wide_string;
+
+                      if (has_precision)
+                        {
+                          /* Use only at most PRECISION wide characters, from
+                             the left.  */
+                          const wchar_t *ls_arg_end;
+
+                          ls_arg_end = ls_arg;
+                          characters = 0;
+                          for (; precision > 0; precision--)
+                            {
+                              if (*ls_arg_end == 0)
+                                /* Found the terminating null wide character.  */
+                                break;
+                              ls_arg_end++;
+                              characters++;
+                            }
+                        }
+                      else
+                        {
+                          /* Use the entire string, and count the number of wide
+                             characters.  */
+                          characters = local_wcslen (ls_arg);
+                        }
+                    }
+                  else /* dp->conversion == 'c' */
+                    {
+                      lc_arg[0] = (wchar_t) a.arg[dp->arg_index].a.a_wide_char;
+                      ls_arg = lc_arg;
+                      characters = 1;
+                    }
+
+                  {
+                    size_t total = (characters < width ? width : characters);
+                    ENSURE_ALLOCATION (xsum (length, total));
+
+                    if (characters < width && !(flags & FLAG_LEFT))
+                      {
+                        size_t n = width - characters;
+                        DCHAR_SET (result + length, ' ', n);
+                        length += n;
+                      }
+
+                    if (characters > 0)
+                      {
+                        DCHAR_CPY (result + length, ls_arg, characters);
+                        length += characters;
+                      }
+
+                    if (characters < width && (flags & FLAG_LEFT))
+                      {
+                        size_t n = width - characters;
+                        DCHAR_SET (result + length, ' ', n);
+                        length += n;
+                      }
+                  }
+                }
+              }
+#endif
+#if (!USE_SNPRINTF || WIDE_CHAR_VERSION || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || NEED_PRINTF_DIRECTIVE_LS || ENABLE_WCHAR_FALLBACK) && HAVE_WCHAR_T
             else if (dp->conversion == 's'
 # if WIDE_CHAR_VERSION
                      && a.arg[dp->arg_index].type != TYPE_WIDE_STRING
@@ -2582,16 +3023,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                             /* Found the terminating NUL.  */
                             break;
                           if (count < 0)
-                            {
-                              /* Invalid or incomplete multibyte character.  */
-                              if (!(result == resultbuf || result == NULL))
-                                free (result);
-                              if (buf_malloced != NULL)
-                                free (buf_malloced);
-                              CLEANUP ();
-                              errno = EILSEQ;
-                              return NULL;
-                            }
+                            /* Invalid or incomplete multibyte character.  */
+                            goto fail_with_EILSEQ;
                           arg_end += count;
                           characters++;
                         }
@@ -2618,16 +3051,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                             /* Found the terminating NUL.  */
                             break;
                           if (count < 0)
-                            {
-                              /* Invalid or incomplete multibyte character.  */
-                              if (!(result == resultbuf || result == NULL))
-                                free (result);
-                              if (buf_malloced != NULL)
-                                free (buf_malloced);
-                              CLEANUP ();
-                              errno = EILSEQ;
-                              return NULL;
-                            }
+                            /* Invalid or incomplete multibyte character.  */
+                            goto fail_with_EILSEQ;
                           arg_end += count;
                           characters++;
                         }
@@ -2640,7 +3065,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                       characters = 0;
                     }
 
-                  if (characters < width && !(dp->flags & FLAG_LEFT))
+                  if (characters < width && !(flags & FLAG_LEFT))
                     {
                       size_t n = width - characters;
                       ENSURE_ALLOCATION (xsum (length, n));
@@ -2691,17 +3116,19 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
 #  else
                           count = mbtowc (&wc, arg, arg_end - arg);
 #  endif
-                          if (count <= 0)
-                            /* mbrtowc not consistent with mbrlen, or mbtowc
-                               not consistent with mblen.  */
+                          if (count == 0)
+                            /* mbrtowc not consistent with strlen.  */
                             abort ();
+                          if (count < 0)
+                            /* Invalid or incomplete multibyte character.  */
+                            goto fail_with_EILSEQ;
                           ENSURE_ALLOCATION (xsum (length, 1));
                           result[length++] = wc;
                           arg += count;
                         }
                     }
 
-                  if (characters < width && (dp->flags & FLAG_LEFT))
+                  if (characters < width && (flags & FLAG_LEFT))
                     {
                       size_t n = width - characters;
                       ENSURE_ALLOCATION (xsum (length, n));
@@ -2717,7 +3144,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                   size_t characters;
 #  if !DCHAR_IS_TCHAR
                   /* This code assumes that TCHAR_T is 'char'.  */
-                  verify (sizeof (TCHAR_T) == 1);
+                  static_assert (sizeof (TCHAR_T) == 1);
                   TCHAR_T *tmpsrc;
                   DCHAR_T *tmpdst;
                   size_t tmpdst_len;
@@ -2744,16 +3171,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                             break;
                           count = local_wcrtomb (cbuf, *arg_end, &state);
                           if (count < 0)
-                            {
-                              /* Cannot convert.  */
-                              if (!(result == resultbuf || result == NULL))
-                                free (result);
-                              if (buf_malloced != NULL)
-                                free (buf_malloced);
-                              CLEANUP ();
-                              errno = EILSEQ;
-                              return NULL;
-                            }
+                            /* Cannot convert.  */
+                            goto fail_with_EILSEQ;
                           if (precision < (unsigned int) count)
                             break;
                           arg_end++;
@@ -2785,16 +3204,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                             break;
                           count = local_wcrtomb (cbuf, *arg_end, &state);
                           if (count < 0)
-                            {
-                              /* Cannot convert.  */
-                              if (!(result == resultbuf || result == NULL))
-                                free (result);
-                              if (buf_malloced != NULL)
-                                free (buf_malloced);
-                              CLEANUP ();
-                              errno = EILSEQ;
-                              return NULL;
-                            }
+                            /* Cannot convert.  */
+                            goto fail_with_EILSEQ;
                           arg_end++;
                           characters += count;
                         }
@@ -2851,12 +3262,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                   if (tmpdst == NULL)
                     {
                       free (tmpsrc);
-                      if (!(result == resultbuf || result == NULL))
-                        free (result);
-                      if (buf_malloced != NULL)
-                        free (buf_malloced);
-                      CLEANUP ();
-                      return NULL;
+                      goto fail_with_errno;
                     }
                   free (tmpsrc);
 #  endif
@@ -2878,7 +3284,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                     /* w doesn't matter.  */
                     w = 0;
 
-                  if (w < width && !(dp->flags & FLAG_LEFT))
+                  if (w < width && !(flags & FLAG_LEFT))
                     {
                       size_t n = width - w;
                       ENSURE_ALLOCATION (xsum (length, n));
@@ -2930,16 +3336,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                             abort ();
                           count = local_wcrtomb (cbuf, *arg, &state);
                           if (count <= 0)
-                            {
-                              /* Cannot convert.  */
-                              if (!(result == resultbuf || result == NULL))
-                                free (result);
-                              if (buf_malloced != NULL)
-                                free (buf_malloced);
-                              CLEANUP ();
-                              errno = EILSEQ;
-                              return NULL;
-                            }
+                            /* Cannot convert.  */
+                            goto fail_with_EILSEQ;
                           ENSURE_ALLOCATION (xsum (length, count));
                           memcpy (result + length, cbuf, count);
                           length += count;
@@ -2954,7 +3352,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                   length += tmpdst_len;
 #  endif
 
-                  if (w < width && (dp->flags & FLAG_LEFT))
+                  if (w < width && (flags & FLAG_LEFT))
                     {
                       size_t n = width - w;
                       ENSURE_ALLOCATION (xsum (length, n));
@@ -2965,12 +3363,13 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
 # endif
               }
 #endif
-#if ENABLE_WCHAR_FALLBACK && HAVE_WINT_T && !WIDE_CHAR_VERSION
+#if (NEED_PRINTF_DIRECTIVE_LC || ENABLE_WCHAR_FALLBACK) && HAVE_WINT_T && !WIDE_CHAR_VERSION
             else if (dp->conversion == 'c'
                      && a.arg[dp->arg_index].type == TYPE_WIDE_CHAR)
               {
                 /* Implement the 'lc' directive ourselves, in order to provide
-                   the fallback that avoids EILSEQ.  */
+                   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;
@@ -3012,7 +3411,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                   size_t characters;
 # if !DCHAR_IS_TCHAR
                   /* This code assumes that TCHAR_T is 'char'.  */
-                  verify (sizeof (TCHAR_T) == 1);
+                  static_assert (sizeof (TCHAR_T) == 1);
                   TCHAR_T tmpsrc[64]; /* Assume MB_CUR_MAX <= 64.  */
                   DCHAR_T *tmpdst;
                   size_t tmpdst_len;
@@ -3036,8 +3435,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
 
                           count = local_wcrtomb (cbuf, arg, &state);
                           if (count < 0)
-                            /* Inconsistency.  */
-                            abort ();
+                            /* Cannot convert.  */
+                            goto fail_with_EILSEQ;
                           characters = count;
                         }
                     }
@@ -3049,133 +3448,511 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                     }
 # endif
 
-# if !DCHAR_IS_TCHAR
-                  /* Convert the string into a piece of temporary memory.  */
-                  if (characters > 0) /* implies arg != 0 */
-                    {
-                      char cbuf[64]; /* Assume MB_CUR_MAX <= 64.  */
-                      int count;
-#  if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t
-                      mbstate_t state;
-                      memset (&state, '\0', sizeof (mbstate_t));
-#  endif
+# if !DCHAR_IS_TCHAR
+                  /* Convert the string into a piece of temporary memory.  */
+                  if (characters > 0) /* implies arg != 0 */
+                    {
+                      char cbuf[64]; /* Assume MB_CUR_MAX <= 64.  */
+                      int count;
+#  if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t
+                      mbstate_t state;
+                      memset (&state, '\0', sizeof (mbstate_t));
+#  endif
+
+                      count = local_wcrtomb (cbuf, arg, &state);
+                      if (count <= 0)
+                        /* Inconsistency.  */
+                        abort ();
+                      memcpy (tmpsrc, cbuf, count);
+                    }
+
+                  /* Convert from TCHAR_T[] to DCHAR_T[].  */
+                  tmpdst =
+                    DCHAR_CONV_FROM_ENCODING (locale_charset (),
+                                              iconveh_question_mark,
+                                              tmpsrc, characters,
+                                              NULL,
+                                              NULL, &tmpdst_len);
+                  if (tmpdst == NULL)
+                    goto fail_with_errno;
+# endif
+
+                  if (has_width)
+                    {
+# if ENABLE_UNISTDIO
+                      /* Outside POSIX, it's preferable to compare the width
+                         against the number of _characters_ of the converted
+                         value.  */
+                      w = DCHAR_MBSNLEN (result + length, characters);
+# else
+                      /* The width is compared against the number of _bytes_
+                         of the converted value, says POSIX.  */
+                      w = characters;
+# endif
+                    }
+                  else
+                    /* w doesn't matter.  */
+                    w = 0;
+
+                  if (w < width && !(flags & FLAG_LEFT))
+                    {
+                      size_t n = width - w;
+                      ENSURE_ALLOCATION (xsum (length, n));
+                      DCHAR_SET (result + length, ' ', n);
+                      length += n;
+                    }
+
+# if DCHAR_IS_TCHAR
+                  if (has_width)
+                    {
+                      /* We know the number of bytes in advance.  */
+                      ENSURE_ALLOCATION (xsum (length, characters));
+                      if (characters > 0) /* implies arg != 0 */
+                        {
+                          int count;
+#  if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t
+                          mbstate_t state;
+                          memset (&state, '\0', sizeof (mbstate_t));
+#  endif
+
+                          count = local_wcrtomb (result + length, arg, &state);
+                          if (count <= 0)
+                            /* Inconsistency.  */
+                            abort ();
+                          length += count;
+                        }
+                    }
+                  else
+                    {
+                      if (arg != 0)
+                        {
+                          char cbuf[64]; /* Assume MB_CUR_MAX <= 64.  */
+                          int count;
+#  if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t
+                          mbstate_t state;
+                          memset (&state, '\0', sizeof (mbstate_t));
+#  endif
+
+                          count = local_wcrtomb (cbuf, arg, &state);
+                          if (count < 0)
+                            /* Cannot convert.  */
+                            goto fail_with_EILSEQ;
+                          ENSURE_ALLOCATION (xsum (length, count));
+                          memcpy (result + length, cbuf, count);
+                          length += count;
+                        }
+                    }
+# else
+                  ENSURE_ALLOCATION_ELSE (xsum (length, tmpdst_len),
+                                          { free (tmpdst); goto out_of_memory; });
+                  DCHAR_CPY (result + length, tmpdst, tmpdst_len);
+                  free (tmpdst);
+                  length += tmpdst_len;
+# endif
+
+                  if (w < width && (flags & FLAG_LEFT))
+                    {
+                      size_t n = width - w;
+                      ENSURE_ALLOCATION (xsum (length, n));
+                      DCHAR_SET (result + length, ' ', n);
+                      length += n;
+                    }
+                }
+              }
+#endif
+#if NEED_WPRINTF_DIRECTIVE_C && WIDE_CHAR_VERSION
+            else if (dp->conversion == 'c'
+                     && a.arg[dp->arg_index].type != TYPE_WIDE_CHAR)
+              {
+                /* Implement the 'c' directive ourselves, in order to avoid
+                   EILSEQ in the "C" locale.  */
+                int flags = dp->flags;
+                size_t width;
+
+                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;
+                        width = arg;
+                        if (arg < 0)
+                          {
+                            /* "A negative field width is taken as a '-' flag
+                                followed by a positive field width."  */
+                            flags |= FLAG_LEFT;
+                            width = -width;
+                          }
+                      }
+                    else
+                      {
+                        const FCHAR_T *digitp = dp->width_start;
+
+                        do
+                          width = xsum (xtimes (width, 10), *digitp++ - '0');
+                        while (digitp != dp->width_end);
+                      }
+                  }
+
+                /* %c in vasnwprintf.  See the specification of fwprintf.  */
+                {
+                  char arg = (char) a.arg[dp->arg_index].a.a_char;
+                  mbstate_t state;
+                  wchar_t wc;
+
+                  memset (&state, '\0', sizeof (mbstate_t));
+                  int count = mbrtowc (&wc, &arg, 1, &state);
+                  if (count < 0)
+                    /* Invalid or incomplete multibyte character.  */
+                    goto fail_with_EILSEQ;
+
+                  if (1 < width && !(flags & FLAG_LEFT))
+                    {
+                      size_t n = width - 1;
+                      ENSURE_ALLOCATION (xsum (length, n));
+                      DCHAR_SET (result + length, ' ', n);
+                      length += n;
+                    }
+
+                  ENSURE_ALLOCATION (xsum (length, 1));
+                  result[length++] = wc;
+
+                  if (1 < width && (flags & FLAG_LEFT))
+                    {
+                      size_t n = width - 1;
+                      ENSURE_ALLOCATION (xsum (length, n));
+                      DCHAR_SET (result + length, ' ', n);
+                      length += n;
+                    }
+                }
+              }
+#endif
+#if NEED_PRINTF_DIRECTIVE_B || NEED_PRINTF_DIRECTIVE_UPPERCASE_B
+            else if (0
+# if NEED_PRINTF_DIRECTIVE_B
+                     || (dp->conversion == 'b')
+# endif
+# if NEED_PRINTF_DIRECTIVE_UPPERCASE_B
+                     || (dp->conversion == 'B')
+# endif
+                    )
+              {
+                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;
+                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;
+                        width = arg;
+                        if (arg < 0)
+                          {
+                            /* "A negative field width is taken as a '-' flag
+                                followed by a positive field width."  */
+                            flags |= FLAG_LEFT;
+                            width = -width;
+                          }
+                      }
+                    else
+                      {
+                        const FCHAR_T *digitp = dp->width_start;
+
+                        do
+                          width = xsum (xtimes (width, 10), *digitp++ - '0');
+                        while (digitp != dp->width_end);
+                      }
+                    has_width = 1;
+                  }
+
+                has_precision = 0;
+                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;
+                        /* "A negative precision is taken as if the precision
+                            were omitted."  */
+                        if (arg >= 0)
+                          {
+                            precision = arg;
+                            has_precision = 1;
+                          }
+                      }
+                    else
+                      {
+                        const FCHAR_T *digitp = dp->precision_start + 1;
+
+                        precision = 0;
+                        while (digitp != dp->precision_end)
+                          precision = xsum (xtimes (precision, 10), *digitp++ - '0');
+                        has_precision = 1;
+                      }
+                  }
+
+                /* Allocate a temporary buffer of sufficient size.  */
+                switch (type)
+                  {
+                  default:
+                    tmp_length =
+                      (unsigned int) (sizeof (unsigned int) * CHAR_BIT)
+                      + 1; /* turn floor into ceil */
+                    break;
+                  case TYPE_ULONGINT:
+                    tmp_length =
+                      (unsigned int) (sizeof (unsigned long int) * CHAR_BIT)
+                      + 1; /* turn floor into ceil */
+                    break;
+                  case TYPE_ULONGLONGINT:
+                    tmp_length =
+                      (unsigned int) (sizeof (unsigned long long int) * CHAR_BIT)
+                      + 1; /* turn floor into ceil */
+                    break;
+                  case TYPE_UINT8_T:
+                    tmp_length =
+                      (unsigned int) (sizeof (uint8_t) * CHAR_BIT)
+                      + 1; /* turn floor into ceil */
+                    break;
+                  case TYPE_UINT16_T:
+                    tmp_length =
+                      (unsigned int) (sizeof (uint16_t) * CHAR_BIT)
+                      + 1; /* turn floor into ceil */
+                    break;
+                  case TYPE_UINT32_T:
+                    tmp_length =
+                      (unsigned int) (sizeof (uint32_t) * CHAR_BIT)
+                      + 1; /* turn floor into ceil */
+                    break;
+                  case TYPE_UINT64_T:
+                    tmp_length =
+                      (unsigned int) (sizeof (uint64_t) * CHAR_BIT)
+                      + 1; /* turn floor into ceil */
+                    break;
+                  case TYPE_UINT_FAST8_T:
+                    tmp_length =
+                      (unsigned int) (sizeof (uint_fast8_t) * CHAR_BIT)
+                      + 1; /* turn floor into ceil */
+                    break;
+                  case TYPE_UINT_FAST16_T:
+                    tmp_length =
+                      (unsigned int) (sizeof (uint_fast16_t) * CHAR_BIT)
+                      + 1; /* turn floor into ceil */
+                    break;
+                  case TYPE_UINT_FAST32_T:
+                    tmp_length =
+                      (unsigned int) (sizeof (uint_fast32_t) * CHAR_BIT)
+                      + 1; /* turn floor into ceil */
+                    break;
+                  case TYPE_UINT_FAST64_T:
+                    tmp_length =
+                      (unsigned int) (sizeof (uint_fast64_t) * CHAR_BIT)
+                      + 1; /* turn floor into ceil */
+                    break;
+                  }
+                if (tmp_length < precision)
+                  tmp_length = precision;
+                /* Add 2, to account for a prefix from the alternate form.  */
+                tmp_length = xsum (tmp_length, 2);
+
+                if (tmp_length < width)
+                  tmp_length = width;
+
+                if (tmp_length <= sizeof (tmpbuf) / sizeof (DCHAR_T))
+                  tmp = tmpbuf;
+                else
+                  {
+                    size_t tmp_memsize = xtimes (tmp_length, sizeof (DCHAR_T));
+
+                    if (size_overflow_p (tmp_memsize))
+                      /* Overflow, would lead to out of memory.  */
+                      goto out_of_memory;
+                    tmp = (DCHAR_T *) malloc (tmp_memsize);
+                    if (tmp == NULL)
+                      /* Out of memory.  */
+                      goto out_of_memory;
+                  }
+
+                tmp_end = tmp + tmp_length;
+
+                unsigned long long arg;
+                switch (type)
+                  {
+                  case TYPE_UCHAR:
+                    arg = a.arg[dp->arg_index].a.a_uchar;
+                    break;
+                  case TYPE_USHORT:
+                    arg = a.arg[dp->arg_index].a.a_ushort;
+                    break;
+                  case TYPE_UINT:
+                    arg = a.arg[dp->arg_index].a.a_uint;
+                    break;
+                  case TYPE_ULONGINT:
+                    arg = a.arg[dp->arg_index].a.a_ulongint;
+                    break;
+                  case TYPE_ULONGLONGINT:
+                    arg = a.arg[dp->arg_index].a.a_ulonglongint;
+                    break;
+                  case TYPE_UINT8_T:
+                    arg = a.arg[dp->arg_index].a.a_uint8_t;
+                    break;
+                  case TYPE_UINT16_T:
+                    arg = a.arg[dp->arg_index].a.a_uint16_t;
+                    break;
+                  case TYPE_UINT32_T:
+                    arg = a.arg[dp->arg_index].a.a_uint32_t;
+                    break;
+                  case TYPE_UINT64_T:
+                    arg = a.arg[dp->arg_index].a.a_uint64_t;
+                    break;
+                  case TYPE_UINT_FAST8_T:
+                    arg = a.arg[dp->arg_index].a.a_uint_fast8_t;
+                    break;
+                  case TYPE_UINT_FAST16_T:
+                    arg = a.arg[dp->arg_index].a.a_uint_fast16_t;
+                    break;
+                  case TYPE_UINT_FAST32_T:
+                    arg = a.arg[dp->arg_index].a.a_uint_fast32_t;
+                    break;
+                  case TYPE_UINT_FAST64_T:
+                    arg = a.arg[dp->arg_index].a.a_uint_fast64_t;
+                    break;
+                  default:
+                    abort ();
+                  }
+                int need_prefix = ((flags & FLAG_ALT) && arg != 0);
+
+                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))
+                  {
+                    do
+                      {
+                        *--p = '0' + (arg & 1);
+                        arg = arg >> 1;
+                      }
+                    while (arg != 0);
+                  }
 
-                      count = local_wcrtomb (cbuf, arg, &state);
-                      if (count <= 0)
-                        /* Inconsistency.  */
-                        abort ();
-                      memcpy (tmpsrc, cbuf, count);
-                    }
+                if (has_precision)
+                  {
+                    DCHAR_T *digits_start = tmp_end - precision;
+                    while (p > digits_start)
+                      *--p = '0';
+                  }
 
-                  /* Convert from TCHAR_T[] to DCHAR_T[].  */
-                  tmpdst =
-                    DCHAR_CONV_FROM_ENCODING (locale_charset (),
-                                              iconveh_question_mark,
-                                              tmpsrc, characters,
-                                              NULL,
-                                              NULL, &tmpdst_len);
-                  if (tmpdst == NULL)
-                    {
-                      if (!(result == resultbuf || result == NULL))
-                        free (result);
-                      if (buf_malloced != NULL)
-                        free (buf_malloced);
-                      CLEANUP ();
-                      return NULL;
-                    }
-# endif
+                pad_ptr = p;
 
-                  if (has_width)
-                    {
-# if ENABLE_UNISTDIO
-                      /* Outside POSIX, it's preferable to compare the width
-                         against the number of _characters_ of the converted
-                         value.  */
-                      w = DCHAR_MBSNLEN (result + length, characters);
+                if (need_prefix)
+                  {
+# if NEED_PRINTF_DIRECTIVE_B && !NEED_PRINTF_DIRECTIVE_UPPERCASE_B
+                    *--p = 'b';
+# elif NEED_PRINTF_DIRECTIVE_UPPERCASE_B && !NEED_PRINTF_DIRECTIVE_B
+                    *--p = 'B';
 # else
-                      /* The width is compared against the number of _bytes_
-                         of the converted value, says POSIX.  */
-                      w = characters;
+                    *--p = dp->conversion;
 # endif
-                    }
-                  else
-                    /* w doesn't matter.  */
-                    w = 0;
+                    *--p = '0';
+                  }
+                tmp_start = p;
 
-                  if (w < width && !(dp->flags & FLAG_LEFT))
-                    {
-                      size_t n = width - w;
-                      ENSURE_ALLOCATION (xsum (length, n));
-                      DCHAR_SET (result + length, ' ', n);
-                      length += n;
-                    }
+                /* 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;
 
-# if DCHAR_IS_TCHAR
-                  if (has_width)
-                    {
-                      /* We know the number of bytes in advance.  */
-                      ENSURE_ALLOCATION (xsum (length, characters));
-                      if (characters > 0) /* implies arg != 0 */
-                        {
-                          int count;
-#  if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t
-                          mbstate_t state;
-                          memset (&state, '\0', sizeof (mbstate_t));
-#  endif
+                if (count < width)
+                  {
+                    size_t pad = width - count;
 
-                          count = local_wcrtomb (result + length, arg, &state);
-                          if (count <= 0)
-                            /* Inconsistency.  */
-                            abort ();
-                          length += count;
-                        }
-                    }
-                  else
-                    {
-                      if (arg != 0)
-                        {
-                          char cbuf[64]; /* Assume MB_CUR_MAX <= 64.  */
-                          int count;
-#  if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t
-                          mbstate_t state;
-                          memset (&state, '\0', sizeof (mbstate_t));
-#  endif
+                    if (flags & FLAG_LEFT)
+                      {
+                        /* Pad with spaces on the right.  */
+                        for (p = tmp_start; p < tmp_end; p++)
+                          *(p - pad) = *p;
+                        for (p = tmp_end - pad; p < tmp_end; p++)
+                          *p = ' ';
+                      }
+                    else if ((flags & FLAG_ZERO)
+                             /* Neither ISO C nor POSIX specify that the '0'
+                                flag is ignored when a width and a precision
+                                are both present.  But most implementations
+                                do so.  */
+                             && !(has_width && has_precision))
+                      {
+                        /* Pad with zeroes.  */
+                        for (p = tmp_start; p < pad_ptr; p++)
+                          *(p - pad) = *p;
+                        for (p = pad_ptr - pad; p < pad_ptr; p++)
+                          *p = '0';
+                      }
+                    else
+                      {
+                        /* Pad with spaces on the left.  */
+                        for (p = tmp_start - pad; p < tmp_start; p++)
+                          *p = ' ';
+                      }
 
-                          count = local_wcrtomb (cbuf, arg, &state);
-                          if (count <= 0)
-                            /* Inconsistency.  */
-                            abort ();
-                          ENSURE_ALLOCATION (xsum (length, count));
-                          memcpy (result + length, cbuf, count);
-                          length += count;
-                        }
-                    }
-# else
-                  ENSURE_ALLOCATION_ELSE (xsum (length, tmpdst_len),
-                                          { free (tmpdst); goto out_of_memory; });
-                  DCHAR_CPY (result + length, tmpdst, tmpdst_len);
-                  free (tmpdst);
-                  length += tmpdst_len;
-# endif
+                    tmp_start = tmp_start - pad;
+                  }
 
-                  if (w < width && (dp->flags & FLAG_LEFT))
-                    {
-                      size_t n = width - w;
-                      ENSURE_ALLOCATION (xsum (length, n));
-                      DCHAR_SET (result + length, ' ', n);
-                      length += n;
-                    }
-                }
+                count = tmp_end - tmp_start;
+
+                if (count > tmp_length)
+                  /* tmp_length was incorrectly calculated - fix the
+                     code above!  */
+                  abort ();
+
+                /* Make room for the result.  */
+                if (count >= allocated - length)
+                  {
+                    size_t n = xsum (length, count);
+
+                    ENSURE_ALLOCATION (n);
+                  }
+
+                /* Append the result.  */
+                memcpy (result + length, tmp_start, count * sizeof (DCHAR_T));
+                if (tmp != tmpbuf)
+                  free (tmp);
+                length += count;
               }
 #endif
-#if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE) && !defined IN_LIBINTL
+#if NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE || (NEED_WPRINTF_DIRECTIVE_LA && WIDE_CHAR_VERSION)
             else if ((dp->conversion == 'a' || dp->conversion == 'A')
 # if !(NEED_PRINTF_DIRECTIVE_A || (NEED_PRINTF_LONG_DOUBLE && NEED_PRINTF_DOUBLE))
                      && (0
 #  if NEED_PRINTF_DOUBLE
                          || a.arg[dp->arg_index].type == TYPE_DOUBLE
 #  endif
-#  if NEED_PRINTF_LONG_DOUBLE
+#  if NEED_PRINTF_LONG_DOUBLE || (NEED_WPRINTF_DIRECTIVE_LA && WIDE_CHAR_VERSION)
                          || a.arg[dp->arg_index].type == TYPE_LONGDOUBLE
 #  endif
                         )
@@ -3295,7 +4072,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                 p = tmp;
                 if (type == TYPE_LONGDOUBLE)
                   {
-# if NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE
+# if NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE || (NEED_WPRINTF_DIRECTIVE_LA && WIDE_CHAR_VERSION)
                     long double arg = a.arg[dp->arg_index].a.a_longdouble;
 
                     if (isnanl (arg))
@@ -3415,7 +4192,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                                 }
                               }
                               *p++ = dp->conversion - 'A' + 'P';
-#  if WIDE_CHAR_VERSION
+#  if WIDE_CHAR_VERSION && DCHAR_IS_TCHAR
                               {
                                 static const wchar_t decimal_format[] =
                                   { '%', '+', 'd', '\0' };
@@ -3566,7 +4343,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                                 }
                               }
                               *p++ = dp->conversion - 'A' + 'P';
-#  if WIDE_CHAR_VERSION
+#  if WIDE_CHAR_VERSION && DCHAR_IS_TCHAR
                               {
                                 static const wchar_t decimal_format[] =
                                   { '%', '+', 'd', '\0' };
@@ -3658,7 +4435,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                 length += count;
               }
 #endif
-#if (NEED_PRINTF_INFINITE_DOUBLE || NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL
+#if NEED_PRINTF_INFINITE_DOUBLE || NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE || NEED_PRINTF_LONG_DOUBLE
             else if ((dp->conversion == 'f' || dp->conversion == 'F'
                       || dp->conversion == 'e' || dp->conversion == 'E'
                       || dp->conversion == 'g' || dp->conversion == 'G'
@@ -4026,7 +4803,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                                   }
 
                                 *p++ = dp->conversion; /* 'e' or 'E' */
-#   if WIDE_CHAR_VERSION
+#   if WIDE_CHAR_VERSION && DCHAR_IS_TCHAR
                                 {
                                   static const wchar_t decimal_format[] =
                                     { '%', '+', '.', '2', 'd', '\0' };
@@ -4207,7 +4984,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                                               }
                                           }
                                         *p++ = dp->conversion - 'G' + 'E'; /* 'e' or 'E' */
-#   if WIDE_CHAR_VERSION
+#   if WIDE_CHAR_VERSION && DCHAR_IS_TCHAR
                                         {
                                           static const wchar_t decimal_format[] =
                                             { '%', '+', '.', '2', 'd', '\0' };
@@ -4484,7 +5261,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                                   }
 
                                 *p++ = dp->conversion; /* 'e' or 'E' */
-#   if WIDE_CHAR_VERSION
+#   if WIDE_CHAR_VERSION && DCHAR_IS_TCHAR
                                 {
                                   static const wchar_t decimal_format[] =
                                     /* Produce the same number of exponent digits
@@ -4677,7 +5454,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                                               }
                                           }
                                         *p++ = dp->conversion - 'G' + 'E'; /* 'e' or 'E' */
-#   if WIDE_CHAR_VERSION
+#   if WIDE_CHAR_VERSION && DCHAR_IS_TCHAR
                                         {
                                           static const wchar_t decimal_format[] =
                                             /* Produce the same number of exponent digits
@@ -4845,13 +5622,13 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
               {
                 arg_type type = a.arg[dp->arg_index].type;
                 int flags = dp->flags;
-#if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
+#if (WIDE_CHAR_VERSION && MUSL_LIBC) || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
                 int has_width;
 #endif
-#if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
+#if !USE_SNPRINTF || WIDE_CHAR_VERSION || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
                 size_t width;
 #endif
-#if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || NEED_PRINTF_UNBOUNDED_PRECISION
+#if !USE_SNPRINTF || (WIDE_CHAR_VERSION && DCHAR_IS_TCHAR) || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || (WIDE_CHAR_VERSION && MUSL_LIBC) || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
                 int has_precision;
                 size_t precision;
 #endif
@@ -4860,7 +5637,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
 #else
 #               define prec_ourselves 0
 #endif
-#if NEED_PRINTF_FLAG_LEFTADJUST
+#if (WIDE_CHAR_VERSION && MUSL_LIBC) || NEED_PRINTF_FLAG_LEFTADJUST
 #               define pad_ourselves 1
 #elif !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
                 int pad_ourselves;
@@ -4877,10 +5654,10 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                 TCHAR_T *tmp;
 #endif
 
-#if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
+#if (WIDE_CHAR_VERSION && MUSL_LIBC) || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
                 has_width = 0;
 #endif
-#if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
+#if !USE_SNPRINTF || WIDE_CHAR_VERSION || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
                 width = 0;
                 if (dp->width_start != dp->width_end)
                   {
@@ -4908,13 +5685,13 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                           width = xsum (xtimes (width, 10), *digitp++ - '0');
                         while (digitp != dp->width_end);
                       }
-#if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
+# if (WIDE_CHAR_VERSION && MUSL_LIBC) || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
                     has_width = 1;
-#endif
+# endif
                   }
 #endif
 
-#if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || NEED_PRINTF_UNBOUNDED_PRECISION
+#if !USE_SNPRINTF || (WIDE_CHAR_VERSION && DCHAR_IS_TCHAR) || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || (WIDE_CHAR_VERSION && MUSL_LIBC) || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
                 has_precision = 0;
                 precision = 6;
                 if (dp->precision_start != dp->precision_end)
@@ -4951,6 +5728,11 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                 switch (dp->conversion)
                   {
                   case 'd': case 'i': case 'u':
+                  case 'b':
+                  #if SUPPORT_GNU_PRINTF_DIRECTIVES \
+                      || (__GLIBC__ + (__GLIBC_MINOR__ >= 35) > 2)
+                  case 'B':
+                  #endif
                   case 'o':
                   case 'x': case 'X': case 'p':
                     prec_ourselves = has_precision && (precision > 0);
@@ -4962,7 +5744,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
 #endif
 
                 /* Decide whether to perform the padding ourselves.  */
-#if !NEED_PRINTF_FLAG_LEFTADJUST && (!DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION)
+#if !((WIDE_CHAR_VERSION && MUSL_LIBC) || NEED_PRINTF_FLAG_LEFTADJUST) && (!DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION)
                 switch (dp->conversion)
                   {
 # if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO
@@ -5081,6 +5863,54 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                   {
                   case TYPE_LONGLONGINT:
                   case TYPE_ULONGLONGINT:
+                  #if INT8_WIDTH > LONG_WIDTH
+                  case TYPE_INT8_T:
+                  #endif
+                  #if UINT8_WIDTH > LONG_WIDTH
+                  case TYPE_UINT8_T:
+                  #endif
+                  #if INT16_WIDTH > LONG_WIDTH
+                  case TYPE_INT16_T:
+                  #endif
+                  #if UINT16_WIDTH > LONG_WIDTH
+                  case TYPE_UINT16_T:
+                  #endif
+                  #if INT32_WIDTH > LONG_WIDTH
+                  case TYPE_INT32_T:
+                  #endif
+                  #if UINT32_WIDTH > LONG_WIDTH
+                  case TYPE_UINT32_T:
+                  #endif
+                  #if INT64_WIDTH > LONG_WIDTH
+                  case TYPE_INT64_T:
+                  #endif
+                  #if UINT64_WIDTH > LONG_WIDTH
+                  case TYPE_UINT64_T:
+                  #endif
+                  #if INT_FAST8_WIDTH > LONG_WIDTH
+                  case TYPE_INT_FAST8_T:
+                  #endif
+                  #if UINT_FAST8_WIDTH > LONG_WIDTH
+                  case TYPE_UINT_FAST8_T:
+                  #endif
+                  #if INT_FAST16_WIDTH > LONG_WIDTH
+                  case TYPE_INT_FAST16_T:
+                  #endif
+                  #if UINT_FAST16_WIDTH > LONG_WIDTH
+                  case TYPE_UINT_FAST16_T:
+                  #endif
+                  #if INT_FAST32_WIDTH > LONG_WIDTH
+                  case TYPE_INT3_FAST2_T:
+                  #endif
+                  #if UINT_FAST32_WIDTH > LONG_WIDTH
+                  case TYPE_UINT_FAST32_T:
+                  #endif
+                  #if INT_FAST64_WIDTH > LONG_WIDTH
+                  case TYPE_INT_FAST64_T:
+                  #endif
+                  #if UINT_FAST64_WIDTH > LONG_WIDTH
+                  case TYPE_UINT_FAST64_T:
+                  #endif
 #if defined _WIN32 && ! defined __CYGWIN__
                     *fbp++ = 'I';
                     *fbp++ = '6';
@@ -5092,12 +5922,60 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                     FALLTHROUGH;
                   case TYPE_LONGINT:
                   case TYPE_ULONGINT:
-#if HAVE_WINT_T
+                  #if INT8_WIDTH > INT_WIDTH && INT8_WIDTH <= LONG_WIDTH
+                  case TYPE_INT8_T:
+                  #endif
+                  #if UINT8_WIDTH > INT_WIDTH && UINT8_WIDTH <= LONG_WIDTH
+                  case TYPE_UINT8_T:
+                  #endif
+                  #if INT16_WIDTH > INT_WIDTH && INT16_WIDTH <= LONG_WIDTH
+                  case TYPE_INT16_T:
+                  #endif
+                  #if UINT16_WIDTH > INT_WIDTH && UINT16_WIDTH <= LONG_WIDTH
+                  case TYPE_UINT16_T:
+                  #endif
+                  #if INT32_WIDTH > INT_WIDTH && INT32_WIDTH <= LONG_WIDTH
+                  case TYPE_INT32_T:
+                  #endif
+                  #if UINT32_WIDTH > INT_WIDTH && UINT32_WIDTH <= LONG_WIDTH
+                  case TYPE_UINT32_T:
+                  #endif
+                  #if INT64_WIDTH > INT_WIDTH && INT64_WIDTH <= LONG_WIDTH
+                  case TYPE_INT64_T:
+                  #endif
+                  #if UINT64_WIDTH > INT_WIDTH && UINT64_WIDTH <= LONG_WIDTH
+                  case TYPE_UINT64_T:
+                  #endif
+                  #if INT_FAST8_WIDTH > INT_WIDTH && INT_FAST8_WIDTH <= LONG_WIDTH
+                  case TYPE_INT_FAST8_T:
+                  #endif
+                  #if UINT_FAST8_WIDTH > INT_WIDTH && UINT_FAST8_WIDTH <= LONG_WIDTH
+                  case TYPE_UINT_FAST8_T:
+                  #endif
+                  #if INT_FAST16_WIDTH > INT_WIDTH && INT_FAST16_WIDTH <= LONG_WIDTH
+                  case TYPE_INT_FAST16_T:
+                  #endif
+                  #if UINT_FAST16_WIDTH > INT_WIDTH && UINT_FAST16_WIDTH <= LONG_WIDTH
+                  case TYPE_UINT_FAST16_T:
+                  #endif
+                  #if INT_FAST32_WIDTH > INT_WIDTH && INT_FAST32_WIDTH <= LONG_WIDTH
+                  case TYPE_INT_FAST32_T:
+                  #endif
+                  #if UINT_FAST32_WIDTH > INT_WIDTH && UINT_FAST32_WIDTH <= LONG_WIDTH
+                  case TYPE_UINT_FAST32_T:
+                  #endif
+                  #if INT_FAST64_WIDTH > INT_WIDTH && INT_FAST64_WIDTH <= LONG_WIDTH
+                  case TYPE_INT_FAST64_T:
+                  #endif
+                  #if UINT_FAST64_WIDTH > INT_WIDTH && UINT_FAST64_WIDTH <= LONG_WIDTH
+                  case TYPE_UINT_FAST64_T:
+                  #endif
+                  #if HAVE_WINT_T
                   case TYPE_WIDE_CHAR:
-#endif
-#if HAVE_WCHAR_T
+                  #endif
+                  #if HAVE_WCHAR_T
                   case TYPE_WIDE_STRING:
-#endif
+                  #endif
                     *fbp++ = 'l';
                     break;
                   case TYPE_LONGDOUBLE:
@@ -5113,47 +5991,74 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
 #endif
                   *fbp = dp->conversion;
 #if USE_SNPRINTF
-# if ((HAVE_SNPRINTF_RETVAL_C99 && HAVE_SNPRINTF_TRUNCATION_C99)            \
+                /* Decide whether to pass %n in the format string
+                   to SNPRINTF.  */
+# if (((!WIDE_CHAR_VERSION || !DCHAR_IS_TCHAR)                              \
+       && (HAVE_SNPRINTF_RETVAL_C99 && HAVE_SNPRINTF_TRUNCATION_C99))       \
       || ((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3))       \
           && !defined __UCLIBC__)                                           \
       || (defined __APPLE__ && defined __MACH__)                            \
+      || defined __OpenBSD__                                                \
       || defined __ANDROID__                                                \
-      || (defined _WIN32 && ! defined __CYGWIN__))
-                /* On systems where we know that snprintf's return value
-                   conforms to ISO C 99 (HAVE_SNPRINTF_RETVAL_C99) and that
-                   snprintf always produces NUL-terminated strings
-                   (HAVE_SNPRINTF_TRUNCATION_C99), it is possible to avoid
-                   using %n.  And it is desirable to do so, because more and
-                   more platforms no longer support %n, for "security reasons".
-                   In particular, the following platforms:
+      || (defined _WIN32 && ! defined __CYGWIN__))                          \
+      || (WIDE_CHAR_VERSION && MUSL_LIBC)
+                /* We can avoid passing %n and instead rely on SNPRINTF's
+                   return value if
+                     - !WIDE_CHAR_VERSION || !DCHAR_IS_TCHAR, because otherwise,
+                       when WIDE_CHAR_VERSION && DCHAR_IS_TCHAR,
+                       snwprintf()/_snwprintf() (Windows) and swprintf() (Unix)
+                       don't return the needed buffer size,
+                     and
+                     - we're compiling for a system where we know
+                       - that snprintf's return value conforms to ISO C 99
+                         (HAVE_SNPRINTF_RETVAL_C99) and
+                       - that snprintf always produces NUL-terminated strings
+                         (HAVE_SNPRINTF_TRUNCATION_C99).
+                   And it is desirable to do so, because more and more platforms
+                   no longer support %n, for "security reasons".  */
+                /* On specific platforms, listed below, we *must* avoid %n.
+                   In the case
+                     !WIDE_CHAR_VERSION && HAVE_SNPRINTF_RETVAL_C99 && !USE_MSVC__SNPRINTF
+                   we can rely on the return value of snprintf instead.  Whereas
+                   in the opposite case
+                     WIDE_CHAR_VERSION || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF
+                   we need to make room based on an estimation, computed by
+                   MAX_ROOM_NEEDED.  */
+                /* 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).
-                     - On Mac OS X 10.13 or newer, the use of %n in format
+                     - On macOS 10.13 or newer, the use of %n in format
                        strings in writable memory by default crashes the
                        program.
+                     - On OpenBSD, since 2021-08-30, the use of %n in format
+                       strings produces an abort (see
+                       <https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/lib/libc/stdio/vfprintf.c.diff?r1=1.79&r2=1.80&f=h>,
+                       <https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/lib/libc/stdio/vfwprintf.c.diff?r1=1.20&r2=1.21&f=h>).
                      - On Android, starting on 2018-03-07, the use of %n in
                        format strings produces a fatal error (see
                        <https://android.googlesource.com/platform/bionic/+/41398d03b7e8e0dfb951660ae713e682e9fc0336>).
-                   On these platforms, HAVE_SNPRINTF_RETVAL_C99 and
-                   HAVE_SNPRINTF_TRUNCATION_C99 are 1. We have listed them
-                   explicitly in the condition above, in case of cross-
-                   compilation (just to be sure).  */
-                /* On native Windows systems (such as mingw), we can avoid using
-                   %n because:
+                     - On native Windows systems (such as mingw) where the OS is
+                       Windows Vista, the use of %n in format strings by default
+                       crashes the program. See
+                         <https://gcc.gnu.org/ml/gcc/2007-06/msg00122.html> and
+                         <https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/set-printf-count-output>
+                   On the first four of these platforms, if !WIDE_CHAR_VERSION,
+                   it is not a big deal to avoid %n, because on these platforms,
+                   HAVE_SNPRINTF_RETVAL_C99 and HAVE_SNPRINTF_TRUNCATION_C99 are
+                   1.
+                   On native Windows, if !WIDE_CHAR_VERSION, it's not a big deal
+                   either because:
                      - Although the gl_SNPRINTF_TRUNCATION_C99 test fails,
                        snprintf does not write more than the specified number
                        of bytes. (snprintf (buf, 3, "%d %d", 4567, 89) writes
                        '4', '5', '6' into buf, not '4', '5', '\0'.)
                      - Although the gl_SNPRINTF_RETVAL_C99 test fails, snprintf
                        allows us to recognize the case of an insufficient
-                       buffer size: it returns -1 in this case.
-                   On native Windows systems (such as mingw) where the OS is
-                   Windows Vista, the use of %n in format strings by default
-                   crashes the program. See
-                     <https://gcc.gnu.org/ml/gcc/2007-06/msg00122.html> and
-                     <https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/set-printf-count-output>
-                   So we should avoid %n in this situation.  */
+                       buffer size: it returns -1 in this case.  */
+                /* Additionally, in the WIDE_CHAR_VERSION case, we cannot use %n
+                   on musl libc because we would run into an swprintf() bug.
+                   See <https://www.openwall.com/lists/musl/2023/03/19/1>.  */
                 fbp[1] = '\0';
 # else           /* AIX <= 5.1, HP-UX, IRIX, OSF/1, Solaris <= 9, BeOS */
                 fbp[1] = '%';
@@ -5314,6 +6219,102 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                           SNPRINTF_BUF (arg);
                         }
                         break;
+                      case TYPE_INT8_T:
+                        {
+                          int8_t arg = a.arg[dp->arg_index].a.a_int8_t;
+                          SNPRINTF_BUF (arg);
+                        }
+                        break;
+                      case TYPE_UINT8_T:
+                        {
+                          uint8_t arg = a.arg[dp->arg_index].a.a_uint8_t;
+                          SNPRINTF_BUF (arg);
+                        }
+                        break;
+                      case TYPE_INT16_T:
+                        {
+                          int16_t arg = a.arg[dp->arg_index].a.a_int16_t;
+                          SNPRINTF_BUF (arg);
+                        }
+                        break;
+                      case TYPE_UINT16_T:
+                        {
+                          uint16_t arg = a.arg[dp->arg_index].a.a_uint16_t;
+                          SNPRINTF_BUF (arg);
+                        }
+                        break;
+                      case TYPE_INT32_T:
+                        {
+                          int32_t arg = a.arg[dp->arg_index].a.a_int32_t;
+                          SNPRINTF_BUF (arg);
+                        }
+                        break;
+                      case TYPE_UINT32_T:
+                        {
+                          uint32_t arg = a.arg[dp->arg_index].a.a_uint32_t;
+                          SNPRINTF_BUF (arg);
+                        }
+                        break;
+                      case TYPE_INT64_T:
+                        {
+                          int64_t arg = a.arg[dp->arg_index].a.a_int64_t;
+                          SNPRINTF_BUF (arg);
+                        }
+                        break;
+                      case TYPE_UINT64_T:
+                        {
+                          uint64_t arg = a.arg[dp->arg_index].a.a_uint64_t;
+                          SNPRINTF_BUF (arg);
+                        }
+                        break;
+                      case TYPE_INT_FAST8_T:
+                        {
+                          int_fast8_t arg = a.arg[dp->arg_index].a.a_int_fast8_t;
+                          SNPRINTF_BUF (arg);
+                        }
+                        break;
+                      case TYPE_UINT_FAST8_T:
+                        {
+                          uint_fast8_t arg = a.arg[dp->arg_index].a.a_uint_fast8_t;
+                          SNPRINTF_BUF (arg);
+                        }
+                        break;
+                      case TYPE_INT_FAST16_T:
+                        {
+                          int_fast16_t arg = a.arg[dp->arg_index].a.a_int_fast16_t;
+                          SNPRINTF_BUF (arg);
+                        }
+                        break;
+                      case TYPE_UINT_FAST16_T:
+                        {
+                          uint_fast16_t arg = a.arg[dp->arg_index].a.a_uint_fast16_t;
+                          SNPRINTF_BUF (arg);
+                        }
+                        break;
+                      case TYPE_INT_FAST32_T:
+                        {
+                          int_fast32_t arg = a.arg[dp->arg_index].a.a_int_fast32_t;
+                          SNPRINTF_BUF (arg);
+                        }
+                        break;
+                      case TYPE_UINT_FAST32_T:
+                        {
+                          uint_fast32_t arg = a.arg[dp->arg_index].a.a_uint_fast32_t;
+                          SNPRINTF_BUF (arg);
+                        }
+                        break;
+                      case TYPE_INT_FAST64_T:
+                        {
+                          int_fast64_t arg = a.arg[dp->arg_index].a.a_int_fast64_t;
+                          SNPRINTF_BUF (arg);
+                        }
+                        break;
+                      case TYPE_UINT_FAST64_T:
+                        {
+                          uint_fast64_t arg = a.arg[dp->arg_index].a.a_uint_fast64_t;
+                          SNPRINTF_BUF (arg);
+                        }
+                        break;
                       case TYPE_DOUBLE:
                         {
                           double arg = a.arg[dp->arg_index].a.a_double;
@@ -5396,12 +6397,16 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                             /* Look at the snprintf() return value.  */
                             if (retcount < 0)
                               {
-# if !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF
+# if (WIDE_CHAR_VERSION && DCHAR_IS_TCHAR) || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF
                                 /* HP-UX 10.20 snprintf() is doubly deficient:
                                    It doesn't understand the '%n' directive,
                                    *and* it returns -1 (rather than the length
                                    that would have been required) when the
                                    buffer is too small.
+                                   Likewise, in case of
+                                   WIDE_CHAR_VERSION && DCHAR_IS_TCHAR, the
+                                   functions snwprintf()/_snwprintf() (Windows)
+                                   or swprintf() (Unix).
                                    But a failure at this point can also come
                                    from other reasons than a too small buffer,
                                    such as an invalid wide string argument to
@@ -5437,7 +6442,15 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
 # endif
                               }
                             else
-                              count = retcount;
+                              {
+                                count = retcount;
+# if WIDE_CHAR_VERSION && defined __MINGW32__
+                                if (count == 0 && dp->conversion == 'c')
+                                  /* snwprintf returned 0 instead of 1.  But it
+                                     wrote a null wide character.  */
+                                  count = 1;
+# endif
+                              }
                           }
                       }
 #endif
@@ -5455,13 +6468,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                               errno = EINVAL;
                           }
 
-                        if (!(result == resultbuf || result == NULL))
-                          free (result);
-                        if (buf_malloced != NULL)
-                          free (buf_malloced);
-                        CLEANUP ();
-
-                        return NULL;
+                        goto fail_with_errno;
                       }
 
 #if USE_SNPRINTF
@@ -5573,21 +6580,73 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
 
 #if !DCHAR_IS_TCHAR
                     /* Convert from TCHAR_T[] to DCHAR_T[].  */
-                    if (dp->conversion == 'c' || dp->conversion == 's')
+                    if (dp->conversion == 'c' || dp->conversion == 's'
+# if __GLIBC__ >= 2 && !defined __UCLIBC__
+                        || (flags & FLAG_LOCALIZED)
+# endif
+                       )
                       {
-                        /* type = TYPE_CHAR or TYPE_WIDE_CHAR or TYPE_STRING
-                           TYPE_WIDE_STRING.
-                           The result string is not certainly ASCII.  */
+                        /* 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'.  */
-                        verify (sizeof (TCHAR_T) == 1);
+                        static_assert (sizeof (TCHAR_T) == 1);
 # if USE_SNPRINTF
                         tmpsrc = (TCHAR_T *) (result + length);
 # else
                         tmpsrc = tmp;
 # endif
+# if WIDE_CHAR_VERSION
+                        /* Convert tmpsrc[0..count-1] to a freshly allocated
+                           wide character array.  */
+                        mbstate_t state;
+
+                        memset (&state, '\0', sizeof (mbstate_t));
+                        tmpdst_len = 0;
+                        {
+                          const TCHAR_T *src = tmpsrc;
+                          size_t srclen = count;
+
+                          for (; srclen > 0; tmpdst_len++)
+                            {
+                              /* Parse the next multibyte character.  */
+                              size_t ret = mbrtowc (NULL, src, srclen, &state);
+                              if (ret == (size_t)(-2) || ret == (size_t)(-1))
+                                goto fail_with_EILSEQ;
+                              if (ret == 0)
+                                ret = 1;
+                              src += ret;
+                              srclen -= ret;
+                            }
+                        }
+
+                        tmpdst =
+                          (wchar_t *) malloc ((tmpdst_len + 1) * sizeof (wchar_t));
+                        if (tmpdst == NULL)
+                          goto out_of_memory;
+
+                        memset (&state, '\0', sizeof (mbstate_t));
+                        {
+                          DCHAR_T *destptr = tmpdst;
+                          const TCHAR_T *src = tmpsrc;
+                          size_t srclen = count;
+
+                          for (; srclen > 0; destptr++)
+                            {
+                              /* Parse the next multibyte character.  */
+                              size_t ret = mbrtowc (destptr, src, srclen, &state);
+                              if (ret == (size_t)(-2) || ret == (size_t)(-1))
+                                /* Should already have been caught in the first
+                                   loop, above.  */
+                                abort ();
+                              if (ret == 0)
+                                ret = 1;
+                              src += ret;
+                              srclen -= ret;
+                            }
+                        }
+# else
                         tmpdst =
                           DCHAR_CONV_FROM_ENCODING (locale_charset (),
                                                     iconveh_question_mark,
@@ -5595,14 +6654,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                                                     NULL,
                                                     NULL, &tmpdst_len);
                         if (tmpdst == NULL)
-                          {
-                            if (!(result == resultbuf || result == NULL))
-                              free (result);
-                            if (buf_malloced != NULL)
-                              free (buf_malloced);
-                            CLEANUP ();
-                            return NULL;
-                          }
+                          goto fail_with_errno;
+# endif
                         ENSURE_ALLOCATION_ELSE (xsum (length, tmpdst_len),
                                                 { free (tmpdst); goto out_of_memory; });
                         DCHAR_CPY (result + length, tmpdst, tmpdst_len);
@@ -5669,7 +6722,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                     /* Here count <= allocated - length.  */
 
                     /* Perform padding.  */
-#if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
+#if (WIDE_CHAR_VERSION && MUSL_LIBC) || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
                     if (pad_ourselves && has_width)
                       {
                         size_t w;
@@ -5728,6 +6781,22 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                                   if ((*pad_ptr >= 'A' && *pad_ptr <= 'Z')
                                       || (*pad_ptr >= 'a' && *pad_ptr <= 'z'))
                                     pad_ptr = NULL;
+                                  else
+                                    /* Do the zero-padding after the "0x" or
+                                       "0b" prefix, not before.  */
+                                    if (p - rp >= 2
+                                        && *rp == '0'
+                                        && (((dp->conversion == 'a'
+                                              || dp->conversion == 'x')
+                                             && rp[1] == 'x')
+                                            || ((dp->conversion == 'A'
+                                                 || dp->conversion == 'X')
+                                                && rp[1] == 'X')
+                                            || (dp->conversion == 'b'
+                                                && rp[1] == 'b')
+                                            || (dp->conversion == 'B'
+                                                && rp[1] == 'B')))
+                                      pad_ptr += 2;
                                 }
                               /* The generated string now extends from rp to p,
                                  with the zero padding insertion point being at
@@ -5741,7 +6810,22 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                                   for (; pad > 0; pad--)
                                     *p++ = ' ';
                                 }
-                              else if ((flags & FLAG_ZERO) && pad_ptr != NULL)
+                              else if ((flags & FLAG_ZERO) && pad_ptr != NULL
+                                       /* ISO C says: "For d, i, o, u, x, and X
+                                          conversions, if a precision is
+                                          specified, the 0 flag is ignored.  */
+                                       && !(has_precision
+                                            && (dp->conversion == 'd'
+                                                || dp->conversion == 'i'
+                                                || dp->conversion == 'o'
+                                                || dp->conversion == 'u'
+                                                || dp->conversion == 'x'
+                                                || dp->conversion == 'X'
+                                                /* Although ISO C does not
+                                                   require it, treat 'b' and 'B'
+                                                   like 'x' and 'X'.  */
+                                                || dp->conversion == 'b'
+                                                || dp->conversion == 'B')))
                                 {
                                   /* Pad with zeroes.  */
                                   DCHAR_T *q = end;
@@ -5827,25 +6911,40 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
 
 #if USE_SNPRINTF
   overflow:
-    if (!(result == resultbuf || result == NULL))
-      free (result);
-    if (buf_malloced != NULL)
-      free (buf_malloced);
-    CLEANUP ();
     errno = EOVERFLOW;
-    return NULL;
+    goto fail_with_errno;
 #endif
 
   out_of_memory:
-    if (!(result == resultbuf || result == NULL))
+    errno = ENOMEM;
+    goto fail_with_errno;
+
+#if ENABLE_UNISTDIO || ((!USE_SNPRINTF || WIDE_CHAR_VERSION || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || NEED_PRINTF_DIRECTIVE_LS || ENABLE_WCHAR_FALLBACK) && HAVE_WCHAR_T) || ((NEED_PRINTF_DIRECTIVE_LC || ENABLE_WCHAR_FALLBACK) && HAVE_WINT_T && !WIDE_CHAR_VERSION) || (NEED_WPRINTF_DIRECTIVE_C && WIDE_CHAR_VERSION)
+  fail_with_EILSEQ:
+    errno = EILSEQ;
+    goto fail_with_errno;
+#endif
+
+  fail_with_errno:
+    if (result != resultbuf)
       free (result);
     if (buf_malloced != NULL)
       free (buf_malloced);
-  out_of_memory_1:
     CLEANUP ();
-    errno = ENOMEM;
     return NULL;
   }
+
+ out_of_memory_1:
+  errno = ENOMEM;
+  goto fail_1_with_errno;
+
+ fail_1_with_EINVAL:
+  errno = EINVAL;
+  goto fail_1_with_errno;
+
+ fail_1_with_errno:
+  CLEANUP ();
+  return NULL;
 }
 
 #undef MAX_ROOM_NEEDED
similarity index 93%
rename from lib/vasnprintf.h
rename to gnulib-tests/vasnprintf.h
index 9b02cdf..2d13407 100644 (file)
@@ -1,5 +1,5 @@
 /* vsprintf with automatic memory allocation.
-   Copyright (C) 2002-2004, 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2002-2004, 2007-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 #ifndef _VASNPRINTF_H
 #define _VASNPRINTF_H
 
+/* This file uses _GL_ATTRIBUTE_FORMAT.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 /* Get va_list.  */
 #include <stdarg.h>
 
index 635a1b2..84e46e3 100644 (file)
@@ -1,6 +1,6 @@
 /* w32sock.h --- internal auxiliary functions for Windows socket functions
 
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 612937a..3075603 100644 (file)
@@ -1,5 +1,5 @@
 /* A C macro for emitting warnings if a function is used.
-   Copyright (C) 2010-2021 Free Software Foundation, Inc.
+   Copyright (C) 2010-2023 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
 # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
 /* A compiler attribute is available in gcc versions 4.3.0 and later.  */
 #  define _GL_WARN_ON_USE(function, message) \
-extern __typeof__ (function) function __attribute__ ((__warning__ (message)))
+_GL_WARN_EXTERN_C __typeof__ (function) function __attribute__ ((__warning__ (message)))
 #  define _GL_WARN_ON_USE_ATTRIBUTE(message) \
   __attribute__ ((__warning__ (message)))
 # elif __clang_major__ >= 4
 /* Another compiler attribute is available in clang.  */
 #  define _GL_WARN_ON_USE(function, message) \
-extern __typeof__ (function) function \
+_GL_WARN_EXTERN_C __typeof__ (function) function \
   __attribute__ ((__diagnose_if__ (1, message, "warning")))
 #  define _GL_WARN_ON_USE_ATTRIBUTE(message) \
   __attribute__ ((__diagnose_if__ (1, message, "warning")))
 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
 /* Verify the existence of the function.  */
 #  define _GL_WARN_ON_USE(function, message) \
-extern __typeof__ (function) function
+_GL_WARN_EXTERN_C __typeof__ (function) function
 #  define _GL_WARN_ON_USE_ATTRIBUTE(message)
 # else /* Unsupported.  */
 #  define _GL_WARN_ON_USE(function, message) \
index 6f6bed5..df27feb 100644 (file)
@@ -1,10 +1,10 @@
 /* Convert wide character to unibyte character.
-   Copyright (C) 2008, 2010-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008, 2010-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2008.
 
    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 3 of the
+   published by the Free Software Foundation, either version 3 of the
    License, or (at your option) any later version.
 
    This file is distributed in the hope that it will be useful,
index ff8dfe9..9ba727e 100644 (file)
@@ -1,5 +1,5 @@
 /* Convert wide character to multibyte character.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2011.
 
    This file is free software: you can redistribute it and/or modify
index aaf5cee..1143a95 100644 (file)
@@ -1,5 +1,5 @@
 /* Convert wide character to multibyte character.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2011.
 
    This file is free software: you can redistribute it and/or modify
index a60967f..87866dd 100644 (file)
@@ -1,5 +1,5 @@
 /* Creating and controlling threads (native Windows implementation).
-   Copyright (C) 2005-2021 Free Software Foundation, Inc.
+   Copyright (C) 2005-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 680565d..e6511d7 100644 (file)
@@ -1,5 +1,5 @@
 /* Creating and controlling threads (native Windows implementation).
-   Copyright (C) 2005-2021 Free Software Foundation, Inc.
+   Copyright (C) 2005-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 #ifndef _WINDOWS_THREAD_H
 #define _WINDOWS_THREAD_H
 
+/* This file uses _Noreturn.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 #define WIN32_LEAN_AND_MEAN  /* avoid including junk */
 #include <windows.h>
 
index dfadcfd..3b6ff80 100644 (file)
@@ -1,5 +1,5 @@
 /* Thread-local storage (native Windows implementation).
-   Copyright (C) 2005-2021 Free Software Foundation, Inc.
+   Copyright (C) 2005-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index c822d25..b1e4dbf 100644 (file)
@@ -1,5 +1,5 @@
 /* Thread-local storage (native Windows implementation).
-   Copyright (C) 2005-2021 Free Software Foundation, Inc.
+   Copyright (C) 2005-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
similarity index 93%
rename from lib/xsize.c
rename to gnulib-tests/xsize.c
index b3d73a2..279ae82 100644 (file)
@@ -1,6 +1,6 @@
 /* Checked size_t computations.
 
-   Copyright (C) 2012-2021 Free Software Foundation, Inc.
+   Copyright (C) 2012-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
similarity index 95%
rename from lib/xsize.h
rename to gnulib-tests/xsize.h
index 91fa877..5b08d61 100644 (file)
@@ -1,6 +1,6 @@
 /* xsize.h -- Checked size_t computations.
 
-   Copyright (C) 2003, 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2008-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 #ifndef _XSIZE_H
 #define _XSIZE_H
 
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, HAVE_STDINT_H.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 /* Get size_t.  */
 #include <stddef.h>
 
@@ -30,9 +35,6 @@
 /* Get ATTRIBUTE_PURE.  */
 #include "attribute.h"
 
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
 _GL_INLINE_HEADER_BEGIN
 #ifndef XSIZE_INLINE
 # define XSIZE_INLINE _GL_INLINE
index 80b650f..7749e02 100644 (file)
@@ -1,11 +1,11 @@
 /* A more useful interface to strtol.
 
-   Copyright (C) 1995-1996, 1998-1999, 2001-2004, 2006-2021 Free Software
+   Copyright (C) 1995-1996, 1998-1999, 2001-2004, 2006-2023 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 83abc68..0872f59 100644 (file)
@@ -1,11 +1,11 @@
 /* Error reporting interface for xstrto* functions.
 
-   Copyright (C) 1995-1996, 1998-1999, 2001-2004, 2006-2021 Free Software
+   Copyright (C) 1995-1996, 1998-1999, 2001-2004, 2006-2023 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
 #ifndef XSTRTOL_ERROR_H_
 # define XSTRTOL_ERROR_H_ 1
 
+/* This file uses _Noreturn.  */
+# if !_GL_CONFIG_H_INCLUDED
+#  error "Please include config.h first."
+# endif
+
 # include "xstrtol.h"
 
 # include <getopt.h>
@@ -28,7 +33,7 @@
    ERR is the error code returned by one of the xstrto* functions.
 
    Use OPT_IDX to decide whether to print the short option string "C"
-   or "-C" or a long option string derived from LONG_OPTION.  OPT_IDX
+   or "-C" or a long option string derived from LONG_OPTIONS.  OPT_IDX
    is -2 if the short option "C" was used, without any leading "-"; it
    is -1 if the short option "-C" was used; otherwise it is an index
    into LONG_OPTIONS, which should have a name preceded by two '-'
@@ -38,8 +43,9 @@
 
    After reporting an error, exit with a failure status.  */
 
-_Noreturn void xstrtol_fatal (enum strtol_error,
-                              int, char, struct option const *,
-                              char const *);
+_Noreturn void xstrtol_fatal (enum strtol_error /* err */,
+                              int /* opt_idx */, char /* c */,
+                              struct option const * /* long_options */,
+                              char const * /* arg */);
 
 #endif /* not XSTRTOL_ERROR_H_ */
index bfeff50..f2b0903 100644 (file)
@@ -1,9 +1,9 @@
 /* Return a pointer to a zero-size object in memory.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 2edb30a..042850c 100644 (file)
@@ -1,6 +1,6 @@
 # Automakefile for GNU Diffutils library.
 
-# Copyright (C) 2001-2002, 2004, 2006, 2009-2013, 2015-2021 Free Software
+# Copyright (C) 2001-2002, 2004, 2006, 2009-2013, 2015-2023 Free Software
 # Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
@@ -29,7 +29,7 @@ noinst_HEADERS =
 
 include gnulib.mk
 
-noinst_HEADERS += cmpbuf.h prepargs.h
-libdiffutils_a_SOURCES += cmpbuf.c prepargs.c
+noinst_HEADERS += cmpbuf.h
+libdiffutils_a_SOURCES += cmpbuf.c
 
 AM_CFLAGS += $(GNULIB_WARN_CFLAGS) $(WERROR_CFLAGS)
index 31a3c99..e656ada 100644 (file)
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.16d from Makefile.am.
+# Makefile.in generated by automake 1.16i from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2021 Free Software Foundation, Inc.
+# Copyright (C) 1994-2023 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,7 @@
 
 # Automakefile for GNU Diffutils library.
 
-# Copyright (C) 2001-2002, 2004, 2006, 2009-2013, 2015-2021 Free Software
+# Copyright (C) 2001-2002, 2004, 2006, 2009-2013, 2015-2023 Free Software
 # Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# Copyright (C) 2002-2021 Free Software Foundation, Inc.
+# Copyright (C) 2002-2023 Free Software Foundation, Inc.
 #
 # This file is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
+# the Free Software Foundation, either version 3 of the License, or
 # (at your option) any later version.
 #
 # This file is distributed in the hope that it will be useful,
@@ -71,6 +71,7 @@
 #  --avoid=setlocale \
 #  announce-gen \
 #  argmatch \
+#  attribute \
 #  binary-io \
 #  c-stack \
 #  config-h \
 #  exclude \
 #  exitfail \
 #  extensions \
+#  extern-inline \
 #  fcntl \
-#  fdl \
 #  file-type \
 #  filenamecat \
+#  flexmember \
 #  fnmatch-gnu \
 #  getopt-gnu \
 #  gettext-h \
 #  maintainer-makefile \
 #  manywarnings \
 #  mbrtowc \
+#  mempcpy \
 #  mkstemp \
 #  mktime \
 #  nstrftime \
+#  nullptr \
+#  perl \
 #  progname \
 #  propername \
+#  raise \
 #  rawmemchr \
 #  readme-release \
 #  regex \
 #  sh-quote \
 #  signal \
+#  sigprocmask \
 #  stat \
 #  stat-macros \
 #  stat-time \
+#  stdbool \
 #  stdint \
+#  stpcpy \
 #  strcase \
 #  strptime \
 #  strtoimax \
 #  sys_wait \
 #  system-quote \
+#  time_rz \
 #  unistd \
 #  unlocked-io \
 #  update-copyright \
 #  xreadlink \
 #  xstdopen \
 #  xstrtoimax \
-#  xvasprintf
+#  year2038
 
 
 VPATH = @srcdir@
@@ -196,6 +206,8 @@ am__make_running_with_option = \
   test $$has_opt = yes
 am__make_dryrun = (target_option=n; $(am__make_running_with_option))
 am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+am__rm_f = rm -f $(am__rm_f_notfound)
+am__rm_rf = rm -rf $(am__rm_f_notfound)
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -214,29 +226,100 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
-@GL_GENERATE_SIGSEGV_H_TRUE@am__append_1 = sigsegv.c stackvma.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE@am__append_2 = unistr/u8-mbtoucr.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@am__append_3 = unistr/u8-uctomb.c unistr/u8-uctomb-aux.c
-@LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE@am__append_4 = uniwidth/width.c
+@GL_COND_OBJ_BTOWC_TRUE@am__append_1 = btowc.c
+@GL_COND_OBJ_CLOSE_TRUE@am__append_2 = close.c
+@GL_COND_OBJ_DUP2_TRUE@am__append_3 = dup2.c
+@GL_COND_OBJ_ERROR_TRUE@am__append_4 = error.c
+@GL_COND_OBJ_FCNTL_TRUE@am__append_5 = fcntl.c
+@GL_COND_OBJ_FREE_TRUE@am__append_6 = free.c
+@GL_COND_OBJ_FREOPEN_TRUE@am__append_7 = freopen.c
+@GL_COND_OBJ_FSTAT_TRUE@am__append_8 = fstat.c
+@GL_COND_OBJ_GETDTABLESIZE_TRUE@am__append_9 = getdtablesize.c
+@GL_COND_OBJ_GETOPT_TRUE@am__append_10 = getopt.c getopt1.c
+@GL_COND_OBJ_GETPAGESIZE_TRUE@am__append_11 = getpagesize.c
+@GL_COND_OBJ_GETPROGNAME_TRUE@am__append_12 = getprogname.c
+@GL_COND_OBJ_GETRANDOM_TRUE@am__append_13 = getrandom.c
+@GL_COND_OBJ_GETTIMEOFDAY_TRUE@am__append_14 = gettimeofday.c
+@GL_COND_OBJ_ICONV_OPEN_TRUE@am__append_15 = iconv_open.c
+@GL_COND_OBJ_ICONV_TRUE@am__append_16 = iconv.c iconv_close.c
+@GL_COND_OBJ_ISBLANK_TRUE@am__append_17 = isblank.c
+@GL_COND_OBJ_ISWBLANK_TRUE@am__append_18 = iswblank.c
+@GL_COND_OBJ_ISWDIGIT_TRUE@am__append_19 = iswdigit.c
+@GL_COND_OBJ_ISWXDIGIT_TRUE@am__append_20 = iswxdigit.c
+@GL_COND_OBJ_LOCALECONV_TRUE@am__append_21 = localeconv.c
+@GL_COND_OBJ_LSTAT_TRUE@am__append_22 = lstat.c
+@GL_COND_OBJ_MBRTOWC_TRUE@am__append_23 = mbrtowc.c
+@GL_COND_OBJ_MBSINIT_TRUE@am__append_24 = mbsinit.c
+@GL_COND_OBJ_MBSRTOWCS_TRUE@am__append_25 = mbsrtowcs.c
+@GL_COND_OBJ_MBTOWC_TRUE@am__append_26 = mbtowc.c
+@GL_COND_OBJ_MEMCHR_TRUE@am__append_27 = memchr.c
+@GL_COND_OBJ_MEMPCPY_TRUE@am__append_28 = mempcpy.c
+@GL_COND_OBJ_MKDIR_TRUE@am__append_29 = mkdir.c
+@GL_COND_OBJ_MKSTEMP_TRUE@am__append_30 = mkstemp.c
+@GL_COND_OBJ_MSVC_INVAL_TRUE@am__append_31 = msvc-inval.c
+@GL_COND_OBJ_MSVC_NOTHROW_TRUE@am__append_32 = msvc-nothrow.c
+@GL_COND_OBJ_NL_LANGINFO_TRUE@am__append_33 = nl_langinfo.c
+@GL_COND_OBJ_NL_LANGINFO_LOCK_TRUE@am__append_34 = nl_langinfo-lock.c
+@GL_COND_OBJ_OPEN_TRUE@am__append_35 = open.c
+@GL_COND_OBJ_RAISE_TRUE@am__append_36 = raise.c
+@GL_COND_OBJ_RAWMEMCHR_TRUE@am__append_37 = rawmemchr.c
+@GL_COND_OBJ_READLINK_TRUE@am__append_38 = readlink.c
+@GL_COND_OBJ_REALLOCARRAY_TRUE@am__append_39 = reallocarray.c
+@GL_COND_OBJ_REGEX_TRUE@am__append_40 = regex.c
+@GL_COND_OBJ_SETENV_TRUE@am__append_41 = setenv.c
+@GL_COND_OBJ_SETLOCALE_LOCK_TRUE@am__append_42 = setlocale-lock.c
+@GL_COND_OBJ_SIGPROCMASK_TRUE@am__append_43 = sigprocmask.c
+@GL_GENERATE_SIGSEGV_H_TRUE@am__append_44 = sigsegv.c stackvma.c
+@GL_COND_OBJ_STAT_TRUE@am__append_45 = stat.c
+@GL_COND_OBJ_STDIO_READ_TRUE@am__append_46 = stdio-read.c
+@GL_COND_OBJ_STDIO_WRITE_TRUE@am__append_47 = stdio-write.c
+@GL_COND_OBJ_STPCPY_TRUE@am__append_48 = stpcpy.c
+@GL_COND_OBJ_STRCASECMP_TRUE@am__append_49 = strcasecmp.c
+@GL_COND_OBJ_STRNCASECMP_TRUE@am__append_50 = strncasecmp.c
+@GL_COND_OBJ_STRERROR_TRUE@am__append_51 = strerror.c
+@GL_COND_OBJ_STRERROR_OVERRIDE_TRUE@am__append_52 = strerror-override.c
+@GL_COND_OBJ_STRNLEN_TRUE@am__append_53 = strnlen.c
+@GL_COND_OBJ_STRPTIME_TRUE@am__append_54 = strptime.c
+@GL_COND_OBJ_STRTOIMAX_TRUE@am__append_55 = strtoimax.c
+@GL_COND_OBJ_STRTOLL_TRUE@am__append_56 = strtoll.c
+@GL_COND_OBJ_TIME_R_TRUE@am__append_57 = time_r.c
+@GL_COND_OBJ_TIME_RZ_TRUE@am__append_58 = time_rz.c
+@GL_COND_OBJ_TIMEGM_TRUE@am__append_59 = timegm.c
+@GL_COND_OBJ_TZSET_TRUE@am__append_60 = tzset.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE@am__append_61 = unistr/u8-mbtoucr.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@am__append_62 = unistr/u8-uctomb.c unistr/u8-uctomb-aux.c
+@LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE@am__append_63 = uniwidth/width.c
+@GL_COND_OBJ_UNSETENV_TRUE@am__append_64 = unsetenv.c
+@GL_COND_OBJ_WCRTOMB_TRUE@am__append_65 = wcrtomb.c
+@GL_COND_OBJ_WCWIDTH_TRUE@am__append_66 = wcwidth.c
+@GL_COND_OBJ_WINDOWS_MUTEX_TRUE@am__append_67 = windows-mutex.c
+@GL_COND_OBJ_WINDOWS_ONCE_TRUE@am__append_68 = windows-once.c
+@GL_COND_OBJ_WINDOWS_RECMUTEX_TRUE@am__append_69 = windows-recmutex.c
+@GL_COND_OBJ_WINDOWS_RWLOCK_TRUE@am__append_70 = windows-rwlock.c
+@GL_COND_OBJ_WMEMCHR_TRUE@am__append_71 = wmemchr.c
+@GL_COND_OBJ_WMEMPCPY_TRUE@am__append_72 = wmempcpy.c
 subdir = lib
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/__inline.m4 \
        $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \
        $(top_srcdir)/m4/arpa_inet_h.m4 \
-       $(top_srcdir)/m4/asm-underscore.m4 $(top_srcdir)/m4/atoll.m4 \
+       $(top_srcdir)/m4/asm-underscore.m4 \
+       $(top_srcdir)/m4/assert_h.m4 $(top_srcdir)/m4/atoll.m4 \
        $(top_srcdir)/m4/btowc.m4 $(top_srcdir)/m4/builtin-expect.m4 \
-       $(top_srcdir)/m4/c-stack.m4 $(top_srcdir)/m4/calloc.m4 \
-       $(top_srcdir)/m4/clock_time.m4 $(top_srcdir)/m4/close.m4 \
-       $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
-       $(top_srcdir)/m4/ctype_h.m4 \
+       $(top_srcdir)/m4/c-bool.m4 $(top_srcdir)/m4/c-stack.m4 \
+       $(top_srcdir)/m4/calloc.m4 $(top_srcdir)/m4/clock_time.m4 \
+       $(top_srcdir)/m4/close.m4 $(top_srcdir)/m4/codeset.m4 \
+       $(top_srcdir)/m4/config-h.m4 $(top_srcdir)/m4/ctype_h.m4 \
        $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \
        $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \
        $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \
-       $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \
-       $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \
-       $(top_srcdir)/m4/fcntl.m4 $(top_srcdir)/m4/fcntl_h.m4 \
-       $(top_srcdir)/m4/fdopen.m4 $(top_srcdir)/m4/filenamecat.m4 \
+       $(top_srcdir)/m4/error_h.m4 $(top_srcdir)/m4/exponentd.m4 \
+       $(top_srcdir)/m4/extensions.m4 \
+       $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fclose.m4 \
+       $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \
+       $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopen.m4 \
+       $(top_srcdir)/m4/fflush.m4 $(top_srcdir)/m4/filenamecat.m4 \
        $(top_srcdir)/m4/flexmember.m4 $(top_srcdir)/m4/float_h.m4 \
        $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fnmatch_h.m4 \
        $(top_srcdir)/m4/fopen.m4 $(top_srcdir)/m4/fpieee.m4 \
@@ -252,15 +335,16 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \
        $(top_srcdir)/m4/iconv_h.m4 $(top_srcdir)/m4/iconv_open.m4 \
        $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inet_pton.m4 \
-       $(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/intlmacosx.m4 \
-       $(top_srcdir)/m4/intmax_t.m4 $(top_srcdir)/m4/inttostr.m4 \
-       $(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-       $(top_srcdir)/m4/ioctl.m4 $(top_srcdir)/m4/isblank.m4 \
-       $(top_srcdir)/m4/iswblank.m4 $(top_srcdir)/m4/iswdigit.m4 \
-       $(top_srcdir)/m4/iswxdigit.m4 $(top_srcdir)/m4/langinfo_h.m4 \
-       $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lib-ld.m4 \
-       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-       $(top_srcdir)/m4/libsigsegv.m4 \
+       $(top_srcdir)/m4/inline.m4 \
+       $(top_srcdir)/m4/intl-thread-locale.m4 \
+       $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \
+       $(top_srcdir)/m4/inttostr.m4 $(top_srcdir)/m4/inttypes.m4 \
+       $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/ioctl.m4 \
+       $(top_srcdir)/m4/isblank.m4 $(top_srcdir)/m4/iswblank.m4 \
+       $(top_srcdir)/m4/iswdigit.m4 $(top_srcdir)/m4/iswxdigit.m4 \
+       $(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/largefile.m4 \
+       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libsigsegv.m4 \
        $(top_srcdir)/m4/libunistring-base.m4 \
        $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/localcharset.m4 \
        $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \
@@ -282,11 +366,13 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/netinet_in_h.m4 \
        $(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \
        $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/nstrftime.m4 \
-       $(top_srcdir)/m4/off_t.m4 $(top_srcdir)/m4/open-cloexec.m4 \
+       $(top_srcdir)/m4/nullptr.m4 $(top_srcdir)/m4/off_t.m4 \
+       $(top_srcdir)/m4/open-cloexec.m4 \
        $(top_srcdir)/m4/open-slash.m4 $(top_srcdir)/m4/open.m4 \
-       $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/perror.m4 \
-       $(top_srcdir)/m4/pipe.m4 $(top_srcdir)/m4/po.m4 \
-       $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \
+       $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/perl.m4 \
+       $(top_srcdir)/m4/perror.m4 $(top_srcdir)/m4/pipe.m4 \
+       $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf.m4 \
+       $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/pselect.m4 \
        $(top_srcdir)/m4/pthread-thread.m4 \
        $(top_srcdir)/m4/pthread_h.m4 \
        $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \
@@ -297,9 +383,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/reallocarray.m4 $(top_srcdir)/m4/regex.m4 \
        $(top_srcdir)/m4/sched_h.m4 $(top_srcdir)/m4/select.m4 \
        $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/setlocale_null.m4 \
-       $(top_srcdir)/m4/sigaction.m4 $(top_srcdir)/m4/sigaltstack.m4 \
-       $(top_srcdir)/m4/signal_h.m4 \
-       $(top_srcdir)/m4/signalblocking.m4 \
+       $(top_srcdir)/m4/sigaltstack.m4 $(top_srcdir)/m4/signal_h.m4 \
+       $(top_srcdir)/m4/signalblocking.m4 $(top_srcdir)/m4/sigsegv.m4 \
        $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \
        $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \
        $(top_srcdir)/m4/sockets.m4 $(top_srcdir)/m4/socklen.m4 \
@@ -307,9 +392,9 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/stack-direction.m4 \
        $(top_srcdir)/m4/stat-time.m4 $(top_srcdir)/m4/stat.m4 \
        $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdarg.m4 \
-       $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \
-       $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \
-       $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \
+       $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \
+       $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \
+       $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/stpcpy.m4 \
        $(top_srcdir)/m4/strcase.m4 $(top_srcdir)/m4/strerror.m4 \
        $(top_srcdir)/m4/strerror_r.m4 $(top_srcdir)/m4/string_h.m4 \
        $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strnlen.m4 \
@@ -323,12 +408,12 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/sys_uio_h.m4 \
        $(top_srcdir)/m4/sys_wait_h.m4 $(top_srcdir)/m4/tempname.m4 \
        $(top_srcdir)/m4/thread.m4 $(top_srcdir)/m4/threadlib.m4 \
-       $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/time_r.m4 \
-       $(top_srcdir)/m4/time_rz.m4 $(top_srcdir)/m4/timegm.m4 \
-       $(top_srcdir)/m4/timespec.m4 $(top_srcdir)/m4/tm_gmtoff.m4 \
-       $(top_srcdir)/m4/tzset.m4 $(top_srcdir)/m4/unistd_h.m4 \
-       $(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/vasnprintf.m4 \
-       $(top_srcdir)/m4/vasprintf.m4 $(top_srcdir)/m4/version-etc.m4 \
+       $(top_srcdir)/m4/time.m4 $(top_srcdir)/m4/time_h.m4 \
+       $(top_srcdir)/m4/time_r.m4 $(top_srcdir)/m4/time_rz.m4 \
+       $(top_srcdir)/m4/timegm.m4 $(top_srcdir)/m4/timespec.m4 \
+       $(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/tzset.m4 \
+       $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/unlocked-io.m4 \
+       $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/version-etc.m4 \
        $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/warn-on-use.m4 \
        $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/m4/wchar_h.m4 \
        $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wcrtomb.m4 \
@@ -337,7 +422,6 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/wmemchr.m4 \
        $(top_srcdir)/m4/wmempcpy.m4 $(top_srcdir)/m4/xalloc.m4 \
        $(top_srcdir)/m4/xsize.m4 $(top_srcdir)/m4/xstrtol.m4 \
-       $(top_srcdir)/m4/xvasprintf.m4 $(top_srcdir)/m4/year2038.m4 \
        $(top_srcdir)/m4/zzgnulib.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
@@ -353,73 +437,252 @@ am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
 am__v_AR_0 = @echo "  AR      " $@;
 am__v_AR_1 = 
 libdiffutils_a_AR = $(AR) $(ARFLAGS)
+libdiffutils_a_RANLIB = $(RANLIB)
 am__DEPENDENCIES_1 =
 am__libdiffutils_a_SOURCES_DIST = allocator.c areadlink.c argmatch.c \
        basename-lgpl.c binary-io.h binary-io.c bitrotate.h \
-       bitrotate.c c-ctype.h c-ctype.c c-stack.h c-stack.c \
+       bitrotate.c btowc.c c-ctype.h c-ctype.c c-stack.h c-stack.c \
        c-strcase.h c-strcasecmp.c c-strncasecmp.c careadlinkat.c \
-       cloexec.c diffseq.h dirname.c basename.c dirname-lgpl.c \
-       stripslash.c malloc/dynarray_at_failure.c \
-       malloc/dynarray_emplace_enlarge.c malloc/dynarray_finalize.c \
-       malloc/dynarray_resize.c malloc/dynarray_resize_clear.c \
-       exclude.c exitfail.c fd-hook.c file-type.c filenamecat.c \
-       filenamecat-lgpl.c getprogname.h getprogname.c gettext.h \
-       gettime.c hard-locale.c hash.c ialloc.c idx.h imaxtostr.c \
-       inttostr.c offtostr.c uinttostr.c umaxtostr.c localcharset.c \
-       glthread/lock.h glthread/lock.c malloca.c mbchar.c mbiter.h \
-       mbiter.c mbscasecmp.c mbslen.c mbsstr.c mbuiter.h mbuiter.c \
-       minmax.h nstrftime.c progname.h progname.c propername.h \
-       propername.c quotearg.c setlocale_null.c sh-quote.h sh-quote.c \
-       sigsegv.c stackvma.c size_max.h stat-time.c stdopen.c \
-       striconv.h striconv.c strnlen1.h strnlen1.c system-quote.h \
-       system-quote.c tempname.c glthread/threadlib.c timespec.c \
-       trim.c unistd.c unistr/u8-mbtoucr.c unistr/u8-uctomb.c \
-       unistr/u8-uctomb-aux.c uniwidth/width.c version-etc.h \
-       version-etc.c version-etc-fsf.c wctype-h.c xmalloc.c \
-       xalloc-die.c xfreopen.c xfreopen.h xmalloca.c xreadlink.c \
-       xsize.h xsize.c xstdopen.c xstriconv.h xstriconv.c \
-       xstrtoimax.c xstrtol.c xstrtoul.c xvasprintf.h xvasprintf.c \
-       xasprintf.c cmpbuf.c prepargs.c
+       cloexec.c close.c diffseq.h dirname.c basename.c \
+       dirname-lgpl.c stripslash.c dup2.c error.c exclude.c \
+       exitfail.c fcntl.c fd-hook.c file-type.c filenamecat.c \
+       filenamecat-lgpl.c free.c freopen.c fstat.c getdtablesize.c \
+       getopt.c getopt1.c getpagesize.c getprogname.c getrandom.c \
+       gettext.h gettime.c gettimeofday.c \
+       malloc/dynarray_at_failure.c malloc/dynarray_emplace_enlarge.c \
+       malloc/dynarray_finalize.c malloc/dynarray_resize.c \
+       malloc/dynarray_resize_clear.c hard-locale.c hash.c ialloc.c \
+       iconv_open.c iconv.c iconv_close.c idx.h imaxtostr.c \
+       inttostr.c offtostr.c uinttostr.c umaxtostr.c isblank.c \
+       iswblank.c iswdigit.c iswxdigit.c localcharset.c localeconv.c \
+       glthread/lock.h glthread/lock.c lstat.c malloca.c mbchar.c \
+       mbiter.h mbiter.c mbrtowc.c mbscasecmp.c mbsinit.c mbslen.c \
+       mbsrtowcs.c mbsstr.c mbtowc.c mbuiter.h mbuiter.c memchr.c \
+       mempcpy.c minmax.h mkdir.c mkstemp.c msvc-inval.c \
+       msvc-nothrow.c nl_langinfo.c nl_langinfo-lock.c nstrftime.c \
+       open.c progname.h progname.c propername.h propername.c \
+       quotearg.c raise.c rawmemchr.c readlink.c reallocarray.c \
+       regex.c setenv.c setlocale_null.c setlocale-lock.c sh-quote.h \
+       sh-quote.c sigprocmask.c sigsegv.c stackvma.c stat.c \
+       stat-time.c stdio-read.c stdio-write.c stdopen.c stpcpy.c \
+       strcasecmp.c strncasecmp.c strerror.c strerror-override.c \
+       striconv.h striconv.c strnlen.c strnlen1.h strnlen1.c \
+       strptime.c strtoimax.c strtoll.c system-quote.h system-quote.c \
+       tempname.c glthread/threadlib.c time_r.c time_rz.c timegm.c \
+       timespec.c trim.c tzset.c unistd.c unistr/u8-mbtoucr.c \
+       unistr/u8-uctomb.c unistr/u8-uctomb-aux.c uniwidth/width.c \
+       unsetenv.c version-etc.h version-etc.c version-etc-fsf.c \
+       wcrtomb.c wctype-h.c wcwidth.c windows-mutex.c windows-once.c \
+       windows-recmutex.c windows-rwlock.c wmemchr.c wmempcpy.c \
+       xmalloc.c xalloc-die.c xfreopen.c xfreopen.h xmalloca.c \
+       xreadlink.c xstdopen.c xstriconv.h xstriconv.c xstrtoimax.c \
+       xstrtol.c xstrtoul.c cmpbuf.c
+@GL_COND_OBJ_BTOWC_TRUE@am__objects_1 =  \
+@GL_COND_OBJ_BTOWC_TRUE@       libdiffutils_a-btowc.$(OBJEXT)
+@GL_COND_OBJ_CLOSE_TRUE@am__objects_2 =  \
+@GL_COND_OBJ_CLOSE_TRUE@       libdiffutils_a-close.$(OBJEXT)
+@GL_COND_OBJ_DUP2_TRUE@am__objects_3 = libdiffutils_a-dup2.$(OBJEXT)
+@GL_COND_OBJ_ERROR_TRUE@am__objects_4 =  \
+@GL_COND_OBJ_ERROR_TRUE@       libdiffutils_a-error.$(OBJEXT)
+@GL_COND_OBJ_FCNTL_TRUE@am__objects_5 =  \
+@GL_COND_OBJ_FCNTL_TRUE@       libdiffutils_a-fcntl.$(OBJEXT)
+@GL_COND_OBJ_FREE_TRUE@am__objects_6 = libdiffutils_a-free.$(OBJEXT)
+@GL_COND_OBJ_FREOPEN_TRUE@am__objects_7 =  \
+@GL_COND_OBJ_FREOPEN_TRUE@     libdiffutils_a-freopen.$(OBJEXT)
+@GL_COND_OBJ_FSTAT_TRUE@am__objects_8 =  \
+@GL_COND_OBJ_FSTAT_TRUE@       libdiffutils_a-fstat.$(OBJEXT)
+@GL_COND_OBJ_GETDTABLESIZE_TRUE@am__objects_9 = libdiffutils_a-getdtablesize.$(OBJEXT)
+@GL_COND_OBJ_GETOPT_TRUE@am__objects_10 =  \
+@GL_COND_OBJ_GETOPT_TRUE@      libdiffutils_a-getopt.$(OBJEXT) \
+@GL_COND_OBJ_GETOPT_TRUE@      libdiffutils_a-getopt1.$(OBJEXT)
+@GL_COND_OBJ_GETPAGESIZE_TRUE@am__objects_11 = libdiffutils_a-getpagesize.$(OBJEXT)
+@GL_COND_OBJ_GETPROGNAME_TRUE@am__objects_12 = libdiffutils_a-getprogname.$(OBJEXT)
+@GL_COND_OBJ_GETRANDOM_TRUE@am__objects_13 = libdiffutils_a-getrandom.$(OBJEXT)
+@GL_COND_OBJ_GETTIMEOFDAY_TRUE@am__objects_14 = libdiffutils_a-gettimeofday.$(OBJEXT)
 am__dirstamp = $(am__leading_dot)dirstamp
-@GL_GENERATE_SIGSEGV_H_TRUE@am__objects_1 = sigsegv.$(OBJEXT) \
-@GL_GENERATE_SIGSEGV_H_TRUE@   stackvma.$(OBJEXT)
-@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE@am__objects_2 = unistr/u8-mbtoucr.$(OBJEXT)
-@LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@am__objects_3 = unistr/u8-uctomb.$(OBJEXT) \
-@LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@   unistr/u8-uctomb-aux.$(OBJEXT)
-@LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE@am__objects_4 = uniwidth/width.$(OBJEXT)
-am_libdiffutils_a_OBJECTS = allocator.$(OBJEXT) areadlink.$(OBJEXT) \
-       argmatch.$(OBJEXT) basename-lgpl.$(OBJEXT) binary-io.$(OBJEXT) \
-       bitrotate.$(OBJEXT) c-ctype.$(OBJEXT) c-stack.$(OBJEXT) \
-       c-strcasecmp.$(OBJEXT) c-strncasecmp.$(OBJEXT) \
-       careadlinkat.$(OBJEXT) cloexec.$(OBJEXT) dirname.$(OBJEXT) \
-       basename.$(OBJEXT) dirname-lgpl.$(OBJEXT) stripslash.$(OBJEXT) \
-       malloc/dynarray_at_failure.$(OBJEXT) \
-       malloc/dynarray_emplace_enlarge.$(OBJEXT) \
-       malloc/dynarray_finalize.$(OBJEXT) \
-       malloc/dynarray_resize.$(OBJEXT) \
-       malloc/dynarray_resize_clear.$(OBJEXT) exclude.$(OBJEXT) \
-       exitfail.$(OBJEXT) fd-hook.$(OBJEXT) file-type.$(OBJEXT) \
-       filenamecat.$(OBJEXT) filenamecat-lgpl.$(OBJEXT) \
-       getprogname.$(OBJEXT) gettime.$(OBJEXT) hard-locale.$(OBJEXT) \
-       hash.$(OBJEXT) ialloc.$(OBJEXT) imaxtostr.$(OBJEXT) \
-       inttostr.$(OBJEXT) offtostr.$(OBJEXT) uinttostr.$(OBJEXT) \
-       umaxtostr.$(OBJEXT) localcharset.$(OBJEXT) \
-       glthread/lock.$(OBJEXT) malloca.$(OBJEXT) mbchar.$(OBJEXT) \
-       mbiter.$(OBJEXT) mbscasecmp.$(OBJEXT) mbslen.$(OBJEXT) \
-       mbsstr.$(OBJEXT) mbuiter.$(OBJEXT) nstrftime.$(OBJEXT) \
-       progname.$(OBJEXT) propername.$(OBJEXT) quotearg.$(OBJEXT) \
-       setlocale_null.$(OBJEXT) sh-quote.$(OBJEXT) $(am__objects_1) \
-       stat-time.$(OBJEXT) stdopen.$(OBJEXT) striconv.$(OBJEXT) \
-       strnlen1.$(OBJEXT) system-quote.$(OBJEXT) tempname.$(OBJEXT) \
-       glthread/threadlib.$(OBJEXT) timespec.$(OBJEXT) trim.$(OBJEXT) \
-       unistd.$(OBJEXT) $(am__objects_2) $(am__objects_3) \
-       $(am__objects_4) version-etc.$(OBJEXT) \
-       version-etc-fsf.$(OBJEXT) wctype-h.$(OBJEXT) xmalloc.$(OBJEXT) \
-       xalloc-die.$(OBJEXT) xfreopen.$(OBJEXT) xmalloca.$(OBJEXT) \
-       xreadlink.$(OBJEXT) xsize.$(OBJEXT) xstdopen.$(OBJEXT) \
-       xstriconv.$(OBJEXT) xstrtoimax.$(OBJEXT) xstrtol.$(OBJEXT) \
-       xstrtoul.$(OBJEXT) xvasprintf.$(OBJEXT) xasprintf.$(OBJEXT) \
-       cmpbuf.$(OBJEXT) prepargs.$(OBJEXT)
+@GL_COND_OBJ_ICONV_OPEN_TRUE@am__objects_15 = libdiffutils_a-iconv_open.$(OBJEXT)
+@GL_COND_OBJ_ICONV_TRUE@am__objects_16 =  \
+@GL_COND_OBJ_ICONV_TRUE@       libdiffutils_a-iconv.$(OBJEXT) \
+@GL_COND_OBJ_ICONV_TRUE@       libdiffutils_a-iconv_close.$(OBJEXT)
+@GL_COND_OBJ_ISBLANK_TRUE@am__objects_17 =  \
+@GL_COND_OBJ_ISBLANK_TRUE@     libdiffutils_a-isblank.$(OBJEXT)
+@GL_COND_OBJ_ISWBLANK_TRUE@am__objects_18 =  \
+@GL_COND_OBJ_ISWBLANK_TRUE@    libdiffutils_a-iswblank.$(OBJEXT)
+@GL_COND_OBJ_ISWDIGIT_TRUE@am__objects_19 =  \
+@GL_COND_OBJ_ISWDIGIT_TRUE@    libdiffutils_a-iswdigit.$(OBJEXT)
+@GL_COND_OBJ_ISWXDIGIT_TRUE@am__objects_20 = libdiffutils_a-iswxdigit.$(OBJEXT)
+@GL_COND_OBJ_LOCALECONV_TRUE@am__objects_21 = libdiffutils_a-localeconv.$(OBJEXT)
+@GL_COND_OBJ_LSTAT_TRUE@am__objects_22 =  \
+@GL_COND_OBJ_LSTAT_TRUE@       libdiffutils_a-lstat.$(OBJEXT)
+@GL_COND_OBJ_MBRTOWC_TRUE@am__objects_23 =  \
+@GL_COND_OBJ_MBRTOWC_TRUE@     libdiffutils_a-mbrtowc.$(OBJEXT)
+@GL_COND_OBJ_MBSINIT_TRUE@am__objects_24 =  \
+@GL_COND_OBJ_MBSINIT_TRUE@     libdiffutils_a-mbsinit.$(OBJEXT)
+@GL_COND_OBJ_MBSRTOWCS_TRUE@am__objects_25 = libdiffutils_a-mbsrtowcs.$(OBJEXT)
+@GL_COND_OBJ_MBTOWC_TRUE@am__objects_26 =  \
+@GL_COND_OBJ_MBTOWC_TRUE@      libdiffutils_a-mbtowc.$(OBJEXT)
+@GL_COND_OBJ_MEMCHR_TRUE@am__objects_27 =  \
+@GL_COND_OBJ_MEMCHR_TRUE@      libdiffutils_a-memchr.$(OBJEXT)
+@GL_COND_OBJ_MEMPCPY_TRUE@am__objects_28 =  \
+@GL_COND_OBJ_MEMPCPY_TRUE@     libdiffutils_a-mempcpy.$(OBJEXT)
+@GL_COND_OBJ_MKDIR_TRUE@am__objects_29 =  \
+@GL_COND_OBJ_MKDIR_TRUE@       libdiffutils_a-mkdir.$(OBJEXT)
+@GL_COND_OBJ_MKSTEMP_TRUE@am__objects_30 =  \
+@GL_COND_OBJ_MKSTEMP_TRUE@     libdiffutils_a-mkstemp.$(OBJEXT)
+@GL_COND_OBJ_MSVC_INVAL_TRUE@am__objects_31 = libdiffutils_a-msvc-inval.$(OBJEXT)
+@GL_COND_OBJ_MSVC_NOTHROW_TRUE@am__objects_32 = libdiffutils_a-msvc-nothrow.$(OBJEXT)
+@GL_COND_OBJ_NL_LANGINFO_TRUE@am__objects_33 = libdiffutils_a-nl_langinfo.$(OBJEXT)
+@GL_COND_OBJ_NL_LANGINFO_LOCK_TRUE@am__objects_34 = libdiffutils_a-nl_langinfo-lock.$(OBJEXT)
+@GL_COND_OBJ_OPEN_TRUE@am__objects_35 = libdiffutils_a-open.$(OBJEXT)
+@GL_COND_OBJ_RAISE_TRUE@am__objects_36 =  \
+@GL_COND_OBJ_RAISE_TRUE@       libdiffutils_a-raise.$(OBJEXT)
+@GL_COND_OBJ_RAWMEMCHR_TRUE@am__objects_37 = libdiffutils_a-rawmemchr.$(OBJEXT)
+@GL_COND_OBJ_READLINK_TRUE@am__objects_38 =  \
+@GL_COND_OBJ_READLINK_TRUE@    libdiffutils_a-readlink.$(OBJEXT)
+@GL_COND_OBJ_REALLOCARRAY_TRUE@am__objects_39 = libdiffutils_a-reallocarray.$(OBJEXT)
+@GL_COND_OBJ_REGEX_TRUE@am__objects_40 =  \
+@GL_COND_OBJ_REGEX_TRUE@       libdiffutils_a-regex.$(OBJEXT)
+@GL_COND_OBJ_SETENV_TRUE@am__objects_41 =  \
+@GL_COND_OBJ_SETENV_TRUE@      libdiffutils_a-setenv.$(OBJEXT)
+@GL_COND_OBJ_SETLOCALE_LOCK_TRUE@am__objects_42 = libdiffutils_a-setlocale-lock.$(OBJEXT)
+@GL_COND_OBJ_SIGPROCMASK_TRUE@am__objects_43 = libdiffutils_a-sigprocmask.$(OBJEXT)
+@GL_GENERATE_SIGSEGV_H_TRUE@am__objects_44 =  \
+@GL_GENERATE_SIGSEGV_H_TRUE@   libdiffutils_a-sigsegv.$(OBJEXT) \
+@GL_GENERATE_SIGSEGV_H_TRUE@   libdiffutils_a-stackvma.$(OBJEXT)
+@GL_COND_OBJ_STAT_TRUE@am__objects_45 = libdiffutils_a-stat.$(OBJEXT)
+@GL_COND_OBJ_STDIO_READ_TRUE@am__objects_46 = libdiffutils_a-stdio-read.$(OBJEXT)
+@GL_COND_OBJ_STDIO_WRITE_TRUE@am__objects_47 = libdiffutils_a-stdio-write.$(OBJEXT)
+@GL_COND_OBJ_STPCPY_TRUE@am__objects_48 =  \
+@GL_COND_OBJ_STPCPY_TRUE@      libdiffutils_a-stpcpy.$(OBJEXT)
+@GL_COND_OBJ_STRCASECMP_TRUE@am__objects_49 = libdiffutils_a-strcasecmp.$(OBJEXT)
+@GL_COND_OBJ_STRNCASECMP_TRUE@am__objects_50 = libdiffutils_a-strncasecmp.$(OBJEXT)
+@GL_COND_OBJ_STRERROR_TRUE@am__objects_51 =  \
+@GL_COND_OBJ_STRERROR_TRUE@    libdiffutils_a-strerror.$(OBJEXT)
+@GL_COND_OBJ_STRERROR_OVERRIDE_TRUE@am__objects_52 = libdiffutils_a-strerror-override.$(OBJEXT)
+@GL_COND_OBJ_STRNLEN_TRUE@am__objects_53 =  \
+@GL_COND_OBJ_STRNLEN_TRUE@     libdiffutils_a-strnlen.$(OBJEXT)
+@GL_COND_OBJ_STRPTIME_TRUE@am__objects_54 =  \
+@GL_COND_OBJ_STRPTIME_TRUE@    libdiffutils_a-strptime.$(OBJEXT)
+@GL_COND_OBJ_STRTOIMAX_TRUE@am__objects_55 = libdiffutils_a-strtoimax.$(OBJEXT)
+@GL_COND_OBJ_STRTOLL_TRUE@am__objects_56 =  \
+@GL_COND_OBJ_STRTOLL_TRUE@     libdiffutils_a-strtoll.$(OBJEXT)
+@GL_COND_OBJ_TIME_R_TRUE@am__objects_57 =  \
+@GL_COND_OBJ_TIME_R_TRUE@      libdiffutils_a-time_r.$(OBJEXT)
+@GL_COND_OBJ_TIME_RZ_TRUE@am__objects_58 =  \
+@GL_COND_OBJ_TIME_RZ_TRUE@     libdiffutils_a-time_rz.$(OBJEXT)
+@GL_COND_OBJ_TIMEGM_TRUE@am__objects_59 =  \
+@GL_COND_OBJ_TIMEGM_TRUE@      libdiffutils_a-timegm.$(OBJEXT)
+@GL_COND_OBJ_TZSET_TRUE@am__objects_60 =  \
+@GL_COND_OBJ_TZSET_TRUE@       libdiffutils_a-tzset.$(OBJEXT)
+@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE@am__objects_61 = unistr/libdiffutils_a-u8-mbtoucr.$(OBJEXT)
+@LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@am__objects_62 = unistr/libdiffutils_a-u8-uctomb.$(OBJEXT) \
+@LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@   unistr/libdiffutils_a-u8-uctomb-aux.$(OBJEXT)
+@LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE@am__objects_63 = uniwidth/libdiffutils_a-width.$(OBJEXT)
+@GL_COND_OBJ_UNSETENV_TRUE@am__objects_64 =  \
+@GL_COND_OBJ_UNSETENV_TRUE@    libdiffutils_a-unsetenv.$(OBJEXT)
+@GL_COND_OBJ_WCRTOMB_TRUE@am__objects_65 =  \
+@GL_COND_OBJ_WCRTOMB_TRUE@     libdiffutils_a-wcrtomb.$(OBJEXT)
+@GL_COND_OBJ_WCWIDTH_TRUE@am__objects_66 =  \
+@GL_COND_OBJ_WCWIDTH_TRUE@     libdiffutils_a-wcwidth.$(OBJEXT)
+@GL_COND_OBJ_WINDOWS_MUTEX_TRUE@am__objects_67 = libdiffutils_a-windows-mutex.$(OBJEXT)
+@GL_COND_OBJ_WINDOWS_ONCE_TRUE@am__objects_68 = libdiffutils_a-windows-once.$(OBJEXT)
+@GL_COND_OBJ_WINDOWS_RECMUTEX_TRUE@am__objects_69 = libdiffutils_a-windows-recmutex.$(OBJEXT)
+@GL_COND_OBJ_WINDOWS_RWLOCK_TRUE@am__objects_70 = libdiffutils_a-windows-rwlock.$(OBJEXT)
+@GL_COND_OBJ_WMEMCHR_TRUE@am__objects_71 =  \
+@GL_COND_OBJ_WMEMCHR_TRUE@     libdiffutils_a-wmemchr.$(OBJEXT)
+@GL_COND_OBJ_WMEMPCPY_TRUE@am__objects_72 =  \
+@GL_COND_OBJ_WMEMPCPY_TRUE@    libdiffutils_a-wmempcpy.$(OBJEXT)
+am_libdiffutils_a_OBJECTS = libdiffutils_a-allocator.$(OBJEXT) \
+       libdiffutils_a-areadlink.$(OBJEXT) \
+       libdiffutils_a-argmatch.$(OBJEXT) \
+       libdiffutils_a-basename-lgpl.$(OBJEXT) \
+       libdiffutils_a-binary-io.$(OBJEXT) \
+       libdiffutils_a-bitrotate.$(OBJEXT) $(am__objects_1) \
+       libdiffutils_a-c-ctype.$(OBJEXT) \
+       libdiffutils_a-c-stack.$(OBJEXT) \
+       libdiffutils_a-c-strcasecmp.$(OBJEXT) \
+       libdiffutils_a-c-strncasecmp.$(OBJEXT) \
+       libdiffutils_a-careadlinkat.$(OBJEXT) \
+       libdiffutils_a-cloexec.$(OBJEXT) $(am__objects_2) \
+       libdiffutils_a-dirname.$(OBJEXT) \
+       libdiffutils_a-basename.$(OBJEXT) \
+       libdiffutils_a-dirname-lgpl.$(OBJEXT) \
+       libdiffutils_a-stripslash.$(OBJEXT) $(am__objects_3) \
+       $(am__objects_4) libdiffutils_a-exclude.$(OBJEXT) \
+       libdiffutils_a-exitfail.$(OBJEXT) $(am__objects_5) \
+       libdiffutils_a-fd-hook.$(OBJEXT) \
+       libdiffutils_a-file-type.$(OBJEXT) \
+       libdiffutils_a-filenamecat.$(OBJEXT) \
+       libdiffutils_a-filenamecat-lgpl.$(OBJEXT) $(am__objects_6) \
+       $(am__objects_7) $(am__objects_8) $(am__objects_9) \
+       $(am__objects_10) $(am__objects_11) $(am__objects_12) \
+       $(am__objects_13) libdiffutils_a-gettime.$(OBJEXT) \
+       $(am__objects_14) \
+       malloc/libdiffutils_a-dynarray_at_failure.$(OBJEXT) \
+       malloc/libdiffutils_a-dynarray_emplace_enlarge.$(OBJEXT) \
+       malloc/libdiffutils_a-dynarray_finalize.$(OBJEXT) \
+       malloc/libdiffutils_a-dynarray_resize.$(OBJEXT) \
+       malloc/libdiffutils_a-dynarray_resize_clear.$(OBJEXT) \
+       libdiffutils_a-hard-locale.$(OBJEXT) \
+       libdiffutils_a-hash.$(OBJEXT) libdiffutils_a-ialloc.$(OBJEXT) \
+       $(am__objects_15) $(am__objects_16) \
+       libdiffutils_a-imaxtostr.$(OBJEXT) \
+       libdiffutils_a-inttostr.$(OBJEXT) \
+       libdiffutils_a-offtostr.$(OBJEXT) \
+       libdiffutils_a-uinttostr.$(OBJEXT) \
+       libdiffutils_a-umaxtostr.$(OBJEXT) $(am__objects_17) \
+       $(am__objects_18) $(am__objects_19) $(am__objects_20) \
+       libdiffutils_a-localcharset.$(OBJEXT) $(am__objects_21) \
+       glthread/libdiffutils_a-lock.$(OBJEXT) $(am__objects_22) \
+       libdiffutils_a-malloca.$(OBJEXT) \
+       libdiffutils_a-mbchar.$(OBJEXT) \
+       libdiffutils_a-mbiter.$(OBJEXT) $(am__objects_23) \
+       libdiffutils_a-mbscasecmp.$(OBJEXT) $(am__objects_24) \
+       libdiffutils_a-mbslen.$(OBJEXT) $(am__objects_25) \
+       libdiffutils_a-mbsstr.$(OBJEXT) $(am__objects_26) \
+       libdiffutils_a-mbuiter.$(OBJEXT) $(am__objects_27) \
+       $(am__objects_28) $(am__objects_29) $(am__objects_30) \
+       $(am__objects_31) $(am__objects_32) $(am__objects_33) \
+       $(am__objects_34) libdiffutils_a-nstrftime.$(OBJEXT) \
+       $(am__objects_35) libdiffutils_a-progname.$(OBJEXT) \
+       libdiffutils_a-propername.$(OBJEXT) \
+       libdiffutils_a-quotearg.$(OBJEXT) $(am__objects_36) \
+       $(am__objects_37) $(am__objects_38) $(am__objects_39) \
+       $(am__objects_40) $(am__objects_41) \
+       libdiffutils_a-setlocale_null.$(OBJEXT) $(am__objects_42) \
+       libdiffutils_a-sh-quote.$(OBJEXT) $(am__objects_43) \
+       $(am__objects_44) $(am__objects_45) \
+       libdiffutils_a-stat-time.$(OBJEXT) $(am__objects_46) \
+       $(am__objects_47) libdiffutils_a-stdopen.$(OBJEXT) \
+       $(am__objects_48) $(am__objects_49) $(am__objects_50) \
+       $(am__objects_51) $(am__objects_52) \
+       libdiffutils_a-striconv.$(OBJEXT) $(am__objects_53) \
+       libdiffutils_a-strnlen1.$(OBJEXT) $(am__objects_54) \
+       $(am__objects_55) $(am__objects_56) \
+       libdiffutils_a-system-quote.$(OBJEXT) \
+       libdiffutils_a-tempname.$(OBJEXT) \
+       glthread/libdiffutils_a-threadlib.$(OBJEXT) $(am__objects_57) \
+       $(am__objects_58) $(am__objects_59) \
+       libdiffutils_a-timespec.$(OBJEXT) \
+       libdiffutils_a-trim.$(OBJEXT) $(am__objects_60) \
+       libdiffutils_a-unistd.$(OBJEXT) $(am__objects_61) \
+       $(am__objects_62) $(am__objects_63) $(am__objects_64) \
+       libdiffutils_a-version-etc.$(OBJEXT) \
+       libdiffutils_a-version-etc-fsf.$(OBJEXT) $(am__objects_65) \
+       libdiffutils_a-wctype-h.$(OBJEXT) $(am__objects_66) \
+       $(am__objects_67) $(am__objects_68) $(am__objects_69) \
+       $(am__objects_70) $(am__objects_71) $(am__objects_72) \
+       libdiffutils_a-xmalloc.$(OBJEXT) \
+       libdiffutils_a-xalloc-die.$(OBJEXT) \
+       libdiffutils_a-xfreopen.$(OBJEXT) \
+       libdiffutils_a-xmalloca.$(OBJEXT) \
+       libdiffutils_a-xreadlink.$(OBJEXT) \
+       libdiffutils_a-xstdopen.$(OBJEXT) \
+       libdiffutils_a-xstriconv.$(OBJEXT) \
+       libdiffutils_a-xstrtoimax.$(OBJEXT) \
+       libdiffutils_a-xstrtol.$(OBJEXT) \
+       libdiffutils_a-xstrtoul.$(OBJEXT) \
+       libdiffutils_a-cmpbuf.$(OBJEXT)
 libdiffutils_a_OBJECTS = $(am_libdiffutils_a_OBJECTS)
 AM_V_P = $(am__v_P_@AM_V@)
 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
@@ -436,99 +699,179 @@ am__v_at_1 =
 DEFAULT_INCLUDES = -I.@am__isrc@
 depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
 am__maybe_remake_depfiles = depfiles
-am__depfiles_remade = ./$(DEPDIR)/allocator.Po ./$(DEPDIR)/anytostr.Po \
-       ./$(DEPDIR)/areadlink.Po ./$(DEPDIR)/argmatch.Po \
-       ./$(DEPDIR)/asnprintf.Po ./$(DEPDIR)/asprintf.Po \
-       ./$(DEPDIR)/basename-lgpl.Po ./$(DEPDIR)/basename.Po \
-       ./$(DEPDIR)/binary-io.Po ./$(DEPDIR)/bitrotate.Po \
-       ./$(DEPDIR)/btowc.Po ./$(DEPDIR)/c-ctype.Po \
-       ./$(DEPDIR)/c-stack.Po ./$(DEPDIR)/c-strcasecmp.Po \
-       ./$(DEPDIR)/c-strncasecmp.Po ./$(DEPDIR)/calloc.Po \
-       ./$(DEPDIR)/careadlinkat.Po ./$(DEPDIR)/cloexec.Po \
-       ./$(DEPDIR)/close.Po ./$(DEPDIR)/cmpbuf.Po \
-       ./$(DEPDIR)/dirname-lgpl.Po ./$(DEPDIR)/dirname.Po \
-       ./$(DEPDIR)/dup2.Po ./$(DEPDIR)/error.Po \
-       ./$(DEPDIR)/exclude.Po ./$(DEPDIR)/exitfail.Po \
-       ./$(DEPDIR)/fcntl.Po ./$(DEPDIR)/fd-hook.Po \
-       ./$(DEPDIR)/file-type.Po ./$(DEPDIR)/filenamecat-lgpl.Po \
-       ./$(DEPDIR)/filenamecat.Po ./$(DEPDIR)/float.Po \
-       ./$(DEPDIR)/fnmatch.Po ./$(DEPDIR)/fnmatch_loop.Po \
-       ./$(DEPDIR)/fopen.Po ./$(DEPDIR)/free.Po \
-       ./$(DEPDIR)/freopen.Po ./$(DEPDIR)/fstat.Po \
-       ./$(DEPDIR)/getdtablesize.Po ./$(DEPDIR)/getopt.Po \
-       ./$(DEPDIR)/getopt1.Po ./$(DEPDIR)/getpagesize.Po \
-       ./$(DEPDIR)/getprogname.Po ./$(DEPDIR)/getrandom.Po \
-       ./$(DEPDIR)/gettime.Po ./$(DEPDIR)/gettimeofday.Po \
-       ./$(DEPDIR)/hard-locale.Po ./$(DEPDIR)/hash.Po \
-       ./$(DEPDIR)/ialloc.Po ./$(DEPDIR)/iconv.Po \
-       ./$(DEPDIR)/iconv_close.Po ./$(DEPDIR)/iconv_open.Po \
-       ./$(DEPDIR)/imaxtostr.Po ./$(DEPDIR)/inttostr.Po \
-       ./$(DEPDIR)/isblank.Po ./$(DEPDIR)/iswblank.Po \
-       ./$(DEPDIR)/iswdigit.Po ./$(DEPDIR)/iswxdigit.Po \
-       ./$(DEPDIR)/itold.Po ./$(DEPDIR)/lc-charset-dispatch.Po \
-       ./$(DEPDIR)/localcharset.Po ./$(DEPDIR)/localeconv.Po \
-       ./$(DEPDIR)/lstat.Po ./$(DEPDIR)/malloc.Po \
-       ./$(DEPDIR)/malloca.Po ./$(DEPDIR)/mbchar.Po \
-       ./$(DEPDIR)/mbiter.Po ./$(DEPDIR)/mbrtowc.Po \
-       ./$(DEPDIR)/mbscasecmp.Po ./$(DEPDIR)/mbsinit.Po \
-       ./$(DEPDIR)/mbslen.Po ./$(DEPDIR)/mbsrtowcs-state.Po \
-       ./$(DEPDIR)/mbsrtowcs.Po ./$(DEPDIR)/mbsstr.Po \
-       ./$(DEPDIR)/mbtowc-lock.Po ./$(DEPDIR)/mbtowc.Po \
-       ./$(DEPDIR)/mbuiter.Po ./$(DEPDIR)/memchr.Po \
-       ./$(DEPDIR)/mempcpy.Po ./$(DEPDIR)/mkdir.Po \
-       ./$(DEPDIR)/mkstemp.Po ./$(DEPDIR)/mktime.Po \
-       ./$(DEPDIR)/msvc-inval.Po ./$(DEPDIR)/msvc-nothrow.Po \
-       ./$(DEPDIR)/nl_langinfo-lock.Po ./$(DEPDIR)/nl_langinfo.Po \
-       ./$(DEPDIR)/nstrftime.Po ./$(DEPDIR)/offtostr.Po \
-       ./$(DEPDIR)/open.Po ./$(DEPDIR)/prepargs.Po \
-       ./$(DEPDIR)/printf-args.Po ./$(DEPDIR)/printf-parse.Po \
-       ./$(DEPDIR)/progname.Po ./$(DEPDIR)/propername.Po \
-       ./$(DEPDIR)/quotearg.Po ./$(DEPDIR)/raise.Po \
-       ./$(DEPDIR)/rawmemchr.Po ./$(DEPDIR)/readlink.Po \
-       ./$(DEPDIR)/realloc.Po ./$(DEPDIR)/reallocarray.Po \
-       ./$(DEPDIR)/regcomp.Po ./$(DEPDIR)/regex.Po \
-       ./$(DEPDIR)/regex_internal.Po ./$(DEPDIR)/regexec.Po \
-       ./$(DEPDIR)/setenv.Po ./$(DEPDIR)/setlocale-lock.Po \
-       ./$(DEPDIR)/setlocale_null.Po ./$(DEPDIR)/sh-quote.Po \
-       ./$(DEPDIR)/sigsegv.Po ./$(DEPDIR)/stackvma.Po \
-       ./$(DEPDIR)/stat-time.Po ./$(DEPDIR)/stat-w32.Po \
-       ./$(DEPDIR)/stat.Po ./$(DEPDIR)/stdopen.Po \
-       ./$(DEPDIR)/strcasecmp.Po ./$(DEPDIR)/strerror-override.Po \
-       ./$(DEPDIR)/strerror.Po ./$(DEPDIR)/striconv.Po \
-       ./$(DEPDIR)/stripslash.Po ./$(DEPDIR)/strncasecmp.Po \
-       ./$(DEPDIR)/strnlen.Po ./$(DEPDIR)/strnlen1.Po \
-       ./$(DEPDIR)/strptime.Po ./$(DEPDIR)/strtoimax.Po \
-       ./$(DEPDIR)/strtol.Po ./$(DEPDIR)/strtoll.Po \
-       ./$(DEPDIR)/system-quote.Po ./$(DEPDIR)/tempname.Po \
-       ./$(DEPDIR)/time_r.Po ./$(DEPDIR)/time_rz.Po \
-       ./$(DEPDIR)/timegm.Po ./$(DEPDIR)/timespec.Po \
-       ./$(DEPDIR)/trim.Po ./$(DEPDIR)/tzset.Po \
-       ./$(DEPDIR)/uinttostr.Po ./$(DEPDIR)/umaxtostr.Po \
-       ./$(DEPDIR)/unistd.Po ./$(DEPDIR)/unsetenv.Po \
-       ./$(DEPDIR)/vasnprintf.Po ./$(DEPDIR)/vasprintf.Po \
-       ./$(DEPDIR)/version-etc-fsf.Po ./$(DEPDIR)/version-etc.Po \
-       ./$(DEPDIR)/wcrtomb.Po ./$(DEPDIR)/wctype-h.Po \
-       ./$(DEPDIR)/wcwidth.Po ./$(DEPDIR)/windows-mutex.Po \
-       ./$(DEPDIR)/windows-once.Po ./$(DEPDIR)/windows-recmutex.Po \
-       ./$(DEPDIR)/windows-rwlock.Po ./$(DEPDIR)/wmemchr.Po \
-       ./$(DEPDIR)/wmempcpy.Po ./$(DEPDIR)/xalloc-die.Po \
-       ./$(DEPDIR)/xasprintf.Po ./$(DEPDIR)/xfreopen.Po \
-       ./$(DEPDIR)/xmalloc.Po ./$(DEPDIR)/xmalloca.Po \
-       ./$(DEPDIR)/xreadlink.Po ./$(DEPDIR)/xsize.Po \
-       ./$(DEPDIR)/xstdopen.Po ./$(DEPDIR)/xstriconv.Po \
-       ./$(DEPDIR)/xstrtoimax.Po ./$(DEPDIR)/xstrtol.Po \
-       ./$(DEPDIR)/xstrtoul.Po ./$(DEPDIR)/xvasprintf.Po \
-       glthread/$(DEPDIR)/lock.Po glthread/$(DEPDIR)/threadlib.Po \
-       malloc/$(DEPDIR)/dynarray-skeleton.Po \
-       malloc/$(DEPDIR)/dynarray_at_failure.Po \
-       malloc/$(DEPDIR)/dynarray_emplace_enlarge.Po \
-       malloc/$(DEPDIR)/dynarray_finalize.Po \
-       malloc/$(DEPDIR)/dynarray_resize.Po \
-       malloc/$(DEPDIR)/dynarray_resize_clear.Po \
-       unistr/$(DEPDIR)/u8-mbtoucr.Po \
-       unistr/$(DEPDIR)/u8-uctomb-aux.Po \
-       unistr/$(DEPDIR)/u8-uctomb.Po uniwidth/$(DEPDIR)/width.Po
+am__depfiles_remade = ./$(DEPDIR)/libdiffutils_a-allocator.Po \
+       ./$(DEPDIR)/libdiffutils_a-anytostr.Po \
+       ./$(DEPDIR)/libdiffutils_a-areadlink.Po \
+       ./$(DEPDIR)/libdiffutils_a-argmatch.Po \
+       ./$(DEPDIR)/libdiffutils_a-basename-lgpl.Po \
+       ./$(DEPDIR)/libdiffutils_a-basename.Po \
+       ./$(DEPDIR)/libdiffutils_a-binary-io.Po \
+       ./$(DEPDIR)/libdiffutils_a-bitrotate.Po \
+       ./$(DEPDIR)/libdiffutils_a-btowc.Po \
+       ./$(DEPDIR)/libdiffutils_a-c-ctype.Po \
+       ./$(DEPDIR)/libdiffutils_a-c-stack.Po \
+       ./$(DEPDIR)/libdiffutils_a-c-strcasecmp.Po \
+       ./$(DEPDIR)/libdiffutils_a-c-strncasecmp.Po \
+       ./$(DEPDIR)/libdiffutils_a-calloc.Po \
+       ./$(DEPDIR)/libdiffutils_a-careadlinkat.Po \
+       ./$(DEPDIR)/libdiffutils_a-cloexec.Po \
+       ./$(DEPDIR)/libdiffutils_a-close.Po \
+       ./$(DEPDIR)/libdiffutils_a-cmpbuf.Po \
+       ./$(DEPDIR)/libdiffutils_a-dirname-lgpl.Po \
+       ./$(DEPDIR)/libdiffutils_a-dirname.Po \
+       ./$(DEPDIR)/libdiffutils_a-dup2.Po \
+       ./$(DEPDIR)/libdiffutils_a-error.Po \
+       ./$(DEPDIR)/libdiffutils_a-exclude.Po \
+       ./$(DEPDIR)/libdiffutils_a-exitfail.Po \
+       ./$(DEPDIR)/libdiffutils_a-fcntl.Po \
+       ./$(DEPDIR)/libdiffutils_a-fd-hook.Po \
+       ./$(DEPDIR)/libdiffutils_a-file-type.Po \
+       ./$(DEPDIR)/libdiffutils_a-filenamecat-lgpl.Po \
+       ./$(DEPDIR)/libdiffutils_a-filenamecat.Po \
+       ./$(DEPDIR)/libdiffutils_a-fnmatch.Po \
+       ./$(DEPDIR)/libdiffutils_a-fnmatch_loop.Po \
+       ./$(DEPDIR)/libdiffutils_a-fopen.Po \
+       ./$(DEPDIR)/libdiffutils_a-free.Po \
+       ./$(DEPDIR)/libdiffutils_a-freopen.Po \
+       ./$(DEPDIR)/libdiffutils_a-fstat.Po \
+       ./$(DEPDIR)/libdiffutils_a-getdtablesize.Po \
+       ./$(DEPDIR)/libdiffutils_a-getopt.Po \
+       ./$(DEPDIR)/libdiffutils_a-getopt1.Po \
+       ./$(DEPDIR)/libdiffutils_a-getpagesize.Po \
+       ./$(DEPDIR)/libdiffutils_a-getprogname.Po \
+       ./$(DEPDIR)/libdiffutils_a-getrandom.Po \
+       ./$(DEPDIR)/libdiffutils_a-gettime.Po \
+       ./$(DEPDIR)/libdiffutils_a-gettimeofday.Po \
+       ./$(DEPDIR)/libdiffutils_a-hard-locale.Po \
+       ./$(DEPDIR)/libdiffutils_a-hash.Po \
+       ./$(DEPDIR)/libdiffutils_a-ialloc.Po \
+       ./$(DEPDIR)/libdiffutils_a-iconv.Po \
+       ./$(DEPDIR)/libdiffutils_a-iconv_close.Po \
+       ./$(DEPDIR)/libdiffutils_a-iconv_open.Po \
+       ./$(DEPDIR)/libdiffutils_a-imaxtostr.Po \
+       ./$(DEPDIR)/libdiffutils_a-inttostr.Po \
+       ./$(DEPDIR)/libdiffutils_a-isblank.Po \
+       ./$(DEPDIR)/libdiffutils_a-iswblank.Po \
+       ./$(DEPDIR)/libdiffutils_a-iswdigit.Po \
+       ./$(DEPDIR)/libdiffutils_a-iswxdigit.Po \
+       ./$(DEPDIR)/libdiffutils_a-lc-charset-dispatch.Po \
+       ./$(DEPDIR)/libdiffutils_a-localcharset.Po \
+       ./$(DEPDIR)/libdiffutils_a-localeconv.Po \
+       ./$(DEPDIR)/libdiffutils_a-lstat.Po \
+       ./$(DEPDIR)/libdiffutils_a-malloc.Po \
+       ./$(DEPDIR)/libdiffutils_a-malloca.Po \
+       ./$(DEPDIR)/libdiffutils_a-mbchar.Po \
+       ./$(DEPDIR)/libdiffutils_a-mbiter.Po \
+       ./$(DEPDIR)/libdiffutils_a-mbrtowc.Po \
+       ./$(DEPDIR)/libdiffutils_a-mbscasecmp.Po \
+       ./$(DEPDIR)/libdiffutils_a-mbsinit.Po \
+       ./$(DEPDIR)/libdiffutils_a-mbslen.Po \
+       ./$(DEPDIR)/libdiffutils_a-mbsrtowcs-state.Po \
+       ./$(DEPDIR)/libdiffutils_a-mbsrtowcs.Po \
+       ./$(DEPDIR)/libdiffutils_a-mbsstr.Po \
+       ./$(DEPDIR)/libdiffutils_a-mbtowc-lock.Po \
+       ./$(DEPDIR)/libdiffutils_a-mbtowc.Po \
+       ./$(DEPDIR)/libdiffutils_a-mbuiter.Po \
+       ./$(DEPDIR)/libdiffutils_a-memchr.Po \
+       ./$(DEPDIR)/libdiffutils_a-mempcpy.Po \
+       ./$(DEPDIR)/libdiffutils_a-mkdir.Po \
+       ./$(DEPDIR)/libdiffutils_a-mkstemp.Po \
+       ./$(DEPDIR)/libdiffutils_a-mktime.Po \
+       ./$(DEPDIR)/libdiffutils_a-msvc-inval.Po \
+       ./$(DEPDIR)/libdiffutils_a-msvc-nothrow.Po \
+       ./$(DEPDIR)/libdiffutils_a-nl_langinfo-lock.Po \
+       ./$(DEPDIR)/libdiffutils_a-nl_langinfo.Po \
+       ./$(DEPDIR)/libdiffutils_a-nstrftime.Po \
+       ./$(DEPDIR)/libdiffutils_a-offtostr.Po \
+       ./$(DEPDIR)/libdiffutils_a-open.Po \
+       ./$(DEPDIR)/libdiffutils_a-progname.Po \
+       ./$(DEPDIR)/libdiffutils_a-propername.Po \
+       ./$(DEPDIR)/libdiffutils_a-quotearg.Po \
+       ./$(DEPDIR)/libdiffutils_a-raise.Po \
+       ./$(DEPDIR)/libdiffutils_a-rawmemchr.Po \
+       ./$(DEPDIR)/libdiffutils_a-readlink.Po \
+       ./$(DEPDIR)/libdiffutils_a-realloc.Po \
+       ./$(DEPDIR)/libdiffutils_a-reallocarray.Po \
+       ./$(DEPDIR)/libdiffutils_a-regcomp.Po \
+       ./$(DEPDIR)/libdiffutils_a-regex.Po \
+       ./$(DEPDIR)/libdiffutils_a-regex_internal.Po \
+       ./$(DEPDIR)/libdiffutils_a-regexec.Po \
+       ./$(DEPDIR)/libdiffutils_a-setenv.Po \
+       ./$(DEPDIR)/libdiffutils_a-setlocale-lock.Po \
+       ./$(DEPDIR)/libdiffutils_a-setlocale_null.Po \
+       ./$(DEPDIR)/libdiffutils_a-sh-quote.Po \
+       ./$(DEPDIR)/libdiffutils_a-sigprocmask.Po \
+       ./$(DEPDIR)/libdiffutils_a-sigsegv.Po \
+       ./$(DEPDIR)/libdiffutils_a-stackvma.Po \
+       ./$(DEPDIR)/libdiffutils_a-stat-time.Po \
+       ./$(DEPDIR)/libdiffutils_a-stat-w32.Po \
+       ./$(DEPDIR)/libdiffutils_a-stat.Po \
+       ./$(DEPDIR)/libdiffutils_a-stdio-read.Po \
+       ./$(DEPDIR)/libdiffutils_a-stdio-write.Po \
+       ./$(DEPDIR)/libdiffutils_a-stdopen.Po \
+       ./$(DEPDIR)/libdiffutils_a-stpcpy.Po \
+       ./$(DEPDIR)/libdiffutils_a-strcasecmp.Po \
+       ./$(DEPDIR)/libdiffutils_a-strerror-override.Po \
+       ./$(DEPDIR)/libdiffutils_a-strerror.Po \
+       ./$(DEPDIR)/libdiffutils_a-striconv.Po \
+       ./$(DEPDIR)/libdiffutils_a-stripslash.Po \
+       ./$(DEPDIR)/libdiffutils_a-strncasecmp.Po \
+       ./$(DEPDIR)/libdiffutils_a-strnlen.Po \
+       ./$(DEPDIR)/libdiffutils_a-strnlen1.Po \
+       ./$(DEPDIR)/libdiffutils_a-strptime.Po \
+       ./$(DEPDIR)/libdiffutils_a-strtoimax.Po \
+       ./$(DEPDIR)/libdiffutils_a-strtol.Po \
+       ./$(DEPDIR)/libdiffutils_a-strtoll.Po \
+       ./$(DEPDIR)/libdiffutils_a-system-quote.Po \
+       ./$(DEPDIR)/libdiffutils_a-tempname.Po \
+       ./$(DEPDIR)/libdiffutils_a-time_r.Po \
+       ./$(DEPDIR)/libdiffutils_a-time_rz.Po \
+       ./$(DEPDIR)/libdiffutils_a-timegm.Po \
+       ./$(DEPDIR)/libdiffutils_a-timespec.Po \
+       ./$(DEPDIR)/libdiffutils_a-trim.Po \
+       ./$(DEPDIR)/libdiffutils_a-tzset.Po \
+       ./$(DEPDIR)/libdiffutils_a-uinttostr.Po \
+       ./$(DEPDIR)/libdiffutils_a-umaxtostr.Po \
+       ./$(DEPDIR)/libdiffutils_a-unistd.Po \
+       ./$(DEPDIR)/libdiffutils_a-unsetenv.Po \
+       ./$(DEPDIR)/libdiffutils_a-version-etc-fsf.Po \
+       ./$(DEPDIR)/libdiffutils_a-version-etc.Po \
+       ./$(DEPDIR)/libdiffutils_a-wcrtomb.Po \
+       ./$(DEPDIR)/libdiffutils_a-wctype-h.Po \
+       ./$(DEPDIR)/libdiffutils_a-wcwidth.Po \
+       ./$(DEPDIR)/libdiffutils_a-windows-mutex.Po \
+       ./$(DEPDIR)/libdiffutils_a-windows-once.Po \
+       ./$(DEPDIR)/libdiffutils_a-windows-recmutex.Po \
+       ./$(DEPDIR)/libdiffutils_a-windows-rwlock.Po \
+       ./$(DEPDIR)/libdiffutils_a-wmemchr.Po \
+       ./$(DEPDIR)/libdiffutils_a-wmempcpy.Po \
+       ./$(DEPDIR)/libdiffutils_a-xalloc-die.Po \
+       ./$(DEPDIR)/libdiffutils_a-xfreopen.Po \
+       ./$(DEPDIR)/libdiffutils_a-xmalloc.Po \
+       ./$(DEPDIR)/libdiffutils_a-xmalloca.Po \
+       ./$(DEPDIR)/libdiffutils_a-xreadlink.Po \
+       ./$(DEPDIR)/libdiffutils_a-xstdopen.Po \
+       ./$(DEPDIR)/libdiffutils_a-xstriconv.Po \
+       ./$(DEPDIR)/libdiffutils_a-xstrtoimax.Po \
+       ./$(DEPDIR)/libdiffutils_a-xstrtol.Po \
+       ./$(DEPDIR)/libdiffutils_a-xstrtoul.Po \
+       glthread/$(DEPDIR)/libdiffutils_a-lock.Po \
+       glthread/$(DEPDIR)/libdiffutils_a-threadlib.Po \
+       malloc/$(DEPDIR)/libdiffutils_a-dynarray-skeleton.Po \
+       malloc/$(DEPDIR)/libdiffutils_a-dynarray_at_failure.Po \
+       malloc/$(DEPDIR)/libdiffutils_a-dynarray_emplace_enlarge.Po \
+       malloc/$(DEPDIR)/libdiffutils_a-dynarray_finalize.Po \
+       malloc/$(DEPDIR)/libdiffutils_a-dynarray_resize.Po \
+       malloc/$(DEPDIR)/libdiffutils_a-dynarray_resize_clear.Po \
+       unistr/$(DEPDIR)/libdiffutils_a-u8-mbtoucr.Po \
+       unistr/$(DEPDIR)/libdiffutils_a-u8-uctomb-aux.Po \
+       unistr/$(DEPDIR)/libdiffutils_a-u8-uctomb.Po \
+       uniwidth/$(DEPDIR)/libdiffutils_a-width.Po
 am__mv = mv -f
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
@@ -579,6 +922,7 @@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
 AR = @AR@
 ARFLAGS = @ARFLAGS@
+ASSERT_H = @ASSERT_H@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -592,6 +936,7 @@ CC = @CC@
 CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
 CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
+CLOCK_TIME_LIB = @CLOCK_TIME_LIB@
 CONFIG_INCLUDE = @CONFIG_INCLUDE@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
@@ -603,7 +948,6 @@ DEPDIR = @DEPDIR@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-EGREP = @EGREP@
 EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@
 EMULTIHOP_VALUE = @EMULTIHOP_VALUE@
 ENOLINK_HIDDEN = @ENOLINK_HIDDEN@
@@ -611,14 +955,17 @@ ENOLINK_VALUE = @ENOLINK_VALUE@
 EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@
 EOVERFLOW_VALUE = @EOVERFLOW_VALUE@
 ERRNO_H = @ERRNO_H@
+ERROR_H = @ERROR_H@
 ETAGS = @ETAGS@
 EXEEXT = @EXEEXT@
 FLOAT_H = @FLOAT_H@
 FNMATCH_H = @FNMATCH_H@
 GETOPT_CDEFS_H = @GETOPT_CDEFS_H@
 GETOPT_H = @GETOPT_H@
+GETRANDOM_LIB = @GETRANDOM_LIB@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@
+GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@
 GL_CXXFLAG_ALLOW_WARNINGS = @GL_CXXFLAG_ALLOW_WARNINGS@
 GL_GNULIB_ACCEPT = @GL_GNULIB_ACCEPT@
 GL_GNULIB_ACCEPT4 = @GL_GNULIB_ACCEPT4@
@@ -627,9 +974,11 @@ GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@
 GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@
 GL_GNULIB_BIND = @GL_GNULIB_BIND@
 GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@
+GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@
 GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@
 GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@
 GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@
+GL_GNULIB_CHMOD = @GL_GNULIB_CHMOD@
 GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@
 GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@
 GL_GNULIB_CONNECT = @GL_GNULIB_CONNECT@
@@ -667,6 +1016,7 @@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@
 GL_GNULIB_FGETS = @GL_GNULIB_FGETS@
 GL_GNULIB_FNMATCH = @GL_GNULIB_FNMATCH@
 GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@
+GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@
 GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@
 GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@
 GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@
@@ -702,7 +1052,9 @@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@
 GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@
 GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@
 GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@
+GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@
 GL_GNULIB_GETPEERNAME = @GL_GNULIB_GETPEERNAME@
+GL_GNULIB_GETPROGNAME = @GL_GNULIB_GETPROGNAME@
 GL_GNULIB_GETRANDOM = @GL_GNULIB_GETRANDOM@
 GL_GNULIB_GETSOCKNAME = @GL_GNULIB_GETSOCKNAME@
 GL_GNULIB_GETSOCKOPT = @GL_GNULIB_GETSOCKOPT@
@@ -734,6 +1086,7 @@ GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@
 GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@
 GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@
 GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@
+GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@
 GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@
 GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@
 GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@
@@ -754,6 +1107,7 @@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@
 GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@
 GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@
 GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@
+GL_GNULIB_MBSTOWCS = @GL_GNULIB_MBSTOWCS@
 GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@
 GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@
 GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@
@@ -800,6 +1154,7 @@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@
 GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@
 GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@
 GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@
+GL_GNULIB_MEMSET_EXPLICIT = @GL_GNULIB_MEMSET_EXPLICIT@
 GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@
 GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@
 GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@
@@ -856,6 +1211,7 @@ GL_GNULIB_READ = @GL_GNULIB_READ@
 GL_GNULIB_READLINK = @GL_GNULIB_READLINK@
 GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@
 GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@
+GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@
 GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@
 GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@
 GL_GNULIB_RECV = @GL_GNULIB_RECV@
@@ -919,8 +1275,10 @@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@
 GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@
 GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@
 GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@
+GL_GNULIB_TIME = @GL_GNULIB_TIME@
 GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@
 GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@
+GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@
 GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@
 GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@
 GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@
@@ -994,6 +1352,7 @@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@
 GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
 GNULIB_WARN_CFLAGS = @GNULIB_WARN_CFLAGS@
 GREP = @GREP@
+HARD_LOCALE_LIB = @HARD_LOCALE_LIB@
 HAVE_ACCEPT4 = @HAVE_ACCEPT4@
 HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@
 HAVE_ALLOCA_H = @HAVE_ALLOCA_H@
@@ -1024,6 +1383,7 @@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@
 HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
 HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
 HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
+HAVE_DECL_GETW = @HAVE_DECL_GETW@
 HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
 HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
 HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@
@@ -1033,6 +1393,8 @@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@
 HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
 HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
 HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@
+HAVE_DECL_PROGRAM_INVOCATION_NAME = @HAVE_DECL_PROGRAM_INVOCATION_NAME@
+HAVE_DECL_PUTW = @HAVE_DECL_PUTW@
 HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
 HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
 HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@
@@ -1056,6 +1418,9 @@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
 HAVE_DPRINTF = @HAVE_DPRINTF@
 HAVE_DUP3 = @HAVE_DUP3@
 HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
+HAVE_ERROR = @HAVE_ERROR@
+HAVE_ERROR_AT_LINE = @HAVE_ERROR_AT_LINE@
+HAVE_ERROR_H = @HAVE_ERROR_H@
 HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
 HAVE_EXECVPE = @HAVE_EXECVPE@
 HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@
@@ -1086,12 +1451,15 @@ HAVE_GETLOGIN = @HAVE_GETLOGIN@
 HAVE_GETOPT_H = @HAVE_GETOPT_H@
 HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
 HAVE_GETPASS = @HAVE_GETPASS@
+HAVE_GETPROGNAME = @HAVE_GETPROGNAME@
 HAVE_GETRANDOM = @HAVE_GETRANDOM@
 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
 HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@
 HAVE_GETUMASK = @HAVE_GETUMASK@
 HAVE_GRANTPT = @HAVE_GRANTPT@
 HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
+HAVE_IMAXABS = @HAVE_IMAXABS@
+HAVE_IMAXDIV = @HAVE_IMAXDIV@
 HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@
 HAVE_INITSTATE = @HAVE_INITSTATE@
 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
@@ -1119,6 +1487,7 @@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
 HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
 HAVE_MBTOWC = @HAVE_MBTOWC@
 HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MEMSET_EXPLICIT = @HAVE_MEMSET_EXPLICIT@
 HAVE_MKDIRAT = @HAVE_MKDIRAT@
 HAVE_MKDTEMP = @HAVE_MKDTEMP@
 HAVE_MKFIFO = @HAVE_MKFIFO@
@@ -1276,9 +1645,11 @@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
 HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@
 HAVE_TIMEGM = @HAVE_TIMEGM@
 HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@
+HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@
 HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@
 HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
 HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNISTRING_WOE32DLL_H = @HAVE_UNISTRING_WOE32DLL_H@
 HAVE_UNLINKAT = @HAVE_UNLINKAT@
 HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
 HAVE_USLEEP = @HAVE_USLEEP@
@@ -1328,7 +1699,6 @@ HAVE_WMEMPCPY = @HAVE_WMEMPCPY@
 HAVE_WMEMSET = @HAVE_WMEMSET@
 HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@
 HAVE_XLOCALE_H = @HAVE_XLOCALE_H@
-HAVE__BOOL = @HAVE__BOOL@
 HAVE__EXIT = @HAVE__EXIT@
 HELP2MAN = @HELP2MAN@
 HOST_CPU = @HOST_CPU@
@@ -1394,15 +1764,20 @@ LTLIBOBJS = @LTLIBOBJS@
 LTLIBSIGSEGV = @LTLIBSIGSEGV@
 LTLIBTHREAD = @LTLIBTHREAD@
 MAKEINFO = @MAKEINFO@
+MBRTOWC_LIB = @MBRTOWC_LIB@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
+NANOSLEEP_LIB = @NANOSLEEP_LIB@
 NETINET_IN_H = @NETINET_IN_H@
 NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@
+NEXT_ASSERT_H = @NEXT_ASSERT_H@
 NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@
+NEXT_AS_FIRST_DIRECTIVE_ASSERT_H = @NEXT_AS_FIRST_DIRECTIVE_ASSERT_H@
 NEXT_AS_FIRST_DIRECTIVE_CTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_CTYPE_H@
 NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@
+NEXT_AS_FIRST_DIRECTIVE_ERROR_H = @NEXT_AS_FIRST_DIRECTIVE_ERROR_H@
 NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@
 NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@
 NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H = @NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H@
@@ -1438,6 +1813,7 @@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@
 NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@
 NEXT_CTYPE_H = @NEXT_CTYPE_H@
 NEXT_ERRNO_H = @NEXT_ERRNO_H@
+NEXT_ERROR_H = @NEXT_ERROR_H@
 NEXT_FCNTL_H = @NEXT_FCNTL_H@
 NEXT_FLOAT_H = @NEXT_FLOAT_H@
 NEXT_FNMATCH_H = @NEXT_FNMATCH_H@
@@ -1480,27 +1856,35 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
 PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
 POSUB = @POSUB@
 PRAGMA_COLUMNS = @PRAGMA_COLUMNS@
 PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
 PRIPTR_PREFIX = @PRIPTR_PREFIX@
 PR_PROGRAM = @PR_PROGRAM@
 PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@
+PTHREAD_SIGMASK_LIB = @PTHREAD_SIGMASK_LIB@
 PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
 RANLIB = @RANLIB@
 REPLACE_ACCESS = @REPLACE_ACCESS@
 REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@
 REPLACE_BTOWC = @REPLACE_BTOWC@
-REPLACE_CALLOC = @REPLACE_CALLOC@
+REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@
+REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@
 REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@
+REPLACE_CHMOD = @REPLACE_CHMOD@
 REPLACE_CHOWN = @REPLACE_CHOWN@
 REPLACE_CLOSE = @REPLACE_CLOSE@
+REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@
 REPLACE_CREAT = @REPLACE_CREAT@
 REPLACE_CTIME = @REPLACE_CTIME@
 REPLACE_DPRINTF = @REPLACE_DPRINTF@
 REPLACE_DUP = @REPLACE_DUP@
 REPLACE_DUP2 = @REPLACE_DUP2@
+REPLACE_DUP3 = @REPLACE_DUP3@
 REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
+REPLACE_ERROR = @REPLACE_ERROR@
+REPLACE_ERROR_AT_LINE = @REPLACE_ERROR_AT_LINE@
 REPLACE_EXECL = @REPLACE_EXECL@
 REPLACE_EXECLE = @REPLACE_EXECLE@
 REPLACE_EXECLP = @REPLACE_EXECLP@
@@ -1513,11 +1897,13 @@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@
 REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
 REPLACE_FCLOSE = @REPLACE_FCLOSE@
 REPLACE_FCNTL = @REPLACE_FCNTL@
+REPLACE_FDATASYNC = @REPLACE_FDATASYNC@
 REPLACE_FDOPEN = @REPLACE_FDOPEN@
 REPLACE_FFLUSH = @REPLACE_FFLUSH@
 REPLACE_FFSLL = @REPLACE_FFSLL@
 REPLACE_FNMATCH = @REPLACE_FNMATCH@
 REPLACE_FOPEN = @REPLACE_FOPEN@
+REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@
 REPLACE_FPRINTF = @REPLACE_FPRINTF@
 REPLACE_FPURGE = @REPLACE_FPURGE@
 REPLACE_FREE = @REPLACE_FREE@
@@ -1535,17 +1921,24 @@ REPLACE_GETCWD = @REPLACE_GETCWD@
 REPLACE_GETDELIM = @REPLACE_GETDELIM@
 REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
 REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@
+REPLACE_GETENTROPY = @REPLACE_GETENTROPY@
 REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
 REPLACE_GETLINE = @REPLACE_GETLINE@
+REPLACE_GETLOADAVG = @REPLACE_GETLOADAVG@
 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
 REPLACE_GETPASS = @REPLACE_GETPASS@
+REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@
+REPLACE_GETPROGNAME = @REPLACE_GETPROGNAME@
 REPLACE_GETRANDOM = @REPLACE_GETRANDOM@
+REPLACE_GETSUBOPT = @REPLACE_GETSUBOPT@
 REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
 REPLACE_GMTIME = @REPLACE_GMTIME@
 REPLACE_ICONV = @REPLACE_ICONV@
 REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@
 REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@
+REPLACE_IMAXABS = @REPLACE_IMAXABS@
+REPLACE_IMAXDIV = @REPLACE_IMAXDIV@
 REPLACE_INET_NTOP = @REPLACE_INET_NTOP@
 REPLACE_INET_PTON = @REPLACE_INET_PTON@
 REPLACE_INITSTATE = @REPLACE_INITSTATE@
@@ -1564,21 +1957,27 @@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@
 REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
 REPLACE_LSEEK = @REPLACE_LSEEK@
 REPLACE_LSTAT = @REPLACE_LSTAT@
-REPLACE_MALLOC = @REPLACE_MALLOC@
+REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@
+REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@
 REPLACE_MBRLEN = @REPLACE_MBRLEN@
 REPLACE_MBRTOWC = @REPLACE_MBRTOWC@
 REPLACE_MBSINIT = @REPLACE_MBSINIT@
 REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@
 REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@
 REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@
+REPLACE_MBSTOWCS = @REPLACE_MBSTOWCS@
 REPLACE_MBTOWC = @REPLACE_MBTOWC@
+REPLACE_MB_CUR_MAX = @REPLACE_MB_CUR_MAX@
 REPLACE_MEMCHR = @REPLACE_MEMCHR@
 REPLACE_MEMMEM = @REPLACE_MEMMEM@
+REPLACE_MEMPCPY = @REPLACE_MEMPCPY@
 REPLACE_MKDIR = @REPLACE_MKDIR@
 REPLACE_MKFIFO = @REPLACE_MKFIFO@
 REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@
 REPLACE_MKNOD = @REPLACE_MKNOD@
 REPLACE_MKNODAT = @REPLACE_MKNODAT@
+REPLACE_MKOSTEMP = @REPLACE_MKOSTEMP@
+REPLACE_MKOSTEMPS = @REPLACE_MKOSTEMPS@
 REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
 REPLACE_MKTIME = @REPLACE_MKTIME@
 REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
@@ -1589,8 +1988,10 @@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
 REPLACE_OPEN = @REPLACE_OPEN@
 REPLACE_OPENAT = @REPLACE_OPENAT@
 REPLACE_PERROR = @REPLACE_PERROR@
+REPLACE_PIPE2 = @REPLACE_PIPE2@
 REPLACE_POPEN = @REPLACE_POPEN@
 REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@
+REPLACE_POSIX_OPENPT = @REPLACE_POSIX_OPENPT@
 REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
@@ -1657,8 +2058,9 @@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
 REPLACE_READ = @REPLACE_READ@
 REPLACE_READLINK = @REPLACE_READLINK@
 REPLACE_READLINKAT = @REPLACE_READLINKAT@
-REPLACE_REALLOC = @REPLACE_REALLOC@
 REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@
+REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@
+REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@
 REPLACE_REALPATH = @REPLACE_REALPATH@
 REPLACE_REMOVE = @REPLACE_REMOVE@
 REPLACE_RENAME = @REPLACE_RENAME@
@@ -1667,6 +2069,7 @@ REPLACE_RMDIR = @REPLACE_RMDIR@
 REPLACE_SCHED_YIELD = @REPLACE_SCHED_YIELD@
 REPLACE_SELECT = @REPLACE_SELECT@
 REPLACE_SETENV = @REPLACE_SETENV@
+REPLACE_SETHOSTNAME = @REPLACE_SETHOSTNAME@
 REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
 REPLACE_SETSTATE = @REPLACE_SETSTATE@
 REPLACE_SLEEP = @REPLACE_SLEEP@
@@ -1675,6 +2078,7 @@ REPLACE_SPRINTF = @REPLACE_SPRINTF@
 REPLACE_STAT = @REPLACE_STAT@
 REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@
 REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
+REPLACE_STPCPY = @REPLACE_STPCPY@
 REPLACE_STPNCPY = @REPLACE_STPNCPY@
 REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
 REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@
@@ -1701,7 +2105,9 @@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
 REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@
 REPLACE_SYMLINK = @REPLACE_SYMLINK@
 REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
+REPLACE_TIME = @REPLACE_TIME@
 REPLACE_TIMEGM = @REPLACE_TIMEGM@
+REPLACE_TIMESPEC_GET = @REPLACE_TIMESPEC_GET@
 REPLACE_TMPFILE = @REPLACE_TMPFILE@
 REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
 REPLACE_TRUNCATE = @REPLACE_TRUNCATE@
@@ -1719,25 +2125,33 @@ REPLACE_VPRINTF = @REPLACE_VPRINTF@
 REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@
 REPLACE_VSPRINTF = @REPLACE_VSPRINTF@
 REPLACE_WCRTOMB = @REPLACE_WCRTOMB@
+REPLACE_WCSCMP = @REPLACE_WCSCMP@
 REPLACE_WCSFTIME = @REPLACE_WCSFTIME@
+REPLACE_WCSNCMP = @REPLACE_WCSNCMP@
 REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@
 REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@
+REPLACE_WCSSTR = @REPLACE_WCSSTR@
 REPLACE_WCSTOK = @REPLACE_WCSTOK@
 REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@
 REPLACE_WCTOB = @REPLACE_WCTOB@
 REPLACE_WCTOMB = @REPLACE_WCTOMB@
 REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
+REPLACE_WMEMCMP = @REPLACE_WMEMCMP@
+REPLACE_WMEMPCPY = @REPLACE_WMEMPCPY@
 REPLACE_WRITE = @REPLACE_WRITE@
+REPLACE__EXIT = @REPLACE__EXIT@
+SCHED_YIELD_LIB = @SCHED_YIELD_LIB@
 SED = @SED@
+SELECT_LIB = @SELECT_LIB@
+SETLOCALE_NULL_LIB = @SETLOCALE_NULL_LIB@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIGSEGV_H = @SIGSEGV_H@
 SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
 SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
 SRC_VERSION_C = @SRC_VERSION_C@
-STDALIGN_H = @STDALIGN_H@
 STDARG_H = @STDARG_H@
-STDBOOL_H = @STDBOOL_H@
+STDCKDINT_H = @STDCKDINT_H@
 STDDEF_H = @STDDEF_H@
 STDINT_H = @STDINT_H@
 STRIP = @STRIP@
@@ -1775,8 +2189,10 @@ ac_ct_CC = @ac_ct_CC@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
+am__rm_f_notfound = @am__rm_f_notfound@
 am__tar = @am__tar@
 am__untar = @am__untar@
+am__xargs_n = @am__xargs_n@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
@@ -1789,8 +2205,10 @@ datarootdir = @datarootdir@
 docdir = @docdir@
 dvidir = @dvidir@
 exec_prefix = @exec_prefix@
+gl_LIBOBJDEPS = @gl_LIBOBJDEPS@
 gl_LIBOBJS = @gl_LIBOBJS@
 gl_LTLIBOBJS = @gl_LTLIBOBJS@
+gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@
 gltests_LIBOBJS = @gltests_LIBOBJS@
 gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
 gltests_WITNESS = @gltests_WITNESS@
@@ -1824,18 +2242,17 @@ top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 AM_CFLAGS = $(GNULIB_WARN_CFLAGS) $(WERROR_CFLAGS)
-BUILT_SOURCES = $(ALLOCA_H) ctype.h malloc/dynarray.gl.h \
-       malloc/dynarray-skeleton.gl.h $(ERRNO_H) fcntl.h $(FLOAT_H) \
-       $(FNMATCH_H) $(GETOPT_H) $(GETOPT_CDEFS_H) $(ICONV_H) \
+BUILT_SOURCES = $(ALLOCA_H) $(ASSERT_H) ctype.h $(ERRNO_H) $(ERROR_H) \
+       fcntl.h $(FNMATCH_H) $(GETOPT_H) $(GETOPT_CDEFS_H) \
+       malloc/dynarray.gl.h malloc/dynarray-skeleton.gl.h $(ICONV_H) \
        iconv_open-aix.h iconv_open-hpux.h iconv_open-irix.h \
        iconv_open-osf.h iconv_open-solaris.h iconv_open-zos.h \
        inttypes.h langinfo.h $(LIMITS_H) locale.h signal.h \
-       $(SIGSEGV_H) $(STDALIGN_H) $(STDARG_H) $(STDBOOL_H) \
-       $(STDDEF_H) $(STDINT_H) stdio.h stdlib.h string.h strings.h \
-       sys/random.h sys/stat.h sys/time.h sys/types.h sys/wait.h \
-       time.h unistd.h $(LIBUNISTRING_UNISTR_H) \
-       $(LIBUNISTRING_UNITYPES_H) $(LIBUNISTRING_UNIWIDTH_H) wchar.h \
-       wctype.h
+       $(SIGSEGV_H) $(STDARG_H) $(STDCKDINT_H) $(STDDEF_H) \
+       $(STDINT_H) stdio.h stdlib.h string.h strings.h sys/random.h \
+       sys/stat.h sys/time.h sys/types.h sys/wait.h time.h unistd.h \
+       $(LIBUNISTRING_UNISTR_H) $(LIBUNISTRING_UNITYPES_H) \
+       $(LIBUNISTRING_UNIWIDTH_H) wchar.h wctype.h
 CLEANFILES = 
 
 #if GNU_MAKE
@@ -1847,150 +2264,156 @@ CLEANFILES =
 #endif
 EXTRA_DIST = alloca.in.h allocator.h \
        $(top_srcdir)/build-aux/announce-gen areadlink.h argmatch.h \
-       assure.h attribute.h basename-lgpl.h btowc.c c-strcaseeq.h \
-       calloc.c calloc.c careadlinkat.h cloexec.h close.c ctype.in.h \
-       stripslash.c dirname.h \
-       $(top_srcdir)/build-aux/do-release-commit-and-tag dup2.c \
-       dynarray.h malloc/dynarray-skeleton.c malloc/dynarray.h \
-       errno.in.h error.c error.h exclude.h exitfail.h fcntl.c \
-       fcntl.in.h fd-hook.h file-type.h filename.h filenamecat.h \
-       flexmember.h float.c float.in.h itold.c fnmatch.c \
-       fnmatch_loop.c fnmatch.c fnmatch.in.h fopen.c fopen.c free.c \
-       freopen.c fstat.c stat-w32.c stat-w32.h \
-       $(top_srcdir)/build-aux/gendocs.sh getdtablesize.c \
+       assert.in.h verify.h assure.h attribute.h basename-lgpl.h \
+       c-strcaseeq.h calloc.c calloc.c careadlinkat.h cloexec.h \
+       ctype.in.h stripslash.c dirname.h \
+       $(top_srcdir)/build-aux/do-release-commit-and-tag errno.in.h \
+       error.in.h exclude.h exitfail.h fcntl.in.h fd-hook.h \
+       file-type.h filename.h filenamecat.h flexmember.h fnmatch.c \
+       fnmatch_loop.c fnmatch.c fnmatch.in.h fopen.c fopen.c \
+       stat-w32.c stat-w32.h $(top_srcdir)/build-aux/gendocs.sh \
        getopt-cdefs.in.h getopt-core.h getopt-ext.h getopt-pfx-core.h \
-       getopt-pfx-ext.h getopt.c getopt.in.h getopt1.c getopt_int.h \
-       getpagesize.c getrandom.c gettimeofday.c \
+       getopt-pfx-ext.h getopt.in.h getopt_int.h getprogname.h \
        $(top_srcdir)/build-aux/git-version-gen \
-       $(top_srcdir)/build-aux/gitlog-to-changelog \
+       $(top_srcdir)/build-aux/gitlog-to-changelog dynarray.h \
+       malloc/dynarray-skeleton.c malloc/dynarray.h \
        $(top_srcdir)/build-aux/gnu-web-doc-update \
        $(top_srcdir)/GNUmakefile $(top_srcdir)/build-aux/gnupload \
        hard-locale.h hash.h $(top_srcdir)/build-aux/config.rpath \
        ialloc.h iconv.in.h iconv_open-aix.h iconv_open-hpux.h \
        iconv_open-irix.h iconv_open-osf.h iconv_open-solaris.h \
-       iconv_open-zos.h iconv.c iconv_close.c iconv_open-aix.gperf \
-       iconv_open-hpux.gperf iconv_open-irix.gperf \
-       iconv_open-osf.gperf iconv_open-solaris.gperf \
-       iconv_open-zos.gperf iconv_open.c ignore-value.h intprops.h \
-       anytostr.c inttostr.h inttypes.in.h isblank.c iswblank.c \
-       iswdigit.c iswxdigit.c langinfo.in.h cdefs.h libc-config.h \
-       limits.in.h localcharset.h locale.in.h localeconv.c lstat.c \
-       $(top_srcdir)/maint.mk malloc.c malloc.c malloca.h mbchar.h \
-       lc-charset-dispatch.c lc-charset-dispatch.h \
-       mbrtowc-impl-utf8.h mbrtowc-impl.h mbrtowc.c mbtowc-lock.c \
-       mbtowc-lock.h windows-initguard.h mbsinit.c mbsrtowcs-impl.h \
-       mbsrtowcs-state.c mbsrtowcs.c str-kmp.h mbtowc-impl.h mbtowc.c \
-       memchr.c memchr.valgrind mempcpy.c mkdir.c mkstemp.c \
-       mktime-internal.h mktime.c mktime-internal.h mktime.c \
-       msvc-inval.c msvc-inval.h msvc-nothrow.c msvc-nothrow.h \
-       nl_langinfo-lock.c nl_langinfo.c windows-initguard.h \
-       strftime.h open.c pathmax.h quote.h quote.h quotearg.h raise.c \
-       rawmemchr.c rawmemchr.valgrind readlink.c realloc.c realloc.c \
-       reallocarray.c regcomp.c regex.c regex.h regex_internal.c \
-       regex_internal.h regexec.c setenv.c setlocale-lock.c \
-       setlocale_null.h windows-initguard.h signal.in.h sigsegv.in.h \
-       stackvma.h _Noreturn.h arg-nonnull.h c++defs.h warn-on-use.h \
-       stat-w32.c stat-w32.h stat.c stat-macros.h stat-time.h \
-       stdalign.in.h stdarg.in.h stdbool.in.h stddef.in.h stdint.in.h \
-       stdio.in.h stdlib.in.h stdopen.h strcasecmp.c strncasecmp.c \
-       streq.h strerror.c strerror-override.c strerror-override.h \
-       string.in.h strings.in.h strnlen.c strptime.c strtoimax.c \
-       strtol.c strtoll.c sys_random.in.h sys_stat.in.h sys_time.in.h \
-       sys_types.in.h sys_wait.in.h tempname.h time.in.h time_r.c \
-       time-internal.h time_rz.c mktime-internal.h timegm.c \
-       timespec.h trim.h tzset.c unistd.in.h unistr.in.h \
-       unitypes.in.h localcharset.h uniwidth.in.h uniwidth/cjk.h \
-       unlocked-io.h unsetenv.c \
+       iconv_open-zos.h iconv_open-aix.gperf iconv_open-hpux.gperf \
+       iconv_open-irix.gperf iconv_open-osf.gperf \
+       iconv_open-solaris.gperf iconv_open-zos.gperf ignore-value.h \
+       intprops-internal.h intprops.h anytostr.c inttostr.h \
+       inttypes.in.h langinfo.in.h cdefs.h libc-config.h limits.in.h \
+       localcharset.h locale.in.h $(top_srcdir)/maint.mk malloc.c \
+       malloc.c malloca.h mbchar.h lc-charset-dispatch.c \
+       lc-charset-dispatch.h mbrtowc-impl-utf8.h mbrtowc-impl.h \
+       mbtowc-lock.c mbtowc-lock.h windows-initguard.h \
+       mbsrtowcs-impl.h mbsrtowcs-state.c str-kmp.h mbtowc-impl.h \
+       memchr.valgrind mktime-internal.h mktime.c mktime-internal.h \
+       mktime.c msvc-inval.h msvc-nothrow.h windows-initguard.h \
+       strftime.h pathmax.h quote.h quote.h quotearg.h \
+       rawmemchr.valgrind realloc.c realloc.c regcomp.c regex.h \
+       regex_internal.c regex_internal.h regexec.c setlocale_null.h \
+       windows-initguard.h signal.in.h sigsegv.in.h stackvma.h \
+       _Noreturn.h arg-nonnull.h c++defs.h warn-on-use.h stat-w32.c \
+       stat-w32.h stat-macros.h stat-time.h stdarg.in.h \
+       intprops-internal.h stdckdint.in.h stddef.in.h stdint.in.h \
+       stdio.in.h stdlib.in.h stdopen.h streq.h strerror-override.h \
+       string.in.h strings.in.h strtol.c sys_random.in.h \
+       sys_stat.in.h sys_time.in.h sys_types.in.h sys_wait.in.h \
+       tempname.h time.in.h time-internal.h mktime-internal.h \
+       timespec.h trim.h unistd.in.h unistr.in.h unitypes.in.h \
+       localcharset.h uniwidth.in.h unictype/bitmap.h uniwidth/cjk.h \
+       uniwidth/width0.h uniwidth/width2.h unlocked-io.h \
        $(top_srcdir)/build-aux/update-copyright \
-       $(top_srcdir)/build-aux/useless-if-before-free asnprintf.c \
-       float+.h printf-args.c printf-args.h printf-parse.c \
-       printf-parse.h vasnprintf.c vasnprintf.h asprintf.c \
-       vasprintf.c $(top_srcdir)/build-aux/vc-list-files verify.h \
-       wchar.in.h wcrtomb.c wctype.in.h wcwidth.c windows-initguard.h \
-       windows-mutex.c windows-mutex.h windows-once.c windows-once.h \
-       windows-initguard.h windows-recmutex.c windows-recmutex.h \
-       windows-initguard.h windows-rwlock.c windows-rwlock.h \
-       wmemchr-impl.h wmemchr.c wmempcpy.c xalloc.h xalloc.h \
-       xalloc-oversized.h xmalloca.h xreadlink.h xstdopen.h xstrtol.h \
-       xalloc.h
+       $(top_srcdir)/build-aux/useless-if-before-free \
+       $(top_srcdir)/build-aux/vc-list-files verify.h wchar.in.h \
+       wctype.in.h windows-initguard.h windows-mutex.h windows-once.h \
+       windows-initguard.h windows-recmutex.h windows-initguard.h \
+       windows-rwlock.h wmemchr-impl.h xalloc.h xalloc.h \
+       xalloc-oversized.h xmalloca.h xreadlink.h xstdopen.h xstrtol.h
 MOSTLYCLEANDIRS = sys sys sys
-MOSTLYCLEANFILES = core *.stackdump alloca.h alloca.h-t ctype.h \
-       ctype.h-t malloc/dynarray.gl.h malloc/dynarray.gl.h-t \
+MOSTLYCLEANFILES = core *.stackdump alloca.h alloca.h-t assert.h \
+       assert.h-t ctype.h ctype.h-t errno.h errno.h-t error.h \
+       error.h-t fcntl.h fcntl.h-t fnmatch.h fnmatch.h-t getopt.h \
+       getopt.h-t getopt-cdefs.h getopt-cdefs.h-t \
+       malloc/dynarray.gl.h malloc/dynarray.gl.h-t \
        malloc/dynarray-skeleton.gl.h malloc/dynarray-skeleton.gl.h-t \
-       errno.h errno.h-t fcntl.h fcntl.h-t float.h float.h-t \
-       fnmatch.h fnmatch.h-t getopt.h getopt.h-t getopt-cdefs.h \
-       getopt-cdefs.h-t iconv.h iconv.h-t iconv_open-aix.h-t \
-       iconv_open-hpux.h-t iconv_open-irix.h-t iconv_open-osf.h-t \
-       iconv_open-solaris.h-t iconv_open-zos.h-t inttypes.h \
-       inttypes.h-t langinfo.h langinfo.h-t limits.h limits.h-t \
-       locale.h locale.h-t signal.h signal.h-t sigsegv.h sigsegv.h-t \
-       stdalign.h stdalign.h-t stdarg.h stdarg.h-t stdbool.h \
-       stdbool.h-t stddef.h stddef.h-t stdint.h stdint.h-t stdio.h \
-       stdio.h-t stdlib.h stdlib.h-t string.h string.h-t strings.h \
-       strings.h-t sys/random.h sys/random.h-t sys/stat.h \
-       sys/stat.h-t sys/time.h sys/time.h-t sys/types.h sys/types.h-t \
-       sys/wait.h sys/wait.h-t time.h time.h-t unistd.h unistd.h-t \
-       unistr.h unistr.h-t unitypes.h unitypes.h-t uniwidth.h \
-       uniwidth.h-t wchar.h wchar.h-t wctype.h wctype.h-t
+       iconv.h iconv.h-t iconv_open-aix.h-t iconv_open-hpux.h-t \
+       iconv_open-irix.h-t iconv_open-osf.h-t iconv_open-solaris.h-t \
+       iconv_open-zos.h-t inttypes.h inttypes.h-t langinfo.h \
+       langinfo.h-t limits.h limits.h-t locale.h locale.h-t signal.h \
+       signal.h-t sigsegv.h sigsegv.h-t stdarg.h stdarg.h-t \
+       stdckdint.h stdckdint.h-t stddef.h stddef.h-t stdint.h \
+       stdint.h-t stdio.h stdio.h-t stdlib.h stdlib.h-t string.h \
+       string.h-t strings.h strings.h-t sys/random.h sys/random.h-t \
+       sys/stat.h sys/stat.h-t sys/time.h sys/time.h-t sys/types.h \
+       sys/types.h-t sys/wait.h sys/wait.h-t time.h time.h-t unistd.h \
+       unistd.h-t unistr.h unistr.h-t unitypes.h unitypes.h-t \
+       uniwidth.h uniwidth.h-t wchar.h wchar.h-t wctype.h wctype.h-t
 MAINTAINERCLEANFILES = iconv_open-aix.h iconv_open-hpux.h \
        iconv_open-irix.h iconv_open-osf.h iconv_open-solaris.h \
        iconv_open-zos.h
 SUFFIXES = 
 # No GNU Make output.
 noinst_LIBRARIES = libdiffutils.a
-noinst_HEADERS = cmpbuf.h prepargs.h
+noinst_HEADERS = cmpbuf.h
 libdiffutils_a_SOURCES = allocator.c areadlink.c argmatch.c \
        basename-lgpl.c binary-io.h binary-io.c bitrotate.h \
-       bitrotate.c c-ctype.h c-ctype.c c-stack.h c-stack.c \
-       c-strcase.h c-strcasecmp.c c-strncasecmp.c careadlinkat.c \
-       cloexec.c diffseq.h dirname.c basename.c dirname-lgpl.c \
-       stripslash.c malloc/dynarray_at_failure.c \
-       malloc/dynarray_emplace_enlarge.c malloc/dynarray_finalize.c \
-       malloc/dynarray_resize.c malloc/dynarray_resize_clear.c \
-       exclude.c exitfail.c fd-hook.c file-type.c filenamecat.c \
-       filenamecat-lgpl.c getprogname.h getprogname.c gettext.h \
-       gettime.c hard-locale.c hash.c ialloc.c idx.h imaxtostr.c \
-       inttostr.c offtostr.c uinttostr.c umaxtostr.c localcharset.c \
-       glthread/lock.h glthread/lock.c malloca.c mbchar.c mbiter.h \
-       mbiter.c mbscasecmp.c mbslen.c mbsstr.c mbuiter.h mbuiter.c \
-       minmax.h nstrftime.c progname.h progname.c propername.h \
-       propername.c quotearg.c setlocale_null.c sh-quote.h sh-quote.c \
-       $(am__append_1) size_max.h stat-time.c stdopen.c striconv.h \
-       striconv.c strnlen1.h strnlen1.c system-quote.h system-quote.c \
-       tempname.c glthread/threadlib.c timespec.c trim.c unistd.c \
-       $(am__append_2) $(am__append_3) $(am__append_4) version-etc.h \
-       version-etc.c version-etc-fsf.c wctype-h.c xmalloc.c \
-       xalloc-die.c xfreopen.c xfreopen.h xmalloca.c xreadlink.c \
-       xsize.h xsize.c xstdopen.c xstriconv.h xstriconv.c \
-       xstrtoimax.c xstrtol.c xstrtoul.c xvasprintf.h xvasprintf.c \
-       xasprintf.c cmpbuf.c prepargs.c
+       bitrotate.c $(am__append_1) c-ctype.h c-ctype.c c-stack.h \
+       c-stack.c c-strcase.h c-strcasecmp.c c-strncasecmp.c \
+       careadlinkat.c cloexec.c $(am__append_2) diffseq.h dirname.c \
+       basename.c dirname-lgpl.c stripslash.c $(am__append_3) \
+       $(am__append_4) exclude.c exitfail.c $(am__append_5) fd-hook.c \
+       file-type.c filenamecat.c filenamecat-lgpl.c $(am__append_6) \
+       $(am__append_7) $(am__append_8) $(am__append_9) \
+       $(am__append_10) $(am__append_11) $(am__append_12) \
+       $(am__append_13) gettext.h gettime.c $(am__append_14) \
+       malloc/dynarray_at_failure.c malloc/dynarray_emplace_enlarge.c \
+       malloc/dynarray_finalize.c malloc/dynarray_resize.c \
+       malloc/dynarray_resize_clear.c hard-locale.c hash.c ialloc.c \
+       $(am__append_15) $(am__append_16) idx.h imaxtostr.c inttostr.c \
+       offtostr.c uinttostr.c umaxtostr.c $(am__append_17) \
+       $(am__append_18) $(am__append_19) $(am__append_20) \
+       localcharset.c $(am__append_21) glthread/lock.h \
+       glthread/lock.c $(am__append_22) malloca.c mbchar.c mbiter.h \
+       mbiter.c $(am__append_23) mbscasecmp.c $(am__append_24) \
+       mbslen.c $(am__append_25) mbsstr.c $(am__append_26) mbuiter.h \
+       mbuiter.c $(am__append_27) $(am__append_28) minmax.h \
+       $(am__append_29) $(am__append_30) $(am__append_31) \
+       $(am__append_32) $(am__append_33) $(am__append_34) nstrftime.c \
+       $(am__append_35) progname.h progname.c propername.h \
+       propername.c quotearg.c $(am__append_36) $(am__append_37) \
+       $(am__append_38) $(am__append_39) $(am__append_40) \
+       $(am__append_41) setlocale_null.c $(am__append_42) sh-quote.h \
+       sh-quote.c $(am__append_43) $(am__append_44) $(am__append_45) \
+       stat-time.c $(am__append_46) $(am__append_47) stdopen.c \
+       $(am__append_48) $(am__append_49) $(am__append_50) \
+       $(am__append_51) $(am__append_52) striconv.h striconv.c \
+       $(am__append_53) strnlen1.h strnlen1.c $(am__append_54) \
+       $(am__append_55) $(am__append_56) system-quote.h \
+       system-quote.c tempname.c glthread/threadlib.c \
+       $(am__append_57) $(am__append_58) $(am__append_59) timespec.c \
+       trim.c $(am__append_60) unistd.c $(am__append_61) \
+       $(am__append_62) $(am__append_63) $(am__append_64) \
+       version-etc.h version-etc.c version-etc-fsf.c $(am__append_65) \
+       wctype-h.c $(am__append_66) $(am__append_67) $(am__append_68) \
+       $(am__append_69) $(am__append_70) $(am__append_71) \
+       $(am__append_72) xmalloc.c xalloc-die.c xfreopen.c xfreopen.h \
+       xmalloca.c xreadlink.c xstdopen.c xstriconv.h xstriconv.c \
+       xstrtoimax.c xstrtol.c xstrtoul.c cmpbuf.c
+libdiffutils_a_CFLAGS = $(AM_CFLAGS) $(GL_CFLAG_GNULIB_WARNINGS)
 libdiffutils_a_LIBADD = $(gl_LIBOBJS)
 libdiffutils_a_DEPENDENCIES = $(gl_LIBOBJS)
-EXTRA_libdiffutils_a_SOURCES = btowc.c calloc.c calloc.c close.c \
-       stripslash.c dup2.c malloc/dynarray-skeleton.c error.c fcntl.c \
-       float.c itold.c fnmatch.c fnmatch_loop.c fnmatch.c fopen.c \
-       fopen.c free.c freopen.c fstat.c stat-w32.c getdtablesize.c \
-       getopt.c getopt1.c getpagesize.c getrandom.c gettimeofday.c \
-       iconv.c iconv_close.c iconv_open.c anytostr.c isblank.c \
-       iswblank.c iswdigit.c iswxdigit.c localeconv.c lstat.c \
-       malloc.c malloc.c lc-charset-dispatch.c mbrtowc.c \
-       mbtowc-lock.c mbsinit.c mbsrtowcs-state.c mbsrtowcs.c mbtowc.c \
-       memchr.c mempcpy.c mkdir.c mkstemp.c mktime.c mktime.c \
-       msvc-inval.c msvc-nothrow.c nl_langinfo-lock.c nl_langinfo.c \
-       open.c raise.c rawmemchr.c readlink.c realloc.c realloc.c \
-       reallocarray.c regcomp.c regex.c regex_internal.c regexec.c \
-       setenv.c setlocale-lock.c stat-w32.c stat.c strcasecmp.c \
-       strncasecmp.c strerror.c strerror-override.c strnlen.c \
-       strptime.c strtoimax.c strtol.c strtoll.c time_r.c time_rz.c \
-       timegm.c tzset.c unsetenv.c asnprintf.c printf-args.c \
-       printf-parse.c vasnprintf.c asprintf.c vasprintf.c wcrtomb.c \
-       wcwidth.c windows-mutex.c windows-once.c windows-recmutex.c \
-       windows-rwlock.c wmemchr.c wmempcpy.c
+EXTRA_libdiffutils_a_SOURCES = calloc.c calloc.c stripslash.c \
+       fnmatch.c fnmatch_loop.c fnmatch.c fopen.c fopen.c stat-w32.c \
+       malloc/dynarray-skeleton.c anytostr.c malloc.c malloc.c \
+       lc-charset-dispatch.c mbtowc-lock.c mbsrtowcs-state.c mktime.c \
+       mktime.c realloc.c realloc.c regcomp.c regex_internal.c \
+       regexec.c stat-w32.c strtol.c
 
 # Use this preprocessor expression to decide whether #include_next works.
 # Do not rely on a 'configure'-time test for this, since the expression
 # might appear in an installed header, which is used by some other compiler.
 HAVE_INCLUDE_NEXT = (__GNUC__ || __clang__ || 60000000 <= __DECC_VER)
+
+# In 'sed', replace the pattern space with a "DO NOT EDIT" comment.
+SED_HEADER_NOEDIT = s,.*,/* DO NOT EDIT! GENERATED AUTOMATICALLY! */,
+
+# '$(SED_HEADER_STDOUT) -e "..."' runs 'sed' but first outputs "DO NOT EDIT".
+SED_HEADER_STDOUT = sed -e 1h -e '1$(SED_HEADER_NOEDIT)' -e 1G
+
+# '$(SED_HEADER_TO_AT_t) FILE' copies FILE to $@-t, prepending a leading
+# "DO_NOT_EDIT".  Although this could be done more simply via:
+#      SED_HEADER_TO_AT_t = $(SED_HEADER_STDOUT) > $@-t
+# the -n and 'w' avoid a fork+exec, at least when GNU Make is used.
+SED_HEADER_TO_AT_t = $(SED_HEADER_STDOUT) -n -e 'w $@-t'
+
+# Use $(gl_V_at) instead of $(AM_V_GEN) or $(AM_V_at) on a line that
+gl_V_at = $(AM_V_GEN)
 GPERF = gperf
 V_GPERF = $(V_GPERF_@AM_V@)
 V_GPERF_ = $(V_GPERF_@AM_DEFAULT_V@)
@@ -2056,71 +2479,71 @@ config.h: stamp-h1
        @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
 
 stamp-h1: $(srcdir)/config.hin $(top_builddir)/config.status
-       @rm -f stamp-h1
-       cd $(top_builddir) && $(SHELL) ./config.status lib/config.h
+       $(AM_V_at)rm -f stamp-h1
+       $(AM_V_GEN)cd $(top_builddir) && $(SHELL) ./config.status lib/config.h
 $(srcdir)/config.hin:  $(am__configure_deps) 
-       ($(am__cd) $(top_srcdir) && $(AUTOHEADER))
-       rm -f stamp-h1
-       touch $@
+       $(AM_V_GEN)($(am__cd) $(top_srcdir) && $(AUTOHEADER))
+       $(AM_V_at)rm -f stamp-h1
+       $(AM_V_at)touch $@
 
 distclean-hdr:
        -rm -f config.h stamp-h1
 
 clean-noinstLIBRARIES:
-       -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+       -$(am__rm_f) $(noinst_LIBRARIES)
 malloc/$(am__dirstamp):
        @$(MKDIR_P) malloc
-       @: > malloc/$(am__dirstamp)
+       @: >>malloc/$(am__dirstamp)
 malloc/$(DEPDIR)/$(am__dirstamp):
        @$(MKDIR_P) malloc/$(DEPDIR)
-       @: > malloc/$(DEPDIR)/$(am__dirstamp)
-malloc/dynarray_at_failure.$(OBJEXT): malloc/$(am__dirstamp) \
-       malloc/$(DEPDIR)/$(am__dirstamp)
-malloc/dynarray_emplace_enlarge.$(OBJEXT): malloc/$(am__dirstamp) \
-       malloc/$(DEPDIR)/$(am__dirstamp)
-malloc/dynarray_finalize.$(OBJEXT): malloc/$(am__dirstamp) \
-       malloc/$(DEPDIR)/$(am__dirstamp)
-malloc/dynarray_resize.$(OBJEXT): malloc/$(am__dirstamp) \
-       malloc/$(DEPDIR)/$(am__dirstamp)
-malloc/dynarray_resize_clear.$(OBJEXT): malloc/$(am__dirstamp) \
-       malloc/$(DEPDIR)/$(am__dirstamp)
+       @: >>malloc/$(DEPDIR)/$(am__dirstamp)
+malloc/libdiffutils_a-dynarray_at_failure.$(OBJEXT):  \
+       malloc/$(am__dirstamp) malloc/$(DEPDIR)/$(am__dirstamp)
+malloc/libdiffutils_a-dynarray_emplace_enlarge.$(OBJEXT):  \
+       malloc/$(am__dirstamp) malloc/$(DEPDIR)/$(am__dirstamp)
+malloc/libdiffutils_a-dynarray_finalize.$(OBJEXT):  \
+       malloc/$(am__dirstamp) malloc/$(DEPDIR)/$(am__dirstamp)
+malloc/libdiffutils_a-dynarray_resize.$(OBJEXT):  \
+       malloc/$(am__dirstamp) malloc/$(DEPDIR)/$(am__dirstamp)
+malloc/libdiffutils_a-dynarray_resize_clear.$(OBJEXT):  \
+       malloc/$(am__dirstamp) malloc/$(DEPDIR)/$(am__dirstamp)
 glthread/$(am__dirstamp):
        @$(MKDIR_P) glthread
-       @: > glthread/$(am__dirstamp)
+       @: >>glthread/$(am__dirstamp)
 glthread/$(DEPDIR)/$(am__dirstamp):
        @$(MKDIR_P) glthread/$(DEPDIR)
-       @: > glthread/$(DEPDIR)/$(am__dirstamp)
-glthread/lock.$(OBJEXT): glthread/$(am__dirstamp) \
+       @: >>glthread/$(DEPDIR)/$(am__dirstamp)
+glthread/libdiffutils_a-lock.$(OBJEXT): glthread/$(am__dirstamp) \
        glthread/$(DEPDIR)/$(am__dirstamp)
-glthread/threadlib.$(OBJEXT): glthread/$(am__dirstamp) \
+glthread/libdiffutils_a-threadlib.$(OBJEXT): glthread/$(am__dirstamp) \
        glthread/$(DEPDIR)/$(am__dirstamp)
 unistr/$(am__dirstamp):
        @$(MKDIR_P) unistr
-       @: > unistr/$(am__dirstamp)
+       @: >>unistr/$(am__dirstamp)
 unistr/$(DEPDIR)/$(am__dirstamp):
        @$(MKDIR_P) unistr/$(DEPDIR)
-       @: > unistr/$(DEPDIR)/$(am__dirstamp)
-unistr/u8-mbtoucr.$(OBJEXT): unistr/$(am__dirstamp) \
+       @: >>unistr/$(DEPDIR)/$(am__dirstamp)
+unistr/libdiffutils_a-u8-mbtoucr.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-unistr/u8-uctomb.$(OBJEXT): unistr/$(am__dirstamp) \
+unistr/libdiffutils_a-u8-uctomb.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-unistr/u8-uctomb-aux.$(OBJEXT): unistr/$(am__dirstamp) \
+unistr/libdiffutils_a-u8-uctomb-aux.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
 uniwidth/$(am__dirstamp):
        @$(MKDIR_P) uniwidth
-       @: > uniwidth/$(am__dirstamp)
+       @: >>uniwidth/$(am__dirstamp)
 uniwidth/$(DEPDIR)/$(am__dirstamp):
        @$(MKDIR_P) uniwidth/$(DEPDIR)
-       @: > uniwidth/$(DEPDIR)/$(am__dirstamp)
-uniwidth/width.$(OBJEXT): uniwidth/$(am__dirstamp) \
+       @: >>uniwidth/$(DEPDIR)/$(am__dirstamp)
+uniwidth/libdiffutils_a-width.$(OBJEXT): uniwidth/$(am__dirstamp) \
        uniwidth/$(DEPDIR)/$(am__dirstamp)
-malloc/dynarray-skeleton.$(OBJEXT): malloc/$(am__dirstamp) \
-       malloc/$(DEPDIR)/$(am__dirstamp)
+malloc/libdiffutils_a-dynarray-skeleton.$(OBJEXT):  \
+       malloc/$(am__dirstamp) malloc/$(DEPDIR)/$(am__dirstamp)
 
 libdiffutils.a: $(libdiffutils_a_OBJECTS) $(libdiffutils_a_DEPENDENCIES) $(EXTRA_libdiffutils_a_DEPENDENCIES) 
        $(AM_V_at)-rm -f libdiffutils.a
        $(AM_V_AR)$(libdiffutils_a_AR) libdiffutils.a $(libdiffutils_a_OBJECTS) $(libdiffutils_a_LIBADD)
-       $(AM_V_at)$(RANLIB) libdiffutils.a
+       $(AM_V_at)$(libdiffutils_a_RANLIB) libdiffutils.a
 
 mostlyclean-compile:
        -rm -f *.$(OBJEXT)
@@ -2132,186 +2555,178 @@ mostlyclean-compile:
 distclean-compile:
        -rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/allocator.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/anytostr.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/areadlink.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argmatch.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asnprintf.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asprintf.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basename-lgpl.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basename.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/binary-io.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bitrotate.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/btowc.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-ctype.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-stack.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-strcasecmp.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-strncasecmp.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/calloc.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/careadlinkat.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cloexec.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/close.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmpbuf.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dirname-lgpl.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dirname.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup2.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/error.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exclude.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exitfail.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fd-hook.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file-type.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filenamecat-lgpl.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filenamecat.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/float.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fnmatch.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fnmatch_loop.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fopen.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/free.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/freopen.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fstat.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getdtablesize.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpagesize.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getprogname.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getrandom.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gettime.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gettimeofday.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hard-locale.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hash.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ialloc.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iconv.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iconv_close.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iconv_open.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imaxtostr.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inttostr.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/isblank.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iswblank.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iswdigit.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iswxdigit.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/itold.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lc-charset-dispatch.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/localcharset.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/localeconv.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lstat.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/malloc.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/malloca.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbchar.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbiter.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbrtowc.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbscasecmp.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbsinit.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbslen.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbsrtowcs-state.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbsrtowcs.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbsstr.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbtowc-lock.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbtowc.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbuiter.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memchr.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mempcpy.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mkdir.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mkstemp.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mktime.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msvc-inval.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msvc-nothrow.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nl_langinfo-lock.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nl_langinfo.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nstrftime.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/offtostr.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prepargs.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printf-args.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printf-parse.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/progname.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/propername.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/quotearg.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/raise.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rawmemchr.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readlink.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/realloc.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reallocarray.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regcomp.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regex.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regex_internal.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regexec.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setenv.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setlocale-lock.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setlocale_null.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sh-quote.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigsegv.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stackvma.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stat-time.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stat-w32.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stat.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stdopen.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strcasecmp.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror-override.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/striconv.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stripslash.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strncasecmp.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strnlen.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strnlen1.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strptime.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strtoimax.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strtol.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strtoll.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/system-quote.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tempname.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/time_r.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/time_rz.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timegm.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timespec.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trim.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tzset.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/uinttostr.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umaxtostr.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unistd.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unsetenv.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vasnprintf.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vasprintf.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version-etc-fsf.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version-etc.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wcrtomb.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wctype-h.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wcwidth.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/windows-mutex.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/windows-once.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/windows-recmutex.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/windows-rwlock.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wmemchr.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wmempcpy.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xalloc-die.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xasprintf.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xfreopen.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmalloc.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmalloca.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xreadlink.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xsize.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstdopen.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstriconv.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrtoimax.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrtol.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrtoul.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xvasprintf.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@glthread/$(DEPDIR)/lock.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@glthread/$(DEPDIR)/threadlib.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@malloc/$(DEPDIR)/dynarray-skeleton.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@malloc/$(DEPDIR)/dynarray_at_failure.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@malloc/$(DEPDIR)/dynarray_emplace_enlarge.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@malloc/$(DEPDIR)/dynarray_finalize.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@malloc/$(DEPDIR)/dynarray_resize.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@malloc/$(DEPDIR)/dynarray_resize_clear.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/u8-mbtoucr.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/u8-uctomb-aux.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/u8-uctomb.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@uniwidth/$(DEPDIR)/width.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-allocator.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-anytostr.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-areadlink.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-argmatch.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-basename-lgpl.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-basename.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-binary-io.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-bitrotate.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-btowc.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-c-ctype.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-c-stack.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-c-strcasecmp.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-c-strncasecmp.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-calloc.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-careadlinkat.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-cloexec.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-close.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-cmpbuf.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-dirname-lgpl.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-dirname.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-dup2.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-error.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-exclude.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-exitfail.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-fcntl.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-fd-hook.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-file-type.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-filenamecat-lgpl.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-filenamecat.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-fnmatch.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-fnmatch_loop.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-fopen.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-free.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-freopen.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-fstat.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-getdtablesize.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-getopt.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-getopt1.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-getpagesize.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-getprogname.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-getrandom.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-gettime.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-gettimeofday.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-hard-locale.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-hash.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-ialloc.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-iconv.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-iconv_close.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-iconv_open.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-imaxtostr.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-inttostr.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-isblank.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-iswblank.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-iswdigit.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-iswxdigit.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-lc-charset-dispatch.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-localcharset.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-localeconv.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-lstat.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-malloc.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-malloca.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-mbchar.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-mbiter.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-mbrtowc.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-mbscasecmp.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-mbsinit.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-mbslen.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-mbsrtowcs-state.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-mbsrtowcs.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-mbsstr.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-mbtowc-lock.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-mbtowc.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-mbuiter.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-memchr.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-mempcpy.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-mkdir.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-mkstemp.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-mktime.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-msvc-inval.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-msvc-nothrow.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-nl_langinfo-lock.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-nl_langinfo.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-nstrftime.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-offtostr.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-open.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-progname.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-propername.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-quotearg.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-raise.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-rawmemchr.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-readlink.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-realloc.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-reallocarray.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-regcomp.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-regex.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-regex_internal.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-regexec.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-setenv.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-setlocale-lock.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-setlocale_null.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-sh-quote.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-sigprocmask.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-sigsegv.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-stackvma.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-stat-time.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-stat-w32.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-stat.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-stdio-read.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-stdio-write.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-stdopen.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-stpcpy.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-strcasecmp.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-strerror-override.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-strerror.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-striconv.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-stripslash.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-strncasecmp.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-strnlen.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-strnlen1.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-strptime.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-strtoimax.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-strtol.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-strtoll.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-system-quote.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-tempname.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-time_r.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-time_rz.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-timegm.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-timespec.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-trim.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-tzset.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-uinttostr.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-umaxtostr.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-unistd.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-unsetenv.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-version-etc-fsf.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-version-etc.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-wcrtomb.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-wctype-h.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-wcwidth.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-windows-mutex.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-windows-once.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-windows-recmutex.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-windows-rwlock.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-wmemchr.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-wmempcpy.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-xalloc-die.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-xfreopen.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-xmalloc.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-xmalloca.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-xreadlink.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-xstdopen.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-xstriconv.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-xstrtoimax.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-xstrtol.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdiffutils_a-xstrtoul.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@glthread/$(DEPDIR)/libdiffutils_a-lock.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@glthread/$(DEPDIR)/libdiffutils_a-threadlib.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@malloc/$(DEPDIR)/libdiffutils_a-dynarray-skeleton.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@malloc/$(DEPDIR)/libdiffutils_a-dynarray_at_failure.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@malloc/$(DEPDIR)/libdiffutils_a-dynarray_emplace_enlarge.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@malloc/$(DEPDIR)/libdiffutils_a-dynarray_finalize.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@malloc/$(DEPDIR)/libdiffutils_a-dynarray_resize.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@malloc/$(DEPDIR)/libdiffutils_a-dynarray_resize_clear.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/libdiffutils_a-u8-mbtoucr.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/libdiffutils_a-u8-uctomb-aux.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/libdiffutils_a-u8-uctomb.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@uniwidth/$(DEPDIR)/libdiffutils_a-width.Po@am__quote@ # am--include-marker
 
 $(am__depfiles_remade):
        @$(MKDIR_P) $(@D)
-       @echo '# dummy' >$@-t && $(am__mv) $@-t $@
+       @: >>$@
 
 am--depfiles: $(am__depfiles_remade)
 
@@ -2331,659 +2746,3006 @@ am--depfiles: $(am__depfiles_remade)
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
-ID: $(am__tagged_files)
-       $(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
+libdiffutils_a-allocator.o: allocator.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-allocator.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-allocator.Tpo -c -o libdiffutils_a-allocator.o `test -f 'allocator.c' || echo '$(srcdir)/'`allocator.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-allocator.Tpo $(DEPDIR)/libdiffutils_a-allocator.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='allocator.c' object='libdiffutils_a-allocator.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-allocator.o `test -f 'allocator.c' || echo '$(srcdir)/'`allocator.c
 
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-       set x; \
-       here=`pwd`; \
-       $(am__define_uniq_tagged_files); \
-       shift; \
-       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-         test -n "$$unique" || unique=$$empty_fix; \
-         if test $$# -gt 0; then \
-           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-             "$$@" $$unique; \
-         else \
-           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-             $$unique; \
-         fi; \
-       fi
-ctags: ctags-am
+libdiffutils_a-allocator.obj: allocator.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-allocator.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-allocator.Tpo -c -o libdiffutils_a-allocator.obj `if test -f 'allocator.c'; then $(CYGPATH_W) 'allocator.c'; else $(CYGPATH_W) '$(srcdir)/allocator.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-allocator.Tpo $(DEPDIR)/libdiffutils_a-allocator.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='allocator.c' object='libdiffutils_a-allocator.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-allocator.obj `if test -f 'allocator.c'; then $(CYGPATH_W) 'allocator.c'; else $(CYGPATH_W) '$(srcdir)/allocator.c'; fi`
 
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-       $(am__define_uniq_tagged_files); \
-       test -z "$(CTAGS_ARGS)$$unique" \
-         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-            $$unique
+libdiffutils_a-areadlink.o: areadlink.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-areadlink.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-areadlink.Tpo -c -o libdiffutils_a-areadlink.o `test -f 'areadlink.c' || echo '$(srcdir)/'`areadlink.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-areadlink.Tpo $(DEPDIR)/libdiffutils_a-areadlink.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='areadlink.c' object='libdiffutils_a-areadlink.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-areadlink.o `test -f 'areadlink.c' || echo '$(srcdir)/'`areadlink.c
 
-GTAGS:
-       here=`$(am__cd) $(top_builddir) && pwd` \
-         && $(am__cd) $(top_srcdir) \
-         && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
+libdiffutils_a-areadlink.obj: areadlink.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-areadlink.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-areadlink.Tpo -c -o libdiffutils_a-areadlink.obj `if test -f 'areadlink.c'; then $(CYGPATH_W) 'areadlink.c'; else $(CYGPATH_W) '$(srcdir)/areadlink.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-areadlink.Tpo $(DEPDIR)/libdiffutils_a-areadlink.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='areadlink.c' object='libdiffutils_a-areadlink.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-areadlink.obj `if test -f 'areadlink.c'; then $(CYGPATH_W) 'areadlink.c'; else $(CYGPATH_W) '$(srcdir)/areadlink.c'; fi`
 
-cscopelist-am: $(am__tagged_files)
-       list='$(am__tagged_files)'; \
-       case "$(srcdir)" in \
-         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
-         *) sdir=$(subdir)/$(srcdir) ;; \
-       esac; \
-       for i in $$list; do \
-         if test -f "$$i"; then \
-           echo "$(subdir)/$$i"; \
-         else \
-           echo "$$sdir/$$i"; \
-         fi; \
-       done >> $(top_builddir)/cscope.files
+libdiffutils_a-argmatch.o: argmatch.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-argmatch.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-argmatch.Tpo -c -o libdiffutils_a-argmatch.o `test -f 'argmatch.c' || echo '$(srcdir)/'`argmatch.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-argmatch.Tpo $(DEPDIR)/libdiffutils_a-argmatch.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='argmatch.c' object='libdiffutils_a-argmatch.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-argmatch.o `test -f 'argmatch.c' || echo '$(srcdir)/'`argmatch.c
 
-distclean-tags:
-       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-distdir: $(BUILT_SOURCES)
-       $(MAKE) $(AM_MAKEFLAGS) distdir-am
+libdiffutils_a-argmatch.obj: argmatch.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-argmatch.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-argmatch.Tpo -c -o libdiffutils_a-argmatch.obj `if test -f 'argmatch.c'; then $(CYGPATH_W) 'argmatch.c'; else $(CYGPATH_W) '$(srcdir)/argmatch.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-argmatch.Tpo $(DEPDIR)/libdiffutils_a-argmatch.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='argmatch.c' object='libdiffutils_a-argmatch.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-argmatch.obj `if test -f 'argmatch.c'; then $(CYGPATH_W) 'argmatch.c'; else $(CYGPATH_W) '$(srcdir)/argmatch.c'; fi`
 
-distdir-am: $(DISTFILES)
-       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-       list='$(DISTFILES)'; \
-         dist_files=`for file in $$list; do echo $$file; done | \
-         sed -e "s|^$$srcdirstrip/||;t" \
-             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-       case $$dist_files in \
-         */*) $(MKDIR_P) `echo "$$dist_files" | \
-                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-                          sort -u` ;; \
-       esac; \
-       for file in $$dist_files; do \
-         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-         if test -d $$d/$$file; then \
-           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-           if test -d "$(distdir)/$$file"; then \
-             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-           fi; \
-           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-           fi; \
-           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-         else \
-           test -f "$(distdir)/$$file" \
-           || cp -p $$d/$$file "$(distdir)/$$file" \
-           || exit 1; \
-         fi; \
-       done
-check-am: all-am
-check: $(BUILT_SOURCES)
-       $(MAKE) $(AM_MAKEFLAGS) check-am
-all-am: Makefile $(LIBRARIES) $(HEADERS) config.h
-installdirs:
-install: $(BUILT_SOURCES)
-       $(MAKE) $(AM_MAKEFLAGS) install-am
-install-exec: $(BUILT_SOURCES)
-       $(MAKE) $(AM_MAKEFLAGS) install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
+libdiffutils_a-basename-lgpl.o: basename-lgpl.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-basename-lgpl.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-basename-lgpl.Tpo -c -o libdiffutils_a-basename-lgpl.o `test -f 'basename-lgpl.c' || echo '$(srcdir)/'`basename-lgpl.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-basename-lgpl.Tpo $(DEPDIR)/libdiffutils_a-basename-lgpl.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='basename-lgpl.c' object='libdiffutils_a-basename-lgpl.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-basename-lgpl.o `test -f 'basename-lgpl.c' || echo '$(srcdir)/'`basename-lgpl.c
 
-install-am: all-am
-       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+libdiffutils_a-basename-lgpl.obj: basename-lgpl.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-basename-lgpl.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-basename-lgpl.Tpo -c -o libdiffutils_a-basename-lgpl.obj `if test -f 'basename-lgpl.c'; then $(CYGPATH_W) 'basename-lgpl.c'; else $(CYGPATH_W) '$(srcdir)/basename-lgpl.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-basename-lgpl.Tpo $(DEPDIR)/libdiffutils_a-basename-lgpl.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='basename-lgpl.c' object='libdiffutils_a-basename-lgpl.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-basename-lgpl.obj `if test -f 'basename-lgpl.c'; then $(CYGPATH_W) 'basename-lgpl.c'; else $(CYGPATH_W) '$(srcdir)/basename-lgpl.c'; fi`
 
-installcheck: installcheck-am
-install-strip:
-       if test -z '$(STRIP)'; then \
-         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-             install; \
-       else \
-         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-       fi
-mostlyclean-generic:
-       -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+libdiffutils_a-binary-io.o: binary-io.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-binary-io.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-binary-io.Tpo -c -o libdiffutils_a-binary-io.o `test -f 'binary-io.c' || echo '$(srcdir)/'`binary-io.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-binary-io.Tpo $(DEPDIR)/libdiffutils_a-binary-io.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='binary-io.c' object='libdiffutils_a-binary-io.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-binary-io.o `test -f 'binary-io.c' || echo '$(srcdir)/'`binary-io.c
 
-clean-generic:
-       -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+libdiffutils_a-binary-io.obj: binary-io.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-binary-io.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-binary-io.Tpo -c -o libdiffutils_a-binary-io.obj `if test -f 'binary-io.c'; then $(CYGPATH_W) 'binary-io.c'; else $(CYGPATH_W) '$(srcdir)/binary-io.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-binary-io.Tpo $(DEPDIR)/libdiffutils_a-binary-io.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='binary-io.c' object='libdiffutils_a-binary-io.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-binary-io.obj `if test -f 'binary-io.c'; then $(CYGPATH_W) 'binary-io.c'; else $(CYGPATH_W) '$(srcdir)/binary-io.c'; fi`
 
-distclean-generic:
-       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-       -rm -f glthread/$(DEPDIR)/$(am__dirstamp)
-       -rm -f glthread/$(am__dirstamp)
-       -rm -f malloc/$(DEPDIR)/$(am__dirstamp)
-       -rm -f malloc/$(am__dirstamp)
-       -rm -f unistr/$(DEPDIR)/$(am__dirstamp)
-       -rm -f unistr/$(am__dirstamp)
-       -rm -f uniwidth/$(DEPDIR)/$(am__dirstamp)
-       -rm -f uniwidth/$(am__dirstamp)
+libdiffutils_a-bitrotate.o: bitrotate.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-bitrotate.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-bitrotate.Tpo -c -o libdiffutils_a-bitrotate.o `test -f 'bitrotate.c' || echo '$(srcdir)/'`bitrotate.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-bitrotate.Tpo $(DEPDIR)/libdiffutils_a-bitrotate.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='bitrotate.c' object='libdiffutils_a-bitrotate.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-bitrotate.o `test -f 'bitrotate.c' || echo '$(srcdir)/'`bitrotate.c
 
-maintainer-clean-generic:
-       @echo "This command is intended for maintainers to use"
-       @echo "it deletes files that may require special tools to rebuild."
-       -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
-       -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
-clean: clean-am
+libdiffutils_a-bitrotate.obj: bitrotate.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-bitrotate.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-bitrotate.Tpo -c -o libdiffutils_a-bitrotate.obj `if test -f 'bitrotate.c'; then $(CYGPATH_W) 'bitrotate.c'; else $(CYGPATH_W) '$(srcdir)/bitrotate.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-bitrotate.Tpo $(DEPDIR)/libdiffutils_a-bitrotate.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='bitrotate.c' object='libdiffutils_a-bitrotate.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-bitrotate.obj `if test -f 'bitrotate.c'; then $(CYGPATH_W) 'bitrotate.c'; else $(CYGPATH_W) '$(srcdir)/bitrotate.c'; fi`
 
-clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
+libdiffutils_a-btowc.o: btowc.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-btowc.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-btowc.Tpo -c -o libdiffutils_a-btowc.o `test -f 'btowc.c' || echo '$(srcdir)/'`btowc.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-btowc.Tpo $(DEPDIR)/libdiffutils_a-btowc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='btowc.c' object='libdiffutils_a-btowc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-btowc.o `test -f 'btowc.c' || echo '$(srcdir)/'`btowc.c
 
-distclean: distclean-am
-               -rm -f ./$(DEPDIR)/allocator.Po
-       -rm -f ./$(DEPDIR)/anytostr.Po
-       -rm -f ./$(DEPDIR)/areadlink.Po
-       -rm -f ./$(DEPDIR)/argmatch.Po
-       -rm -f ./$(DEPDIR)/asnprintf.Po
-       -rm -f ./$(DEPDIR)/asprintf.Po
-       -rm -f ./$(DEPDIR)/basename-lgpl.Po
-       -rm -f ./$(DEPDIR)/basename.Po
-       -rm -f ./$(DEPDIR)/binary-io.Po
-       -rm -f ./$(DEPDIR)/bitrotate.Po
-       -rm -f ./$(DEPDIR)/btowc.Po
-       -rm -f ./$(DEPDIR)/c-ctype.Po
-       -rm -f ./$(DEPDIR)/c-stack.Po
-       -rm -f ./$(DEPDIR)/c-strcasecmp.Po
-       -rm -f ./$(DEPDIR)/c-strncasecmp.Po
-       -rm -f ./$(DEPDIR)/calloc.Po
-       -rm -f ./$(DEPDIR)/careadlinkat.Po
-       -rm -f ./$(DEPDIR)/cloexec.Po
-       -rm -f ./$(DEPDIR)/close.Po
-       -rm -f ./$(DEPDIR)/cmpbuf.Po
-       -rm -f ./$(DEPDIR)/dirname-lgpl.Po
-       -rm -f ./$(DEPDIR)/dirname.Po
-       -rm -f ./$(DEPDIR)/dup2.Po
-       -rm -f ./$(DEPDIR)/error.Po
-       -rm -f ./$(DEPDIR)/exclude.Po
-       -rm -f ./$(DEPDIR)/exitfail.Po
-       -rm -f ./$(DEPDIR)/fcntl.Po
-       -rm -f ./$(DEPDIR)/fd-hook.Po
-       -rm -f ./$(DEPDIR)/file-type.Po
-       -rm -f ./$(DEPDIR)/filenamecat-lgpl.Po
-       -rm -f ./$(DEPDIR)/filenamecat.Po
-       -rm -f ./$(DEPDIR)/float.Po
-       -rm -f ./$(DEPDIR)/fnmatch.Po
-       -rm -f ./$(DEPDIR)/fnmatch_loop.Po
-       -rm -f ./$(DEPDIR)/fopen.Po
-       -rm -f ./$(DEPDIR)/free.Po
-       -rm -f ./$(DEPDIR)/freopen.Po
-       -rm -f ./$(DEPDIR)/fstat.Po
-       -rm -f ./$(DEPDIR)/getdtablesize.Po
-       -rm -f ./$(DEPDIR)/getopt.Po
-       -rm -f ./$(DEPDIR)/getopt1.Po
-       -rm -f ./$(DEPDIR)/getpagesize.Po
-       -rm -f ./$(DEPDIR)/getprogname.Po
-       -rm -f ./$(DEPDIR)/getrandom.Po
-       -rm -f ./$(DEPDIR)/gettime.Po
-       -rm -f ./$(DEPDIR)/gettimeofday.Po
-       -rm -f ./$(DEPDIR)/hard-locale.Po
-       -rm -f ./$(DEPDIR)/hash.Po
-       -rm -f ./$(DEPDIR)/ialloc.Po
-       -rm -f ./$(DEPDIR)/iconv.Po
-       -rm -f ./$(DEPDIR)/iconv_close.Po
-       -rm -f ./$(DEPDIR)/iconv_open.Po
-       -rm -f ./$(DEPDIR)/imaxtostr.Po
-       -rm -f ./$(DEPDIR)/inttostr.Po
-       -rm -f ./$(DEPDIR)/isblank.Po
-       -rm -f ./$(DEPDIR)/iswblank.Po
-       -rm -f ./$(DEPDIR)/iswdigit.Po
-       -rm -f ./$(DEPDIR)/iswxdigit.Po
-       -rm -f ./$(DEPDIR)/itold.Po
-       -rm -f ./$(DEPDIR)/lc-charset-dispatch.Po
-       -rm -f ./$(DEPDIR)/localcharset.Po
-       -rm -f ./$(DEPDIR)/localeconv.Po
-       -rm -f ./$(DEPDIR)/lstat.Po
-       -rm -f ./$(DEPDIR)/malloc.Po
-       -rm -f ./$(DEPDIR)/malloca.Po
-       -rm -f ./$(DEPDIR)/mbchar.Po
-       -rm -f ./$(DEPDIR)/mbiter.Po
-       -rm -f ./$(DEPDIR)/mbrtowc.Po
-       -rm -f ./$(DEPDIR)/mbscasecmp.Po
-       -rm -f ./$(DEPDIR)/mbsinit.Po
-       -rm -f ./$(DEPDIR)/mbslen.Po
-       -rm -f ./$(DEPDIR)/mbsrtowcs-state.Po
-       -rm -f ./$(DEPDIR)/mbsrtowcs.Po
-       -rm -f ./$(DEPDIR)/mbsstr.Po
-       -rm -f ./$(DEPDIR)/mbtowc-lock.Po
-       -rm -f ./$(DEPDIR)/mbtowc.Po
-       -rm -f ./$(DEPDIR)/mbuiter.Po
-       -rm -f ./$(DEPDIR)/memchr.Po
-       -rm -f ./$(DEPDIR)/mempcpy.Po
-       -rm -f ./$(DEPDIR)/mkdir.Po
-       -rm -f ./$(DEPDIR)/mkstemp.Po
-       -rm -f ./$(DEPDIR)/mktime.Po
-       -rm -f ./$(DEPDIR)/msvc-inval.Po
-       -rm -f ./$(DEPDIR)/msvc-nothrow.Po
-       -rm -f ./$(DEPDIR)/nl_langinfo-lock.Po
-       -rm -f ./$(DEPDIR)/nl_langinfo.Po
-       -rm -f ./$(DEPDIR)/nstrftime.Po
-       -rm -f ./$(DEPDIR)/offtostr.Po
-       -rm -f ./$(DEPDIR)/open.Po
-       -rm -f ./$(DEPDIR)/prepargs.Po
-       -rm -f ./$(DEPDIR)/printf-args.Po
-       -rm -f ./$(DEPDIR)/printf-parse.Po
-       -rm -f ./$(DEPDIR)/progname.Po
-       -rm -f ./$(DEPDIR)/propername.Po
-       -rm -f ./$(DEPDIR)/quotearg.Po
-       -rm -f ./$(DEPDIR)/raise.Po
-       -rm -f ./$(DEPDIR)/rawmemchr.Po
-       -rm -f ./$(DEPDIR)/readlink.Po
-       -rm -f ./$(DEPDIR)/realloc.Po
-       -rm -f ./$(DEPDIR)/reallocarray.Po
-       -rm -f ./$(DEPDIR)/regcomp.Po
-       -rm -f ./$(DEPDIR)/regex.Po
-       -rm -f ./$(DEPDIR)/regex_internal.Po
-       -rm -f ./$(DEPDIR)/regexec.Po
-       -rm -f ./$(DEPDIR)/setenv.Po
-       -rm -f ./$(DEPDIR)/setlocale-lock.Po
-       -rm -f ./$(DEPDIR)/setlocale_null.Po
-       -rm -f ./$(DEPDIR)/sh-quote.Po
-       -rm -f ./$(DEPDIR)/sigsegv.Po
-       -rm -f ./$(DEPDIR)/stackvma.Po
-       -rm -f ./$(DEPDIR)/stat-time.Po
-       -rm -f ./$(DEPDIR)/stat-w32.Po
-       -rm -f ./$(DEPDIR)/stat.Po
-       -rm -f ./$(DEPDIR)/stdopen.Po
-       -rm -f ./$(DEPDIR)/strcasecmp.Po
-       -rm -f ./$(DEPDIR)/strerror-override.Po
-       -rm -f ./$(DEPDIR)/strerror.Po
-       -rm -f ./$(DEPDIR)/striconv.Po
-       -rm -f ./$(DEPDIR)/stripslash.Po
-       -rm -f ./$(DEPDIR)/strncasecmp.Po
-       -rm -f ./$(DEPDIR)/strnlen.Po
-       -rm -f ./$(DEPDIR)/strnlen1.Po
-       -rm -f ./$(DEPDIR)/strptime.Po
-       -rm -f ./$(DEPDIR)/strtoimax.Po
-       -rm -f ./$(DEPDIR)/strtol.Po
-       -rm -f ./$(DEPDIR)/strtoll.Po
-       -rm -f ./$(DEPDIR)/system-quote.Po
-       -rm -f ./$(DEPDIR)/tempname.Po
-       -rm -f ./$(DEPDIR)/time_r.Po
-       -rm -f ./$(DEPDIR)/time_rz.Po
-       -rm -f ./$(DEPDIR)/timegm.Po
-       -rm -f ./$(DEPDIR)/timespec.Po
-       -rm -f ./$(DEPDIR)/trim.Po
-       -rm -f ./$(DEPDIR)/tzset.Po
-       -rm -f ./$(DEPDIR)/uinttostr.Po
-       -rm -f ./$(DEPDIR)/umaxtostr.Po
-       -rm -f ./$(DEPDIR)/unistd.Po
-       -rm -f ./$(DEPDIR)/unsetenv.Po
-       -rm -f ./$(DEPDIR)/vasnprintf.Po
-       -rm -f ./$(DEPDIR)/vasprintf.Po
-       -rm -f ./$(DEPDIR)/version-etc-fsf.Po
-       -rm -f ./$(DEPDIR)/version-etc.Po
-       -rm -f ./$(DEPDIR)/wcrtomb.Po
-       -rm -f ./$(DEPDIR)/wctype-h.Po
-       -rm -f ./$(DEPDIR)/wcwidth.Po
-       -rm -f ./$(DEPDIR)/windows-mutex.Po
-       -rm -f ./$(DEPDIR)/windows-once.Po
-       -rm -f ./$(DEPDIR)/windows-recmutex.Po
-       -rm -f ./$(DEPDIR)/windows-rwlock.Po
-       -rm -f ./$(DEPDIR)/wmemchr.Po
-       -rm -f ./$(DEPDIR)/wmempcpy.Po
-       -rm -f ./$(DEPDIR)/xalloc-die.Po
-       -rm -f ./$(DEPDIR)/xasprintf.Po
-       -rm -f ./$(DEPDIR)/xfreopen.Po
-       -rm -f ./$(DEPDIR)/xmalloc.Po
-       -rm -f ./$(DEPDIR)/xmalloca.Po
-       -rm -f ./$(DEPDIR)/xreadlink.Po
-       -rm -f ./$(DEPDIR)/xsize.Po
-       -rm -f ./$(DEPDIR)/xstdopen.Po
-       -rm -f ./$(DEPDIR)/xstriconv.Po
-       -rm -f ./$(DEPDIR)/xstrtoimax.Po
-       -rm -f ./$(DEPDIR)/xstrtol.Po
-       -rm -f ./$(DEPDIR)/xstrtoul.Po
-       -rm -f ./$(DEPDIR)/xvasprintf.Po
-       -rm -f glthread/$(DEPDIR)/lock.Po
-       -rm -f glthread/$(DEPDIR)/threadlib.Po
-       -rm -f malloc/$(DEPDIR)/dynarray-skeleton.Po
-       -rm -f malloc/$(DEPDIR)/dynarray_at_failure.Po
-       -rm -f malloc/$(DEPDIR)/dynarray_emplace_enlarge.Po
-       -rm -f malloc/$(DEPDIR)/dynarray_finalize.Po
-       -rm -f malloc/$(DEPDIR)/dynarray_resize.Po
-       -rm -f malloc/$(DEPDIR)/dynarray_resize_clear.Po
-       -rm -f unistr/$(DEPDIR)/u8-mbtoucr.Po
-       -rm -f unistr/$(DEPDIR)/u8-uctomb-aux.Po
-       -rm -f unistr/$(DEPDIR)/u8-uctomb.Po
-       -rm -f uniwidth/$(DEPDIR)/width.Po
-       -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-       distclean-hdr distclean-local distclean-tags
+libdiffutils_a-btowc.obj: btowc.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-btowc.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-btowc.Tpo -c -o libdiffutils_a-btowc.obj `if test -f 'btowc.c'; then $(CYGPATH_W) 'btowc.c'; else $(CYGPATH_W) '$(srcdir)/btowc.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-btowc.Tpo $(DEPDIR)/libdiffutils_a-btowc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='btowc.c' object='libdiffutils_a-btowc.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-btowc.obj `if test -f 'btowc.c'; then $(CYGPATH_W) 'btowc.c'; else $(CYGPATH_W) '$(srcdir)/btowc.c'; fi`
 
-dvi: dvi-am
+libdiffutils_a-c-ctype.o: c-ctype.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-c-ctype.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-c-ctype.Tpo -c -o libdiffutils_a-c-ctype.o `test -f 'c-ctype.c' || echo '$(srcdir)/'`c-ctype.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-c-ctype.Tpo $(DEPDIR)/libdiffutils_a-c-ctype.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='c-ctype.c' object='libdiffutils_a-c-ctype.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-c-ctype.o `test -f 'c-ctype.c' || echo '$(srcdir)/'`c-ctype.c
 
-dvi-am:
+libdiffutils_a-c-ctype.obj: c-ctype.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-c-ctype.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-c-ctype.Tpo -c -o libdiffutils_a-c-ctype.obj `if test -f 'c-ctype.c'; then $(CYGPATH_W) 'c-ctype.c'; else $(CYGPATH_W) '$(srcdir)/c-ctype.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-c-ctype.Tpo $(DEPDIR)/libdiffutils_a-c-ctype.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='c-ctype.c' object='libdiffutils_a-c-ctype.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-c-ctype.obj `if test -f 'c-ctype.c'; then $(CYGPATH_W) 'c-ctype.c'; else $(CYGPATH_W) '$(srcdir)/c-ctype.c'; fi`
 
-html: html-am
+libdiffutils_a-c-stack.o: c-stack.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-c-stack.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-c-stack.Tpo -c -o libdiffutils_a-c-stack.o `test -f 'c-stack.c' || echo '$(srcdir)/'`c-stack.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-c-stack.Tpo $(DEPDIR)/libdiffutils_a-c-stack.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='c-stack.c' object='libdiffutils_a-c-stack.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-c-stack.o `test -f 'c-stack.c' || echo '$(srcdir)/'`c-stack.c
 
-html-am:
+libdiffutils_a-c-stack.obj: c-stack.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-c-stack.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-c-stack.Tpo -c -o libdiffutils_a-c-stack.obj `if test -f 'c-stack.c'; then $(CYGPATH_W) 'c-stack.c'; else $(CYGPATH_W) '$(srcdir)/c-stack.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-c-stack.Tpo $(DEPDIR)/libdiffutils_a-c-stack.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='c-stack.c' object='libdiffutils_a-c-stack.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-c-stack.obj `if test -f 'c-stack.c'; then $(CYGPATH_W) 'c-stack.c'; else $(CYGPATH_W) '$(srcdir)/c-stack.c'; fi`
 
-info: info-am
+libdiffutils_a-c-strcasecmp.o: c-strcasecmp.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-c-strcasecmp.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-c-strcasecmp.Tpo -c -o libdiffutils_a-c-strcasecmp.o `test -f 'c-strcasecmp.c' || echo '$(srcdir)/'`c-strcasecmp.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-c-strcasecmp.Tpo $(DEPDIR)/libdiffutils_a-c-strcasecmp.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='c-strcasecmp.c' object='libdiffutils_a-c-strcasecmp.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-c-strcasecmp.o `test -f 'c-strcasecmp.c' || echo '$(srcdir)/'`c-strcasecmp.c
 
-info-am:
+libdiffutils_a-c-strcasecmp.obj: c-strcasecmp.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-c-strcasecmp.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-c-strcasecmp.Tpo -c -o libdiffutils_a-c-strcasecmp.obj `if test -f 'c-strcasecmp.c'; then $(CYGPATH_W) 'c-strcasecmp.c'; else $(CYGPATH_W) '$(srcdir)/c-strcasecmp.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-c-strcasecmp.Tpo $(DEPDIR)/libdiffutils_a-c-strcasecmp.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='c-strcasecmp.c' object='libdiffutils_a-c-strcasecmp.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-c-strcasecmp.obj `if test -f 'c-strcasecmp.c'; then $(CYGPATH_W) 'c-strcasecmp.c'; else $(CYGPATH_W) '$(srcdir)/c-strcasecmp.c'; fi`
 
-install-data-am:
+libdiffutils_a-c-strncasecmp.o: c-strncasecmp.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-c-strncasecmp.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-c-strncasecmp.Tpo -c -o libdiffutils_a-c-strncasecmp.o `test -f 'c-strncasecmp.c' || echo '$(srcdir)/'`c-strncasecmp.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-c-strncasecmp.Tpo $(DEPDIR)/libdiffutils_a-c-strncasecmp.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='c-strncasecmp.c' object='libdiffutils_a-c-strncasecmp.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-c-strncasecmp.o `test -f 'c-strncasecmp.c' || echo '$(srcdir)/'`c-strncasecmp.c
 
-install-dvi: install-dvi-am
+libdiffutils_a-c-strncasecmp.obj: c-strncasecmp.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-c-strncasecmp.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-c-strncasecmp.Tpo -c -o libdiffutils_a-c-strncasecmp.obj `if test -f 'c-strncasecmp.c'; then $(CYGPATH_W) 'c-strncasecmp.c'; else $(CYGPATH_W) '$(srcdir)/c-strncasecmp.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-c-strncasecmp.Tpo $(DEPDIR)/libdiffutils_a-c-strncasecmp.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='c-strncasecmp.c' object='libdiffutils_a-c-strncasecmp.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-c-strncasecmp.obj `if test -f 'c-strncasecmp.c'; then $(CYGPATH_W) 'c-strncasecmp.c'; else $(CYGPATH_W) '$(srcdir)/c-strncasecmp.c'; fi`
 
-install-dvi-am:
+libdiffutils_a-careadlinkat.o: careadlinkat.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-careadlinkat.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-careadlinkat.Tpo -c -o libdiffutils_a-careadlinkat.o `test -f 'careadlinkat.c' || echo '$(srcdir)/'`careadlinkat.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-careadlinkat.Tpo $(DEPDIR)/libdiffutils_a-careadlinkat.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='careadlinkat.c' object='libdiffutils_a-careadlinkat.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-careadlinkat.o `test -f 'careadlinkat.c' || echo '$(srcdir)/'`careadlinkat.c
 
-install-exec-am:
+libdiffutils_a-careadlinkat.obj: careadlinkat.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-careadlinkat.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-careadlinkat.Tpo -c -o libdiffutils_a-careadlinkat.obj `if test -f 'careadlinkat.c'; then $(CYGPATH_W) 'careadlinkat.c'; else $(CYGPATH_W) '$(srcdir)/careadlinkat.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-careadlinkat.Tpo $(DEPDIR)/libdiffutils_a-careadlinkat.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='careadlinkat.c' object='libdiffutils_a-careadlinkat.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-careadlinkat.obj `if test -f 'careadlinkat.c'; then $(CYGPATH_W) 'careadlinkat.c'; else $(CYGPATH_W) '$(srcdir)/careadlinkat.c'; fi`
 
-install-html: install-html-am
+libdiffutils_a-cloexec.o: cloexec.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-cloexec.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-cloexec.Tpo -c -o libdiffutils_a-cloexec.o `test -f 'cloexec.c' || echo '$(srcdir)/'`cloexec.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-cloexec.Tpo $(DEPDIR)/libdiffutils_a-cloexec.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='cloexec.c' object='libdiffutils_a-cloexec.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-cloexec.o `test -f 'cloexec.c' || echo '$(srcdir)/'`cloexec.c
 
-install-html-am:
+libdiffutils_a-cloexec.obj: cloexec.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-cloexec.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-cloexec.Tpo -c -o libdiffutils_a-cloexec.obj `if test -f 'cloexec.c'; then $(CYGPATH_W) 'cloexec.c'; else $(CYGPATH_W) '$(srcdir)/cloexec.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-cloexec.Tpo $(DEPDIR)/libdiffutils_a-cloexec.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='cloexec.c' object='libdiffutils_a-cloexec.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-cloexec.obj `if test -f 'cloexec.c'; then $(CYGPATH_W) 'cloexec.c'; else $(CYGPATH_W) '$(srcdir)/cloexec.c'; fi`
 
-install-info: install-info-am
+libdiffutils_a-close.o: close.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-close.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-close.Tpo -c -o libdiffutils_a-close.o `test -f 'close.c' || echo '$(srcdir)/'`close.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-close.Tpo $(DEPDIR)/libdiffutils_a-close.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='close.c' object='libdiffutils_a-close.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-close.o `test -f 'close.c' || echo '$(srcdir)/'`close.c
 
-install-info-am:
+libdiffutils_a-close.obj: close.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-close.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-close.Tpo -c -o libdiffutils_a-close.obj `if test -f 'close.c'; then $(CYGPATH_W) 'close.c'; else $(CYGPATH_W) '$(srcdir)/close.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-close.Tpo $(DEPDIR)/libdiffutils_a-close.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='close.c' object='libdiffutils_a-close.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-close.obj `if test -f 'close.c'; then $(CYGPATH_W) 'close.c'; else $(CYGPATH_W) '$(srcdir)/close.c'; fi`
 
-install-man:
+libdiffutils_a-dirname.o: dirname.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-dirname.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-dirname.Tpo -c -o libdiffutils_a-dirname.o `test -f 'dirname.c' || echo '$(srcdir)/'`dirname.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-dirname.Tpo $(DEPDIR)/libdiffutils_a-dirname.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='dirname.c' object='libdiffutils_a-dirname.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-dirname.o `test -f 'dirname.c' || echo '$(srcdir)/'`dirname.c
 
-install-pdf: install-pdf-am
+libdiffutils_a-dirname.obj: dirname.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-dirname.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-dirname.Tpo -c -o libdiffutils_a-dirname.obj `if test -f 'dirname.c'; then $(CYGPATH_W) 'dirname.c'; else $(CYGPATH_W) '$(srcdir)/dirname.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-dirname.Tpo $(DEPDIR)/libdiffutils_a-dirname.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='dirname.c' object='libdiffutils_a-dirname.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-dirname.obj `if test -f 'dirname.c'; then $(CYGPATH_W) 'dirname.c'; else $(CYGPATH_W) '$(srcdir)/dirname.c'; fi`
 
-install-pdf-am:
+libdiffutils_a-basename.o: basename.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-basename.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-basename.Tpo -c -o libdiffutils_a-basename.o `test -f 'basename.c' || echo '$(srcdir)/'`basename.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-basename.Tpo $(DEPDIR)/libdiffutils_a-basename.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='basename.c' object='libdiffutils_a-basename.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-basename.o `test -f 'basename.c' || echo '$(srcdir)/'`basename.c
 
-install-ps: install-ps-am
+libdiffutils_a-basename.obj: basename.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-basename.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-basename.Tpo -c -o libdiffutils_a-basename.obj `if test -f 'basename.c'; then $(CYGPATH_W) 'basename.c'; else $(CYGPATH_W) '$(srcdir)/basename.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-basename.Tpo $(DEPDIR)/libdiffutils_a-basename.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='basename.c' object='libdiffutils_a-basename.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-basename.obj `if test -f 'basename.c'; then $(CYGPATH_W) 'basename.c'; else $(CYGPATH_W) '$(srcdir)/basename.c'; fi`
 
-install-ps-am:
+libdiffutils_a-dirname-lgpl.o: dirname-lgpl.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-dirname-lgpl.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-dirname-lgpl.Tpo -c -o libdiffutils_a-dirname-lgpl.o `test -f 'dirname-lgpl.c' || echo '$(srcdir)/'`dirname-lgpl.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-dirname-lgpl.Tpo $(DEPDIR)/libdiffutils_a-dirname-lgpl.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='dirname-lgpl.c' object='libdiffutils_a-dirname-lgpl.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-dirname-lgpl.o `test -f 'dirname-lgpl.c' || echo '$(srcdir)/'`dirname-lgpl.c
 
-installcheck-am:
+libdiffutils_a-dirname-lgpl.obj: dirname-lgpl.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-dirname-lgpl.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-dirname-lgpl.Tpo -c -o libdiffutils_a-dirname-lgpl.obj `if test -f 'dirname-lgpl.c'; then $(CYGPATH_W) 'dirname-lgpl.c'; else $(CYGPATH_W) '$(srcdir)/dirname-lgpl.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-dirname-lgpl.Tpo $(DEPDIR)/libdiffutils_a-dirname-lgpl.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='dirname-lgpl.c' object='libdiffutils_a-dirname-lgpl.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-dirname-lgpl.obj `if test -f 'dirname-lgpl.c'; then $(CYGPATH_W) 'dirname-lgpl.c'; else $(CYGPATH_W) '$(srcdir)/dirname-lgpl.c'; fi`
 
-maintainer-clean: maintainer-clean-am
-               -rm -f ./$(DEPDIR)/allocator.Po
-       -rm -f ./$(DEPDIR)/anytostr.Po
-       -rm -f ./$(DEPDIR)/areadlink.Po
-       -rm -f ./$(DEPDIR)/argmatch.Po
-       -rm -f ./$(DEPDIR)/asnprintf.Po
-       -rm -f ./$(DEPDIR)/asprintf.Po
-       -rm -f ./$(DEPDIR)/basename-lgpl.Po
-       -rm -f ./$(DEPDIR)/basename.Po
-       -rm -f ./$(DEPDIR)/binary-io.Po
-       -rm -f ./$(DEPDIR)/bitrotate.Po
-       -rm -f ./$(DEPDIR)/btowc.Po
-       -rm -f ./$(DEPDIR)/c-ctype.Po
-       -rm -f ./$(DEPDIR)/c-stack.Po
-       -rm -f ./$(DEPDIR)/c-strcasecmp.Po
-       -rm -f ./$(DEPDIR)/c-strncasecmp.Po
-       -rm -f ./$(DEPDIR)/calloc.Po
-       -rm -f ./$(DEPDIR)/careadlinkat.Po
-       -rm -f ./$(DEPDIR)/cloexec.Po
-       -rm -f ./$(DEPDIR)/close.Po
-       -rm -f ./$(DEPDIR)/cmpbuf.Po
-       -rm -f ./$(DEPDIR)/dirname-lgpl.Po
-       -rm -f ./$(DEPDIR)/dirname.Po
-       -rm -f ./$(DEPDIR)/dup2.Po
-       -rm -f ./$(DEPDIR)/error.Po
-       -rm -f ./$(DEPDIR)/exclude.Po
-       -rm -f ./$(DEPDIR)/exitfail.Po
-       -rm -f ./$(DEPDIR)/fcntl.Po
-       -rm -f ./$(DEPDIR)/fd-hook.Po
-       -rm -f ./$(DEPDIR)/file-type.Po
-       -rm -f ./$(DEPDIR)/filenamecat-lgpl.Po
-       -rm -f ./$(DEPDIR)/filenamecat.Po
-       -rm -f ./$(DEPDIR)/float.Po
-       -rm -f ./$(DEPDIR)/fnmatch.Po
-       -rm -f ./$(DEPDIR)/fnmatch_loop.Po
-       -rm -f ./$(DEPDIR)/fopen.Po
-       -rm -f ./$(DEPDIR)/free.Po
-       -rm -f ./$(DEPDIR)/freopen.Po
-       -rm -f ./$(DEPDIR)/fstat.Po
-       -rm -f ./$(DEPDIR)/getdtablesize.Po
-       -rm -f ./$(DEPDIR)/getopt.Po
-       -rm -f ./$(DEPDIR)/getopt1.Po
-       -rm -f ./$(DEPDIR)/getpagesize.Po
-       -rm -f ./$(DEPDIR)/getprogname.Po
-       -rm -f ./$(DEPDIR)/getrandom.Po
-       -rm -f ./$(DEPDIR)/gettime.Po
-       -rm -f ./$(DEPDIR)/gettimeofday.Po
-       -rm -f ./$(DEPDIR)/hard-locale.Po
-       -rm -f ./$(DEPDIR)/hash.Po
-       -rm -f ./$(DEPDIR)/ialloc.Po
-       -rm -f ./$(DEPDIR)/iconv.Po
-       -rm -f ./$(DEPDIR)/iconv_close.Po
-       -rm -f ./$(DEPDIR)/iconv_open.Po
-       -rm -f ./$(DEPDIR)/imaxtostr.Po
-       -rm -f ./$(DEPDIR)/inttostr.Po
-       -rm -f ./$(DEPDIR)/isblank.Po
-       -rm -f ./$(DEPDIR)/iswblank.Po
-       -rm -f ./$(DEPDIR)/iswdigit.Po
-       -rm -f ./$(DEPDIR)/iswxdigit.Po
-       -rm -f ./$(DEPDIR)/itold.Po
-       -rm -f ./$(DEPDIR)/lc-charset-dispatch.Po
-       -rm -f ./$(DEPDIR)/localcharset.Po
-       -rm -f ./$(DEPDIR)/localeconv.Po
-       -rm -f ./$(DEPDIR)/lstat.Po
-       -rm -f ./$(DEPDIR)/malloc.Po
-       -rm -f ./$(DEPDIR)/malloca.Po
-       -rm -f ./$(DEPDIR)/mbchar.Po
-       -rm -f ./$(DEPDIR)/mbiter.Po
-       -rm -f ./$(DEPDIR)/mbrtowc.Po
-       -rm -f ./$(DEPDIR)/mbscasecmp.Po
-       -rm -f ./$(DEPDIR)/mbsinit.Po
-       -rm -f ./$(DEPDIR)/mbslen.Po
-       -rm -f ./$(DEPDIR)/mbsrtowcs-state.Po
-       -rm -f ./$(DEPDIR)/mbsrtowcs.Po
-       -rm -f ./$(DEPDIR)/mbsstr.Po
-       -rm -f ./$(DEPDIR)/mbtowc-lock.Po
-       -rm -f ./$(DEPDIR)/mbtowc.Po
-       -rm -f ./$(DEPDIR)/mbuiter.Po
-       -rm -f ./$(DEPDIR)/memchr.Po
-       -rm -f ./$(DEPDIR)/mempcpy.Po
-       -rm -f ./$(DEPDIR)/mkdir.Po
-       -rm -f ./$(DEPDIR)/mkstemp.Po
-       -rm -f ./$(DEPDIR)/mktime.Po
-       -rm -f ./$(DEPDIR)/msvc-inval.Po
-       -rm -f ./$(DEPDIR)/msvc-nothrow.Po
-       -rm -f ./$(DEPDIR)/nl_langinfo-lock.Po
-       -rm -f ./$(DEPDIR)/nl_langinfo.Po
-       -rm -f ./$(DEPDIR)/nstrftime.Po
-       -rm -f ./$(DEPDIR)/offtostr.Po
-       -rm -f ./$(DEPDIR)/open.Po
-       -rm -f ./$(DEPDIR)/prepargs.Po
-       -rm -f ./$(DEPDIR)/printf-args.Po
-       -rm -f ./$(DEPDIR)/printf-parse.Po
-       -rm -f ./$(DEPDIR)/progname.Po
-       -rm -f ./$(DEPDIR)/propername.Po
-       -rm -f ./$(DEPDIR)/quotearg.Po
-       -rm -f ./$(DEPDIR)/raise.Po
-       -rm -f ./$(DEPDIR)/rawmemchr.Po
-       -rm -f ./$(DEPDIR)/readlink.Po
-       -rm -f ./$(DEPDIR)/realloc.Po
-       -rm -f ./$(DEPDIR)/reallocarray.Po
-       -rm -f ./$(DEPDIR)/regcomp.Po
-       -rm -f ./$(DEPDIR)/regex.Po
-       -rm -f ./$(DEPDIR)/regex_internal.Po
-       -rm -f ./$(DEPDIR)/regexec.Po
-       -rm -f ./$(DEPDIR)/setenv.Po
-       -rm -f ./$(DEPDIR)/setlocale-lock.Po
-       -rm -f ./$(DEPDIR)/setlocale_null.Po
-       -rm -f ./$(DEPDIR)/sh-quote.Po
-       -rm -f ./$(DEPDIR)/sigsegv.Po
-       -rm -f ./$(DEPDIR)/stackvma.Po
-       -rm -f ./$(DEPDIR)/stat-time.Po
-       -rm -f ./$(DEPDIR)/stat-w32.Po
-       -rm -f ./$(DEPDIR)/stat.Po
-       -rm -f ./$(DEPDIR)/stdopen.Po
-       -rm -f ./$(DEPDIR)/strcasecmp.Po
-       -rm -f ./$(DEPDIR)/strerror-override.Po
-       -rm -f ./$(DEPDIR)/strerror.Po
-       -rm -f ./$(DEPDIR)/striconv.Po
-       -rm -f ./$(DEPDIR)/stripslash.Po
-       -rm -f ./$(DEPDIR)/strncasecmp.Po
-       -rm -f ./$(DEPDIR)/strnlen.Po
-       -rm -f ./$(DEPDIR)/strnlen1.Po
-       -rm -f ./$(DEPDIR)/strptime.Po
-       -rm -f ./$(DEPDIR)/strtoimax.Po
-       -rm -f ./$(DEPDIR)/strtol.Po
-       -rm -f ./$(DEPDIR)/strtoll.Po
-       -rm -f ./$(DEPDIR)/system-quote.Po
-       -rm -f ./$(DEPDIR)/tempname.Po
-       -rm -f ./$(DEPDIR)/time_r.Po
-       -rm -f ./$(DEPDIR)/time_rz.Po
-       -rm -f ./$(DEPDIR)/timegm.Po
-       -rm -f ./$(DEPDIR)/timespec.Po
-       -rm -f ./$(DEPDIR)/trim.Po
-       -rm -f ./$(DEPDIR)/tzset.Po
-       -rm -f ./$(DEPDIR)/uinttostr.Po
-       -rm -f ./$(DEPDIR)/umaxtostr.Po
-       -rm -f ./$(DEPDIR)/unistd.Po
-       -rm -f ./$(DEPDIR)/unsetenv.Po
-       -rm -f ./$(DEPDIR)/vasnprintf.Po
-       -rm -f ./$(DEPDIR)/vasprintf.Po
-       -rm -f ./$(DEPDIR)/version-etc-fsf.Po
-       -rm -f ./$(DEPDIR)/version-etc.Po
-       -rm -f ./$(DEPDIR)/wcrtomb.Po
-       -rm -f ./$(DEPDIR)/wctype-h.Po
-       -rm -f ./$(DEPDIR)/wcwidth.Po
-       -rm -f ./$(DEPDIR)/windows-mutex.Po
-       -rm -f ./$(DEPDIR)/windows-once.Po
-       -rm -f ./$(DEPDIR)/windows-recmutex.Po
-       -rm -f ./$(DEPDIR)/windows-rwlock.Po
-       -rm -f ./$(DEPDIR)/wmemchr.Po
-       -rm -f ./$(DEPDIR)/wmempcpy.Po
-       -rm -f ./$(DEPDIR)/xalloc-die.Po
-       -rm -f ./$(DEPDIR)/xasprintf.Po
-       -rm -f ./$(DEPDIR)/xfreopen.Po
-       -rm -f ./$(DEPDIR)/xmalloc.Po
-       -rm -f ./$(DEPDIR)/xmalloca.Po
-       -rm -f ./$(DEPDIR)/xreadlink.Po
-       -rm -f ./$(DEPDIR)/xsize.Po
-       -rm -f ./$(DEPDIR)/xstdopen.Po
-       -rm -f ./$(DEPDIR)/xstriconv.Po
-       -rm -f ./$(DEPDIR)/xstrtoimax.Po
-       -rm -f ./$(DEPDIR)/xstrtol.Po
-       -rm -f ./$(DEPDIR)/xstrtoul.Po
-       -rm -f ./$(DEPDIR)/xvasprintf.Po
-       -rm -f glthread/$(DEPDIR)/lock.Po
-       -rm -f glthread/$(DEPDIR)/threadlib.Po
-       -rm -f malloc/$(DEPDIR)/dynarray-skeleton.Po
-       -rm -f malloc/$(DEPDIR)/dynarray_at_failure.Po
-       -rm -f malloc/$(DEPDIR)/dynarray_emplace_enlarge.Po
-       -rm -f malloc/$(DEPDIR)/dynarray_finalize.Po
-       -rm -f malloc/$(DEPDIR)/dynarray_resize.Po
-       -rm -f malloc/$(DEPDIR)/dynarray_resize_clear.Po
-       -rm -f unistr/$(DEPDIR)/u8-mbtoucr.Po
-       -rm -f unistr/$(DEPDIR)/u8-uctomb-aux.Po
-       -rm -f unistr/$(DEPDIR)/u8-uctomb.Po
-       -rm -f uniwidth/$(DEPDIR)/width.Po
-       -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
+libdiffutils_a-stripslash.o: stripslash.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-stripslash.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-stripslash.Tpo -c -o libdiffutils_a-stripslash.o `test -f 'stripslash.c' || echo '$(srcdir)/'`stripslash.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-stripslash.Tpo $(DEPDIR)/libdiffutils_a-stripslash.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='stripslash.c' object='libdiffutils_a-stripslash.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-stripslash.o `test -f 'stripslash.c' || echo '$(srcdir)/'`stripslash.c
 
-mostlyclean: mostlyclean-am
+libdiffutils_a-stripslash.obj: stripslash.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-stripslash.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-stripslash.Tpo -c -o libdiffutils_a-stripslash.obj `if test -f 'stripslash.c'; then $(CYGPATH_W) 'stripslash.c'; else $(CYGPATH_W) '$(srcdir)/stripslash.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-stripslash.Tpo $(DEPDIR)/libdiffutils_a-stripslash.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='stripslash.c' object='libdiffutils_a-stripslash.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-stripslash.obj `if test -f 'stripslash.c'; then $(CYGPATH_W) 'stripslash.c'; else $(CYGPATH_W) '$(srcdir)/stripslash.c'; fi`
 
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
-       mostlyclean-local
+libdiffutils_a-dup2.o: dup2.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-dup2.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-dup2.Tpo -c -o libdiffutils_a-dup2.o `test -f 'dup2.c' || echo '$(srcdir)/'`dup2.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-dup2.Tpo $(DEPDIR)/libdiffutils_a-dup2.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='dup2.c' object='libdiffutils_a-dup2.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-dup2.o `test -f 'dup2.c' || echo '$(srcdir)/'`dup2.c
 
-pdf: pdf-am
+libdiffutils_a-dup2.obj: dup2.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-dup2.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-dup2.Tpo -c -o libdiffutils_a-dup2.obj `if test -f 'dup2.c'; then $(CYGPATH_W) 'dup2.c'; else $(CYGPATH_W) '$(srcdir)/dup2.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-dup2.Tpo $(DEPDIR)/libdiffutils_a-dup2.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='dup2.c' object='libdiffutils_a-dup2.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-dup2.obj `if test -f 'dup2.c'; then $(CYGPATH_W) 'dup2.c'; else $(CYGPATH_W) '$(srcdir)/dup2.c'; fi`
 
-pdf-am:
+libdiffutils_a-error.o: error.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-error.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-error.Tpo -c -o libdiffutils_a-error.o `test -f 'error.c' || echo '$(srcdir)/'`error.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-error.Tpo $(DEPDIR)/libdiffutils_a-error.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='error.c' object='libdiffutils_a-error.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-error.o `test -f 'error.c' || echo '$(srcdir)/'`error.c
 
-ps: ps-am
+libdiffutils_a-error.obj: error.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-error.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-error.Tpo -c -o libdiffutils_a-error.obj `if test -f 'error.c'; then $(CYGPATH_W) 'error.c'; else $(CYGPATH_W) '$(srcdir)/error.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-error.Tpo $(DEPDIR)/libdiffutils_a-error.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='error.c' object='libdiffutils_a-error.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-error.obj `if test -f 'error.c'; then $(CYGPATH_W) 'error.c'; else $(CYGPATH_W) '$(srcdir)/error.c'; fi`
 
-ps-am:
+libdiffutils_a-exclude.o: exclude.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-exclude.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-exclude.Tpo -c -o libdiffutils_a-exclude.o `test -f 'exclude.c' || echo '$(srcdir)/'`exclude.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-exclude.Tpo $(DEPDIR)/libdiffutils_a-exclude.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='exclude.c' object='libdiffutils_a-exclude.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-exclude.o `test -f 'exclude.c' || echo '$(srcdir)/'`exclude.c
 
-uninstall-am:
+libdiffutils_a-exclude.obj: exclude.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-exclude.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-exclude.Tpo -c -o libdiffutils_a-exclude.obj `if test -f 'exclude.c'; then $(CYGPATH_W) 'exclude.c'; else $(CYGPATH_W) '$(srcdir)/exclude.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-exclude.Tpo $(DEPDIR)/libdiffutils_a-exclude.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='exclude.c' object='libdiffutils_a-exclude.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-exclude.obj `if test -f 'exclude.c'; then $(CYGPATH_W) 'exclude.c'; else $(CYGPATH_W) '$(srcdir)/exclude.c'; fi`
 
-.MAKE: all check install install-am install-exec install-strip
+libdiffutils_a-exitfail.o: exitfail.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-exitfail.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-exitfail.Tpo -c -o libdiffutils_a-exitfail.o `test -f 'exitfail.c' || echo '$(srcdir)/'`exitfail.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-exitfail.Tpo $(DEPDIR)/libdiffutils_a-exitfail.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='exitfail.c' object='libdiffutils_a-exitfail.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-exitfail.o `test -f 'exitfail.c' || echo '$(srcdir)/'`exitfail.c
 
-.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
-       clean-generic clean-noinstLIBRARIES cscopelist-am ctags \
-       ctags-am distclean distclean-compile distclean-generic \
-       distclean-hdr distclean-local distclean-tags distdir dvi \
-       dvi-am html html-am info info-am install install-am \
-       install-data install-data-am install-dvi install-dvi-am \
-       install-exec install-exec-am install-html install-html-am \
-       install-info install-info-am install-man install-pdf \
-       install-pdf-am install-ps install-ps-am install-strip \
-       installcheck installcheck-am installdirs maintainer-clean \
-       maintainer-clean-generic mostlyclean mostlyclean-compile \
-       mostlyclean-generic mostlyclean-local pdf pdf-am ps ps-am tags \
-       tags-am uninstall uninstall-am
+libdiffutils_a-exitfail.obj: exitfail.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-exitfail.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-exitfail.Tpo -c -o libdiffutils_a-exitfail.obj `if test -f 'exitfail.c'; then $(CYGPATH_W) 'exitfail.c'; else $(CYGPATH_W) '$(srcdir)/exitfail.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-exitfail.Tpo $(DEPDIR)/libdiffutils_a-exitfail.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='exitfail.c' object='libdiffutils_a-exitfail.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-exitfail.obj `if test -f 'exitfail.c'; then $(CYGPATH_W) 'exitfail.c'; else $(CYGPATH_W) '$(srcdir)/exitfail.c'; fi`
 
-.PRECIOUS: Makefile
+libdiffutils_a-fcntl.o: fcntl.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-fcntl.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-fcntl.Tpo -c -o libdiffutils_a-fcntl.o `test -f 'fcntl.c' || echo '$(srcdir)/'`fcntl.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-fcntl.Tpo $(DEPDIR)/libdiffutils_a-fcntl.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='fcntl.c' object='libdiffutils_a-fcntl.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-fcntl.o `test -f 'fcntl.c' || echo '$(srcdir)/'`fcntl.c
 
+libdiffutils_a-fcntl.obj: fcntl.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-fcntl.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-fcntl.Tpo -c -o libdiffutils_a-fcntl.obj `if test -f 'fcntl.c'; then $(CYGPATH_W) 'fcntl.c'; else $(CYGPATH_W) '$(srcdir)/fcntl.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-fcntl.Tpo $(DEPDIR)/libdiffutils_a-fcntl.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='fcntl.c' object='libdiffutils_a-fcntl.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-fcntl.obj `if test -f 'fcntl.c'; then $(CYGPATH_W) 'fcntl.c'; else $(CYGPATH_W) '$(srcdir)/fcntl.c'; fi`
 
-# We need the following in order to create <alloca.h> when the system
-# doesn't have one that works with the given compiler.
-@GL_GENERATE_ALLOCA_H_TRUE@alloca.h: alloca.in.h $(top_builddir)/config.status
-@GL_GENERATE_ALLOCA_H_TRUE@    $(AM_V_GEN)rm -f $@-t $@ && \
-@GL_GENERATE_ALLOCA_H_TRUE@    { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-@GL_GENERATE_ALLOCA_H_TRUE@      sed -e 's|@''HAVE_ALLOCA_H''@|$(HAVE_ALLOCA_H)|g' < $(srcdir)/alloca.in.h; \
-@GL_GENERATE_ALLOCA_H_TRUE@    } > $@-t && \
-@GL_GENERATE_ALLOCA_H_TRUE@    mv -f $@-t $@
-@GL_GENERATE_ALLOCA_H_FALSE@alloca.h: $(top_builddir)/config.status
-@GL_GENERATE_ALLOCA_H_FALSE@   rm -f $@
+libdiffutils_a-fd-hook.o: fd-hook.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-fd-hook.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-fd-hook.Tpo -c -o libdiffutils_a-fd-hook.o `test -f 'fd-hook.c' || echo '$(srcdir)/'`fd-hook.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-fd-hook.Tpo $(DEPDIR)/libdiffutils_a-fd-hook.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='fd-hook.c' object='libdiffutils_a-fd-hook.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-fd-hook.o `test -f 'fd-hook.c' || echo '$(srcdir)/'`fd-hook.c
 
-# We need the following in order to create <ctype.h> when the system
-# doesn't have one that works with the given compiler.
-ctype.h: ctype.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
-             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-             -e 's|@''NEXT_CTYPE_H''@|$(NEXT_CTYPE_H)|g' \
-             -e 's/@''GNULIB_ISBLANK''@/$(GL_GNULIB_ISBLANK)/g' \
-             -e 's/@''HAVE_ISBLANK''@/$(HAVE_ISBLANK)/g' \
-             -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
-             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/ctype.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+libdiffutils_a-fd-hook.obj: fd-hook.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-fd-hook.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-fd-hook.Tpo -c -o libdiffutils_a-fd-hook.obj `if test -f 'fd-hook.c'; then $(CYGPATH_W) 'fd-hook.c'; else $(CYGPATH_W) '$(srcdir)/fd-hook.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-fd-hook.Tpo $(DEPDIR)/libdiffutils_a-fd-hook.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='fd-hook.c' object='libdiffutils_a-fd-hook.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-fd-hook.obj `if test -f 'fd-hook.c'; then $(CYGPATH_W) 'fd-hook.c'; else $(CYGPATH_W) '$(srcdir)/fd-hook.c'; fi`
 
-malloc/dynarray.gl.h: malloc/dynarray.h
-       $(AM_V_at)$(MKDIR_P) malloc
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e '/libc_hidden_proto/d' < $(srcdir)/malloc/dynarray.h; \
-       } > $@-t && \
-       mv $@-t $@
+libdiffutils_a-file-type.o: file-type.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-file-type.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-file-type.Tpo -c -o libdiffutils_a-file-type.o `test -f 'file-type.c' || echo '$(srcdir)/'`file-type.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-file-type.Tpo $(DEPDIR)/libdiffutils_a-file-type.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='file-type.c' object='libdiffutils_a-file-type.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-file-type.o `test -f 'file-type.c' || echo '$(srcdir)/'`file-type.c
 
-malloc/dynarray-skeleton.gl.h: malloc/dynarray-skeleton.c
-       $(AM_V_at)$(MKDIR_P) malloc
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|<malloc/dynarray\.h>|<malloc/dynarray.gl.h>|g' \
-             -e 's|__attribute_maybe_unused__|_GL_ATTRIBUTE_MAYBE_UNUSED|g' \
-             -e 's|__attribute_nonnull__|_GL_ATTRIBUTE_NONNULL|g' \
-             -e 's|__attribute_warn_unused_result__|_GL_ATTRIBUTE_NODISCARD|g' \
-             -e 's|__glibc_likely|_GL_LIKELY|g' \
-             -e 's|__glibc_unlikely|_GL_UNLIKELY|g' \
-             < $(srcdir)/malloc/dynarray-skeleton.c; \
-       } > $@-t && \
-       mv $@-t $@
+libdiffutils_a-file-type.obj: file-type.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-file-type.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-file-type.Tpo -c -o libdiffutils_a-file-type.obj `if test -f 'file-type.c'; then $(CYGPATH_W) 'file-type.c'; else $(CYGPATH_W) '$(srcdir)/file-type.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-file-type.Tpo $(DEPDIR)/libdiffutils_a-file-type.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='file-type.c' object='libdiffutils_a-file-type.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-file-type.obj `if test -f 'file-type.c'; then $(CYGPATH_W) 'file-type.c'; else $(CYGPATH_W) '$(srcdir)/file-type.c'; fi`
 
-# We need the following in order to create <errno.h> when the system
-# doesn't have one that is POSIX compliant.
-@GL_GENERATE_ERRNO_H_TRUE@errno.h: errno.in.h $(top_builddir)/config.status
-@GL_GENERATE_ERRNO_H_TRUE@     $(AM_V_GEN)rm -f $@-t $@ && \
-@GL_GENERATE_ERRNO_H_TRUE@     { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-@GL_GENERATE_ERRNO_H_TRUE@       sed -e 's|@''GUARD_PREFIX''@|GL|g' \
-@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''NEXT_ERRNO_H''@|$(NEXT_ERRNO_H)|g' \
-@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''EMULTIHOP_HIDDEN''@|$(EMULTIHOP_HIDDEN)|g' \
-@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''EMULTIHOP_VALUE''@|$(EMULTIHOP_VALUE)|g' \
-@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''ENOLINK_HIDDEN''@|$(ENOLINK_HIDDEN)|g' \
-@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''ENOLINK_VALUE''@|$(ENOLINK_VALUE)|g' \
-@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''EOVERFLOW_HIDDEN''@|$(EOVERFLOW_HIDDEN)|g' \
-@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''EOVERFLOW_VALUE''@|$(EOVERFLOW_VALUE)|g' \
-@GL_GENERATE_ERRNO_H_TRUE@           < $(srcdir)/errno.in.h; \
-@GL_GENERATE_ERRNO_H_TRUE@     } > $@-t && \
-@GL_GENERATE_ERRNO_H_TRUE@     mv $@-t $@
-@GL_GENERATE_ERRNO_H_FALSE@errno.h: $(top_builddir)/config.status
-@GL_GENERATE_ERRNO_H_FALSE@    rm -f $@
+libdiffutils_a-filenamecat.o: filenamecat.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-filenamecat.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-filenamecat.Tpo -c -o libdiffutils_a-filenamecat.o `test -f 'filenamecat.c' || echo '$(srcdir)/'`filenamecat.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-filenamecat.Tpo $(DEPDIR)/libdiffutils_a-filenamecat.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='filenamecat.c' object='libdiffutils_a-filenamecat.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-filenamecat.o `test -f 'filenamecat.c' || echo '$(srcdir)/'`filenamecat.c
 
-# We need the following in order to create <fcntl.h> when the system
-# doesn't have one that works with the given compiler.
-fcntl.h: fcntl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
-             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+libdiffutils_a-filenamecat.obj: filenamecat.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-filenamecat.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-filenamecat.Tpo -c -o libdiffutils_a-filenamecat.obj `if test -f 'filenamecat.c'; then $(CYGPATH_W) 'filenamecat.c'; else $(CYGPATH_W) '$(srcdir)/filenamecat.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-filenamecat.Tpo $(DEPDIR)/libdiffutils_a-filenamecat.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='filenamecat.c' object='libdiffutils_a-filenamecat.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-filenamecat.obj `if test -f 'filenamecat.c'; then $(CYGPATH_W) 'filenamecat.c'; else $(CYGPATH_W) '$(srcdir)/filenamecat.c'; fi`
+
+libdiffutils_a-filenamecat-lgpl.o: filenamecat-lgpl.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-filenamecat-lgpl.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-filenamecat-lgpl.Tpo -c -o libdiffutils_a-filenamecat-lgpl.o `test -f 'filenamecat-lgpl.c' || echo '$(srcdir)/'`filenamecat-lgpl.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-filenamecat-lgpl.Tpo $(DEPDIR)/libdiffutils_a-filenamecat-lgpl.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='filenamecat-lgpl.c' object='libdiffutils_a-filenamecat-lgpl.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-filenamecat-lgpl.o `test -f 'filenamecat-lgpl.c' || echo '$(srcdir)/'`filenamecat-lgpl.c
+
+libdiffutils_a-filenamecat-lgpl.obj: filenamecat-lgpl.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-filenamecat-lgpl.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-filenamecat-lgpl.Tpo -c -o libdiffutils_a-filenamecat-lgpl.obj `if test -f 'filenamecat-lgpl.c'; then $(CYGPATH_W) 'filenamecat-lgpl.c'; else $(CYGPATH_W) '$(srcdir)/filenamecat-lgpl.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-filenamecat-lgpl.Tpo $(DEPDIR)/libdiffutils_a-filenamecat-lgpl.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='filenamecat-lgpl.c' object='libdiffutils_a-filenamecat-lgpl.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-filenamecat-lgpl.obj `if test -f 'filenamecat-lgpl.c'; then $(CYGPATH_W) 'filenamecat-lgpl.c'; else $(CYGPATH_W) '$(srcdir)/filenamecat-lgpl.c'; fi`
+
+libdiffutils_a-free.o: free.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-free.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-free.Tpo -c -o libdiffutils_a-free.o `test -f 'free.c' || echo '$(srcdir)/'`free.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-free.Tpo $(DEPDIR)/libdiffutils_a-free.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='free.c' object='libdiffutils_a-free.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-free.o `test -f 'free.c' || echo '$(srcdir)/'`free.c
+
+libdiffutils_a-free.obj: free.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-free.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-free.Tpo -c -o libdiffutils_a-free.obj `if test -f 'free.c'; then $(CYGPATH_W) 'free.c'; else $(CYGPATH_W) '$(srcdir)/free.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-free.Tpo $(DEPDIR)/libdiffutils_a-free.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='free.c' object='libdiffutils_a-free.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-free.obj `if test -f 'free.c'; then $(CYGPATH_W) 'free.c'; else $(CYGPATH_W) '$(srcdir)/free.c'; fi`
+
+libdiffutils_a-freopen.o: freopen.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-freopen.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-freopen.Tpo -c -o libdiffutils_a-freopen.o `test -f 'freopen.c' || echo '$(srcdir)/'`freopen.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-freopen.Tpo $(DEPDIR)/libdiffutils_a-freopen.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='freopen.c' object='libdiffutils_a-freopen.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-freopen.o `test -f 'freopen.c' || echo '$(srcdir)/'`freopen.c
+
+libdiffutils_a-freopen.obj: freopen.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-freopen.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-freopen.Tpo -c -o libdiffutils_a-freopen.obj `if test -f 'freopen.c'; then $(CYGPATH_W) 'freopen.c'; else $(CYGPATH_W) '$(srcdir)/freopen.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-freopen.Tpo $(DEPDIR)/libdiffutils_a-freopen.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='freopen.c' object='libdiffutils_a-freopen.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-freopen.obj `if test -f 'freopen.c'; then $(CYGPATH_W) 'freopen.c'; else $(CYGPATH_W) '$(srcdir)/freopen.c'; fi`
+
+libdiffutils_a-fstat.o: fstat.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-fstat.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-fstat.Tpo -c -o libdiffutils_a-fstat.o `test -f 'fstat.c' || echo '$(srcdir)/'`fstat.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-fstat.Tpo $(DEPDIR)/libdiffutils_a-fstat.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='fstat.c' object='libdiffutils_a-fstat.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-fstat.o `test -f 'fstat.c' || echo '$(srcdir)/'`fstat.c
+
+libdiffutils_a-fstat.obj: fstat.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-fstat.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-fstat.Tpo -c -o libdiffutils_a-fstat.obj `if test -f 'fstat.c'; then $(CYGPATH_W) 'fstat.c'; else $(CYGPATH_W) '$(srcdir)/fstat.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-fstat.Tpo $(DEPDIR)/libdiffutils_a-fstat.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='fstat.c' object='libdiffutils_a-fstat.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-fstat.obj `if test -f 'fstat.c'; then $(CYGPATH_W) 'fstat.c'; else $(CYGPATH_W) '$(srcdir)/fstat.c'; fi`
+
+libdiffutils_a-getdtablesize.o: getdtablesize.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-getdtablesize.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-getdtablesize.Tpo -c -o libdiffutils_a-getdtablesize.o `test -f 'getdtablesize.c' || echo '$(srcdir)/'`getdtablesize.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-getdtablesize.Tpo $(DEPDIR)/libdiffutils_a-getdtablesize.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='getdtablesize.c' object='libdiffutils_a-getdtablesize.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-getdtablesize.o `test -f 'getdtablesize.c' || echo '$(srcdir)/'`getdtablesize.c
+
+libdiffutils_a-getdtablesize.obj: getdtablesize.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-getdtablesize.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-getdtablesize.Tpo -c -o libdiffutils_a-getdtablesize.obj `if test -f 'getdtablesize.c'; then $(CYGPATH_W) 'getdtablesize.c'; else $(CYGPATH_W) '$(srcdir)/getdtablesize.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-getdtablesize.Tpo $(DEPDIR)/libdiffutils_a-getdtablesize.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='getdtablesize.c' object='libdiffutils_a-getdtablesize.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-getdtablesize.obj `if test -f 'getdtablesize.c'; then $(CYGPATH_W) 'getdtablesize.c'; else $(CYGPATH_W) '$(srcdir)/getdtablesize.c'; fi`
+
+libdiffutils_a-getopt.o: getopt.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-getopt.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-getopt.Tpo -c -o libdiffutils_a-getopt.o `test -f 'getopt.c' || echo '$(srcdir)/'`getopt.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-getopt.Tpo $(DEPDIR)/libdiffutils_a-getopt.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='getopt.c' object='libdiffutils_a-getopt.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-getopt.o `test -f 'getopt.c' || echo '$(srcdir)/'`getopt.c
+
+libdiffutils_a-getopt.obj: getopt.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-getopt.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-getopt.Tpo -c -o libdiffutils_a-getopt.obj `if test -f 'getopt.c'; then $(CYGPATH_W) 'getopt.c'; else $(CYGPATH_W) '$(srcdir)/getopt.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-getopt.Tpo $(DEPDIR)/libdiffutils_a-getopt.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='getopt.c' object='libdiffutils_a-getopt.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-getopt.obj `if test -f 'getopt.c'; then $(CYGPATH_W) 'getopt.c'; else $(CYGPATH_W) '$(srcdir)/getopt.c'; fi`
+
+libdiffutils_a-getopt1.o: getopt1.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-getopt1.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-getopt1.Tpo -c -o libdiffutils_a-getopt1.o `test -f 'getopt1.c' || echo '$(srcdir)/'`getopt1.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-getopt1.Tpo $(DEPDIR)/libdiffutils_a-getopt1.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='getopt1.c' object='libdiffutils_a-getopt1.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-getopt1.o `test -f 'getopt1.c' || echo '$(srcdir)/'`getopt1.c
+
+libdiffutils_a-getopt1.obj: getopt1.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-getopt1.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-getopt1.Tpo -c -o libdiffutils_a-getopt1.obj `if test -f 'getopt1.c'; then $(CYGPATH_W) 'getopt1.c'; else $(CYGPATH_W) '$(srcdir)/getopt1.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-getopt1.Tpo $(DEPDIR)/libdiffutils_a-getopt1.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='getopt1.c' object='libdiffutils_a-getopt1.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-getopt1.obj `if test -f 'getopt1.c'; then $(CYGPATH_W) 'getopt1.c'; else $(CYGPATH_W) '$(srcdir)/getopt1.c'; fi`
+
+libdiffutils_a-getpagesize.o: getpagesize.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-getpagesize.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-getpagesize.Tpo -c -o libdiffutils_a-getpagesize.o `test -f 'getpagesize.c' || echo '$(srcdir)/'`getpagesize.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-getpagesize.Tpo $(DEPDIR)/libdiffutils_a-getpagesize.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='getpagesize.c' object='libdiffutils_a-getpagesize.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-getpagesize.o `test -f 'getpagesize.c' || echo '$(srcdir)/'`getpagesize.c
+
+libdiffutils_a-getpagesize.obj: getpagesize.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-getpagesize.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-getpagesize.Tpo -c -o libdiffutils_a-getpagesize.obj `if test -f 'getpagesize.c'; then $(CYGPATH_W) 'getpagesize.c'; else $(CYGPATH_W) '$(srcdir)/getpagesize.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-getpagesize.Tpo $(DEPDIR)/libdiffutils_a-getpagesize.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='getpagesize.c' object='libdiffutils_a-getpagesize.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-getpagesize.obj `if test -f 'getpagesize.c'; then $(CYGPATH_W) 'getpagesize.c'; else $(CYGPATH_W) '$(srcdir)/getpagesize.c'; fi`
+
+libdiffutils_a-getprogname.o: getprogname.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-getprogname.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-getprogname.Tpo -c -o libdiffutils_a-getprogname.o `test -f 'getprogname.c' || echo '$(srcdir)/'`getprogname.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-getprogname.Tpo $(DEPDIR)/libdiffutils_a-getprogname.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='getprogname.c' object='libdiffutils_a-getprogname.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-getprogname.o `test -f 'getprogname.c' || echo '$(srcdir)/'`getprogname.c
+
+libdiffutils_a-getprogname.obj: getprogname.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-getprogname.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-getprogname.Tpo -c -o libdiffutils_a-getprogname.obj `if test -f 'getprogname.c'; then $(CYGPATH_W) 'getprogname.c'; else $(CYGPATH_W) '$(srcdir)/getprogname.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-getprogname.Tpo $(DEPDIR)/libdiffutils_a-getprogname.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='getprogname.c' object='libdiffutils_a-getprogname.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-getprogname.obj `if test -f 'getprogname.c'; then $(CYGPATH_W) 'getprogname.c'; else $(CYGPATH_W) '$(srcdir)/getprogname.c'; fi`
+
+libdiffutils_a-getrandom.o: getrandom.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-getrandom.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-getrandom.Tpo -c -o libdiffutils_a-getrandom.o `test -f 'getrandom.c' || echo '$(srcdir)/'`getrandom.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-getrandom.Tpo $(DEPDIR)/libdiffutils_a-getrandom.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='getrandom.c' object='libdiffutils_a-getrandom.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-getrandom.o `test -f 'getrandom.c' || echo '$(srcdir)/'`getrandom.c
+
+libdiffutils_a-getrandom.obj: getrandom.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-getrandom.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-getrandom.Tpo -c -o libdiffutils_a-getrandom.obj `if test -f 'getrandom.c'; then $(CYGPATH_W) 'getrandom.c'; else $(CYGPATH_W) '$(srcdir)/getrandom.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-getrandom.Tpo $(DEPDIR)/libdiffutils_a-getrandom.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='getrandom.c' object='libdiffutils_a-getrandom.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-getrandom.obj `if test -f 'getrandom.c'; then $(CYGPATH_W) 'getrandom.c'; else $(CYGPATH_W) '$(srcdir)/getrandom.c'; fi`
+
+libdiffutils_a-gettime.o: gettime.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-gettime.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-gettime.Tpo -c -o libdiffutils_a-gettime.o `test -f 'gettime.c' || echo '$(srcdir)/'`gettime.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-gettime.Tpo $(DEPDIR)/libdiffutils_a-gettime.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gettime.c' object='libdiffutils_a-gettime.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-gettime.o `test -f 'gettime.c' || echo '$(srcdir)/'`gettime.c
+
+libdiffutils_a-gettime.obj: gettime.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-gettime.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-gettime.Tpo -c -o libdiffutils_a-gettime.obj `if test -f 'gettime.c'; then $(CYGPATH_W) 'gettime.c'; else $(CYGPATH_W) '$(srcdir)/gettime.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-gettime.Tpo $(DEPDIR)/libdiffutils_a-gettime.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gettime.c' object='libdiffutils_a-gettime.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-gettime.obj `if test -f 'gettime.c'; then $(CYGPATH_W) 'gettime.c'; else $(CYGPATH_W) '$(srcdir)/gettime.c'; fi`
+
+libdiffutils_a-gettimeofday.o: gettimeofday.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-gettimeofday.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-gettimeofday.Tpo -c -o libdiffutils_a-gettimeofday.o `test -f 'gettimeofday.c' || echo '$(srcdir)/'`gettimeofday.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-gettimeofday.Tpo $(DEPDIR)/libdiffutils_a-gettimeofday.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gettimeofday.c' object='libdiffutils_a-gettimeofday.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-gettimeofday.o `test -f 'gettimeofday.c' || echo '$(srcdir)/'`gettimeofday.c
+
+libdiffutils_a-gettimeofday.obj: gettimeofday.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-gettimeofday.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-gettimeofday.Tpo -c -o libdiffutils_a-gettimeofday.obj `if test -f 'gettimeofday.c'; then $(CYGPATH_W) 'gettimeofday.c'; else $(CYGPATH_W) '$(srcdir)/gettimeofday.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-gettimeofday.Tpo $(DEPDIR)/libdiffutils_a-gettimeofday.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gettimeofday.c' object='libdiffutils_a-gettimeofday.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-gettimeofday.obj `if test -f 'gettimeofday.c'; then $(CYGPATH_W) 'gettimeofday.c'; else $(CYGPATH_W) '$(srcdir)/gettimeofday.c'; fi`
+
+malloc/libdiffutils_a-dynarray_at_failure.o: malloc/dynarray_at_failure.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT malloc/libdiffutils_a-dynarray_at_failure.o -MD -MP -MF malloc/$(DEPDIR)/libdiffutils_a-dynarray_at_failure.Tpo -c -o malloc/libdiffutils_a-dynarray_at_failure.o `test -f 'malloc/dynarray_at_failure.c' || echo '$(srcdir)/'`malloc/dynarray_at_failure.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) malloc/$(DEPDIR)/libdiffutils_a-dynarray_at_failure.Tpo malloc/$(DEPDIR)/libdiffutils_a-dynarray_at_failure.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='malloc/dynarray_at_failure.c' object='malloc/libdiffutils_a-dynarray_at_failure.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o malloc/libdiffutils_a-dynarray_at_failure.o `test -f 'malloc/dynarray_at_failure.c' || echo '$(srcdir)/'`malloc/dynarray_at_failure.c
+
+malloc/libdiffutils_a-dynarray_at_failure.obj: malloc/dynarray_at_failure.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT malloc/libdiffutils_a-dynarray_at_failure.obj -MD -MP -MF malloc/$(DEPDIR)/libdiffutils_a-dynarray_at_failure.Tpo -c -o malloc/libdiffutils_a-dynarray_at_failure.obj `if test -f 'malloc/dynarray_at_failure.c'; then $(CYGPATH_W) 'malloc/dynarray_at_failure.c'; else $(CYGPATH_W) '$(srcdir)/malloc/dynarray_at_failure.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) malloc/$(DEPDIR)/libdiffutils_a-dynarray_at_failure.Tpo malloc/$(DEPDIR)/libdiffutils_a-dynarray_at_failure.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='malloc/dynarray_at_failure.c' object='malloc/libdiffutils_a-dynarray_at_failure.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o malloc/libdiffutils_a-dynarray_at_failure.obj `if test -f 'malloc/dynarray_at_failure.c'; then $(CYGPATH_W) 'malloc/dynarray_at_failure.c'; else $(CYGPATH_W) '$(srcdir)/malloc/dynarray_at_failure.c'; fi`
+
+malloc/libdiffutils_a-dynarray_emplace_enlarge.o: malloc/dynarray_emplace_enlarge.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT malloc/libdiffutils_a-dynarray_emplace_enlarge.o -MD -MP -MF malloc/$(DEPDIR)/libdiffutils_a-dynarray_emplace_enlarge.Tpo -c -o malloc/libdiffutils_a-dynarray_emplace_enlarge.o `test -f 'malloc/dynarray_emplace_enlarge.c' || echo '$(srcdir)/'`malloc/dynarray_emplace_enlarge.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) malloc/$(DEPDIR)/libdiffutils_a-dynarray_emplace_enlarge.Tpo malloc/$(DEPDIR)/libdiffutils_a-dynarray_emplace_enlarge.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='malloc/dynarray_emplace_enlarge.c' object='malloc/libdiffutils_a-dynarray_emplace_enlarge.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o malloc/libdiffutils_a-dynarray_emplace_enlarge.o `test -f 'malloc/dynarray_emplace_enlarge.c' || echo '$(srcdir)/'`malloc/dynarray_emplace_enlarge.c
+
+malloc/libdiffutils_a-dynarray_emplace_enlarge.obj: malloc/dynarray_emplace_enlarge.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT malloc/libdiffutils_a-dynarray_emplace_enlarge.obj -MD -MP -MF malloc/$(DEPDIR)/libdiffutils_a-dynarray_emplace_enlarge.Tpo -c -o malloc/libdiffutils_a-dynarray_emplace_enlarge.obj `if test -f 'malloc/dynarray_emplace_enlarge.c'; then $(CYGPATH_W) 'malloc/dynarray_emplace_enlarge.c'; else $(CYGPATH_W) '$(srcdir)/malloc/dynarray_emplace_enlarge.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) malloc/$(DEPDIR)/libdiffutils_a-dynarray_emplace_enlarge.Tpo malloc/$(DEPDIR)/libdiffutils_a-dynarray_emplace_enlarge.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='malloc/dynarray_emplace_enlarge.c' object='malloc/libdiffutils_a-dynarray_emplace_enlarge.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o malloc/libdiffutils_a-dynarray_emplace_enlarge.obj `if test -f 'malloc/dynarray_emplace_enlarge.c'; then $(CYGPATH_W) 'malloc/dynarray_emplace_enlarge.c'; else $(CYGPATH_W) '$(srcdir)/malloc/dynarray_emplace_enlarge.c'; fi`
+
+malloc/libdiffutils_a-dynarray_finalize.o: malloc/dynarray_finalize.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT malloc/libdiffutils_a-dynarray_finalize.o -MD -MP -MF malloc/$(DEPDIR)/libdiffutils_a-dynarray_finalize.Tpo -c -o malloc/libdiffutils_a-dynarray_finalize.o `test -f 'malloc/dynarray_finalize.c' || echo '$(srcdir)/'`malloc/dynarray_finalize.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) malloc/$(DEPDIR)/libdiffutils_a-dynarray_finalize.Tpo malloc/$(DEPDIR)/libdiffutils_a-dynarray_finalize.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='malloc/dynarray_finalize.c' object='malloc/libdiffutils_a-dynarray_finalize.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o malloc/libdiffutils_a-dynarray_finalize.o `test -f 'malloc/dynarray_finalize.c' || echo '$(srcdir)/'`malloc/dynarray_finalize.c
+
+malloc/libdiffutils_a-dynarray_finalize.obj: malloc/dynarray_finalize.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT malloc/libdiffutils_a-dynarray_finalize.obj -MD -MP -MF malloc/$(DEPDIR)/libdiffutils_a-dynarray_finalize.Tpo -c -o malloc/libdiffutils_a-dynarray_finalize.obj `if test -f 'malloc/dynarray_finalize.c'; then $(CYGPATH_W) 'malloc/dynarray_finalize.c'; else $(CYGPATH_W) '$(srcdir)/malloc/dynarray_finalize.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) malloc/$(DEPDIR)/libdiffutils_a-dynarray_finalize.Tpo malloc/$(DEPDIR)/libdiffutils_a-dynarray_finalize.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='malloc/dynarray_finalize.c' object='malloc/libdiffutils_a-dynarray_finalize.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o malloc/libdiffutils_a-dynarray_finalize.obj `if test -f 'malloc/dynarray_finalize.c'; then $(CYGPATH_W) 'malloc/dynarray_finalize.c'; else $(CYGPATH_W) '$(srcdir)/malloc/dynarray_finalize.c'; fi`
+
+malloc/libdiffutils_a-dynarray_resize.o: malloc/dynarray_resize.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT malloc/libdiffutils_a-dynarray_resize.o -MD -MP -MF malloc/$(DEPDIR)/libdiffutils_a-dynarray_resize.Tpo -c -o malloc/libdiffutils_a-dynarray_resize.o `test -f 'malloc/dynarray_resize.c' || echo '$(srcdir)/'`malloc/dynarray_resize.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) malloc/$(DEPDIR)/libdiffutils_a-dynarray_resize.Tpo malloc/$(DEPDIR)/libdiffutils_a-dynarray_resize.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='malloc/dynarray_resize.c' object='malloc/libdiffutils_a-dynarray_resize.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o malloc/libdiffutils_a-dynarray_resize.o `test -f 'malloc/dynarray_resize.c' || echo '$(srcdir)/'`malloc/dynarray_resize.c
+
+malloc/libdiffutils_a-dynarray_resize.obj: malloc/dynarray_resize.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT malloc/libdiffutils_a-dynarray_resize.obj -MD -MP -MF malloc/$(DEPDIR)/libdiffutils_a-dynarray_resize.Tpo -c -o malloc/libdiffutils_a-dynarray_resize.obj `if test -f 'malloc/dynarray_resize.c'; then $(CYGPATH_W) 'malloc/dynarray_resize.c'; else $(CYGPATH_W) '$(srcdir)/malloc/dynarray_resize.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) malloc/$(DEPDIR)/libdiffutils_a-dynarray_resize.Tpo malloc/$(DEPDIR)/libdiffutils_a-dynarray_resize.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='malloc/dynarray_resize.c' object='malloc/libdiffutils_a-dynarray_resize.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o malloc/libdiffutils_a-dynarray_resize.obj `if test -f 'malloc/dynarray_resize.c'; then $(CYGPATH_W) 'malloc/dynarray_resize.c'; else $(CYGPATH_W) '$(srcdir)/malloc/dynarray_resize.c'; fi`
+
+malloc/libdiffutils_a-dynarray_resize_clear.o: malloc/dynarray_resize_clear.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT malloc/libdiffutils_a-dynarray_resize_clear.o -MD -MP -MF malloc/$(DEPDIR)/libdiffutils_a-dynarray_resize_clear.Tpo -c -o malloc/libdiffutils_a-dynarray_resize_clear.o `test -f 'malloc/dynarray_resize_clear.c' || echo '$(srcdir)/'`malloc/dynarray_resize_clear.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) malloc/$(DEPDIR)/libdiffutils_a-dynarray_resize_clear.Tpo malloc/$(DEPDIR)/libdiffutils_a-dynarray_resize_clear.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='malloc/dynarray_resize_clear.c' object='malloc/libdiffutils_a-dynarray_resize_clear.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o malloc/libdiffutils_a-dynarray_resize_clear.o `test -f 'malloc/dynarray_resize_clear.c' || echo '$(srcdir)/'`malloc/dynarray_resize_clear.c
+
+malloc/libdiffutils_a-dynarray_resize_clear.obj: malloc/dynarray_resize_clear.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT malloc/libdiffutils_a-dynarray_resize_clear.obj -MD -MP -MF malloc/$(DEPDIR)/libdiffutils_a-dynarray_resize_clear.Tpo -c -o malloc/libdiffutils_a-dynarray_resize_clear.obj `if test -f 'malloc/dynarray_resize_clear.c'; then $(CYGPATH_W) 'malloc/dynarray_resize_clear.c'; else $(CYGPATH_W) '$(srcdir)/malloc/dynarray_resize_clear.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) malloc/$(DEPDIR)/libdiffutils_a-dynarray_resize_clear.Tpo malloc/$(DEPDIR)/libdiffutils_a-dynarray_resize_clear.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='malloc/dynarray_resize_clear.c' object='malloc/libdiffutils_a-dynarray_resize_clear.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o malloc/libdiffutils_a-dynarray_resize_clear.obj `if test -f 'malloc/dynarray_resize_clear.c'; then $(CYGPATH_W) 'malloc/dynarray_resize_clear.c'; else $(CYGPATH_W) '$(srcdir)/malloc/dynarray_resize_clear.c'; fi`
+
+libdiffutils_a-hard-locale.o: hard-locale.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-hard-locale.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-hard-locale.Tpo -c -o libdiffutils_a-hard-locale.o `test -f 'hard-locale.c' || echo '$(srcdir)/'`hard-locale.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-hard-locale.Tpo $(DEPDIR)/libdiffutils_a-hard-locale.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='hard-locale.c' object='libdiffutils_a-hard-locale.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-hard-locale.o `test -f 'hard-locale.c' || echo '$(srcdir)/'`hard-locale.c
+
+libdiffutils_a-hard-locale.obj: hard-locale.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-hard-locale.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-hard-locale.Tpo -c -o libdiffutils_a-hard-locale.obj `if test -f 'hard-locale.c'; then $(CYGPATH_W) 'hard-locale.c'; else $(CYGPATH_W) '$(srcdir)/hard-locale.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-hard-locale.Tpo $(DEPDIR)/libdiffutils_a-hard-locale.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='hard-locale.c' object='libdiffutils_a-hard-locale.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-hard-locale.obj `if test -f 'hard-locale.c'; then $(CYGPATH_W) 'hard-locale.c'; else $(CYGPATH_W) '$(srcdir)/hard-locale.c'; fi`
+
+libdiffutils_a-hash.o: hash.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-hash.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-hash.Tpo -c -o libdiffutils_a-hash.o `test -f 'hash.c' || echo '$(srcdir)/'`hash.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-hash.Tpo $(DEPDIR)/libdiffutils_a-hash.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='hash.c' object='libdiffutils_a-hash.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-hash.o `test -f 'hash.c' || echo '$(srcdir)/'`hash.c
+
+libdiffutils_a-hash.obj: hash.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-hash.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-hash.Tpo -c -o libdiffutils_a-hash.obj `if test -f 'hash.c'; then $(CYGPATH_W) 'hash.c'; else $(CYGPATH_W) '$(srcdir)/hash.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-hash.Tpo $(DEPDIR)/libdiffutils_a-hash.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='hash.c' object='libdiffutils_a-hash.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-hash.obj `if test -f 'hash.c'; then $(CYGPATH_W) 'hash.c'; else $(CYGPATH_W) '$(srcdir)/hash.c'; fi`
+
+libdiffutils_a-ialloc.o: ialloc.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-ialloc.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-ialloc.Tpo -c -o libdiffutils_a-ialloc.o `test -f 'ialloc.c' || echo '$(srcdir)/'`ialloc.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-ialloc.Tpo $(DEPDIR)/libdiffutils_a-ialloc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='ialloc.c' object='libdiffutils_a-ialloc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-ialloc.o `test -f 'ialloc.c' || echo '$(srcdir)/'`ialloc.c
+
+libdiffutils_a-ialloc.obj: ialloc.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-ialloc.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-ialloc.Tpo -c -o libdiffutils_a-ialloc.obj `if test -f 'ialloc.c'; then $(CYGPATH_W) 'ialloc.c'; else $(CYGPATH_W) '$(srcdir)/ialloc.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-ialloc.Tpo $(DEPDIR)/libdiffutils_a-ialloc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='ialloc.c' object='libdiffutils_a-ialloc.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-ialloc.obj `if test -f 'ialloc.c'; then $(CYGPATH_W) 'ialloc.c'; else $(CYGPATH_W) '$(srcdir)/ialloc.c'; fi`
+
+libdiffutils_a-iconv_open.o: iconv_open.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-iconv_open.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-iconv_open.Tpo -c -o libdiffutils_a-iconv_open.o `test -f 'iconv_open.c' || echo '$(srcdir)/'`iconv_open.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-iconv_open.Tpo $(DEPDIR)/libdiffutils_a-iconv_open.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='iconv_open.c' object='libdiffutils_a-iconv_open.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-iconv_open.o `test -f 'iconv_open.c' || echo '$(srcdir)/'`iconv_open.c
+
+libdiffutils_a-iconv_open.obj: iconv_open.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-iconv_open.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-iconv_open.Tpo -c -o libdiffutils_a-iconv_open.obj `if test -f 'iconv_open.c'; then $(CYGPATH_W) 'iconv_open.c'; else $(CYGPATH_W) '$(srcdir)/iconv_open.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-iconv_open.Tpo $(DEPDIR)/libdiffutils_a-iconv_open.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='iconv_open.c' object='libdiffutils_a-iconv_open.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-iconv_open.obj `if test -f 'iconv_open.c'; then $(CYGPATH_W) 'iconv_open.c'; else $(CYGPATH_W) '$(srcdir)/iconv_open.c'; fi`
+
+libdiffutils_a-iconv.o: iconv.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-iconv.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-iconv.Tpo -c -o libdiffutils_a-iconv.o `test -f 'iconv.c' || echo '$(srcdir)/'`iconv.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-iconv.Tpo $(DEPDIR)/libdiffutils_a-iconv.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='iconv.c' object='libdiffutils_a-iconv.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-iconv.o `test -f 'iconv.c' || echo '$(srcdir)/'`iconv.c
+
+libdiffutils_a-iconv.obj: iconv.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-iconv.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-iconv.Tpo -c -o libdiffutils_a-iconv.obj `if test -f 'iconv.c'; then $(CYGPATH_W) 'iconv.c'; else $(CYGPATH_W) '$(srcdir)/iconv.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-iconv.Tpo $(DEPDIR)/libdiffutils_a-iconv.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='iconv.c' object='libdiffutils_a-iconv.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-iconv.obj `if test -f 'iconv.c'; then $(CYGPATH_W) 'iconv.c'; else $(CYGPATH_W) '$(srcdir)/iconv.c'; fi`
+
+libdiffutils_a-iconv_close.o: iconv_close.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-iconv_close.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-iconv_close.Tpo -c -o libdiffutils_a-iconv_close.o `test -f 'iconv_close.c' || echo '$(srcdir)/'`iconv_close.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-iconv_close.Tpo $(DEPDIR)/libdiffutils_a-iconv_close.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='iconv_close.c' object='libdiffutils_a-iconv_close.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-iconv_close.o `test -f 'iconv_close.c' || echo '$(srcdir)/'`iconv_close.c
+
+libdiffutils_a-iconv_close.obj: iconv_close.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-iconv_close.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-iconv_close.Tpo -c -o libdiffutils_a-iconv_close.obj `if test -f 'iconv_close.c'; then $(CYGPATH_W) 'iconv_close.c'; else $(CYGPATH_W) '$(srcdir)/iconv_close.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-iconv_close.Tpo $(DEPDIR)/libdiffutils_a-iconv_close.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='iconv_close.c' object='libdiffutils_a-iconv_close.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-iconv_close.obj `if test -f 'iconv_close.c'; then $(CYGPATH_W) 'iconv_close.c'; else $(CYGPATH_W) '$(srcdir)/iconv_close.c'; fi`
+
+libdiffutils_a-imaxtostr.o: imaxtostr.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-imaxtostr.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-imaxtostr.Tpo -c -o libdiffutils_a-imaxtostr.o `test -f 'imaxtostr.c' || echo '$(srcdir)/'`imaxtostr.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-imaxtostr.Tpo $(DEPDIR)/libdiffutils_a-imaxtostr.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='imaxtostr.c' object='libdiffutils_a-imaxtostr.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-imaxtostr.o `test -f 'imaxtostr.c' || echo '$(srcdir)/'`imaxtostr.c
+
+libdiffutils_a-imaxtostr.obj: imaxtostr.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-imaxtostr.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-imaxtostr.Tpo -c -o libdiffutils_a-imaxtostr.obj `if test -f 'imaxtostr.c'; then $(CYGPATH_W) 'imaxtostr.c'; else $(CYGPATH_W) '$(srcdir)/imaxtostr.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-imaxtostr.Tpo $(DEPDIR)/libdiffutils_a-imaxtostr.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='imaxtostr.c' object='libdiffutils_a-imaxtostr.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-imaxtostr.obj `if test -f 'imaxtostr.c'; then $(CYGPATH_W) 'imaxtostr.c'; else $(CYGPATH_W) '$(srcdir)/imaxtostr.c'; fi`
+
+libdiffutils_a-inttostr.o: inttostr.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-inttostr.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-inttostr.Tpo -c -o libdiffutils_a-inttostr.o `test -f 'inttostr.c' || echo '$(srcdir)/'`inttostr.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-inttostr.Tpo $(DEPDIR)/libdiffutils_a-inttostr.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='inttostr.c' object='libdiffutils_a-inttostr.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-inttostr.o `test -f 'inttostr.c' || echo '$(srcdir)/'`inttostr.c
+
+libdiffutils_a-inttostr.obj: inttostr.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-inttostr.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-inttostr.Tpo -c -o libdiffutils_a-inttostr.obj `if test -f 'inttostr.c'; then $(CYGPATH_W) 'inttostr.c'; else $(CYGPATH_W) '$(srcdir)/inttostr.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-inttostr.Tpo $(DEPDIR)/libdiffutils_a-inttostr.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='inttostr.c' object='libdiffutils_a-inttostr.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-inttostr.obj `if test -f 'inttostr.c'; then $(CYGPATH_W) 'inttostr.c'; else $(CYGPATH_W) '$(srcdir)/inttostr.c'; fi`
+
+libdiffutils_a-offtostr.o: offtostr.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-offtostr.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-offtostr.Tpo -c -o libdiffutils_a-offtostr.o `test -f 'offtostr.c' || echo '$(srcdir)/'`offtostr.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-offtostr.Tpo $(DEPDIR)/libdiffutils_a-offtostr.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='offtostr.c' object='libdiffutils_a-offtostr.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-offtostr.o `test -f 'offtostr.c' || echo '$(srcdir)/'`offtostr.c
+
+libdiffutils_a-offtostr.obj: offtostr.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-offtostr.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-offtostr.Tpo -c -o libdiffutils_a-offtostr.obj `if test -f 'offtostr.c'; then $(CYGPATH_W) 'offtostr.c'; else $(CYGPATH_W) '$(srcdir)/offtostr.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-offtostr.Tpo $(DEPDIR)/libdiffutils_a-offtostr.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='offtostr.c' object='libdiffutils_a-offtostr.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-offtostr.obj `if test -f 'offtostr.c'; then $(CYGPATH_W) 'offtostr.c'; else $(CYGPATH_W) '$(srcdir)/offtostr.c'; fi`
+
+libdiffutils_a-uinttostr.o: uinttostr.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-uinttostr.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-uinttostr.Tpo -c -o libdiffutils_a-uinttostr.o `test -f 'uinttostr.c' || echo '$(srcdir)/'`uinttostr.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-uinttostr.Tpo $(DEPDIR)/libdiffutils_a-uinttostr.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='uinttostr.c' object='libdiffutils_a-uinttostr.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-uinttostr.o `test -f 'uinttostr.c' || echo '$(srcdir)/'`uinttostr.c
+
+libdiffutils_a-uinttostr.obj: uinttostr.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-uinttostr.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-uinttostr.Tpo -c -o libdiffutils_a-uinttostr.obj `if test -f 'uinttostr.c'; then $(CYGPATH_W) 'uinttostr.c'; else $(CYGPATH_W) '$(srcdir)/uinttostr.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-uinttostr.Tpo $(DEPDIR)/libdiffutils_a-uinttostr.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='uinttostr.c' object='libdiffutils_a-uinttostr.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-uinttostr.obj `if test -f 'uinttostr.c'; then $(CYGPATH_W) 'uinttostr.c'; else $(CYGPATH_W) '$(srcdir)/uinttostr.c'; fi`
+
+libdiffutils_a-umaxtostr.o: umaxtostr.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-umaxtostr.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-umaxtostr.Tpo -c -o libdiffutils_a-umaxtostr.o `test -f 'umaxtostr.c' || echo '$(srcdir)/'`umaxtostr.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-umaxtostr.Tpo $(DEPDIR)/libdiffutils_a-umaxtostr.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='umaxtostr.c' object='libdiffutils_a-umaxtostr.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-umaxtostr.o `test -f 'umaxtostr.c' || echo '$(srcdir)/'`umaxtostr.c
+
+libdiffutils_a-umaxtostr.obj: umaxtostr.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-umaxtostr.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-umaxtostr.Tpo -c -o libdiffutils_a-umaxtostr.obj `if test -f 'umaxtostr.c'; then $(CYGPATH_W) 'umaxtostr.c'; else $(CYGPATH_W) '$(srcdir)/umaxtostr.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-umaxtostr.Tpo $(DEPDIR)/libdiffutils_a-umaxtostr.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='umaxtostr.c' object='libdiffutils_a-umaxtostr.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-umaxtostr.obj `if test -f 'umaxtostr.c'; then $(CYGPATH_W) 'umaxtostr.c'; else $(CYGPATH_W) '$(srcdir)/umaxtostr.c'; fi`
+
+libdiffutils_a-isblank.o: isblank.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-isblank.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-isblank.Tpo -c -o libdiffutils_a-isblank.o `test -f 'isblank.c' || echo '$(srcdir)/'`isblank.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-isblank.Tpo $(DEPDIR)/libdiffutils_a-isblank.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='isblank.c' object='libdiffutils_a-isblank.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-isblank.o `test -f 'isblank.c' || echo '$(srcdir)/'`isblank.c
+
+libdiffutils_a-isblank.obj: isblank.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-isblank.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-isblank.Tpo -c -o libdiffutils_a-isblank.obj `if test -f 'isblank.c'; then $(CYGPATH_W) 'isblank.c'; else $(CYGPATH_W) '$(srcdir)/isblank.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-isblank.Tpo $(DEPDIR)/libdiffutils_a-isblank.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='isblank.c' object='libdiffutils_a-isblank.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-isblank.obj `if test -f 'isblank.c'; then $(CYGPATH_W) 'isblank.c'; else $(CYGPATH_W) '$(srcdir)/isblank.c'; fi`
+
+libdiffutils_a-iswblank.o: iswblank.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-iswblank.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-iswblank.Tpo -c -o libdiffutils_a-iswblank.o `test -f 'iswblank.c' || echo '$(srcdir)/'`iswblank.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-iswblank.Tpo $(DEPDIR)/libdiffutils_a-iswblank.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='iswblank.c' object='libdiffutils_a-iswblank.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-iswblank.o `test -f 'iswblank.c' || echo '$(srcdir)/'`iswblank.c
+
+libdiffutils_a-iswblank.obj: iswblank.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-iswblank.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-iswblank.Tpo -c -o libdiffutils_a-iswblank.obj `if test -f 'iswblank.c'; then $(CYGPATH_W) 'iswblank.c'; else $(CYGPATH_W) '$(srcdir)/iswblank.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-iswblank.Tpo $(DEPDIR)/libdiffutils_a-iswblank.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='iswblank.c' object='libdiffutils_a-iswblank.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-iswblank.obj `if test -f 'iswblank.c'; then $(CYGPATH_W) 'iswblank.c'; else $(CYGPATH_W) '$(srcdir)/iswblank.c'; fi`
+
+libdiffutils_a-iswdigit.o: iswdigit.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-iswdigit.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-iswdigit.Tpo -c -o libdiffutils_a-iswdigit.o `test -f 'iswdigit.c' || echo '$(srcdir)/'`iswdigit.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-iswdigit.Tpo $(DEPDIR)/libdiffutils_a-iswdigit.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='iswdigit.c' object='libdiffutils_a-iswdigit.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-iswdigit.o `test -f 'iswdigit.c' || echo '$(srcdir)/'`iswdigit.c
+
+libdiffutils_a-iswdigit.obj: iswdigit.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-iswdigit.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-iswdigit.Tpo -c -o libdiffutils_a-iswdigit.obj `if test -f 'iswdigit.c'; then $(CYGPATH_W) 'iswdigit.c'; else $(CYGPATH_W) '$(srcdir)/iswdigit.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-iswdigit.Tpo $(DEPDIR)/libdiffutils_a-iswdigit.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='iswdigit.c' object='libdiffutils_a-iswdigit.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-iswdigit.obj `if test -f 'iswdigit.c'; then $(CYGPATH_W) 'iswdigit.c'; else $(CYGPATH_W) '$(srcdir)/iswdigit.c'; fi`
+
+libdiffutils_a-iswxdigit.o: iswxdigit.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-iswxdigit.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-iswxdigit.Tpo -c -o libdiffutils_a-iswxdigit.o `test -f 'iswxdigit.c' || echo '$(srcdir)/'`iswxdigit.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-iswxdigit.Tpo $(DEPDIR)/libdiffutils_a-iswxdigit.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='iswxdigit.c' object='libdiffutils_a-iswxdigit.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-iswxdigit.o `test -f 'iswxdigit.c' || echo '$(srcdir)/'`iswxdigit.c
+
+libdiffutils_a-iswxdigit.obj: iswxdigit.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-iswxdigit.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-iswxdigit.Tpo -c -o libdiffutils_a-iswxdigit.obj `if test -f 'iswxdigit.c'; then $(CYGPATH_W) 'iswxdigit.c'; else $(CYGPATH_W) '$(srcdir)/iswxdigit.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-iswxdigit.Tpo $(DEPDIR)/libdiffutils_a-iswxdigit.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='iswxdigit.c' object='libdiffutils_a-iswxdigit.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-iswxdigit.obj `if test -f 'iswxdigit.c'; then $(CYGPATH_W) 'iswxdigit.c'; else $(CYGPATH_W) '$(srcdir)/iswxdigit.c'; fi`
+
+libdiffutils_a-localcharset.o: localcharset.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-localcharset.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-localcharset.Tpo -c -o libdiffutils_a-localcharset.o `test -f 'localcharset.c' || echo '$(srcdir)/'`localcharset.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-localcharset.Tpo $(DEPDIR)/libdiffutils_a-localcharset.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='localcharset.c' object='libdiffutils_a-localcharset.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-localcharset.o `test -f 'localcharset.c' || echo '$(srcdir)/'`localcharset.c
+
+libdiffutils_a-localcharset.obj: localcharset.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-localcharset.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-localcharset.Tpo -c -o libdiffutils_a-localcharset.obj `if test -f 'localcharset.c'; then $(CYGPATH_W) 'localcharset.c'; else $(CYGPATH_W) '$(srcdir)/localcharset.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-localcharset.Tpo $(DEPDIR)/libdiffutils_a-localcharset.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='localcharset.c' object='libdiffutils_a-localcharset.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-localcharset.obj `if test -f 'localcharset.c'; then $(CYGPATH_W) 'localcharset.c'; else $(CYGPATH_W) '$(srcdir)/localcharset.c'; fi`
+
+libdiffutils_a-localeconv.o: localeconv.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-localeconv.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-localeconv.Tpo -c -o libdiffutils_a-localeconv.o `test -f 'localeconv.c' || echo '$(srcdir)/'`localeconv.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-localeconv.Tpo $(DEPDIR)/libdiffutils_a-localeconv.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='localeconv.c' object='libdiffutils_a-localeconv.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-localeconv.o `test -f 'localeconv.c' || echo '$(srcdir)/'`localeconv.c
+
+libdiffutils_a-localeconv.obj: localeconv.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-localeconv.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-localeconv.Tpo -c -o libdiffutils_a-localeconv.obj `if test -f 'localeconv.c'; then $(CYGPATH_W) 'localeconv.c'; else $(CYGPATH_W) '$(srcdir)/localeconv.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-localeconv.Tpo $(DEPDIR)/libdiffutils_a-localeconv.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='localeconv.c' object='libdiffutils_a-localeconv.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-localeconv.obj `if test -f 'localeconv.c'; then $(CYGPATH_W) 'localeconv.c'; else $(CYGPATH_W) '$(srcdir)/localeconv.c'; fi`
+
+glthread/libdiffutils_a-lock.o: glthread/lock.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT glthread/libdiffutils_a-lock.o -MD -MP -MF glthread/$(DEPDIR)/libdiffutils_a-lock.Tpo -c -o glthread/libdiffutils_a-lock.o `test -f 'glthread/lock.c' || echo '$(srcdir)/'`glthread/lock.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) glthread/$(DEPDIR)/libdiffutils_a-lock.Tpo glthread/$(DEPDIR)/libdiffutils_a-lock.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='glthread/lock.c' object='glthread/libdiffutils_a-lock.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o glthread/libdiffutils_a-lock.o `test -f 'glthread/lock.c' || echo '$(srcdir)/'`glthread/lock.c
+
+glthread/libdiffutils_a-lock.obj: glthread/lock.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT glthread/libdiffutils_a-lock.obj -MD -MP -MF glthread/$(DEPDIR)/libdiffutils_a-lock.Tpo -c -o glthread/libdiffutils_a-lock.obj `if test -f 'glthread/lock.c'; then $(CYGPATH_W) 'glthread/lock.c'; else $(CYGPATH_W) '$(srcdir)/glthread/lock.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) glthread/$(DEPDIR)/libdiffutils_a-lock.Tpo glthread/$(DEPDIR)/libdiffutils_a-lock.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='glthread/lock.c' object='glthread/libdiffutils_a-lock.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o glthread/libdiffutils_a-lock.obj `if test -f 'glthread/lock.c'; then $(CYGPATH_W) 'glthread/lock.c'; else $(CYGPATH_W) '$(srcdir)/glthread/lock.c'; fi`
+
+libdiffutils_a-lstat.o: lstat.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-lstat.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-lstat.Tpo -c -o libdiffutils_a-lstat.o `test -f 'lstat.c' || echo '$(srcdir)/'`lstat.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-lstat.Tpo $(DEPDIR)/libdiffutils_a-lstat.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='lstat.c' object='libdiffutils_a-lstat.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-lstat.o `test -f 'lstat.c' || echo '$(srcdir)/'`lstat.c
+
+libdiffutils_a-lstat.obj: lstat.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-lstat.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-lstat.Tpo -c -o libdiffutils_a-lstat.obj `if test -f 'lstat.c'; then $(CYGPATH_W) 'lstat.c'; else $(CYGPATH_W) '$(srcdir)/lstat.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-lstat.Tpo $(DEPDIR)/libdiffutils_a-lstat.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='lstat.c' object='libdiffutils_a-lstat.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-lstat.obj `if test -f 'lstat.c'; then $(CYGPATH_W) 'lstat.c'; else $(CYGPATH_W) '$(srcdir)/lstat.c'; fi`
+
+libdiffutils_a-malloca.o: malloca.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-malloca.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-malloca.Tpo -c -o libdiffutils_a-malloca.o `test -f 'malloca.c' || echo '$(srcdir)/'`malloca.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-malloca.Tpo $(DEPDIR)/libdiffutils_a-malloca.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='malloca.c' object='libdiffutils_a-malloca.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-malloca.o `test -f 'malloca.c' || echo '$(srcdir)/'`malloca.c
+
+libdiffutils_a-malloca.obj: malloca.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-malloca.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-malloca.Tpo -c -o libdiffutils_a-malloca.obj `if test -f 'malloca.c'; then $(CYGPATH_W) 'malloca.c'; else $(CYGPATH_W) '$(srcdir)/malloca.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-malloca.Tpo $(DEPDIR)/libdiffutils_a-malloca.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='malloca.c' object='libdiffutils_a-malloca.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-malloca.obj `if test -f 'malloca.c'; then $(CYGPATH_W) 'malloca.c'; else $(CYGPATH_W) '$(srcdir)/malloca.c'; fi`
+
+libdiffutils_a-mbchar.o: mbchar.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-mbchar.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-mbchar.Tpo -c -o libdiffutils_a-mbchar.o `test -f 'mbchar.c' || echo '$(srcdir)/'`mbchar.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-mbchar.Tpo $(DEPDIR)/libdiffutils_a-mbchar.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mbchar.c' object='libdiffutils_a-mbchar.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-mbchar.o `test -f 'mbchar.c' || echo '$(srcdir)/'`mbchar.c
+
+libdiffutils_a-mbchar.obj: mbchar.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-mbchar.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-mbchar.Tpo -c -o libdiffutils_a-mbchar.obj `if test -f 'mbchar.c'; then $(CYGPATH_W) 'mbchar.c'; else $(CYGPATH_W) '$(srcdir)/mbchar.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-mbchar.Tpo $(DEPDIR)/libdiffutils_a-mbchar.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mbchar.c' object='libdiffutils_a-mbchar.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-mbchar.obj `if test -f 'mbchar.c'; then $(CYGPATH_W) 'mbchar.c'; else $(CYGPATH_W) '$(srcdir)/mbchar.c'; fi`
+
+libdiffutils_a-mbiter.o: mbiter.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-mbiter.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-mbiter.Tpo -c -o libdiffutils_a-mbiter.o `test -f 'mbiter.c' || echo '$(srcdir)/'`mbiter.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-mbiter.Tpo $(DEPDIR)/libdiffutils_a-mbiter.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mbiter.c' object='libdiffutils_a-mbiter.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-mbiter.o `test -f 'mbiter.c' || echo '$(srcdir)/'`mbiter.c
+
+libdiffutils_a-mbiter.obj: mbiter.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-mbiter.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-mbiter.Tpo -c -o libdiffutils_a-mbiter.obj `if test -f 'mbiter.c'; then $(CYGPATH_W) 'mbiter.c'; else $(CYGPATH_W) '$(srcdir)/mbiter.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-mbiter.Tpo $(DEPDIR)/libdiffutils_a-mbiter.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mbiter.c' object='libdiffutils_a-mbiter.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-mbiter.obj `if test -f 'mbiter.c'; then $(CYGPATH_W) 'mbiter.c'; else $(CYGPATH_W) '$(srcdir)/mbiter.c'; fi`
+
+libdiffutils_a-mbrtowc.o: mbrtowc.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-mbrtowc.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-mbrtowc.Tpo -c -o libdiffutils_a-mbrtowc.o `test -f 'mbrtowc.c' || echo '$(srcdir)/'`mbrtowc.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-mbrtowc.Tpo $(DEPDIR)/libdiffutils_a-mbrtowc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mbrtowc.c' object='libdiffutils_a-mbrtowc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-mbrtowc.o `test -f 'mbrtowc.c' || echo '$(srcdir)/'`mbrtowc.c
+
+libdiffutils_a-mbrtowc.obj: mbrtowc.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-mbrtowc.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-mbrtowc.Tpo -c -o libdiffutils_a-mbrtowc.obj `if test -f 'mbrtowc.c'; then $(CYGPATH_W) 'mbrtowc.c'; else $(CYGPATH_W) '$(srcdir)/mbrtowc.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-mbrtowc.Tpo $(DEPDIR)/libdiffutils_a-mbrtowc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mbrtowc.c' object='libdiffutils_a-mbrtowc.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-mbrtowc.obj `if test -f 'mbrtowc.c'; then $(CYGPATH_W) 'mbrtowc.c'; else $(CYGPATH_W) '$(srcdir)/mbrtowc.c'; fi`
+
+libdiffutils_a-mbscasecmp.o: mbscasecmp.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-mbscasecmp.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-mbscasecmp.Tpo -c -o libdiffutils_a-mbscasecmp.o `test -f 'mbscasecmp.c' || echo '$(srcdir)/'`mbscasecmp.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-mbscasecmp.Tpo $(DEPDIR)/libdiffutils_a-mbscasecmp.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mbscasecmp.c' object='libdiffutils_a-mbscasecmp.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-mbscasecmp.o `test -f 'mbscasecmp.c' || echo '$(srcdir)/'`mbscasecmp.c
+
+libdiffutils_a-mbscasecmp.obj: mbscasecmp.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-mbscasecmp.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-mbscasecmp.Tpo -c -o libdiffutils_a-mbscasecmp.obj `if test -f 'mbscasecmp.c'; then $(CYGPATH_W) 'mbscasecmp.c'; else $(CYGPATH_W) '$(srcdir)/mbscasecmp.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-mbscasecmp.Tpo $(DEPDIR)/libdiffutils_a-mbscasecmp.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mbscasecmp.c' object='libdiffutils_a-mbscasecmp.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-mbscasecmp.obj `if test -f 'mbscasecmp.c'; then $(CYGPATH_W) 'mbscasecmp.c'; else $(CYGPATH_W) '$(srcdir)/mbscasecmp.c'; fi`
+
+libdiffutils_a-mbsinit.o: mbsinit.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-mbsinit.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-mbsinit.Tpo -c -o libdiffutils_a-mbsinit.o `test -f 'mbsinit.c' || echo '$(srcdir)/'`mbsinit.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-mbsinit.Tpo $(DEPDIR)/libdiffutils_a-mbsinit.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mbsinit.c' object='libdiffutils_a-mbsinit.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-mbsinit.o `test -f 'mbsinit.c' || echo '$(srcdir)/'`mbsinit.c
+
+libdiffutils_a-mbsinit.obj: mbsinit.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-mbsinit.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-mbsinit.Tpo -c -o libdiffutils_a-mbsinit.obj `if test -f 'mbsinit.c'; then $(CYGPATH_W) 'mbsinit.c'; else $(CYGPATH_W) '$(srcdir)/mbsinit.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-mbsinit.Tpo $(DEPDIR)/libdiffutils_a-mbsinit.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mbsinit.c' object='libdiffutils_a-mbsinit.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-mbsinit.obj `if test -f 'mbsinit.c'; then $(CYGPATH_W) 'mbsinit.c'; else $(CYGPATH_W) '$(srcdir)/mbsinit.c'; fi`
+
+libdiffutils_a-mbslen.o: mbslen.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-mbslen.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-mbslen.Tpo -c -o libdiffutils_a-mbslen.o `test -f 'mbslen.c' || echo '$(srcdir)/'`mbslen.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-mbslen.Tpo $(DEPDIR)/libdiffutils_a-mbslen.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mbslen.c' object='libdiffutils_a-mbslen.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-mbslen.o `test -f 'mbslen.c' || echo '$(srcdir)/'`mbslen.c
+
+libdiffutils_a-mbslen.obj: mbslen.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-mbslen.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-mbslen.Tpo -c -o libdiffutils_a-mbslen.obj `if test -f 'mbslen.c'; then $(CYGPATH_W) 'mbslen.c'; else $(CYGPATH_W) '$(srcdir)/mbslen.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-mbslen.Tpo $(DEPDIR)/libdiffutils_a-mbslen.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mbslen.c' object='libdiffutils_a-mbslen.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-mbslen.obj `if test -f 'mbslen.c'; then $(CYGPATH_W) 'mbslen.c'; else $(CYGPATH_W) '$(srcdir)/mbslen.c'; fi`
+
+libdiffutils_a-mbsrtowcs.o: mbsrtowcs.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-mbsrtowcs.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-mbsrtowcs.Tpo -c -o libdiffutils_a-mbsrtowcs.o `test -f 'mbsrtowcs.c' || echo '$(srcdir)/'`mbsrtowcs.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-mbsrtowcs.Tpo $(DEPDIR)/libdiffutils_a-mbsrtowcs.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mbsrtowcs.c' object='libdiffutils_a-mbsrtowcs.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-mbsrtowcs.o `test -f 'mbsrtowcs.c' || echo '$(srcdir)/'`mbsrtowcs.c
+
+libdiffutils_a-mbsrtowcs.obj: mbsrtowcs.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-mbsrtowcs.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-mbsrtowcs.Tpo -c -o libdiffutils_a-mbsrtowcs.obj `if test -f 'mbsrtowcs.c'; then $(CYGPATH_W) 'mbsrtowcs.c'; else $(CYGPATH_W) '$(srcdir)/mbsrtowcs.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-mbsrtowcs.Tpo $(DEPDIR)/libdiffutils_a-mbsrtowcs.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mbsrtowcs.c' object='libdiffutils_a-mbsrtowcs.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-mbsrtowcs.obj `if test -f 'mbsrtowcs.c'; then $(CYGPATH_W) 'mbsrtowcs.c'; else $(CYGPATH_W) '$(srcdir)/mbsrtowcs.c'; fi`
+
+libdiffutils_a-mbsstr.o: mbsstr.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-mbsstr.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-mbsstr.Tpo -c -o libdiffutils_a-mbsstr.o `test -f 'mbsstr.c' || echo '$(srcdir)/'`mbsstr.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-mbsstr.Tpo $(DEPDIR)/libdiffutils_a-mbsstr.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mbsstr.c' object='libdiffutils_a-mbsstr.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-mbsstr.o `test -f 'mbsstr.c' || echo '$(srcdir)/'`mbsstr.c
+
+libdiffutils_a-mbsstr.obj: mbsstr.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-mbsstr.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-mbsstr.Tpo -c -o libdiffutils_a-mbsstr.obj `if test -f 'mbsstr.c'; then $(CYGPATH_W) 'mbsstr.c'; else $(CYGPATH_W) '$(srcdir)/mbsstr.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-mbsstr.Tpo $(DEPDIR)/libdiffutils_a-mbsstr.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mbsstr.c' object='libdiffutils_a-mbsstr.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-mbsstr.obj `if test -f 'mbsstr.c'; then $(CYGPATH_W) 'mbsstr.c'; else $(CYGPATH_W) '$(srcdir)/mbsstr.c'; fi`
+
+libdiffutils_a-mbtowc.o: mbtowc.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-mbtowc.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-mbtowc.Tpo -c -o libdiffutils_a-mbtowc.o `test -f 'mbtowc.c' || echo '$(srcdir)/'`mbtowc.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-mbtowc.Tpo $(DEPDIR)/libdiffutils_a-mbtowc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mbtowc.c' object='libdiffutils_a-mbtowc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-mbtowc.o `test -f 'mbtowc.c' || echo '$(srcdir)/'`mbtowc.c
+
+libdiffutils_a-mbtowc.obj: mbtowc.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-mbtowc.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-mbtowc.Tpo -c -o libdiffutils_a-mbtowc.obj `if test -f 'mbtowc.c'; then $(CYGPATH_W) 'mbtowc.c'; else $(CYGPATH_W) '$(srcdir)/mbtowc.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-mbtowc.Tpo $(DEPDIR)/libdiffutils_a-mbtowc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mbtowc.c' object='libdiffutils_a-mbtowc.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-mbtowc.obj `if test -f 'mbtowc.c'; then $(CYGPATH_W) 'mbtowc.c'; else $(CYGPATH_W) '$(srcdir)/mbtowc.c'; fi`
+
+libdiffutils_a-mbuiter.o: mbuiter.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-mbuiter.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-mbuiter.Tpo -c -o libdiffutils_a-mbuiter.o `test -f 'mbuiter.c' || echo '$(srcdir)/'`mbuiter.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-mbuiter.Tpo $(DEPDIR)/libdiffutils_a-mbuiter.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mbuiter.c' object='libdiffutils_a-mbuiter.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-mbuiter.o `test -f 'mbuiter.c' || echo '$(srcdir)/'`mbuiter.c
+
+libdiffutils_a-mbuiter.obj: mbuiter.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-mbuiter.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-mbuiter.Tpo -c -o libdiffutils_a-mbuiter.obj `if test -f 'mbuiter.c'; then $(CYGPATH_W) 'mbuiter.c'; else $(CYGPATH_W) '$(srcdir)/mbuiter.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-mbuiter.Tpo $(DEPDIR)/libdiffutils_a-mbuiter.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mbuiter.c' object='libdiffutils_a-mbuiter.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-mbuiter.obj `if test -f 'mbuiter.c'; then $(CYGPATH_W) 'mbuiter.c'; else $(CYGPATH_W) '$(srcdir)/mbuiter.c'; fi`
+
+libdiffutils_a-memchr.o: memchr.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-memchr.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-memchr.Tpo -c -o libdiffutils_a-memchr.o `test -f 'memchr.c' || echo '$(srcdir)/'`memchr.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-memchr.Tpo $(DEPDIR)/libdiffutils_a-memchr.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='memchr.c' object='libdiffutils_a-memchr.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-memchr.o `test -f 'memchr.c' || echo '$(srcdir)/'`memchr.c
+
+libdiffutils_a-memchr.obj: memchr.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-memchr.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-memchr.Tpo -c -o libdiffutils_a-memchr.obj `if test -f 'memchr.c'; then $(CYGPATH_W) 'memchr.c'; else $(CYGPATH_W) '$(srcdir)/memchr.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-memchr.Tpo $(DEPDIR)/libdiffutils_a-memchr.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='memchr.c' object='libdiffutils_a-memchr.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-memchr.obj `if test -f 'memchr.c'; then $(CYGPATH_W) 'memchr.c'; else $(CYGPATH_W) '$(srcdir)/memchr.c'; fi`
+
+libdiffutils_a-mempcpy.o: mempcpy.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-mempcpy.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-mempcpy.Tpo -c -o libdiffutils_a-mempcpy.o `test -f 'mempcpy.c' || echo '$(srcdir)/'`mempcpy.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-mempcpy.Tpo $(DEPDIR)/libdiffutils_a-mempcpy.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mempcpy.c' object='libdiffutils_a-mempcpy.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-mempcpy.o `test -f 'mempcpy.c' || echo '$(srcdir)/'`mempcpy.c
+
+libdiffutils_a-mempcpy.obj: mempcpy.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-mempcpy.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-mempcpy.Tpo -c -o libdiffutils_a-mempcpy.obj `if test -f 'mempcpy.c'; then $(CYGPATH_W) 'mempcpy.c'; else $(CYGPATH_W) '$(srcdir)/mempcpy.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-mempcpy.Tpo $(DEPDIR)/libdiffutils_a-mempcpy.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mempcpy.c' object='libdiffutils_a-mempcpy.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-mempcpy.obj `if test -f 'mempcpy.c'; then $(CYGPATH_W) 'mempcpy.c'; else $(CYGPATH_W) '$(srcdir)/mempcpy.c'; fi`
+
+libdiffutils_a-mkdir.o: mkdir.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-mkdir.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-mkdir.Tpo -c -o libdiffutils_a-mkdir.o `test -f 'mkdir.c' || echo '$(srcdir)/'`mkdir.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-mkdir.Tpo $(DEPDIR)/libdiffutils_a-mkdir.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mkdir.c' object='libdiffutils_a-mkdir.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-mkdir.o `test -f 'mkdir.c' || echo '$(srcdir)/'`mkdir.c
+
+libdiffutils_a-mkdir.obj: mkdir.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-mkdir.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-mkdir.Tpo -c -o libdiffutils_a-mkdir.obj `if test -f 'mkdir.c'; then $(CYGPATH_W) 'mkdir.c'; else $(CYGPATH_W) '$(srcdir)/mkdir.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-mkdir.Tpo $(DEPDIR)/libdiffutils_a-mkdir.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mkdir.c' object='libdiffutils_a-mkdir.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-mkdir.obj `if test -f 'mkdir.c'; then $(CYGPATH_W) 'mkdir.c'; else $(CYGPATH_W) '$(srcdir)/mkdir.c'; fi`
+
+libdiffutils_a-mkstemp.o: mkstemp.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-mkstemp.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-mkstemp.Tpo -c -o libdiffutils_a-mkstemp.o `test -f 'mkstemp.c' || echo '$(srcdir)/'`mkstemp.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-mkstemp.Tpo $(DEPDIR)/libdiffutils_a-mkstemp.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mkstemp.c' object='libdiffutils_a-mkstemp.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-mkstemp.o `test -f 'mkstemp.c' || echo '$(srcdir)/'`mkstemp.c
+
+libdiffutils_a-mkstemp.obj: mkstemp.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-mkstemp.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-mkstemp.Tpo -c -o libdiffutils_a-mkstemp.obj `if test -f 'mkstemp.c'; then $(CYGPATH_W) 'mkstemp.c'; else $(CYGPATH_W) '$(srcdir)/mkstemp.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-mkstemp.Tpo $(DEPDIR)/libdiffutils_a-mkstemp.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mkstemp.c' object='libdiffutils_a-mkstemp.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-mkstemp.obj `if test -f 'mkstemp.c'; then $(CYGPATH_W) 'mkstemp.c'; else $(CYGPATH_W) '$(srcdir)/mkstemp.c'; fi`
+
+libdiffutils_a-msvc-inval.o: msvc-inval.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-msvc-inval.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-msvc-inval.Tpo -c -o libdiffutils_a-msvc-inval.o `test -f 'msvc-inval.c' || echo '$(srcdir)/'`msvc-inval.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-msvc-inval.Tpo $(DEPDIR)/libdiffutils_a-msvc-inval.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='msvc-inval.c' object='libdiffutils_a-msvc-inval.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-msvc-inval.o `test -f 'msvc-inval.c' || echo '$(srcdir)/'`msvc-inval.c
+
+libdiffutils_a-msvc-inval.obj: msvc-inval.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-msvc-inval.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-msvc-inval.Tpo -c -o libdiffutils_a-msvc-inval.obj `if test -f 'msvc-inval.c'; then $(CYGPATH_W) 'msvc-inval.c'; else $(CYGPATH_W) '$(srcdir)/msvc-inval.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-msvc-inval.Tpo $(DEPDIR)/libdiffutils_a-msvc-inval.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='msvc-inval.c' object='libdiffutils_a-msvc-inval.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-msvc-inval.obj `if test -f 'msvc-inval.c'; then $(CYGPATH_W) 'msvc-inval.c'; else $(CYGPATH_W) '$(srcdir)/msvc-inval.c'; fi`
+
+libdiffutils_a-msvc-nothrow.o: msvc-nothrow.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-msvc-nothrow.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-msvc-nothrow.Tpo -c -o libdiffutils_a-msvc-nothrow.o `test -f 'msvc-nothrow.c' || echo '$(srcdir)/'`msvc-nothrow.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-msvc-nothrow.Tpo $(DEPDIR)/libdiffutils_a-msvc-nothrow.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='msvc-nothrow.c' object='libdiffutils_a-msvc-nothrow.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-msvc-nothrow.o `test -f 'msvc-nothrow.c' || echo '$(srcdir)/'`msvc-nothrow.c
+
+libdiffutils_a-msvc-nothrow.obj: msvc-nothrow.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-msvc-nothrow.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-msvc-nothrow.Tpo -c -o libdiffutils_a-msvc-nothrow.obj `if test -f 'msvc-nothrow.c'; then $(CYGPATH_W) 'msvc-nothrow.c'; else $(CYGPATH_W) '$(srcdir)/msvc-nothrow.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-msvc-nothrow.Tpo $(DEPDIR)/libdiffutils_a-msvc-nothrow.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='msvc-nothrow.c' object='libdiffutils_a-msvc-nothrow.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-msvc-nothrow.obj `if test -f 'msvc-nothrow.c'; then $(CYGPATH_W) 'msvc-nothrow.c'; else $(CYGPATH_W) '$(srcdir)/msvc-nothrow.c'; fi`
+
+libdiffutils_a-nl_langinfo.o: nl_langinfo.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-nl_langinfo.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-nl_langinfo.Tpo -c -o libdiffutils_a-nl_langinfo.o `test -f 'nl_langinfo.c' || echo '$(srcdir)/'`nl_langinfo.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-nl_langinfo.Tpo $(DEPDIR)/libdiffutils_a-nl_langinfo.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='nl_langinfo.c' object='libdiffutils_a-nl_langinfo.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-nl_langinfo.o `test -f 'nl_langinfo.c' || echo '$(srcdir)/'`nl_langinfo.c
+
+libdiffutils_a-nl_langinfo.obj: nl_langinfo.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-nl_langinfo.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-nl_langinfo.Tpo -c -o libdiffutils_a-nl_langinfo.obj `if test -f 'nl_langinfo.c'; then $(CYGPATH_W) 'nl_langinfo.c'; else $(CYGPATH_W) '$(srcdir)/nl_langinfo.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-nl_langinfo.Tpo $(DEPDIR)/libdiffutils_a-nl_langinfo.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='nl_langinfo.c' object='libdiffutils_a-nl_langinfo.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-nl_langinfo.obj `if test -f 'nl_langinfo.c'; then $(CYGPATH_W) 'nl_langinfo.c'; else $(CYGPATH_W) '$(srcdir)/nl_langinfo.c'; fi`
+
+libdiffutils_a-nl_langinfo-lock.o: nl_langinfo-lock.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-nl_langinfo-lock.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-nl_langinfo-lock.Tpo -c -o libdiffutils_a-nl_langinfo-lock.o `test -f 'nl_langinfo-lock.c' || echo '$(srcdir)/'`nl_langinfo-lock.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-nl_langinfo-lock.Tpo $(DEPDIR)/libdiffutils_a-nl_langinfo-lock.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='nl_langinfo-lock.c' object='libdiffutils_a-nl_langinfo-lock.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-nl_langinfo-lock.o `test -f 'nl_langinfo-lock.c' || echo '$(srcdir)/'`nl_langinfo-lock.c
+
+libdiffutils_a-nl_langinfo-lock.obj: nl_langinfo-lock.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-nl_langinfo-lock.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-nl_langinfo-lock.Tpo -c -o libdiffutils_a-nl_langinfo-lock.obj `if test -f 'nl_langinfo-lock.c'; then $(CYGPATH_W) 'nl_langinfo-lock.c'; else $(CYGPATH_W) '$(srcdir)/nl_langinfo-lock.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-nl_langinfo-lock.Tpo $(DEPDIR)/libdiffutils_a-nl_langinfo-lock.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='nl_langinfo-lock.c' object='libdiffutils_a-nl_langinfo-lock.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-nl_langinfo-lock.obj `if test -f 'nl_langinfo-lock.c'; then $(CYGPATH_W) 'nl_langinfo-lock.c'; else $(CYGPATH_W) '$(srcdir)/nl_langinfo-lock.c'; fi`
+
+libdiffutils_a-nstrftime.o: nstrftime.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-nstrftime.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-nstrftime.Tpo -c -o libdiffutils_a-nstrftime.o `test -f 'nstrftime.c' || echo '$(srcdir)/'`nstrftime.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-nstrftime.Tpo $(DEPDIR)/libdiffutils_a-nstrftime.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='nstrftime.c' object='libdiffutils_a-nstrftime.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-nstrftime.o `test -f 'nstrftime.c' || echo '$(srcdir)/'`nstrftime.c
+
+libdiffutils_a-nstrftime.obj: nstrftime.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-nstrftime.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-nstrftime.Tpo -c -o libdiffutils_a-nstrftime.obj `if test -f 'nstrftime.c'; then $(CYGPATH_W) 'nstrftime.c'; else $(CYGPATH_W) '$(srcdir)/nstrftime.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-nstrftime.Tpo $(DEPDIR)/libdiffutils_a-nstrftime.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='nstrftime.c' object='libdiffutils_a-nstrftime.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-nstrftime.obj `if test -f 'nstrftime.c'; then $(CYGPATH_W) 'nstrftime.c'; else $(CYGPATH_W) '$(srcdir)/nstrftime.c'; fi`
+
+libdiffutils_a-open.o: open.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-open.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-open.Tpo -c -o libdiffutils_a-open.o `test -f 'open.c' || echo '$(srcdir)/'`open.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-open.Tpo $(DEPDIR)/libdiffutils_a-open.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='open.c' object='libdiffutils_a-open.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-open.o `test -f 'open.c' || echo '$(srcdir)/'`open.c
+
+libdiffutils_a-open.obj: open.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-open.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-open.Tpo -c -o libdiffutils_a-open.obj `if test -f 'open.c'; then $(CYGPATH_W) 'open.c'; else $(CYGPATH_W) '$(srcdir)/open.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-open.Tpo $(DEPDIR)/libdiffutils_a-open.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='open.c' object='libdiffutils_a-open.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-open.obj `if test -f 'open.c'; then $(CYGPATH_W) 'open.c'; else $(CYGPATH_W) '$(srcdir)/open.c'; fi`
+
+libdiffutils_a-progname.o: progname.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-progname.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-progname.Tpo -c -o libdiffutils_a-progname.o `test -f 'progname.c' || echo '$(srcdir)/'`progname.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-progname.Tpo $(DEPDIR)/libdiffutils_a-progname.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='progname.c' object='libdiffutils_a-progname.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-progname.o `test -f 'progname.c' || echo '$(srcdir)/'`progname.c
+
+libdiffutils_a-progname.obj: progname.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-progname.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-progname.Tpo -c -o libdiffutils_a-progname.obj `if test -f 'progname.c'; then $(CYGPATH_W) 'progname.c'; else $(CYGPATH_W) '$(srcdir)/progname.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-progname.Tpo $(DEPDIR)/libdiffutils_a-progname.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='progname.c' object='libdiffutils_a-progname.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-progname.obj `if test -f 'progname.c'; then $(CYGPATH_W) 'progname.c'; else $(CYGPATH_W) '$(srcdir)/progname.c'; fi`
+
+libdiffutils_a-propername.o: propername.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-propername.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-propername.Tpo -c -o libdiffutils_a-propername.o `test -f 'propername.c' || echo '$(srcdir)/'`propername.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-propername.Tpo $(DEPDIR)/libdiffutils_a-propername.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='propername.c' object='libdiffutils_a-propername.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-propername.o `test -f 'propername.c' || echo '$(srcdir)/'`propername.c
+
+libdiffutils_a-propername.obj: propername.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-propername.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-propername.Tpo -c -o libdiffutils_a-propername.obj `if test -f 'propername.c'; then $(CYGPATH_W) 'propername.c'; else $(CYGPATH_W) '$(srcdir)/propername.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-propername.Tpo $(DEPDIR)/libdiffutils_a-propername.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='propername.c' object='libdiffutils_a-propername.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-propername.obj `if test -f 'propername.c'; then $(CYGPATH_W) 'propername.c'; else $(CYGPATH_W) '$(srcdir)/propername.c'; fi`
+
+libdiffutils_a-quotearg.o: quotearg.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-quotearg.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-quotearg.Tpo -c -o libdiffutils_a-quotearg.o `test -f 'quotearg.c' || echo '$(srcdir)/'`quotearg.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-quotearg.Tpo $(DEPDIR)/libdiffutils_a-quotearg.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='quotearg.c' object='libdiffutils_a-quotearg.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-quotearg.o `test -f 'quotearg.c' || echo '$(srcdir)/'`quotearg.c
+
+libdiffutils_a-quotearg.obj: quotearg.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-quotearg.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-quotearg.Tpo -c -o libdiffutils_a-quotearg.obj `if test -f 'quotearg.c'; then $(CYGPATH_W) 'quotearg.c'; else $(CYGPATH_W) '$(srcdir)/quotearg.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-quotearg.Tpo $(DEPDIR)/libdiffutils_a-quotearg.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='quotearg.c' object='libdiffutils_a-quotearg.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-quotearg.obj `if test -f 'quotearg.c'; then $(CYGPATH_W) 'quotearg.c'; else $(CYGPATH_W) '$(srcdir)/quotearg.c'; fi`
+
+libdiffutils_a-raise.o: raise.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-raise.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-raise.Tpo -c -o libdiffutils_a-raise.o `test -f 'raise.c' || echo '$(srcdir)/'`raise.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-raise.Tpo $(DEPDIR)/libdiffutils_a-raise.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='raise.c' object='libdiffutils_a-raise.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-raise.o `test -f 'raise.c' || echo '$(srcdir)/'`raise.c
+
+libdiffutils_a-raise.obj: raise.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-raise.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-raise.Tpo -c -o libdiffutils_a-raise.obj `if test -f 'raise.c'; then $(CYGPATH_W) 'raise.c'; else $(CYGPATH_W) '$(srcdir)/raise.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-raise.Tpo $(DEPDIR)/libdiffutils_a-raise.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='raise.c' object='libdiffutils_a-raise.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-raise.obj `if test -f 'raise.c'; then $(CYGPATH_W) 'raise.c'; else $(CYGPATH_W) '$(srcdir)/raise.c'; fi`
+
+libdiffutils_a-rawmemchr.o: rawmemchr.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-rawmemchr.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-rawmemchr.Tpo -c -o libdiffutils_a-rawmemchr.o `test -f 'rawmemchr.c' || echo '$(srcdir)/'`rawmemchr.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-rawmemchr.Tpo $(DEPDIR)/libdiffutils_a-rawmemchr.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='rawmemchr.c' object='libdiffutils_a-rawmemchr.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-rawmemchr.o `test -f 'rawmemchr.c' || echo '$(srcdir)/'`rawmemchr.c
+
+libdiffutils_a-rawmemchr.obj: rawmemchr.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-rawmemchr.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-rawmemchr.Tpo -c -o libdiffutils_a-rawmemchr.obj `if test -f 'rawmemchr.c'; then $(CYGPATH_W) 'rawmemchr.c'; else $(CYGPATH_W) '$(srcdir)/rawmemchr.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-rawmemchr.Tpo $(DEPDIR)/libdiffutils_a-rawmemchr.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='rawmemchr.c' object='libdiffutils_a-rawmemchr.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-rawmemchr.obj `if test -f 'rawmemchr.c'; then $(CYGPATH_W) 'rawmemchr.c'; else $(CYGPATH_W) '$(srcdir)/rawmemchr.c'; fi`
+
+libdiffutils_a-readlink.o: readlink.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-readlink.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-readlink.Tpo -c -o libdiffutils_a-readlink.o `test -f 'readlink.c' || echo '$(srcdir)/'`readlink.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-readlink.Tpo $(DEPDIR)/libdiffutils_a-readlink.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='readlink.c' object='libdiffutils_a-readlink.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-readlink.o `test -f 'readlink.c' || echo '$(srcdir)/'`readlink.c
+
+libdiffutils_a-readlink.obj: readlink.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-readlink.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-readlink.Tpo -c -o libdiffutils_a-readlink.obj `if test -f 'readlink.c'; then $(CYGPATH_W) 'readlink.c'; else $(CYGPATH_W) '$(srcdir)/readlink.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-readlink.Tpo $(DEPDIR)/libdiffutils_a-readlink.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='readlink.c' object='libdiffutils_a-readlink.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-readlink.obj `if test -f 'readlink.c'; then $(CYGPATH_W) 'readlink.c'; else $(CYGPATH_W) '$(srcdir)/readlink.c'; fi`
+
+libdiffutils_a-reallocarray.o: reallocarray.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-reallocarray.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-reallocarray.Tpo -c -o libdiffutils_a-reallocarray.o `test -f 'reallocarray.c' || echo '$(srcdir)/'`reallocarray.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-reallocarray.Tpo $(DEPDIR)/libdiffutils_a-reallocarray.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='reallocarray.c' object='libdiffutils_a-reallocarray.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-reallocarray.o `test -f 'reallocarray.c' || echo '$(srcdir)/'`reallocarray.c
+
+libdiffutils_a-reallocarray.obj: reallocarray.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-reallocarray.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-reallocarray.Tpo -c -o libdiffutils_a-reallocarray.obj `if test -f 'reallocarray.c'; then $(CYGPATH_W) 'reallocarray.c'; else $(CYGPATH_W) '$(srcdir)/reallocarray.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-reallocarray.Tpo $(DEPDIR)/libdiffutils_a-reallocarray.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='reallocarray.c' object='libdiffutils_a-reallocarray.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-reallocarray.obj `if test -f 'reallocarray.c'; then $(CYGPATH_W) 'reallocarray.c'; else $(CYGPATH_W) '$(srcdir)/reallocarray.c'; fi`
+
+libdiffutils_a-regex.o: regex.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-regex.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-regex.Tpo -c -o libdiffutils_a-regex.o `test -f 'regex.c' || echo '$(srcdir)/'`regex.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-regex.Tpo $(DEPDIR)/libdiffutils_a-regex.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='regex.c' object='libdiffutils_a-regex.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-regex.o `test -f 'regex.c' || echo '$(srcdir)/'`regex.c
+
+libdiffutils_a-regex.obj: regex.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-regex.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-regex.Tpo -c -o libdiffutils_a-regex.obj `if test -f 'regex.c'; then $(CYGPATH_W) 'regex.c'; else $(CYGPATH_W) '$(srcdir)/regex.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-regex.Tpo $(DEPDIR)/libdiffutils_a-regex.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='regex.c' object='libdiffutils_a-regex.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-regex.obj `if test -f 'regex.c'; then $(CYGPATH_W) 'regex.c'; else $(CYGPATH_W) '$(srcdir)/regex.c'; fi`
+
+libdiffutils_a-setenv.o: setenv.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-setenv.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-setenv.Tpo -c -o libdiffutils_a-setenv.o `test -f 'setenv.c' || echo '$(srcdir)/'`setenv.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-setenv.Tpo $(DEPDIR)/libdiffutils_a-setenv.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='setenv.c' object='libdiffutils_a-setenv.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-setenv.o `test -f 'setenv.c' || echo '$(srcdir)/'`setenv.c
+
+libdiffutils_a-setenv.obj: setenv.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-setenv.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-setenv.Tpo -c -o libdiffutils_a-setenv.obj `if test -f 'setenv.c'; then $(CYGPATH_W) 'setenv.c'; else $(CYGPATH_W) '$(srcdir)/setenv.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-setenv.Tpo $(DEPDIR)/libdiffutils_a-setenv.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='setenv.c' object='libdiffutils_a-setenv.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-setenv.obj `if test -f 'setenv.c'; then $(CYGPATH_W) 'setenv.c'; else $(CYGPATH_W) '$(srcdir)/setenv.c'; fi`
+
+libdiffutils_a-setlocale_null.o: setlocale_null.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-setlocale_null.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-setlocale_null.Tpo -c -o libdiffutils_a-setlocale_null.o `test -f 'setlocale_null.c' || echo '$(srcdir)/'`setlocale_null.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-setlocale_null.Tpo $(DEPDIR)/libdiffutils_a-setlocale_null.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='setlocale_null.c' object='libdiffutils_a-setlocale_null.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-setlocale_null.o `test -f 'setlocale_null.c' || echo '$(srcdir)/'`setlocale_null.c
+
+libdiffutils_a-setlocale_null.obj: setlocale_null.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-setlocale_null.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-setlocale_null.Tpo -c -o libdiffutils_a-setlocale_null.obj `if test -f 'setlocale_null.c'; then $(CYGPATH_W) 'setlocale_null.c'; else $(CYGPATH_W) '$(srcdir)/setlocale_null.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-setlocale_null.Tpo $(DEPDIR)/libdiffutils_a-setlocale_null.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='setlocale_null.c' object='libdiffutils_a-setlocale_null.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-setlocale_null.obj `if test -f 'setlocale_null.c'; then $(CYGPATH_W) 'setlocale_null.c'; else $(CYGPATH_W) '$(srcdir)/setlocale_null.c'; fi`
+
+libdiffutils_a-setlocale-lock.o: setlocale-lock.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-setlocale-lock.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-setlocale-lock.Tpo -c -o libdiffutils_a-setlocale-lock.o `test -f 'setlocale-lock.c' || echo '$(srcdir)/'`setlocale-lock.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-setlocale-lock.Tpo $(DEPDIR)/libdiffutils_a-setlocale-lock.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='setlocale-lock.c' object='libdiffutils_a-setlocale-lock.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-setlocale-lock.o `test -f 'setlocale-lock.c' || echo '$(srcdir)/'`setlocale-lock.c
+
+libdiffutils_a-setlocale-lock.obj: setlocale-lock.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-setlocale-lock.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-setlocale-lock.Tpo -c -o libdiffutils_a-setlocale-lock.obj `if test -f 'setlocale-lock.c'; then $(CYGPATH_W) 'setlocale-lock.c'; else $(CYGPATH_W) '$(srcdir)/setlocale-lock.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-setlocale-lock.Tpo $(DEPDIR)/libdiffutils_a-setlocale-lock.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='setlocale-lock.c' object='libdiffutils_a-setlocale-lock.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-setlocale-lock.obj `if test -f 'setlocale-lock.c'; then $(CYGPATH_W) 'setlocale-lock.c'; else $(CYGPATH_W) '$(srcdir)/setlocale-lock.c'; fi`
+
+libdiffutils_a-sh-quote.o: sh-quote.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-sh-quote.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-sh-quote.Tpo -c -o libdiffutils_a-sh-quote.o `test -f 'sh-quote.c' || echo '$(srcdir)/'`sh-quote.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-sh-quote.Tpo $(DEPDIR)/libdiffutils_a-sh-quote.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='sh-quote.c' object='libdiffutils_a-sh-quote.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-sh-quote.o `test -f 'sh-quote.c' || echo '$(srcdir)/'`sh-quote.c
+
+libdiffutils_a-sh-quote.obj: sh-quote.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-sh-quote.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-sh-quote.Tpo -c -o libdiffutils_a-sh-quote.obj `if test -f 'sh-quote.c'; then $(CYGPATH_W) 'sh-quote.c'; else $(CYGPATH_W) '$(srcdir)/sh-quote.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-sh-quote.Tpo $(DEPDIR)/libdiffutils_a-sh-quote.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='sh-quote.c' object='libdiffutils_a-sh-quote.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-sh-quote.obj `if test -f 'sh-quote.c'; then $(CYGPATH_W) 'sh-quote.c'; else $(CYGPATH_W) '$(srcdir)/sh-quote.c'; fi`
+
+libdiffutils_a-sigprocmask.o: sigprocmask.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-sigprocmask.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-sigprocmask.Tpo -c -o libdiffutils_a-sigprocmask.o `test -f 'sigprocmask.c' || echo '$(srcdir)/'`sigprocmask.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-sigprocmask.Tpo $(DEPDIR)/libdiffutils_a-sigprocmask.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='sigprocmask.c' object='libdiffutils_a-sigprocmask.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-sigprocmask.o `test -f 'sigprocmask.c' || echo '$(srcdir)/'`sigprocmask.c
+
+libdiffutils_a-sigprocmask.obj: sigprocmask.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-sigprocmask.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-sigprocmask.Tpo -c -o libdiffutils_a-sigprocmask.obj `if test -f 'sigprocmask.c'; then $(CYGPATH_W) 'sigprocmask.c'; else $(CYGPATH_W) '$(srcdir)/sigprocmask.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-sigprocmask.Tpo $(DEPDIR)/libdiffutils_a-sigprocmask.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='sigprocmask.c' object='libdiffutils_a-sigprocmask.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-sigprocmask.obj `if test -f 'sigprocmask.c'; then $(CYGPATH_W) 'sigprocmask.c'; else $(CYGPATH_W) '$(srcdir)/sigprocmask.c'; fi`
+
+libdiffutils_a-sigsegv.o: sigsegv.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-sigsegv.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-sigsegv.Tpo -c -o libdiffutils_a-sigsegv.o `test -f 'sigsegv.c' || echo '$(srcdir)/'`sigsegv.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-sigsegv.Tpo $(DEPDIR)/libdiffutils_a-sigsegv.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='sigsegv.c' object='libdiffutils_a-sigsegv.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-sigsegv.o `test -f 'sigsegv.c' || echo '$(srcdir)/'`sigsegv.c
+
+libdiffutils_a-sigsegv.obj: sigsegv.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-sigsegv.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-sigsegv.Tpo -c -o libdiffutils_a-sigsegv.obj `if test -f 'sigsegv.c'; then $(CYGPATH_W) 'sigsegv.c'; else $(CYGPATH_W) '$(srcdir)/sigsegv.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-sigsegv.Tpo $(DEPDIR)/libdiffutils_a-sigsegv.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='sigsegv.c' object='libdiffutils_a-sigsegv.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-sigsegv.obj `if test -f 'sigsegv.c'; then $(CYGPATH_W) 'sigsegv.c'; else $(CYGPATH_W) '$(srcdir)/sigsegv.c'; fi`
+
+libdiffutils_a-stackvma.o: stackvma.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-stackvma.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-stackvma.Tpo -c -o libdiffutils_a-stackvma.o `test -f 'stackvma.c' || echo '$(srcdir)/'`stackvma.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-stackvma.Tpo $(DEPDIR)/libdiffutils_a-stackvma.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='stackvma.c' object='libdiffutils_a-stackvma.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-stackvma.o `test -f 'stackvma.c' || echo '$(srcdir)/'`stackvma.c
+
+libdiffutils_a-stackvma.obj: stackvma.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-stackvma.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-stackvma.Tpo -c -o libdiffutils_a-stackvma.obj `if test -f 'stackvma.c'; then $(CYGPATH_W) 'stackvma.c'; else $(CYGPATH_W) '$(srcdir)/stackvma.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-stackvma.Tpo $(DEPDIR)/libdiffutils_a-stackvma.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='stackvma.c' object='libdiffutils_a-stackvma.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-stackvma.obj `if test -f 'stackvma.c'; then $(CYGPATH_W) 'stackvma.c'; else $(CYGPATH_W) '$(srcdir)/stackvma.c'; fi`
+
+libdiffutils_a-stat.o: stat.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-stat.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-stat.Tpo -c -o libdiffutils_a-stat.o `test -f 'stat.c' || echo '$(srcdir)/'`stat.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-stat.Tpo $(DEPDIR)/libdiffutils_a-stat.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='stat.c' object='libdiffutils_a-stat.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-stat.o `test -f 'stat.c' || echo '$(srcdir)/'`stat.c
+
+libdiffutils_a-stat.obj: stat.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-stat.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-stat.Tpo -c -o libdiffutils_a-stat.obj `if test -f 'stat.c'; then $(CYGPATH_W) 'stat.c'; else $(CYGPATH_W) '$(srcdir)/stat.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-stat.Tpo $(DEPDIR)/libdiffutils_a-stat.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='stat.c' object='libdiffutils_a-stat.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-stat.obj `if test -f 'stat.c'; then $(CYGPATH_W) 'stat.c'; else $(CYGPATH_W) '$(srcdir)/stat.c'; fi`
+
+libdiffutils_a-stat-time.o: stat-time.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-stat-time.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-stat-time.Tpo -c -o libdiffutils_a-stat-time.o `test -f 'stat-time.c' || echo '$(srcdir)/'`stat-time.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-stat-time.Tpo $(DEPDIR)/libdiffutils_a-stat-time.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='stat-time.c' object='libdiffutils_a-stat-time.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-stat-time.o `test -f 'stat-time.c' || echo '$(srcdir)/'`stat-time.c
+
+libdiffutils_a-stat-time.obj: stat-time.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-stat-time.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-stat-time.Tpo -c -o libdiffutils_a-stat-time.obj `if test -f 'stat-time.c'; then $(CYGPATH_W) 'stat-time.c'; else $(CYGPATH_W) '$(srcdir)/stat-time.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-stat-time.Tpo $(DEPDIR)/libdiffutils_a-stat-time.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='stat-time.c' object='libdiffutils_a-stat-time.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-stat-time.obj `if test -f 'stat-time.c'; then $(CYGPATH_W) 'stat-time.c'; else $(CYGPATH_W) '$(srcdir)/stat-time.c'; fi`
+
+libdiffutils_a-stdio-read.o: stdio-read.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-stdio-read.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-stdio-read.Tpo -c -o libdiffutils_a-stdio-read.o `test -f 'stdio-read.c' || echo '$(srcdir)/'`stdio-read.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-stdio-read.Tpo $(DEPDIR)/libdiffutils_a-stdio-read.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='stdio-read.c' object='libdiffutils_a-stdio-read.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-stdio-read.o `test -f 'stdio-read.c' || echo '$(srcdir)/'`stdio-read.c
+
+libdiffutils_a-stdio-read.obj: stdio-read.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-stdio-read.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-stdio-read.Tpo -c -o libdiffutils_a-stdio-read.obj `if test -f 'stdio-read.c'; then $(CYGPATH_W) 'stdio-read.c'; else $(CYGPATH_W) '$(srcdir)/stdio-read.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-stdio-read.Tpo $(DEPDIR)/libdiffutils_a-stdio-read.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='stdio-read.c' object='libdiffutils_a-stdio-read.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-stdio-read.obj `if test -f 'stdio-read.c'; then $(CYGPATH_W) 'stdio-read.c'; else $(CYGPATH_W) '$(srcdir)/stdio-read.c'; fi`
+
+libdiffutils_a-stdio-write.o: stdio-write.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-stdio-write.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-stdio-write.Tpo -c -o libdiffutils_a-stdio-write.o `test -f 'stdio-write.c' || echo '$(srcdir)/'`stdio-write.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-stdio-write.Tpo $(DEPDIR)/libdiffutils_a-stdio-write.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='stdio-write.c' object='libdiffutils_a-stdio-write.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-stdio-write.o `test -f 'stdio-write.c' || echo '$(srcdir)/'`stdio-write.c
+
+libdiffutils_a-stdio-write.obj: stdio-write.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-stdio-write.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-stdio-write.Tpo -c -o libdiffutils_a-stdio-write.obj `if test -f 'stdio-write.c'; then $(CYGPATH_W) 'stdio-write.c'; else $(CYGPATH_W) '$(srcdir)/stdio-write.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-stdio-write.Tpo $(DEPDIR)/libdiffutils_a-stdio-write.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='stdio-write.c' object='libdiffutils_a-stdio-write.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-stdio-write.obj `if test -f 'stdio-write.c'; then $(CYGPATH_W) 'stdio-write.c'; else $(CYGPATH_W) '$(srcdir)/stdio-write.c'; fi`
+
+libdiffutils_a-stdopen.o: stdopen.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-stdopen.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-stdopen.Tpo -c -o libdiffutils_a-stdopen.o `test -f 'stdopen.c' || echo '$(srcdir)/'`stdopen.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-stdopen.Tpo $(DEPDIR)/libdiffutils_a-stdopen.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='stdopen.c' object='libdiffutils_a-stdopen.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-stdopen.o `test -f 'stdopen.c' || echo '$(srcdir)/'`stdopen.c
+
+libdiffutils_a-stdopen.obj: stdopen.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-stdopen.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-stdopen.Tpo -c -o libdiffutils_a-stdopen.obj `if test -f 'stdopen.c'; then $(CYGPATH_W) 'stdopen.c'; else $(CYGPATH_W) '$(srcdir)/stdopen.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-stdopen.Tpo $(DEPDIR)/libdiffutils_a-stdopen.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='stdopen.c' object='libdiffutils_a-stdopen.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-stdopen.obj `if test -f 'stdopen.c'; then $(CYGPATH_W) 'stdopen.c'; else $(CYGPATH_W) '$(srcdir)/stdopen.c'; fi`
+
+libdiffutils_a-stpcpy.o: stpcpy.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-stpcpy.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-stpcpy.Tpo -c -o libdiffutils_a-stpcpy.o `test -f 'stpcpy.c' || echo '$(srcdir)/'`stpcpy.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-stpcpy.Tpo $(DEPDIR)/libdiffutils_a-stpcpy.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='stpcpy.c' object='libdiffutils_a-stpcpy.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-stpcpy.o `test -f 'stpcpy.c' || echo '$(srcdir)/'`stpcpy.c
+
+libdiffutils_a-stpcpy.obj: stpcpy.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-stpcpy.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-stpcpy.Tpo -c -o libdiffutils_a-stpcpy.obj `if test -f 'stpcpy.c'; then $(CYGPATH_W) 'stpcpy.c'; else $(CYGPATH_W) '$(srcdir)/stpcpy.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-stpcpy.Tpo $(DEPDIR)/libdiffutils_a-stpcpy.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='stpcpy.c' object='libdiffutils_a-stpcpy.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-stpcpy.obj `if test -f 'stpcpy.c'; then $(CYGPATH_W) 'stpcpy.c'; else $(CYGPATH_W) '$(srcdir)/stpcpy.c'; fi`
+
+libdiffutils_a-strcasecmp.o: strcasecmp.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-strcasecmp.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-strcasecmp.Tpo -c -o libdiffutils_a-strcasecmp.o `test -f 'strcasecmp.c' || echo '$(srcdir)/'`strcasecmp.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-strcasecmp.Tpo $(DEPDIR)/libdiffutils_a-strcasecmp.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='strcasecmp.c' object='libdiffutils_a-strcasecmp.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-strcasecmp.o `test -f 'strcasecmp.c' || echo '$(srcdir)/'`strcasecmp.c
+
+libdiffutils_a-strcasecmp.obj: strcasecmp.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-strcasecmp.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-strcasecmp.Tpo -c -o libdiffutils_a-strcasecmp.obj `if test -f 'strcasecmp.c'; then $(CYGPATH_W) 'strcasecmp.c'; else $(CYGPATH_W) '$(srcdir)/strcasecmp.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-strcasecmp.Tpo $(DEPDIR)/libdiffutils_a-strcasecmp.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='strcasecmp.c' object='libdiffutils_a-strcasecmp.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-strcasecmp.obj `if test -f 'strcasecmp.c'; then $(CYGPATH_W) 'strcasecmp.c'; else $(CYGPATH_W) '$(srcdir)/strcasecmp.c'; fi`
+
+libdiffutils_a-strncasecmp.o: strncasecmp.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-strncasecmp.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-strncasecmp.Tpo -c -o libdiffutils_a-strncasecmp.o `test -f 'strncasecmp.c' || echo '$(srcdir)/'`strncasecmp.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-strncasecmp.Tpo $(DEPDIR)/libdiffutils_a-strncasecmp.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='strncasecmp.c' object='libdiffutils_a-strncasecmp.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-strncasecmp.o `test -f 'strncasecmp.c' || echo '$(srcdir)/'`strncasecmp.c
+
+libdiffutils_a-strncasecmp.obj: strncasecmp.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-strncasecmp.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-strncasecmp.Tpo -c -o libdiffutils_a-strncasecmp.obj `if test -f 'strncasecmp.c'; then $(CYGPATH_W) 'strncasecmp.c'; else $(CYGPATH_W) '$(srcdir)/strncasecmp.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-strncasecmp.Tpo $(DEPDIR)/libdiffutils_a-strncasecmp.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='strncasecmp.c' object='libdiffutils_a-strncasecmp.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-strncasecmp.obj `if test -f 'strncasecmp.c'; then $(CYGPATH_W) 'strncasecmp.c'; else $(CYGPATH_W) '$(srcdir)/strncasecmp.c'; fi`
+
+libdiffutils_a-strerror.o: strerror.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-strerror.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-strerror.Tpo -c -o libdiffutils_a-strerror.o `test -f 'strerror.c' || echo '$(srcdir)/'`strerror.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-strerror.Tpo $(DEPDIR)/libdiffutils_a-strerror.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='strerror.c' object='libdiffutils_a-strerror.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-strerror.o `test -f 'strerror.c' || echo '$(srcdir)/'`strerror.c
+
+libdiffutils_a-strerror.obj: strerror.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-strerror.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-strerror.Tpo -c -o libdiffutils_a-strerror.obj `if test -f 'strerror.c'; then $(CYGPATH_W) 'strerror.c'; else $(CYGPATH_W) '$(srcdir)/strerror.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-strerror.Tpo $(DEPDIR)/libdiffutils_a-strerror.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='strerror.c' object='libdiffutils_a-strerror.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-strerror.obj `if test -f 'strerror.c'; then $(CYGPATH_W) 'strerror.c'; else $(CYGPATH_W) '$(srcdir)/strerror.c'; fi`
+
+libdiffutils_a-strerror-override.o: strerror-override.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-strerror-override.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-strerror-override.Tpo -c -o libdiffutils_a-strerror-override.o `test -f 'strerror-override.c' || echo '$(srcdir)/'`strerror-override.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-strerror-override.Tpo $(DEPDIR)/libdiffutils_a-strerror-override.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='strerror-override.c' object='libdiffutils_a-strerror-override.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-strerror-override.o `test -f 'strerror-override.c' || echo '$(srcdir)/'`strerror-override.c
+
+libdiffutils_a-strerror-override.obj: strerror-override.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-strerror-override.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-strerror-override.Tpo -c -o libdiffutils_a-strerror-override.obj `if test -f 'strerror-override.c'; then $(CYGPATH_W) 'strerror-override.c'; else $(CYGPATH_W) '$(srcdir)/strerror-override.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-strerror-override.Tpo $(DEPDIR)/libdiffutils_a-strerror-override.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='strerror-override.c' object='libdiffutils_a-strerror-override.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-strerror-override.obj `if test -f 'strerror-override.c'; then $(CYGPATH_W) 'strerror-override.c'; else $(CYGPATH_W) '$(srcdir)/strerror-override.c'; fi`
+
+libdiffutils_a-striconv.o: striconv.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-striconv.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-striconv.Tpo -c -o libdiffutils_a-striconv.o `test -f 'striconv.c' || echo '$(srcdir)/'`striconv.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-striconv.Tpo $(DEPDIR)/libdiffutils_a-striconv.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='striconv.c' object='libdiffutils_a-striconv.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-striconv.o `test -f 'striconv.c' || echo '$(srcdir)/'`striconv.c
+
+libdiffutils_a-striconv.obj: striconv.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-striconv.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-striconv.Tpo -c -o libdiffutils_a-striconv.obj `if test -f 'striconv.c'; then $(CYGPATH_W) 'striconv.c'; else $(CYGPATH_W) '$(srcdir)/striconv.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-striconv.Tpo $(DEPDIR)/libdiffutils_a-striconv.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='striconv.c' object='libdiffutils_a-striconv.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-striconv.obj `if test -f 'striconv.c'; then $(CYGPATH_W) 'striconv.c'; else $(CYGPATH_W) '$(srcdir)/striconv.c'; fi`
+
+libdiffutils_a-strnlen.o: strnlen.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-strnlen.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-strnlen.Tpo -c -o libdiffutils_a-strnlen.o `test -f 'strnlen.c' || echo '$(srcdir)/'`strnlen.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-strnlen.Tpo $(DEPDIR)/libdiffutils_a-strnlen.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='strnlen.c' object='libdiffutils_a-strnlen.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-strnlen.o `test -f 'strnlen.c' || echo '$(srcdir)/'`strnlen.c
+
+libdiffutils_a-strnlen.obj: strnlen.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-strnlen.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-strnlen.Tpo -c -o libdiffutils_a-strnlen.obj `if test -f 'strnlen.c'; then $(CYGPATH_W) 'strnlen.c'; else $(CYGPATH_W) '$(srcdir)/strnlen.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-strnlen.Tpo $(DEPDIR)/libdiffutils_a-strnlen.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='strnlen.c' object='libdiffutils_a-strnlen.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-strnlen.obj `if test -f 'strnlen.c'; then $(CYGPATH_W) 'strnlen.c'; else $(CYGPATH_W) '$(srcdir)/strnlen.c'; fi`
+
+libdiffutils_a-strnlen1.o: strnlen1.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-strnlen1.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-strnlen1.Tpo -c -o libdiffutils_a-strnlen1.o `test -f 'strnlen1.c' || echo '$(srcdir)/'`strnlen1.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-strnlen1.Tpo $(DEPDIR)/libdiffutils_a-strnlen1.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='strnlen1.c' object='libdiffutils_a-strnlen1.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-strnlen1.o `test -f 'strnlen1.c' || echo '$(srcdir)/'`strnlen1.c
+
+libdiffutils_a-strnlen1.obj: strnlen1.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-strnlen1.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-strnlen1.Tpo -c -o libdiffutils_a-strnlen1.obj `if test -f 'strnlen1.c'; then $(CYGPATH_W) 'strnlen1.c'; else $(CYGPATH_W) '$(srcdir)/strnlen1.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-strnlen1.Tpo $(DEPDIR)/libdiffutils_a-strnlen1.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='strnlen1.c' object='libdiffutils_a-strnlen1.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-strnlen1.obj `if test -f 'strnlen1.c'; then $(CYGPATH_W) 'strnlen1.c'; else $(CYGPATH_W) '$(srcdir)/strnlen1.c'; fi`
+
+libdiffutils_a-strptime.o: strptime.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-strptime.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-strptime.Tpo -c -o libdiffutils_a-strptime.o `test -f 'strptime.c' || echo '$(srcdir)/'`strptime.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-strptime.Tpo $(DEPDIR)/libdiffutils_a-strptime.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='strptime.c' object='libdiffutils_a-strptime.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-strptime.o `test -f 'strptime.c' || echo '$(srcdir)/'`strptime.c
+
+libdiffutils_a-strptime.obj: strptime.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-strptime.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-strptime.Tpo -c -o libdiffutils_a-strptime.obj `if test -f 'strptime.c'; then $(CYGPATH_W) 'strptime.c'; else $(CYGPATH_W) '$(srcdir)/strptime.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-strptime.Tpo $(DEPDIR)/libdiffutils_a-strptime.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='strptime.c' object='libdiffutils_a-strptime.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-strptime.obj `if test -f 'strptime.c'; then $(CYGPATH_W) 'strptime.c'; else $(CYGPATH_W) '$(srcdir)/strptime.c'; fi`
+
+libdiffutils_a-strtoimax.o: strtoimax.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-strtoimax.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-strtoimax.Tpo -c -o libdiffutils_a-strtoimax.o `test -f 'strtoimax.c' || echo '$(srcdir)/'`strtoimax.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-strtoimax.Tpo $(DEPDIR)/libdiffutils_a-strtoimax.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='strtoimax.c' object='libdiffutils_a-strtoimax.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-strtoimax.o `test -f 'strtoimax.c' || echo '$(srcdir)/'`strtoimax.c
+
+libdiffutils_a-strtoimax.obj: strtoimax.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-strtoimax.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-strtoimax.Tpo -c -o libdiffutils_a-strtoimax.obj `if test -f 'strtoimax.c'; then $(CYGPATH_W) 'strtoimax.c'; else $(CYGPATH_W) '$(srcdir)/strtoimax.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-strtoimax.Tpo $(DEPDIR)/libdiffutils_a-strtoimax.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='strtoimax.c' object='libdiffutils_a-strtoimax.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-strtoimax.obj `if test -f 'strtoimax.c'; then $(CYGPATH_W) 'strtoimax.c'; else $(CYGPATH_W) '$(srcdir)/strtoimax.c'; fi`
+
+libdiffutils_a-strtoll.o: strtoll.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-strtoll.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-strtoll.Tpo -c -o libdiffutils_a-strtoll.o `test -f 'strtoll.c' || echo '$(srcdir)/'`strtoll.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-strtoll.Tpo $(DEPDIR)/libdiffutils_a-strtoll.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='strtoll.c' object='libdiffutils_a-strtoll.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-strtoll.o `test -f 'strtoll.c' || echo '$(srcdir)/'`strtoll.c
+
+libdiffutils_a-strtoll.obj: strtoll.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-strtoll.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-strtoll.Tpo -c -o libdiffutils_a-strtoll.obj `if test -f 'strtoll.c'; then $(CYGPATH_W) 'strtoll.c'; else $(CYGPATH_W) '$(srcdir)/strtoll.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-strtoll.Tpo $(DEPDIR)/libdiffutils_a-strtoll.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='strtoll.c' object='libdiffutils_a-strtoll.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-strtoll.obj `if test -f 'strtoll.c'; then $(CYGPATH_W) 'strtoll.c'; else $(CYGPATH_W) '$(srcdir)/strtoll.c'; fi`
+
+libdiffutils_a-system-quote.o: system-quote.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-system-quote.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-system-quote.Tpo -c -o libdiffutils_a-system-quote.o `test -f 'system-quote.c' || echo '$(srcdir)/'`system-quote.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-system-quote.Tpo $(DEPDIR)/libdiffutils_a-system-quote.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='system-quote.c' object='libdiffutils_a-system-quote.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-system-quote.o `test -f 'system-quote.c' || echo '$(srcdir)/'`system-quote.c
+
+libdiffutils_a-system-quote.obj: system-quote.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-system-quote.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-system-quote.Tpo -c -o libdiffutils_a-system-quote.obj `if test -f 'system-quote.c'; then $(CYGPATH_W) 'system-quote.c'; else $(CYGPATH_W) '$(srcdir)/system-quote.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-system-quote.Tpo $(DEPDIR)/libdiffutils_a-system-quote.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='system-quote.c' object='libdiffutils_a-system-quote.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-system-quote.obj `if test -f 'system-quote.c'; then $(CYGPATH_W) 'system-quote.c'; else $(CYGPATH_W) '$(srcdir)/system-quote.c'; fi`
+
+libdiffutils_a-tempname.o: tempname.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-tempname.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-tempname.Tpo -c -o libdiffutils_a-tempname.o `test -f 'tempname.c' || echo '$(srcdir)/'`tempname.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-tempname.Tpo $(DEPDIR)/libdiffutils_a-tempname.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='tempname.c' object='libdiffutils_a-tempname.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-tempname.o `test -f 'tempname.c' || echo '$(srcdir)/'`tempname.c
+
+libdiffutils_a-tempname.obj: tempname.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-tempname.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-tempname.Tpo -c -o libdiffutils_a-tempname.obj `if test -f 'tempname.c'; then $(CYGPATH_W) 'tempname.c'; else $(CYGPATH_W) '$(srcdir)/tempname.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-tempname.Tpo $(DEPDIR)/libdiffutils_a-tempname.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='tempname.c' object='libdiffutils_a-tempname.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-tempname.obj `if test -f 'tempname.c'; then $(CYGPATH_W) 'tempname.c'; else $(CYGPATH_W) '$(srcdir)/tempname.c'; fi`
+
+glthread/libdiffutils_a-threadlib.o: glthread/threadlib.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT glthread/libdiffutils_a-threadlib.o -MD -MP -MF glthread/$(DEPDIR)/libdiffutils_a-threadlib.Tpo -c -o glthread/libdiffutils_a-threadlib.o `test -f 'glthread/threadlib.c' || echo '$(srcdir)/'`glthread/threadlib.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) glthread/$(DEPDIR)/libdiffutils_a-threadlib.Tpo glthread/$(DEPDIR)/libdiffutils_a-threadlib.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='glthread/threadlib.c' object='glthread/libdiffutils_a-threadlib.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o glthread/libdiffutils_a-threadlib.o `test -f 'glthread/threadlib.c' || echo '$(srcdir)/'`glthread/threadlib.c
+
+glthread/libdiffutils_a-threadlib.obj: glthread/threadlib.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT glthread/libdiffutils_a-threadlib.obj -MD -MP -MF glthread/$(DEPDIR)/libdiffutils_a-threadlib.Tpo -c -o glthread/libdiffutils_a-threadlib.obj `if test -f 'glthread/threadlib.c'; then $(CYGPATH_W) 'glthread/threadlib.c'; else $(CYGPATH_W) '$(srcdir)/glthread/threadlib.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) glthread/$(DEPDIR)/libdiffutils_a-threadlib.Tpo glthread/$(DEPDIR)/libdiffutils_a-threadlib.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='glthread/threadlib.c' object='glthread/libdiffutils_a-threadlib.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o glthread/libdiffutils_a-threadlib.obj `if test -f 'glthread/threadlib.c'; then $(CYGPATH_W) 'glthread/threadlib.c'; else $(CYGPATH_W) '$(srcdir)/glthread/threadlib.c'; fi`
+
+libdiffutils_a-time_r.o: time_r.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-time_r.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-time_r.Tpo -c -o libdiffutils_a-time_r.o `test -f 'time_r.c' || echo '$(srcdir)/'`time_r.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-time_r.Tpo $(DEPDIR)/libdiffutils_a-time_r.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='time_r.c' object='libdiffutils_a-time_r.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-time_r.o `test -f 'time_r.c' || echo '$(srcdir)/'`time_r.c
+
+libdiffutils_a-time_r.obj: time_r.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-time_r.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-time_r.Tpo -c -o libdiffutils_a-time_r.obj `if test -f 'time_r.c'; then $(CYGPATH_W) 'time_r.c'; else $(CYGPATH_W) '$(srcdir)/time_r.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-time_r.Tpo $(DEPDIR)/libdiffutils_a-time_r.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='time_r.c' object='libdiffutils_a-time_r.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-time_r.obj `if test -f 'time_r.c'; then $(CYGPATH_W) 'time_r.c'; else $(CYGPATH_W) '$(srcdir)/time_r.c'; fi`
+
+libdiffutils_a-time_rz.o: time_rz.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-time_rz.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-time_rz.Tpo -c -o libdiffutils_a-time_rz.o `test -f 'time_rz.c' || echo '$(srcdir)/'`time_rz.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-time_rz.Tpo $(DEPDIR)/libdiffutils_a-time_rz.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='time_rz.c' object='libdiffutils_a-time_rz.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-time_rz.o `test -f 'time_rz.c' || echo '$(srcdir)/'`time_rz.c
+
+libdiffutils_a-time_rz.obj: time_rz.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-time_rz.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-time_rz.Tpo -c -o libdiffutils_a-time_rz.obj `if test -f 'time_rz.c'; then $(CYGPATH_W) 'time_rz.c'; else $(CYGPATH_W) '$(srcdir)/time_rz.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-time_rz.Tpo $(DEPDIR)/libdiffutils_a-time_rz.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='time_rz.c' object='libdiffutils_a-time_rz.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-time_rz.obj `if test -f 'time_rz.c'; then $(CYGPATH_W) 'time_rz.c'; else $(CYGPATH_W) '$(srcdir)/time_rz.c'; fi`
+
+libdiffutils_a-timegm.o: timegm.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-timegm.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-timegm.Tpo -c -o libdiffutils_a-timegm.o `test -f 'timegm.c' || echo '$(srcdir)/'`timegm.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-timegm.Tpo $(DEPDIR)/libdiffutils_a-timegm.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='timegm.c' object='libdiffutils_a-timegm.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-timegm.o `test -f 'timegm.c' || echo '$(srcdir)/'`timegm.c
+
+libdiffutils_a-timegm.obj: timegm.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-timegm.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-timegm.Tpo -c -o libdiffutils_a-timegm.obj `if test -f 'timegm.c'; then $(CYGPATH_W) 'timegm.c'; else $(CYGPATH_W) '$(srcdir)/timegm.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-timegm.Tpo $(DEPDIR)/libdiffutils_a-timegm.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='timegm.c' object='libdiffutils_a-timegm.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-timegm.obj `if test -f 'timegm.c'; then $(CYGPATH_W) 'timegm.c'; else $(CYGPATH_W) '$(srcdir)/timegm.c'; fi`
+
+libdiffutils_a-timespec.o: timespec.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-timespec.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-timespec.Tpo -c -o libdiffutils_a-timespec.o `test -f 'timespec.c' || echo '$(srcdir)/'`timespec.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-timespec.Tpo $(DEPDIR)/libdiffutils_a-timespec.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='timespec.c' object='libdiffutils_a-timespec.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-timespec.o `test -f 'timespec.c' || echo '$(srcdir)/'`timespec.c
+
+libdiffutils_a-timespec.obj: timespec.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-timespec.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-timespec.Tpo -c -o libdiffutils_a-timespec.obj `if test -f 'timespec.c'; then $(CYGPATH_W) 'timespec.c'; else $(CYGPATH_W) '$(srcdir)/timespec.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-timespec.Tpo $(DEPDIR)/libdiffutils_a-timespec.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='timespec.c' object='libdiffutils_a-timespec.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-timespec.obj `if test -f 'timespec.c'; then $(CYGPATH_W) 'timespec.c'; else $(CYGPATH_W) '$(srcdir)/timespec.c'; fi`
+
+libdiffutils_a-trim.o: trim.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-trim.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-trim.Tpo -c -o libdiffutils_a-trim.o `test -f 'trim.c' || echo '$(srcdir)/'`trim.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-trim.Tpo $(DEPDIR)/libdiffutils_a-trim.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='trim.c' object='libdiffutils_a-trim.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-trim.o `test -f 'trim.c' || echo '$(srcdir)/'`trim.c
+
+libdiffutils_a-trim.obj: trim.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-trim.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-trim.Tpo -c -o libdiffutils_a-trim.obj `if test -f 'trim.c'; then $(CYGPATH_W) 'trim.c'; else $(CYGPATH_W) '$(srcdir)/trim.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-trim.Tpo $(DEPDIR)/libdiffutils_a-trim.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='trim.c' object='libdiffutils_a-trim.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-trim.obj `if test -f 'trim.c'; then $(CYGPATH_W) 'trim.c'; else $(CYGPATH_W) '$(srcdir)/trim.c'; fi`
+
+libdiffutils_a-tzset.o: tzset.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-tzset.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-tzset.Tpo -c -o libdiffutils_a-tzset.o `test -f 'tzset.c' || echo '$(srcdir)/'`tzset.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-tzset.Tpo $(DEPDIR)/libdiffutils_a-tzset.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='tzset.c' object='libdiffutils_a-tzset.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-tzset.o `test -f 'tzset.c' || echo '$(srcdir)/'`tzset.c
+
+libdiffutils_a-tzset.obj: tzset.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-tzset.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-tzset.Tpo -c -o libdiffutils_a-tzset.obj `if test -f 'tzset.c'; then $(CYGPATH_W) 'tzset.c'; else $(CYGPATH_W) '$(srcdir)/tzset.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-tzset.Tpo $(DEPDIR)/libdiffutils_a-tzset.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='tzset.c' object='libdiffutils_a-tzset.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-tzset.obj `if test -f 'tzset.c'; then $(CYGPATH_W) 'tzset.c'; else $(CYGPATH_W) '$(srcdir)/tzset.c'; fi`
+
+libdiffutils_a-unistd.o: unistd.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-unistd.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-unistd.Tpo -c -o libdiffutils_a-unistd.o `test -f 'unistd.c' || echo '$(srcdir)/'`unistd.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-unistd.Tpo $(DEPDIR)/libdiffutils_a-unistd.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='unistd.c' object='libdiffutils_a-unistd.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-unistd.o `test -f 'unistd.c' || echo '$(srcdir)/'`unistd.c
+
+libdiffutils_a-unistd.obj: unistd.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-unistd.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-unistd.Tpo -c -o libdiffutils_a-unistd.obj `if test -f 'unistd.c'; then $(CYGPATH_W) 'unistd.c'; else $(CYGPATH_W) '$(srcdir)/unistd.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-unistd.Tpo $(DEPDIR)/libdiffutils_a-unistd.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='unistd.c' object='libdiffutils_a-unistd.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-unistd.obj `if test -f 'unistd.c'; then $(CYGPATH_W) 'unistd.c'; else $(CYGPATH_W) '$(srcdir)/unistd.c'; fi`
+
+unistr/libdiffutils_a-u8-mbtoucr.o: unistr/u8-mbtoucr.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT unistr/libdiffutils_a-u8-mbtoucr.o -MD -MP -MF unistr/$(DEPDIR)/libdiffutils_a-u8-mbtoucr.Tpo -c -o unistr/libdiffutils_a-u8-mbtoucr.o `test -f 'unistr/u8-mbtoucr.c' || echo '$(srcdir)/'`unistr/u8-mbtoucr.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) unistr/$(DEPDIR)/libdiffutils_a-u8-mbtoucr.Tpo unistr/$(DEPDIR)/libdiffutils_a-u8-mbtoucr.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='unistr/u8-mbtoucr.c' object='unistr/libdiffutils_a-u8-mbtoucr.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o unistr/libdiffutils_a-u8-mbtoucr.o `test -f 'unistr/u8-mbtoucr.c' || echo '$(srcdir)/'`unistr/u8-mbtoucr.c
+
+unistr/libdiffutils_a-u8-mbtoucr.obj: unistr/u8-mbtoucr.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT unistr/libdiffutils_a-u8-mbtoucr.obj -MD -MP -MF unistr/$(DEPDIR)/libdiffutils_a-u8-mbtoucr.Tpo -c -o unistr/libdiffutils_a-u8-mbtoucr.obj `if test -f 'unistr/u8-mbtoucr.c'; then $(CYGPATH_W) 'unistr/u8-mbtoucr.c'; else $(CYGPATH_W) '$(srcdir)/unistr/u8-mbtoucr.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) unistr/$(DEPDIR)/libdiffutils_a-u8-mbtoucr.Tpo unistr/$(DEPDIR)/libdiffutils_a-u8-mbtoucr.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='unistr/u8-mbtoucr.c' object='unistr/libdiffutils_a-u8-mbtoucr.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o unistr/libdiffutils_a-u8-mbtoucr.obj `if test -f 'unistr/u8-mbtoucr.c'; then $(CYGPATH_W) 'unistr/u8-mbtoucr.c'; else $(CYGPATH_W) '$(srcdir)/unistr/u8-mbtoucr.c'; fi`
+
+unistr/libdiffutils_a-u8-uctomb.o: unistr/u8-uctomb.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT unistr/libdiffutils_a-u8-uctomb.o -MD -MP -MF unistr/$(DEPDIR)/libdiffutils_a-u8-uctomb.Tpo -c -o unistr/libdiffutils_a-u8-uctomb.o `test -f 'unistr/u8-uctomb.c' || echo '$(srcdir)/'`unistr/u8-uctomb.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) unistr/$(DEPDIR)/libdiffutils_a-u8-uctomb.Tpo unistr/$(DEPDIR)/libdiffutils_a-u8-uctomb.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='unistr/u8-uctomb.c' object='unistr/libdiffutils_a-u8-uctomb.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o unistr/libdiffutils_a-u8-uctomb.o `test -f 'unistr/u8-uctomb.c' || echo '$(srcdir)/'`unistr/u8-uctomb.c
+
+unistr/libdiffutils_a-u8-uctomb.obj: unistr/u8-uctomb.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT unistr/libdiffutils_a-u8-uctomb.obj -MD -MP -MF unistr/$(DEPDIR)/libdiffutils_a-u8-uctomb.Tpo -c -o unistr/libdiffutils_a-u8-uctomb.obj `if test -f 'unistr/u8-uctomb.c'; then $(CYGPATH_W) 'unistr/u8-uctomb.c'; else $(CYGPATH_W) '$(srcdir)/unistr/u8-uctomb.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) unistr/$(DEPDIR)/libdiffutils_a-u8-uctomb.Tpo unistr/$(DEPDIR)/libdiffutils_a-u8-uctomb.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='unistr/u8-uctomb.c' object='unistr/libdiffutils_a-u8-uctomb.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o unistr/libdiffutils_a-u8-uctomb.obj `if test -f 'unistr/u8-uctomb.c'; then $(CYGPATH_W) 'unistr/u8-uctomb.c'; else $(CYGPATH_W) '$(srcdir)/unistr/u8-uctomb.c'; fi`
+
+unistr/libdiffutils_a-u8-uctomb-aux.o: unistr/u8-uctomb-aux.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT unistr/libdiffutils_a-u8-uctomb-aux.o -MD -MP -MF unistr/$(DEPDIR)/libdiffutils_a-u8-uctomb-aux.Tpo -c -o unistr/libdiffutils_a-u8-uctomb-aux.o `test -f 'unistr/u8-uctomb-aux.c' || echo '$(srcdir)/'`unistr/u8-uctomb-aux.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) unistr/$(DEPDIR)/libdiffutils_a-u8-uctomb-aux.Tpo unistr/$(DEPDIR)/libdiffutils_a-u8-uctomb-aux.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='unistr/u8-uctomb-aux.c' object='unistr/libdiffutils_a-u8-uctomb-aux.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o unistr/libdiffutils_a-u8-uctomb-aux.o `test -f 'unistr/u8-uctomb-aux.c' || echo '$(srcdir)/'`unistr/u8-uctomb-aux.c
+
+unistr/libdiffutils_a-u8-uctomb-aux.obj: unistr/u8-uctomb-aux.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT unistr/libdiffutils_a-u8-uctomb-aux.obj -MD -MP -MF unistr/$(DEPDIR)/libdiffutils_a-u8-uctomb-aux.Tpo -c -o unistr/libdiffutils_a-u8-uctomb-aux.obj `if test -f 'unistr/u8-uctomb-aux.c'; then $(CYGPATH_W) 'unistr/u8-uctomb-aux.c'; else $(CYGPATH_W) '$(srcdir)/unistr/u8-uctomb-aux.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) unistr/$(DEPDIR)/libdiffutils_a-u8-uctomb-aux.Tpo unistr/$(DEPDIR)/libdiffutils_a-u8-uctomb-aux.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='unistr/u8-uctomb-aux.c' object='unistr/libdiffutils_a-u8-uctomb-aux.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o unistr/libdiffutils_a-u8-uctomb-aux.obj `if test -f 'unistr/u8-uctomb-aux.c'; then $(CYGPATH_W) 'unistr/u8-uctomb-aux.c'; else $(CYGPATH_W) '$(srcdir)/unistr/u8-uctomb-aux.c'; fi`
+
+uniwidth/libdiffutils_a-width.o: uniwidth/width.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT uniwidth/libdiffutils_a-width.o -MD -MP -MF uniwidth/$(DEPDIR)/libdiffutils_a-width.Tpo -c -o uniwidth/libdiffutils_a-width.o `test -f 'uniwidth/width.c' || echo '$(srcdir)/'`uniwidth/width.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) uniwidth/$(DEPDIR)/libdiffutils_a-width.Tpo uniwidth/$(DEPDIR)/libdiffutils_a-width.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='uniwidth/width.c' object='uniwidth/libdiffutils_a-width.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o uniwidth/libdiffutils_a-width.o `test -f 'uniwidth/width.c' || echo '$(srcdir)/'`uniwidth/width.c
+
+uniwidth/libdiffutils_a-width.obj: uniwidth/width.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT uniwidth/libdiffutils_a-width.obj -MD -MP -MF uniwidth/$(DEPDIR)/libdiffutils_a-width.Tpo -c -o uniwidth/libdiffutils_a-width.obj `if test -f 'uniwidth/width.c'; then $(CYGPATH_W) 'uniwidth/width.c'; else $(CYGPATH_W) '$(srcdir)/uniwidth/width.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) uniwidth/$(DEPDIR)/libdiffutils_a-width.Tpo uniwidth/$(DEPDIR)/libdiffutils_a-width.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='uniwidth/width.c' object='uniwidth/libdiffutils_a-width.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o uniwidth/libdiffutils_a-width.obj `if test -f 'uniwidth/width.c'; then $(CYGPATH_W) 'uniwidth/width.c'; else $(CYGPATH_W) '$(srcdir)/uniwidth/width.c'; fi`
+
+libdiffutils_a-unsetenv.o: unsetenv.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-unsetenv.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-unsetenv.Tpo -c -o libdiffutils_a-unsetenv.o `test -f 'unsetenv.c' || echo '$(srcdir)/'`unsetenv.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-unsetenv.Tpo $(DEPDIR)/libdiffutils_a-unsetenv.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='unsetenv.c' object='libdiffutils_a-unsetenv.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-unsetenv.o `test -f 'unsetenv.c' || echo '$(srcdir)/'`unsetenv.c
+
+libdiffutils_a-unsetenv.obj: unsetenv.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-unsetenv.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-unsetenv.Tpo -c -o libdiffutils_a-unsetenv.obj `if test -f 'unsetenv.c'; then $(CYGPATH_W) 'unsetenv.c'; else $(CYGPATH_W) '$(srcdir)/unsetenv.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-unsetenv.Tpo $(DEPDIR)/libdiffutils_a-unsetenv.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='unsetenv.c' object='libdiffutils_a-unsetenv.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-unsetenv.obj `if test -f 'unsetenv.c'; then $(CYGPATH_W) 'unsetenv.c'; else $(CYGPATH_W) '$(srcdir)/unsetenv.c'; fi`
+
+libdiffutils_a-version-etc.o: version-etc.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-version-etc.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-version-etc.Tpo -c -o libdiffutils_a-version-etc.o `test -f 'version-etc.c' || echo '$(srcdir)/'`version-etc.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-version-etc.Tpo $(DEPDIR)/libdiffutils_a-version-etc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='version-etc.c' object='libdiffutils_a-version-etc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-version-etc.o `test -f 'version-etc.c' || echo '$(srcdir)/'`version-etc.c
+
+libdiffutils_a-version-etc.obj: version-etc.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-version-etc.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-version-etc.Tpo -c -o libdiffutils_a-version-etc.obj `if test -f 'version-etc.c'; then $(CYGPATH_W) 'version-etc.c'; else $(CYGPATH_W) '$(srcdir)/version-etc.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-version-etc.Tpo $(DEPDIR)/libdiffutils_a-version-etc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='version-etc.c' object='libdiffutils_a-version-etc.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-version-etc.obj `if test -f 'version-etc.c'; then $(CYGPATH_W) 'version-etc.c'; else $(CYGPATH_W) '$(srcdir)/version-etc.c'; fi`
+
+libdiffutils_a-version-etc-fsf.o: version-etc-fsf.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-version-etc-fsf.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-version-etc-fsf.Tpo -c -o libdiffutils_a-version-etc-fsf.o `test -f 'version-etc-fsf.c' || echo '$(srcdir)/'`version-etc-fsf.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-version-etc-fsf.Tpo $(DEPDIR)/libdiffutils_a-version-etc-fsf.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='version-etc-fsf.c' object='libdiffutils_a-version-etc-fsf.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-version-etc-fsf.o `test -f 'version-etc-fsf.c' || echo '$(srcdir)/'`version-etc-fsf.c
+
+libdiffutils_a-version-etc-fsf.obj: version-etc-fsf.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-version-etc-fsf.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-version-etc-fsf.Tpo -c -o libdiffutils_a-version-etc-fsf.obj `if test -f 'version-etc-fsf.c'; then $(CYGPATH_W) 'version-etc-fsf.c'; else $(CYGPATH_W) '$(srcdir)/version-etc-fsf.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-version-etc-fsf.Tpo $(DEPDIR)/libdiffutils_a-version-etc-fsf.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='version-etc-fsf.c' object='libdiffutils_a-version-etc-fsf.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-version-etc-fsf.obj `if test -f 'version-etc-fsf.c'; then $(CYGPATH_W) 'version-etc-fsf.c'; else $(CYGPATH_W) '$(srcdir)/version-etc-fsf.c'; fi`
+
+libdiffutils_a-wcrtomb.o: wcrtomb.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-wcrtomb.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-wcrtomb.Tpo -c -o libdiffutils_a-wcrtomb.o `test -f 'wcrtomb.c' || echo '$(srcdir)/'`wcrtomb.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-wcrtomb.Tpo $(DEPDIR)/libdiffutils_a-wcrtomb.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='wcrtomb.c' object='libdiffutils_a-wcrtomb.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-wcrtomb.o `test -f 'wcrtomb.c' || echo '$(srcdir)/'`wcrtomb.c
+
+libdiffutils_a-wcrtomb.obj: wcrtomb.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-wcrtomb.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-wcrtomb.Tpo -c -o libdiffutils_a-wcrtomb.obj `if test -f 'wcrtomb.c'; then $(CYGPATH_W) 'wcrtomb.c'; else $(CYGPATH_W) '$(srcdir)/wcrtomb.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-wcrtomb.Tpo $(DEPDIR)/libdiffutils_a-wcrtomb.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='wcrtomb.c' object='libdiffutils_a-wcrtomb.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-wcrtomb.obj `if test -f 'wcrtomb.c'; then $(CYGPATH_W) 'wcrtomb.c'; else $(CYGPATH_W) '$(srcdir)/wcrtomb.c'; fi`
+
+libdiffutils_a-wctype-h.o: wctype-h.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-wctype-h.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-wctype-h.Tpo -c -o libdiffutils_a-wctype-h.o `test -f 'wctype-h.c' || echo '$(srcdir)/'`wctype-h.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-wctype-h.Tpo $(DEPDIR)/libdiffutils_a-wctype-h.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='wctype-h.c' object='libdiffutils_a-wctype-h.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-wctype-h.o `test -f 'wctype-h.c' || echo '$(srcdir)/'`wctype-h.c
+
+libdiffutils_a-wctype-h.obj: wctype-h.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-wctype-h.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-wctype-h.Tpo -c -o libdiffutils_a-wctype-h.obj `if test -f 'wctype-h.c'; then $(CYGPATH_W) 'wctype-h.c'; else $(CYGPATH_W) '$(srcdir)/wctype-h.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-wctype-h.Tpo $(DEPDIR)/libdiffutils_a-wctype-h.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='wctype-h.c' object='libdiffutils_a-wctype-h.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-wctype-h.obj `if test -f 'wctype-h.c'; then $(CYGPATH_W) 'wctype-h.c'; else $(CYGPATH_W) '$(srcdir)/wctype-h.c'; fi`
+
+libdiffutils_a-wcwidth.o: wcwidth.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-wcwidth.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-wcwidth.Tpo -c -o libdiffutils_a-wcwidth.o `test -f 'wcwidth.c' || echo '$(srcdir)/'`wcwidth.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-wcwidth.Tpo $(DEPDIR)/libdiffutils_a-wcwidth.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='wcwidth.c' object='libdiffutils_a-wcwidth.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-wcwidth.o `test -f 'wcwidth.c' || echo '$(srcdir)/'`wcwidth.c
+
+libdiffutils_a-wcwidth.obj: wcwidth.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-wcwidth.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-wcwidth.Tpo -c -o libdiffutils_a-wcwidth.obj `if test -f 'wcwidth.c'; then $(CYGPATH_W) 'wcwidth.c'; else $(CYGPATH_W) '$(srcdir)/wcwidth.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-wcwidth.Tpo $(DEPDIR)/libdiffutils_a-wcwidth.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='wcwidth.c' object='libdiffutils_a-wcwidth.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-wcwidth.obj `if test -f 'wcwidth.c'; then $(CYGPATH_W) 'wcwidth.c'; else $(CYGPATH_W) '$(srcdir)/wcwidth.c'; fi`
+
+libdiffutils_a-windows-mutex.o: windows-mutex.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-windows-mutex.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-windows-mutex.Tpo -c -o libdiffutils_a-windows-mutex.o `test -f 'windows-mutex.c' || echo '$(srcdir)/'`windows-mutex.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-windows-mutex.Tpo $(DEPDIR)/libdiffutils_a-windows-mutex.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='windows-mutex.c' object='libdiffutils_a-windows-mutex.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-windows-mutex.o `test -f 'windows-mutex.c' || echo '$(srcdir)/'`windows-mutex.c
+
+libdiffutils_a-windows-mutex.obj: windows-mutex.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-windows-mutex.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-windows-mutex.Tpo -c -o libdiffutils_a-windows-mutex.obj `if test -f 'windows-mutex.c'; then $(CYGPATH_W) 'windows-mutex.c'; else $(CYGPATH_W) '$(srcdir)/windows-mutex.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-windows-mutex.Tpo $(DEPDIR)/libdiffutils_a-windows-mutex.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='windows-mutex.c' object='libdiffutils_a-windows-mutex.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-windows-mutex.obj `if test -f 'windows-mutex.c'; then $(CYGPATH_W) 'windows-mutex.c'; else $(CYGPATH_W) '$(srcdir)/windows-mutex.c'; fi`
+
+libdiffutils_a-windows-once.o: windows-once.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-windows-once.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-windows-once.Tpo -c -o libdiffutils_a-windows-once.o `test -f 'windows-once.c' || echo '$(srcdir)/'`windows-once.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-windows-once.Tpo $(DEPDIR)/libdiffutils_a-windows-once.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='windows-once.c' object='libdiffutils_a-windows-once.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-windows-once.o `test -f 'windows-once.c' || echo '$(srcdir)/'`windows-once.c
+
+libdiffutils_a-windows-once.obj: windows-once.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-windows-once.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-windows-once.Tpo -c -o libdiffutils_a-windows-once.obj `if test -f 'windows-once.c'; then $(CYGPATH_W) 'windows-once.c'; else $(CYGPATH_W) '$(srcdir)/windows-once.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-windows-once.Tpo $(DEPDIR)/libdiffutils_a-windows-once.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='windows-once.c' object='libdiffutils_a-windows-once.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-windows-once.obj `if test -f 'windows-once.c'; then $(CYGPATH_W) 'windows-once.c'; else $(CYGPATH_W) '$(srcdir)/windows-once.c'; fi`
+
+libdiffutils_a-windows-recmutex.o: windows-recmutex.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-windows-recmutex.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-windows-recmutex.Tpo -c -o libdiffutils_a-windows-recmutex.o `test -f 'windows-recmutex.c' || echo '$(srcdir)/'`windows-recmutex.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-windows-recmutex.Tpo $(DEPDIR)/libdiffutils_a-windows-recmutex.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='windows-recmutex.c' object='libdiffutils_a-windows-recmutex.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-windows-recmutex.o `test -f 'windows-recmutex.c' || echo '$(srcdir)/'`windows-recmutex.c
+
+libdiffutils_a-windows-recmutex.obj: windows-recmutex.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-windows-recmutex.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-windows-recmutex.Tpo -c -o libdiffutils_a-windows-recmutex.obj `if test -f 'windows-recmutex.c'; then $(CYGPATH_W) 'windows-recmutex.c'; else $(CYGPATH_W) '$(srcdir)/windows-recmutex.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-windows-recmutex.Tpo $(DEPDIR)/libdiffutils_a-windows-recmutex.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='windows-recmutex.c' object='libdiffutils_a-windows-recmutex.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-windows-recmutex.obj `if test -f 'windows-recmutex.c'; then $(CYGPATH_W) 'windows-recmutex.c'; else $(CYGPATH_W) '$(srcdir)/windows-recmutex.c'; fi`
+
+libdiffutils_a-windows-rwlock.o: windows-rwlock.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-windows-rwlock.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-windows-rwlock.Tpo -c -o libdiffutils_a-windows-rwlock.o `test -f 'windows-rwlock.c' || echo '$(srcdir)/'`windows-rwlock.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-windows-rwlock.Tpo $(DEPDIR)/libdiffutils_a-windows-rwlock.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='windows-rwlock.c' object='libdiffutils_a-windows-rwlock.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-windows-rwlock.o `test -f 'windows-rwlock.c' || echo '$(srcdir)/'`windows-rwlock.c
+
+libdiffutils_a-windows-rwlock.obj: windows-rwlock.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-windows-rwlock.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-windows-rwlock.Tpo -c -o libdiffutils_a-windows-rwlock.obj `if test -f 'windows-rwlock.c'; then $(CYGPATH_W) 'windows-rwlock.c'; else $(CYGPATH_W) '$(srcdir)/windows-rwlock.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-windows-rwlock.Tpo $(DEPDIR)/libdiffutils_a-windows-rwlock.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='windows-rwlock.c' object='libdiffutils_a-windows-rwlock.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-windows-rwlock.obj `if test -f 'windows-rwlock.c'; then $(CYGPATH_W) 'windows-rwlock.c'; else $(CYGPATH_W) '$(srcdir)/windows-rwlock.c'; fi`
+
+libdiffutils_a-wmemchr.o: wmemchr.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-wmemchr.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-wmemchr.Tpo -c -o libdiffutils_a-wmemchr.o `test -f 'wmemchr.c' || echo '$(srcdir)/'`wmemchr.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-wmemchr.Tpo $(DEPDIR)/libdiffutils_a-wmemchr.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='wmemchr.c' object='libdiffutils_a-wmemchr.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-wmemchr.o `test -f 'wmemchr.c' || echo '$(srcdir)/'`wmemchr.c
+
+libdiffutils_a-wmemchr.obj: wmemchr.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-wmemchr.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-wmemchr.Tpo -c -o libdiffutils_a-wmemchr.obj `if test -f 'wmemchr.c'; then $(CYGPATH_W) 'wmemchr.c'; else $(CYGPATH_W) '$(srcdir)/wmemchr.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-wmemchr.Tpo $(DEPDIR)/libdiffutils_a-wmemchr.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='wmemchr.c' object='libdiffutils_a-wmemchr.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-wmemchr.obj `if test -f 'wmemchr.c'; then $(CYGPATH_W) 'wmemchr.c'; else $(CYGPATH_W) '$(srcdir)/wmemchr.c'; fi`
+
+libdiffutils_a-wmempcpy.o: wmempcpy.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-wmempcpy.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-wmempcpy.Tpo -c -o libdiffutils_a-wmempcpy.o `test -f 'wmempcpy.c' || echo '$(srcdir)/'`wmempcpy.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-wmempcpy.Tpo $(DEPDIR)/libdiffutils_a-wmempcpy.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='wmempcpy.c' object='libdiffutils_a-wmempcpy.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-wmempcpy.o `test -f 'wmempcpy.c' || echo '$(srcdir)/'`wmempcpy.c
+
+libdiffutils_a-wmempcpy.obj: wmempcpy.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-wmempcpy.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-wmempcpy.Tpo -c -o libdiffutils_a-wmempcpy.obj `if test -f 'wmempcpy.c'; then $(CYGPATH_W) 'wmempcpy.c'; else $(CYGPATH_W) '$(srcdir)/wmempcpy.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-wmempcpy.Tpo $(DEPDIR)/libdiffutils_a-wmempcpy.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='wmempcpy.c' object='libdiffutils_a-wmempcpy.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-wmempcpy.obj `if test -f 'wmempcpy.c'; then $(CYGPATH_W) 'wmempcpy.c'; else $(CYGPATH_W) '$(srcdir)/wmempcpy.c'; fi`
+
+libdiffutils_a-xmalloc.o: xmalloc.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-xmalloc.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-xmalloc.Tpo -c -o libdiffutils_a-xmalloc.o `test -f 'xmalloc.c' || echo '$(srcdir)/'`xmalloc.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-xmalloc.Tpo $(DEPDIR)/libdiffutils_a-xmalloc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='xmalloc.c' object='libdiffutils_a-xmalloc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-xmalloc.o `test -f 'xmalloc.c' || echo '$(srcdir)/'`xmalloc.c
+
+libdiffutils_a-xmalloc.obj: xmalloc.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-xmalloc.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-xmalloc.Tpo -c -o libdiffutils_a-xmalloc.obj `if test -f 'xmalloc.c'; then $(CYGPATH_W) 'xmalloc.c'; else $(CYGPATH_W) '$(srcdir)/xmalloc.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-xmalloc.Tpo $(DEPDIR)/libdiffutils_a-xmalloc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='xmalloc.c' object='libdiffutils_a-xmalloc.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-xmalloc.obj `if test -f 'xmalloc.c'; then $(CYGPATH_W) 'xmalloc.c'; else $(CYGPATH_W) '$(srcdir)/xmalloc.c'; fi`
+
+libdiffutils_a-xalloc-die.o: xalloc-die.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-xalloc-die.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-xalloc-die.Tpo -c -o libdiffutils_a-xalloc-die.o `test -f 'xalloc-die.c' || echo '$(srcdir)/'`xalloc-die.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-xalloc-die.Tpo $(DEPDIR)/libdiffutils_a-xalloc-die.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='xalloc-die.c' object='libdiffutils_a-xalloc-die.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-xalloc-die.o `test -f 'xalloc-die.c' || echo '$(srcdir)/'`xalloc-die.c
+
+libdiffutils_a-xalloc-die.obj: xalloc-die.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-xalloc-die.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-xalloc-die.Tpo -c -o libdiffutils_a-xalloc-die.obj `if test -f 'xalloc-die.c'; then $(CYGPATH_W) 'xalloc-die.c'; else $(CYGPATH_W) '$(srcdir)/xalloc-die.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-xalloc-die.Tpo $(DEPDIR)/libdiffutils_a-xalloc-die.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='xalloc-die.c' object='libdiffutils_a-xalloc-die.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-xalloc-die.obj `if test -f 'xalloc-die.c'; then $(CYGPATH_W) 'xalloc-die.c'; else $(CYGPATH_W) '$(srcdir)/xalloc-die.c'; fi`
+
+libdiffutils_a-xfreopen.o: xfreopen.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-xfreopen.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-xfreopen.Tpo -c -o libdiffutils_a-xfreopen.o `test -f 'xfreopen.c' || echo '$(srcdir)/'`xfreopen.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-xfreopen.Tpo $(DEPDIR)/libdiffutils_a-xfreopen.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='xfreopen.c' object='libdiffutils_a-xfreopen.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-xfreopen.o `test -f 'xfreopen.c' || echo '$(srcdir)/'`xfreopen.c
+
+libdiffutils_a-xfreopen.obj: xfreopen.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-xfreopen.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-xfreopen.Tpo -c -o libdiffutils_a-xfreopen.obj `if test -f 'xfreopen.c'; then $(CYGPATH_W) 'xfreopen.c'; else $(CYGPATH_W) '$(srcdir)/xfreopen.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-xfreopen.Tpo $(DEPDIR)/libdiffutils_a-xfreopen.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='xfreopen.c' object='libdiffutils_a-xfreopen.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-xfreopen.obj `if test -f 'xfreopen.c'; then $(CYGPATH_W) 'xfreopen.c'; else $(CYGPATH_W) '$(srcdir)/xfreopen.c'; fi`
+
+libdiffutils_a-xmalloca.o: xmalloca.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-xmalloca.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-xmalloca.Tpo -c -o libdiffutils_a-xmalloca.o `test -f 'xmalloca.c' || echo '$(srcdir)/'`xmalloca.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-xmalloca.Tpo $(DEPDIR)/libdiffutils_a-xmalloca.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='xmalloca.c' object='libdiffutils_a-xmalloca.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-xmalloca.o `test -f 'xmalloca.c' || echo '$(srcdir)/'`xmalloca.c
+
+libdiffutils_a-xmalloca.obj: xmalloca.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-xmalloca.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-xmalloca.Tpo -c -o libdiffutils_a-xmalloca.obj `if test -f 'xmalloca.c'; then $(CYGPATH_W) 'xmalloca.c'; else $(CYGPATH_W) '$(srcdir)/xmalloca.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-xmalloca.Tpo $(DEPDIR)/libdiffutils_a-xmalloca.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='xmalloca.c' object='libdiffutils_a-xmalloca.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-xmalloca.obj `if test -f 'xmalloca.c'; then $(CYGPATH_W) 'xmalloca.c'; else $(CYGPATH_W) '$(srcdir)/xmalloca.c'; fi`
+
+libdiffutils_a-xreadlink.o: xreadlink.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-xreadlink.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-xreadlink.Tpo -c -o libdiffutils_a-xreadlink.o `test -f 'xreadlink.c' || echo '$(srcdir)/'`xreadlink.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-xreadlink.Tpo $(DEPDIR)/libdiffutils_a-xreadlink.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='xreadlink.c' object='libdiffutils_a-xreadlink.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-xreadlink.o `test -f 'xreadlink.c' || echo '$(srcdir)/'`xreadlink.c
+
+libdiffutils_a-xreadlink.obj: xreadlink.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-xreadlink.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-xreadlink.Tpo -c -o libdiffutils_a-xreadlink.obj `if test -f 'xreadlink.c'; then $(CYGPATH_W) 'xreadlink.c'; else $(CYGPATH_W) '$(srcdir)/xreadlink.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-xreadlink.Tpo $(DEPDIR)/libdiffutils_a-xreadlink.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='xreadlink.c' object='libdiffutils_a-xreadlink.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-xreadlink.obj `if test -f 'xreadlink.c'; then $(CYGPATH_W) 'xreadlink.c'; else $(CYGPATH_W) '$(srcdir)/xreadlink.c'; fi`
+
+libdiffutils_a-xstdopen.o: xstdopen.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-xstdopen.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-xstdopen.Tpo -c -o libdiffutils_a-xstdopen.o `test -f 'xstdopen.c' || echo '$(srcdir)/'`xstdopen.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-xstdopen.Tpo $(DEPDIR)/libdiffutils_a-xstdopen.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='xstdopen.c' object='libdiffutils_a-xstdopen.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-xstdopen.o `test -f 'xstdopen.c' || echo '$(srcdir)/'`xstdopen.c
+
+libdiffutils_a-xstdopen.obj: xstdopen.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-xstdopen.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-xstdopen.Tpo -c -o libdiffutils_a-xstdopen.obj `if test -f 'xstdopen.c'; then $(CYGPATH_W) 'xstdopen.c'; else $(CYGPATH_W) '$(srcdir)/xstdopen.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-xstdopen.Tpo $(DEPDIR)/libdiffutils_a-xstdopen.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='xstdopen.c' object='libdiffutils_a-xstdopen.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-xstdopen.obj `if test -f 'xstdopen.c'; then $(CYGPATH_W) 'xstdopen.c'; else $(CYGPATH_W) '$(srcdir)/xstdopen.c'; fi`
+
+libdiffutils_a-xstriconv.o: xstriconv.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-xstriconv.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-xstriconv.Tpo -c -o libdiffutils_a-xstriconv.o `test -f 'xstriconv.c' || echo '$(srcdir)/'`xstriconv.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-xstriconv.Tpo $(DEPDIR)/libdiffutils_a-xstriconv.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='xstriconv.c' object='libdiffutils_a-xstriconv.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-xstriconv.o `test -f 'xstriconv.c' || echo '$(srcdir)/'`xstriconv.c
+
+libdiffutils_a-xstriconv.obj: xstriconv.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-xstriconv.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-xstriconv.Tpo -c -o libdiffutils_a-xstriconv.obj `if test -f 'xstriconv.c'; then $(CYGPATH_W) 'xstriconv.c'; else $(CYGPATH_W) '$(srcdir)/xstriconv.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-xstriconv.Tpo $(DEPDIR)/libdiffutils_a-xstriconv.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='xstriconv.c' object='libdiffutils_a-xstriconv.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-xstriconv.obj `if test -f 'xstriconv.c'; then $(CYGPATH_W) 'xstriconv.c'; else $(CYGPATH_W) '$(srcdir)/xstriconv.c'; fi`
+
+libdiffutils_a-xstrtoimax.o: xstrtoimax.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-xstrtoimax.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-xstrtoimax.Tpo -c -o libdiffutils_a-xstrtoimax.o `test -f 'xstrtoimax.c' || echo '$(srcdir)/'`xstrtoimax.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-xstrtoimax.Tpo $(DEPDIR)/libdiffutils_a-xstrtoimax.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='xstrtoimax.c' object='libdiffutils_a-xstrtoimax.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-xstrtoimax.o `test -f 'xstrtoimax.c' || echo '$(srcdir)/'`xstrtoimax.c
+
+libdiffutils_a-xstrtoimax.obj: xstrtoimax.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-xstrtoimax.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-xstrtoimax.Tpo -c -o libdiffutils_a-xstrtoimax.obj `if test -f 'xstrtoimax.c'; then $(CYGPATH_W) 'xstrtoimax.c'; else $(CYGPATH_W) '$(srcdir)/xstrtoimax.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-xstrtoimax.Tpo $(DEPDIR)/libdiffutils_a-xstrtoimax.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='xstrtoimax.c' object='libdiffutils_a-xstrtoimax.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-xstrtoimax.obj `if test -f 'xstrtoimax.c'; then $(CYGPATH_W) 'xstrtoimax.c'; else $(CYGPATH_W) '$(srcdir)/xstrtoimax.c'; fi`
+
+libdiffutils_a-xstrtol.o: xstrtol.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-xstrtol.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-xstrtol.Tpo -c -o libdiffutils_a-xstrtol.o `test -f 'xstrtol.c' || echo '$(srcdir)/'`xstrtol.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-xstrtol.Tpo $(DEPDIR)/libdiffutils_a-xstrtol.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='xstrtol.c' object='libdiffutils_a-xstrtol.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-xstrtol.o `test -f 'xstrtol.c' || echo '$(srcdir)/'`xstrtol.c
+
+libdiffutils_a-xstrtol.obj: xstrtol.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-xstrtol.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-xstrtol.Tpo -c -o libdiffutils_a-xstrtol.obj `if test -f 'xstrtol.c'; then $(CYGPATH_W) 'xstrtol.c'; else $(CYGPATH_W) '$(srcdir)/xstrtol.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-xstrtol.Tpo $(DEPDIR)/libdiffutils_a-xstrtol.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='xstrtol.c' object='libdiffutils_a-xstrtol.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-xstrtol.obj `if test -f 'xstrtol.c'; then $(CYGPATH_W) 'xstrtol.c'; else $(CYGPATH_W) '$(srcdir)/xstrtol.c'; fi`
+
+libdiffutils_a-xstrtoul.o: xstrtoul.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-xstrtoul.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-xstrtoul.Tpo -c -o libdiffutils_a-xstrtoul.o `test -f 'xstrtoul.c' || echo '$(srcdir)/'`xstrtoul.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-xstrtoul.Tpo $(DEPDIR)/libdiffutils_a-xstrtoul.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='xstrtoul.c' object='libdiffutils_a-xstrtoul.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-xstrtoul.o `test -f 'xstrtoul.c' || echo '$(srcdir)/'`xstrtoul.c
+
+libdiffutils_a-xstrtoul.obj: xstrtoul.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-xstrtoul.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-xstrtoul.Tpo -c -o libdiffutils_a-xstrtoul.obj `if test -f 'xstrtoul.c'; then $(CYGPATH_W) 'xstrtoul.c'; else $(CYGPATH_W) '$(srcdir)/xstrtoul.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-xstrtoul.Tpo $(DEPDIR)/libdiffutils_a-xstrtoul.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='xstrtoul.c' object='libdiffutils_a-xstrtoul.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-xstrtoul.obj `if test -f 'xstrtoul.c'; then $(CYGPATH_W) 'xstrtoul.c'; else $(CYGPATH_W) '$(srcdir)/xstrtoul.c'; fi`
+
+libdiffutils_a-cmpbuf.o: cmpbuf.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-cmpbuf.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-cmpbuf.Tpo -c -o libdiffutils_a-cmpbuf.o `test -f 'cmpbuf.c' || echo '$(srcdir)/'`cmpbuf.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-cmpbuf.Tpo $(DEPDIR)/libdiffutils_a-cmpbuf.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='cmpbuf.c' object='libdiffutils_a-cmpbuf.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-cmpbuf.o `test -f 'cmpbuf.c' || echo '$(srcdir)/'`cmpbuf.c
+
+libdiffutils_a-cmpbuf.obj: cmpbuf.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-cmpbuf.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-cmpbuf.Tpo -c -o libdiffutils_a-cmpbuf.obj `if test -f 'cmpbuf.c'; then $(CYGPATH_W) 'cmpbuf.c'; else $(CYGPATH_W) '$(srcdir)/cmpbuf.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-cmpbuf.Tpo $(DEPDIR)/libdiffutils_a-cmpbuf.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='cmpbuf.c' object='libdiffutils_a-cmpbuf.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-cmpbuf.obj `if test -f 'cmpbuf.c'; then $(CYGPATH_W) 'cmpbuf.c'; else $(CYGPATH_W) '$(srcdir)/cmpbuf.c'; fi`
+
+libdiffutils_a-calloc.o: calloc.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-calloc.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-calloc.Tpo -c -o libdiffutils_a-calloc.o `test -f 'calloc.c' || echo '$(srcdir)/'`calloc.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-calloc.Tpo $(DEPDIR)/libdiffutils_a-calloc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='calloc.c' object='libdiffutils_a-calloc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-calloc.o `test -f 'calloc.c' || echo '$(srcdir)/'`calloc.c
+
+libdiffutils_a-calloc.obj: calloc.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-calloc.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-calloc.Tpo -c -o libdiffutils_a-calloc.obj `if test -f 'calloc.c'; then $(CYGPATH_W) 'calloc.c'; else $(CYGPATH_W) '$(srcdir)/calloc.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-calloc.Tpo $(DEPDIR)/libdiffutils_a-calloc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='calloc.c' object='libdiffutils_a-calloc.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-calloc.obj `if test -f 'calloc.c'; then $(CYGPATH_W) 'calloc.c'; else $(CYGPATH_W) '$(srcdir)/calloc.c'; fi`
+
+libdiffutils_a-fnmatch.o: fnmatch.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-fnmatch.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-fnmatch.Tpo -c -o libdiffutils_a-fnmatch.o `test -f 'fnmatch.c' || echo '$(srcdir)/'`fnmatch.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-fnmatch.Tpo $(DEPDIR)/libdiffutils_a-fnmatch.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='fnmatch.c' object='libdiffutils_a-fnmatch.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-fnmatch.o `test -f 'fnmatch.c' || echo '$(srcdir)/'`fnmatch.c
+
+libdiffutils_a-fnmatch.obj: fnmatch.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-fnmatch.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-fnmatch.Tpo -c -o libdiffutils_a-fnmatch.obj `if test -f 'fnmatch.c'; then $(CYGPATH_W) 'fnmatch.c'; else $(CYGPATH_W) '$(srcdir)/fnmatch.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-fnmatch.Tpo $(DEPDIR)/libdiffutils_a-fnmatch.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='fnmatch.c' object='libdiffutils_a-fnmatch.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-fnmatch.obj `if test -f 'fnmatch.c'; then $(CYGPATH_W) 'fnmatch.c'; else $(CYGPATH_W) '$(srcdir)/fnmatch.c'; fi`
+
+libdiffutils_a-fnmatch_loop.o: fnmatch_loop.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-fnmatch_loop.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-fnmatch_loop.Tpo -c -o libdiffutils_a-fnmatch_loop.o `test -f 'fnmatch_loop.c' || echo '$(srcdir)/'`fnmatch_loop.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-fnmatch_loop.Tpo $(DEPDIR)/libdiffutils_a-fnmatch_loop.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='fnmatch_loop.c' object='libdiffutils_a-fnmatch_loop.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-fnmatch_loop.o `test -f 'fnmatch_loop.c' || echo '$(srcdir)/'`fnmatch_loop.c
+
+libdiffutils_a-fnmatch_loop.obj: fnmatch_loop.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-fnmatch_loop.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-fnmatch_loop.Tpo -c -o libdiffutils_a-fnmatch_loop.obj `if test -f 'fnmatch_loop.c'; then $(CYGPATH_W) 'fnmatch_loop.c'; else $(CYGPATH_W) '$(srcdir)/fnmatch_loop.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-fnmatch_loop.Tpo $(DEPDIR)/libdiffutils_a-fnmatch_loop.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='fnmatch_loop.c' object='libdiffutils_a-fnmatch_loop.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-fnmatch_loop.obj `if test -f 'fnmatch_loop.c'; then $(CYGPATH_W) 'fnmatch_loop.c'; else $(CYGPATH_W) '$(srcdir)/fnmatch_loop.c'; fi`
+
+libdiffutils_a-fopen.o: fopen.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-fopen.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-fopen.Tpo -c -o libdiffutils_a-fopen.o `test -f 'fopen.c' || echo '$(srcdir)/'`fopen.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-fopen.Tpo $(DEPDIR)/libdiffutils_a-fopen.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='fopen.c' object='libdiffutils_a-fopen.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-fopen.o `test -f 'fopen.c' || echo '$(srcdir)/'`fopen.c
+
+libdiffutils_a-fopen.obj: fopen.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-fopen.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-fopen.Tpo -c -o libdiffutils_a-fopen.obj `if test -f 'fopen.c'; then $(CYGPATH_W) 'fopen.c'; else $(CYGPATH_W) '$(srcdir)/fopen.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-fopen.Tpo $(DEPDIR)/libdiffutils_a-fopen.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='fopen.c' object='libdiffutils_a-fopen.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-fopen.obj `if test -f 'fopen.c'; then $(CYGPATH_W) 'fopen.c'; else $(CYGPATH_W) '$(srcdir)/fopen.c'; fi`
+
+libdiffutils_a-stat-w32.o: stat-w32.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-stat-w32.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-stat-w32.Tpo -c -o libdiffutils_a-stat-w32.o `test -f 'stat-w32.c' || echo '$(srcdir)/'`stat-w32.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-stat-w32.Tpo $(DEPDIR)/libdiffutils_a-stat-w32.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='stat-w32.c' object='libdiffutils_a-stat-w32.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-stat-w32.o `test -f 'stat-w32.c' || echo '$(srcdir)/'`stat-w32.c
+
+libdiffutils_a-stat-w32.obj: stat-w32.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-stat-w32.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-stat-w32.Tpo -c -o libdiffutils_a-stat-w32.obj `if test -f 'stat-w32.c'; then $(CYGPATH_W) 'stat-w32.c'; else $(CYGPATH_W) '$(srcdir)/stat-w32.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-stat-w32.Tpo $(DEPDIR)/libdiffutils_a-stat-w32.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='stat-w32.c' object='libdiffutils_a-stat-w32.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-stat-w32.obj `if test -f 'stat-w32.c'; then $(CYGPATH_W) 'stat-w32.c'; else $(CYGPATH_W) '$(srcdir)/stat-w32.c'; fi`
+
+malloc/libdiffutils_a-dynarray-skeleton.o: malloc/dynarray-skeleton.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT malloc/libdiffutils_a-dynarray-skeleton.o -MD -MP -MF malloc/$(DEPDIR)/libdiffutils_a-dynarray-skeleton.Tpo -c -o malloc/libdiffutils_a-dynarray-skeleton.o `test -f 'malloc/dynarray-skeleton.c' || echo '$(srcdir)/'`malloc/dynarray-skeleton.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) malloc/$(DEPDIR)/libdiffutils_a-dynarray-skeleton.Tpo malloc/$(DEPDIR)/libdiffutils_a-dynarray-skeleton.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='malloc/dynarray-skeleton.c' object='malloc/libdiffutils_a-dynarray-skeleton.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o malloc/libdiffutils_a-dynarray-skeleton.o `test -f 'malloc/dynarray-skeleton.c' || echo '$(srcdir)/'`malloc/dynarray-skeleton.c
+
+malloc/libdiffutils_a-dynarray-skeleton.obj: malloc/dynarray-skeleton.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT malloc/libdiffutils_a-dynarray-skeleton.obj -MD -MP -MF malloc/$(DEPDIR)/libdiffutils_a-dynarray-skeleton.Tpo -c -o malloc/libdiffutils_a-dynarray-skeleton.obj `if test -f 'malloc/dynarray-skeleton.c'; then $(CYGPATH_W) 'malloc/dynarray-skeleton.c'; else $(CYGPATH_W) '$(srcdir)/malloc/dynarray-skeleton.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) malloc/$(DEPDIR)/libdiffutils_a-dynarray-skeleton.Tpo malloc/$(DEPDIR)/libdiffutils_a-dynarray-skeleton.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='malloc/dynarray-skeleton.c' object='malloc/libdiffutils_a-dynarray-skeleton.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o malloc/libdiffutils_a-dynarray-skeleton.obj `if test -f 'malloc/dynarray-skeleton.c'; then $(CYGPATH_W) 'malloc/dynarray-skeleton.c'; else $(CYGPATH_W) '$(srcdir)/malloc/dynarray-skeleton.c'; fi`
+
+libdiffutils_a-anytostr.o: anytostr.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-anytostr.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-anytostr.Tpo -c -o libdiffutils_a-anytostr.o `test -f 'anytostr.c' || echo '$(srcdir)/'`anytostr.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-anytostr.Tpo $(DEPDIR)/libdiffutils_a-anytostr.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='anytostr.c' object='libdiffutils_a-anytostr.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-anytostr.o `test -f 'anytostr.c' || echo '$(srcdir)/'`anytostr.c
+
+libdiffutils_a-anytostr.obj: anytostr.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-anytostr.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-anytostr.Tpo -c -o libdiffutils_a-anytostr.obj `if test -f 'anytostr.c'; then $(CYGPATH_W) 'anytostr.c'; else $(CYGPATH_W) '$(srcdir)/anytostr.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-anytostr.Tpo $(DEPDIR)/libdiffutils_a-anytostr.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='anytostr.c' object='libdiffutils_a-anytostr.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-anytostr.obj `if test -f 'anytostr.c'; then $(CYGPATH_W) 'anytostr.c'; else $(CYGPATH_W) '$(srcdir)/anytostr.c'; fi`
+
+libdiffutils_a-malloc.o: malloc.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-malloc.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-malloc.Tpo -c -o libdiffutils_a-malloc.o `test -f 'malloc.c' || echo '$(srcdir)/'`malloc.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-malloc.Tpo $(DEPDIR)/libdiffutils_a-malloc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='malloc.c' object='libdiffutils_a-malloc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-malloc.o `test -f 'malloc.c' || echo '$(srcdir)/'`malloc.c
+
+libdiffutils_a-malloc.obj: malloc.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-malloc.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-malloc.Tpo -c -o libdiffutils_a-malloc.obj `if test -f 'malloc.c'; then $(CYGPATH_W) 'malloc.c'; else $(CYGPATH_W) '$(srcdir)/malloc.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-malloc.Tpo $(DEPDIR)/libdiffutils_a-malloc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='malloc.c' object='libdiffutils_a-malloc.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-malloc.obj `if test -f 'malloc.c'; then $(CYGPATH_W) 'malloc.c'; else $(CYGPATH_W) '$(srcdir)/malloc.c'; fi`
+
+libdiffutils_a-lc-charset-dispatch.o: lc-charset-dispatch.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-lc-charset-dispatch.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-lc-charset-dispatch.Tpo -c -o libdiffutils_a-lc-charset-dispatch.o `test -f 'lc-charset-dispatch.c' || echo '$(srcdir)/'`lc-charset-dispatch.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-lc-charset-dispatch.Tpo $(DEPDIR)/libdiffutils_a-lc-charset-dispatch.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='lc-charset-dispatch.c' object='libdiffutils_a-lc-charset-dispatch.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-lc-charset-dispatch.o `test -f 'lc-charset-dispatch.c' || echo '$(srcdir)/'`lc-charset-dispatch.c
+
+libdiffutils_a-lc-charset-dispatch.obj: lc-charset-dispatch.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-lc-charset-dispatch.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-lc-charset-dispatch.Tpo -c -o libdiffutils_a-lc-charset-dispatch.obj `if test -f 'lc-charset-dispatch.c'; then $(CYGPATH_W) 'lc-charset-dispatch.c'; else $(CYGPATH_W) '$(srcdir)/lc-charset-dispatch.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-lc-charset-dispatch.Tpo $(DEPDIR)/libdiffutils_a-lc-charset-dispatch.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='lc-charset-dispatch.c' object='libdiffutils_a-lc-charset-dispatch.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-lc-charset-dispatch.obj `if test -f 'lc-charset-dispatch.c'; then $(CYGPATH_W) 'lc-charset-dispatch.c'; else $(CYGPATH_W) '$(srcdir)/lc-charset-dispatch.c'; fi`
+
+libdiffutils_a-mbtowc-lock.o: mbtowc-lock.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-mbtowc-lock.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-mbtowc-lock.Tpo -c -o libdiffutils_a-mbtowc-lock.o `test -f 'mbtowc-lock.c' || echo '$(srcdir)/'`mbtowc-lock.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-mbtowc-lock.Tpo $(DEPDIR)/libdiffutils_a-mbtowc-lock.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mbtowc-lock.c' object='libdiffutils_a-mbtowc-lock.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-mbtowc-lock.o `test -f 'mbtowc-lock.c' || echo '$(srcdir)/'`mbtowc-lock.c
+
+libdiffutils_a-mbtowc-lock.obj: mbtowc-lock.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-mbtowc-lock.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-mbtowc-lock.Tpo -c -o libdiffutils_a-mbtowc-lock.obj `if test -f 'mbtowc-lock.c'; then $(CYGPATH_W) 'mbtowc-lock.c'; else $(CYGPATH_W) '$(srcdir)/mbtowc-lock.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-mbtowc-lock.Tpo $(DEPDIR)/libdiffutils_a-mbtowc-lock.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mbtowc-lock.c' object='libdiffutils_a-mbtowc-lock.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-mbtowc-lock.obj `if test -f 'mbtowc-lock.c'; then $(CYGPATH_W) 'mbtowc-lock.c'; else $(CYGPATH_W) '$(srcdir)/mbtowc-lock.c'; fi`
+
+libdiffutils_a-mbsrtowcs-state.o: mbsrtowcs-state.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-mbsrtowcs-state.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-mbsrtowcs-state.Tpo -c -o libdiffutils_a-mbsrtowcs-state.o `test -f 'mbsrtowcs-state.c' || echo '$(srcdir)/'`mbsrtowcs-state.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-mbsrtowcs-state.Tpo $(DEPDIR)/libdiffutils_a-mbsrtowcs-state.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mbsrtowcs-state.c' object='libdiffutils_a-mbsrtowcs-state.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-mbsrtowcs-state.o `test -f 'mbsrtowcs-state.c' || echo '$(srcdir)/'`mbsrtowcs-state.c
+
+libdiffutils_a-mbsrtowcs-state.obj: mbsrtowcs-state.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-mbsrtowcs-state.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-mbsrtowcs-state.Tpo -c -o libdiffutils_a-mbsrtowcs-state.obj `if test -f 'mbsrtowcs-state.c'; then $(CYGPATH_W) 'mbsrtowcs-state.c'; else $(CYGPATH_W) '$(srcdir)/mbsrtowcs-state.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-mbsrtowcs-state.Tpo $(DEPDIR)/libdiffutils_a-mbsrtowcs-state.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mbsrtowcs-state.c' object='libdiffutils_a-mbsrtowcs-state.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-mbsrtowcs-state.obj `if test -f 'mbsrtowcs-state.c'; then $(CYGPATH_W) 'mbsrtowcs-state.c'; else $(CYGPATH_W) '$(srcdir)/mbsrtowcs-state.c'; fi`
+
+libdiffutils_a-mktime.o: mktime.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-mktime.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-mktime.Tpo -c -o libdiffutils_a-mktime.o `test -f 'mktime.c' || echo '$(srcdir)/'`mktime.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-mktime.Tpo $(DEPDIR)/libdiffutils_a-mktime.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mktime.c' object='libdiffutils_a-mktime.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-mktime.o `test -f 'mktime.c' || echo '$(srcdir)/'`mktime.c
+
+libdiffutils_a-mktime.obj: mktime.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-mktime.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-mktime.Tpo -c -o libdiffutils_a-mktime.obj `if test -f 'mktime.c'; then $(CYGPATH_W) 'mktime.c'; else $(CYGPATH_W) '$(srcdir)/mktime.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-mktime.Tpo $(DEPDIR)/libdiffutils_a-mktime.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mktime.c' object='libdiffutils_a-mktime.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-mktime.obj `if test -f 'mktime.c'; then $(CYGPATH_W) 'mktime.c'; else $(CYGPATH_W) '$(srcdir)/mktime.c'; fi`
+
+libdiffutils_a-realloc.o: realloc.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-realloc.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-realloc.Tpo -c -o libdiffutils_a-realloc.o `test -f 'realloc.c' || echo '$(srcdir)/'`realloc.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-realloc.Tpo $(DEPDIR)/libdiffutils_a-realloc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='realloc.c' object='libdiffutils_a-realloc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-realloc.o `test -f 'realloc.c' || echo '$(srcdir)/'`realloc.c
+
+libdiffutils_a-realloc.obj: realloc.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-realloc.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-realloc.Tpo -c -o libdiffutils_a-realloc.obj `if test -f 'realloc.c'; then $(CYGPATH_W) 'realloc.c'; else $(CYGPATH_W) '$(srcdir)/realloc.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-realloc.Tpo $(DEPDIR)/libdiffutils_a-realloc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='realloc.c' object='libdiffutils_a-realloc.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-realloc.obj `if test -f 'realloc.c'; then $(CYGPATH_W) 'realloc.c'; else $(CYGPATH_W) '$(srcdir)/realloc.c'; fi`
+
+libdiffutils_a-regcomp.o: regcomp.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-regcomp.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-regcomp.Tpo -c -o libdiffutils_a-regcomp.o `test -f 'regcomp.c' || echo '$(srcdir)/'`regcomp.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-regcomp.Tpo $(DEPDIR)/libdiffutils_a-regcomp.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='regcomp.c' object='libdiffutils_a-regcomp.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-regcomp.o `test -f 'regcomp.c' || echo '$(srcdir)/'`regcomp.c
+
+libdiffutils_a-regcomp.obj: regcomp.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-regcomp.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-regcomp.Tpo -c -o libdiffutils_a-regcomp.obj `if test -f 'regcomp.c'; then $(CYGPATH_W) 'regcomp.c'; else $(CYGPATH_W) '$(srcdir)/regcomp.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-regcomp.Tpo $(DEPDIR)/libdiffutils_a-regcomp.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='regcomp.c' object='libdiffutils_a-regcomp.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-regcomp.obj `if test -f 'regcomp.c'; then $(CYGPATH_W) 'regcomp.c'; else $(CYGPATH_W) '$(srcdir)/regcomp.c'; fi`
+
+libdiffutils_a-regex_internal.o: regex_internal.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-regex_internal.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-regex_internal.Tpo -c -o libdiffutils_a-regex_internal.o `test -f 'regex_internal.c' || echo '$(srcdir)/'`regex_internal.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-regex_internal.Tpo $(DEPDIR)/libdiffutils_a-regex_internal.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='regex_internal.c' object='libdiffutils_a-regex_internal.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-regex_internal.o `test -f 'regex_internal.c' || echo '$(srcdir)/'`regex_internal.c
+
+libdiffutils_a-regex_internal.obj: regex_internal.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-regex_internal.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-regex_internal.Tpo -c -o libdiffutils_a-regex_internal.obj `if test -f 'regex_internal.c'; then $(CYGPATH_W) 'regex_internal.c'; else $(CYGPATH_W) '$(srcdir)/regex_internal.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-regex_internal.Tpo $(DEPDIR)/libdiffutils_a-regex_internal.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='regex_internal.c' object='libdiffutils_a-regex_internal.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-regex_internal.obj `if test -f 'regex_internal.c'; then $(CYGPATH_W) 'regex_internal.c'; else $(CYGPATH_W) '$(srcdir)/regex_internal.c'; fi`
+
+libdiffutils_a-regexec.o: regexec.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-regexec.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-regexec.Tpo -c -o libdiffutils_a-regexec.o `test -f 'regexec.c' || echo '$(srcdir)/'`regexec.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-regexec.Tpo $(DEPDIR)/libdiffutils_a-regexec.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='regexec.c' object='libdiffutils_a-regexec.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-regexec.o `test -f 'regexec.c' || echo '$(srcdir)/'`regexec.c
+
+libdiffutils_a-regexec.obj: regexec.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-regexec.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-regexec.Tpo -c -o libdiffutils_a-regexec.obj `if test -f 'regexec.c'; then $(CYGPATH_W) 'regexec.c'; else $(CYGPATH_W) '$(srcdir)/regexec.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-regexec.Tpo $(DEPDIR)/libdiffutils_a-regexec.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='regexec.c' object='libdiffutils_a-regexec.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-regexec.obj `if test -f 'regexec.c'; then $(CYGPATH_W) 'regexec.c'; else $(CYGPATH_W) '$(srcdir)/regexec.c'; fi`
+
+libdiffutils_a-strtol.o: strtol.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-strtol.o -MD -MP -MF $(DEPDIR)/libdiffutils_a-strtol.Tpo -c -o libdiffutils_a-strtol.o `test -f 'strtol.c' || echo '$(srcdir)/'`strtol.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-strtol.Tpo $(DEPDIR)/libdiffutils_a-strtol.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='strtol.c' object='libdiffutils_a-strtol.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-strtol.o `test -f 'strtol.c' || echo '$(srcdir)/'`strtol.c
+
+libdiffutils_a-strtol.obj: strtol.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -MT libdiffutils_a-strtol.obj -MD -MP -MF $(DEPDIR)/libdiffutils_a-strtol.Tpo -c -o libdiffutils_a-strtol.obj `if test -f 'strtol.c'; then $(CYGPATH_W) 'strtol.c'; else $(CYGPATH_W) '$(srcdir)/strtol.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdiffutils_a-strtol.Tpo $(DEPDIR)/libdiffutils_a-strtol.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='strtol.c' object='libdiffutils_a-strtol.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdiffutils_a_CFLAGS) $(CFLAGS) -c -o libdiffutils_a-strtol.obj `if test -f 'strtol.c'; then $(CYGPATH_W) 'strtol.c'; else $(CYGPATH_W) '$(srcdir)/strtol.c'; fi`
+
+ID: $(am__tagged_files)
+       $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       set x; \
+       here=`pwd`; \
+       $(am__define_uniq_tagged_files); \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       $(am__define_uniq_tagged_files); \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+       list='$(am__tagged_files)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+distdir: $(BUILT_SOURCES)
+       $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: $(BUILT_SOURCES)
+       $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LIBRARIES) $(HEADERS) config.h
+installdirs:
+install: $(BUILT_SOURCES)
+       $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: $(BUILT_SOURCES)
+       $(MAKE) $(AM_MAKEFLAGS) install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+       -$(am__rm_f) $(MOSTLYCLEANFILES)
+
+clean-generic:
+       -$(am__rm_f) $(CLEANFILES)
+
+distclean-generic:
+       -$(am__rm_f) $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || $(am__rm_f) $(CONFIG_CLEAN_VPATH_FILES)
+       -$(am__rm_f) glthread/$(DEPDIR)/$(am__dirstamp)
+       -$(am__rm_f) glthread/$(am__dirstamp)
+       -$(am__rm_f) malloc/$(DEPDIR)/$(am__dirstamp)
+       -$(am__rm_f) malloc/$(am__dirstamp)
+       -$(am__rm_f) unistr/$(DEPDIR)/$(am__dirstamp)
+       -$(am__rm_f) unistr/$(am__dirstamp)
+       -$(am__rm_f) uniwidth/$(DEPDIR)/$(am__dirstamp)
+       -$(am__rm_f) uniwidth/$(am__dirstamp)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+       -$(am__rm_f) $(BUILT_SOURCES)
+       -$(am__rm_f) $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+       -rm -f ./$(DEPDIR)/libdiffutils_a-allocator.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-anytostr.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-areadlink.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-argmatch.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-basename-lgpl.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-basename.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-binary-io.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-bitrotate.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-btowc.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-c-ctype.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-c-stack.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-c-strcasecmp.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-c-strncasecmp.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-calloc.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-careadlinkat.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-cloexec.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-close.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-cmpbuf.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-dirname-lgpl.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-dirname.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-dup2.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-error.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-exclude.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-exitfail.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-fcntl.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-fd-hook.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-file-type.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-filenamecat-lgpl.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-filenamecat.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-fnmatch.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-fnmatch_loop.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-fopen.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-free.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-freopen.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-fstat.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-getdtablesize.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-getopt.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-getopt1.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-getpagesize.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-getprogname.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-getrandom.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-gettime.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-gettimeofday.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-hard-locale.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-hash.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-ialloc.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-iconv.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-iconv_close.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-iconv_open.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-imaxtostr.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-inttostr.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-isblank.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-iswblank.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-iswdigit.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-iswxdigit.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-lc-charset-dispatch.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-localcharset.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-localeconv.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-lstat.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-malloc.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-malloca.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-mbchar.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-mbiter.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-mbrtowc.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-mbscasecmp.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-mbsinit.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-mbslen.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-mbsrtowcs-state.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-mbsrtowcs.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-mbsstr.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-mbtowc-lock.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-mbtowc.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-mbuiter.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-memchr.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-mempcpy.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-mkdir.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-mkstemp.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-mktime.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-msvc-inval.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-msvc-nothrow.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-nl_langinfo-lock.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-nl_langinfo.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-nstrftime.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-offtostr.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-open.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-progname.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-propername.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-quotearg.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-raise.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-rawmemchr.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-readlink.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-realloc.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-reallocarray.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-regcomp.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-regex.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-regex_internal.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-regexec.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-setenv.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-setlocale-lock.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-setlocale_null.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-sh-quote.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-sigprocmask.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-sigsegv.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-stackvma.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-stat-time.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-stat-w32.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-stat.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-stdio-read.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-stdio-write.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-stdopen.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-stpcpy.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-strcasecmp.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-strerror-override.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-strerror.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-striconv.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-stripslash.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-strncasecmp.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-strnlen.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-strnlen1.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-strptime.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-strtoimax.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-strtol.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-strtoll.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-system-quote.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-tempname.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-time_r.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-time_rz.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-timegm.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-timespec.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-trim.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-tzset.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-uinttostr.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-umaxtostr.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-unistd.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-unsetenv.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-version-etc-fsf.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-version-etc.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-wcrtomb.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-wctype-h.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-wcwidth.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-windows-mutex.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-windows-once.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-windows-recmutex.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-windows-rwlock.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-wmemchr.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-wmempcpy.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-xalloc-die.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-xfreopen.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-xmalloc.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-xmalloca.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-xreadlink.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-xstdopen.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-xstriconv.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-xstrtoimax.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-xstrtol.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-xstrtoul.Po
+       -rm -f glthread/$(DEPDIR)/libdiffutils_a-lock.Po
+       -rm -f glthread/$(DEPDIR)/libdiffutils_a-threadlib.Po
+       -rm -f malloc/$(DEPDIR)/libdiffutils_a-dynarray-skeleton.Po
+       -rm -f malloc/$(DEPDIR)/libdiffutils_a-dynarray_at_failure.Po
+       -rm -f malloc/$(DEPDIR)/libdiffutils_a-dynarray_emplace_enlarge.Po
+       -rm -f malloc/$(DEPDIR)/libdiffutils_a-dynarray_finalize.Po
+       -rm -f malloc/$(DEPDIR)/libdiffutils_a-dynarray_resize.Po
+       -rm -f malloc/$(DEPDIR)/libdiffutils_a-dynarray_resize_clear.Po
+       -rm -f unistr/$(DEPDIR)/libdiffutils_a-u8-mbtoucr.Po
+       -rm -f unistr/$(DEPDIR)/libdiffutils_a-u8-uctomb-aux.Po
+       -rm -f unistr/$(DEPDIR)/libdiffutils_a-u8-uctomb.Po
+       -rm -f uniwidth/$(DEPDIR)/libdiffutils_a-width.Po
+       -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+       distclean-hdr distclean-local distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f ./$(DEPDIR)/libdiffutils_a-allocator.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-anytostr.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-areadlink.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-argmatch.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-basename-lgpl.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-basename.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-binary-io.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-bitrotate.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-btowc.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-c-ctype.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-c-stack.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-c-strcasecmp.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-c-strncasecmp.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-calloc.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-careadlinkat.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-cloexec.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-close.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-cmpbuf.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-dirname-lgpl.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-dirname.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-dup2.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-error.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-exclude.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-exitfail.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-fcntl.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-fd-hook.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-file-type.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-filenamecat-lgpl.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-filenamecat.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-fnmatch.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-fnmatch_loop.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-fopen.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-free.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-freopen.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-fstat.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-getdtablesize.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-getopt.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-getopt1.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-getpagesize.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-getprogname.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-getrandom.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-gettime.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-gettimeofday.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-hard-locale.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-hash.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-ialloc.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-iconv.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-iconv_close.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-iconv_open.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-imaxtostr.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-inttostr.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-isblank.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-iswblank.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-iswdigit.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-iswxdigit.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-lc-charset-dispatch.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-localcharset.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-localeconv.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-lstat.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-malloc.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-malloca.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-mbchar.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-mbiter.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-mbrtowc.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-mbscasecmp.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-mbsinit.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-mbslen.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-mbsrtowcs-state.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-mbsrtowcs.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-mbsstr.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-mbtowc-lock.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-mbtowc.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-mbuiter.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-memchr.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-mempcpy.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-mkdir.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-mkstemp.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-mktime.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-msvc-inval.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-msvc-nothrow.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-nl_langinfo-lock.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-nl_langinfo.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-nstrftime.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-offtostr.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-open.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-progname.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-propername.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-quotearg.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-raise.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-rawmemchr.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-readlink.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-realloc.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-reallocarray.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-regcomp.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-regex.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-regex_internal.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-regexec.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-setenv.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-setlocale-lock.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-setlocale_null.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-sh-quote.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-sigprocmask.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-sigsegv.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-stackvma.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-stat-time.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-stat-w32.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-stat.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-stdio-read.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-stdio-write.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-stdopen.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-stpcpy.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-strcasecmp.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-strerror-override.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-strerror.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-striconv.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-stripslash.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-strncasecmp.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-strnlen.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-strnlen1.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-strptime.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-strtoimax.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-strtol.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-strtoll.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-system-quote.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-tempname.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-time_r.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-time_rz.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-timegm.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-timespec.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-trim.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-tzset.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-uinttostr.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-umaxtostr.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-unistd.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-unsetenv.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-version-etc-fsf.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-version-etc.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-wcrtomb.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-wctype-h.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-wcwidth.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-windows-mutex.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-windows-once.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-windows-recmutex.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-windows-rwlock.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-wmemchr.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-wmempcpy.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-xalloc-die.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-xfreopen.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-xmalloc.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-xmalloca.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-xreadlink.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-xstdopen.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-xstriconv.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-xstrtoimax.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-xstrtol.Po
+       -rm -f ./$(DEPDIR)/libdiffutils_a-xstrtoul.Po
+       -rm -f glthread/$(DEPDIR)/libdiffutils_a-lock.Po
+       -rm -f glthread/$(DEPDIR)/libdiffutils_a-threadlib.Po
+       -rm -f malloc/$(DEPDIR)/libdiffutils_a-dynarray-skeleton.Po
+       -rm -f malloc/$(DEPDIR)/libdiffutils_a-dynarray_at_failure.Po
+       -rm -f malloc/$(DEPDIR)/libdiffutils_a-dynarray_emplace_enlarge.Po
+       -rm -f malloc/$(DEPDIR)/libdiffutils_a-dynarray_finalize.Po
+       -rm -f malloc/$(DEPDIR)/libdiffutils_a-dynarray_resize.Po
+       -rm -f malloc/$(DEPDIR)/libdiffutils_a-dynarray_resize_clear.Po
+       -rm -f unistr/$(DEPDIR)/libdiffutils_a-u8-mbtoucr.Po
+       -rm -f unistr/$(DEPDIR)/libdiffutils_a-u8-uctomb-aux.Po
+       -rm -f unistr/$(DEPDIR)/libdiffutils_a-u8-uctomb.Po
+       -rm -f uniwidth/$(DEPDIR)/libdiffutils_a-width.Po
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic \
+       maintainer-clean-local
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+       mostlyclean-local
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: all check install install-am install-exec install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
+       clean-generic clean-noinstLIBRARIES cscopelist-am ctags \
+       ctags-am distclean distclean-compile distclean-generic \
+       distclean-hdr distclean-local distclean-tags distdir dvi \
+       dvi-am html html-am info info-am install install-am \
+       install-data install-data-am install-dvi install-dvi-am \
+       install-exec install-exec-am install-html install-html-am \
+       install-info install-info-am install-man install-pdf \
+       install-pdf-am install-ps install-ps-am install-strip \
+       installcheck installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic maintainer-clean-local mostlyclean \
+       mostlyclean-compile mostlyclean-generic mostlyclean-local pdf \
+       pdf-am ps ps-am tags tags-am uninstall uninstall-am
+
+.PRECIOUS: Makefile
+
+
+# We need the following in order to create <alloca.h> when the system
+# doesn't have one that works with the given compiler.
+@GL_GENERATE_ALLOCA_H_TRUE@alloca.h: alloca.in.h $(top_builddir)/config.status
+@GL_GENERATE_ALLOCA_H_TRUE@    $(gl_V_at)$(SED_HEADER_STDOUT) \
+@GL_GENERATE_ALLOCA_H_TRUE@      -e 's|@''HAVE_ALLOCA_H''@|$(HAVE_ALLOCA_H)|g' \
+@GL_GENERATE_ALLOCA_H_TRUE@      $(srcdir)/alloca.in.h > $@-t
+@GL_GENERATE_ALLOCA_H_TRUE@    $(AM_V_at)mv $@-t $@
+@GL_GENERATE_ALLOCA_H_FALSE@alloca.h: $(top_builddir)/config.status
+@GL_GENERATE_ALLOCA_H_FALSE@   rm -f $@
+
+# We need the following in order to create <assert.h> when the system
+# doesn't have one that works with the given compiler.
+@GL_GENERATE_ASSERT_H_TRUE@assert.h: assert.in.h verify.h $(top_builddir)/config.status
+@GL_GENERATE_ASSERT_H_TRUE@    $(gl_V_at){ $(SED_HEADER_STDOUT) \
+@GL_GENERATE_ASSERT_H_TRUE@          -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+@GL_GENERATE_ASSERT_H_TRUE@          -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+@GL_GENERATE_ASSERT_H_TRUE@          -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+@GL_GENERATE_ASSERT_H_TRUE@          -e 's|@''NEXT_ASSERT_H''@|$(NEXT_ASSERT_H)|g' \
+@GL_GENERATE_ASSERT_H_TRUE@          < $(srcdir)/assert.in.h && \
+@GL_GENERATE_ASSERT_H_TRUE@      sed -e '/@assert.h omit start@/,/@assert.h omit end@/d' \
+@GL_GENERATE_ASSERT_H_TRUE@          -e 's|_gl_verify|_gl_static_assert|g' \
+@GL_GENERATE_ASSERT_H_TRUE@          -e 's|_GL_VERIFY|_GL_STATIC_ASSERT|g' \
+@GL_GENERATE_ASSERT_H_TRUE@          -e 's|_GL\(_STATIC_ASSERT_H\)|_GL\1|g' \
+@GL_GENERATE_ASSERT_H_TRUE@          < $(srcdir)/verify.h; \
+@GL_GENERATE_ASSERT_H_TRUE@    } > $@-t
+@GL_GENERATE_ASSERT_H_TRUE@    $(AM_V_at)mv $@-t $@
+@GL_GENERATE_ASSERT_H_FALSE@assert.h: $(top_builddir)/config.status
+@GL_GENERATE_ASSERT_H_FALSE@   rm -f $@
+
+# We need the following in order to create <ctype.h> when the system
+# doesn't have one that works with the given compiler.
+ctype.h: ctype.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+             -e 's|@''NEXT_CTYPE_H''@|$(NEXT_CTYPE_H)|g' \
+             -e 's/@''GNULIB_ISBLANK''@/$(GL_GNULIB_ISBLANK)/g' \
+             -e 's/@''HAVE_ISBLANK''@/$(HAVE_ISBLANK)/g' \
+             -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
+             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
+             $(srcdir)/ctype.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
+
+# We need the following in order to create <errno.h> when the system
+# doesn't have one that is POSIX compliant.
+@GL_GENERATE_ERRNO_H_TRUE@errno.h: errno.in.h $(top_builddir)/config.status
+@GL_GENERATE_ERRNO_H_TRUE@     $(gl_V_at)$(SED_HEADER_STDOUT) \
+@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''GUARD_PREFIX''@|GL|g' \
+@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''NEXT_ERRNO_H''@|$(NEXT_ERRNO_H)|g' \
+@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''EMULTIHOP_HIDDEN''@|$(EMULTIHOP_HIDDEN)|g' \
+@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''EMULTIHOP_VALUE''@|$(EMULTIHOP_VALUE)|g' \
+@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''ENOLINK_HIDDEN''@|$(ENOLINK_HIDDEN)|g' \
+@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''ENOLINK_VALUE''@|$(ENOLINK_VALUE)|g' \
+@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''EOVERFLOW_HIDDEN''@|$(EOVERFLOW_HIDDEN)|g' \
+@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''EOVERFLOW_VALUE''@|$(EOVERFLOW_VALUE)|g' \
+@GL_GENERATE_ERRNO_H_TRUE@           $(srcdir)/errno.in.h > $@-t
+@GL_GENERATE_ERRNO_H_TRUE@     $(AM_V_at)mv $@-t $@
+@GL_GENERATE_ERRNO_H_FALSE@errno.h: $(top_builddir)/config.status
+@GL_GENERATE_ERRNO_H_FALSE@    rm -f $@
+
+# We need the following in order to create <error.h> when the system
+# doesn't have one that works.
+@GL_GENERATE_ERROR_H_TRUE@error.h: error.in.h $(top_builddir)/config.status $(CXXDEFS_H)
+@GL_GENERATE_ERROR_H_TRUE@     $(gl_V_at)$(SED_HEADER_STDOUT) \
+@GL_GENERATE_ERROR_H_TRUE@           -e 's|@''GUARD_PREFIX''@|GL|g' \
+@GL_GENERATE_ERROR_H_TRUE@           -e 's|@''HAVE_ERROR_H''@|$(HAVE_ERROR_H)|g' \
+@GL_GENERATE_ERROR_H_TRUE@           -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+@GL_GENERATE_ERROR_H_TRUE@           -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+@GL_GENERATE_ERROR_H_TRUE@           -e 's|@''NEXT_ERROR_H''@|$(NEXT_ERROR_H)|g' \
+@GL_GENERATE_ERROR_H_TRUE@           -e 's|@''HAVE_ERROR''@|$(HAVE_ERROR)|g' \
+@GL_GENERATE_ERROR_H_TRUE@           -e 's|@''HAVE_ERROR_AT_LINE''@|$(HAVE_ERROR_AT_LINE)|g' \
+@GL_GENERATE_ERROR_H_TRUE@           -e 's|@''REPLACE_ERROR''@|$(REPLACE_ERROR)|g' \
+@GL_GENERATE_ERROR_H_TRUE@           -e 's|@''REPLACE_ERROR_AT_LINE''@|$(REPLACE_ERROR_AT_LINE)|g' \
+@GL_GENERATE_ERROR_H_TRUE@           -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
+@GL_GENERATE_ERROR_H_TRUE@           $(srcdir)/error.in.h > $@-t
+@GL_GENERATE_ERROR_H_TRUE@     $(AM_V_at)mv $@-t $@
+@GL_GENERATE_ERROR_H_FALSE@error.h: $(top_builddir)/config.status
+@GL_GENERATE_ERROR_H_FALSE@    rm -f $@
+
+# We need the following in order to create <fcntl.h> when the system
+# doesn't have one that works with the given compiler.
+fcntl.h: fcntl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
              -e 's|@''NEXT_FCNTL_H''@|$(NEXT_FCNTL_H)|g' \
              -e 's/@''GNULIB_CREAT''@/$(GL_GNULIB_CREAT)/g' \
@@ -3002,32 +5764,13 @@ fcntl.h: fcntl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H)
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/fcntl.in.h; \
-       } > $@-t && \
-       mv $@-t $@
-
-# We need the following in order to create <float.h> when the system
-# doesn't have one that works with the given compiler.
-@GL_GENERATE_FLOAT_H_TRUE@float.h: float.in.h $(top_builddir)/config.status
-@GL_GENERATE_FLOAT_H_TRUE@     $(AM_V_GEN)rm -f $@-t $@ && \
-@GL_GENERATE_FLOAT_H_TRUE@     { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-@GL_GENERATE_FLOAT_H_TRUE@       sed -e 's|@''GUARD_PREFIX''@|GL|g' \
-@GL_GENERATE_FLOAT_H_TRUE@           -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-@GL_GENERATE_FLOAT_H_TRUE@           -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-@GL_GENERATE_FLOAT_H_TRUE@           -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-@GL_GENERATE_FLOAT_H_TRUE@           -e 's|@''NEXT_FLOAT_H''@|$(NEXT_FLOAT_H)|g' \
-@GL_GENERATE_FLOAT_H_TRUE@           -e 's|@''REPLACE_ITOLD''@|$(REPLACE_ITOLD)|g' \
-@GL_GENERATE_FLOAT_H_TRUE@           < $(srcdir)/float.in.h; \
-@GL_GENERATE_FLOAT_H_TRUE@     } > $@-t && \
-@GL_GENERATE_FLOAT_H_TRUE@     mv $@-t $@
-@GL_GENERATE_FLOAT_H_FALSE@float.h: $(top_builddir)/config.status
-@GL_GENERATE_FLOAT_H_FALSE@    rm -f $@
+             $(srcdir)/fcntl.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 
 # We need the following in order to create <fnmatch.h>.
 @GL_GENERATE_FNMATCH_H_TRUE@fnmatch.h: fnmatch.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-@GL_GENERATE_FNMATCH_H_TRUE@   $(AM_V_GEN)rm -f $@-t $@ && \
-@GL_GENERATE_FNMATCH_H_TRUE@   { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-@GL_GENERATE_FNMATCH_H_TRUE@     sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+@GL_GENERATE_FNMATCH_H_TRUE@   $(gl_V_at)$(SED_HEADER_STDOUT) \
+@GL_GENERATE_FNMATCH_H_TRUE@         -e 's|@''GUARD_PREFIX''@|GL|g' \
 @GL_GENERATE_FNMATCH_H_TRUE@         -e 's|@''HAVE_FNMATCH_H''@|$(HAVE_FNMATCH_H)|g' \
 @GL_GENERATE_FNMATCH_H_TRUE@         -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
 @GL_GENERATE_FNMATCH_H_TRUE@         -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
@@ -3039,35 +5782,53 @@ fcntl.h: fcntl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H)
 @GL_GENERATE_FNMATCH_H_TRUE@         -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
 @GL_GENERATE_FNMATCH_H_TRUE@         -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
 @GL_GENERATE_FNMATCH_H_TRUE@         -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-@GL_GENERATE_FNMATCH_H_TRUE@         < $(srcdir)/fnmatch.in.h; \
-@GL_GENERATE_FNMATCH_H_TRUE@   } > $@-t && \
-@GL_GENERATE_FNMATCH_H_TRUE@   mv $@-t $@
+@GL_GENERATE_FNMATCH_H_TRUE@         $(srcdir)/fnmatch.in.h > $@-t
+@GL_GENERATE_FNMATCH_H_TRUE@   $(AM_V_at)mv $@-t $@
 @GL_GENERATE_FNMATCH_H_FALSE@fnmatch.h: $(top_builddir)/config.status
 @GL_GENERATE_FNMATCH_H_FALSE@  rm -f $@
 
 # We need the following in order to create <getopt.h> when the system
 # doesn't have one that works with the given compiler.
-getopt.h: getopt.in.h $(top_builddir)/config.status $(ARG_NONNULL_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
-             -e 's|@''HAVE_GETOPT_H''@|$(HAVE_GETOPT_H)|g' \
-             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-             -e 's|@''NEXT_GETOPT_H''@|$(NEXT_GETOPT_H)|g' \
-             -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-             < $(srcdir)/getopt.in.h; \
-       } > $@-t && \
-       mv -f $@-t $@
-
-getopt-cdefs.h: getopt-cdefs.in.h $(top_builddir)/config.status
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-          sed -e 's|@''HAVE_SYS_CDEFS_H''@|$(HAVE_SYS_CDEFS_H)|g' \
-             < $(srcdir)/getopt-cdefs.in.h; \
-       } > $@-t && \
-       mv -f $@-t $@
+@GL_GENERATE_GETOPT_H_TRUE@getopt.h: getopt.in.h $(top_builddir)/config.status $(ARG_NONNULL_H)
+@GL_GENERATE_GETOPT_H_TRUE@    $(gl_V_at)$(SED_HEADER_STDOUT) \
+@GL_GENERATE_GETOPT_H_TRUE@          -e 's|@''GUARD_PREFIX''@|GL|g' \
+@GL_GENERATE_GETOPT_H_TRUE@          -e 's|@''HAVE_GETOPT_H''@|$(HAVE_GETOPT_H)|g' \
+@GL_GENERATE_GETOPT_H_TRUE@          -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+@GL_GENERATE_GETOPT_H_TRUE@          -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+@GL_GENERATE_GETOPT_H_TRUE@          -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+@GL_GENERATE_GETOPT_H_TRUE@          -e 's|@''NEXT_GETOPT_H''@|$(NEXT_GETOPT_H)|g' \
+@GL_GENERATE_GETOPT_H_TRUE@          -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
+@GL_GENERATE_GETOPT_H_TRUE@          $(srcdir)/getopt.in.h > $@-t
+@GL_GENERATE_GETOPT_H_TRUE@    $(AM_V_at)mv $@-t $@
+@GL_GENERATE_GETOPT_H_FALSE@getopt.h: $(top_builddir)/config.status
+@GL_GENERATE_GETOPT_H_FALSE@   rm -f $@
+
+@GL_GENERATE_GETOPT_CDEFS_H_TRUE@getopt-cdefs.h: getopt-cdefs.in.h $(top_builddir)/config.status
+@GL_GENERATE_GETOPT_CDEFS_H_TRUE@      $(AM_V_GEN)$(SED_HEADER_STDOUT) \
+@GL_GENERATE_GETOPT_CDEFS_H_TRUE@        -e 's|@''HAVE_SYS_CDEFS_H''@|$(HAVE_SYS_CDEFS_H)|g' \
+@GL_GENERATE_GETOPT_CDEFS_H_TRUE@        $(srcdir)/getopt-cdefs.in.h > $@-t
+@GL_GENERATE_GETOPT_CDEFS_H_TRUE@      $(AM_V_at)mv $@-t $@
+@GL_GENERATE_GETOPT_CDEFS_H_FALSE@getopt-cdefs.h: $(top_builddir)/config.status
+@GL_GENERATE_GETOPT_CDEFS_H_FALSE@     rm -f $@
+
+malloc/dynarray.gl.h: malloc/dynarray.h
+       $(AM_V_GEN)$(MKDIR_P) 'malloc'
+       $(AM_V_at)$(SED_HEADER_STDOUT) \
+         -e '/libc_hidden_proto/d' \
+         $(srcdir)/malloc/dynarray.h > $@-t
+       $(AM_V_at)mv $@-t $@
+
+malloc/dynarray-skeleton.gl.h: malloc/dynarray-skeleton.c
+       $(AM_V_GEN)$(MKDIR_P) 'malloc'
+       $(AM_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|<malloc/dynarray\.h>|<malloc/dynarray.gl.h>|g' \
+             -e 's|__attribute_maybe_unused__|_GL_ATTRIBUTE_MAYBE_UNUSED|g' \
+             -e 's|__attribute_nonnull__|_GL_ATTRIBUTE_NONNULL|g' \
+             -e 's|__attribute_warn_unused_result__|_GL_ATTRIBUTE_NODISCARD|g' \
+             -e 's|__glibc_likely|_GL_LIKELY|g' \
+             -e 's|__glibc_unlikely|_GL_UNLIKELY|g' \
+             $(srcdir)/malloc/dynarray-skeleton.c > $@-t
+       $(AM_V_at)mv $@-t $@
 distclean-local: clean-GNUmakefile
 clean-GNUmakefile:
        test '$(srcdir)' = . || rm -f $(top_builddir)/GNUmakefile
@@ -3075,9 +5836,8 @@ clean-GNUmakefile:
 # We need the following in order to create <iconv.h> when the system
 # doesn't have one that works with the given compiler.
 @GL_GENERATE_ICONV_H_TRUE@iconv.h: iconv.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-@GL_GENERATE_ICONV_H_TRUE@     $(AM_V_GEN)rm -f $@-t $@ && \
-@GL_GENERATE_ICONV_H_TRUE@     { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-@GL_GENERATE_ICONV_H_TRUE@       sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+@GL_GENERATE_ICONV_H_TRUE@     $(gl_V_at)$(SED_HEADER_STDOUT) \
+@GL_GENERATE_ICONV_H_TRUE@           -e 's|@''GUARD_PREFIX''@|GL|g' \
 @GL_GENERATE_ICONV_H_TRUE@           -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
 @GL_GENERATE_ICONV_H_TRUE@           -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
 @GL_GENERATE_ICONV_H_TRUE@           -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
@@ -3090,9 +5850,8 @@ clean-GNUmakefile:
 @GL_GENERATE_ICONV_H_TRUE@           -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
 @GL_GENERATE_ICONV_H_TRUE@           -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
 @GL_GENERATE_ICONV_H_TRUE@           -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-@GL_GENERATE_ICONV_H_TRUE@           < $(srcdir)/iconv.in.h; \
-@GL_GENERATE_ICONV_H_TRUE@     } > $@-t && \
-@GL_GENERATE_ICONV_H_TRUE@     mv $@-t $@
+@GL_GENERATE_ICONV_H_TRUE@           $(srcdir)/iconv.in.h > $@-t
+@GL_GENERATE_ICONV_H_TRUE@     $(AM_V_at)mv $@-t $@
 @GL_GENERATE_ICONV_H_FALSE@iconv.h: $(top_builddir)/config.status
 @GL_GENERATE_ICONV_H_FALSE@    rm -f $@
 
@@ -3118,9 +5877,8 @@ $(srcdir)/iconv_open-zos.h: $(srcdir)/iconv_open-zos.gperf
 # We need the following in order to create <inttypes.h> when the system
 # doesn't have one that works with the given compiler.
 inttypes.h: inttypes.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
@@ -3136,6 +5894,8 @@ inttypes.h: inttypes.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_U
              -e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \
              -e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/g' \
              -e 's/@''HAVE_IMAXDIV_T''@/$(HAVE_IMAXDIV_T)/g' \
+             -e 's/@''REPLACE_IMAXABS''@/$(REPLACE_IMAXABS)/g' \
+             -e 's/@''REPLACE_IMAXDIV''@/$(REPLACE_IMAXDIV)/g' \
              -e 's/@''REPLACE_STRTOIMAX''@/$(REPLACE_STRTOIMAX)/g' \
              -e 's/@''REPLACE_STRTOUMAX''@/$(REPLACE_STRTOUMAX)/g' \
              -e 's/@''INT32_MAX_LT_INTMAX_MAX''@/$(INT32_MAX_LT_INTMAX_MAX)/g' \
@@ -3145,16 +5905,14 @@ inttypes.h: inttypes.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_U
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/inttypes.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/inttypes.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 
 # We need the following in order to create an empty placeholder for
 # <langinfo.h> when the system doesn't have one.
 langinfo.h: langinfo.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''HAVE_LANGINFO_H''@|$(HAVE_LANGINFO_H)|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
@@ -3170,32 +5928,28 @@ langinfo.h: langinfo.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_U
              -e 's|@''REPLACE_NL_LANGINFO''@|$(REPLACE_NL_LANGINFO)|g' \
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/langinfo.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/langinfo.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 
 # We need the following in order to create <limits.h> when the system
 # doesn't have one that is compatible with GNU.
 @GL_GENERATE_LIMITS_H_TRUE@limits.h: limits.in.h $(top_builddir)/config.status
-@GL_GENERATE_LIMITS_H_TRUE@    $(AM_V_GEN)rm -f $@-t $@ && \
-@GL_GENERATE_LIMITS_H_TRUE@    { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-@GL_GENERATE_LIMITS_H_TRUE@      sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+@GL_GENERATE_LIMITS_H_TRUE@    $(gl_V_at)$(SED_HEADER_STDOUT) \
+@GL_GENERATE_LIMITS_H_TRUE@          -e 's|@''GUARD_PREFIX''@|GL|g' \
 @GL_GENERATE_LIMITS_H_TRUE@          -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
 @GL_GENERATE_LIMITS_H_TRUE@          -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
 @GL_GENERATE_LIMITS_H_TRUE@          -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
 @GL_GENERATE_LIMITS_H_TRUE@          -e 's|@''NEXT_LIMITS_H''@|$(NEXT_LIMITS_H)|g' \
-@GL_GENERATE_LIMITS_H_TRUE@          < $(srcdir)/limits.in.h; \
-@GL_GENERATE_LIMITS_H_TRUE@    } > $@-t && \
-@GL_GENERATE_LIMITS_H_TRUE@    mv $@-t $@
+@GL_GENERATE_LIMITS_H_TRUE@          $(srcdir)/limits.in.h > $@-t
+@GL_GENERATE_LIMITS_H_TRUE@    $(AM_V_at)mv $@-t $@
 @GL_GENERATE_LIMITS_H_FALSE@limits.h: $(top_builddir)/config.status
 @GL_GENERATE_LIMITS_H_FALSE@   rm -f $@
 
 # We need the following in order to create <locale.h> when the system
 # doesn't have one that provides all definitions.
 locale.h: locale.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
@@ -3219,16 +5973,14 @@ locale.h: locale.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/locale.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/locale.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 
 # We need the following in order to create <signal.h> when the system
 # doesn't have a complete one.
 signal.h: signal.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
@@ -3252,63 +6004,43 @@ signal.h: signal.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/signal.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/signal.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 
 @GL_GENERATE_SIGSEGV_H_TRUE@sigsegv.h: sigsegv.in.h $(top_builddir)/config.status
-@GL_GENERATE_SIGSEGV_H_TRUE@   $(AM_V_GEN)rm -f $@-t $@ && \
-@GL_GENERATE_SIGSEGV_H_TRUE@   { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-@GL_GENERATE_SIGSEGV_H_TRUE@     cat $(srcdir)/sigsegv.in.h; \
-@GL_GENERATE_SIGSEGV_H_TRUE@   } > $@-t && \
-@GL_GENERATE_SIGSEGV_H_TRUE@   mv $@-t $@
+@GL_GENERATE_SIGSEGV_H_TRUE@   $(gl_V_at)$(SED_HEADER_TO_AT_t) $(srcdir)/sigsegv.in.h
+@GL_GENERATE_SIGSEGV_H_TRUE@   $(AM_V_at)mv $@-t $@
 @GL_GENERATE_SIGSEGV_H_FALSE@sigsegv.h: $(top_builddir)/config.status
 @GL_GENERATE_SIGSEGV_H_FALSE@  rm -f $@
 
-# We need the following in order to create <stdalign.h> when the system
-# doesn't have one that works.
-@GL_GENERATE_STDALIGN_H_TRUE@stdalign.h: stdalign.in.h $(top_builddir)/config.status
-@GL_GENERATE_STDALIGN_H_TRUE@  $(AM_V_GEN)rm -f $@-t $@ && \
-@GL_GENERATE_STDALIGN_H_TRUE@  { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-@GL_GENERATE_STDALIGN_H_TRUE@    cat $(srcdir)/stdalign.in.h; \
-@GL_GENERATE_STDALIGN_H_TRUE@  } > $@-t && \
-@GL_GENERATE_STDALIGN_H_TRUE@  mv $@-t $@
-@GL_GENERATE_STDALIGN_H_FALSE@stdalign.h: $(top_builddir)/config.status
-@GL_GENERATE_STDALIGN_H_FALSE@ rm -f $@
-
 # We need the following in order to create <stdarg.h> when the system
 # doesn't have one that works with the given compiler.
 @GL_GENERATE_STDARG_H_TRUE@stdarg.h: stdarg.in.h $(top_builddir)/config.status
-@GL_GENERATE_STDARG_H_TRUE@    $(AM_V_GEN)rm -f $@-t $@ && \
-@GL_GENERATE_STDARG_H_TRUE@    { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-@GL_GENERATE_STDARG_H_TRUE@      sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+@GL_GENERATE_STDARG_H_TRUE@    $(gl_V_at)$(SED_HEADER_STDOUT) \
+@GL_GENERATE_STDARG_H_TRUE@          -e 's|@''GUARD_PREFIX''@|GL|g' \
 @GL_GENERATE_STDARG_H_TRUE@          -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
 @GL_GENERATE_STDARG_H_TRUE@          -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
 @GL_GENERATE_STDARG_H_TRUE@          -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
 @GL_GENERATE_STDARG_H_TRUE@          -e 's|@''NEXT_STDARG_H''@|$(NEXT_STDARG_H)|g' \
-@GL_GENERATE_STDARG_H_TRUE@          < $(srcdir)/stdarg.in.h; \
-@GL_GENERATE_STDARG_H_TRUE@    } > $@-t && \
-@GL_GENERATE_STDARG_H_TRUE@    mv $@-t $@
+@GL_GENERATE_STDARG_H_TRUE@          $(srcdir)/stdarg.in.h > $@-t
+@GL_GENERATE_STDARG_H_TRUE@    $(AM_V_at)mv $@-t $@
 @GL_GENERATE_STDARG_H_FALSE@stdarg.h: $(top_builddir)/config.status
 @GL_GENERATE_STDARG_H_FALSE@   rm -f $@
 
-# We need the following in order to create <stdbool.h> when the system
-# doesn't have one that works.
-@GL_GENERATE_STDBOOL_H_TRUE@stdbool.h: stdbool.in.h $(top_builddir)/config.status
-@GL_GENERATE_STDBOOL_H_TRUE@   $(AM_V_GEN)rm -f $@-t $@ && \
-@GL_GENERATE_STDBOOL_H_TRUE@   { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-@GL_GENERATE_STDBOOL_H_TRUE@     sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \
-@GL_GENERATE_STDBOOL_H_TRUE@   } > $@-t && \
-@GL_GENERATE_STDBOOL_H_TRUE@   mv $@-t $@
-@GL_GENERATE_STDBOOL_H_FALSE@stdbool.h: $(top_builddir)/config.status
-@GL_GENERATE_STDBOOL_H_FALSE@  rm -f $@
+# We need the following in order to create <stdckdint.h> when the system
+# doesn't have one that works with the given compiler.
+@GL_GENERATE_STDCKDINT_H_TRUE@stdckdint.h: stdckdint.in.h $(top_builddir)/config.status
+@GL_GENERATE_STDCKDINT_H_TRUE@ $(gl_V_at)$(SED_HEADER_STDOUT) \
+@GL_GENERATE_STDCKDINT_H_TRUE@   $(srcdir)/stdckdint.in.h > $@-t
+@GL_GENERATE_STDCKDINT_H_TRUE@ $(AM_V_at)mv $@-t $@
+@GL_GENERATE_STDCKDINT_H_FALSE@stdckdint.h: $(top_builddir)/config.status
+@GL_GENERATE_STDCKDINT_H_FALSE@        rm -f $@
 
 # We need the following in order to create <stddef.h> when the system
 # doesn't have one that works with the given compiler.
 @GL_GENERATE_STDDEF_H_TRUE@stddef.h: stddef.in.h $(top_builddir)/config.status
-@GL_GENERATE_STDDEF_H_TRUE@    $(AM_V_GEN)rm -f $@-t $@ && \
-@GL_GENERATE_STDDEF_H_TRUE@    { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-@GL_GENERATE_STDDEF_H_TRUE@      sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+@GL_GENERATE_STDDEF_H_TRUE@    $(gl_V_at)$(SED_HEADER_STDOUT) \
+@GL_GENERATE_STDDEF_H_TRUE@          -e 's|@''GUARD_PREFIX''@|GL|g' \
 @GL_GENERATE_STDDEF_H_TRUE@          -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
 @GL_GENERATE_STDDEF_H_TRUE@          -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
 @GL_GENERATE_STDDEF_H_TRUE@          -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
@@ -3316,18 +6048,16 @@ signal.h: signal.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
 @GL_GENERATE_STDDEF_H_TRUE@          -e 's|@''HAVE_MAX_ALIGN_T''@|$(HAVE_MAX_ALIGN_T)|g' \
 @GL_GENERATE_STDDEF_H_TRUE@          -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \
 @GL_GENERATE_STDDEF_H_TRUE@          -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \
-@GL_GENERATE_STDDEF_H_TRUE@          < $(srcdir)/stddef.in.h; \
-@GL_GENERATE_STDDEF_H_TRUE@    } > $@-t && \
-@GL_GENERATE_STDDEF_H_TRUE@    mv $@-t $@
+@GL_GENERATE_STDDEF_H_TRUE@          $(srcdir)/stddef.in.h > $@-t
+@GL_GENERATE_STDDEF_H_TRUE@    $(AM_V_at)mv $@-t $@
 @GL_GENERATE_STDDEF_H_FALSE@stddef.h: $(top_builddir)/config.status
 @GL_GENERATE_STDDEF_H_FALSE@   rm -f $@
 
 # We need the following in order to create <stdint.h> when the system
 # doesn't have one that works with the given compiler.
 @GL_GENERATE_STDINT_H_TRUE@stdint.h: stdint.in.h $(top_builddir)/config.status
-@GL_GENERATE_STDINT_H_TRUE@    $(AM_V_GEN)rm -f $@-t $@ && \
-@GL_GENERATE_STDINT_H_TRUE@    { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-@GL_GENERATE_STDINT_H_TRUE@      sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+@GL_GENERATE_STDINT_H_TRUE@    $(gl_V_at)$(SED_HEADER_STDOUT) \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's|@''GUARD_PREFIX''@|GL|g' \
 @GL_GENERATE_STDINT_H_TRUE@          -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \
 @GL_GENERATE_STDINT_H_TRUE@          -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
 @GL_GENERATE_STDINT_H_TRUE@          -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
@@ -3354,18 +6084,16 @@ signal.h: signal.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
 @GL_GENERATE_STDINT_H_TRUE@          -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \
 @GL_GENERATE_STDINT_H_TRUE@          -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \
 @GL_GENERATE_STDINT_H_TRUE@          -e 's/@''GNULIBHEADERS_OVERRIDE_WINT_T''@/$(GNULIBHEADERS_OVERRIDE_WINT_T)/g' \
-@GL_GENERATE_STDINT_H_TRUE@          < $(srcdir)/stdint.in.h; \
-@GL_GENERATE_STDINT_H_TRUE@    } > $@-t && \
-@GL_GENERATE_STDINT_H_TRUE@    mv $@-t $@
+@GL_GENERATE_STDINT_H_TRUE@          $(srcdir)/stdint.in.h > $@-t
+@GL_GENERATE_STDINT_H_TRUE@    $(AM_V_at)mv $@-t $@
 @GL_GENERATE_STDINT_H_FALSE@stdint.h: $(top_builddir)/config.status
 @GL_GENERATE_STDINT_H_FALSE@   rm -f $@
 
 # We need the following in order to create <stdio.h> when the system
 # doesn't have one that works with the given compiler.
 stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
@@ -3377,6 +6105,7 @@ stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H)
              -e 's/@''GNULIB_FGETC''@/$(GL_GNULIB_FGETC)/g' \
              -e 's/@''GNULIB_FGETS''@/$(GL_GNULIB_FGETS)/g' \
              -e 's/@''GNULIB_FOPEN''@/$(GL_GNULIB_FOPEN)/g' \
+             -e 's/@''GNULIB_FOPEN_GNU''@/$(GL_GNULIB_FOPEN_GNU)/g' \
              -e 's/@''GNULIB_FPRINTF''@/$(GL_GNULIB_FPRINTF)/g' \
              -e 's/@''GNULIB_FPRINTF_POSIX''@/$(GL_GNULIB_FPRINTF_POSIX)/g' \
              -e 's/@''GNULIB_FPURGE''@/$(GL_GNULIB_FPURGE)/g' \
@@ -3436,7 +6165,9 @@ stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H)
              -e 's|@''HAVE_DECL_FTELLO''@|$(HAVE_DECL_FTELLO)|g' \
              -e 's|@''HAVE_DECL_GETDELIM''@|$(HAVE_DECL_GETDELIM)|g' \
              -e 's|@''HAVE_DECL_GETLINE''@|$(HAVE_DECL_GETLINE)|g' \
+             -e 's|@''HAVE_DECL_GETW''@|$(HAVE_DECL_GETW)|g' \
              -e 's|@''HAVE_DECL_OBSTACK_PRINTF''@|$(HAVE_DECL_OBSTACK_PRINTF)|g' \
+             -e 's|@''HAVE_DECL_PUTW''@|$(HAVE_DECL_PUTW)|g' \
              -e 's|@''HAVE_DECL_SNPRINTF''@|$(HAVE_DECL_SNPRINTF)|g' \
              -e 's|@''HAVE_DECL_VSNPRINTF''@|$(HAVE_DECL_VSNPRINTF)|g' \
              -e 's|@''HAVE_DPRINTF''@|$(HAVE_DPRINTF)|g' \
@@ -3452,6 +6183,7 @@ stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H)
              -e 's|@''REPLACE_FDOPEN''@|$(REPLACE_FDOPEN)|g' \
              -e 's|@''REPLACE_FFLUSH''@|$(REPLACE_FFLUSH)|g' \
              -e 's|@''REPLACE_FOPEN''@|$(REPLACE_FOPEN)|g' \
+             -e 's|@''REPLACE_FOPEN_FOR_FOPEN_GNU''@|$(REPLACE_FOPEN_FOR_FOPEN_GNU)|g' \
              -e 's|@''REPLACE_FPRINTF''@|$(REPLACE_FPRINTF)|g' \
              -e 's|@''REPLACE_FPURGE''@|$(REPLACE_FPURGE)|g' \
              -e 's|@''REPLACE_FREOPEN''@|$(REPLACE_FREOPEN)|g' \
@@ -3482,17 +6214,16 @@ stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H)
              -e 's|@''ASM_SYMBOL_PREFIX''@|$(ASM_SYMBOL_PREFIX)|g' \
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
-       } > $@-t && \
-       mv $@-t $@
+             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
+             > $@-t
+       $(AM_V_at)mv $@-t $@
 
 # We need the following in order to create <stdlib.h> when the system
 # doesn't have one that works with the given compiler.
 stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
   $(_NORETURN_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
@@ -3500,13 +6231,17 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
              -e 's/@''GNULIB__EXIT''@/$(GL_GNULIB__EXIT)/g' \
              -e 's/@''GNULIB_ALIGNED_ALLOC''@/$(GL_GNULIB_ALIGNED_ALLOC)/g' \
              -e 's/@''GNULIB_ATOLL''@/$(GL_GNULIB_ATOLL)/g' \
+             -e 's/@''GNULIB_CALLOC_GNU''@/$(GL_GNULIB_CALLOC_GNU)/g' \
              -e 's/@''GNULIB_CALLOC_POSIX''@/$(GL_GNULIB_CALLOC_POSIX)/g' \
              -e 's/@''GNULIB_CANONICALIZE_FILE_NAME''@/$(GL_GNULIB_CANONICALIZE_FILE_NAME)/g' \
              -e 's/@''GNULIB_FREE_POSIX''@/$(GL_GNULIB_FREE_POSIX)/g' \
              -e 's/@''GNULIB_GETLOADAVG''@/$(GL_GNULIB_GETLOADAVG)/g' \
+             -e 's/@''GNULIB_GETPROGNAME''@/$(GL_GNULIB_GETPROGNAME)/g' \
              -e 's/@''GNULIB_GETSUBOPT''@/$(GL_GNULIB_GETSUBOPT)/g' \
              -e 's/@''GNULIB_GRANTPT''@/$(GL_GNULIB_GRANTPT)/g' \
+             -e 's/@''GNULIB_MALLOC_GNU''@/$(GL_GNULIB_MALLOC_GNU)/g' \
              -e 's/@''GNULIB_MALLOC_POSIX''@/$(GL_GNULIB_MALLOC_POSIX)/g' \
+             -e 's/@''GNULIB_MBSTOWCS''@/$(GL_GNULIB_MBSTOWCS)/g' \
              -e 's/@''GNULIB_MBTOWC''@/$(GL_GNULIB_MBTOWC)/g' \
              -e 's/@''GNULIB_MKDTEMP''@/$(GL_GNULIB_MKDTEMP)/g' \
              -e 's/@''GNULIB_MKOSTEMP''@/$(GL_GNULIB_MKOSTEMP)/g' \
@@ -3521,6 +6256,7 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
              -e 's/@''GNULIB_QSORT_R''@/$(GL_GNULIB_QSORT_R)/g' \
              -e 's/@''GNULIB_RANDOM''@/$(GL_GNULIB_RANDOM)/g' \
              -e 's/@''GNULIB_RANDOM_R''@/$(GL_GNULIB_RANDOM_R)/g' \
+             -e 's/@''GNULIB_REALLOC_GNU''@/$(GL_GNULIB_REALLOC_GNU)/g' \
              -e 's/@''GNULIB_REALLOC_POSIX''@/$(GL_GNULIB_REALLOC_POSIX)/g' \
              -e 's/@''GNULIB_REALLOCARRAY''@/$(GL_GNULIB_REALLOCARRAY)/g' \
              -e 's/@''GNULIB_REALPATH''@/$(GL_GNULIB_REALPATH)/g' \
@@ -3551,6 +6287,8 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
              -e 's|@''HAVE_DECL_FCVT''@|$(HAVE_DECL_FCVT)|g' \
              -e 's|@''HAVE_DECL_GCVT''@|$(HAVE_DECL_GCVT)|g' \
              -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \
+             -e 's|@''HAVE_DECL_PROGRAM_INVOCATION_NAME''@|$(HAVE_DECL_PROGRAM_INVOCATION_NAME)|g' \
+             -e 's|@''HAVE_GETPROGNAME''@|$(HAVE_GETPROGNAME)|g' \
              -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \
              -e 's|@''HAVE_GRANTPT''@|$(HAVE_GRANTPT)|g' \
              -e 's|@''HAVE_INITSTATE''@|$(HAVE_INITSTATE)|g' \
@@ -3586,22 +6324,34 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
              -e 's|@''HAVE_SYS_LOADAVG_H''@|$(HAVE_SYS_LOADAVG_H)|g' \
              -e 's|@''HAVE_UNLOCKPT''@|$(HAVE_UNLOCKPT)|g' \
              -e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \
+             -e 's|@''REPLACE__EXIT''@|$(REPLACE__EXIT)|g' \
              -e 's|@''REPLACE_ALIGNED_ALLOC''@|$(REPLACE_ALIGNED_ALLOC)|g' \
-             -e 's|@''REPLACE_CALLOC''@|$(REPLACE_CALLOC)|g' \
+             -e 's|@''REPLACE_CALLOC_FOR_CALLOC_GNU''@|$(REPLACE_CALLOC_FOR_CALLOC_GNU)|g' \
+             -e 's|@''REPLACE_CALLOC_FOR_CALLOC_POSIX''@|$(REPLACE_CALLOC_FOR_CALLOC_POSIX)|g' \
              -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \
              -e 's|@''REPLACE_FREE''@|$(REPLACE_FREE)|g' \
+             -e 's|@''REPLACE_GETLOADAVG''@|$(REPLACE_GETLOADAVG)|g' \
+             -e 's|@''REPLACE_GETPROGNAME''@|$(REPLACE_GETPROGNAME)|g' \
+             -e 's|@''REPLACE_GETSUBOPT''@|$(REPLACE_GETSUBOPT)|g' \
              -e 's|@''REPLACE_INITSTATE''@|$(REPLACE_INITSTATE)|g' \
-             -e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \
+             -e 's|@''REPLACE_MALLOC_FOR_MALLOC_GNU''@|$(REPLACE_MALLOC_FOR_MALLOC_GNU)|g' \
+             -e 's|@''REPLACE_MALLOC_FOR_MALLOC_POSIX''@|$(REPLACE_MALLOC_FOR_MALLOC_POSIX)|g' \
+             -e 's|@''REPLACE_MB_CUR_MAX''@|$(REPLACE_MB_CUR_MAX)|g' \
+             -e 's|@''REPLACE_MBSTOWCS''@|$(REPLACE_MBSTOWCS)|g' \
              -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \
+             -e 's|@''REPLACE_MKOSTEMP''@|$(REPLACE_MKOSTEMP)|g' \
+             -e 's|@''REPLACE_MKOSTEMPS''@|$(REPLACE_MKOSTEMPS)|g' \
              -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \
              -e 's|@''REPLACE_POSIX_MEMALIGN''@|$(REPLACE_POSIX_MEMALIGN)|g' \
+             -e 's|@''REPLACE_POSIX_OPENPT''@|$(REPLACE_POSIX_OPENPT)|g' \
              -e 's|@''REPLACE_PTSNAME''@|$(REPLACE_PTSNAME)|g' \
              -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \
              -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \
              -e 's|@''REPLACE_QSORT_R''@|$(REPLACE_QSORT_R)|g' \
              -e 's|@''REPLACE_RANDOM''@|$(REPLACE_RANDOM)|g' \
              -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \
-             -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \
+             -e 's|@''REPLACE_REALLOC_FOR_REALLOC_GNU''@|$(REPLACE_REALLOC_FOR_REALLOC_GNU)|g' \
+             -e 's|@''REPLACE_REALLOC_FOR_REALLOC_POSIX''@|$(REPLACE_REALLOC_FOR_REALLOC_POSIX)|g' \
              -e 's|@''REPLACE_REALLOCARRAY''@|$(REPLACE_REALLOCARRAY)|g' \
              -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \
              -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \
@@ -3617,16 +6367,15 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _Noreturn/r $(_NORETURN_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
-       } > $@-t && \
-       mv $@-t $@
+             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
+             > $@-t
+       $(AM_V_at)mv $@-t $@
 
 # We need the following in order to create <string.h> when the system
 # doesn't have one that works with the given compiler.
 string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
@@ -3652,6 +6401,7 @@ string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
              -e 's/@''GNULIB_MEMMEM''@/$(GL_GNULIB_MEMMEM)/g' \
              -e 's/@''GNULIB_MEMPCPY''@/$(GL_GNULIB_MEMPCPY)/g' \
              -e 's/@''GNULIB_MEMRCHR''@/$(GL_GNULIB_MEMRCHR)/g' \
+             -e 's/@''GNULIB_MEMSET_EXPLICIT''@/$(GL_GNULIB_MEMSET_EXPLICIT)/g' \
              -e 's/@''GNULIB_RAWMEMCHR''@/$(GL_GNULIB_RAWMEMCHR)/g' \
              -e 's/@''GNULIB_STPCPY''@/$(GL_GNULIB_STPCPY)/g' \
              -e 's/@''GNULIB_STPNCPY''@/$(GL_GNULIB_STPNCPY)/g' \
@@ -3674,6 +6424,7 @@ string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
              -e 's/@''GNULIB_STRVERSCMP''@/$(GL_GNULIB_STRVERSCMP)/g' \
              -e 's/@''GNULIB_MDA_MEMCCPY''@/$(GL_GNULIB_MDA_MEMCCPY)/g' \
              -e 's/@''GNULIB_MDA_STRDUP''@/$(GL_GNULIB_MDA_STRDUP)/g' \
+             -e 's/@''GNULIB_FREE_POSIX''@/$(GL_GNULIB_FREE_POSIX)/g' \
              < $(srcdir)/string.in.h | \
          sed -e 's|@''HAVE_EXPLICIT_BZERO''@|$(HAVE_EXPLICIT_BZERO)|g' \
              -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \
@@ -3682,6 +6433,7 @@ string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
              -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \
              -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \
              -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \
+             -e 's|@''HAVE_MEMSET_EXPLICIT''@|$(HAVE_MEMSET_EXPLICIT)|g' \
              -e 's|@''HAVE_RAWMEMCHR''@|$(HAVE_RAWMEMCHR)|g' \
              -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \
              -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \
@@ -3702,6 +6454,9 @@ string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
              -e 's|@''REPLACE_FFSLL''@|$(REPLACE_FFSLL)|g' \
              -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \
              -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \
+             -e 's|@''REPLACE_MEMPCPY''@|$(REPLACE_MEMPCPY)|g' \
+             -e 's|@''REPLACE_FREE''@|$(REPLACE_FREE)|g' \
+             -e 's|@''REPLACE_STPCPY''@|$(REPLACE_STPCPY)|g' \
              -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \
              -e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \
              -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \
@@ -3718,17 +6473,15 @@ string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
              -e 's|@''UNDEFINE_STRTOK_R''@|$(UNDEFINE_STRTOK_R)|g' \
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
-             < $(srcdir)/string.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
+             > $@-t
+       $(AM_V_at)mv $@-t $@
 
 # We need the following in order to create <strings.h> when the system
 # doesn't have one that works with the given compiler.
 strings.h: strings.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''HAVE_STRINGS_H''@|$(HAVE_STRINGS_H)|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
@@ -3741,17 +6494,15 @@ strings.h: strings.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/strings.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/strings.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 
 # We need the following in order to create <sys/random.h> when the system
 # doesn't have one.
 sys/random.h: sys_random.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_at)$(MKDIR_P) sys
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(AM_V_GEN)$(MKDIR_P) 'sys'
+       $(AM_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
@@ -3763,23 +6514,22 @@ sys/random.h: sys_random.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_N
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/sys_random.in.h; \
-       } > $@-t && \
-       mv -f $@-t $@
+             $(srcdir)/sys_random.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 
 # We need the following in order to create <sys/stat.h> when the system
 # has one that is incomplete.
 sys/stat.h: sys_stat.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_at)$(MKDIR_P) sys
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(AM_V_GEN)$(MKDIR_P) 'sys'
+       $(AM_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
              -e 's|@''NEXT_SYS_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \
              -e 's|@''WINDOWS_64_BIT_ST_SIZE''@|$(WINDOWS_64_BIT_ST_SIZE)|g' \
              -e 's|@''WINDOWS_STAT_TIMESPEC''@|$(WINDOWS_STAT_TIMESPEC)|g' \
+             -e 's/@''GNULIB_CHMOD''@/$(GL_GNULIB_CHMOD)/g' \
              -e 's/@''GNULIB_FCHMODAT''@/$(GL_GNULIB_FCHMODAT)/g' \
              -e 's/@''GNULIB_FSTAT''@/$(GL_GNULIB_FSTAT)/g' \
              -e 's/@''GNULIB_FSTATAT''@/$(GL_GNULIB_FSTATAT)/g' \
@@ -3811,6 +6561,7 @@ sys/stat.h: sys_stat.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNU
              -e 's|@''HAVE_MKNOD''@|$(HAVE_MKNOD)|g' \
              -e 's|@''HAVE_MKNODAT''@|$(HAVE_MKNODAT)|g' \
              -e 's|@''HAVE_UTIMENSAT''@|$(HAVE_UTIMENSAT)|g' \
+             -e 's|@''REPLACE_CHMOD''@|$(REPLACE_CHMOD)|g' \
              -e 's|@''REPLACE_FCHMODAT''@|$(REPLACE_FCHMODAT)|g' \
              -e 's|@''REPLACE_FSTAT''@|$(REPLACE_FSTAT)|g' \
              -e 's|@''REPLACE_FSTATAT''@|$(REPLACE_FSTATAT)|g' \
@@ -3826,17 +6577,15 @@ sys/stat.h: sys_stat.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNU
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/sys_stat.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/sys_stat.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 
 # We need the following in order to create <sys/time.h> when the system
 # doesn't have one that works with the given compiler.
 sys/time.h: sys_time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_at)$(MKDIR_P) sys
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(AM_V_GEN)$(MKDIR_P) 'sys'
+       $(AM_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's/@''HAVE_SYS_TIME_H''@/$(HAVE_SYS_TIME_H)/g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
@@ -3851,34 +6600,30 @@ sys/time.h: sys_time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNU
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/sys_time.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/sys_time.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 
 # We need the following in order to create <sys/types.h> when the system
 # doesn't have one that works with the given compiler.
 sys/types.h: sys_types.in.h $(top_builddir)/config.status
-       $(AM_V_at)$(MKDIR_P) sys
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(AM_V_GEN)$(MKDIR_P) 'sys'
+       $(AM_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
              -e 's|@''NEXT_SYS_TYPES_H''@|$(NEXT_SYS_TYPES_H)|g' \
              -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \
              -e 's|@''WINDOWS_STAT_INODES''@|$(WINDOWS_STAT_INODES)|g' \
-             < $(srcdir)/sys_types.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/sys_types.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 
 # We need the following in order to create <sys/wait.h> when the system
 # has one that is incomplete.
 sys/wait.h: sys_wait.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
-       $(AM_V_at)$(MKDIR_P) sys
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(AM_V_GEN)$(MKDIR_P) 'sys'
+       $(AM_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
@@ -3886,16 +6631,14 @@ sys/wait.h: sys_wait.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_U
              -e 's/@''GNULIB_WAITPID''@/$(GL_GNULIB_WAITPID)/g' \
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/sys_wait.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/sys_wait.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 
 # We need the following in order to create <time.h> when the system
 # doesn't have one that works with the given compiler.
 time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
@@ -3906,8 +6649,10 @@ time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
              -e 's/@''GNULIB_NANOSLEEP''@/$(GL_GNULIB_NANOSLEEP)/g' \
              -e 's/@''GNULIB_STRFTIME''@/$(GL_GNULIB_STRFTIME)/g' \
              -e 's/@''GNULIB_STRPTIME''@/$(GL_GNULIB_STRPTIME)/g' \
+             -e 's/@''GNULIB_TIME''@/$(GL_GNULIB_TIME)/g' \
              -e 's/@''GNULIB_TIMEGM''@/$(GL_GNULIB_TIMEGM)/g' \
              -e 's/@''GNULIB_TIMESPEC_GET''@/$(GL_GNULIB_TIMESPEC_GET)/g' \
+             -e 's/@''GNULIB_TIMESPEC_GETRES''@/$(GL_GNULIB_TIMESPEC_GETRES)/g' \
              -e 's/@''GNULIB_TIME_R''@/$(GL_GNULIB_TIME_R)/g' \
              -e 's/@''GNULIB_TIME_RZ''@/$(GL_GNULIB_TIME_RZ)/g' \
              -e 's/@''GNULIB_TZSET''@/$(GL_GNULIB_TZSET)/g' \
@@ -3917,6 +6662,7 @@ time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
              -e 's|@''HAVE_STRPTIME''@|$(HAVE_STRPTIME)|g' \
              -e 's|@''HAVE_TIMEGM''@|$(HAVE_TIMEGM)|g' \
              -e 's|@''HAVE_TIMESPEC_GET''@|$(HAVE_TIMESPEC_GET)|g' \
+             -e 's|@''HAVE_TIMESPEC_GETRES''@|$(HAVE_TIMESPEC_GETRES)|g' \
              -e 's|@''HAVE_TIMEZONE_T''@|$(HAVE_TIMEZONE_T)|g' \
              -e 's|@''REPLACE_CTIME''@|$(REPLACE_CTIME)|g' \
              -e 's|@''REPLACE_GMTIME''@|$(REPLACE_GMTIME)|g' \
@@ -3925,7 +6671,9 @@ time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
              -e 's|@''REPLACE_MKTIME''@|$(REPLACE_MKTIME)|g' \
              -e 's|@''REPLACE_NANOSLEEP''@|$(REPLACE_NANOSLEEP)|g' \
              -e 's|@''REPLACE_STRFTIME''@|$(REPLACE_STRFTIME)|g' \
+             -e 's|@''REPLACE_TIME''@|$(REPLACE_TIME)|g' \
              -e 's|@''REPLACE_TIMEGM''@|$(REPLACE_TIMEGM)|g' \
+             -e 's|@''REPLACE_TIMESPEC_GET''@|$(REPLACE_TIMESPEC_GET)|g' \
              -e 's|@''REPLACE_TZSET''@|$(REPLACE_TZSET)|g' \
              -e 's|@''PTHREAD_H_DEFINES_STRUCT_TIMESPEC''@|$(PTHREAD_H_DEFINES_STRUCT_TIMESPEC)|g' \
              -e 's|@''SYS_TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(SYS_TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \
@@ -3935,16 +6683,14 @@ time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/time.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/time.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 
 # We need the following in order to create an empty placeholder for
 # <unistd.h> when the system doesn't have one.
 unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
@@ -3985,6 +6731,7 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
              -e 's/@''GNULIB_GETOPT_POSIX''@/$(GL_GNULIB_GETOPT_POSIX)/g' \
              -e 's/@''GNULIB_GETPAGESIZE''@/$(GL_GNULIB_GETPAGESIZE)/g' \
              -e 's/@''GNULIB_GETPASS''@/$(GL_GNULIB_GETPASS)/g' \
+             -e 's/@''GNULIB_GETPASS_GNU''@/$(GL_GNULIB_GETPASS_GNU)/g' \
              -e 's/@''GNULIB_GETUSERSHELL''@/$(GL_GNULIB_GETUSERSHELL)/g' \
              -e 's/@''GNULIB_GROUP_MEMBER''@/$(GL_GNULIB_GROUP_MEMBER)/g' \
              -e 's/@''GNULIB_ISATTY''@/$(GL_GNULIB_ISATTY)/g' \
@@ -4086,8 +6833,10 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
          sed -e 's|@''REPLACE_ACCESS''@|$(REPLACE_ACCESS)|g' \
              -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \
              -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \
+             -e 's|@''REPLACE_COPY_FILE_RANGE''@|$(REPLACE_COPY_FILE_RANGE)|g' \
              -e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \
              -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \
+             -e 's|@''REPLACE_DUP3''@|$(REPLACE_DUP3)|g' \
              -e 's|@''REPLACE_EXECL''@|$(REPLACE_EXECL)|g' \
              -e 's|@''REPLACE_EXECLE''@|$(REPLACE_EXECLE)|g' \
              -e 's|@''REPLACE_EXECLP''@|$(REPLACE_EXECLP)|g' \
@@ -4097,25 +6846,30 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
              -e 's|@''REPLACE_EXECVPE''@|$(REPLACE_EXECVPE)|g' \
              -e 's|@''REPLACE_FACCESSAT''@|$(REPLACE_FACCESSAT)|g' \
              -e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \
+             -e 's|@''REPLACE_FDATASYNC''@|$(REPLACE_FDATASYNC)|g' \
              -e 's|@''REPLACE_FTRUNCATE''@|$(REPLACE_FTRUNCATE)|g' \
              -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \
              -e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|g' \
              -e 's|@''REPLACE_GETDTABLESIZE''@|$(REPLACE_GETDTABLESIZE)|g' \
+             -e 's|@''REPLACE_GETENTROPY''@|$(REPLACE_GETENTROPY)|g' \
              -e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \
              -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \
              -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \
              -e 's|@''REPLACE_GETPASS''@|$(REPLACE_GETPASS)|g' \
+             -e 's|@''REPLACE_GETPASS_FOR_GETPASS_GNU''@|$(REPLACE_GETPASS_FOR_GETPASS_GNU)|g' \
              -e 's|@''REPLACE_ISATTY''@|$(REPLACE_ISATTY)|g' \
              -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \
              -e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \
              -e 's|@''REPLACE_LINKAT''@|$(REPLACE_LINKAT)|g' \
              -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \
+             -e 's|@''REPLACE_PIPE2''@|$(REPLACE_PIPE2)|g' \
              -e 's|@''REPLACE_PREAD''@|$(REPLACE_PREAD)|g' \
              -e 's|@''REPLACE_PWRITE''@|$(REPLACE_PWRITE)|g' \
              -e 's|@''REPLACE_READ''@|$(REPLACE_READ)|g' \
              -e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \
              -e 's|@''REPLACE_READLINKAT''@|$(REPLACE_READLINKAT)|g' \
              -e 's|@''REPLACE_RMDIR''@|$(REPLACE_RMDIR)|g' \
+             -e 's|@''REPLACE_SETHOSTNAME''@|$(REPLACE_SETHOSTNAME)|g' \
              -e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \
              -e 's|@''REPLACE_SYMLINK''@|$(REPLACE_SYMLINK)|g' \
              -e 's|@''REPLACE_SYMLINKAT''@|$(REPLACE_SYMLINKAT)|g' \
@@ -4130,37 +6884,27 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
              -e 's|@''UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
-       } > $@-t && \
-       mv $@-t $@
+             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
+             > $@-t
+       $(AM_V_at)mv $@-t $@
 
 unistr.h: unistr.in.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         cat $(srcdir)/unistr.in.h; \
-       } > $@-t && \
-       mv -f $@-t $@
+       $(gl_V_at)$(SED_HEADER_TO_AT_t) $(srcdir)/unistr.in.h
+       $(AM_V_at)mv $@-t $@
 
 unitypes.h: unitypes.in.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         cat $(srcdir)/unitypes.in.h; \
-       } > $@-t && \
-       mv -f $@-t $@
+       $(gl_V_at)$(SED_HEADER_TO_AT_t) $(srcdir)/unitypes.in.h
+       $(AM_V_at)mv $@-t $@
 
 uniwidth.h: uniwidth.in.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         cat $(srcdir)/uniwidth.in.h; \
-       } > $@-t && \
-       mv -f $@-t $@
+       $(gl_V_at)$(SED_HEADER_TO_AT_t) $(srcdir)/uniwidth.in.h
+       $(AM_V_at)mv $@-t $@
 
 # We need the following in order to create <wchar.h> when the system
 # version does not work standalone.
 wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
@@ -4211,6 +6955,7 @@ wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H)
              -e 's/@''GNULIB_WCSWIDTH''@/$(GL_GNULIB_WCSWIDTH)/g' \
              -e 's/@''GNULIB_WCSFTIME''@/$(GL_GNULIB_WCSFTIME)/g' \
              -e 's/@''GNULIB_MDA_WCSDUP''@/$(GL_GNULIB_MDA_WCSDUP)/g' \
+             -e 's/@''GNULIB_FREE_POSIX''@/$(GL_GNULIB_FREE_POSIX)/g' \
              < $(srcdir)/wchar.in.h | \
          sed -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \
              -e 's|@''HAVE_BTOWC''@|$(HAVE_BTOWC)|g' \
@@ -4259,6 +7004,7 @@ wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H)
          sed -e 's|@''REPLACE_MBSTATE_T''@|$(REPLACE_MBSTATE_T)|g' \
              -e 's|@''REPLACE_BTOWC''@|$(REPLACE_BTOWC)|g' \
              -e 's|@''REPLACE_WCTOB''@|$(REPLACE_WCTOB)|g' \
+             -e 's|@''REPLACE_FREE''@|$(REPLACE_FREE)|g' \
              -e 's|@''REPLACE_MBSINIT''@|$(REPLACE_MBSINIT)|g' \
              -e 's|@''REPLACE_MBRTOWC''@|$(REPLACE_MBRTOWC)|g' \
              -e 's|@''REPLACE_MBRLEN''@|$(REPLACE_MBRLEN)|g' \
@@ -4270,19 +7016,23 @@ wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H)
              -e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \
              -e 's|@''REPLACE_WCSWIDTH''@|$(REPLACE_WCSWIDTH)|g' \
              -e 's|@''REPLACE_WCSFTIME''@|$(REPLACE_WCSFTIME)|g' \
+             -e 's|@''REPLACE_WCSCMP''@|$(REPLACE_WCSCMP)|g' \
+             -e 's|@''REPLACE_WCSNCMP''@|$(REPLACE_WCSNCMP)|g' \
+             -e 's|@''REPLACE_WCSSTR''@|$(REPLACE_WCSSTR)|g' \
              -e 's|@''REPLACE_WCSTOK''@|$(REPLACE_WCSTOK)|g' \
+             -e 's|@''REPLACE_WMEMCMP''@|$(REPLACE_WMEMCMP)|g' \
+             -e 's|@''REPLACE_WMEMPCPY''@|$(REPLACE_WMEMPCPY)|g' \
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
-       } > $@-t && \
-       mv $@-t $@
+             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
+             > $@-t
+       $(AM_V_at)mv $@-t $@
 
 # We need the following in order to create <wctype.h> when the system
 # doesn't have one that works with the given compiler.
 wctype.h: wctype.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
@@ -4309,9 +7059,8 @@ wctype.h: wctype.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H
              -e 's/@''REPLACE_TOWLOWER''@/$(REPLACE_TOWLOWER)/g' \
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/wctype.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/wctype.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 
 mostlyclean-local: mostlyclean-generic
        @for dir in '' $(MOSTLYCLEANDIRS); do \
@@ -4320,6 +7069,10 @@ mostlyclean-local: mostlyclean-generic
          fi; \
        done; \
        :
+distclean-local: distclean-gnulib-libobjs
+distclean-gnulib-libobjs:
+       -rm -f @gl_LIBOBJDEPS@
+maintainer-clean-local: distclean-gnulib-libobjs
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
index cb72f26..6ecea98 100644 (file)
@@ -1,5 +1,5 @@
 /* A C macro for declaring that a function does not return.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 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
        AIX system header files and several gnulib header files use precisely
        this syntax with 'extern'.  */
 #  define _Noreturn [[noreturn]]
+# elif (defined __clang__ && __clang_major__ < 16 \
+        && defined _GL_WORK_AROUND_LLVM_BUG_59792)
+   /* Compile with -D_GL_WORK_AROUND_LLVM_BUG_59792 to work around
+      that rare LLVM bug, though you may get many false-alarm warnings.  */
+#  define _Noreturn
 # elif ((!defined __cplusplus || defined __clang__) \
         && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \
             || (!defined __STRICT_ANSI__ \
-                && (__4 < __GNUC__ + (7 <= __GNUC_MINOR__) \
+                && (4 < __GNUC__ + (7 <= __GNUC_MINOR__) \
                     || (defined __apple_build_version__ \
                         ? 6000000 <= __apple_build_version__ \
                         : 3 < __clang_major__ + (5 <= __clang_minor__))))))
index 65c2d4d..a1bb3d7 100644 (file)
@@ -1,6 +1,6 @@
 /* Memory allocation on the stack.
 
-   Copyright (C) 1995, 1999, 2001-2004, 2006-2021 Free Software Foundation,
+   Copyright (C) 1995, 1999, 2001-2004, 2006-2023 Free Software Foundation,
    Inc.
 
    This file is free software: you can redistribute it and/or modify
index 2262de9..922be1f 100644 (file)
@@ -1,6 +1,6 @@
 /* Memory allocators such as malloc+free.
 
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index f0e8f34..0c830d0 100644 (file)
@@ -1,6 +1,6 @@
 /* Memory allocators such as malloc+free.
 
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 8294353..3b74789 100644 (file)
@@ -1,6 +1,6 @@
 /* anytostr.c -- convert integers to printable strings
 
-   Copyright (C) 2001, 2006, 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2006, 2008-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 90ae0d5..0d6f169 100644 (file)
@@ -1,7 +1,7 @@
 /* areadlink.c -- readlink wrapper to return the link name in malloc'd storage
    Unlike xreadlink and xreadlink_with_size, don't ever call exit.
 
-   Copyright (C) 2001, 2003-2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2003-2007, 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index a351150..cd5738d 100644 (file)
@@ -1,6 +1,6 @@
 /* Read symbolic links without size limitation.
 
-   Copyright (C) 2001, 2003-2004, 2007, 2009-2021 Free Software Foundation,
+   Copyright (C) 2001, 2003-2004, 2007, 2009-2023 Free Software Foundation,
    Inc.
 
    This file is free software: you can redistribute it and/or modify
 
 /* Written by Jim Meyering <jim@meyering.net>  */
 
-#include <stddef.h>
+#include <stdlib.h>
 
-extern char *areadlink (char const *filename);
-extern char *areadlink_with_size (char const *filename, size_t size_hint);
+extern char *areadlink (char const *filename)
+  _GL_ATTRIBUTE_DEALLOC_FREE;
+extern char *areadlink_with_size (char const *filename, size_t size_hint)
+  _GL_ATTRIBUTE_DEALLOC_FREE;
 
 #if GNULIB_AREADLINKAT
-extern char *areadlinkat (int fd, char const *filename);
+extern char *areadlinkat (int fd, char const *filename)
+  _GL_ATTRIBUTE_DEALLOC_FREE;
 #endif
 
 #if GNULIB_AREADLINKAT_WITH_SIZE
 extern char *areadlinkat_with_size (int fd, char const *filename,
-                                    size_t size_hint);
+                                    size_t size_hint)
+  _GL_ATTRIBUTE_DEALLOC_FREE;
 #endif
index b4de241..9498ae1 100644 (file)
@@ -1,5 +1,5 @@
 /* A C macro for declaring that specific arguments must not be NULL.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
index dfdb4e3..9cddb37 100644 (file)
@@ -1,11 +1,11 @@
 /* argmatch.c -- find a match for a string in an array
 
-   Copyright (C) 1990, 1998-1999, 2001-2007, 2009-2021 Free Software
+   Copyright (C) 1990, 1998-1999, 2001-2007, 2009-2023 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -24,7 +24,6 @@
 /* Specification.  */
 #include "argmatch.h"
 
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -33,7 +32,6 @@
 
 #include "error.h"
 #include "quotearg.h"
-#include "getprogname.h"
 
 #if USE_UNLOCKED_IO
 # include "unlocked-io.h"
@@ -62,7 +60,7 @@ __argmatch_die (void)
   ARGMATCH_DIE;
 }
 
-/* Used by XARGMATCH and XARGCASEMATCH.  See description in argmatch.h.
+/* Used by XARGMATCH.  See description in argmatch.h.
    Default to __argmatch_die, but allow caller to change this at run-time. */
 argmatch_exit_fn argmatch_die = __argmatch_die;
 
@@ -120,6 +118,21 @@ argmatch (const char *arg, const char *const *arglist,
     return matchind;
 }
 
+ptrdiff_t
+argmatch_exact (const char *arg, const char *const *arglist)
+{
+  size_t i;
+
+  /* Test elements for exact match.  */
+  for (i = 0; arglist[i]; i++)
+    {
+      if (!strcmp (arglist[i], arg))
+        return i;
+    }
+
+  return -1;
+}
+
 /* Error reporting for argmatch.
    CONTEXT is a description of the type of entity that was being matched.
    VALUE is the invalid value that was given.
@@ -174,9 +187,16 @@ ptrdiff_t
 __xargmatch_internal (const char *context,
                       const char *arg, const char *const *arglist,
                       const void *vallist, size_t valsize,
-                      argmatch_exit_fn exit_fn)
+                      argmatch_exit_fn exit_fn,
+                      bool allow_abbreviation)
 {
-  ptrdiff_t res = argmatch (arg, arglist, vallist, valsize);
+  ptrdiff_t res;
+
+  if (allow_abbreviation)
+    res = argmatch (arg, arglist, vallist, valsize);
+  else
+    res = argmatch_exact (arg, arglist);
+
   if (res >= 0)
     /* Success. */
     return res;
index 3ef6813..9e8d217 100644 (file)
@@ -1,11 +1,11 @@
 /* argmatch.h -- definitions and prototypes for argmatch.c
 
-   Copyright (C) 1990, 1998-1999, 2001-2002, 2004-2005, 2009-2021 Free Software
+   Copyright (C) 1990, 1998-1999, 2001-2002, 2004-2005, 2009-2023 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
 #ifndef ARGMATCH_H_
 # define ARGMATCH_H_ 1
 
+/* This file uses _GL_ATTRIBUTE_PURE.  */
+# if !_GL_CONFIG_H_INCLUDED
+#  error "Please include config.h first."
+# endif
+
 # include <limits.h>
-# include <stdbool.h>
 # include <stddef.h>
 # include <stdio.h>
 # include <string.h> /* memcmp */
 
 # include "gettext.h"
 # include "quote.h"
-# include "verify.h"
 
 # ifdef  __cplusplus
 extern "C" {
@@ -42,7 +45,8 @@ extern "C" {
    (argument list ends with a NULL guard).  */
 
 # define ARGMATCH_VERIFY(Arglist, Vallist) \
-    verify (ARRAY_CARDINALITY (Arglist) == ARRAY_CARDINALITY (Vallist) + 1)
+    static_assert (ARRAY_CARDINALITY (Arglist) \
+                   == ARRAY_CARDINALITY (Vallist) + 1)
 
 /* Return the index of the element of ARGLIST (NULL terminated) that
    matches with ARG.  If VALLIST is not NULL, then use it to resolve
@@ -52,9 +56,15 @@ extern "C" {
 ptrdiff_t argmatch (char const *arg, char const *const *arglist,
                     void const *vallist, size_t valsize) _GL_ATTRIBUTE_PURE;
 
+ptrdiff_t argmatch_exact (char const *arg, char const *const *arglist)
+  _GL_ATTRIBUTE_PURE;
+
 # define ARGMATCH(Arg, Arglist, Vallist) \
   argmatch (Arg, Arglist, (void const *) (Vallist), sizeof *(Vallist))
 
+# define ARGMATCH_EXACT(Arg, Arglist) \
+  argmatch_exact (Arg, Arglist)
+
 /* xargmatch calls this function when it fails.  This function should not
    return.  By default, this is a function that calls ARGMATCH_DIE which
    in turn defaults to 'exit (exit_failure)'.  */
@@ -83,13 +93,14 @@ void argmatch_valid (char const *const *arglist,
 
 
 
-/* Same as argmatch, but upon failure, report an explanation of the
-   failure, and exit using the function EXIT_FN. */
+/* Like argmatch/argmatch_exact, but upon failure, report an explanation
+   of the failure, and exit using the function EXIT_FN. */
 
 ptrdiff_t __xargmatch_internal (char const *context,
                                 char const *arg, char const *const *arglist,
                                 void const *vallist, size_t valsize,
-                                argmatch_exit_fn exit_fn);
+                                argmatch_exit_fn exit_fn,
+                                bool allow_abbreviation);
 
 /* Programmer friendly interface to __xargmatch_internal. */
 
@@ -97,7 +108,15 @@ ptrdiff_t __xargmatch_internal (char const *context,
   ((Vallist) [__xargmatch_internal (Context, Arg, Arglist,      \
                                     (void const *) (Vallist),   \
                                     sizeof *(Vallist),          \
-                                    argmatch_die)])
+                                    argmatch_die,               \
+                                    true)])
+
+# define XARGMATCH_EXACT(Context, Arg, Arglist, Vallist)        \
+  ((Vallist) [__xargmatch_internal (Context, Arg, Arglist,      \
+                                    (void const *) (Vallist),   \
+                                    sizeof *(Vallist),          \
+                                    argmatch_die,               \
+                                    false)])
 
 /* Convert a value into a corresponding argument. */
 
similarity index 63%
rename from gnulib-tests/sig-handler.c
rename to lib/assert.in.h
index 6257914..b0ab99c 100644 (file)
@@ -1,6 +1,5 @@
-/* Convenience declarations when working with <signal.h>.
-
-   Copyright (C) 2012-2021 Free Software Foundation, Inc.
+/* Substitute for and wrapper around <assert.h>
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
    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>
+/* Do not guard the include, since <assert.h> is supposed to define
+   the assert macro each time it is included.  */
+
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+@PRAGMA_COLUMNS@
+
+#@INCLUDE_NEXT@ @NEXT_ASSERT_H@
 
-#define SIG_HANDLER_INLINE _GL_EXTERN_INLINE
-#include "sig-handler.h"
+/* The definition of static_assert is copied here.  */
index 49aa82f..e31076d 100644 (file)
@@ -1,6 +1,6 @@
 /* Run-time assert-like macros.
 
-   Copyright (C) 2014-2021 Free Software Foundation, Inc.
+   Copyright (C) 2014-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 80a23f5..9464fde 100644 (file)
@@ -1,6 +1,6 @@
 /* ATTRIBUTE_* macros for using attributes in GCC and similar compilers
 
-   Copyright 2020-2021 Free Software Foundation, Inc.
+   Copyright 2020-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
@@ -32,7 +32,7 @@
 
 
 /* This file defines two types of attributes:
-   * C2x standard attributes.  These have macro names that do not begin with
+   * C23 standard attributes.  These have macro names that do not begin with
      'ATTRIBUTE_'.
    * Selected GCC attributes; see:
      https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html
      These names begin with 'ATTRIBUTE_' to avoid name clashes.  */
 
 
+/* This file uses _GL_ATTRIBUTE_ALLOC_SIZE, _GL_ATTRIBUTE_ALWAYS_INLINE,
+   _GL_ATTRIBUTE_ARTIFICIAL, _GL_ATTRIBUTE_COLD, _GL_ATTRIBUTE_CONST,
+   _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_DEPRECATED, _GL_ATTRIBUTE_ERROR,
+   _GL_ATTRIBUTE_WARNING, _GL_ATTRIBUTE_EXTERNALLY_VISIBLE,
+   _GL_ATTRIBUTE_FALLTHROUGH, _GL_ATTRIBUTE_FORMAT, _GL_ATTRIBUTE_LEAF,
+   _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_MAY_ALIAS, _GL_ATTRIBUTE_MAYBE_UNUSED,
+   _GL_ATTRIBUTE_NODISCARD, _GL_ATTRIBUTE_NOINLINE, _GL_ATTRIBUTE_NONNULL,
+   _GL_ATTRIBUTE_NONSTRING, _GL_ATTRIBUTE_NOTHROW, _GL_ATTRIBUTE_PACKED,
+   _GL_ATTRIBUTE_PURE, _GL_ATTRIBUTE_RETURNS_NONNULL,
+   _GL_ATTRIBUTE_SENTINEL.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
+
 /* =============== Attributes for specific kinds of functions =============== */
 
 /* Attributes for functions that should not be used.  */
 /* Applies to: function, pointer to function, function types.  */
 #define ATTRIBUTE_ALLOC_SIZE(args) _GL_ATTRIBUTE_ALLOC_SIZE (args)
 
+/* ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers
+   that can be freed by passing them as the Ith argument to the
+   function F.
+   ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that
+   can be freed via 'free'; it can be used only after declaring 'free'.  */
+/* Applies to: functions.  Cannot be used on inline functions.  */
+#define ATTRIBUTE_DEALLOC(f, i) _GL_ATTRIBUTE_DEALLOC(f, i)
+#define ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_DEALLOC_FREE
 
 /* Attributes for variadic functions.  */
 
index 5dbd157..6de60aa 100644 (file)
@@ -1,6 +1,6 @@
 /* basename.c -- return the last element in a file name
 
-   Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2021 Free Software
+   Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2023 Free Software
    Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
@@ -21,7 +21,6 @@
 /* Specification.  */
 #include "basename-lgpl.h"
 
-#include <stdbool.h>
 #include <string.h>
 
 #include "filename.h"
index d520c09..c1982fa 100644 (file)
@@ -1,6 +1,6 @@
 /* Extract the last component (base name) of a file name.
 
-   Copyright (C) 1998, 2001, 2003-2006, 2009-2021 Free Software Foundation,
+   Copyright (C) 1998, 2001, 2003-2006, 2009-2023 Free Software Foundation,
    Inc.
 
    This file is free software: you can redistribute it and/or modify
 #ifndef _BASENAME_LGPL_H
 #define _BASENAME_LGPL_H
 
+/* This file uses _GL_ATTRIBUTE_PURE.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 #include <stddef.h>
 
 #ifndef DOUBLE_SLASH_IS_DISTINCT_ROOT
index 1181134..21fab1e 100644 (file)
@@ -1,11 +1,11 @@
 /* basename.c -- return the last element in a file name
 
-   Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2021 Free Software
+   Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2023 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index adc0ae2..28a9e6e 100644 (file)
@@ -1,5 +1,5 @@
 /* Binary mode I/O.
-   Copyright 2017-2021 Free Software Foundation, Inc.
+   Copyright 2017-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 0fa8d54..855d6f8 100644 (file)
@@ -1,5 +1,5 @@
 /* Binary mode I/O.
-   Copyright (C) 2001, 2003, 2005, 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2003, 2005, 2008-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 #ifndef _BINARY_H
 #define _BINARY_H
 
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _GL_UNUSED.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 /* For systems that distinguish between text and binary I/O.
    O_BINARY is guaranteed by the gnulib <fcntl.h>. */
 #include <fcntl.h>
@@ -25,9 +30,6 @@
    so we include it here first.  */
 #include <stdio.h>
 
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
 _GL_INLINE_HEADER_BEGIN
 #ifndef BINARY_IO_INLINE
 # define BINARY_IO_INLINE _GL_INLINE
@@ -47,7 +49,7 @@ _GL_INLINE_HEADER_BEGIN
   /* Use a function rather than a macro, to avoid gcc warnings
      "warning: statement with no effect".  */
 BINARY_IO_INLINE int
-__gl_setmode (int fd _GL_UNUSED, int mode _GL_UNUSED)
+__gl_setmode (_GL_UNUSED int fd, _GL_UNUSED int mode)
 {
   return O_BINARY;
 }
index e8987f2..180ab15 100644 (file)
@@ -1,6 +1,6 @@
 /* Rotate bits in integers.
 
-   Copyright (C) 2012-2021 Free Software Foundation, Inc.
+   Copyright (C) 2012-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index ceb734a..6fb7b49 100644 (file)
@@ -1,5 +1,5 @@
 /* bitrotate.h - Rotate bits in integers
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 #ifndef _GL_BITROTATE_H
 #define _GL_BITROTATE_H
 
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 #include <limits.h>
 #include <stdint.h>
 #include <sys/types.h>
 
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
 _GL_INLINE_HEADER_BEGIN
 #ifndef BITROTATE_INLINE
 # define BITROTATE_INLINE _GL_INLINE
index b8239af..4defbdd 100644 (file)
@@ -1,5 +1,5 @@
 /* Convert unibyte character to wide character.
-   Copyright (C) 2008, 2010-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008, 2010-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2008.
 
    This file is free software: you can redistribute it and/or modify
@@ -22,6 +22,7 @@
 
 #include <stdio.h>
 #include <stdlib.h>
+#include <string.h>
 
 wint_t
 btowc (int c)
@@ -32,7 +33,14 @@ btowc (int c)
       wchar_t wc;
 
       buf[0] = c;
+#if HAVE_MBRTOWC
+      mbstate_t state;
+      memset (&state, 0, sizeof (mbstate_t));
+      size_t ret = mbrtowc (&wc, buf, 1, &state);
+      if (!(ret == (size_t)(-1) || ret == (size_t)(-2)))
+#else
       if (mbtowc (&wc, buf, 1) >= 0)
+#endif
         return wc;
     }
   return WEOF;
index a47b61a..458c014 100644 (file)
@@ -1,5 +1,5 @@
 /* C++ compatible function declaration macros.
-   Copyright (C) 2010-2021 Free Software Foundation, Inc.
+   Copyright (C) 2010-2023 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
    Example:
      _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...)
                                   _GL_ARG_NONNULL ((1)));
+
+   Note: Attributes, such as _GL_ATTRIBUTE_DEPRECATED, are supported in front
+   of a _GL_FUNCDECL_RPL invocation only in C mode, not in C++ mode.  (That's
+   because
+     [[...]] extern "C" <declaration>;
+   is invalid syntax in C++.)
  */
 #define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \
   _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes)
index 300f97c..a4343f4 100644 (file)
@@ -1,6 +1,6 @@
 /* Character handling in C locale.
 
-   Copyright (C) 2003-2021 Free Software Foundation, Inc.
+   Copyright (C) 2003-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 3a652ac..cb0f4f3 100644 (file)
@@ -5,7 +5,7 @@
    <ctype.h> functions' behaviour depends on the current locale set via
    setlocale.
 
-   Copyright (C) 2000-2003, 2006, 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2000-2003, 2006, 2008-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 #ifndef C_CTYPE_H
 #define C_CTYPE_H
 
-#include <stdbool.h>
-
-#ifndef _GL_INLINE_HEADER_BEGIN
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE.  */
+#if !_GL_CONFIG_H_INCLUDED
  #error "Please include config.h first."
 #endif
+
 _GL_INLINE_HEADER_BEGIN
 #ifndef C_CTYPE_INLINE
 # define C_CTYPE_INLINE _GL_INLINE
index 1965bdd..f0078d5 100644 (file)
@@ -1,10 +1,10 @@
 /* Stack overflow handling.
 
-   Copyright (C) 2002, 2004, 2006, 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2004, 2006, 2008-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -52,7 +52,6 @@
 #include <sigsegv.h>
 
 #include "exitfail.h"
-#include "getprogname.h"
 #include "idx.h"
 #include "ignore-value.h"
 
@@ -126,7 +125,7 @@ die (int signo)
 }
 
 static _GL_ASYNC_SAFE void
-null_action (int signo _GL_UNUSED)
+null_action (_GL_UNUSED int signo)
 {
 }
 
@@ -142,7 +141,7 @@ static volatile int segv_handler_missing;
    overflow.  This function is async-signal-safe.  */
 
 static _GL_ASYNC_SAFE int
-segv_handler (void *address _GL_UNUSED, int serious)
+segv_handler (_GL_UNUSED void *address, int serious)
 {
 # if DEBUG
   {
@@ -165,7 +164,7 @@ segv_handler (void *address _GL_UNUSED, int serious)
    overflow and exit.  This function is async-signal-safe.  */
 
 static _GL_ASYNC_SAFE _Noreturn void
-overflow_handler (int emergency, stackoverflow_context_t context _GL_UNUSED)
+overflow_handler (int emergency, _GL_UNUSED stackoverflow_context_t context)
 {
 # if DEBUG
   {
@@ -205,7 +204,7 @@ c_stack_action (_GL_ASYNC_SAFE void (*action) (int))
 #else /* !HAVE_STACK_OVERFLOW_RECOVERY */
 
 int
-c_stack_action (_GL_ASYNC_SAFE void (*action) (int)  _GL_UNUSED)
+c_stack_action (_GL_ASYNC_SAFE void (*action) (_GL_UNUSED int) )
 {
   errno = ENOTSUP;
   return -1;
index a9a8b13..7958112 100644 (file)
@@ -1,10 +1,10 @@
 /* Stack overflow handling.
 
-   Copyright (C) 2002, 2004, 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2004, 2008-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
 
+/* This file uses _GL_ASYNC_SAFE.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
 
 /* Set up ACTION so that it is invoked on C stack overflow and on other,
    stack-unrelated, segmentation violation.
@@ -47,3 +56,7 @@
    signal or exercise other system dependent exception handling APIs.  */
 
 extern int c_stack_action (_GL_ASYNC_SAFE void (* /*action*/) (int));
+
+#ifdef __cplusplus
+}
+#endif
index 82f99bb..5dfa96c 100644 (file)
@@ -1,5 +1,5 @@
 /* Case-insensitive string comparison functions in C locale.
-   Copyright (C) 1995-1996, 2001, 2003, 2005, 2009-2021 Free Software
+   Copyright (C) 1995-1996, 2001, 2003, 2005, 2009-2023 Free Software
    Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
 #ifndef C_STRCASE_H
 #define C_STRCASE_H
 
+/* This file uses _GL_ATTRIBUTE_PURE.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 #include <stddef.h>
 
 
index 3c22455..8a958dc 100644 (file)
@@ -1,5 +1,5 @@
 /* c-strcasecmp.c -- case insensitive string comparator in C locale
-   Copyright (C) 1998-1999, 2005-2006, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 1998-1999, 2005-2006, 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 66b9cf3..1d0759a 100644 (file)
@@ -1,5 +1,5 @@
 /* Optimized case-insensitive string comparison in C locale.
-   Copyright (C) 2001-2002, 2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2001-2002, 2007, 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index f3ca786..4ca8c5f 100644 (file)
@@ -1,5 +1,5 @@
 /* c-strncasecmp.c -- case insensitive string comparator in C locale
-   Copyright (C) 1998-1999, 2005-2006, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 1998-1999, 2005-2006, 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 25064e9..08843ac 100644 (file)
@@ -1,6 +1,6 @@
 /* calloc() function that is glibc compatible.
    This wrapper function is required at least on Tru64 UNIX 5.1 and mingw.
-   Copyright (C) 2004-2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2004-2007, 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 9d0c125..49c92dc 100644 (file)
@@ -1,6 +1,6 @@
 /* Read symbolic links into a buffer without size limitation, relative to fd.
 
-   Copyright (C) 2001, 2003-2004, 2007, 2009-2021 Free Software Foundation,
+   Copyright (C) 2001, 2003-2004, 2007, 2009-2023 Free Software Foundation,
    Inc.
 
    This file is free software: you can redistribute it and/or modify
 # define SIZE_MAX ((size_t) -1)
 #endif
 
-#ifndef SSIZE_MAX
-# define SSIZE_MAX ((ssize_t) (SIZE_MAX / 2))
-#endif
-
 #include "allocator.h"
 
 enum { STACK_BUF_SIZE = 1024 };
@@ -55,7 +51,9 @@ enum { STACK_BUF_SIZE = 1024 };
    When the GCC bug is fixed this workaround should be limited to the
    broken GCC versions.  */
 #if _GL_GNUC_PREREQ (10, 1)
-# if defined GCC_LINT || defined lint
+# if _GL_GNUC_PREREQ (12, 1)
+#  pragma GCC diagnostic ignored "-Wreturn-local-addr"
+# elif defined GCC_LINT || defined lint
 __attribute__ ((__noinline__))
 # elif __OPTIMIZE__ && !__NO_INLINE__
 #  define GCC_BOGUS_WRETURN_LOCAL_ADDR
index a3517b8..562cf01 100644 (file)
@@ -1,6 +1,6 @@
 /* Read symbolic links into a buffer without size limitation, relative to fd.
 
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 #ifndef _GL_CAREADLINKAT_H
 #define _GL_CAREADLINKAT_H
 
+/* This file uses HAVE_READLINKAT.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 #include <fcntl.h>
 #include <unistd.h>
 
index b883b25..412f036 100644 (file)
@@ -1,4 +1,5 @@
-/* Copyright (C) 1992-2021 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2023 Free Software Foundation, Inc.
+   Copyright The GNU Toolchain Authors.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -40,7 +41,9 @@
    Similarly for __has_builtin, etc.  */
 #if (defined __has_attribute \
      && (!defined __clang_minor__ \
-         || 3 < __clang_major__ + (5 <= __clang_minor__)))
+         || (defined __apple_build_version__ \
+             ? 6000000 <= __apple_build_version__ \
+             : 3 < __clang_major__ + (5 <= __clang_minor__))))
 # define __glibc_has_attribute(attr) __has_attribute (attr)
 #else
 # define __glibc_has_attribute(attr) 0
 #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)
-# 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)
+# 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
+
+/* 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) \
+  ((__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                                             \
+   || (__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))))
+
+/* 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) \
+  (__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))
+
+/* Fortify function f.  __f_alias, __f_chk and __f_chk_warn must be
+   declared.  */
+
+# 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)))                       \
+
+/* Fortify function f, where object size argument passed to f is the number of
+   elements and not total size.  */
+
+# 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))))                     \
+
 #endif
 
+
 #if __GNUC_PREREQ (4,3)
 # define __warnattr(msg) __attribute__((__warning__ (msg)))
 # define __errordecl(name, msg) \
 # define __attribute_alloc_size__(params) /* Ignore.  */
 #endif
 
+/* Tell the compiler which argument to an allocation function
+   indicates the alignment of the allocation.  */
+#if __GNUC_PREREQ (4, 9) || __glibc_has_attribute (__alloc_align__)
+# define __attribute_alloc_align__(param) \
+  __attribute__ ((__alloc_align__ param))
+#else
+# define __attribute_alloc_align__(param) /* Ignore.  */
+#endif
+
 /* At some point during the gcc 2.96 development the `pure' attribute
    for functions was introduced.  We don't want to use it unconditionally
    (although this would be possible) since it generates warnings.  */
 
 #if __GNUC_PREREQ (2,7) || __glibc_has_attribute (__unused__)
 # define __attribute_maybe_unused__ __attribute__ ((__unused__))
-/* Once the next version of the C standard comes out, we can
-   do something like the following here:
-   #elif defined __STDC_VERSION__ && 202???L <= __STDC_VERSION__
-   # define __attribute_maybe_unused__ [[__maybe_unused__]]   */
 #else
 # define __attribute_maybe_unused__ /* Ignore */
 #endif
 # define __nonnull(params) __attribute_nonnull__ (params)
 #endif
 
+/* The returns_nonnull function attribute marks the return type of the function
+   as always being non-null.  */
+#ifndef __returns_nonnull
+# if __GNUC_PREREQ (4, 9) || __glibc_has_attribute (__returns_nonnull__)
+# define __returns_nonnull __attribute__ ((__returns_nonnull__))
+# else
+# define __returns_nonnull
+# endif
+#endif
+
 /* If fortification mode, we warn about unused results of certain
    function calls which can lead to problems.  */
 #if __GNUC_PREREQ (3,4) || __glibc_has_attribute (__warn_unused_result__)
@@ -598,9 +672,36 @@ _Static_assert (0, "IEEE 128-bits long double requires redirection on this platf
    array according to access mode, or at least one element when
    size-index is not provided:
      access (access-mode, <ref-index> [, <size-index>])  */
-#define __attr_access(x) __attribute__ ((__access__ x))
+#  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.  */
+#  if __USE_FORTIFY_LEVEL == 3
+#    define __fortified_attr_access(a, o, s) __attribute__ ((__access__ (a, o)))
+#  else
+#    define __fortified_attr_access(a, o, s) __attr_access ((a, o, s))
+#  endif
+#  if __GNUC_PREREQ (11, 0)
+#    define __attr_access_none(argno) __attribute__ ((__access__ (__none__, argno)))
+#  else
+#    define __attr_access_none(argno)
+#  endif
 #else
+#  define __fortified_attr_access(a, o, s)
 #  define __attr_access(x)
+#  define __attr_access_none(argno)
+#endif
+
+#if __GNUC_PREREQ (11, 0)
+/* Designates dealloc as a function to call to deallocate objects
+   allocated by the declared function.  */
+# define __attr_dealloc(dealloc, argno) \
+    __attribute__ ((__malloc__ (dealloc, argno)))
+# define __attr_dealloc_free __attr_dealloc (__builtin_free, 1)
+#else
+# define __attr_dealloc(dealloc, argno)
+# define __attr_dealloc_free
 #endif
 
 /* Specify that a function such as setjmp or vfork may return
index 7defa93..e4cecbd 100644 (file)
@@ -1,6 +1,6 @@
 /* cloexec.c - set or clear the close-on-exec descriptor flag
 
-   Copyright (C) 1991, 2004-2006, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 1991, 2004-2006, 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 97a3659..057fd66 100644 (file)
@@ -1,6 +1,6 @@
 /* cloexec.c - set or clear the close-on-exec descriptor flag
 
-   Copyright (C) 2004, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2009-2023 Free Software Foundation, Inc.
 
    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,8 +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 <stdbool.h>
-
 /* Set the 'FD_CLOEXEC' flag of DESC if VALUE is true,
    or clear the flag if VALUE is false.
    Return 0 on success, or -1 on error with 'errno' set.
index 5b9ab6c..3c1b09e 100644 (file)
@@ -1,5 +1,5 @@
 /* close replacement.
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 7cee45a..aa79edb 100644 (file)
@@ -1,6 +1,6 @@
 /* Buffer primitives for comparison operations.
 
-   Copyright (C) 1993, 1995, 1998, 2001-2002, 2006, 2009-2013, 2015-2021 Free
+   Copyright (C) 1993, 1995, 1998, 2001-2002, 2006, 2009-2013, 2015-2023 Free
    Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
@@ -104,6 +104,5 @@ buffer_lcm (size_t a, size_t b, size_t lcm_max)
 
   /* Yield a if there is an overflow.  */
   q = a / n;
-  lcm = q * b;
-  return lcm <= lcm_max && lcm / b == q ? lcm : a;
+  return !INT_MULTIPLY_WRAPV (q, b, &lcm) && lcm <= lcm_max ? lcm : a;
 }
index 79b9f06..91680fe 100644 (file)
@@ -1,6 +1,6 @@
 /* Buffer primitives for comparison operations.
 
-   Copyright (C) 2002, 2009-2013, 2015-2021 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2009-2013, 2015-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 1a6ccb7..d338c18 100644 (file)
@@ -37,6 +37,9 @@
 #ifndef __ia64__
 #undef __ia64__
 #endif
+#ifndef __loongarch64__
+#undef __loongarch64__
+#endif
 #ifndef __m68k__
 #undef __m68k__
 #endif
 #endif
 
 
+/* Witness that <config.h> has been included.  */
+#define _GL_CONFIG_H_INCLUDED 1
+
+
 /* Define if building universal (internal helper macro) */
 #undef AC_APPLE_UNIVERSAL_BUILD
 
 /* Define to the number of bits in type 'wint_t'. */
 #undef BITSIZEOF_WINT_T
 
-/* Define to 1 if the `closedir' function returns void instead of int. */
+/* Define to 1 if the 'closedir' function returns void instead of int. */
 #undef CLOSEDIR_VOID
 
 /* Define to 1 if using 'alloca.c'. */
 /* Define to 1 if fopen() fails to recognize a trailing slash. */
 #undef FOPEN_TRAILING_SLASH_BUG
 
+/* Define to 1 if fflush is known to work on stdin as per POSIX.1-2008, 0 if
+   fflush is known to not work, -1 if unknown. */
+#undef FUNC_FFLUSH_STDIN
+
 /* Define to 1 if mkdir mistakenly creates a directory given with a trailing
    dot component. */
 #undef FUNC_MKDIR_DOT_BUG
 /* Define to 1 if nl_langinfo (YESEXPR) returns a non-empty string. */
 #undef FUNC_NL_LANGINFO_YESEXPR_WORKS
 
+/* Define to 1 if the compiler is checking for lint. */
+#undef GCC_LINT
+
 /* Define this to 'void' or 'struct timezone' to match the system's
    declaration of the second argument to gettimeofday. */
 #undef GETTIMEOFDAY_TIMEZONE
 /* Define to 1 when the gnulib module btowc should be tested. */
 #undef GNULIB_TEST_BTOWC
 
+/* Define to 1 when the gnulib module calloc-gnu should be tested. */
+#undef GNULIB_TEST_CALLOC_GNU
+
 /* Define to 1 when the gnulib module calloc-posix should be tested. */
 #undef GNULIB_TEST_CALLOC_POSIX
 
 /* Define to 1 when the gnulib module fopen should be tested. */
 #undef GNULIB_TEST_FOPEN
 
+/* Define to 1 when the gnulib module fopen-gnu should be tested. */
+#undef GNULIB_TEST_FOPEN_GNU
+
 /* Define to 1 when the gnulib module fprintf should be tested. */
 #undef GNULIB_TEST_FPRINTF
 
 /* Define to 1 when the gnulib module getpagesize should be tested. */
 #undef GNULIB_TEST_GETPAGESIZE
 
+/* Define to 1 when the gnulib module getprogname should be tested. */
+#undef GNULIB_TEST_GETPROGNAME
+
 /* Define to 1 when the gnulib module getrandom should be tested. */
 #undef GNULIB_TEST_GETRANDOM
 
 /* Define to 1 when the gnulib module lstat should be tested. */
 #undef GNULIB_TEST_LSTAT
 
+/* Define to 1 when the gnulib module malloc-gnu should be tested. */
+#undef GNULIB_TEST_MALLOC_GNU
+
 /* Define to 1 when the gnulib module malloc-posix should be tested. */
 #undef GNULIB_TEST_MALLOC_POSIX
 
 /* Define to 1 when the gnulib module printf should be tested. */
 #undef GNULIB_TEST_PRINTF
 
+/* Define to 1 when the gnulib module pselect should be tested. */
+#undef GNULIB_TEST_PSELECT
+
 /* Define to 1 when the gnulib module pthread_sigmask should be tested. */
 #undef GNULIB_TEST_PTHREAD_SIGMASK
 
 /* Define to 1 when the gnulib module reallocarray should be tested. */
 #undef GNULIB_TEST_REALLOCARRAY
 
+/* Define to 1 when the gnulib module realloc-gnu should be tested. */
+#undef GNULIB_TEST_REALLOC_GNU
+
 /* Define to 1 when the gnulib module realloc-posix should be tested. */
 #undef GNULIB_TEST_REALLOC_POSIX
 
 /* Define to 1 when the gnulib module setsockopt should be tested. */
 #undef GNULIB_TEST_SETSOCKOPT
 
-/* Define to 1 when the gnulib module sigaction should be tested. */
-#undef GNULIB_TEST_SIGACTION
-
 /* Define to 1 when the gnulib module sigprocmask should be tested. */
 #undef GNULIB_TEST_SIGPROCMASK
 
 /* Define to 1 when the gnulib module stat should be tested. */
 #undef GNULIB_TEST_STAT
 
+/* Define to 1 when the gnulib module stpcpy should be tested. */
+#undef GNULIB_TEST_STPCPY
+
 /* Define to 1 when the gnulib module strerror should be tested. */
 #undef GNULIB_TEST_STRERROR
 
 /* Define to 1 when the gnulib module symlink should be tested. */
 #undef GNULIB_TEST_SYMLINK
 
+/* Define to 1 when the gnulib module time should be tested. */
+#undef GNULIB_TEST_TIME
+
 /* Define to 1 when the gnulib module timegm should be tested. */
 #undef GNULIB_TEST_TIMEGM
 
 /* Define to 1 when the gnulib module unsetenv should be tested. */
 #undef GNULIB_TEST_UNSETENV
 
-/* Define to 1 when the gnulib module vasprintf should be tested. */
-#undef GNULIB_TEST_VASPRINTF
-
 /* Define to 1 when the gnulib module vfprintf should be tested. */
 #undef GNULIB_TEST_VFPRINTF
 
 /* Define to 1 if you have the <arpa/inet.h> header file. */
 #undef HAVE_ARPA_INET_H
 
-/* Define to 1 if you have the `atoll' function. */
+/* Define to 1 if you have the 'atoll' function. */
 #undef HAVE_ATOLL
 
 /* Define to 1 if you have the <bcrypt.h> header file. */
 /* Define to 1 if you have the <bp-sym.h> header file. */
 #undef HAVE_BP_SYM_H
 
-/* Define to 1 if you have the `btowc' function. */
+/* Define to 1 if you have the 'btowc' function. */
 #undef HAVE_BTOWC
 
 /* Define to 1 if nanosleep mishandles large arguments. */
    the CoreFoundation framework. */
 #undef HAVE_CFPREFERENCESCOPYAPPVALUE
 
-/* Define to 1 if you have the `clock_gettime' function. */
+/* Define to 1 if you have the 'clock_getres' function. */
+#undef HAVE_CLOCK_GETRES
+
+/* Define to 1 if you have the 'clock_gettime' function. */
 #undef HAVE_CLOCK_GETTIME
 
-/* Define to 1 if you have the `clock_settime' function. */
+/* Define to 1 if you have the 'clock_settime' function. */
 #undef HAVE_CLOCK_SETTIME
 
 /* Define to 1 if you have the <crtdefs.h> header file. */
 #undef HAVE_CRTDEFS_H
 
+/* Define to 1 if the alignas and alignof keywords work. */
+#undef HAVE_C_ALIGNASOF
+
+/* Define to 1 if bool, true and false work as per C2023. */
+#undef HAVE_C_BOOL
+
+/* Define to 1 if C nullptr is known to work. */
+#undef HAVE_C_NULLPTR
+
+/* Define to 1 if the static_assert keyword works. */
+#undef HAVE_C_STATIC_ASSERT
+
+/* Define to 1 if C supports variable-length arrays. */
+#undef HAVE_C_VARARRAYS
+
 /* Define if the GNU dcgettext() function is already present or preinstalled.
    */
 #undef HAVE_DCGETTEXT
 
-/* Define to 1 if you have the declaration of `alarm', and to 0 if you don't.
+/* Define to 1 if you have the declaration of 'alarm', and to 0 if you don't.
    */
 #undef HAVE_DECL_ALARM
 
-/* Define to 1 if you have the declaration of `clearerr_unlocked', and to 0 if
+/* Define to 1 if you have the declaration of 'clearerr_unlocked', and to 0 if
    you don't. */
 #undef HAVE_DECL_CLEARERR_UNLOCKED
 
-/* Define to 1 if you have the declaration of `ecvt', and to 0 if you don't.
+/* Define to 1 if you have the declaration of 'ecvt', and to 0 if you don't.
    */
 #undef HAVE_DECL_ECVT
 
-/* Define to 1 if you have the declaration of `execvpe', and to 0 if you
+/* Define to 1 if you have the declaration of 'execvpe', and to 0 if you
    don't. */
 #undef HAVE_DECL_EXECVPE
 
-/* Define to 1 if you have the declaration of `fcloseall', and to 0 if you
+/* Define to 1 if you have the declaration of 'fcloseall', and to 0 if you
    don't. */
 #undef HAVE_DECL_FCLOSEALL
 
-/* Define to 1 if you have the declaration of `fcvt', and to 0 if you don't.
+/* Define to 1 if you have the declaration of 'fcvt', and to 0 if you don't.
    */
 #undef HAVE_DECL_FCVT
 
-/* Define to 1 if you have the declaration of `feof_unlocked', and to 0 if you
+/* Define to 1 if you have the declaration of 'feof_unlocked', and to 0 if you
    don't. */
 #undef HAVE_DECL_FEOF_UNLOCKED
 
-/* Define to 1 if you have the declaration of `ferror_unlocked', and to 0 if
+/* Define to 1 if you have the declaration of 'ferror_unlocked', and to 0 if
    you don't. */
 #undef HAVE_DECL_FERROR_UNLOCKED
 
-/* Define to 1 if you have the declaration of `fflush_unlocked', and to 0 if
+/* Define to 1 if you have the declaration of 'fflush_unlocked', and to 0 if
    you don't. */
 #undef HAVE_DECL_FFLUSH_UNLOCKED
 
-/* Define to 1 if you have the declaration of `fgets_unlocked', and to 0 if
+/* Define to 1 if you have the declaration of 'fgets_unlocked', and to 0 if
    you don't. */
 #undef HAVE_DECL_FGETS_UNLOCKED
 
-/* Define to 1 if you have the declaration of `fputc_unlocked', and to 0 if
+/* Define to 1 if you have the declaration of 'fputc_unlocked', and to 0 if
    you don't. */
 #undef HAVE_DECL_FPUTC_UNLOCKED
 
-/* Define to 1 if you have the declaration of `fputs_unlocked', and to 0 if
+/* Define to 1 if you have the declaration of 'fputs_unlocked', and to 0 if
    you don't. */
 #undef HAVE_DECL_FPUTS_UNLOCKED
 
-/* Define to 1 if you have the declaration of `fread_unlocked', and to 0 if
+/* Define to 1 if you have the declaration of 'fread_unlocked', and to 0 if
    you don't. */
 #undef HAVE_DECL_FREAD_UNLOCKED
 
-/* Define to 1 if you have the declaration of `fwrite_unlocked', and to 0 if
+/* Define to 1 if you have the declaration of 'fwrite_unlocked', and to 0 if
    you don't. */
 #undef HAVE_DECL_FWRITE_UNLOCKED
 
-/* Define to 1 if you have the declaration of `gcvt', and to 0 if you don't.
+/* Define to 1 if you have the declaration of 'gcvt', and to 0 if you don't.
    */
 #undef HAVE_DECL_GCVT
 
-/* Define to 1 if you have the declaration of `getchar_unlocked', and to 0 if
+/* Define to 1 if you have the declaration of 'getchar_unlocked', and to 0 if
    you don't. */
 #undef HAVE_DECL_GETCHAR_UNLOCKED
 
-/* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you
+/* Define to 1 if you have the declaration of 'getc_unlocked', and to 0 if you
    don't. */
 #undef HAVE_DECL_GETC_UNLOCKED
 
-/* Define to 1 if you have the declaration of `getdtablesize', and to 0 if you
+/* Define to 1 if you have the declaration of 'getdtablesize', and to 0 if you
    don't. */
 #undef HAVE_DECL_GETDTABLESIZE
 
-/* Define to 1 if you have the declaration of `inet_pton', and to 0 if you
+/* Define to 1 if you have the declaration of 'getw', and to 0 if you don't.
+   */
+#undef HAVE_DECL_GETW
+
+/* Define to 1 if you have the declaration of 'inet_pton', and to 0 if you
    don't. */
 #undef HAVE_DECL_INET_PTON
 
-/* Define to 1 if you have the declaration of `isblank', and to 0 if you
+/* Define to 1 if you have the declaration of 'isblank', and to 0 if you
    don't. */
 #undef HAVE_DECL_ISBLANK
 
-/* Define to 1 if you have the declaration of `iswblank', and to 0 if you
+/* Define to 1 if you have the declaration of 'iswblank', and to 0 if you
    don't. */
 #undef HAVE_DECL_ISWBLANK
 
-/* Define to 1 if you have the declaration of `localtime_r', and to 0 if you
+/* Define to 1 if you have the declaration of 'localtime_r', and to 0 if you
    don't. */
 #undef HAVE_DECL_LOCALTIME_R
 
-/* Define to 1 if you have the declaration of `mbrtowc', and to 0 if you
+/* Define to 1 if you have the declaration of 'mbrtowc', and to 0 if you
    don't. */
 #undef HAVE_DECL_MBRTOWC
 
-/* Define to 1 if you have the declaration of `mbsinit', and to 0 if you
+/* Define to 1 if you have the declaration of 'mbsinit', and to 0 if you
    don't. */
 #undef HAVE_DECL_MBSINIT
 
-/* Define to 1 if you have the declaration of `mbsrtowcs', and to 0 if you
+/* Define to 1 if you have the declaration of 'mbsrtowcs', and to 0 if you
    don't. */
 #undef HAVE_DECL_MBSRTOWCS
 
-/* Define to 1 if you have the declaration of `program_invocation_name', and
+/* Define to 1 if you have the declaration of 'program_invocation_name', and
    to 0 if you don't. */
 #undef HAVE_DECL_PROGRAM_INVOCATION_NAME
 
-/* Define to 1 if you have the declaration of `program_invocation_short_name',
+/* Define to 1 if you have the declaration of 'program_invocation_short_name',
    and to 0 if you don't. */
 #undef HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME
 
-/* Define to 1 if you have the declaration of `putchar_unlocked', and to 0 if
+/* Define to 1 if you have the declaration of 'putchar_unlocked', and to 0 if
    you don't. */
 #undef HAVE_DECL_PUTCHAR_UNLOCKED
 
-/* Define to 1 if you have the declaration of `putc_unlocked', and to 0 if you
+/* Define to 1 if you have the declaration of 'putc_unlocked', and to 0 if you
    don't. */
 #undef HAVE_DECL_PUTC_UNLOCKED
 
-/* Define to 1 if you have the declaration of `setenv', and to 0 if you don't.
+/* Define to 1 if you have the declaration of 'putw', and to 0 if you don't.
+   */
+#undef HAVE_DECL_PUTW
+
+/* Define to 1 if you have the declaration of 'setenv', and to 0 if you don't.
    */
 #undef HAVE_DECL_SETENV
 
-/* Define to 1 if you have the declaration of `sleep', and to 0 if you don't.
+/* Define to 1 if you have the declaration of 'sleep', and to 0 if you don't.
    */
 #undef HAVE_DECL_SLEEP
 
-/* Define to 1 if you have the declaration of `snprintf', and to 0 if you
+/* Define to 1 if you have the declaration of 'snprintf', and to 0 if you
    don't. */
 #undef HAVE_DECL_SNPRINTF
 
-/* Define to 1 if you have the declaration of `strerror_r', and to 0 if you
+/* Define to 1 if you have the declaration of 'strerror_r', and to 0 if you
    don't. */
 #undef HAVE_DECL_STRERROR_R
 
-/* Define to 1 if you have the declaration of `strncasecmp', and to 0 if you
+/* Define to 1 if you have the declaration of 'strncasecmp', and to 0 if you
    don't. */
 #undef HAVE_DECL_STRNCASECMP
 
-/* Define to 1 if you have the declaration of `strnlen', and to 0 if you
+/* Define to 1 if you have the declaration of 'strnlen', and to 0 if you
    don't. */
 #undef HAVE_DECL_STRNLEN
 
-/* Define to 1 if you have the declaration of `strtoimax', and to 0 if you
+/* Define to 1 if you have the declaration of 'strtoimax', and to 0 if you
    don't. */
 #undef HAVE_DECL_STRTOIMAX
 
-/* Define to 1 if you have the declaration of `strtoll', and to 0 if you
+/* Define to 1 if you have the declaration of 'strtoll', and to 0 if you
    don't. */
 #undef HAVE_DECL_STRTOLL
 
-/* Define to 1 if you have the declaration of `towlower', and to 0 if you
+/* Define to 1 if you have the declaration of 'towlower', and to 0 if you
    don't. */
 #undef HAVE_DECL_TOWLOWER
 
-/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't.
+/* Define to 1 if you have the declaration of 'tzname', and to 0 if you don't.
    */
 #undef HAVE_DECL_TZNAME
 
-/* Define to 1 if you have the declaration of `unsetenv', and to 0 if you
+/* Define to 1 if you have the declaration of 'unsetenv', and to 0 if you
    don't. */
 #undef HAVE_DECL_UNSETENV
 
-/* Define to 1 if you have the declaration of `wcrtomb', and to 0 if you
+/* Define to 1 if you have the declaration of 'wcrtomb', and to 0 if you
    don't. */
 #undef HAVE_DECL_WCRTOMB
 
-/* Define to 1 if you have the declaration of `wcsdup', and to 0 if you don't.
+/* Define to 1 if you have the declaration of 'wcsdup', and to 0 if you don't.
    */
 #undef HAVE_DECL_WCSDUP
 
-/* Define to 1 if you have the declaration of `wctob', and to 0 if you don't.
+/* Define to 1 if you have the declaration of 'wctob', and to 0 if you don't.
    */
 #undef HAVE_DECL_WCTOB
 
-/* Define to 1 if you have the declaration of `wcwidth', and to 0 if you
+/* Define to 1 if you have the declaration of 'wcwidth', and to 0 if you
    don't. */
 #undef HAVE_DECL_WCWIDTH
 
-/* Define to 1 if you have the declaration of `_putenv', and to 0 if you
+/* Define to 1 if you have the declaration of '_putenv', and to 0 if you
    don't. */
 #undef HAVE_DECL__PUTENV
 
-/* Define to 1 if you have the declaration of `_snprintf', and to 0 if you
+/* Define to 1 if you have the declaration of '_snprintf', and to 0 if you
    don't. */
 #undef HAVE_DECL__SNPRINTF
 
-/* Define to 1 if you have the declaration of `__argv', and to 0 if you don't.
+/* Define to 1 if you have the declaration of '__argv', and to 0 if you don't.
    */
 #undef HAVE_DECL___ARGV
 
-/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
+/* Define to 1 if you have the <dirent.h> header file, and it defines 'DIR'.
    */
 #undef HAVE_DIRENT_H
 
 /* Define if you have the declaration of environ. */
 #undef HAVE_ENVIRON_DECL
 
-/* Define to 1 if you have the `fcntl' function. */
+/* Define to 1 if you have the `error' function. */
+#undef HAVE_ERROR
+
+/* Define to 1 if you have the <error.h> header file. */
+#undef HAVE_ERROR_H
+
+/* Define to 1 if you have the 'fcntl' function. */
 #undef HAVE_FCNTL
 
 /* Define to 1 if you have the <features.h> header file. */
 #undef HAVE_FEATURES_H
 
-/* Define to 1 if you have the `fnmatch' function. */
+/* Define to 1 if you have the 'fnmatch' function. */
 #undef HAVE_FNMATCH
 
 /* Define to 1 if you have the <fnmatch.h> header file. */
 #undef HAVE_FNMATCH_H
 
-/* Define to 1 if you have the `fork' function. */
+/* Define to 1 if you have the 'fork' function. */
 #undef HAVE_FORK
 
 /* Define if the 'free' function is guaranteed to preserve errno. */
 /* Define to 1 if you have the `ftruncate' function. */
 #undef HAVE_FTRUNCATE
 
-/* Define to 1 if you have the `getdtablesize' function. */
+/* Define to 1 if you have the 'getdtablesize' function. */
 #undef HAVE_GETDTABLESIZE
 
-/* Define to 1 if you have the `getexecname' function. */
+/* Define to 1 if you have the 'getexecname' function. */
 #undef HAVE_GETEXECNAME
 
 /* Define to 1 if you have the <getopt.h> header file. */
 #undef HAVE_GETOPT_H
 
-/* Define to 1 if you have the `getopt_long_only' function. */
+/* Define to 1 if you have the 'getopt_long_only' function. */
 #undef HAVE_GETOPT_LONG_ONLY
 
 /* Define to 1 if you have the `getprogname' function. */
 /* Define to 1 if you have the `getrandom' function. */
 #undef HAVE_GETRANDOM
 
-/* Define to 1 if you have the `getrlimit' function. */
+/* Define to 1 if you have the 'getrlimit' function. */
 #undef HAVE_GETRLIMIT
 
 /* Define if the GNU gettext() function is already present or preinstalled. */
 #undef HAVE_GETTEXT
 
-/* Define to 1 if you have the `gettimeofday' function. */
+/* Define to 1 if you have the 'gettimeofday' function. */
 #undef HAVE_GETTIMEOFDAY
 
 /* Define if you have the iconv() function and it works. */
 /* Define to 1 if you have the <iconv.h> header file. */
 #undef HAVE_ICONV_H
 
-/* Define to 1 if you have the `inet_pton' function. */
+/* Define to 1 if you have the 'inet_pton' function. */
 #undef HAVE_INET_PTON
 
 /* Define to 1 if the compiler supports one of the keywords 'inline',
    declares uintmax_t. */
 #undef HAVE_INTTYPES_H_WITH_UINTMAX
 
-/* Define to 1 if you have the `ioctl' function. */
+/* Define to 1 if you have the 'ioctl' function. */
 #undef HAVE_IOCTL
 
 /* Define to 1 if <sys/socket.h> defines AF_INET. */
 /* Define to 1 if <sys/socket.h> defines AF_INET6. */
 #undef HAVE_IPV6
 
-/* Define to 1 if you have the `isblank' function. */
+/* Define to 1 if you have the 'isblank' function. */
 #undef HAVE_ISBLANK
 
 /* Define to 1 if you have the `iswblank' function. */
 #undef HAVE_ISWBLANK
 
-/* Define to 1 if you have the `iswcntrl' function. */
+/* Define to 1 if you have the 'iswcntrl' function. */
 #undef HAVE_ISWCNTRL
 
-/* Define to 1 if you have the `iswctype' function. */
+/* Define to 1 if you have the 'iswctype' function. */
 #undef HAVE_ISWCTYPE
 
 /* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
    */
 #undef HAVE_LOCALTIME_INFLOOP_BUG
 
-/* Define to 1 if you have the `localtime_r' function. */
+/* Define to 1 if you have the 'localtime_r' function. */
 #undef HAVE_LOCALTIME_R
 
 /* Define to 1 if the system has the type 'long long int'. */
 #undef HAVE_LONG_LONG_INT
 
-/* Define to 1 if you have the `lstat' function. */
+/* Define to 1 if you have the 'lstat' function. */
 #undef HAVE_LSTAT
 
 /* Define to 1 if you have the <malloc.h> header file. */
    config.h and <sys/mman.h>. */
 #undef HAVE_MAP_ANONYMOUS
 
-/* Define to 1 if you have the `mbrtowc' function. */
+/* Define to 1 if you have the 'mbrtowc' function. */
 #undef HAVE_MBRTOWC
 
-/* Define to 1 if you have the `mbsinit' function. */
+/* Define to 1 if you have the 'mbsinit' function. */
 #undef HAVE_MBSINIT
 
-/* Define to 1 if you have the `mbslen' function. */
+/* Define to 1 if you have the 'mbslen' function. */
 #undef HAVE_MBSLEN
 
-/* Define to 1 if you have the `mbsrtowcs' function. */
+/* Define to 1 if you have the 'mbsrtowcs' function. */
 #undef HAVE_MBSRTOWCS
 
 /* Define to 1 if <wchar.h> declares mbstate_t. */
 /* Define to 1 if <sys/param.h> defines the MIN and MAX macros. */
 #undef HAVE_MINMAX_IN_SYS_PARAM_H
 
-/* Define to 1 if you have the `mkstemp' function. */
+/* Define to 1 if you have the 'mkstemp' function. */
 #undef HAVE_MKSTEMP
 
-/* Define to 1 if you have the `mprotect' function. */
+/* Define to 1 if you have the 'mprotect' function. */
 #undef HAVE_MPROTECT
 
 /* Define to 1 on MSVC platforms that have the "invalid parameter handler"
    concept. */
 #undef HAVE_MSVC_INVALID_PARAMETER_HANDLER
 
-/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
+/* Define to 1 if you have the <ndir.h> header file, and it defines 'DIR'. */
 #undef HAVE_NDIR_H
 
 /* Define to 1 if you have the <netdb.h> header file. */
 /* Define to 1 if you have the <OS.h> header file. */
 #undef HAVE_OS_H
 
-/* Define to 1 if you have the `pipe' function. */
+/* Define to 1 if you have the 'pipe' function. */
 #undef HAVE_PIPE
 
+/* Define to 1 if you have the 'pselect' function. */
+#undef HAVE_PSELECT
+
 /* Define if you have the <pthread.h> header and the POSIX threads API. */
 #undef HAVE_PTHREAD_API
 
 /* Define to 1 if the pthread_sigmask function can be used (despite bugs). */
 #undef HAVE_PTHREAD_SIGMASK
 
-/* Define to 1 if the system has the type `pthread_spinlock_t'. */
+/* Define to 1 if the system has the type 'pthread_spinlock_t'. */
 #undef HAVE_PTHREAD_SPINLOCK_T
 
-/* Define to 1 if the system has the type `pthread_t'. */
+/* Define to 1 if the system has the type 'pthread_t'. */
 #undef HAVE_PTHREAD_T
 
-/* Define to 1 if you have the `raise' function. */
+/* Define to 1 if you have the 'raise' function. */
 #undef HAVE_RAISE
 
-/* Define to 1 if you have the `rawmemchr' function. */
+/* Define to 1 if you have the 'rawmemchr' function. */
 #undef HAVE_RAWMEMCHR
 
-/* Define to 1 if you have the `readlink' function. */
+/* Define to 1 if you have the 'readlink' function. */
 #undef HAVE_READLINK
 
 /* Define to 1 if you have the `readlinkat' function. */
 /* Define to 1 if you have the `reallocarray' function. */
 #undef HAVE_REALLOCARRAY
 
-/* Define to 1 if the system has the type `sa_family_t'. */
+/* Define to 1 if the system has the type 'sa_family_t'. */
 #undef HAVE_SA_FAMILY_T
 
 /* Define to 1 if you have the <sched.h> header file. */
 /* Define to 1 if you have the <search.h> header file. */
 #undef HAVE_SEARCH_H
 
-/* Define to 1 if you have the `setdtablesize' function. */
+/* Define to 1 if you have the 'setdtablesize' function. */
 #undef HAVE_SETDTABLESIZE
 
-/* Define to 1 if you have the `setenv' function. */
+/* Define to 1 if you have the 'setenv' function. */
 #undef HAVE_SETENV
 
-/* Define to 1 if you have the `setrlimit' function. */
+/* Define to 1 if you have the 'setrlimit' function. */
 #undef HAVE_SETRLIMIT
 
-/* Define to 1 if you have the `shutdown' function. */
+/* Define to 1 if you have the 'shutdown' function. */
 #undef HAVE_SHUTDOWN
 
-/* Define to 1 if you have the `sigaction' function. */
+/* Define to 1 if you have the 'sigaction' function. */
 #undef HAVE_SIGACTION
 
-/* Define to 1 if you have the `sigaltstack' function. */
+/* Define to 1 if you have the 'sigaltstack' function. */
 #undef HAVE_SIGALTSTACK
 
-/* Define to 1 if you have the `sigblock' function. */
+/* Define to 1 if you have the 'sigblock' function. */
 #undef HAVE_SIGBLOCK
 
-/* Define to 1 if the system has the type `siginfo_t'. */
-#undef HAVE_SIGINFO_T
-
-/* Define to 1 if you have the `siginterrupt' function. */
-#undef HAVE_SIGINTERRUPT
-
 /* Define to 1 if 'sig_atomic_t' is a signed integer type. */
 #undef HAVE_SIGNED_SIG_ATOMIC_T
 
 /* Define to 1 if 'wint_t' is a signed integer type. */
 #undef HAVE_SIGNED_WINT_T
 
-/* Define to 1 if you have the `sigprocmask' function. */
+/* Define to 1 if you have the 'sigprocmask' function. */
 #undef HAVE_SIGPROCMASK
 
-/* Define to 1 if the system has the type `sigset_t'. */
+/* Define to 1 if the system has the type 'sigset_t'. */
 #undef HAVE_SIGSET_T
 
-/* Define to 1 if you have the `sleep' function. */
+/* Define to 1 if you have the 'sleep' function. */
 #undef HAVE_SLEEP
 
-/* Define to 1 if you have the `snprintf' function. */
+/* Define to 1 if you have the 'snprintf' function. */
 #undef HAVE_SNPRINTF
 
 /* Define if the return value of the snprintf function is the number of of
    terminated. */
 #undef HAVE_SNPRINTF_TRUNCATION_C99
 
+/* Define to 1 if you have the <stdbool.h> header file. */
+#undef HAVE_STDBOOL_H
+
+/* Define to 1 if you have the <stdckdint.h> header file. */
+#undef HAVE_STDCKDINT_H
+
 /* Define to 1 if you have the <stdint.h> header file. */
 #undef HAVE_STDINT_H
 
 /* Define to 1 if you have the <stdlib.h> header file. */
 #undef HAVE_STDLIB_H
 
-/* Define to 1 if you have the `strcasecmp' function. */
+/* Define to 1 if you have the `stpcpy' function. */
+#undef HAVE_STPCPY
+
+/* Define to 1 if you have the 'strcasecmp' function. */
 #undef HAVE_STRCASECMP
 
-/* Define to 1 if you have the `strcasecoll' function. */
+/* Define to 1 if you have the 'strcasecoll' function. */
 #undef HAVE_STRCASECOLL
 
 /* Define to 1 if you have the `strerror_r' function. */
 #undef HAVE_STRERROR_R
 
-/* Define to 1 if you have the `stricoll' function. */
+/* Define to 1 if you have the 'stricoll' function. */
 #undef HAVE_STRICOLL
 
 /* Define to 1 if you have the <strings.h> header file. */
 /* Define to 1 if you have the <string.h> header file. */
 #undef HAVE_STRING_H
 
-/* Define to 1 if you have the `strncasecmp' function. */
+/* Define to 1 if you have the 'strncasecmp' function. */
 #undef HAVE_STRNCASECMP
 
-/* Define to 1 if you have the `strnlen' function. */
+/* Define to 1 if you have the 'strnlen' function. */
 #undef HAVE_STRNLEN
 
-/* Define to 1 if you have the `strptime' function. */
+/* Define to 1 if you have the 'strptime' function. */
 #undef HAVE_STRPTIME
 
-/* Define to 1 if you have the `strtoimax' function. */
+/* Define to 1 if you have the 'strtoimax' function. */
 #undef HAVE_STRTOIMAX
 
-/* Define to 1 if you have the `strtoll' function. */
+/* Define to 1 if you have the 'strtoll' function. */
 #undef HAVE_STRTOLL
 
-/* Define to 1 if `decimal_point' is a member of `struct lconv'. */
+/* Define to 1 if 'decimal_point' is a member of 'struct lconv'. */
 #undef HAVE_STRUCT_LCONV_DECIMAL_POINT
 
-/* Define to 1 if `sa_sigaction' is a member of `struct sigaction'. */
-#undef HAVE_STRUCT_SIGACTION_SA_SIGACTION
+/* Define to 1 if 'int_p_cs_precedes' is a member of 'struct lconv'. */
+#undef HAVE_STRUCT_LCONV_INT_P_CS_PRECEDES
 
-/* Define to 1 if the system has the type `struct sockaddr_storage'. */
+/* Define to 1 if the system has the type 'struct sockaddr_storage'. */
 #undef HAVE_STRUCT_SOCKADDR_STORAGE
 
-/* Define to 1 if `ss_family' is a member of `struct sockaddr_storage'. */
+/* Define to 1 if 'ss_family' is a member of 'struct sockaddr_storage'. */
 #undef HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY
 
-/* Define to 1 if `st_atimensec' is a member of `struct stat'. */
+/* Define to 1 if 'st_atimensec' is a member of 'struct stat'. */
 #undef HAVE_STRUCT_STAT_ST_ATIMENSEC
 
-/* Define to 1 if `st_atimespec.tv_nsec' is a member of `struct stat'. */
+/* Define to 1 if 'st_atimespec.tv_nsec' is a member of 'struct stat'. */
 #undef HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC
 
-/* Define to 1 if `st_atim.st__tim.tv_nsec' is a member of `struct stat'. */
+/* Define to 1 if 'st_atim.st__tim.tv_nsec' is a member of 'struct stat'. */
 #undef HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC
 
-/* Define to 1 if `st_atim.tv_nsec' is a member of `struct stat'. */
+/* Define to 1 if 'st_atim.tv_nsec' is a member of 'struct stat'. */
 #undef HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC
 
-/* Define to 1 if `st_birthtimensec' is a member of `struct stat'. */
+/* Define to 1 if 'st_birthtimensec' is a member of 'struct stat'. */
 #undef HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC
 
-/* Define to 1 if `st_birthtimespec.tv_nsec' is a member of `struct stat'. */
+/* Define to 1 if 'st_birthtimespec.tv_nsec' is a member of 'struct stat'. */
 #undef HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC
 
-/* Define to 1 if `st_birthtim.tv_nsec' is a member of `struct stat'. */
+/* Define to 1 if 'st_birthtim.tv_nsec' is a member of 'struct stat'. */
 #undef HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC
 
-/* Define to 1 if `st_blksize' is a member of `struct stat'. */
+/* Define to 1 if 'st_blksize' is a member of 'struct stat'. */
 #undef HAVE_STRUCT_STAT_ST_BLKSIZE
 
-/* Define to 1 if `st_rdev' is a member of `struct stat'. */
+/* Define to 1 if 'st_rdev' is a member of 'struct stat'. */
 #undef HAVE_STRUCT_STAT_ST_RDEV
 
-/* Define to 1 if `tm_zone' is a member of `struct tm'. */
+/* Define to 1 if 'tm_zone' is a member of 'struct tm'. */
 #undef HAVE_STRUCT_TM_TM_ZONE
 
-/* Define to 1 if you have the `symlink' function. */
+/* Define to 1 if you have the 'symlink' function. */
 #undef HAVE_SYMLINK
 
 /* Define to 1 if you have the <sys/bitypes.h> header file. */
 /* Define to 1 if you have the <sys/cdefs.h> header file. */
 #undef HAVE_SYS_CDEFS_H
 
-/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
+/* Define to 1 if you have the <sys/dir.h> header file, and it defines 'DIR'.
    */
 #undef HAVE_SYS_DIR_H
 
 /* Define to 1 if you have the <sys/mman.h> header file. */
 #undef HAVE_SYS_MMAN_H
 
-/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
+/* Define to 1 if you have the <sys/ndir.h> header file, and it defines 'DIR'.
    */
 #undef HAVE_SYS_NDIR_H
 
 /* Define to 1 if you have the `timegm' function. */
 #undef HAVE_TIMEGM
 
-/* Define to 1 if the system has the type `timezone_t'. */
+/* Define if you have the timespec_get function. */
+#undef HAVE_TIMESPEC_GET
+
+/* Define to 1 if the system has the type 'timezone_t'. */
 #undef HAVE_TIMEZONE_T
 
 /* Define if struct tm has the tm_gmtoff member. */
 #undef HAVE_TM_GMTOFF
 
-/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use
-   `HAVE_STRUCT_TM_TM_ZONE' instead. */
+/* Define to 1 if your 'struct tm' has 'tm_zone'. Deprecated, use
+   'HAVE_STRUCT_TM_TM_ZONE' instead. */
 #undef HAVE_TM_ZONE
 
-/* Define to 1 if you have the `towlower' function. */
+/* Define to 1 if you have the 'towlower' function. */
 #undef HAVE_TOWLOWER
 
 /* Define to 1 if you have the `tsearch' function. */
 #undef HAVE_TSEARCH
 
-/* Define to 1 if you don't have `tm_zone' but do have the external array
-   `tzname'. */
+/* Define to 1 if you don't have 'tm_zone' but do have the external array
+   'tzname'. */
 #undef HAVE_TZNAME
 
 /* Define to 1 if you have the <unistd.h> header file. */
 #undef HAVE_UNISTD_H
 
-/* Define to 1 if you have the `unsetenv' function. */
+/* Define to 1 if you have the <unistring/woe32dll.h> header file. */
+#undef HAVE_UNISTRING_WOE32DLL_H
+
+/* Define to 1 if you have the 'unsetenv' function. */
 #undef HAVE_UNSETENV
 
 /* Define to 1 if the system has the type 'unsigned long long int'. */
 #undef HAVE_UNSIGNED_LONG_LONG_INT
 
+/* Define to 1 if you have the `uselocale' function. */
+#undef HAVE_USELOCALE
+
 /* Define if you have a global __progname variable */
 #undef HAVE_VAR___PROGNAME
 
-/* Define to 1 if you have the `vasnprintf' function. */
+/* Define to 1 if you have the 'vasnprintf' function. */
 #undef HAVE_VASNPRINTF
 
-/* Define to 1 if you have the `vasprintf' function. */
-#undef HAVE_VASPRINTF
-
-/* Define to 1 if you have the `vfork' function. */
+/* Define to 1 if you have the 'vfork' function. */
 #undef HAVE_VFORK
 
 /* Define to 1 if you have the <vfork.h> header file. */
 /* Define if you have the 'wchar_t' type. */
 #undef HAVE_WCHAR_T
 
-/* Define to 1 if you have the `wcrtomb' function. */
+/* Define to 1 if you have the 'wcrtomb' function. */
 #undef HAVE_WCRTOMB
 
-/* Define to 1 if you have the `wcslen' function. */
+/* Define to 1 if you have the 'wcslen' function. */
 #undef HAVE_WCSLEN
 
-/* Define to 1 if you have the `wcsnlen' function. */
-#undef HAVE_WCSNLEN
-
-/* Define to 1 if you have the `wctob' function. */
+/* Define to 1 if you have the 'wctob' function. */
 #undef HAVE_WCTOB
 
 /* Define to 1 if you have the <wctype.h> header file. */
 #undef HAVE_WCTYPE_H
 
-/* Define to 1 if you have the `wcwidth' function. */
+/* Define to 1 if you have the 'wcwidth' function. */
 #undef HAVE_WCWIDTH
 
 /* Define to 1 if the compiler and linker support weak declarations of
 /* Define to 1 if you have the `wmempcpy' function. */
 #undef HAVE_WMEMPCPY
 
-/* Define to 1 if `fork' works. */
+/* Define to 1 if 'fork' works. */
 #undef HAVE_WORKING_FORK
 
 /* Define to 1 if O_NOATIME works. */
 /* Define if you have the sigaltstack() function and it works. */
 #undef HAVE_WORKING_SIGALTSTACK
 
-/* Define to 1 if `vfork' works. */
+/* Define if the uselocale function exists and may safely be called. */
+#undef HAVE_WORKING_USELOCALE
+
+/* Define to 1 if 'vfork' works. */
 #undef HAVE_WORKING_VFORK
 
 /* Define to 1 if you have the <ws2tcpip.h> header file. */
 /* Define to 1 if you have the <xlocale.h> header file. */
 #undef HAVE_XLOCALE_H
 
-/* Define to 1 if the system has the type `_Bool'. */
-#undef HAVE__BOOL
-
-/* Define to 1 if you have the `_chsize' function. */
+/* Define to 1 if you have the '_chsize' function. */
 #undef HAVE__CHSIZE
 
-/* Define to 1 if you have the `_set_invalid_parameter_handler' function. */
+/* Define to 1 if you have the '_set_invalid_parameter_handler' function. */
 #undef HAVE__SET_INVALID_PARAMETER_HANDLER
 
 /* Define to 1 if the compiler supports __builtin_expect,
 #endif
     
 
+/* Define to 1 if ctype.h defines __header_inline. */
+#undef HAVE___HEADER_INLINE
+
+/* Please see the Gnulib manual for how to use these macros.
+
+   Suppress extern inline with HP-UX cc, as it appears to be broken; see
+   <https://lists.gnu.org/r/bug-texinfo/2013-02/msg00030.html>.
+
+   Suppress extern inline with Sun C in standards-conformance mode, as it
+   mishandles inline functions that call each other.  E.g., for 'inline void f
+   (void) { } inline void g (void) { f (); }', c99 incorrectly complains
+   'reference to static identifier "f" in extern inline function'.
+   This bug was observed with Oracle Developer Studio 12.6
+   (Sun C 5.15 SunOS_sparc 2017/05/30).
+
+   Suppress extern inline (with or without __attribute__ ((__gnu_inline__)))
+   on configurations that mistakenly use 'static inline' to implement
+   functions or macros in standard C headers like <ctype.h>.  For example,
+   if isdigit is mistakenly implemented via a static inline function,
+   a program containing an extern inline function that calls isdigit
+   may not work since the C standard prohibits extern inline functions
+   from calling static functions (ISO C 99 section 6.7.4.(3).
+   This bug is known to occur on:
+
+     OS X 10.8 and earlier; see:
+     https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html
+
+     DragonFly; see
+     http://muscles.dragonflybsd.org/bulk/clang-master-potential/20141111_102002/logs/ah-tty-0.3.12.log
+
+     FreeBSD; see:
+     https://lists.gnu.org/r/bug-gnulib/2014-07/msg00104.html
+
+   OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and
+   for clang but remains for g++; see <https://trac.macports.org/ticket/41033>.
+   Assume DragonFly and FreeBSD will be similar.
+
+   GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+   inline semantics, unless -fgnu89-inline is used.  It defines a macro
+   __GNUC_STDC_INLINE__ to indicate this situation or a macro
+   __GNUC_GNU_INLINE__ to indicate the opposite situation.
+   GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline
+   semantics but warns, unless -fgnu89-inline is used:
+     warning: C99 inline functions are not supported; using GNU89
+     warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute
+   It defines a macro __GNUC_GNU_INLINE__ to indicate this situation.
+ */
+#if (((defined __APPLE__ && defined __MACH__) \
+      || defined __DragonFly__ || defined __FreeBSD__) \
+     && (defined HAVE___HEADER_INLINE \
+         ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \
+            && ! defined __clang__) \
+         : ((! defined _DONT_USE_CTYPE_INLINE_ \
+             && (defined __GNUC__ || defined __cplusplus)) \
+            || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \
+                && defined __GNUC__ && ! defined __cplusplus))))
+# define _GL_EXTERN_INLINE_STDHEADER_BUG
+#endif
+#if ((__GNUC__ \
+      ? (defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \
+         && !defined __PCC__) \
+      : (199901L <= __STDC_VERSION__ \
+         && !defined __HP_cc \
+         && !defined __PGI \
+         && !(defined __SUNPRO_C && __STDC__))) \
+     && !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
+# define _GL_INLINE inline
+# define _GL_EXTERN_INLINE extern inline
+# define _GL_EXTERN_INLINE_IN_USE
+#elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \
+       && !defined __PCC__ \
+       && !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
+# if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__
+   /* __gnu_inline__ suppresses a GCC 4.2 diagnostic.  */
+#  define _GL_INLINE extern inline __attribute__ ((__gnu_inline__))
+# else
+#  define _GL_INLINE extern inline
+# endif
+# define _GL_EXTERN_INLINE extern
+# define _GL_EXTERN_INLINE_IN_USE
+#else
+# define _GL_INLINE _GL_UNUSED static
+# define _GL_EXTERN_INLINE _GL_UNUSED static
+#endif
+
+/* In GCC 4.6 (inclusive) to 5.1 (exclusive),
+   suppress bogus "no previous prototype for 'FOO'"
+   and "no previous declaration for 'FOO'" diagnostics,
+   when FOO is an inline function in the header; see
+   <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113> and
+   <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63877>.  */
+#if __GNUC__ == 4 && 6 <= __GNUC_MINOR__
+# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__
+#  define _GL_INLINE_HEADER_CONST_PRAGMA
+# else
+#  define _GL_INLINE_HEADER_CONST_PRAGMA \
+     _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"")
+# endif
+# define _GL_INLINE_HEADER_BEGIN \
+    _Pragma ("GCC diagnostic push") \
+    _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \
+    _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \
+    _GL_INLINE_HEADER_CONST_PRAGMA
+# define _GL_INLINE_HEADER_END \
+    _Pragma ("GCC diagnostic pop")
+#else
+# define _GL_INLINE_HEADER_BEGIN
+# define _GL_INLINE_HEADER_END
+#endif
+
 /* Define to 1 if the compiler supports the keyword '__inline'. */
 #undef HAVE___INLINE
 
-/* Define to 1 if you have the `__xpg_strerror_r' function. */
+/* Define to 1 if you have the '__xpg_strerror_r' function. */
 #undef HAVE___XPG_STRERROR_R
 
 /* Define as const if the declaration of iconv() needs const. */
    lower addresses STACK_DIRECTION = 0 => spaghetti stack. */
 #undef STACK_DIRECTION
 
-/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
+/* Define to 1 if the 'S_IS*' macros in <sys/stat.h> do not work properly. */
 #undef STAT_MACROS_BROKEN
 
-/* Define to 1 if all of the C90 standard headers exist (not just the ones
+/* Define to 1 if all of the C89 standard headers exist (not just the ones
    required in a freestanding environment). This macro is provided for
    backward compatibility; new code need not use it. */
 #undef STDC_HEADERS
 /* Define to 1 if time_t is signed. */
 #undef TIME_T_IS_SIGNED
 
-/* Define to 1 if your <sys/time.h> declares `struct tm'. */
+/* Define to 1 if your <sys/time.h> declares 'struct tm'. */
 #undef TM_IN_SYS_TIME
 
 /* Define to 1 if the type of the st_atim member of a struct stat is struct
    weak. */
 #undef USE_POSIX_THREADS_WEAK
 
-/* Enable extensions on AIX 3, Interix.  */
+/* Enable extensions on AIX, Interix, z/OS.  */
 #ifndef _ALL_SOURCE
 # undef _ALL_SOURCE
 #endif
 #ifndef __STDC_WANT_IEC_60559_DFP_EXT__
 # undef __STDC_WANT_IEC_60559_DFP_EXT__
 #endif
+/* Enable extensions specified by C23 Annex F.  */
+#ifndef __STDC_WANT_IEC_60559_EXT__
+# undef __STDC_WANT_IEC_60559_EXT__
+#endif
 /* Enable extensions specified by ISO/IEC TS 18661-4:2015.  */
 #ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__
 # undef __STDC_WANT_IEC_60559_FUNCS_EXT__
 #endif
-/* Enable extensions specified by ISO/IEC TS 18661-3:2015.  */
+/* Enable extensions specified by C23 Annex H and ISO/IEC TS 18661-3:2015.  */
 #ifndef __STDC_WANT_IEC_60559_TYPES_EXT__
 # undef __STDC_WANT_IEC_60559_TYPES_EXT__
 #endif
 /* Define to enable the declarations of ISO C 11 types and functions. */
 #undef _ISOC11_SOURCE
 
-/* Define for large files, on AIX-style hosts. */
+/* Define to 1 on platforms where this makes off_t a 64-bit type. */
 #undef _LARGE_FILES
 
 /* Define to 1 on Solaris. */
        AIX system header files and several gnulib header files use precisely
        this syntax with 'extern'.  */
 #  define _Noreturn [[noreturn]]
+# elif (defined __clang__ && __clang_major__ < 16 \
+        && defined _GL_WORK_AROUND_LLVM_BUG_59792)
+   /* Compile with -D_GL_WORK_AROUND_LLVM_BUG_59792 to work around
+      that rare LLVM bug, though you may get many false-alarm warnings.  */
+#  define _Noreturn
 # elif ((!defined __cplusplus || defined __clang__) \
         && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \
             || (!defined __STRICT_ANSI__ \
 /* Define if you want regoff_t to be at least as wide POSIX requires. */
 #undef _REGEX_LARGE_OFFSETS
 
-/* Number of bits in a timestamp, on hosts where this is settable. */
+/* Number of bits in time_t, on hosts where this is settable. */
 #undef _TIME_BITS
 
 /* For standard stat data types on VMS. */
    used. */
 #undef __GETOPT_PREFIX
 
-/* For 64-bit time_t on 32-bit mingw. */
+/* Define to 1 on platforms where this makes time_t a 64-bit type. */
 #undef __MINGW_USE_VC2005_COMPAT
 
 /* Define to 1 if the system <stdint.h> predates C++11. */
 /* Define to 1 if the system <stdint.h> predates C++11. */
 #undef __STDC_LIMIT_MACROS
 
+/* Define to 1 if C does not support variable-length arrays, and if the
+   compiler does not already define this. */
+#undef __STDC_NO_VLA__
+
 /* The _GL_ASYNC_SAFE marker should be attached to functions that are
    signal handlers (for signals other than SIGABRT, SIGPIPE) or can be
    invoked from such signal handlers.  Such functions have some restrictions:
 /* Attributes.  */
 #if (defined __has_attribute \
      && (!defined __clang_minor__ \
-         || 3 < __clang_major__ + (5 <= __clang_minor__)))
+         || (defined __apple_build_version__ \
+             ? 6000000 <= __apple_build_version__ \
+             : 5 <= __clang_major__)))
 # define _GL_HAS_ATTRIBUTE(attr) __has_attribute (__##attr##__)
 #else
 # define _GL_HAS_ATTRIBUTE(attr) _GL_ATTR_##attr
 # define _GL_ATTR_fallthrough _GL_GNUC_PREREQ (7, 0)
 # define _GL_ATTR_format _GL_GNUC_PREREQ (2, 7)
 # define _GL_ATTR_leaf _GL_GNUC_PREREQ (4, 6)
+# define _GL_ATTR_malloc _GL_GNUC_PREREQ (3, 0)
 # ifdef _ICC
 #  define _GL_ATTR_may_alias 0
 # else
 #  define _GL_ATTR_may_alias _GL_GNUC_PREREQ (3, 3)
 # endif
-# define _GL_ATTR_malloc _GL_GNUC_PREREQ (3, 0)
 # define _GL_ATTR_noinline _GL_GNUC_PREREQ (3, 1)
 # define _GL_ATTR_nonnull _GL_GNUC_PREREQ (3, 3)
 # define _GL_ATTR_nonstring _GL_GNUC_PREREQ (8, 0)
 # define _GL_ATTR_warn_unused_result _GL_GNUC_PREREQ (3, 4)
 #endif
 
-#ifdef __has_c_attribute
-# define _GL_HAS_C_ATTRIBUTE(attr) __has_c_attribute (__##attr##__)
-#else
-# define _GL_HAS_C_ATTRIBUTE(attr) 0
+/* Disable GCC -Wpedantic if using __has_c_attribute and this is not C23+.  */
+#if (defined __has_c_attribute && _GL_GNUC_PREREQ (4, 6) \
+     && (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) <= 201710)
+# pragma GCC diagnostic ignored "-Wpedantic"
 #endif
 
-
-#if _GL_HAS_ATTRIBUTE (alloc_size)
-# define _GL_ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args))
+/* Define if, in a function declaration, the attributes in bracket syntax
+   [[...]] must come before the attributes in __attribute__((...)) syntax.
+   If this is defined, it is best to avoid the bracket syntax, so that the
+   various _GL_ATTRIBUTE_* can be cumulated on the same declaration in any
+   order.  */
+#ifdef __cplusplus
+# if defined __clang__
+#  define _GL_BRACKET_BEFORE_ATTRIBUTE 1
+# endif
 #else
-# define _GL_ATTRIBUTE_ALLOC_SIZE(args)
+# if defined __GNUC__ && !defined __clang__
+#  define _GL_BRACKET_BEFORE_ATTRIBUTE 1
+# endif
 #endif
 
-#if _GL_HAS_ATTRIBUTE (always_inline)
-# define _GL_ATTRIBUTE_ALWAYS_INLINE __attribute__ ((__always_inline__))
-#else
-# define _GL_ATTRIBUTE_ALWAYS_INLINE
+/* _GL_ATTRIBUTE_ALLOC_SIZE ((N)) declares that the Nth argument of the function
+   is the size of the returned memory block.
+   _GL_ATTRIBUTE_ALLOC_SIZE ((M, N)) declares that the Mth argument multiplied
+   by the Nth argument of the function is the size of the returned memory block.
+ */
+/* Applies to: function, pointer to function, function types.  */
+#ifndef _GL_ATTRIBUTE_ALLOC_SIZE
+# if _GL_HAS_ATTRIBUTE (alloc_size)
+#  define _GL_ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args))
+# else
+#  define _GL_ATTRIBUTE_ALLOC_SIZE(args)
+# endif
 #endif
 
-#if _GL_HAS_ATTRIBUTE (artificial)
-# define _GL_ATTRIBUTE_ARTIFICIAL __attribute__ ((__artificial__))
-#else
-# define _GL_ATTRIBUTE_ARTIFICIAL
+/* _GL_ATTRIBUTE_ALWAYS_INLINE tells that the compiler should always inline the
+   function and report an error if it cannot do so.  */
+/* Applies to: function.  */
+#ifndef _GL_ATTRIBUTE_ALWAYS_INLINE
+# if _GL_HAS_ATTRIBUTE (always_inline)
+#  define _GL_ATTRIBUTE_ALWAYS_INLINE __attribute__ ((__always_inline__))
+# else
+#  define _GL_ATTRIBUTE_ALWAYS_INLINE
+# endif
 #endif
 
+/* _GL_ATTRIBUTE_ARTIFICIAL declares that the function is not important to show
+    in stack traces when debugging.  The compiler should omit the function from
+    stack traces.  */
+/* Applies to: function.  */
+#ifndef _GL_ATTRIBUTE_ARTIFICIAL
+# if _GL_HAS_ATTRIBUTE (artificial)
+#  define _GL_ATTRIBUTE_ARTIFICIAL __attribute__ ((__artificial__))
+# else
+#  define _GL_ATTRIBUTE_ARTIFICIAL
+# endif
+#endif
+
+/* _GL_ATTRIBUTE_COLD declares that the function is rarely executed.  */
+/* Applies to: functions.  */
 /* Avoid __attribute__ ((cold)) on MinGW; see thread starting at
    <https://lists.gnu.org/r/emacs-devel/2019-04/msg01152.html>.
    Also, Oracle Studio 12.6 requires 'cold' not '__cold__'.  */
-#if _GL_HAS_ATTRIBUTE (cold) && !defined __MINGW32__
-# ifndef __SUNPRO_C
-#  define _GL_ATTRIBUTE_COLD __attribute__ ((__cold__))
+#ifndef _GL_ATTRIBUTE_COLD
+# if _GL_HAS_ATTRIBUTE (cold) && !defined __MINGW32__
+#  ifndef __SUNPRO_C
+#   define _GL_ATTRIBUTE_COLD __attribute__ ((__cold__))
+#  else
+#   define _GL_ATTRIBUTE_COLD __attribute__ ((cold))
+#  endif
 # else
-#  define _GL_ATTRIBUTE_COLD __attribute__ ((cold))
+#  define _GL_ATTRIBUTE_COLD
 # endif
-#else
-# define _GL_ATTRIBUTE_COLD
 #endif
 
-#if _GL_HAS_ATTRIBUTE (const)
-# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__))
-#else
-# define _GL_ATTRIBUTE_CONST
+/* _GL_ATTRIBUTE_CONST declares that it is OK for a compiler to omit duplicate
+   calls to the function with the same arguments.
+   This attribute is safe for a function that neither depends on nor affects
+   observable state, and always returns exactly once - e.g., does not loop
+   forever, and does not call longjmp.
+   (This attribute is stricter than _GL_ATTRIBUTE_PURE.)  */
+/* Applies to: functions.  */
+#ifndef _GL_ATTRIBUTE_CONST
+# if _GL_HAS_ATTRIBUTE (const)
+#  define _GL_ATTRIBUTE_CONST __attribute__ ((__const__))
+# else
+#  define _GL_ATTRIBUTE_CONST
+# endif
 #endif
 
-/* _GL_ATTRIBUTE_DEALLOC (F, I) is for functions returning pointers
+/* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers
    that can be freed by passing them as the Ith argument to the
-   function F.  _GL_ATTRIBUTE_DEALLOC_FREE is for functions that
-   return pointers that can be freed via 'free'; it can be used
-   only after including stdlib.h.  */
-#if _GL_GNUC_PREREQ (11, 0)
-# define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i)))
-#else
-# define _GL_ATTRIBUTE_DEALLOC(f, i)
+   function F.
+   _GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that
+   can be freed via 'free'; it can be used only after declaring 'free'.  */
+/* Applies to: functions.  Cannot be used on inline functions.  */
+#ifndef _GL_ATTRIBUTE_DEALLOC
+# if _GL_GNUC_PREREQ (11, 0)
+#  define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i)))
+# else
+#  define _GL_ATTRIBUTE_DEALLOC(f, i)
+# endif
+#endif
+/* If gnulib's <string.h> or <wchar.h> has already defined this macro, continue
+   to use this earlier definition, since <stdlib.h> may not have been included
+   yet.  */
+#ifndef _GL_ATTRIBUTE_DEALLOC_FREE
+# if defined __cplusplus && defined __GNUC__ && !defined __clang__
+/* Work around GCC bug <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108231> */
+#  define _GL_ATTRIBUTE_DEALLOC_FREE \
+     _GL_ATTRIBUTE_DEALLOC ((void (*) (void *)) free, 1)
+# else
+#  define _GL_ATTRIBUTE_DEALLOC_FREE \
+     _GL_ATTRIBUTE_DEALLOC (free, 1)
+# endif
 #endif
-#define _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_DEALLOC (free, 1)
 
-#if _GL_HAS_C_ATTRIBUTE (deprecated)
-# define _GL_ATTRIBUTE_DEPRECATED [[__deprecated__]]
-#elif _GL_HAS_ATTRIBUTE (deprecated)
-# define _GL_ATTRIBUTE_DEPRECATED __attribute__ ((__deprecated__))
-#else
-# define _GL_ATTRIBUTE_DEPRECATED
+/* _GL_ATTRIBUTE_DEPRECATED: Declares that an entity is deprecated.
+   The compiler may warn if the entity is used.  */
+/* Applies to:
+     - function, variable,
+     - struct, union, struct/union member,
+     - enumeration, enumeration item,
+     - typedef,
+   in C++ also: namespace, class, template specialization.  */
+#ifndef _GL_ATTRIBUTE_DEPRECATED
+# ifndef _GL_BRACKET_BEFORE_ATTRIBUTE
+#  ifdef __has_c_attribute
+#   if __has_c_attribute (__deprecated__)
+#    define _GL_ATTRIBUTE_DEPRECATED [[__deprecated__]]
+#   endif
+#  endif
+# endif
+# if !defined _GL_ATTRIBUTE_DEPRECATED && _GL_HAS_ATTRIBUTE (deprecated)
+#  define _GL_ATTRIBUTE_DEPRECATED __attribute__ ((__deprecated__))
+# endif
+# ifndef _GL_ATTRIBUTE_DEPRECATED
+#  define _GL_ATTRIBUTE_DEPRECATED
+# endif
 #endif
 
-#if _GL_HAS_ATTRIBUTE (error)
-# define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__error__ (msg)))
-# define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__warning__ (msg)))
-#elif _GL_HAS_ATTRIBUTE (diagnose_if)
-# define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__diagnose_if__ (1, msg, "error")))
-# define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__diagnose_if__ (1, msg, "warning")))
-#else
-# define _GL_ATTRIBUTE_ERROR(msg)
-# define _GL_ATTRIBUTE_WARNING(msg)
+/* _GL_ATTRIBUTE_ERROR(msg) requests an error if a function is called and
+   the function call is not optimized away.
+   _GL_ATTRIBUTE_WARNING(msg) requests a warning if a function is called and
+   the function call is not optimized away.  */
+/* Applies to: functions.  */
+#if !(defined _GL_ATTRIBUTE_ERROR && defined _GL_ATTRIBUTE_WARNING)
+# if _GL_HAS_ATTRIBUTE (error)
+#  define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__error__ (msg)))
+#  define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__warning__ (msg)))
+# elif _GL_HAS_ATTRIBUTE (diagnose_if)
+#  define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__diagnose_if__ (1, msg, "error")))
+#  define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__diagnose_if__ (1, msg, "warning")))
+# else
+#  define _GL_ATTRIBUTE_ERROR(msg)
+#  define _GL_ATTRIBUTE_WARNING(msg)
+# endif
 #endif
 
-#if _GL_HAS_ATTRIBUTE (externally_visible)
-# define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE __attribute__ ((externally_visible))
-#else
-# define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE
+/* _GL_ATTRIBUTE_EXTERNALLY_VISIBLE declares that the entity should remain
+   visible to debuggers etc., even with '-fwhole-program'.  */
+/* Applies to: functions, variables.  */
+#ifndef _GL_ATTRIBUTE_EXTERNALLY_VISIBLE
+# if _GL_HAS_ATTRIBUTE (externally_visible)
+#  define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE __attribute__ ((externally_visible))
+# else
+#  define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE
+# endif
 #endif
 
-/* FALLTHROUGH is special, because it always expands to something.  */
-#if _GL_HAS_C_ATTRIBUTE (fallthrough)
-# define _GL_ATTRIBUTE_FALLTHROUGH [[__fallthrough__]]
-#elif _GL_HAS_ATTRIBUTE (fallthrough)
-# define _GL_ATTRIBUTE_FALLTHROUGH __attribute__ ((__fallthrough__))
-#else
-# define _GL_ATTRIBUTE_FALLTHROUGH ((void) 0)
+/* _GL_ATTRIBUTE_FALLTHROUGH declares that it is not a programming mistake if
+   the control flow falls through to the immediately following 'case' or
+   'default' label.  The compiler should not warn in this case.  */
+/* Applies to: Empty statement (;), inside a 'switch' statement.  */
+/* Always expands to something.  */
+#ifndef _GL_ATTRIBUTE_FALLTHROUGH
+# ifdef __has_c_attribute
+#  if __has_c_attribute (__fallthrough__)
+#   define _GL_ATTRIBUTE_FALLTHROUGH [[__fallthrough__]]
+#  endif
+# endif
+# if !defined _GL_ATTRIBUTE_FALLTHROUGH && _GL_HAS_ATTRIBUTE (fallthrough)
+#  define _GL_ATTRIBUTE_FALLTHROUGH __attribute__ ((__fallthrough__))
+# endif
+# ifndef _GL_ATTRIBUTE_FALLTHROUGH
+#  define _GL_ATTRIBUTE_FALLTHROUGH ((void) 0)
+# endif
 #endif
 
-#if _GL_HAS_ATTRIBUTE (format)
-# define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec))
-#else
-# define _GL_ATTRIBUTE_FORMAT(spec)
+/* _GL_ATTRIBUTE_FORMAT ((ARCHETYPE, STRING-INDEX, FIRST-TO-CHECK))
+   declares that the STRING-INDEXth function argument is a format string of
+   style ARCHETYPE, which is one of:
+     printf, gnu_printf
+     scanf, gnu_scanf,
+     strftime, gnu_strftime,
+     strfmon,
+   or the same thing prefixed and suffixed with '__'.
+   If FIRST-TO-CHECK is not 0, arguments starting at FIRST-TO_CHECK
+   are suitable for the format string.  */
+/* Applies to: functions.  */
+#ifndef _GL_ATTRIBUTE_FORMAT
+# if _GL_HAS_ATTRIBUTE (format)
+#  define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec))
+# else
+#  define _GL_ATTRIBUTE_FORMAT(spec)
+# endif
 #endif
 
-#if _GL_HAS_ATTRIBUTE (leaf)
-# define _GL_ATTRIBUTE_LEAF __attribute__ ((__leaf__))
-#else
-# define _GL_ATTRIBUTE_LEAF
+/* _GL_ATTRIBUTE_LEAF declares that if the function is called from some other
+   compilation unit, it executes code from that unit only by return or by
+   exception handling.  This declaration lets the compiler optimize that unit
+   more aggressively.  */
+/* Applies to: functions.  */
+#ifndef _GL_ATTRIBUTE_LEAF
+# if _GL_HAS_ATTRIBUTE (leaf)
+#  define _GL_ATTRIBUTE_LEAF __attribute__ ((__leaf__))
+# else
+#  define _GL_ATTRIBUTE_LEAF
+# endif
 #endif
 
+/* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly
+   allocated memory.  */
+/* Applies to: functions.  */
+#ifndef _GL_ATTRIBUTE_MALLOC
+# if _GL_HAS_ATTRIBUTE (malloc)
+#  define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
+# else
+#  define _GL_ATTRIBUTE_MALLOC
+# endif
+#endif
+
+/* _GL_ATTRIBUTE_MAY_ALIAS declares that pointers to the type may point to the
+   same storage as pointers to other types.  Thus this declaration disables
+   strict aliasing optimization.  */
+/* Applies to: types.  */
 /* Oracle Studio 12.6 mishandles may_alias despite __has_attribute OK.  */
-#if _GL_HAS_ATTRIBUTE (may_alias) && !defined __SUNPRO_C
-# define _GL_ATTRIBUTE_MAY_ALIAS __attribute__ ((__may_alias__))
-#else
-# define _GL_ATTRIBUTE_MAY_ALIAS
+#ifndef _GL_ATTRIBUTE_MAY_ALIAS
+# if _GL_HAS_ATTRIBUTE (may_alias) && !defined __SUNPRO_C
+#  define _GL_ATTRIBUTE_MAY_ALIAS __attribute__ ((__may_alias__))
+# else
+#  define _GL_ATTRIBUTE_MAY_ALIAS
+# endif
 #endif
 
-#if _GL_HAS_C_ATTRIBUTE (maybe_unused)
-# define _GL_ATTRIBUTE_MAYBE_UNUSED [[__maybe_unused__]]
-#else
-# define _GL_ATTRIBUTE_MAYBE_UNUSED _GL_ATTRIBUTE_UNUSED
+/* _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.  */
+/* Applies to:
+     - function, variable,
+     - struct, union, struct/union member,
+     - enumeration, enumeration item,
+     - typedef,
+   in C++ also: class.  */
+/* In C++ and C23, this is spelled [[__maybe_unused__]].
+   GCC's syntax is __attribute__ ((__unused__)).
+   clang supports both syntaxes.  Except that with clang ≥ 6, < 10, in C++ mode,
+   __has_c_attribute (__maybe_unused__) yields true but the use of
+   [[__maybe_unused__]] nevertheless produces a warning.  */
+#ifndef _GL_ATTRIBUTE_MAYBE_UNUSED
+# ifndef _GL_BRACKET_BEFORE_ATTRIBUTE
+#  if defined __clang__ && defined __cplusplus
+#   if !defined __apple_build_version__ && __clang_major__ >= 10
+#    define _GL_ATTRIBUTE_MAYBE_UNUSED [[__maybe_unused__]]
+#   endif
+#  elif defined __has_c_attribute
+#   if __has_c_attribute (__maybe_unused__)
+#    define _GL_ATTRIBUTE_MAYBE_UNUSED [[__maybe_unused__]]
+#   endif
+#  endif
+# endif
+# ifndef _GL_ATTRIBUTE_MAYBE_UNUSED
+#  define _GL_ATTRIBUTE_MAYBE_UNUSED _GL_ATTRIBUTE_UNUSED
+# endif
 #endif
+/* Alternative spelling of this macro, for convenience and for
+   compatibility with glibc/include/libc-symbols.h.  */
+#define _GL_UNUSED _GL_ATTRIBUTE_MAYBE_UNUSED
 /* Earlier spellings of this macro.  */
 #define _UNUSED_PARAMETER_ _GL_ATTRIBUTE_MAYBE_UNUSED
 
-#if _GL_HAS_ATTRIBUTE (malloc)
-# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
-#else
-# define _GL_ATTRIBUTE_MALLOC
-#endif
-
-#if _GL_HAS_C_ATTRIBUTE (nodiscard)
-# define _GL_ATTRIBUTE_NODISCARD [[__nodiscard__]]
-#elif _GL_HAS_ATTRIBUTE (warn_unused_result)
-# define _GL_ATTRIBUTE_NODISCARD __attribute__ ((__warn_unused_result__))
-#else
-# define _GL_ATTRIBUTE_NODISCARD
+/* _GL_ATTRIBUTE_NODISCARD declares that the caller of the function should not
+   discard the return value.  The compiler may warn if the caller does not use
+   the return value, unless the caller uses something like ignore_value.  */
+/* Applies to: function, enumeration, class.  */
+#ifndef _GL_ATTRIBUTE_NODISCARD
+# ifndef _GL_BRACKET_BEFORE_ATTRIBUTE
+#  if defined __clang__ && defined __cplusplus
+  /* With clang up to 15.0.6 (at least), in C++ mode, [[__nodiscard__]] produces
+     a warning.
+     The 1000 below means a yet unknown threshold.  When clang++ version X
+     starts supporting [[__nodiscard__]] without warning about it, you can
+     replace the 1000 with X.  */
+#   if __clang_major__ >= 1000
+#    define _GL_ATTRIBUTE_NODISCARD [[__nodiscard__]]
+#   endif
+#  elif defined __has_c_attribute
+#   if __has_c_attribute (__nodiscard__)
+#    define _GL_ATTRIBUTE_NODISCARD [[__nodiscard__]]
+#   endif
+#  endif
+# endif
+# if !defined _GL_ATTRIBUTE_NODISCARD && _GL_HAS_ATTRIBUTE (warn_unused_result)
+#  define _GL_ATTRIBUTE_NODISCARD __attribute__ ((__warn_unused_result__))
+# endif
+# ifndef _GL_ATTRIBUTE_NODISCARD
+#  define _GL_ATTRIBUTE_NODISCARD
+# endif
 #endif
 
-#if _GL_HAS_ATTRIBUTE (noinline)
-# define _GL_ATTRIBUTE_NOINLINE __attribute__ ((__noinline__))
-#else
-# define _GL_ATTRIBUTE_NOINLINE
+/* _GL_ATTRIBUTE_NOINLINE tells that the compiler should not inline the
+   function.  */
+/* Applies to: functions.  */
+#ifndef _GL_ATTRIBUTE_NOINLINE
+# if _GL_HAS_ATTRIBUTE (noinline)
+#  define _GL_ATTRIBUTE_NOINLINE __attribute__ ((__noinline__))
+# else
+#  define _GL_ATTRIBUTE_NOINLINE
+# endif
 #endif
 
-#if _GL_HAS_ATTRIBUTE (nonnull)
-# define _GL_ATTRIBUTE_NONNULL(args) __attribute__ ((__nonnull__ args))
-#else
-# define _GL_ATTRIBUTE_NONNULL(args)
+/* _GL_ATTRIBUTE_NONNULL ((N1, N2,...)) declares that the arguments N1, N2,...
+   must not be NULL.
+   _GL_ATTRIBUTE_NONNULL () declares that all pointer arguments must not be
+   null.  */
+/* Applies to: functions.  */
+#ifndef _GL_ATTRIBUTE_NONNULL
+# if _GL_HAS_ATTRIBUTE (nonnull)
+#  define _GL_ATTRIBUTE_NONNULL(args) __attribute__ ((__nonnull__ args))
+# else
+#  define _GL_ATTRIBUTE_NONNULL(args)
+# endif
 #endif
 
-#if _GL_HAS_ATTRIBUTE (nonstring)
-# define _GL_ATTRIBUTE_NONSTRING __attribute__ ((__nonstring__))
-#else
-# define _GL_ATTRIBUTE_NONSTRING
+/* _GL_ATTRIBUTE_NONSTRING declares that the contents of a character array is
+   not meant to be NUL-terminated.  */
+/* Applies to: struct/union members and variables that are arrays of element
+   type '[[un]signed] char'.  */
+#ifndef _GL_ATTRIBUTE_NONSTRING
+# if _GL_HAS_ATTRIBUTE (nonstring)
+#  define _GL_ATTRIBUTE_NONSTRING __attribute__ ((__nonstring__))
+# else
+#  define _GL_ATTRIBUTE_NONSTRING
+# endif
 #endif
 
 /* There is no _GL_ATTRIBUTE_NORETURN; use _Noreturn instead.  */
 
-#if _GL_HAS_ATTRIBUTE (nothrow) && !defined __cplusplus
-# define _GL_ATTRIBUTE_NOTHROW __attribute__ ((__nothrow__))
-#else
-# define _GL_ATTRIBUTE_NOTHROW
-#endif
-
-#if _GL_HAS_ATTRIBUTE (packed)
-# define _GL_ATTRIBUTE_PACKED __attribute__ ((__packed__))
-#else
-# define _GL_ATTRIBUTE_PACKED
+/* _GL_ATTRIBUTE_NOTHROW declares that the function does not throw exceptions.
+ */
+/* Applies to: functions.  */
+#ifndef _GL_ATTRIBUTE_NOTHROW
+# if _GL_HAS_ATTRIBUTE (nothrow) && !defined __cplusplus
+#  define _GL_ATTRIBUTE_NOTHROW __attribute__ ((__nothrow__))
+# else
+#  define _GL_ATTRIBUTE_NOTHROW
+# endif
 #endif
 
-#if _GL_HAS_ATTRIBUTE (pure)
-# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
-#else
-# define _GL_ATTRIBUTE_PURE
+/* _GL_ATTRIBUTE_PACKED declares:
+   For struct members: The member has the smallest possible alignment.
+   For struct, union, class: All members have the smallest possible alignment,
+   minimizing the memory required.  */
+/* Applies to: struct members, struct, union,
+   in C++ also: class.  */
+#ifndef _GL_ATTRIBUTE_PACKED
+# if _GL_HAS_ATTRIBUTE (packed)
+#  define _GL_ATTRIBUTE_PACKED __attribute__ ((__packed__))
+# else
+#  define _GL_ATTRIBUTE_PACKED
+# endif
 #endif
 
-#if _GL_HAS_ATTRIBUTE (returns_nonnull)
-# define _GL_ATTRIBUTE_RETURNS_NONNULL __attribute__ ((__returns_nonnull__))
-#else
-# define _GL_ATTRIBUTE_RETURNS_NONNULL
+/* _GL_ATTRIBUTE_PURE declares that It is OK for a compiler to omit duplicate
+   calls to the function with the same arguments if observable state is not
+   changed between calls.
+   This attribute is safe for a function that does not affect
+   observable state, and always returns exactly once.
+   (This attribute is looser than _GL_ATTRIBUTE_CONST.)  */
+/* Applies to: functions.  */
+#ifndef _GL_ATTRIBUTE_PURE
+# if _GL_HAS_ATTRIBUTE (pure)
+#  define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
+# else
+#  define _GL_ATTRIBUTE_PURE
+# endif
 #endif
 
-#if _GL_HAS_ATTRIBUTE (sentinel)
-# define _GL_ATTRIBUTE_SENTINEL(pos) __attribute__ ((__sentinel__ pos))
-#else
-# define _GL_ATTRIBUTE_SENTINEL(pos)
+/* _GL_ATTRIBUTE_RETURNS_NONNULL declares that the function's return value is
+   a non-NULL pointer.  */
+/* Applies to: functions.  */
+#ifndef _GL_ATTRIBUTE_RETURNS_NONNULL
+# if _GL_HAS_ATTRIBUTE (returns_nonnull)
+#  define _GL_ATTRIBUTE_RETURNS_NONNULL __attribute__ ((__returns_nonnull__))
+# else
+#  define _GL_ATTRIBUTE_RETURNS_NONNULL
+# endif
 #endif
 
-#if _GL_HAS_ATTRIBUTE (unused)
-# define _GL_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
-#else
-# define _GL_ATTRIBUTE_UNUSED
+/* _GL_ATTRIBUTE_SENTINEL(pos) declares that the variadic function expects a
+   trailing NULL argument.
+   _GL_ATTRIBUTE_SENTINEL () - The last argument is NULL (requires C99).
+   _GL_ATTRIBUTE_SENTINEL ((N)) - The (N+1)st argument from the end is NULL.  */
+/* Applies to: functions.  */
+#ifndef _GL_ATTRIBUTE_SENTINEL
+# if _GL_HAS_ATTRIBUTE (sentinel)
+#  define _GL_ATTRIBUTE_SENTINEL(pos) __attribute__ ((__sentinel__ pos))
+# else
+#  define _GL_ATTRIBUTE_SENTINEL(pos)
+# endif
 #endif
-/* Earlier spellings of this macro.  */
-#define _GL_UNUSED _GL_ATTRIBUTE_UNUSED
-
 
-/* To support C++ as well as C, use _GL_UNUSED_LABEL with trailing ';'.  */
-#if !defined __cplusplus || _GL_GNUC_PREREQ (4, 5)
-# define _GL_UNUSED_LABEL _GL_ATTRIBUTE_UNUSED
-#else
-# define _GL_UNUSED_LABEL
+/* A helper macro.  Don't use it directly.  */
+#ifndef _GL_ATTRIBUTE_UNUSED
+# if _GL_HAS_ATTRIBUTE (unused)
+#  define _GL_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
+# else
+#  define _GL_ATTRIBUTE_UNUSED
+# endif
 #endif
 
 
-/* Please see the Gnulib manual for how to use these macros.
-
-   Suppress extern inline with HP-UX cc, as it appears to be broken; see
-   <https://lists.gnu.org/r/bug-texinfo/2013-02/msg00030.html>.
-
-   Suppress extern inline with Sun C in standards-conformance mode, as it
-   mishandles inline functions that call each other.  E.g., for 'inline void f
-   (void) { } inline void g (void) { f (); }', c99 incorrectly complains
-   'reference to static identifier "f" in extern inline function'.
-   This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16.
-
-   Suppress extern inline (with or without __attribute__ ((__gnu_inline__)))
-   on configurations that mistakenly use 'static inline' to implement
-   functions or macros in standard C headers like <ctype.h>.  For example,
-   if isdigit is mistakenly implemented via a static inline function,
-   a program containing an extern inline function that calls isdigit
-   may not work since the C standard prohibits extern inline functions
-   from calling static functions (ISO C 99 section 6.7.4.(3).
-   This bug is known to occur on:
-
-     OS X 10.8 and earlier; see:
-     https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html
-
-     DragonFly; see
-     http://muscles.dragonflybsd.org/bulk/clang-master-potential/20141111_102002/logs/ah-tty-0.3.12.log
-
-     FreeBSD; see:
-     https://lists.gnu.org/r/bug-gnulib/2014-07/msg00104.html
-
-   OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and
-   for clang but remains for g++; see <https://trac.macports.org/ticket/41033>.
-   Assume DragonFly and FreeBSD will be similar.
-
-   GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
-   inline semantics, unless -fgnu89-inline is used.  It defines a macro
-   __GNUC_STDC_INLINE__ to indicate this situation or a macro
-   __GNUC_GNU_INLINE__ to indicate the opposite situation.
-   GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline
-   semantics but warns, unless -fgnu89-inline is used:
-     warning: C99 inline functions are not supported; using GNU89
-     warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute
-   It defines a macro __GNUC_GNU_INLINE__ to indicate this situation.
- */
-#if (((defined __APPLE__ && defined __MACH__) \
-      || defined __DragonFly__ || defined __FreeBSD__) \
-     && (defined __header_inline \
-         ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \
-            && ! defined __clang__) \
-         : ((! defined _DONT_USE_CTYPE_INLINE_ \
-             && (defined __GNUC__ || defined __cplusplus)) \
-            || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \
-                && defined __GNUC__ && ! defined __cplusplus))))
-# define _GL_EXTERN_INLINE_STDHEADER_BUG
-#endif
-#if ((__GNUC__ \
-      ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \
-      : (199901L <= __STDC_VERSION__ \
-         && !defined __HP_cc \
-         && !defined __PGI \
-         && !(defined __SUNPRO_C && __STDC__))) \
-     && !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
-# define _GL_INLINE inline
-# define _GL_EXTERN_INLINE extern inline
-# define _GL_EXTERN_INLINE_IN_USE
-#elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \
-       && !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
-# if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__
-   /* __gnu_inline__ suppresses a GCC 4.2 diagnostic.  */
-#  define _GL_INLINE extern inline __attribute__ ((__gnu_inline__))
+/* _GL_UNUSED_LABEL; declares that it is not a programming mistake if the
+   immediately preceding label is not used.  The compiler should not warn
+   if the label is not used.  */
+/* Applies to: label (both in C and C++).  */
+/* Note that g++ < 4.5 does not support the '__attribute__ ((__unused__)) ;'
+   syntax.  But clang does.  */
+#ifndef _GL_UNUSED_LABEL
+# if !(defined __cplusplus && !_GL_GNUC_PREREQ (4, 5)) || defined __clang__
+#  define _GL_UNUSED_LABEL _GL_ATTRIBUTE_UNUSED
 # else
-#  define _GL_INLINE extern inline
+#  define _GL_UNUSED_LABEL
 # endif
-# define _GL_EXTERN_INLINE extern
-# define _GL_EXTERN_INLINE_IN_USE
-#else
-# define _GL_INLINE static _GL_UNUSED
-# define _GL_EXTERN_INLINE static _GL_UNUSED
 #endif
 
-/* In GCC 4.6 (inclusive) to 5.1 (exclusive),
-   suppress bogus "no previous prototype for 'FOO'"
-   and "no previous declaration for 'FOO'" diagnostics,
-   when FOO is an inline function in the header; see
-   <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113> and
-   <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63877>.  */
-#if __GNUC__ == 4 && 6 <= __GNUC_MINOR__
-# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__
-#  define _GL_INLINE_HEADER_CONST_PRAGMA
-# else
-#  define _GL_INLINE_HEADER_CONST_PRAGMA \
-     _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"")
-# endif
-# define _GL_INLINE_HEADER_BEGIN \
-    _Pragma ("GCC diagnostic push") \
-    _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \
-    _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \
-    _GL_INLINE_HEADER_CONST_PRAGMA
-# define _GL_INLINE_HEADER_END \
-    _Pragma ("GCC diagnostic pop")
+
+/* In C++, there is the concept of "language linkage", that encompasses
+    name mangling and function calling conventions.
+    The following macros start and end a block of "C" linkage.  */
+#ifdef __cplusplus
+# define _GL_BEGIN_C_LINKAGE extern "C" {
+# define _GL_END_C_LINKAGE }
 #else
-# define _GL_INLINE_HEADER_BEGIN
-# define _GL_INLINE_HEADER_END
+# define _GL_BEGIN_C_LINKAGE
+# define _GL_END_C_LINKAGE
 #endif
 
-/* Define to `int' if <sys/types.h> doesn't define. */
+
+/* Define as 'int' if <sys/types.h> doesn't define. */
 #undef gid_t
 
 /* A replacement for va_copy, if needed.  */
 #define gl_va_copy(a,b) ((a) = (b))
 
-/* Define to `__inline__' or `__inline' if that's what the C compiler
+/* Define to '__inline__' or '__inline' if that's what the C compiler
    calls it, or to nothing if 'inline' is not supported under any name.  */
 #ifndef __cplusplus
 #undef inline
 # define __GNUC_STDC_INLINE__ 1
 #endif
 
-/* Define to 1 if the compiler is checking for lint. */
-#undef lint
-
 /* Define to a type if <wchar.h> does not define. */
 #undef mbstate_t
 
 /* Define to the real name of the mktime_internal function. */
 #undef mktime_internal
 
-/* Define to `int' if <sys/types.h> does not define. */
+/* Define to 'int' if <sys/types.h> does not define. */
 #undef mode_t
 
 /* Define to the name of the strftime replacement function. */
 /* Define to the type of st_nlink in struct stat, or a supertype. */
 #undef nlink_t
 
-/* Define to `long int' if <sys/types.h> does not define. */
+/* Define to 'long int' if <sys/types.h> does not define. */
 #undef off_t
 
 /* Define as a signed integer type capable of holding a process identifier. */
 # define __restrict__
 #endif
 
-/* Define to `unsigned int' if <sys/types.h> does not define. */
+/* Define as 'unsigned int' if <stddef.h> doesn't define. */
 #undef size_t
 
 /* type to use in place of socklen_t if not defined */
    sigaltstack */
 #undef stack_t
 
-/* Define to `int' if <sys/types.h> doesn't define. */
+/* Define as 'int' if <sys/types.h> doesn't define. */
 #undef uid_t
 
 
 /* Define as a macro for copying va_list variables. */
 #undef va_copy
 
-/* Define as `fork' if `vfork' does not work. */
+/* Define as 'fork' if 'vfork' does not work. */
 #undef vfork
+
+#if !defined HAVE_C_ALIGNASOF && __cplusplus < 201103 && !defined alignof
+# if HAVE_STDALIGN_H
+#  include <stdalign.h>
+# endif
+
+/* ISO C23 alignas and alignof for platforms that lack it.
+
+   References:
+   ISO C23 (latest free draft
+   <http://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.pdf>)
+   sections 6.5.3.4, 6.7.5, 7.15.
+   C++11 (latest free draft
+   <http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf>)
+   section 18.10. */
+
+/* alignof (TYPE), also known as _Alignof (TYPE), yields the alignment
+   requirement of a structure member (i.e., slot or field) that is of
+   type TYPE, as an integer constant expression.
+
+   This differs from GCC's and clang's __alignof__ operator, which can
+   yield a better-performing alignment for an object of that type.  For
+   example, on x86 with GCC and on Linux/x86 with clang,
+   __alignof__ (double) and __alignof__ (long long) are 8, whereas
+   alignof (double) and alignof (long long) are 4 unless the option
+   '-malign-double' is used.
+
+   The result cannot be used as a value for an 'enum' constant, if you
+   want to be portable to HP-UX 10.20 cc and AIX 3.2.5 xlc.  */
+
+/* GCC releases before GCC 4.9 had a bug in _Alignof.  See GCC bug 52023
+   <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023>.
+   clang versions < 8.0.0 have the same bug.  */
+#  if (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 \
+       || (defined __GNUC__ && __GNUC__ < 4 + (__GNUC_MINOR__ < 9) \
+           && !defined __clang__) \
+       || (defined __clang__ && __clang_major__ < 8))
+#   undef/**/_Alignof
+#   ifdef __cplusplus
+#    if (201103 <= __cplusplus || defined _MSC_VER)
+#     define _Alignof(type) alignof (type)
+#    else
+      template <class __t> struct __alignof_helper { char __a; __t __b; };
+#     define _Alignof(type) offsetof (__alignof_helper<type>, __b)
+#     define _GL_STDALIGN_NEEDS_STDDEF 1
+#    endif
+#   else
+#    if (defined __GNUC__ && 4 <= __GNUC__) || defined __clang__
+#     define _Alignof(type) __builtin_offsetof (struct { char __a; type __b; }, __b)
+#    else
+#     define _Alignof(type) offsetof (struct { char __a; type __b; }, __b)
+#     define _GL_STDALIGN_NEEDS_STDDEF 1
+#    endif
+#   endif
+#  endif
+#  if ! (defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER))
+#   undef/**/alignof
+#   define alignof _Alignof
+#  endif
+
+/* alignas (A), also known as _Alignas (A), aligns a variable or type
+   to the alignment A, where A is an integer constant expression.  For
+   example:
+
+      int alignas (8) foo;
+      struct s { int a; int alignas (8) bar; };
+
+   aligns the address of FOO and the offset of BAR to be multiples of 8.
+
+   A should be a power of two that is at least the type's alignment
+   and at most the implementation's alignment limit.  This limit is
+   2**28 on typical GNUish hosts, and 2**13 on MSVC.  To be portable
+   to MSVC through at least version 10.0, A should be an integer
+   constant, as MSVC does not support expressions such as 1 << 3.
+   To be portable to Sun C 5.11, do not align auto variables to
+   anything stricter than their default alignment.
+
+   The following C23 requirements are not supported here:
+
+     - If A is zero, alignas has no effect.
+     - alignas can be used multiple times; the strictest one wins.
+     - alignas (TYPE) is equivalent to alignas (alignof (TYPE)).
+
+   */
+# if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112
+#  if defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER)
+#   define _Alignas(a) alignas (a)
+#  elif (!defined __attribute__ \
+         && ((defined __APPLE__ && defined __MACH__ \
+              ? 4 < __GNUC__ + (1 <= __GNUC_MINOR__) \
+              : __GNUC__ && !defined __ibmxl__) \
+             || (4 <= __clang_major__) \
+             || (__ia64 && (61200 <= __HP_cc || 61200 <= __HP_aCC)) \
+             || __ICC || 0x590 <= __SUNPRO_C || 0x0600 <= __xlC__))
+#   define _Alignas(a) __attribute__ ((__aligned__ (a)))
+#  elif 1300 <= _MSC_VER
+#   define _Alignas(a) __declspec (align (a))
+#  endif
+# endif
+# if !HAVE_STDALIGN_H
+#  if ((defined _Alignas \
+        && !(defined __cplusplus \
+             && (201103 <= __cplusplus || defined _MSC_VER))) \
+       || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__))
+#   define alignas _Alignas
+#  endif
+# endif
+
+# if _GL_STDALIGN_NEEDS_STDDEF
+#  include <stddef.h>
+# endif
+#endif
+
+#ifndef HAVE_C_BOOL
+# if !defined __cplusplus && !defined __bool_true_false_are_defined
+#  if HAVE_STDBOOL_H
+#   include <stdbool.h>
+#  else
+#   if defined __SUNPRO_C
+#    error "<stdbool.h> is not usable with this configuration. To make it usable, add -D_STDC_C99= to $CC."
+#   else
+#    error "<stdbool.h> does not exist on this platform. Use gnulib module 'stdbool-c99' instead of gnulib module 'stdbool'."
+#   endif
+#  endif
+# endif
+# if !true
+#  define true (!false)
+# endif
+#endif
+
+#if defined __cplusplus && HAVE_CXX_NULLPTR < 0
+# include <stddef.h>
+# undef/**/nullptr
+#endif
+#ifndef nullptr
+# if !defined __cplusplus && !defined HAVE_C_NULLPTR
+#  define nullptr ((void *) 0)
+# elif defined __cplusplus && HAVE_CXX_NULLPTR <= 0
+#  if 3 <= __GNUG__
+#   define nullptr __null
+#  else
+#   define nullptr 0L
+#  endif
+# endif
+#endif
+
+#if (!defined HAVE_C_STATIC_ASSERT && !defined assert \
+     && (!defined __cplusplus \
+         || (__cpp_static_assert < 201411 \
+             && __GNUG__ < 6 && __clang_major__ < 6)))
+ #include <assert.h>
+ #undef/**/assert
+ #ifdef __sgi
+  #undef/**/__ASSERT_H__
+ #endif
+ /* Solaris 11.4 <assert.h> defines static_assert as a macro with 2 arguments.
+    We need it also to be invocable with a single argument.  */
+ #if defined __sun && (__STDC_VERSION__ - 0 >= 201112L) && !defined __cplusplus
+  #undef/**/static_assert
+  #define static_assert _Static_assert
+ #endif
+#endif
index 70ad70b..ec43126 100644 (file)
@@ -1,6 +1,6 @@
 /* A substitute for ISO C99 <ctype.h>, for platforms on which it is incomplete.
 
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 #ifndef _@GUARD_PREFIX@_CTYPE_H
 #define _@GUARD_PREFIX@_CTYPE_H
 
+/* This file uses GNULIB_POSIXCHECK, HAVE_RAW_DECL_*.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
 
 /* The definition of _GL_WARN_ON_USE is copied here.  */
index 1cac430..c9375cd 100644 (file)
@@ -1,11 +1,11 @@
 /* Analyze differences between two vectors.
 
-   Copyright (C) 1988-1989, 1992-1995, 2001-2004, 2006-2021 Free Software
+   Copyright (C) 1988-1989, 1992-1995, 2001-2004, 2006-2023 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
      OFFSET                  A signed integer type sufficient to hold the
                              difference between two indices.  Usually
                              something like ptrdiff_t.
+     OFFSET_MAX              (Optional) The maximum value of OFFSET (e.g.,
+                             PTRDIFF_MAX).  If omitted, it is inferred in a
+                             way portable to the vast majority of C platforms,
+                             as they lack padding bits.
      EXTRA_CONTEXT_FIELDS    Declarations of fields for 'struct context'.
      NOTE_DELETE(ctxt, xoff) Record the removal of the object xvec[xoff].
      NOTE_INSERT(ctxt, yoff) Record the insertion of the object yvec[yoff].
 
    Before including this file, you also need to include:
      #include <limits.h>
-     #include <stdbool.h>
      #include "minmax.h"
  */
 
 /* Maximum value of type OFFSET.  */
-#define OFFSET_MAX \
-  ((((OFFSET)1 << (sizeof (OFFSET) * CHAR_BIT - 2)) - 1) * 2 + 1)
+#ifndef OFFSET_MAX
+# define OFFSET_MAX \
+   ((((OFFSET) 1 << (sizeof (OFFSET) * CHAR_BIT - 2)) - 1) * 2 + 1)
+#endif
 
 /* Default to no early abort.  */
 #ifndef EARLY_ABORT
index 95f9c99..e9454af 100644 (file)
@@ -1,6 +1,6 @@
 /* dirname.c -- return all but the last element in a file name
 
-   Copyright (C) 1990, 1998, 2000-2001, 2003-2006, 2009-2021 Free Software
+   Copyright (C) 1990, 1998, 2000-2001, 2003-2006, 2009-2023 Free Software
    Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
index d8b07d3..e72f713 100644 (file)
@@ -1,11 +1,11 @@
 /* dirname.c -- return all but the last element in a file name
 
-   Copyright (C) 1990, 1998, 2000-2001, 2003-2006, 2009-2021 Free Software
+   Copyright (C) 1990, 1998, 2000-2001, 2003-2006, 2009-2023 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 492a438..0344f1c 100644 (file)
@@ -1,6 +1,6 @@
 /* Take file names apart into directory and base names.
 
-   Copyright (C) 1998, 2001, 2003-2006, 2009-2021 Free Software Foundation,
+   Copyright (C) 1998, 2001, 2003-2006, 2009-2023 Free Software Foundation,
    Inc.
 
    This file is free software: you can redistribute it and/or modify
 #ifndef DIRNAME_H_
 # define DIRNAME_H_ 1
 
-# include <stdbool.h>
-# include <stddef.h>
+/* This file uses _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_PURE,
+   _GL_ATTRIBUTE_RETURNS_NONNULL.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
+# include <stdlib.h>
 # include "filename.h"
 # include "basename-lgpl.h"
 
@@ -33,11 +38,16 @@ extern "C" {
 #endif
 
 # if GNULIB_DIRNAME
-char *base_name (char const *file) _GL_ATTRIBUTE_MALLOC;
-char *dir_name (char const *file);
+char *base_name (char const *file)
+  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE
+  _GL_ATTRIBUTE_RETURNS_NONNULL;
+char *dir_name (char const *file)
+  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE
+  _GL_ATTRIBUTE_RETURNS_NONNULL;
 # endif
 
-char *mdir_name (char const *file);
+char *mdir_name (char const *file)
+  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE;
 size_t dir_len (char const *file) _GL_ATTRIBUTE_PURE;
 
 bool strip_trailing_slashes (char *file);
index 53e5552..7d197ca 100644 (file)
@@ -1,6 +1,6 @@
 /* Duplicate an open file descriptor to a specified file descriptor.
 
-   Copyright (C) 1999, 2004-2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2004-2007, 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index ec64273..9155910 100644 (file)
@@ -1,5 +1,5 @@
 /* Type-safe arrays which grow dynamically.
-   Copyright 2021 Free Software Foundation, Inc.
+   Copyright 2021-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 3cad9e2..3dda9c2 100644 (file)
@@ -1,6 +1,6 @@
 /* A POSIX-like <errno.h>.
 
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index f89dcc5..ef43728 100644 (file)
@@ -1,5 +1,5 @@
 /* Error handler for noninteractive utilities
-   Copyright (C) 1990-1998, 2000-2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 1990-1998, 2000-2007, 2009-2023 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
@@ -42,8 +42,6 @@
 # define USE_UNLOCKED_IO 0
 # define _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD(a, b)
 # define _GL_ARG_NONNULL(a)
-#else
-# include "getprogname.h"
 #endif
 
 #if USE_UNLOCKED_IO
diff --git a/lib/error.h b/lib/error.h
deleted file mode 100644 (file)
index 814715e..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-/* Declaration for error-reporting function
-   Copyright (C) 1995-1997, 2003, 2006, 2008-2021 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
-   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/>.  */
-
-#ifndef _ERROR_H
-#define _ERROR_H 1
-
-/* Get _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM.  */
-#include <stdio.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Print a message with 'fprintf (stderr, FORMAT, ...)';
-   if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM).
-   If STATUS is nonzero, terminate the program with 'exit (STATUS)'.  */
-
-extern void error (int __status, int __errnum, const char *__format, ...)
-#if GNULIB_VFPRINTF_POSIX
-     _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 3, 4))
-#else
-     _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM, 3, 4))
-#endif
-     ;
-
-extern void error_at_line (int __status, int __errnum, const char *__fname,
-                           unsigned int __lineno, const char *__format, ...)
-#if GNULIB_VFPRINTF_POSIX
-     _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 5, 6))
-#else
-     _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM, 5, 6))
-#endif
-     ;
-
-/* If NULL, error will flush stdout, then print on stderr the program
-   name, a colon and a space.  Otherwise, error will call this
-   function without parameters instead.  */
-extern void (*error_print_progname) (void);
-
-/* This variable is incremented each time 'error' is called.  */
-extern unsigned int error_message_count;
-
-/* Sometimes we want to have at most one error per line.  This
-   variable controls whether this mode is selected or not.  */
-extern int error_one_per_line;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* error.h */
diff --git a/lib/error.in.h b/lib/error.in.h
new file mode 100644 (file)
index 0000000..9a520f1
--- /dev/null
@@ -0,0 +1,123 @@
+/* Declarations for error-reporting functions.
+   Copyright (C) 1995-1997, 2003, 2006, 2008-2023 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
+   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/>.  */
+
+#ifndef _@GUARD_PREFIX@_ERROR_H
+
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+
+/* The include_next requires a split double-inclusion guard.  */
+#if @HAVE_ERROR_H@
+# @INCLUDE_NEXT@ @NEXT_ERROR_H@
+#endif
+
+#ifndef _@GUARD_PREFIX@_ERROR_H
+#define _@GUARD_PREFIX@_ERROR_H
+
+/* This file uses _GL_ATTRIBUTE_FORMAT.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
+/* Get _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM.  */
+#include <stdio.h>
+
+/* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
+
+#if GNULIB_VFPRINTF_POSIX
+# define _GL_ATTRIBUTE_SPEC_PRINTF_ERROR _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD
+#else
+# define _GL_ATTRIBUTE_SPEC_PRINTF_ERROR _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Print a message with 'fprintf (stderr, FORMAT, ...)';
+   if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM).
+   If STATUS is nonzero, terminate the program with 'exit (STATUS)'.  */
+#if @REPLACE_ERROR@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#  undef error
+#  define error rpl_error
+# endif
+_GL_FUNCDECL_RPL (error, void,
+                  (int __status, int __errnum, const char *__format, ...)
+                  _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_ERROR, 3, 4)));
+_GL_CXXALIAS_RPL (error, void,
+                  (int __status, int __errnum, const char *__format, ...));
+#else
+# if ! @HAVE_ERROR@
+_GL_FUNCDECL_SYS (error, void,
+                  (int __status, int __errnum, const char *__format, ...)
+                  _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_ERROR, 3, 4)));
+# endif
+_GL_CXXALIAS_SYS (error, void,
+                  (int __status, int __errnum, const char *__format, ...));
+#endif
+#if __GLIBC__ >= 2
+_GL_CXXALIASWARN (error);
+#endif
+
+/* Likewise.  If FILENAME is non-NULL, include FILENAME:LINENO: in the
+   message.  */
+#if @REPLACE_ERROR_AT_LINE@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#  undef error_at_line
+#  define error_at_line rpl_error_at_line
+# endif
+_GL_FUNCDECL_RPL (error_at_line, void,
+                  (int __status, int __errnum, const char *__filename,
+                   unsigned int __lineno, const char *__format, ...)
+                  _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_ERROR, 5, 6)));
+_GL_CXXALIAS_RPL (error_at_line, void,
+                  (int __status, int __errnum, const char *__filename,
+                   unsigned int __lineno, const char *__format, ...));
+#else
+# if ! @HAVE_ERROR_AT_LINE@
+_GL_FUNCDECL_SYS (error_at_line, void,
+                  (int __status, int __errnum, const char *__filename,
+                   unsigned int __lineno, const char *__format, ...)
+                  _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_ERROR, 5, 6)));
+# endif
+_GL_CXXALIAS_SYS (error_at_line, void,
+                  (int __status, int __errnum, const char *__filename,
+                   unsigned int __lineno, const char *__format, ...));
+#endif
+_GL_CXXALIASWARN (error_at_line);
+
+/* If NULL, error will flush stdout, then print on stderr the program
+   name, a colon and a space.  Otherwise, error will call this
+   function without parameters instead.  */
+extern void (*error_print_progname) (void);
+
+/* This variable is incremented each time 'error' is called.  */
+extern unsigned int error_message_count;
+
+/* Sometimes we want to have at most one error per line.  This
+   variable controls whether this mode is selected or not.  */
+extern int error_one_per_line;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _@GUARD_PREFIX@_ERROR_H */
+#endif /* _@GUARD_PREFIX@_ERROR_H */
index 417ab23..7bd0ec8 100644 (file)
@@ -1,11 +1,11 @@
 /* exclude.c -- exclude file names
 
-   Copyright (C) 1992-1994, 1997, 1999-2007, 2009-2021 Free Software
+   Copyright (C) 1992-1994, 1997, 1999-2007, 2009-2023 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -23,8 +23,6 @@
 
 #include <config.h>
 
-#include <stdbool.h>
-
 #include <ctype.h>
 #include <errno.h>
 #include <stddef.h>
@@ -39,7 +37,6 @@
 #include "mbuiter.h"
 #include "fnmatch.h"
 #include "xalloc.h"
-#include "verify.h"
 #include "filename.h"
 
 #if GNULIB_EXCLUDE_SINGLE_THREAD
 # define FNM_LEADING_DIR 0
 #endif
 
-verify (((EXCLUDE_ANCHORED | EXCLUDE_INCLUDE | EXCLUDE_WILDCARDS)
-         & (FNM_PATHNAME | FNM_NOESCAPE | FNM_PERIOD | FNM_LEADING_DIR
-            | FNM_CASEFOLD | FNM_EXTMATCH))
-        == 0);
+static_assert (((EXCLUDE_ANCHORED | EXCLUDE_INCLUDE | EXCLUDE_WILDCARDS)
+                & (FNM_PATHNAME | FNM_NOESCAPE | FNM_PERIOD | FNM_LEADING_DIR
+                   | FNM_CASEFOLD | FNM_EXTMATCH))
+               == 0);
 
 
 /* Exclusion patterns are grouped into a singly-linked list of
@@ -602,7 +599,7 @@ add_exclude (struct exclude *ex, char const *pattern, int options)
 /* Use ADD_FUNC to append to EX the patterns in FILE_NAME, each with
    OPTIONS.  LINE_END terminates each pattern in the file.  If
    LINE_END is a space character, ignore trailing spaces and empty
-   lines in FP.  Return -1 on failure, 0 on success.  */
+   lines in FP.  Return -1 (setting errno) on failure, 0 on success.  */
 
 int
 add_exclude_fp (void (*add_func) (struct exclude *, char const *, int, void *),
@@ -674,19 +671,16 @@ add_exclude_file (void (*add_func) (struct exclude *, char const *, int),
                   struct exclude *ex, char const *file_name, int options,
                   char line_end)
 {
-  bool use_stdin = file_name[0] == '-' && !file_name[1];
-  FILE *in;
-  int rc = 0;
+  if (strcmp (file_name, "-") == 0)
+    return add_exclude_fp (call_addfn, ex, stdin, options, line_end, &add_func);
 
-  if (use_stdin)
-    in = stdin;
-  else if (! (in = fopen (file_name, "re")))
+  FILE *in = fopen (file_name, "re");
+  if (!in)
     return -1;
-
-  rc = add_exclude_fp (call_addfn, ex, in, options, line_end, &add_func);
-
-  if (!use_stdin && fclose (in) != 0)
-    rc = -1;
-
+  int rc = add_exclude_fp (call_addfn, ex, in, options, line_end, &add_func);
+  int e = errno;
+  if (fclose (in) != 0)
+    return -1;
+  errno = e;
   return rc;
 }
index 9ecfbc9..c91e043 100644 (file)
@@ -1,11 +1,11 @@
 /* exclude.h -- declarations for excluding file names
 
-   Copyright (C) 1992-1994, 1997, 1999, 2001-2003, 2005-2006, 2009-2021 Free
+   Copyright (C) 1992-1994, 1997, 1999, 2001-2003, 2005-2006, 2009-2023 Free
    Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
 #ifndef _GL_EXCLUDE_H
 #define _GL_EXCLUDE_H 1
 
-#include <stdbool.h>
+/* This file uses _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_MALLOC,
+   _GL_ATTRIBUTE_NONNULL, _GL_ATTRIBUTE_PURE, _GL_ATTRIBUTE_RETURNS_NONNULL.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 #include <stdio.h>
 
 /* Written by Paul Eggert <eggert@twinsun.com>
@@ -48,8 +53,11 @@ struct exclude;
 
 bool fnmatch_pattern_has_wildcards (const char *, int) _GL_ATTRIBUTE_PURE;
 
-struct exclude *new_exclude (void) _GL_ATTRIBUTE_MALLOC;
-void free_exclude (struct exclude *);
+void free_exclude (struct exclude *)
+  _GL_ATTRIBUTE_NONNULL ((1));
+struct exclude *new_exclude (void)
+  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_RETURNS_NONNULL
+  _GL_ATTRIBUTE_DEALLOC (free_exclude, 1);
 void add_exclude (struct exclude *, char const *, int);
 int add_exclude_file (void (*) (struct exclude *, char const *, int),
                       struct exclude *, char const *, int, char);
index ebc1f58..d67a130 100644 (file)
@@ -1,6 +1,6 @@
 /* Failure exit status
 
-   Copyright (C) 2002-2003, 2005-2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2002-2003, 2005-2007, 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 4add9e0..85a6af6 100644 (file)
@@ -1,6 +1,6 @@
 /* Failure exit status
 
-   Copyright (C) 2002, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index c744eb9..e220800 100644 (file)
@@ -1,6 +1,6 @@
 /* Provide file descriptor control.
 
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 26dedc3..d0bb85f 100644 (file)
@@ -1,6 +1,6 @@
 /* Like <fcntl.h>, but with non-working flags defined to 0.
 
-   Copyright (C) 2006-2021 Free Software Foundation, Inc.
+   Copyright (C) 2006-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 #ifndef _@GUARD_PREFIX@_FCNTL_H
 #define _@GUARD_PREFIX@_FCNTL_H
 
+/* This file uses GNULIB_POSIXCHECK, HAVE_RAW_DECL_*.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 #ifndef __GLIBC__ /* Avoid namespace pollution on glibc systems.  */
 # include <unistd.h>
 #endif
@@ -435,6 +440,10 @@ _GL_WARN_ON_USE (openat, "openat is not portable - "
 # define AT_EACCESS 4
 #endif
 
+/* Ignore this flag if not supported.  */
+#ifndef AT_NO_AUTOMOUNT
+# define AT_NO_AUTOMOUNT 0
+#endif
 
 #endif /* _@GUARD_PREFIX@_FCNTL_H */
 #endif /* _@GUARD_PREFIX@_FCNTL_H */
index 75b1626..3626115 100644 (file)
@@ -1,5 +1,5 @@
 /* Hook for making file descriptor functions close(), ioctl() extensible.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This file is free software: you can redistribute it and/or modify
index 98e2a52..6bf3c24 100644 (file)
@@ -1,5 +1,5 @@
 /* Hook for making file descriptor functions close(), ioctl() extensible.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index af7c10a..359b4b8 100644 (file)
@@ -1,11 +1,11 @@
 /* Return a string describing the type of a file.
 
-   Copyright (C) 1993-1994, 2001-2002, 2004-2006, 2009-2021 Free Software
+   Copyright (C) 1993-1994, 2001-2002, 2004-2006, 2009-2023 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 90a4c44..2c5a8e9 100644 (file)
@@ -1,11 +1,11 @@
 /* Return a string describing the type of a file.
 
-   Copyright (C) 1993-1994, 2001-2002, 2004-2005, 2009-2021 Free Software
+   Copyright (C) 1993-1994, 2001-2002, 2004-2005, 2009-2023 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
 #ifndef FILE_TYPE_H
 # define FILE_TYPE_H 1
 
+/* This file uses _GL_ATTRIBUTE_PURE.  */
+# if !_GL_CONFIG_H_INCLUDED
+#  error "Please include config.h first."
+# endif
+
 # include <sys/types.h>
 # include <sys/stat.h>
 
index dafe3df..a2400a9 100644 (file)
@@ -1,5 +1,5 @@
 /* Basic filename support macros.
-   Copyright (C) 2001-2004, 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2001-2023 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
index d52dc80..6d7ed84 100644 (file)
@@ -1,6 +1,6 @@
 /* Concatenate two arbitrary file names.
 
-   Copyright (C) 1996-2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 1996-2007, 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 8180acc..d6c8828 100644 (file)
@@ -1,10 +1,10 @@
 /* Concatenate two arbitrary file names.
 
-   Copyright (C) 1996-2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 1996-2007, 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index e2ff466..29a4daa 100644 (file)
@@ -1,6 +1,6 @@
 /* Concatenate two arbitrary file names.
 
-   Copyright (C) 1996-1997, 2003, 2005, 2007, 2009-2021 Free Software
+   Copyright (C) 1996-1997, 2003, 2005, 2007, 2009-2023 Free Software
    Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
 
 /* Written by Jim Meyering.  */
 
+/* This file uses _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_RETURNS_NONNULL.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
+#include <stdlib.h>
+
 #if GNULIB_FILENAMECAT
 char *file_name_concat (char const *dir, char const *base,
-                        char **base_in_result);
+                        char **base_in_result)
+  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE
+  _GL_ATTRIBUTE_RETURNS_NONNULL;
 #endif
 
 char *mfile_name_concat (char const *dir, char const *base,
-                         char **base_in_result);
+                         char **base_in_result)
+  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE;
index 1b19a2b..8c5915e 100644 (file)
@@ -1,6 +1,6 @@
 /* Sizes of structs with flexible array members.
 
-   Copyright 2016-2021 Free Software Foundation, Inc.
+   Copyright 2016-2023 Free Software Foundation, Inc.
 
    This file is part of the GNU C Library.
 
 
    Written by Paul Eggert.  */
 
+/* This file uses _Alignof.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 #include <stddef.h>
 
 /* Nonzero multiple of alignment of TYPE, suitable for FLEXSIZEOF below.
index b8a71f1..32cfb48 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2021 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2023 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
@@ -30,6 +30,7 @@
 #include <errno.h>
 #include <ctype.h>
 #include <string.h>
+#include <stdckdint.h>
 #include <stdlib.h>
 #if defined _LIBC || HAVE_ALLOCA
 # include <alloca.h>
@@ -37,7 +38,6 @@
 #include <wchar.h>
 #include <wctype.h>
 #include <stddef.h>
-#include <stdbool.h>
 
 /* We need some of the locale data (the collation sequence information)
    but there is no interface to get this information in general.  Therefore
@@ -64,7 +64,7 @@ extern int fnmatch (const char *pattern, const char *string, int flags);
 #endif
 
 #ifdef _LIBC
-# if __GNUC__ >= 7
+# if __glibc_has_attribute (__fallthrough__)
 #  define FALLTHROUGH __attribute__ ((__fallthrough__))
 # else
 #  define FALLTHROUGH ((void) 0)
@@ -73,7 +73,6 @@ extern int fnmatch (const char *pattern, const char *string, int flags);
 # include "attribute.h"
 #endif
 
-#include <intprops.h>
 #include <flexmember.h>
 
 #ifdef _LIBC
index 56596ee..144143b 100644 (file)
@@ -1,5 +1,5 @@
 /* Substitute for and wrapper around <fnmatch.h>.
-   Copyright (C) 1991-1993, 1996-1999, 2001-2003, 2005, 2007, 2009-2021 Free
+   Copyright (C) 1991-1993, 1996-1999, 2001-2003, 2005, 2007, 2009-2023 Free
    Software Foundation, Inc.
 
    This file is part of the GNU C Library.
 #ifndef _@GUARD_PREFIX@_FNMATCH_H
 #define _@GUARD_PREFIX@_FNMATCH_H
 
+/* This file uses GNULIB_POSIXCHECK, HAVE_RAW_DECL_*.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
 
 /* The definition of _GL_ARG_NONNULL is copied here.  */
index 7f938af..68a3b7a 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2021 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2023 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
@@ -1039,8 +1039,8 @@ EXT (INT opt, const CHAR *pattern, const CHAR *string, const CHAR *string_end,
             idx_t slen = FLEXSIZEOF (struct patternlist, str, 0);             \
             idx_t new_used = alloca_used + slen;                              \
             idx_t plensize;                                                   \
-            if (INT_MULTIPLY_WRAPV (plen, sizeof (CHAR), &plensize)           \
-                || INT_ADD_WRAPV (new_used, plensize, &new_used))             \
+            if (ckd_mul (&plensize, plen, sizeof (CHAR))                      \
+                || ckd_add (&new_used, new_used, plensize))                   \
               {                                                               \
                 retval = -2;                                                  \
                 goto out;                                                     \
index cebcdac..e1e4cdb 100644 (file)
@@ -1,5 +1,5 @@
 /* Open a stream to a file.
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    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 @@ orig_fopen (const char *filename, const char *mode)
 
 #include <errno.h>
 #include <fcntl.h>
-#include <stdbool.h>
 #include <string.h>
 #include <unistd.h>
 #include <sys/types.h>
@@ -226,5 +225,9 @@ rpl_fopen (const char *filename, const char *mode)
     }
 #endif
 
+  /* open_direction is sometimes used, sometimes unused.
+     Silence gcc's warning about this situation.  */
+  (void) open_direction;
+
   return orig_fopen (filename, mode);
 }
index 780f03d..372a6b0 100644 (file)
@@ -1,6 +1,6 @@
 /* Make free() preserve errno.
 
-   Copyright (C) 2003, 2006, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2006, 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 845df85..646aa7c 100644 (file)
@@ -1,9 +1,9 @@
 /* Open a stream to a file.
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    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 3 of the
+   published by the Free Software Foundation, either version 3 of the
    License, or (at your option) any later version.
 
    This file is distributed in the hope that it will be useful,
index 512c688..6a23500 100644 (file)
@@ -1,5 +1,5 @@
 /* fstat() replacement.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 5006c2d..ac2d175 100644 (file)
@@ -1,5 +1,5 @@
 /* getdtablesize() function: Return maximum possible file descriptor value + 1.
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2008.
 
    This file is free software: you can redistribute it and/or modify
index 33e3d4b..e76c78c 100644 (file)
@@ -1,5 +1,5 @@
 /* getopt-on-non-glibc compatibility macros.
-   Copyright (C) 1989-2021 Free Software Foundation, Inc.
+   Copyright (C) 1989-2023 Free Software Foundation, Inc.
    This file is part of gnulib.
    Unlike most of the getopt implementation, it is NOT shared
    with the GNU C Library.
index ceb14d0..c5dd493 100644 (file)
@@ -1,5 +1,5 @@
 /* Declarations for getopt (basic, portable features only).
-   Copyright (C) 1989-2021 Free Software Foundation, Inc.
+   Copyright (C) 1989-2023 Free Software Foundation, Inc.
    This file is part of the GNU C Library and is also part of gnulib.
    Patches to this file should be submitted to both projects.
 
index f82a8c6..d37c293 100644 (file)
@@ -1,5 +1,5 @@
 /* Declarations for getopt (GNU extensions).
-   Copyright (C) 1989-2021 Free Software Foundation, Inc.
+   Copyright (C) 1989-2023 Free Software Foundation, Inc.
    This file is part of the GNU C Library and is also part of gnulib.
    Patches to this file should be submitted to both projects.
 
index b1733a3..095e393 100644 (file)
@@ -1,5 +1,5 @@
 /* getopt (basic, portable features) gnulib wrapper header.
-   Copyright (C) 1989-2021 Free Software Foundation, Inc.
+   Copyright (C) 1989-2023 Free Software Foundation, Inc.
    This file is part of gnulib.
    Unlike most of the getopt implementation, it is NOT shared
    with the GNU C Library.
@@ -47,7 +47,7 @@
 # define optind __GETOPT_ID (optind)
 # define optopt __GETOPT_ID (optopt)
 
-/* Work around a problem on macOS, which declares getopt with a
+/* Work around a problem on macOS, which declares getopt with a
    trailing __DARWIN_ALIAS(getopt) that would expand to something like
    __asm("_" "rpl_getopt" "$UNIX2003") were it not for the following
    hack to suppress the macOS declaration <https://bugs.gnu.org/40205>.  */
index b9a14ba..8578d72 100644 (file)
@@ -1,5 +1,5 @@
 /* getopt (GNU extensions) gnulib wrapper header.
-   Copyright (C) 1989-2021 Free Software Foundation, Inc.
+   Copyright (C) 1989-2023 Free Software Foundation, Inc.
    This file is part of gnulib.
    Unlike most of the getopt implementation, it is NOT shared
    with the GNU C Library.
index b106989..1e2441c 100644 (file)
@@ -1,5 +1,5 @@
 /* Getopt for GNU.
-   Copyright (C) 1987-2021 Free Software Foundation, Inc.
+   Copyright (C) 1987-2023 Free Software Foundation, Inc.
    This file is part of the GNU C Library and is also part of gnulib.
    Patches to this file should be submitted to both projects.
 
@@ -378,8 +378,8 @@ process_long_option (int argc, char **argv, const char *optstring,
 /* Initialize internal data upon the first call to getopt.  */
 
 static const char *
-_getopt_initialize (int argc _GL_UNUSED,
-                   char **argv _GL_UNUSED, const char *optstring,
+_getopt_initialize (_GL_UNUSED int argc,
+                   _GL_UNUSED char **argv, const char *optstring,
                    struct _getopt_data *d, int posixly_correct)
 {
   /* Start processing options with ARGV-element 1 (since ARGV-element 0
index bf884f0..0867d36 100644 (file)
@@ -1,5 +1,5 @@
 /* Declarations for getopt.
-   Copyright (C) 1989-2021 Free Software Foundation, Inc.
+   Copyright (C) 1989-2023 Free Software Foundation, Inc.
    This file is part of gnulib.
    Unlike most of the getopt implementation, it is NOT shared
    with the GNU C Library, which supplies a different version of
index 5a92806..49323aa 100644 (file)
@@ -1,5 +1,5 @@
 /* getopt_long and getopt_long_only entry points for GNU getopt.
-   Copyright (C) 1987-2021 Free Software Foundation, Inc.
+   Copyright (C) 1987-2023 Free Software Foundation, Inc.
    This file is part of the GNU C Library and is also part of gnulib.
    Patches to this file should be submitted to both projects.
 
index 91254e4..4d9e24b 100644 (file)
@@ -1,5 +1,5 @@
 /* Internal declarations for getopt.
-   Copyright (C) 1989-2021 Free Software Foundation, Inc.
+   Copyright (C) 1989-2023 Free Software Foundation, Inc.
    This file is part of the GNU C Library and is also part of gnulib.
    Patches to this file should be submitted to both projects.
 
index b7493ec..08bb33f 100644 (file)
@@ -1,6 +1,6 @@
 /* getpagesize emulation for systems where it cannot be done in a C macro.
 
-   Copyright (C) 2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 9a80281..279d79f 100644 (file)
@@ -1,5 +1,5 @@
 /* Program name management.
-   Copyright (C) 2016-2021 Free Software Foundation, Inc.
+   Copyright (C) 2016-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
 
 #include <config.h>
 
-/* Specification.  */
-#include "getprogname.h"
+/* Specification.  Also get __argv declaration.  */
+#include <stdlib.h>
 
 #include <errno.h> /* get program_invocation_name declaration */
-#include <stdlib.h> /* get __argv declaration */
 
 #ifdef _AIX
 # include <unistd.h>
 
 #if defined __SCO_VERSION__ || defined __sysv5__
 # include <fcntl.h>
-# include <stdlib.h>
 # include <string.h>
 #endif
 
 #include "basename-lgpl.h"
 
-#ifndef HAVE_GETPROGNAME             /* not Mac OS X, FreeBSD, NetBSD, OpenBSD >= 5.4, Cygwin */
+#ifndef HAVE_GETPROGNAME  /* not Mac OS X, FreeBSD, NetBSD, OpenBSD >= 5.4, Solaris >= 11, Cygwin, Android API level >= 21 */
 char const *
 getprogname (void)
 {
index eb12dcd..13314f2 100644 (file)
@@ -1,5 +1,5 @@
 /* Program name management.
-   Copyright (C) 2016-2021 Free Software Foundation, Inc.
+   Copyright (C) 2016-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
 
 #include <stdlib.h>
 
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Return the base name of the executing program.
-   On native Windows this will usually end in ".exe" or ".EXE". */
-#ifndef HAVE_GETPROGNAME
-extern char const *getprogname (void)
-# ifdef HAVE_DECL_PROGRAM_INVOCATION_NAME
-  _GL_ATTRIBUTE_PURE
-# endif
-  ;
-#endif
-
-#ifdef __cplusplus
-}
+#if __GNUC__ || (__clang_major__ >= 4)
+# warning "The include file getprogname.h is deprecated. Use <stdlib.h> instead."
 #endif
 
 #endif
index a186c4d..19bb342 100644 (file)
@@ -1,6 +1,6 @@
 /* Obtain a series of random bytes.
 
-   Copyright 2020-2021 Free Software Foundation, Inc.
+   Copyright 2020-2023 Free Software Foundation, Inc.
 
    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,6 @@
 
 #include <errno.h>
 #include <fcntl.h>
-#include <stdbool.h>
 #include <unistd.h>
 
 #if defined _WIN32 && ! defined __CYGWIN__
index f1c7a24..d0462c4 100644 (file)
@@ -1,5 +1,5 @@
 /* Convenience header for conditional use of GNU <libintl.h>.
-   Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2021 Free Software
+   Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2023 Free Software
    Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
 #define dcnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N, Category) \
   npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, Category)
 
-#ifdef __GNUC__
+#if defined __GNUC__ || defined __clang__
 __inline
 #else
 #ifdef __cplusplus
@@ -157,7 +157,7 @@ pgettext_aux (const char *domain,
     return translation;
 }
 
-#ifdef __GNUC__
+#if defined __GNUC__ || defined __clang__
 __inline
 #else
 #ifdef __cplusplus
@@ -191,9 +191,8 @@ npgettext_aux (const char *domain,
    or may have security implications due to non-deterministic stack usage.  */
 
 #if (!defined GNULIB_NO_VLA \
-     && (((__GNUC__ >= 3 || __GNUG__ >= 2) && !defined __STRICT_ANSI__) \
-     /*  || (__STDC_VERSION__ == 199901L && !defined __HP_cc)
-         || (__STDC_VERSION__ >= 201112L && !defined __STDC_NO_VLA__) */ ))
+     && defined __STDC_VERSION__ && 199901L <= __STDC_VERSION__ \
+     && !defined __STDC_NO_VLA__)
 # define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 1
 #else
 # define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 0
@@ -208,7 +207,7 @@ npgettext_aux (const char *domain,
 #define dpgettext_expr(Domainname, Msgctxt, Msgid) \
   dcpgettext_expr (Domainname, Msgctxt, Msgid, LC_MESSAGES)
 
-#ifdef __GNUC__
+#if defined __GNUC__ || defined __clang__
 __inline
 #else
 #ifdef __cplusplus
@@ -255,7 +254,7 @@ dcpgettext_expr (const char *domain,
 #define dnpgettext_expr(Domainname, Msgctxt, Msgid, MsgidPlural, N) \
   dcnpgettext_expr (Domainname, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES)
 
-#ifdef __GNUC__
+#if defined __GNUC__ || defined __clang__
 __inline
 #else
 #ifdef __cplusplus
index 8f28a32..ec40ff9 100644 (file)
@@ -1,10 +1,10 @@
 /* gettime -- get the system clock
 
-   Copyright (C) 2002, 2004-2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2004-2007, 2009-2023 Free Software Foundation, Inc.
 
    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 3 of the
+   published by the Free Software Foundation, either version 3 of the
    License, or (at your option) any later version.
 
    This file is distributed in the hope that it will be useful,
@@ -30,11 +30,13 @@ gettime (struct timespec *ts)
 {
 #if defined CLOCK_REALTIME && HAVE_CLOCK_GETTIME
   clock_gettime (CLOCK_REALTIME, ts);
+#elif defined HAVE_TIMESPEC_GET
+  timespec_get (ts, TIME_UTC);
 #else
   struct timeval tv;
   gettimeofday (&tv, NULL);
-  ts->tv_sec = tv.tv_sec;
-  ts->tv_nsec = tv.tv_usec * 1000;
+  *ts = (struct timespec) { .tv_sec  = tv.tv_sec,
+                            .tv_nsec = tv.tv_usec * 1000 };
 #endif
 }
 
index 2a222fc..c71629c 100644 (file)
@@ -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-2021 Free Software Foundation, Inc.
+   Copyright (C) 2001-2003, 2005-2007, 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
@@ -113,8 +113,10 @@ gettimeofday (struct timeval *restrict tv, void *restrict tz)
   ULONGLONG since_1970 =
     since_1601 - (ULONGLONG) 134774 * (ULONGLONG) 86400 * (ULONGLONG) 10000000;
   ULONGLONG microseconds_since_1970 = since_1970 / (ULONGLONG) 10;
-  tv->tv_sec = microseconds_since_1970 / (ULONGLONG) 1000000;
-  tv->tv_usec = microseconds_since_1970 % (ULONGLONG) 1000000;
+  *tv = (struct timeval) {
+    .tv_sec  = microseconds_since_1970 / (ULONGLONG) 1000000,
+    .tv_usec = microseconds_since_1970 % (ULONGLONG) 1000000
+  };
 
   return 0;
 
@@ -127,10 +129,7 @@ gettimeofday (struct timeval *restrict tv, void *restrict tz)
   struct timeval otv;
   int result = gettimeofday (&otv, (struct timezone *) tz);
   if (result == 0)
-    {
-      tv->tv_sec = otv.tv_sec;
-      tv->tv_usec = otv.tv_usec;
-    }
+    *tv = otv;
 #  else
   int result = gettimeofday (tv, (struct timezone *) tz);
 #  endif
@@ -143,8 +142,7 @@ gettimeofday (struct timeval *restrict tv, void *restrict tz)
 #   error "Only 1-second nominal clock resolution found.  Is that intended?" \
           "If so, compile with the -DOK_TO_USE_1S_CLOCK option."
 #  endif
-  tv->tv_sec = time (NULL);
-  tv->tv_usec = 0;
+  *tv = (struct timeval) { .tv_sec = time (NULL), .tv_usec = 0 };
 
   return 0;
 
index 44335e3..82fb755 100644 (file)
@@ -1,5 +1,5 @@
 /* Locking in multithreaded situations.
-   Copyright (C) 2005-2021 Free Software Foundation, Inc.
+   Copyright (C) 2005-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index cc4c519..805cd1c 100644 (file)
@@ -1,5 +1,5 @@
 /* Locking in multithreaded situations.
-   Copyright (C) 2005-2021 Free Software Foundation, Inc.
+   Copyright (C) 2005-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 #ifndef _LOCK_H
 #define _LOCK_H
 
+/* This file uses HAVE_THREADS_H, HAVE_PTHREAD_RWLOCK,
+   HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER,
+   PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP,
+   HAVE_PTHREAD_MUTEX_RECURSIVE.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 #include <errno.h>
 #include <stdlib.h>
 
index 793bc69..5ecf827 100644 (file)
@@ -1,5 +1,5 @@
 /* Multithreading primitives.
-   Copyright (C) 2005-2021 Free Software Foundation, Inc.
+   Copyright (C) 2005-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index e7c7e10..efa902f 100644 (file)
@@ -1,10 +1,10 @@
 ## DO NOT EDIT! GENERATED AUTOMATICALLY!
 ## Process this file with automake to produce Makefile.in.
-# Copyright (C) 2002-2021 Free Software Foundation, Inc.
+# Copyright (C) 2002-2023 Free Software Foundation, Inc.
 #
 # This file is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
+# the Free Software Foundation, either version 3 of the License, or
 # (at your option) any later version.
 #
 # This file is distributed in the hope that it will be useful,
@@ -39,6 +39,7 @@
 #  --avoid=setlocale \
 #  announce-gen \
 #  argmatch \
+#  attribute \
 #  binary-io \
 #  c-stack \
 #  config-h \
 #  exclude \
 #  exitfail \
 #  extensions \
+#  extern-inline \
 #  fcntl \
-#  fdl \
 #  file-type \
 #  filenamecat \
+#  flexmember \
 #  fnmatch-gnu \
 #  getopt-gnu \
 #  gettext-h \
 #  maintainer-makefile \
 #  manywarnings \
 #  mbrtowc \
+#  mempcpy \
 #  mkstemp \
 #  mktime \
 #  nstrftime \
+#  nullptr \
+#  perl \
 #  progname \
 #  propername \
+#  raise \
 #  rawmemchr \
 #  readme-release \
 #  regex \
 #  sh-quote \
 #  signal \
+#  sigprocmask \
 #  stat \
 #  stat-macros \
 #  stat-time \
+#  stdbool \
 #  stdint \
+#  stpcpy \
 #  strcase \
 #  strptime \
 #  strtoimax \
 #  sys_wait \
 #  system-quote \
+#  time_rz \
 #  unistd \
 #  unlocked-io \
 #  update-copyright \
 #  xreadlink \
 #  xstdopen \
 #  xstrtoimax \
-#  xvasprintf
+#  year2038
 
 
 MOSTLYCLEANFILES += core *.stackdump
@@ -114,6 +124,7 @@ MOSTLYCLEANFILES += core *.stackdump
 noinst_LIBRARIES += libdiffutils.a
 
 libdiffutils_a_SOURCES =
+libdiffutils_a_CFLAGS = $(AM_CFLAGS) $(GL_CFLAG_GNULIB_WARNINGS)
 libdiffutils_a_LIBADD = $(gl_LIBOBJS)
 libdiffutils_a_DEPENDENCIES = $(gl_LIBOBJS)
 EXTRA_libdiffutils_a_SOURCES =
@@ -135,11 +146,10 @@ BUILT_SOURCES += $(ALLOCA_H)
 # doesn't have one that works with the given compiler.
 if GL_GENERATE_ALLOCA_H
 alloca.h: alloca.in.h $(top_builddir)/config.status
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''HAVE_ALLOCA_H''@|$(HAVE_ALLOCA_H)|g' < $(srcdir)/alloca.in.h; \
-       } > $@-t && \
-       mv -f $@-t $@
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+         -e 's|@''HAVE_ALLOCA_H''@|$(HAVE_ALLOCA_H)|g' \
+         $(srcdir)/alloca.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 else
 alloca.h: $(top_builddir)/config.status
        rm -f $@
@@ -181,6 +191,37 @@ EXTRA_DIST += argmatch.h
 
 ## end   gnulib module argmatch
 
+## begin gnulib module assert-h
+
+BUILT_SOURCES += $(ASSERT_H)
+
+# We need the following in order to create <assert.h> when the system
+# doesn't have one that works with the given compiler.
+if GL_GENERATE_ASSERT_H
+assert.h: assert.in.h verify.h $(top_builddir)/config.status
+       $(gl_V_at){ $(SED_HEADER_STDOUT) \
+             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+             -e 's|@''NEXT_ASSERT_H''@|$(NEXT_ASSERT_H)|g' \
+             < $(srcdir)/assert.in.h && \
+         sed -e '/@assert.h omit start@/,/@assert.h omit end@/d' \
+             -e 's|_gl_verify|_gl_static_assert|g' \
+             -e 's|_GL_VERIFY|_GL_STATIC_ASSERT|g' \
+             -e 's|_GL\(_STATIC_ASSERT_H\)|_GL\1|g' \
+             < $(srcdir)/verify.h; \
+       } > $@-t
+       $(AM_V_at)mv $@-t $@
+else
+assert.h: $(top_builddir)/config.status
+       rm -f $@
+endif
+MOSTLYCLEANFILES += assert.h assert.h-t
+
+EXTRA_DIST += assert.in.h verify.h
+
+## end   gnulib module assert-h
+
 ## begin gnulib module assure
 
 
@@ -217,10 +258,9 @@ libdiffutils_a_SOURCES += bitrotate.h bitrotate.c
 
 ## begin gnulib module btowc
 
-
-EXTRA_DIST += btowc.c
-
-EXTRA_libdiffutils_a_SOURCES += btowc.c
+if GL_COND_OBJ_BTOWC
+libdiffutils_a_SOURCES += btowc.c
+endif
 
 ## end   gnulib module btowc
 
@@ -285,10 +325,9 @@ EXTRA_DIST += cloexec.h
 
 ## begin gnulib module close
 
-
-EXTRA_DIST += close.c
-
-EXTRA_libdiffutils_a_SOURCES += close.c
+if GL_COND_OBJ_CLOSE
+libdiffutils_a_SOURCES += close.c
+endif
 
 ## end   gnulib module close
 
@@ -299,9 +338,8 @@ BUILT_SOURCES += ctype.h
 # We need the following in order to create <ctype.h> when the system
 # doesn't have one that works with the given compiler.
 ctype.h: ctype.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
@@ -310,9 +348,8 @@ ctype.h: ctype.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
              -e 's/@''HAVE_ISBLANK''@/$(HAVE_ISBLANK)/g' \
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/ctype.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/ctype.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 MOSTLYCLEANFILES += ctype.h ctype.h-t
 
 EXTRA_DIST += ctype.in.h
@@ -352,49 +389,12 @@ EXTRA_DIST += $(top_srcdir)/build-aux/do-release-commit-and-tag
 
 ## begin gnulib module dup2
 
-
-EXTRA_DIST += dup2.c
-
-EXTRA_libdiffutils_a_SOURCES += dup2.c
+if GL_COND_OBJ_DUP2
+libdiffutils_a_SOURCES += dup2.c
+endif
 
 ## end   gnulib module dup2
 
-## begin gnulib module dynarray
-
-BUILT_SOURCES += malloc/dynarray.gl.h malloc/dynarray-skeleton.gl.h
-
-malloc/dynarray.gl.h: malloc/dynarray.h
-       $(AM_V_at)$(MKDIR_P) malloc
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e '/libc_hidden_proto/d' < $(srcdir)/malloc/dynarray.h; \
-       } > $@-t && \
-       mv $@-t $@
-MOSTLYCLEANFILES += malloc/dynarray.gl.h malloc/dynarray.gl.h-t
-
-malloc/dynarray-skeleton.gl.h: malloc/dynarray-skeleton.c
-       $(AM_V_at)$(MKDIR_P) malloc
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|<malloc/dynarray\.h>|<malloc/dynarray.gl.h>|g' \
-             -e 's|__attribute_maybe_unused__|_GL_ATTRIBUTE_MAYBE_UNUSED|g' \
-             -e 's|__attribute_nonnull__|_GL_ATTRIBUTE_NONNULL|g' \
-             -e 's|__attribute_warn_unused_result__|_GL_ATTRIBUTE_NODISCARD|g' \
-             -e 's|__glibc_likely|_GL_LIKELY|g' \
-             -e 's|__glibc_unlikely|_GL_UNLIKELY|g' \
-             < $(srcdir)/malloc/dynarray-skeleton.c; \
-       } > $@-t && \
-       mv $@-t $@
-MOSTLYCLEANFILES += malloc/dynarray-skeleton.gl.h malloc/dynarray-skeleton.gl.h-t
-
-libdiffutils_a_SOURCES += malloc/dynarray_at_failure.c                 malloc/dynarray_emplace_enlarge.c                 malloc/dynarray_finalize.c                 malloc/dynarray_resize.c                 malloc/dynarray_resize_clear.c
-
-EXTRA_DIST += dynarray.h malloc/dynarray-skeleton.c malloc/dynarray.h
-
-EXTRA_libdiffutils_a_SOURCES += malloc/dynarray-skeleton.c
-
-## end   gnulib module dynarray
-
 ## begin gnulib module errno
 
 BUILT_SOURCES += $(ERRNO_H)
@@ -403,9 +403,8 @@ BUILT_SOURCES += $(ERRNO_H)
 # doesn't have one that is POSIX compliant.
 if GL_GENERATE_ERRNO_H
 errno.h: errno.in.h $(top_builddir)/config.status
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
@@ -416,9 +415,8 @@ errno.h: errno.in.h $(top_builddir)/config.status
              -e 's|@''ENOLINK_VALUE''@|$(ENOLINK_VALUE)|g' \
              -e 's|@''EOVERFLOW_HIDDEN''@|$(EOVERFLOW_HIDDEN)|g' \
              -e 's|@''EOVERFLOW_VALUE''@|$(EOVERFLOW_VALUE)|g' \
-             < $(srcdir)/errno.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/errno.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 else
 errno.h: $(top_builddir)/config.status
        rm -f $@
@@ -431,12 +429,42 @@ EXTRA_DIST += errno.in.h
 
 ## begin gnulib module error
 
+if GL_COND_OBJ_ERROR
+libdiffutils_a_SOURCES += error.c
+endif
 
-EXTRA_DIST += error.c error.h
+## end   gnulib module error
 
-EXTRA_libdiffutils_a_SOURCES += error.c
+## begin gnulib module error-h
 
-## end   gnulib module error
+BUILT_SOURCES += $(ERROR_H)
+
+# We need the following in order to create <error.h> when the system
+# doesn't have one that works.
+if GL_GENERATE_ERROR_H
+error.h: error.in.h $(top_builddir)/config.status $(CXXDEFS_H)
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''HAVE_ERROR_H''@|$(HAVE_ERROR_H)|g' \
+             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''NEXT_ERROR_H''@|$(NEXT_ERROR_H)|g' \
+             -e 's|@''HAVE_ERROR''@|$(HAVE_ERROR)|g' \
+             -e 's|@''HAVE_ERROR_AT_LINE''@|$(HAVE_ERROR_AT_LINE)|g' \
+             -e 's|@''REPLACE_ERROR''@|$(REPLACE_ERROR)|g' \
+             -e 's|@''REPLACE_ERROR_AT_LINE''@|$(REPLACE_ERROR_AT_LINE)|g' \
+             -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
+             $(srcdir)/error.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
+else
+error.h: $(top_builddir)/config.status
+       rm -f $@
+endif
+MOSTLYCLEANFILES += error.h error.h-t
+
+EXTRA_DIST += error.in.h
+
+## end   gnulib module error-h
 
 ## begin gnulib module exclude
 
@@ -456,10 +484,9 @@ EXTRA_DIST += exitfail.h
 
 ## begin gnulib module fcntl
 
-
-EXTRA_DIST += fcntl.c
-
-EXTRA_libdiffutils_a_SOURCES += fcntl.c
+if GL_COND_OBJ_FCNTL
+libdiffutils_a_SOURCES += fcntl.c
+endif
 
 ## end   gnulib module fcntl
 
@@ -470,9 +497,8 @@ BUILT_SOURCES += fcntl.h
 # We need the following in order to create <fcntl.h> when the system
 # doesn't have one that works with the given compiler.
 fcntl.h: fcntl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
@@ -493,9 +519,8 @@ fcntl.h: fcntl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H)
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/fcntl.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/fcntl.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 MOSTLYCLEANFILES += fcntl.h fcntl.h-t
 
 EXTRA_DIST += fcntl.in.h
@@ -546,37 +571,6 @@ EXTRA_DIST += flexmember.h
 
 ## end   gnulib module flexmember
 
-## begin gnulib module float
-
-BUILT_SOURCES += $(FLOAT_H)
-
-# We need the following in order to create <float.h> when the system
-# doesn't have one that works with the given compiler.
-if GL_GENERATE_FLOAT_H
-float.h: float.in.h $(top_builddir)/config.status
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
-             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-             -e 's|@''NEXT_FLOAT_H''@|$(NEXT_FLOAT_H)|g' \
-             -e 's|@''REPLACE_ITOLD''@|$(REPLACE_ITOLD)|g' \
-             < $(srcdir)/float.in.h; \
-       } > $@-t && \
-       mv $@-t $@
-else
-float.h: $(top_builddir)/config.status
-       rm -f $@
-endif
-MOSTLYCLEANFILES += float.h float.h-t
-
-EXTRA_DIST += float.c float.in.h itold.c
-
-EXTRA_libdiffutils_a_SOURCES += float.c itold.c
-
-## end   gnulib module float
-
 ## begin gnulib module fnmatch
 
 
@@ -602,9 +596,8 @@ BUILT_SOURCES += $(FNMATCH_H)
 # We need the following in order to create <fnmatch.h>.
 if GL_GENERATE_FNMATCH_H
 fnmatch.h: fnmatch.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''HAVE_FNMATCH_H''@|$(HAVE_FNMATCH_H)|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
@@ -616,9 +609,8 @@ fnmatch.h: fnmatch.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/fnmatch.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/fnmatch.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 else
 fnmatch.h: $(top_builddir)/config.status
        rm -f $@
@@ -649,31 +641,51 @@ EXTRA_libdiffutils_a_SOURCES += fopen.c
 
 ## begin gnulib module free-posix
 
-
-EXTRA_DIST += free.c
-
-EXTRA_libdiffutils_a_SOURCES += free.c
+if GL_COND_OBJ_FREE
+libdiffutils_a_SOURCES += free.c
+endif
 
 ## end   gnulib module free-posix
 
 ## begin gnulib module freopen
 
-
-EXTRA_DIST += freopen.c
-
-EXTRA_libdiffutils_a_SOURCES += freopen.c
+if GL_COND_OBJ_FREOPEN
+libdiffutils_a_SOURCES += freopen.c
+endif
 
 ## end   gnulib module freopen
 
 ## begin gnulib module fstat
 
+if GL_COND_OBJ_FSTAT
+libdiffutils_a_SOURCES += fstat.c
+endif
 
-EXTRA_DIST += fstat.c stat-w32.c stat-w32.h
+EXTRA_DIST += stat-w32.c stat-w32.h
 
-EXTRA_libdiffutils_a_SOURCES += fstat.c stat-w32.c
+EXTRA_libdiffutils_a_SOURCES += stat-w32.c
 
 ## end   gnulib module fstat
 
+## begin gnulib module gen-header
+
+# In 'sed', replace the pattern space with a "DO NOT EDIT" comment.
+SED_HEADER_NOEDIT = s,.*,/* DO NOT EDIT! GENERATED AUTOMATICALLY! */,
+
+# '$(SED_HEADER_STDOUT) -e "..."' runs 'sed' but first outputs "DO NOT EDIT".
+SED_HEADER_STDOUT = sed -e 1h -e '1$(SED_HEADER_NOEDIT)' -e 1G
+
+# '$(SED_HEADER_TO_AT_t) FILE' copies FILE to $@-t, prepending a leading
+# "DO_NOT_EDIT".  Although this could be done more simply via:
+#      SED_HEADER_TO_AT_t = $(SED_HEADER_STDOUT) > $@-t
+# the -n and 'w' avoid a fork+exec, at least when GNU Make is used.
+SED_HEADER_TO_AT_t = $(SED_HEADER_STDOUT) -n -e 'w $@-t'
+
+# Use $(gl_V_at) instead of $(AM_V_GEN) or $(AM_V_at) on a line that
+gl_V_at = $(AM_V_GEN)
+
+## end   gnulib module gen-header
+
 ## begin gnulib module gendocs
 
 
@@ -683,10 +695,9 @@ EXTRA_DIST += $(top_srcdir)/build-aux/gendocs.sh
 
 ## begin gnulib module getdtablesize
 
-
-EXTRA_DIST += getdtablesize.c
-
-EXTRA_libdiffutils_a_SOURCES += getdtablesize.c
+if GL_COND_OBJ_GETDTABLESIZE
+libdiffutils_a_SOURCES += getdtablesize.c
+endif
 
 ## end   gnulib module getdtablesize
 
@@ -696,57 +707,67 @@ BUILT_SOURCES += $(GETOPT_H) $(GETOPT_CDEFS_H)
 
 # We need the following in order to create <getopt.h> when the system
 # doesn't have one that works with the given compiler.
+if GL_GENERATE_GETOPT_H
 getopt.h: getopt.in.h $(top_builddir)/config.status $(ARG_NONNULL_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''HAVE_GETOPT_H''@|$(HAVE_GETOPT_H)|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
              -e 's|@''NEXT_GETOPT_H''@|$(NEXT_GETOPT_H)|g' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-             < $(srcdir)/getopt.in.h; \
-       } > $@-t && \
-       mv -f $@-t $@
+             $(srcdir)/getopt.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
+else
+getopt.h: $(top_builddir)/config.status
+       rm -f $@
+endif
 
+if GL_GENERATE_GETOPT_CDEFS_H
 getopt-cdefs.h: getopt-cdefs.in.h $(top_builddir)/config.status
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-          sed -e 's|@''HAVE_SYS_CDEFS_H''@|$(HAVE_SYS_CDEFS_H)|g' \
-             < $(srcdir)/getopt-cdefs.in.h; \
-       } > $@-t && \
-       mv -f $@-t $@
+       $(AM_V_GEN)$(SED_HEADER_STDOUT) \
+         -e 's|@''HAVE_SYS_CDEFS_H''@|$(HAVE_SYS_CDEFS_H)|g' \
+         $(srcdir)/getopt-cdefs.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
+else
+getopt-cdefs.h: $(top_builddir)/config.status
+       rm -f $@
+endif
 
 MOSTLYCLEANFILES += getopt.h getopt.h-t getopt-cdefs.h getopt-cdefs.h-t
 
-EXTRA_DIST += getopt-cdefs.in.h getopt-core.h getopt-ext.h getopt-pfx-core.h getopt-pfx-ext.h getopt.c getopt.in.h getopt1.c getopt_int.h
+if GL_COND_OBJ_GETOPT
+libdiffutils_a_SOURCES += getopt.c getopt1.c
+endif
 
-EXTRA_libdiffutils_a_SOURCES += getopt.c getopt1.c
+EXTRA_DIST += getopt-cdefs.in.h getopt-core.h getopt-ext.h getopt-pfx-core.h getopt-pfx-ext.h getopt.in.h getopt_int.h
 
 ## end   gnulib module getopt-posix
 
 ## begin gnulib module getpagesize
 
-
-EXTRA_DIST += getpagesize.c
-
-EXTRA_libdiffutils_a_SOURCES += getpagesize.c
+if GL_COND_OBJ_GETPAGESIZE
+libdiffutils_a_SOURCES += getpagesize.c
+endif
 
 ## end   gnulib module getpagesize
 
 ## begin gnulib module getprogname
 
-libdiffutils_a_SOURCES += getprogname.h getprogname.c
+if GL_COND_OBJ_GETPROGNAME
+libdiffutils_a_SOURCES += getprogname.c
+endif
+
+EXTRA_DIST += getprogname.h
 
 ## end   gnulib module getprogname
 
 ## begin gnulib module getrandom
 
-
-EXTRA_DIST += getrandom.c
-
-EXTRA_libdiffutils_a_SOURCES += getrandom.c
+if GL_COND_OBJ_GETRANDOM
+libdiffutils_a_SOURCES += getrandom.c
+endif
 
 ## end   gnulib module getrandom
 
@@ -764,10 +785,9 @@ libdiffutils_a_SOURCES += gettime.c
 
 ## begin gnulib module gettimeofday
 
-
-EXTRA_DIST += gettimeofday.c
-
-EXTRA_libdiffutils_a_SOURCES += gettimeofday.c
+if GL_COND_OBJ_GETTIMEOFDAY
+libdiffutils_a_SOURCES += gettimeofday.c
+endif
 
 ## end   gnulib module gettimeofday
 
@@ -785,6 +805,39 @@ EXTRA_DIST += $(top_srcdir)/build-aux/gitlog-to-changelog
 
 ## end   gnulib module gitlog-to-changelog
 
+## begin gnulib module glibc-internal/dynarray
+
+BUILT_SOURCES += malloc/dynarray.gl.h malloc/dynarray-skeleton.gl.h
+
+malloc/dynarray.gl.h: malloc/dynarray.h
+       $(AM_V_GEN)$(MKDIR_P) '%reldir%/malloc'
+       $(AM_V_at)$(SED_HEADER_STDOUT) \
+         -e '/libc_hidden_proto/d' \
+         $(srcdir)/malloc/dynarray.h > $@-t
+       $(AM_V_at)mv $@-t $@
+MOSTLYCLEANFILES += malloc/dynarray.gl.h malloc/dynarray.gl.h-t
+
+malloc/dynarray-skeleton.gl.h: malloc/dynarray-skeleton.c
+       $(AM_V_GEN)$(MKDIR_P) '%reldir%/malloc'
+       $(AM_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|<malloc/dynarray\.h>|<malloc/dynarray.gl.h>|g' \
+             -e 's|__attribute_maybe_unused__|_GL_ATTRIBUTE_MAYBE_UNUSED|g' \
+             -e 's|__attribute_nonnull__|_GL_ATTRIBUTE_NONNULL|g' \
+             -e 's|__attribute_warn_unused_result__|_GL_ATTRIBUTE_NODISCARD|g' \
+             -e 's|__glibc_likely|_GL_LIKELY|g' \
+             -e 's|__glibc_unlikely|_GL_UNLIKELY|g' \
+             $(srcdir)/malloc/dynarray-skeleton.c > $@-t
+       $(AM_V_at)mv $@-t $@
+MOSTLYCLEANFILES += malloc/dynarray-skeleton.gl.h malloc/dynarray-skeleton.gl.h-t
+
+libdiffutils_a_SOURCES += malloc/dynarray_at_failure.c                 malloc/dynarray_emplace_enlarge.c                 malloc/dynarray_finalize.c                 malloc/dynarray_resize.c                 malloc/dynarray_resize_clear.c
+
+EXTRA_DIST += dynarray.h malloc/dynarray-skeleton.c malloc/dynarray.h
+
+EXTRA_libdiffutils_a_SOURCES += malloc/dynarray-skeleton.c
+
+## end   gnulib module glibc-internal/dynarray
+
 ## begin gnulib module gnu-make
 
 ##Sample usage of gnu-make module:
@@ -869,9 +922,8 @@ BUILT_SOURCES += $(ICONV_H)
 # doesn't have one that works with the given compiler.
 if GL_GENERATE_ICONV_H
 iconv.h: iconv.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
@@ -884,9 +936,8 @@ iconv.h: iconv.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H)
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/iconv.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/iconv.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 else
 iconv.h: $(top_builddir)/config.status
        rm -f $@
@@ -899,6 +950,13 @@ EXTRA_DIST += iconv.in.h
 
 ## begin gnulib module iconv_open
 
+if GL_COND_OBJ_ICONV_OPEN
+libdiffutils_a_SOURCES += iconv_open.c
+endif
+if GL_COND_OBJ_ICONV
+libdiffutils_a_SOURCES += iconv.c iconv_close.c
+endif
+
 $(srcdir)/iconv_open-aix.h: $(srcdir)/iconv_open-aix.gperf
        $(V_GPERF)$(GPERF) -m 10 $(srcdir)/iconv_open-aix.gperf > $(srcdir)/iconv_open-aix.h-t && \
        mv $(srcdir)/iconv_open-aix.h-t $(srcdir)/iconv_open-aix.h
@@ -922,9 +980,7 @@ MOSTLYCLEANFILES     += iconv_open-aix.h-t iconv_open-hpux.h-t iconv_open-irix.h
 MAINTAINERCLEANFILES += iconv_open-aix.h iconv_open-hpux.h iconv_open-irix.h iconv_open-osf.h iconv_open-solaris.h iconv_open-zos.h
 EXTRA_DIST           += iconv_open-aix.h iconv_open-hpux.h iconv_open-irix.h iconv_open-osf.h iconv_open-solaris.h iconv_open-zos.h
 
-EXTRA_DIST += iconv.c iconv_close.c iconv_open-aix.gperf iconv_open-hpux.gperf iconv_open-irix.gperf iconv_open-osf.gperf iconv_open-solaris.gperf iconv_open-zos.gperf iconv_open.c
-
-EXTRA_libdiffutils_a_SOURCES += iconv.c iconv_close.c iconv_open.c
+EXTRA_DIST += iconv_open-aix.gperf iconv_open-hpux.gperf iconv_open-irix.gperf iconv_open-osf.gperf iconv_open-solaris.gperf iconv_open-zos.gperf
 
 ## end   gnulib module iconv_open
 
@@ -944,7 +1000,7 @@ EXTRA_DIST += ignore-value.h
 ## begin gnulib module intprops
 
 
-EXTRA_DIST += intprops.h
+EXTRA_DIST += intprops-internal.h intprops.h
 
 ## end   gnulib module intprops
 
@@ -965,9 +1021,8 @@ BUILT_SOURCES += inttypes.h
 # We need the following in order to create <inttypes.h> when the system
 # doesn't have one that works with the given compiler.
 inttypes.h: inttypes.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
@@ -983,6 +1038,8 @@ inttypes.h: inttypes.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_U
              -e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \
              -e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/g' \
              -e 's/@''HAVE_IMAXDIV_T''@/$(HAVE_IMAXDIV_T)/g' \
+             -e 's/@''REPLACE_IMAXABS''@/$(REPLACE_IMAXABS)/g' \
+             -e 's/@''REPLACE_IMAXDIV''@/$(REPLACE_IMAXDIV)/g' \
              -e 's/@''REPLACE_STRTOIMAX''@/$(REPLACE_STRTOIMAX)/g' \
              -e 's/@''REPLACE_STRTOUMAX''@/$(REPLACE_STRTOUMAX)/g' \
              -e 's/@''INT32_MAX_LT_INTMAX_MAX''@/$(INT32_MAX_LT_INTMAX_MAX)/g' \
@@ -992,9 +1049,8 @@ inttypes.h: inttypes.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_U
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/inttypes.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/inttypes.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 MOSTLYCLEANFILES += inttypes.h inttypes.h-t
 
 EXTRA_DIST += inttypes.in.h
@@ -1003,37 +1059,33 @@ EXTRA_DIST += inttypes.in.h
 
 ## begin gnulib module isblank
 
-
-EXTRA_DIST += isblank.c
-
-EXTRA_libdiffutils_a_SOURCES += isblank.c
+if GL_COND_OBJ_ISBLANK
+libdiffutils_a_SOURCES += isblank.c
+endif
 
 ## end   gnulib module isblank
 
 ## begin gnulib module iswblank
 
-
-EXTRA_DIST += iswblank.c
-
-EXTRA_libdiffutils_a_SOURCES += iswblank.c
+if GL_COND_OBJ_ISWBLANK
+libdiffutils_a_SOURCES += iswblank.c
+endif
 
 ## end   gnulib module iswblank
 
 ## begin gnulib module iswdigit
 
-
-EXTRA_DIST += iswdigit.c
-
-EXTRA_libdiffutils_a_SOURCES += iswdigit.c
+if GL_COND_OBJ_ISWDIGIT
+libdiffutils_a_SOURCES += iswdigit.c
+endif
 
 ## end   gnulib module iswdigit
 
 ## begin gnulib module iswxdigit
 
-
-EXTRA_DIST += iswxdigit.c
-
-EXTRA_libdiffutils_a_SOURCES += iswxdigit.c
+if GL_COND_OBJ_ISWXDIGIT
+libdiffutils_a_SOURCES += iswxdigit.c
+endif
 
 ## end   gnulib module iswxdigit
 
@@ -1044,9 +1096,8 @@ BUILT_SOURCES += langinfo.h
 # We need the following in order to create an empty placeholder for
 # <langinfo.h> when the system doesn't have one.
 langinfo.h: langinfo.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''HAVE_LANGINFO_H''@|$(HAVE_LANGINFO_H)|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
@@ -1062,9 +1113,8 @@ langinfo.h: langinfo.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_U
              -e 's|@''REPLACE_NL_LANGINFO''@|$(REPLACE_NL_LANGINFO)|g' \
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/langinfo.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/langinfo.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 MOSTLYCLEANFILES += langinfo.h langinfo.h-t
 
 EXTRA_DIST += langinfo.in.h
@@ -1086,16 +1136,14 @@ BUILT_SOURCES += $(LIMITS_H)
 # doesn't have one that is compatible with GNU.
 if GL_GENERATE_LIMITS_H
 limits.h: limits.in.h $(top_builddir)/config.status
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
              -e 's|@''NEXT_LIMITS_H''@|$(NEXT_LIMITS_H)|g' \
-             < $(srcdir)/limits.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/limits.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 else
 limits.h: $(top_builddir)/config.status
        rm -f $@
@@ -1121,9 +1169,8 @@ BUILT_SOURCES += locale.h
 # We need the following in order to create <locale.h> when the system
 # doesn't have one that provides all definitions.
 locale.h: locale.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
@@ -1147,9 +1194,8 @@ locale.h: locale.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/locale.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/locale.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 MOSTLYCLEANFILES += locale.h locale.h-t
 
 EXTRA_DIST += locale.in.h
@@ -1158,10 +1204,9 @@ EXTRA_DIST += locale.in.h
 
 ## begin gnulib module localeconv
 
-
-EXTRA_DIST += localeconv.c
-
-EXTRA_libdiffutils_a_SOURCES += localeconv.c
+if GL_COND_OBJ_LOCALECONV
+libdiffutils_a_SOURCES += localeconv.c
+endif
 
 ## end   gnulib module localeconv
 
@@ -1173,10 +1218,9 @@ libdiffutils_a_SOURCES += glthread/lock.h glthread/lock.c
 
 ## begin gnulib module lstat
 
-
-EXTRA_DIST += lstat.c
-
-EXTRA_libdiffutils_a_SOURCES += lstat.c
+if GL_COND_OBJ_LSTAT
+libdiffutils_a_SOURCES += lstat.c
+endif
 
 ## end   gnulib module lstat
 
@@ -1228,10 +1272,13 @@ libdiffutils_a_SOURCES += mbiter.h mbiter.c
 
 ## begin gnulib module mbrtowc
 
+if GL_COND_OBJ_MBRTOWC
+libdiffutils_a_SOURCES += mbrtowc.c
+endif
 
-EXTRA_DIST += lc-charset-dispatch.c lc-charset-dispatch.h mbrtowc-impl-utf8.h mbrtowc-impl.h mbrtowc.c mbtowc-lock.c mbtowc-lock.h windows-initguard.h
+EXTRA_DIST += lc-charset-dispatch.c lc-charset-dispatch.h mbrtowc-impl-utf8.h mbrtowc-impl.h mbtowc-lock.c mbtowc-lock.h windows-initguard.h
 
-EXTRA_libdiffutils_a_SOURCES += lc-charset-dispatch.c mbrtowc.c mbtowc-lock.c
+EXTRA_libdiffutils_a_SOURCES += lc-charset-dispatch.c mbtowc-lock.c
 
 ## end   gnulib module mbrtowc
 
@@ -1243,10 +1290,9 @@ libdiffutils_a_SOURCES += mbscasecmp.c
 
 ## begin gnulib module mbsinit
 
-
-EXTRA_DIST += mbsinit.c
-
-EXTRA_libdiffutils_a_SOURCES += mbsinit.c
+if GL_COND_OBJ_MBSINIT
+libdiffutils_a_SOURCES += mbsinit.c
+endif
 
 ## end   gnulib module mbsinit
 
@@ -1258,10 +1304,13 @@ libdiffutils_a_SOURCES += mbslen.c
 
 ## begin gnulib module mbsrtowcs
 
+if GL_COND_OBJ_MBSRTOWCS
+libdiffutils_a_SOURCES += mbsrtowcs.c
+endif
 
-EXTRA_DIST += mbsrtowcs-impl.h mbsrtowcs-state.c mbsrtowcs.c
+EXTRA_DIST += mbsrtowcs-impl.h mbsrtowcs-state.c
 
-EXTRA_libdiffutils_a_SOURCES += mbsrtowcs-state.c mbsrtowcs.c
+EXTRA_libdiffutils_a_SOURCES += mbsrtowcs-state.c
 
 ## end   gnulib module mbsrtowcs
 
@@ -1275,10 +1324,11 @@ EXTRA_DIST += str-kmp.h
 
 ## begin gnulib module mbtowc
 
+if GL_COND_OBJ_MBTOWC
+libdiffutils_a_SOURCES += mbtowc.c
+endif
 
-EXTRA_DIST += mbtowc-impl.h mbtowc.c
-
-EXTRA_libdiffutils_a_SOURCES += mbtowc.c
+EXTRA_DIST += mbtowc-impl.h
 
 ## end   gnulib module mbtowc
 
@@ -1290,19 +1340,19 @@ libdiffutils_a_SOURCES += mbuiter.h mbuiter.c
 
 ## begin gnulib module memchr
 
+if GL_COND_OBJ_MEMCHR
+libdiffutils_a_SOURCES += memchr.c
+endif
 
-EXTRA_DIST += memchr.c memchr.valgrind
-
-EXTRA_libdiffutils_a_SOURCES += memchr.c
+EXTRA_DIST += memchr.valgrind
 
 ## end   gnulib module memchr
 
 ## begin gnulib module mempcpy
 
-
-EXTRA_DIST += mempcpy.c
-
-EXTRA_libdiffutils_a_SOURCES += mempcpy.c
+if GL_COND_OBJ_MEMPCPY
+libdiffutils_a_SOURCES += mempcpy.c
+endif
 
 ## end   gnulib module mempcpy
 
@@ -1314,19 +1364,17 @@ libdiffutils_a_SOURCES += minmax.h
 
 ## begin gnulib module mkdir
 
-
-EXTRA_DIST += mkdir.c
-
-EXTRA_libdiffutils_a_SOURCES += mkdir.c
+if GL_COND_OBJ_MKDIR
+libdiffutils_a_SOURCES += mkdir.c
+endif
 
 ## end   gnulib module mkdir
 
 ## begin gnulib module mkstemp
 
-
-EXTRA_DIST += mkstemp.c
-
-EXTRA_libdiffutils_a_SOURCES += mkstemp.c
+if GL_COND_OBJ_MKSTEMP
+libdiffutils_a_SOURCES += mkstemp.c
+endif
 
 ## end   gnulib module mkstemp
 
@@ -1350,28 +1398,34 @@ EXTRA_libdiffutils_a_SOURCES += mktime.c
 
 ## begin gnulib module msvc-inval
 
+if GL_COND_OBJ_MSVC_INVAL
+libdiffutils_a_SOURCES += msvc-inval.c
+endif
 
-EXTRA_DIST += msvc-inval.c msvc-inval.h
-
-EXTRA_libdiffutils_a_SOURCES += msvc-inval.c
+EXTRA_DIST += msvc-inval.h
 
 ## end   gnulib module msvc-inval
 
 ## begin gnulib module msvc-nothrow
 
+if GL_COND_OBJ_MSVC_NOTHROW
+libdiffutils_a_SOURCES += msvc-nothrow.c
+endif
 
-EXTRA_DIST += msvc-nothrow.c msvc-nothrow.h
-
-EXTRA_libdiffutils_a_SOURCES += msvc-nothrow.c
+EXTRA_DIST += msvc-nothrow.h
 
 ## end   gnulib module msvc-nothrow
 
 ## begin gnulib module nl_langinfo
 
+if GL_COND_OBJ_NL_LANGINFO
+libdiffutils_a_SOURCES += nl_langinfo.c
+endif
+if GL_COND_OBJ_NL_LANGINFO_LOCK
+libdiffutils_a_SOURCES += nl_langinfo-lock.c
+endif
 
-EXTRA_DIST += nl_langinfo-lock.c nl_langinfo.c windows-initguard.h
-
-EXTRA_libdiffutils_a_SOURCES += nl_langinfo-lock.c nl_langinfo.c
+EXTRA_DIST += windows-initguard.h
 
 ## end   gnulib module nl_langinfo
 
@@ -1385,10 +1439,9 @@ EXTRA_DIST += strftime.h
 
 ## begin gnulib module open
 
-
-EXTRA_DIST += open.c
-
-EXTRA_libdiffutils_a_SOURCES += open.c
+if GL_COND_OBJ_OPEN
+libdiffutils_a_SOURCES += open.c
+endif
 
 ## end   gnulib module open
 
@@ -1428,28 +1481,27 @@ EXTRA_DIST += quote.h quotearg.h
 
 ## begin gnulib module raise
 
-
-EXTRA_DIST += raise.c
-
-EXTRA_libdiffutils_a_SOURCES += raise.c
+if GL_COND_OBJ_RAISE
+libdiffutils_a_SOURCES += raise.c
+endif
 
 ## end   gnulib module raise
 
 ## begin gnulib module rawmemchr
 
+if GL_COND_OBJ_RAWMEMCHR
+libdiffutils_a_SOURCES += rawmemchr.c
+endif
 
-EXTRA_DIST += rawmemchr.c rawmemchr.valgrind
-
-EXTRA_libdiffutils_a_SOURCES += rawmemchr.c
+EXTRA_DIST += rawmemchr.valgrind
 
 ## end   gnulib module rawmemchr
 
 ## begin gnulib module readlink
 
-
-EXTRA_DIST += readlink.c
-
-EXTRA_libdiffutils_a_SOURCES += readlink.c
+if GL_COND_OBJ_READLINK
+libdiffutils_a_SOURCES += readlink.c
+endif
 
 ## end   gnulib module readlink
 
@@ -1473,38 +1525,40 @@ EXTRA_libdiffutils_a_SOURCES += realloc.c
 
 ## begin gnulib module reallocarray
 
-
-EXTRA_DIST += reallocarray.c
-
-EXTRA_libdiffutils_a_SOURCES += reallocarray.c
+if GL_COND_OBJ_REALLOCARRAY
+libdiffutils_a_SOURCES += reallocarray.c
+endif
 
 ## end   gnulib module reallocarray
 
 ## begin gnulib module regex
 
+if GL_COND_OBJ_REGEX
+libdiffutils_a_SOURCES += regex.c
+endif
 
-EXTRA_DIST += regcomp.c regex.c regex.h regex_internal.c regex_internal.h regexec.c
+EXTRA_DIST += regcomp.c regex.h regex_internal.c regex_internal.h regexec.c
 
-EXTRA_libdiffutils_a_SOURCES += regcomp.c regex.c regex_internal.c regexec.c
+EXTRA_libdiffutils_a_SOURCES += regcomp.c regex_internal.c regexec.c
 
 ## end   gnulib module regex
 
 ## begin gnulib module setenv
 
-
-EXTRA_DIST += setenv.c
-
-EXTRA_libdiffutils_a_SOURCES += setenv.c
+if GL_COND_OBJ_SETENV
+libdiffutils_a_SOURCES += setenv.c
+endif
 
 ## end   gnulib module setenv
 
 ## begin gnulib module setlocale-null
 
 libdiffutils_a_SOURCES += setlocale_null.c
+if GL_COND_OBJ_SETLOCALE_LOCK
+libdiffutils_a_SOURCES += setlocale-lock.c
+endif
 
-EXTRA_DIST += setlocale-lock.c setlocale_null.h windows-initguard.h
-
-EXTRA_libdiffutils_a_SOURCES += setlocale-lock.c
+EXTRA_DIST += setlocale_null.h windows-initguard.h
 
 ## end   gnulib module setlocale-null
 
@@ -1521,9 +1575,8 @@ BUILT_SOURCES += signal.h
 # We need the following in order to create <signal.h> when the system
 # doesn't have a complete one.
 signal.h: signal.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
@@ -1547,26 +1600,30 @@ signal.h: signal.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/signal.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/signal.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 MOSTLYCLEANFILES += signal.h signal.h-t
 
 EXTRA_DIST += signal.in.h
 
 ## end   gnulib module signal-h
 
+## begin gnulib module sigprocmask
+
+if GL_COND_OBJ_SIGPROCMASK
+libdiffutils_a_SOURCES += sigprocmask.c
+endif
+
+## end   gnulib module sigprocmask
+
 ## begin gnulib module sigsegv
 
 BUILT_SOURCES += $(SIGSEGV_H)
 
 if GL_GENERATE_SIGSEGV_H
 sigsegv.h: sigsegv.in.h $(top_builddir)/config.status
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         cat $(srcdir)/sigsegv.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+       $(gl_V_at)$(SED_HEADER_TO_AT_t) $(srcdir)/sigsegv.in.h
+       $(AM_V_at)mv $@-t $@
 else
 sigsegv.h: $(top_builddir)/config.status
        rm -f $@
@@ -1581,12 +1638,6 @@ EXTRA_DIST += sigsegv.in.h stackvma.h
 
 ## end   gnulib module sigsegv
 
-## begin gnulib module size_max
-
-libdiffutils_a_SOURCES += size_max.h
-
-## end   gnulib module size_max
-
 ## begin gnulib module snippet/_Noreturn
 
 # Because this Makefile snippet defines a variable used by other
@@ -1637,10 +1688,13 @@ EXTRA_DIST += warn-on-use.h
 
 ## begin gnulib module stat
 
+if GL_COND_OBJ_STAT
+libdiffutils_a_SOURCES += stat.c
+endif
 
-EXTRA_DIST += stat-w32.c stat-w32.h stat.c
+EXTRA_DIST += stat-w32.c stat-w32.h
 
-EXTRA_libdiffutils_a_SOURCES += stat-w32.c stat.c
+EXTRA_libdiffutils_a_SOURCES += stat-w32.c
 
 ## end   gnulib module stat
 
@@ -1659,29 +1713,6 @@ EXTRA_DIST += stat-time.h
 
 ## end   gnulib module stat-time
 
-## begin gnulib module stdalign
-
-BUILT_SOURCES += $(STDALIGN_H)
-
-# We need the following in order to create <stdalign.h> when the system
-# doesn't have one that works.
-if GL_GENERATE_STDALIGN_H
-stdalign.h: stdalign.in.h $(top_builddir)/config.status
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         cat $(srcdir)/stdalign.in.h; \
-       } > $@-t && \
-       mv $@-t $@
-else
-stdalign.h: $(top_builddir)/config.status
-       rm -f $@
-endif
-MOSTLYCLEANFILES += stdalign.h stdalign.h-t
-
-EXTRA_DIST += stdalign.in.h
-
-## end   gnulib module stdalign
-
 ## begin gnulib module stdarg
 
 BUILT_SOURCES += $(STDARG_H)
@@ -1690,16 +1721,14 @@ BUILT_SOURCES += $(STDARG_H)
 # doesn't have one that works with the given compiler.
 if GL_GENERATE_STDARG_H
 stdarg.h: stdarg.in.h $(top_builddir)/config.status
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
              -e 's|@''NEXT_STDARG_H''@|$(NEXT_STDARG_H)|g' \
-             < $(srcdir)/stdarg.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/stdarg.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 else
 stdarg.h: $(top_builddir)/config.status
        rm -f $@
@@ -1710,28 +1739,26 @@ EXTRA_DIST += stdarg.in.h
 
 ## end   gnulib module stdarg
 
-## begin gnulib module stdbool
+## begin gnulib module stdckdint
 
-BUILT_SOURCES += $(STDBOOL_H)
+BUILT_SOURCES += $(STDCKDINT_H)
 
-# We need the following in order to create <stdbool.h> when the system
-# doesn't have one that works.
-if GL_GENERATE_STDBOOL_H
-stdbool.h: stdbool.in.h $(top_builddir)/config.status
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+# We need the following in order to create <stdckdint.h> when the system
+# doesn't have one that works with the given compiler.
+if GL_GENERATE_STDCKDINT_H
+stdckdint.h: stdckdint.in.h $(top_builddir)/config.status
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+         $(srcdir)/stdckdint.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 else
-stdbool.h: $(top_builddir)/config.status
+stdckdint.h: $(top_builddir)/config.status
        rm -f $@
 endif
-MOSTLYCLEANFILES += stdbool.h stdbool.h-t
+MOSTLYCLEANFILES += stdckdint.h stdckdint.h-t
 
-EXTRA_DIST += stdbool.in.h
+EXTRA_DIST += intprops-internal.h stdckdint.in.h
 
-## end   gnulib module stdbool
+## end   gnulib module stdckdint
 
 ## begin gnulib module stddef
 
@@ -1741,9 +1768,8 @@ BUILT_SOURCES += $(STDDEF_H)
 # doesn't have one that works with the given compiler.
 if GL_GENERATE_STDDEF_H
 stddef.h: stddef.in.h $(top_builddir)/config.status
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
@@ -1751,9 +1777,8 @@ stddef.h: stddef.in.h $(top_builddir)/config.status
              -e 's|@''HAVE_MAX_ALIGN_T''@|$(HAVE_MAX_ALIGN_T)|g' \
              -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \
              -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \
-             < $(srcdir)/stddef.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/stddef.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 else
 stddef.h: $(top_builddir)/config.status
        rm -f $@
@@ -1772,9 +1797,8 @@ BUILT_SOURCES += $(STDINT_H)
 # doesn't have one that works with the given compiler.
 if GL_GENERATE_STDINT_H
 stdint.h: stdint.in.h $(top_builddir)/config.status
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
@@ -1801,9 +1825,8 @@ stdint.h: stdint.in.h $(top_builddir)/config.status
              -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \
              -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \
              -e 's/@''GNULIBHEADERS_OVERRIDE_WINT_T''@/$(GNULIBHEADERS_OVERRIDE_WINT_T)/g' \
-             < $(srcdir)/stdint.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/stdint.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 else
 stdint.h: $(top_builddir)/config.status
        rm -f $@
@@ -1821,9 +1844,8 @@ BUILT_SOURCES += stdio.h
 # We need the following in order to create <stdio.h> when the system
 # doesn't have one that works with the given compiler.
 stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
@@ -1835,6 +1857,7 @@ stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H)
              -e 's/@''GNULIB_FGETC''@/$(GL_GNULIB_FGETC)/g' \
              -e 's/@''GNULIB_FGETS''@/$(GL_GNULIB_FGETS)/g' \
              -e 's/@''GNULIB_FOPEN''@/$(GL_GNULIB_FOPEN)/g' \
+             -e 's/@''GNULIB_FOPEN_GNU''@/$(GL_GNULIB_FOPEN_GNU)/g' \
              -e 's/@''GNULIB_FPRINTF''@/$(GL_GNULIB_FPRINTF)/g' \
              -e 's/@''GNULIB_FPRINTF_POSIX''@/$(GL_GNULIB_FPRINTF_POSIX)/g' \
              -e 's/@''GNULIB_FPURGE''@/$(GL_GNULIB_FPURGE)/g' \
@@ -1894,7 +1917,9 @@ stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H)
              -e 's|@''HAVE_DECL_FTELLO''@|$(HAVE_DECL_FTELLO)|g' \
              -e 's|@''HAVE_DECL_GETDELIM''@|$(HAVE_DECL_GETDELIM)|g' \
              -e 's|@''HAVE_DECL_GETLINE''@|$(HAVE_DECL_GETLINE)|g' \
+             -e 's|@''HAVE_DECL_GETW''@|$(HAVE_DECL_GETW)|g' \
              -e 's|@''HAVE_DECL_OBSTACK_PRINTF''@|$(HAVE_DECL_OBSTACK_PRINTF)|g' \
+             -e 's|@''HAVE_DECL_PUTW''@|$(HAVE_DECL_PUTW)|g' \
              -e 's|@''HAVE_DECL_SNPRINTF''@|$(HAVE_DECL_SNPRINTF)|g' \
              -e 's|@''HAVE_DECL_VSNPRINTF''@|$(HAVE_DECL_VSNPRINTF)|g' \
              -e 's|@''HAVE_DPRINTF''@|$(HAVE_DPRINTF)|g' \
@@ -1910,6 +1935,7 @@ stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H)
              -e 's|@''REPLACE_FDOPEN''@|$(REPLACE_FDOPEN)|g' \
              -e 's|@''REPLACE_FFLUSH''@|$(REPLACE_FFLUSH)|g' \
              -e 's|@''REPLACE_FOPEN''@|$(REPLACE_FOPEN)|g' \
+             -e 's|@''REPLACE_FOPEN_FOR_FOPEN_GNU''@|$(REPLACE_FOPEN_FOR_FOPEN_GNU)|g' \
              -e 's|@''REPLACE_FPRINTF''@|$(REPLACE_FPRINTF)|g' \
              -e 's|@''REPLACE_FPURGE''@|$(REPLACE_FPURGE)|g' \
              -e 's|@''REPLACE_FREOPEN''@|$(REPLACE_FREOPEN)|g' \
@@ -1940,11 +1966,18 @@ stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H)
              -e 's|@''ASM_SYMBOL_PREFIX''@|$(ASM_SYMBOL_PREFIX)|g' \
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
-       } > $@-t && \
-       mv $@-t $@
+             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
+             > $@-t
+       $(AM_V_at)mv $@-t $@
 MOSTLYCLEANFILES += stdio.h stdio.h-t
 
+if GL_COND_OBJ_STDIO_READ
+libdiffutils_a_SOURCES += stdio-read.c
+endif
+if GL_COND_OBJ_STDIO_WRITE
+libdiffutils_a_SOURCES += stdio-write.c
+endif
+
 EXTRA_DIST += stdio.in.h
 
 ## end   gnulib module stdio
@@ -1957,9 +1990,8 @@ BUILT_SOURCES += stdlib.h
 # doesn't have one that works with the given compiler.
 stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
   $(_NORETURN_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
@@ -1967,13 +1999,17 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
              -e 's/@''GNULIB__EXIT''@/$(GL_GNULIB__EXIT)/g' \
              -e 's/@''GNULIB_ALIGNED_ALLOC''@/$(GL_GNULIB_ALIGNED_ALLOC)/g' \
              -e 's/@''GNULIB_ATOLL''@/$(GL_GNULIB_ATOLL)/g' \
+             -e 's/@''GNULIB_CALLOC_GNU''@/$(GL_GNULIB_CALLOC_GNU)/g' \
              -e 's/@''GNULIB_CALLOC_POSIX''@/$(GL_GNULIB_CALLOC_POSIX)/g' \
              -e 's/@''GNULIB_CANONICALIZE_FILE_NAME''@/$(GL_GNULIB_CANONICALIZE_FILE_NAME)/g' \
              -e 's/@''GNULIB_FREE_POSIX''@/$(GL_GNULIB_FREE_POSIX)/g' \
              -e 's/@''GNULIB_GETLOADAVG''@/$(GL_GNULIB_GETLOADAVG)/g' \
+             -e 's/@''GNULIB_GETPROGNAME''@/$(GL_GNULIB_GETPROGNAME)/g' \
              -e 's/@''GNULIB_GETSUBOPT''@/$(GL_GNULIB_GETSUBOPT)/g' \
              -e 's/@''GNULIB_GRANTPT''@/$(GL_GNULIB_GRANTPT)/g' \
+             -e 's/@''GNULIB_MALLOC_GNU''@/$(GL_GNULIB_MALLOC_GNU)/g' \
              -e 's/@''GNULIB_MALLOC_POSIX''@/$(GL_GNULIB_MALLOC_POSIX)/g' \
+             -e 's/@''GNULIB_MBSTOWCS''@/$(GL_GNULIB_MBSTOWCS)/g' \
              -e 's/@''GNULIB_MBTOWC''@/$(GL_GNULIB_MBTOWC)/g' \
              -e 's/@''GNULIB_MKDTEMP''@/$(GL_GNULIB_MKDTEMP)/g' \
              -e 's/@''GNULIB_MKOSTEMP''@/$(GL_GNULIB_MKOSTEMP)/g' \
@@ -1988,6 +2024,7 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
              -e 's/@''GNULIB_QSORT_R''@/$(GL_GNULIB_QSORT_R)/g' \
              -e 's/@''GNULIB_RANDOM''@/$(GL_GNULIB_RANDOM)/g' \
              -e 's/@''GNULIB_RANDOM_R''@/$(GL_GNULIB_RANDOM_R)/g' \
+             -e 's/@''GNULIB_REALLOC_GNU''@/$(GL_GNULIB_REALLOC_GNU)/g' \
              -e 's/@''GNULIB_REALLOC_POSIX''@/$(GL_GNULIB_REALLOC_POSIX)/g' \
              -e 's/@''GNULIB_REALLOCARRAY''@/$(GL_GNULIB_REALLOCARRAY)/g' \
              -e 's/@''GNULIB_REALPATH''@/$(GL_GNULIB_REALPATH)/g' \
@@ -2018,6 +2055,8 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
              -e 's|@''HAVE_DECL_FCVT''@|$(HAVE_DECL_FCVT)|g' \
              -e 's|@''HAVE_DECL_GCVT''@|$(HAVE_DECL_GCVT)|g' \
              -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \
+             -e 's|@''HAVE_DECL_PROGRAM_INVOCATION_NAME''@|$(HAVE_DECL_PROGRAM_INVOCATION_NAME)|g' \
+             -e 's|@''HAVE_GETPROGNAME''@|$(HAVE_GETPROGNAME)|g' \
              -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \
              -e 's|@''HAVE_GRANTPT''@|$(HAVE_GRANTPT)|g' \
              -e 's|@''HAVE_INITSTATE''@|$(HAVE_INITSTATE)|g' \
@@ -2053,22 +2092,34 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
              -e 's|@''HAVE_SYS_LOADAVG_H''@|$(HAVE_SYS_LOADAVG_H)|g' \
              -e 's|@''HAVE_UNLOCKPT''@|$(HAVE_UNLOCKPT)|g' \
              -e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \
+             -e 's|@''REPLACE__EXIT''@|$(REPLACE__EXIT)|g' \
              -e 's|@''REPLACE_ALIGNED_ALLOC''@|$(REPLACE_ALIGNED_ALLOC)|g' \
-             -e 's|@''REPLACE_CALLOC''@|$(REPLACE_CALLOC)|g' \
+             -e 's|@''REPLACE_CALLOC_FOR_CALLOC_GNU''@|$(REPLACE_CALLOC_FOR_CALLOC_GNU)|g' \
+             -e 's|@''REPLACE_CALLOC_FOR_CALLOC_POSIX''@|$(REPLACE_CALLOC_FOR_CALLOC_POSIX)|g' \
              -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \
              -e 's|@''REPLACE_FREE''@|$(REPLACE_FREE)|g' \
+             -e 's|@''REPLACE_GETLOADAVG''@|$(REPLACE_GETLOADAVG)|g' \
+             -e 's|@''REPLACE_GETPROGNAME''@|$(REPLACE_GETPROGNAME)|g' \
+             -e 's|@''REPLACE_GETSUBOPT''@|$(REPLACE_GETSUBOPT)|g' \
              -e 's|@''REPLACE_INITSTATE''@|$(REPLACE_INITSTATE)|g' \
-             -e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \
+             -e 's|@''REPLACE_MALLOC_FOR_MALLOC_GNU''@|$(REPLACE_MALLOC_FOR_MALLOC_GNU)|g' \
+             -e 's|@''REPLACE_MALLOC_FOR_MALLOC_POSIX''@|$(REPLACE_MALLOC_FOR_MALLOC_POSIX)|g' \
+             -e 's|@''REPLACE_MB_CUR_MAX''@|$(REPLACE_MB_CUR_MAX)|g' \
+             -e 's|@''REPLACE_MBSTOWCS''@|$(REPLACE_MBSTOWCS)|g' \
              -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \
+             -e 's|@''REPLACE_MKOSTEMP''@|$(REPLACE_MKOSTEMP)|g' \
+             -e 's|@''REPLACE_MKOSTEMPS''@|$(REPLACE_MKOSTEMPS)|g' \
              -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \
              -e 's|@''REPLACE_POSIX_MEMALIGN''@|$(REPLACE_POSIX_MEMALIGN)|g' \
+             -e 's|@''REPLACE_POSIX_OPENPT''@|$(REPLACE_POSIX_OPENPT)|g' \
              -e 's|@''REPLACE_PTSNAME''@|$(REPLACE_PTSNAME)|g' \
              -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \
              -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \
              -e 's|@''REPLACE_QSORT_R''@|$(REPLACE_QSORT_R)|g' \
              -e 's|@''REPLACE_RANDOM''@|$(REPLACE_RANDOM)|g' \
              -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \
-             -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \
+             -e 's|@''REPLACE_REALLOC_FOR_REALLOC_GNU''@|$(REPLACE_REALLOC_FOR_REALLOC_GNU)|g' \
+             -e 's|@''REPLACE_REALLOC_FOR_REALLOC_POSIX''@|$(REPLACE_REALLOC_FOR_REALLOC_POSIX)|g' \
              -e 's|@''REPLACE_REALLOCARRAY''@|$(REPLACE_REALLOCARRAY)|g' \
              -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \
              -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \
@@ -2084,9 +2135,9 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _Noreturn/r $(_NORETURN_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
-       } > $@-t && \
-       mv $@-t $@
+             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
+             > $@-t
+       $(AM_V_at)mv $@-t $@
 MOSTLYCLEANFILES += stdlib.h stdlib.h-t
 
 EXTRA_DIST += stdlib.in.h
@@ -2101,12 +2152,22 @@ EXTRA_DIST += stdopen.h
 
 ## end   gnulib module stdopen
 
-## begin gnulib module strcase
+## begin gnulib module stpcpy
+
+if GL_COND_OBJ_STPCPY
+libdiffutils_a_SOURCES += stpcpy.c
+endif
 
+## end   gnulib module stpcpy
 
-EXTRA_DIST += strcasecmp.c strncasecmp.c
+## begin gnulib module strcase
 
-EXTRA_libdiffutils_a_SOURCES += strcasecmp.c strncasecmp.c
+if GL_COND_OBJ_STRCASECMP
+libdiffutils_a_SOURCES += strcasecmp.c
+endif
+if GL_COND_OBJ_STRNCASECMP
+libdiffutils_a_SOURCES += strncasecmp.c
+endif
 
 ## end   gnulib module strcase
 
@@ -2119,19 +2180,19 @@ EXTRA_DIST += streq.h
 
 ## begin gnulib module strerror
 
-
-EXTRA_DIST += strerror.c
-
-EXTRA_libdiffutils_a_SOURCES += strerror.c
+if GL_COND_OBJ_STRERROR
+libdiffutils_a_SOURCES += strerror.c
+endif
 
 ## end   gnulib module strerror
 
 ## begin gnulib module strerror-override
 
+if GL_COND_OBJ_STRERROR_OVERRIDE
+libdiffutils_a_SOURCES += strerror-override.c
+endif
 
-EXTRA_DIST += strerror-override.c strerror-override.h
-
-EXTRA_libdiffutils_a_SOURCES += strerror-override.c
+EXTRA_DIST += strerror-override.h
 
 ## end   gnulib module strerror-override
 
@@ -2150,9 +2211,8 @@ BUILT_SOURCES += string.h
 # We need the following in order to create <string.h> when the system
 # doesn't have one that works with the given compiler.
 string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
@@ -2178,6 +2238,7 @@ string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
              -e 's/@''GNULIB_MEMMEM''@/$(GL_GNULIB_MEMMEM)/g' \
              -e 's/@''GNULIB_MEMPCPY''@/$(GL_GNULIB_MEMPCPY)/g' \
              -e 's/@''GNULIB_MEMRCHR''@/$(GL_GNULIB_MEMRCHR)/g' \
+             -e 's/@''GNULIB_MEMSET_EXPLICIT''@/$(GL_GNULIB_MEMSET_EXPLICIT)/g' \
              -e 's/@''GNULIB_RAWMEMCHR''@/$(GL_GNULIB_RAWMEMCHR)/g' \
              -e 's/@''GNULIB_STPCPY''@/$(GL_GNULIB_STPCPY)/g' \
              -e 's/@''GNULIB_STPNCPY''@/$(GL_GNULIB_STPNCPY)/g' \
@@ -2200,6 +2261,7 @@ string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
              -e 's/@''GNULIB_STRVERSCMP''@/$(GL_GNULIB_STRVERSCMP)/g' \
              -e 's/@''GNULIB_MDA_MEMCCPY''@/$(GL_GNULIB_MDA_MEMCCPY)/g' \
              -e 's/@''GNULIB_MDA_STRDUP''@/$(GL_GNULIB_MDA_STRDUP)/g' \
+             -e 's/@''GNULIB_FREE_POSIX''@/$(GL_GNULIB_FREE_POSIX)/g' \
              < $(srcdir)/string.in.h | \
          sed -e 's|@''HAVE_EXPLICIT_BZERO''@|$(HAVE_EXPLICIT_BZERO)|g' \
              -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \
@@ -2208,6 +2270,7 @@ string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
              -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \
              -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \
              -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \
+             -e 's|@''HAVE_MEMSET_EXPLICIT''@|$(HAVE_MEMSET_EXPLICIT)|g' \
              -e 's|@''HAVE_RAWMEMCHR''@|$(HAVE_RAWMEMCHR)|g' \
              -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \
              -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \
@@ -2228,6 +2291,9 @@ string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
              -e 's|@''REPLACE_FFSLL''@|$(REPLACE_FFSLL)|g' \
              -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \
              -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \
+             -e 's|@''REPLACE_MEMPCPY''@|$(REPLACE_MEMPCPY)|g' \
+             -e 's|@''REPLACE_FREE''@|$(REPLACE_FREE)|g' \
+             -e 's|@''REPLACE_STPCPY''@|$(REPLACE_STPCPY)|g' \
              -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \
              -e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \
              -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \
@@ -2244,10 +2310,9 @@ string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
              -e 's|@''UNDEFINE_STRTOK_R''@|$(UNDEFINE_STRTOK_R)|g' \
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
-             < $(srcdir)/string.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
+             > $@-t
+       $(AM_V_at)mv $@-t $@
 MOSTLYCLEANFILES += string.h string.h-t
 
 EXTRA_DIST += string.in.h
@@ -2261,9 +2326,8 @@ BUILT_SOURCES += strings.h
 # We need the following in order to create <strings.h> when the system
 # doesn't have one that works with the given compiler.
 strings.h: strings.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''HAVE_STRINGS_H''@|$(HAVE_STRINGS_H)|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
@@ -2276,9 +2340,8 @@ strings.h: strings.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/strings.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/strings.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 MOSTLYCLEANFILES += strings.h strings.h-t
 
 EXTRA_DIST += strings.in.h
@@ -2287,10 +2350,9 @@ EXTRA_DIST += strings.in.h
 
 ## begin gnulib module strnlen
 
-
-EXTRA_DIST += strnlen.c
-
-EXTRA_libdiffutils_a_SOURCES += strnlen.c
+if GL_COND_OBJ_STRNLEN
+libdiffutils_a_SOURCES += strnlen.c
+endif
 
 ## end   gnulib module strnlen
 
@@ -2302,28 +2364,29 @@ libdiffutils_a_SOURCES += strnlen1.h strnlen1.c
 
 ## begin gnulib module strptime
 
-
-EXTRA_DIST += strptime.c
-
-EXTRA_libdiffutils_a_SOURCES += strptime.c
+if GL_COND_OBJ_STRPTIME
+libdiffutils_a_SOURCES += strptime.c
+endif
 
 ## end   gnulib module strptime
 
 ## begin gnulib module strtoimax
 
-
-EXTRA_DIST += strtoimax.c
-
-EXTRA_libdiffutils_a_SOURCES += strtoimax.c
+if GL_COND_OBJ_STRTOIMAX
+libdiffutils_a_SOURCES += strtoimax.c
+endif
 
 ## end   gnulib module strtoimax
 
 ## begin gnulib module strtoll
 
+if GL_COND_OBJ_STRTOLL
+libdiffutils_a_SOURCES += strtoll.c
+endif
 
-EXTRA_DIST += strtol.c strtoll.c
+EXTRA_DIST += strtol.c
 
-EXTRA_libdiffutils_a_SOURCES += strtol.c strtoll.c
+EXTRA_libdiffutils_a_SOURCES += strtol.c
 
 ## end   gnulib module strtoll
 
@@ -2334,10 +2397,9 @@ BUILT_SOURCES += sys/random.h
 # We need the following in order to create <sys/random.h> when the system
 # doesn't have one.
 sys/random.h: sys_random.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_at)$(MKDIR_P) sys
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(AM_V_GEN)$(MKDIR_P) '%reldir%/sys'
+       $(AM_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
@@ -2349,9 +2411,8 @@ sys/random.h: sys_random.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_N
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/sys_random.in.h; \
-       } > $@-t && \
-       mv -f $@-t $@
+             $(srcdir)/sys_random.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 MOSTLYCLEANFILES += sys/random.h sys/random.h-t
 MOSTLYCLEANDIRS += sys
 
@@ -2366,16 +2427,16 @@ BUILT_SOURCES += sys/stat.h
 # We need the following in order to create <sys/stat.h> when the system
 # has one that is incomplete.
 sys/stat.h: sys_stat.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_at)$(MKDIR_P) sys
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(AM_V_GEN)$(MKDIR_P) '%reldir%/sys'
+       $(AM_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
              -e 's|@''NEXT_SYS_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \
              -e 's|@''WINDOWS_64_BIT_ST_SIZE''@|$(WINDOWS_64_BIT_ST_SIZE)|g' \
              -e 's|@''WINDOWS_STAT_TIMESPEC''@|$(WINDOWS_STAT_TIMESPEC)|g' \
+             -e 's/@''GNULIB_CHMOD''@/$(GL_GNULIB_CHMOD)/g' \
              -e 's/@''GNULIB_FCHMODAT''@/$(GL_GNULIB_FCHMODAT)/g' \
              -e 's/@''GNULIB_FSTAT''@/$(GL_GNULIB_FSTAT)/g' \
              -e 's/@''GNULIB_FSTATAT''@/$(GL_GNULIB_FSTATAT)/g' \
@@ -2407,6 +2468,7 @@ sys/stat.h: sys_stat.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNU
              -e 's|@''HAVE_MKNOD''@|$(HAVE_MKNOD)|g' \
              -e 's|@''HAVE_MKNODAT''@|$(HAVE_MKNODAT)|g' \
              -e 's|@''HAVE_UTIMENSAT''@|$(HAVE_UTIMENSAT)|g' \
+             -e 's|@''REPLACE_CHMOD''@|$(REPLACE_CHMOD)|g' \
              -e 's|@''REPLACE_FCHMODAT''@|$(REPLACE_FCHMODAT)|g' \
              -e 's|@''REPLACE_FSTAT''@|$(REPLACE_FSTAT)|g' \
              -e 's|@''REPLACE_FSTATAT''@|$(REPLACE_FSTATAT)|g' \
@@ -2422,9 +2484,8 @@ sys/stat.h: sys_stat.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNU
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/sys_stat.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/sys_stat.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 MOSTLYCLEANFILES += sys/stat.h sys/stat.h-t
 MOSTLYCLEANDIRS += sys
 
@@ -2439,10 +2500,9 @@ BUILT_SOURCES += sys/time.h
 # We need the following in order to create <sys/time.h> when the system
 # doesn't have one that works with the given compiler.
 sys/time.h: sys_time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_at)$(MKDIR_P) sys
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(AM_V_GEN)$(MKDIR_P) '%reldir%/sys'
+       $(AM_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's/@''HAVE_SYS_TIME_H''@/$(HAVE_SYS_TIME_H)/g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
@@ -2457,9 +2517,8 @@ sys/time.h: sys_time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNU
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/sys_time.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/sys_time.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 MOSTLYCLEANFILES += sys/time.h sys/time.h-t
 
 EXTRA_DIST += sys_time.in.h
@@ -2473,19 +2532,17 @@ BUILT_SOURCES += sys/types.h
 # We need the following in order to create <sys/types.h> when the system
 # doesn't have one that works with the given compiler.
 sys/types.h: sys_types.in.h $(top_builddir)/config.status
-       $(AM_V_at)$(MKDIR_P) sys
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(AM_V_GEN)$(MKDIR_P) '%reldir%/sys'
+       $(AM_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
              -e 's|@''NEXT_SYS_TYPES_H''@|$(NEXT_SYS_TYPES_H)|g' \
              -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \
              -e 's|@''WINDOWS_STAT_INODES''@|$(WINDOWS_STAT_INODES)|g' \
-             < $(srcdir)/sys_types.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/sys_types.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 MOSTLYCLEANFILES += sys/types.h sys/types.h-t
 
 EXTRA_DIST += sys_types.in.h
@@ -2499,10 +2556,9 @@ BUILT_SOURCES += sys/wait.h
 # We need the following in order to create <sys/wait.h> when the system
 # has one that is incomplete.
 sys/wait.h: sys_wait.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
-       $(AM_V_at)$(MKDIR_P) sys
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(AM_V_GEN)$(MKDIR_P) '%reldir%/sys'
+       $(AM_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
@@ -2510,9 +2566,8 @@ sys/wait.h: sys_wait.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_U
              -e 's/@''GNULIB_WAITPID''@/$(GL_GNULIB_WAITPID)/g' \
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/sys_wait.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/sys_wait.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 MOSTLYCLEANFILES += sys/wait.h sys/wait.h-t
 MOSTLYCLEANDIRS += sys
 
@@ -2540,16 +2595,15 @@ libdiffutils_a_SOURCES += glthread/threadlib.c
 
 ## end   gnulib module threadlib
 
-## begin gnulib module time
+## begin gnulib module time-h
 
 BUILT_SOURCES += time.h
 
 # We need the following in order to create <time.h> when the system
 # doesn't have one that works with the given compiler.
 time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
@@ -2560,8 +2614,10 @@ time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
              -e 's/@''GNULIB_NANOSLEEP''@/$(GL_GNULIB_NANOSLEEP)/g' \
              -e 's/@''GNULIB_STRFTIME''@/$(GL_GNULIB_STRFTIME)/g' \
              -e 's/@''GNULIB_STRPTIME''@/$(GL_GNULIB_STRPTIME)/g' \
+             -e 's/@''GNULIB_TIME''@/$(GL_GNULIB_TIME)/g' \
              -e 's/@''GNULIB_TIMEGM''@/$(GL_GNULIB_TIMEGM)/g' \
              -e 's/@''GNULIB_TIMESPEC_GET''@/$(GL_GNULIB_TIMESPEC_GET)/g' \
+             -e 's/@''GNULIB_TIMESPEC_GETRES''@/$(GL_GNULIB_TIMESPEC_GETRES)/g' \
              -e 's/@''GNULIB_TIME_R''@/$(GL_GNULIB_TIME_R)/g' \
              -e 's/@''GNULIB_TIME_RZ''@/$(GL_GNULIB_TIME_RZ)/g' \
              -e 's/@''GNULIB_TZSET''@/$(GL_GNULIB_TZSET)/g' \
@@ -2571,6 +2627,7 @@ time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
              -e 's|@''HAVE_STRPTIME''@|$(HAVE_STRPTIME)|g' \
              -e 's|@''HAVE_TIMEGM''@|$(HAVE_TIMEGM)|g' \
              -e 's|@''HAVE_TIMESPEC_GET''@|$(HAVE_TIMESPEC_GET)|g' \
+             -e 's|@''HAVE_TIMESPEC_GETRES''@|$(HAVE_TIMESPEC_GETRES)|g' \
              -e 's|@''HAVE_TIMEZONE_T''@|$(HAVE_TIMEZONE_T)|g' \
              -e 's|@''REPLACE_CTIME''@|$(REPLACE_CTIME)|g' \
              -e 's|@''REPLACE_GMTIME''@|$(REPLACE_GMTIME)|g' \
@@ -2579,7 +2636,9 @@ time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
              -e 's|@''REPLACE_MKTIME''@|$(REPLACE_MKTIME)|g' \
              -e 's|@''REPLACE_NANOSLEEP''@|$(REPLACE_NANOSLEEP)|g' \
              -e 's|@''REPLACE_STRFTIME''@|$(REPLACE_STRFTIME)|g' \
+             -e 's|@''REPLACE_TIME''@|$(REPLACE_TIME)|g' \
              -e 's|@''REPLACE_TIMEGM''@|$(REPLACE_TIMEGM)|g' \
+             -e 's|@''REPLACE_TIMESPEC_GET''@|$(REPLACE_TIMESPEC_GET)|g' \
              -e 's|@''REPLACE_TZSET''@|$(REPLACE_TZSET)|g' \
              -e 's|@''PTHREAD_H_DEFINES_STRUCT_TIMESPEC''@|$(PTHREAD_H_DEFINES_STRUCT_TIMESPEC)|g' \
              -e 's|@''SYS_TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(SYS_TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \
@@ -2589,39 +2648,39 @@ time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/time.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/time.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 MOSTLYCLEANFILES += time.h time.h-t
 
 EXTRA_DIST += time.in.h
 
-## end   gnulib module time
+## end   gnulib module time-h
 
 ## begin gnulib module time_r
 
-
-EXTRA_DIST += time_r.c
-
-EXTRA_libdiffutils_a_SOURCES += time_r.c
+if GL_COND_OBJ_TIME_R
+libdiffutils_a_SOURCES += time_r.c
+endif
 
 ## end   gnulib module time_r
 
 ## begin gnulib module time_rz
 
+if GL_COND_OBJ_TIME_RZ
+libdiffutils_a_SOURCES += time_rz.c
+endif
 
-EXTRA_DIST += time-internal.h time_rz.c
-
-EXTRA_libdiffutils_a_SOURCES += time_rz.c
+EXTRA_DIST += time-internal.h
 
 ## end   gnulib module time_rz
 
 ## begin gnulib module timegm
 
+if GL_COND_OBJ_TIMEGM
+libdiffutils_a_SOURCES += timegm.c
+endif
 
-EXTRA_DIST += mktime-internal.h timegm.c
-
-EXTRA_libdiffutils_a_SOURCES += timegm.c
+EXTRA_DIST += mktime-internal.h
 
 ## end   gnulib module timegm
 
@@ -2643,10 +2702,9 @@ EXTRA_DIST += trim.h
 
 ## begin gnulib module tzset
 
-
-EXTRA_DIST += tzset.c
-
-EXTRA_libdiffutils_a_SOURCES += tzset.c
+if GL_COND_OBJ_TZSET
+libdiffutils_a_SOURCES += tzset.c
+endif
 
 ## end   gnulib module tzset
 
@@ -2658,9 +2716,8 @@ libdiffutils_a_SOURCES += unistd.c
 # We need the following in order to create an empty placeholder for
 # <unistd.h> when the system doesn't have one.
 unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
@@ -2701,6 +2758,7 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
              -e 's/@''GNULIB_GETOPT_POSIX''@/$(GL_GNULIB_GETOPT_POSIX)/g' \
              -e 's/@''GNULIB_GETPAGESIZE''@/$(GL_GNULIB_GETPAGESIZE)/g' \
              -e 's/@''GNULIB_GETPASS''@/$(GL_GNULIB_GETPASS)/g' \
+             -e 's/@''GNULIB_GETPASS_GNU''@/$(GL_GNULIB_GETPASS_GNU)/g' \
              -e 's/@''GNULIB_GETUSERSHELL''@/$(GL_GNULIB_GETUSERSHELL)/g' \
              -e 's/@''GNULIB_GROUP_MEMBER''@/$(GL_GNULIB_GROUP_MEMBER)/g' \
              -e 's/@''GNULIB_ISATTY''@/$(GL_GNULIB_ISATTY)/g' \
@@ -2802,8 +2860,10 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
          sed -e 's|@''REPLACE_ACCESS''@|$(REPLACE_ACCESS)|g' \
              -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \
              -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \
+             -e 's|@''REPLACE_COPY_FILE_RANGE''@|$(REPLACE_COPY_FILE_RANGE)|g' \
              -e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \
              -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \
+             -e 's|@''REPLACE_DUP3''@|$(REPLACE_DUP3)|g' \
              -e 's|@''REPLACE_EXECL''@|$(REPLACE_EXECL)|g' \
              -e 's|@''REPLACE_EXECLE''@|$(REPLACE_EXECLE)|g' \
              -e 's|@''REPLACE_EXECLP''@|$(REPLACE_EXECLP)|g' \
@@ -2813,25 +2873,30 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
              -e 's|@''REPLACE_EXECVPE''@|$(REPLACE_EXECVPE)|g' \
              -e 's|@''REPLACE_FACCESSAT''@|$(REPLACE_FACCESSAT)|g' \
              -e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \
+             -e 's|@''REPLACE_FDATASYNC''@|$(REPLACE_FDATASYNC)|g' \
              -e 's|@''REPLACE_FTRUNCATE''@|$(REPLACE_FTRUNCATE)|g' \
              -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \
              -e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|g' \
              -e 's|@''REPLACE_GETDTABLESIZE''@|$(REPLACE_GETDTABLESIZE)|g' \
+             -e 's|@''REPLACE_GETENTROPY''@|$(REPLACE_GETENTROPY)|g' \
              -e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \
              -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \
              -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \
              -e 's|@''REPLACE_GETPASS''@|$(REPLACE_GETPASS)|g' \
+             -e 's|@''REPLACE_GETPASS_FOR_GETPASS_GNU''@|$(REPLACE_GETPASS_FOR_GETPASS_GNU)|g' \
              -e 's|@''REPLACE_ISATTY''@|$(REPLACE_ISATTY)|g' \
              -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \
              -e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \
              -e 's|@''REPLACE_LINKAT''@|$(REPLACE_LINKAT)|g' \
              -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \
+             -e 's|@''REPLACE_PIPE2''@|$(REPLACE_PIPE2)|g' \
              -e 's|@''REPLACE_PREAD''@|$(REPLACE_PREAD)|g' \
              -e 's|@''REPLACE_PWRITE''@|$(REPLACE_PWRITE)|g' \
              -e 's|@''REPLACE_READ''@|$(REPLACE_READ)|g' \
              -e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \
              -e 's|@''REPLACE_READLINKAT''@|$(REPLACE_READLINKAT)|g' \
              -e 's|@''REPLACE_RMDIR''@|$(REPLACE_RMDIR)|g' \
+             -e 's|@''REPLACE_SETHOSTNAME''@|$(REPLACE_SETHOSTNAME)|g' \
              -e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \
              -e 's|@''REPLACE_SYMLINK''@|$(REPLACE_SYMLINK)|g' \
              -e 's|@''REPLACE_SYMLINKAT''@|$(REPLACE_SYMLINKAT)|g' \
@@ -2846,9 +2911,9 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
              -e 's|@''UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
-       } > $@-t && \
-       mv $@-t $@
+             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
+             > $@-t
+       $(AM_V_at)mv $@-t $@
 MOSTLYCLEANFILES += unistd.h unistd.h-t
 
 EXTRA_DIST += unistd.in.h
@@ -2860,11 +2925,8 @@ EXTRA_DIST += unistd.in.h
 BUILT_SOURCES += $(LIBUNISTRING_UNISTR_H)
 
 unistr.h: unistr.in.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         cat $(srcdir)/unistr.in.h; \
-       } > $@-t && \
-       mv -f $@-t $@
+       $(gl_V_at)$(SED_HEADER_TO_AT_t) $(srcdir)/unistr.in.h
+       $(AM_V_at)mv $@-t $@
 MOSTLYCLEANFILES += unistr.h unistr.h-t
 
 EXTRA_DIST += unistr.in.h
@@ -2892,11 +2954,8 @@ endif
 BUILT_SOURCES += $(LIBUNISTRING_UNITYPES_H)
 
 unitypes.h: unitypes.in.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         cat $(srcdir)/unitypes.in.h; \
-       } > $@-t && \
-       mv -f $@-t $@
+       $(gl_V_at)$(SED_HEADER_TO_AT_t) $(srcdir)/unitypes.in.h
+       $(AM_V_at)mv $@-t $@
 MOSTLYCLEANFILES += unitypes.h unitypes.h-t
 
 EXTRA_DIST += unitypes.in.h
@@ -2908,11 +2967,8 @@ EXTRA_DIST += unitypes.in.h
 BUILT_SOURCES += $(LIBUNISTRING_UNIWIDTH_H)
 
 uniwidth.h: uniwidth.in.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         cat $(srcdir)/uniwidth.in.h; \
-       } > $@-t && \
-       mv -f $@-t $@
+       $(gl_V_at)$(SED_HEADER_TO_AT_t) $(srcdir)/uniwidth.in.h
+       $(AM_V_at)mv $@-t $@
 MOSTLYCLEANFILES += uniwidth.h uniwidth.h-t
 
 EXTRA_DIST += localcharset.h uniwidth.in.h
@@ -2925,7 +2981,7 @@ if LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH
 libdiffutils_a_SOURCES += uniwidth/width.c
 endif
 
-EXTRA_DIST += uniwidth/cjk.h
+EXTRA_DIST += unictype/bitmap.h uniwidth/cjk.h uniwidth/width0.h uniwidth/width2.h
 
 ## end   gnulib module uniwidth/width
 
@@ -2938,10 +2994,9 @@ EXTRA_DIST += unlocked-io.h
 
 ## begin gnulib module unsetenv
 
-
-EXTRA_DIST += unsetenv.c
-
-EXTRA_libdiffutils_a_SOURCES += unsetenv.c
+if GL_COND_OBJ_UNSETENV
+libdiffutils_a_SOURCES += unsetenv.c
+endif
 
 ## end   gnulib module unsetenv
 
@@ -2959,24 +3014,6 @@ EXTRA_DIST += $(top_srcdir)/build-aux/useless-if-before-free
 
 ## end   gnulib module useless-if-before-free
 
-## begin gnulib module vasnprintf
-
-
-EXTRA_DIST += asnprintf.c float+.h printf-args.c printf-args.h printf-parse.c printf-parse.h vasnprintf.c vasnprintf.h
-
-EXTRA_libdiffutils_a_SOURCES += asnprintf.c printf-args.c printf-parse.c vasnprintf.c
-
-## end   gnulib module vasnprintf
-
-## begin gnulib module vasprintf
-
-
-EXTRA_DIST += asprintf.c vasprintf.c
-
-EXTRA_libdiffutils_a_SOURCES += asprintf.c vasprintf.c
-
-## end   gnulib module vasprintf
-
 ## begin gnulib module vc-list-files
 
 
@@ -3010,9 +3047,8 @@ BUILT_SOURCES += wchar.h
 # We need the following in order to create <wchar.h> when the system
 # version does not work standalone.
 wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
@@ -3063,6 +3099,7 @@ wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H)
              -e 's/@''GNULIB_WCSWIDTH''@/$(GL_GNULIB_WCSWIDTH)/g' \
              -e 's/@''GNULIB_WCSFTIME''@/$(GL_GNULIB_WCSFTIME)/g' \
              -e 's/@''GNULIB_MDA_WCSDUP''@/$(GL_GNULIB_MDA_WCSDUP)/g' \
+             -e 's/@''GNULIB_FREE_POSIX''@/$(GL_GNULIB_FREE_POSIX)/g' \
              < $(srcdir)/wchar.in.h | \
          sed -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \
              -e 's|@''HAVE_BTOWC''@|$(HAVE_BTOWC)|g' \
@@ -3111,6 +3148,7 @@ wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H)
          sed -e 's|@''REPLACE_MBSTATE_T''@|$(REPLACE_MBSTATE_T)|g' \
              -e 's|@''REPLACE_BTOWC''@|$(REPLACE_BTOWC)|g' \
              -e 's|@''REPLACE_WCTOB''@|$(REPLACE_WCTOB)|g' \
+             -e 's|@''REPLACE_FREE''@|$(REPLACE_FREE)|g' \
              -e 's|@''REPLACE_MBSINIT''@|$(REPLACE_MBSINIT)|g' \
              -e 's|@''REPLACE_MBRTOWC''@|$(REPLACE_MBRTOWC)|g' \
              -e 's|@''REPLACE_MBRLEN''@|$(REPLACE_MBRLEN)|g' \
@@ -3122,12 +3160,17 @@ wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H)
              -e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \
              -e 's|@''REPLACE_WCSWIDTH''@|$(REPLACE_WCSWIDTH)|g' \
              -e 's|@''REPLACE_WCSFTIME''@|$(REPLACE_WCSFTIME)|g' \
+             -e 's|@''REPLACE_WCSCMP''@|$(REPLACE_WCSCMP)|g' \
+             -e 's|@''REPLACE_WCSNCMP''@|$(REPLACE_WCSNCMP)|g' \
+             -e 's|@''REPLACE_WCSSTR''@|$(REPLACE_WCSSTR)|g' \
              -e 's|@''REPLACE_WCSTOK''@|$(REPLACE_WCSTOK)|g' \
+             -e 's|@''REPLACE_WMEMCMP''@|$(REPLACE_WMEMCMP)|g' \
+             -e 's|@''REPLACE_WMEMPCPY''@|$(REPLACE_WMEMPCPY)|g' \
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
-       } > $@-t && \
-       mv $@-t $@
+             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
+             > $@-t
+       $(AM_V_at)mv $@-t $@
 MOSTLYCLEANFILES += wchar.h wchar.h-t
 
 EXTRA_DIST += wchar.in.h
@@ -3136,10 +3179,9 @@ EXTRA_DIST += wchar.in.h
 
 ## begin gnulib module wcrtomb
 
-
-EXTRA_DIST += wcrtomb.c
-
-EXTRA_libdiffutils_a_SOURCES += wcrtomb.c
+if GL_COND_OBJ_WCRTOMB
+libdiffutils_a_SOURCES += wcrtomb.c
+endif
 
 ## end   gnulib module wcrtomb
 
@@ -3151,9 +3193,8 @@ libdiffutils_a_SOURCES += wctype-h.c
 # We need the following in order to create <wctype.h> when the system
 # doesn't have one that works with the given compiler.
 wctype.h: wctype.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+       $(gl_V_at)$(SED_HEADER_STDOUT) \
+             -e 's|@''GUARD_PREFIX''@|GL|g' \
              -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
@@ -3180,9 +3221,8 @@ wctype.h: wctype.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H
              -e 's/@''REPLACE_TOWLOWER''@/$(REPLACE_TOWLOWER)/g' \
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/wctype.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+             $(srcdir)/wctype.in.h > $@-t
+       $(AM_V_at)mv $@-t $@
 MOSTLYCLEANFILES += wctype.h wctype.h-t
 
 EXTRA_DIST += wctype.in.h
@@ -3191,64 +3231,67 @@ EXTRA_DIST += wctype.in.h
 
 ## begin gnulib module wcwidth
 
-
-EXTRA_DIST += wcwidth.c
-
-EXTRA_libdiffutils_a_SOURCES += wcwidth.c
+if GL_COND_OBJ_WCWIDTH
+libdiffutils_a_SOURCES += wcwidth.c
+endif
 
 ## end   gnulib module wcwidth
 
 ## begin gnulib module windows-mutex
 
+if GL_COND_OBJ_WINDOWS_MUTEX
+libdiffutils_a_SOURCES += windows-mutex.c
+endif
 
-EXTRA_DIST += windows-initguard.h windows-mutex.c windows-mutex.h
-
-EXTRA_libdiffutils_a_SOURCES += windows-mutex.c
+EXTRA_DIST += windows-initguard.h windows-mutex.h
 
 ## end   gnulib module windows-mutex
 
 ## begin gnulib module windows-once
 
+if GL_COND_OBJ_WINDOWS_ONCE
+libdiffutils_a_SOURCES += windows-once.c
+endif
 
-EXTRA_DIST += windows-once.c windows-once.h
-
-EXTRA_libdiffutils_a_SOURCES += windows-once.c
+EXTRA_DIST += windows-once.h
 
 ## end   gnulib module windows-once
 
 ## begin gnulib module windows-recmutex
 
+if GL_COND_OBJ_WINDOWS_RECMUTEX
+libdiffutils_a_SOURCES += windows-recmutex.c
+endif
 
-EXTRA_DIST += windows-initguard.h windows-recmutex.c windows-recmutex.h
-
-EXTRA_libdiffutils_a_SOURCES += windows-recmutex.c
+EXTRA_DIST += windows-initguard.h windows-recmutex.h
 
 ## end   gnulib module windows-recmutex
 
 ## begin gnulib module windows-rwlock
 
+if GL_COND_OBJ_WINDOWS_RWLOCK
+libdiffutils_a_SOURCES += windows-rwlock.c
+endif
 
-EXTRA_DIST += windows-initguard.h windows-rwlock.c windows-rwlock.h
-
-EXTRA_libdiffutils_a_SOURCES += windows-rwlock.c
+EXTRA_DIST += windows-initguard.h windows-rwlock.h
 
 ## end   gnulib module windows-rwlock
 
 ## begin gnulib module wmemchr
 
+if GL_COND_OBJ_WMEMCHR
+libdiffutils_a_SOURCES += wmemchr.c
+endif
 
-EXTRA_DIST += wmemchr-impl.h wmemchr.c
-
-EXTRA_libdiffutils_a_SOURCES += wmemchr.c
+EXTRA_DIST += wmemchr-impl.h
 
 ## end   gnulib module wmemchr
 
 ## begin gnulib module wmempcpy
 
-
-EXTRA_DIST += wmempcpy.c
-
-EXTRA_libdiffutils_a_SOURCES += wmempcpy.c
+if GL_COND_OBJ_WMEMPCPY
+libdiffutils_a_SOURCES += wmempcpy.c
+endif
 
 ## end   gnulib module wmempcpy
 
@@ -3297,12 +3340,6 @@ EXTRA_DIST += xreadlink.h
 
 ## end   gnulib module xreadlink
 
-## begin gnulib module xsize
-
-libdiffutils_a_SOURCES += xsize.h xsize.c
-
-## end   gnulib module xsize
-
 ## begin gnulib module xstdopen
 
 libdiffutils_a_SOURCES += xstdopen.c
@@ -3331,14 +3368,6 @@ EXTRA_DIST += xstrtol.h
 
 ## end   gnulib module xstrtol
 
-## begin gnulib module xvasprintf
-
-libdiffutils_a_SOURCES += xvasprintf.h xvasprintf.c xasprintf.c
-
-EXTRA_DIST += xalloc.h
-
-## end   gnulib module xvasprintf
-
 
 mostlyclean-local: mostlyclean-generic
        @for dir in '' $(MOSTLYCLEANDIRS); do \
@@ -3347,3 +3376,7 @@ mostlyclean-local: mostlyclean-generic
          fi; \
        done; \
        :
+distclean-local: distclean-gnulib-libobjs
+distclean-gnulib-libobjs:
+       -rm -f @gl_LIBOBJDEPS@
+maintainer-clean-local: distclean-gnulib-libobjs
index 8b6802d..c01fce5 100644 (file)
@@ -1,6 +1,6 @@
 /* hard-locale.c -- Determine whether a locale is hard.
 
-   Copyright (C) 1997-1999, 2002-2004, 2006-2007, 2009-2021 Free Software
+   Copyright (C) 1997-1999, 2002-2004, 2006-2007, 2009-2023 Free Software
    Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
@@ -21,6 +21,7 @@
 #include "hard-locale.h"
 
 #include <locale.h>
+#include <stdlib.h>
 #include <string.h>
 
 bool
@@ -31,5 +32,16 @@ hard_locale (int category)
   if (setlocale_null_r (category, locale, sizeof (locale)))
     return false;
 
-  return !(strcmp (locale, "C") == 0 || strcmp (locale, "POSIX") == 0);
+  if (!(strcmp (locale, "C") == 0 || strcmp (locale, "POSIX") == 0))
+    return true;
+
+#if defined __ANDROID__
+  /* On Android 5.0 or newer, it is possible to set a locale that has the same
+     name as the "C" locale but in fact uses UTF-8 encoding.  Cf. test case 2 in
+     <https://lists.gnu.org/archive/html/bug-gnulib/2023-01/msg00141.html>.  */
+  if (MB_CUR_MAX > 1)
+    return true;
+#endif
+
+  return false;
 }
index eba6601..5123d71 100644 (file)
@@ -1,6 +1,6 @@
 /* Determine whether a locale is hard.
 
-   Copyright (C) 1999, 2003-2004, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2003-2004, 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 #ifndef HARD_LOCALE_H_
 # define HARD_LOCALE_H_ 1
 
-# include <stdbool.h>
-
 /* Return true if the specified CATEGORY of the current locale is hard, i.e.
    different from the C or POSIX locale that has a fixed behavior.
-   CATEGORY must be one of the LC_* values, but not LC_ALL.  */
+   CATEGORY must be one of the LC_* values, but not LC_ALL.
+   Note: This function uses the current global locale; it ignores the
+   per-thread locale.  */
 extern bool hard_locale (int category);
 
 #endif /* HARD_LOCALE_H_ */
index 5f5f8fc..918aa0d 100644 (file)
@@ -1,6 +1,6 @@
 /* hash - hashing table processing.
 
-   Copyright (C) 1998-2004, 2006-2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 1998-2004, 2006-2007, 2009-2023 Free Software Foundation, Inc.
 
    Written by Jim Meyering, 1992.
 
index 230d5cd..be42e5a 100644 (file)
@@ -1,5 +1,5 @@
 /* hash - hashing table processing.
-   Copyright (C) 1998-1999, 2001, 2003, 2009-2021 Free Software Foundation,
+   Copyright (C) 1998-1999, 2001, 2003, 2009-2023 Free Software Foundation,
    Inc.
    Written by Jim Meyering <meyering@ascend.com>, 1998.
 
 #ifndef HASH_H_
 # define HASH_H_
 
+/* This file uses _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_DEPRECATED,
+   _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_NODISCARD, _GL_ATTRIBUTE_PURE,
+   _GL_ATTRIBUTE_RETURNS_NONNULL.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 # include <stdio.h>
-# include <stdbool.h>
 
 # ifdef __cplusplus
 extern "C" {
@@ -139,6 +145,12 @@ typedef size_t (*Hash_hasher) (const void *entry, size_t table_size);
 typedef bool (*Hash_comparator) (const void *entry1, const void *entry2);
 typedef void (*Hash_data_freer) (void *entry);
 
+/* Reclaim all storage associated with a hash table.  If a data_freer
+   function has been supplied by the user when the hash table was created,
+   this function applies it to the data of each entry before freeing that
+   entry.  */
+extern void hash_free (Hash_table *table);
+
 /* Allocate and return a new hash table, or NULL upon failure.  The initial
    number of buckets is automatically selected so as to _guarantee_ that you
    may insert at least CANDIDATE different user entries before any growth of
@@ -177,7 +189,8 @@ extern Hash_table *hash_initialize (size_t candidate,
                                     const Hash_tuning *tuning,
                                     Hash_hasher hasher,
                                     Hash_comparator comparator,
-                                    Hash_data_freer data_freer);
+                                    Hash_data_freer data_freer)
+  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC (hash_free, 1);
 
 /* Same as hash_initialize, but invokes xalloc_die on memory exhaustion.  */
 /* This function is defined by module 'xhash'.  */
@@ -186,19 +199,15 @@ extern Hash_table *hash_xinitialize (size_t candidate,
                                      const Hash_tuning *tuning,
                                      Hash_hasher hasher,
                                      Hash_comparator comparator,
-                                     Hash_data_freer data_freer);
+                                     Hash_data_freer data_freer)
+  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC (hash_free, 1)
+  _GL_ATTRIBUTE_RETURNS_NONNULL;
 
 /* Make all buckets empty, placing any chained entries on the free list.
    Apply the user-specified function data_freer (if any) to the datas of any
    affected entries.  */
 extern void hash_clear (Hash_table *table);
 
-/* Reclaim all storage associated with a hash table.  If a data_freer
-   function has been supplied by the user when the hash table was created,
-   this function applies it to the data of each entry before freeing that
-   entry.  */
-extern void hash_free (Hash_table *table);
-
 /*
  * Insertion and deletion.
  */
index f506b84..cd44d8c 100644 (file)
@@ -1,10 +1,10 @@
 /* malloc with idx_t rather than size_t
 
-   Copyright 2021 Free Software Foundation, Inc.
+   Copyright 2021-2023 Free Software Foundation, Inc.
 
    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 3 of the
+   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,
index ebe4aaa..22f57a4 100644 (file)
@@ -1,10 +1,10 @@
 /* ialloc.h -- malloc with idx_t rather than size_t
 
-   Copyright 2021 Free Software Foundation, Inc.
+   Copyright 2021-2023 Free Software Foundation, Inc.
 
    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 3 of the
+   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,
 #ifndef IALLOC_H_
 #define IALLOC_H_
 
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _GL_ATTRIBUTE_COLD,
+   _GL_ATTRIBUTE_MALLOC.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 #include "idx.h"
 
 #include <errno.h>
 #include <stdint.h>
 #include <stdlib.h>
 
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
 _GL_INLINE_HEADER_BEGIN
 #ifndef IALLOC_INLINE
 # define IALLOC_INLINE _GL_INLINE
@@ -43,13 +46,23 @@ _gl_alloc_nomem (void)
   return NULL;
 }
 
-IALLOC_INLINE void *
+/* imalloc (size) is like malloc (size).
+   It returns a non-NULL pointer to size bytes of memory.
+   Upon failure, it returns NULL with errno set.  */
+IALLOC_INLINE
+_GL_ATTRIBUTE_MALLOC /*_GL_ATTRIBUTE_DEALLOC_FREE*/
+void *
 imalloc (idx_t s)
 {
   return s <= SIZE_MAX ? malloc (s) : _gl_alloc_nomem ();
 }
 
-IALLOC_INLINE void *
+/* irealloc (ptr, size) is like realloc (ptr, size).
+   It returns a non-NULL pointer to size bytes of memory.
+   Upon failure, it returns NULL with errno set.  */
+IALLOC_INLINE
+/*_GL_ATTRIBUTE_DEALLOC_FREE*/
+void *
 irealloc (void *p, idx_t s)
 {
   /* Work around GNU realloc glitch by treating a zero size as if it
@@ -57,7 +70,12 @@ irealloc (void *p, idx_t s)
   return s <= SIZE_MAX ? realloc (p, s | !s) : _gl_alloc_nomem ();
 }
 
-IALLOC_INLINE void *
+/* icalloc (num, size) is like calloc (num, size).
+   It returns a non-NULL pointer to num * size bytes of memory.
+   Upon failure, it returns NULL with errno set.  */
+IALLOC_INLINE
+_GL_ATTRIBUTE_MALLOC /*_GL_ATTRIBUTE_DEALLOC_FREE*/
+void *
 icalloc (idx_t n, idx_t s)
 {
   if (SIZE_MAX < n)
@@ -75,6 +93,9 @@ icalloc (idx_t n, idx_t s)
   return calloc (n, s);
 }
 
+/* ireallocarray (ptr, num, size) is like reallocarray (ptr, num, size).
+   It returns a non-NULL pointer to num * size bytes of memory.
+   Upon failure, it returns NULL with errno set.  */
 IALLOC_INLINE void *
 ireallocarray (void *p, idx_t n, idx_t s)
 {
@@ -91,4 +112,6 @@ ireallocarray (void *p, idx_t n, idx_t s)
 }
 #endif
 
+_GL_INLINE_HEADER_END
+
 #endif
index bf51493..9f6f7a9 100644 (file)
@@ -1,5 +1,5 @@
 /* Character set conversion.
-   Copyright (C) 1999-2001, 2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 1999-2001, 2007, 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 3a2f94e..56de44c 100644 (file)
@@ -1,6 +1,6 @@
 /* A GNU-like <iconv.h>.
 
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 #ifndef _@GUARD_PREFIX@_ICONV_H
 #define _@GUARD_PREFIX@_ICONV_H
 
+/* This file uses GNULIB_POSIXCHECK, HAVE_RAW_DECL_*.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
 
 /* The definition of _GL_ARG_NONNULL is copied here.  */
index 7429b92..41ea96e 100644 (file)
@@ -1,5 +1,5 @@
 /* Character set conversion.
-   Copyright (C) 2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index d073759..c1625d1 100644 (file)
@@ -1,5 +1,5 @@
 /* Character set conversion.
-   Copyright (C) 2007, 2020-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2020-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index f4664d6..691995c 100644 (file)
@@ -1,5 +1,5 @@
 /* Character set conversion.
-   Copyright (C) 2007, 2020-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2020-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 9885d92..a6b84f9 100644 (file)
@@ -1,5 +1,5 @@
 /* Character set conversion.
-   Copyright (C) 2007, 2020-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2020-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index d818d79..9cffd48 100644 (file)
@@ -1,5 +1,5 @@
 /* Character set conversion.
-   Copyright (C) 2007, 2020-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2020-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 648dd3a..c522683 100644 (file)
@@ -1,5 +1,5 @@
 /* Character set conversion.
-   Copyright (C) 2007, 2009, 2020-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009, 2020-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 1c3552e..f188e13 100644 (file)
@@ -1,5 +1,5 @@
 /* Character set conversion.
-   Copyright (C) 2019-2021 Free Software Foundation, Inc.
+   Copyright (C) 2019-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index e573556..be70de2 100644 (file)
@@ -1,5 +1,5 @@
 /* Character set conversion.
-   Copyright (C) 2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 483587e..23020b7 100644 (file)
--- a/lib/idx.h
+++ b/lib/idx.h
@@ -1,5 +1,5 @@
 /* A type for indices and sizes.
-   Copyright (C) 2020-2021 Free Software Foundation, Inc.
+   Copyright (C) 2020-2023 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
      * Because 'size_t' is an unsigned type, and a signed type is better.
        See above.
 
+   Why not use 'ssize_t'?
+
+     * 'ptrdiff_t' is more portable; it is standardized by ISO C
+       whereas 'ssize_t' is standardized only by POSIX.
+
+     * 'ssize_t' is not required to be as wide as 'size_t', and some
+       now-obsolete POSIX platforms had 'size_t' wider than 'ssize_t'.
+
+     * Conversely, some now-obsolete platforms had 'ptrdiff_t' wider
+       than 'size_t', which can be a win and conforms to POSIX.
+
+   Won't this cause a problem with objects larger than PTRDIFF_MAX?
+
+     * Typical modern or large platforms do not allocate such objects,
+       so this is not much of a problem in practice; for example, you
+       can safely write 'idx_t len = strlen (s);'.  To port to older
+       small platforms where allocations larger than PTRDIFF_MAX could
+       in theory be a problem, you can use Gnulib's ialloc module, or
+       functions like ximalloc in Gnulib's xalloc module.
+
    Why not use 'ptrdiff_t' directly?
 
      * Maintainability: When reading and modifying code, it helps to know that
index 6099aba..f0b569a 100644 (file)
@@ -1,6 +1,6 @@
 /* ignore a function return without a compiler warning.  -*- coding: utf-8 -*-
 
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 6a9c6a9..1ba2fb7 100644 (file)
@@ -1,6 +1,6 @@
 /* Convert 'intmax_t' integer to printable string.
 
-   Copyright (C) 2004-2021 Free Software Foundation, Inc.
+   Copyright (C) 2004-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
diff --git a/lib/intprops-internal.h b/lib/intprops-internal.h
new file mode 100644 (file)
index 0000000..0467a9c
--- /dev/null
@@ -0,0 +1,392 @@
+/* intprops-internal.h -- properties of integer types not visible to users
+
+   Copyright (C) 2001-2023 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 2.1 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU 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/>.  */
+
+#ifndef _GL_INTPROPS_INTERNAL_H
+#define _GL_INTPROPS_INTERNAL_H
+
+#include <limits.h>
+
+/* Return a value with the common real type of E and V and the value of V.
+   Do not evaluate E.  */
+#define _GL_INT_CONVERT(e, v) ((1 ? 0 : (e)) + (v))
+
+/* Act like _GL_INT_CONVERT (E, -V) but work around a bug in IRIX 6.5 cc; see
+   <https://lists.gnu.org/r/bug-gnulib/2011-05/msg00406.html>.  */
+#define _GL_INT_NEGATE_CONVERT(e, v) ((1 ? 0 : (e)) - (v))
+
+/* The extra casts in the following macros work around compiler bugs,
+   e.g., in Cray C 5.0.3.0.  */
+
+/* True if the real type T is signed.  */
+#define _GL_TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
+
+/* Return 1 if the real expression E, after promotion, has a
+   signed or floating type.  Do not evaluate E.  */
+#define _GL_EXPR_SIGNED(e) (_GL_INT_NEGATE_CONVERT (e, 1) < 0)
+
+
+/* Minimum and maximum values for integer types and expressions.  */
+
+/* The width in bits of the integer type or expression T.
+   Do not evaluate T.  T must not be a bit-field expression.
+   Padding bits are not supported; this is checked at compile-time below.  */
+#define _GL_TYPE_WIDTH(t) (sizeof (t) * CHAR_BIT)
+
+/* The maximum and minimum values for the type of the expression E,
+   after integer promotion.  E is not evaluated.  */
+#define _GL_INT_MINIMUM(e)                                              \
+  (_GL_EXPR_SIGNED (e)                                                  \
+   ? ~ _GL_SIGNED_INT_MAXIMUM (e)                                       \
+   : _GL_INT_CONVERT (e, 0))
+#define _GL_INT_MAXIMUM(e)                                              \
+  (_GL_EXPR_SIGNED (e)                                                  \
+   ? _GL_SIGNED_INT_MAXIMUM (e)                                         \
+   : _GL_INT_NEGATE_CONVERT (e, 1))
+#define _GL_SIGNED_INT_MAXIMUM(e)                                       \
+  (((_GL_INT_CONVERT (e, 1) << (_GL_TYPE_WIDTH (+ (e)) - 2)) - 1) * 2 + 1)
+
+/* Work around OpenVMS incompatibility with C99.  */
+#if !defined LLONG_MAX && defined __INT64_MAX
+# define LLONG_MAX __INT64_MAX
+# define LLONG_MIN __INT64_MIN
+#endif
+
+/* This include file assumes that signed types are two's complement without
+   padding bits; the above macros have undefined behavior otherwise.
+   If this is a problem for you, please let us know how to fix it for your host.
+   This assumption is tested by the intprops-tests module.  */
+
+/* Does the __typeof__ keyword work?  This could be done by
+   'configure', but for now it's easier to do it by hand.  */
+#if (2 <= __GNUC__ \
+     || (4 <= __clang_major__) \
+     || (1210 <= __IBMC__ && defined __IBM__TYPEOF__) \
+     || (0x5110 <= __SUNPRO_C && !__STDC__))
+# define _GL_HAVE___TYPEOF__ 1
+#else
+# define _GL_HAVE___TYPEOF__ 0
+#endif
+
+/* Return 1 if the integer type or expression T might be signed.  Return 0
+   if it is definitely unsigned.  T must not be a bit-field expression.
+   This macro does not evaluate its argument, and expands to an
+   integer constant expression.  */
+#if _GL_HAVE___TYPEOF__
+# define _GL_SIGNED_TYPE_OR_EXPR(t) _GL_TYPE_SIGNED (__typeof__ (t))
+#else
+# define _GL_SIGNED_TYPE_OR_EXPR(t) 1
+#endif
+
+/* Return 1 if - A would overflow in [MIN,MAX] arithmetic.
+   A should not have side effects, and A's type should be an
+   integer with minimum value MIN and maximum MAX.  */
+#define _GL_INT_NEGATE_RANGE_OVERFLOW(a, min, max) \
+  ((min) < 0 ? (a) < - (max) : 0 < (a))
+
+/* True if __builtin_add_overflow (A, B, P) and __builtin_sub_overflow
+   (A, B, P) work when P is non-null.  */
+#ifdef __EDG__
+/* EDG-based compilers like nvc 22.1 cannot add 64-bit signed to unsigned
+   <https://bugs.gnu.org/53256>.  */
+# define _GL_HAS_BUILTIN_ADD_OVERFLOW 0
+#elif defined __has_builtin
+# define _GL_HAS_BUILTIN_ADD_OVERFLOW __has_builtin (__builtin_add_overflow)
+/* __builtin_{add,sub}_overflow exists but is not reliable in GCC 5.x and 6.x,
+   see <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98269>.  */
+#elif 7 <= __GNUC__
+# define _GL_HAS_BUILTIN_ADD_OVERFLOW 1
+#else
+# define _GL_HAS_BUILTIN_ADD_OVERFLOW 0
+#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>.  */
+# define _GL_HAS_BUILTIN_MUL_OVERFLOW 0
+#else
+# define _GL_HAS_BUILTIN_MUL_OVERFLOW _GL_HAS_BUILTIN_ADD_OVERFLOW
+#endif
+
+/* True if __builtin_add_overflow_p (A, B, C) works, and similarly for
+   __builtin_sub_overflow_p and __builtin_mul_overflow_p.  */
+#ifdef __EDG__
+/* In EDG-based compilers like ICC 2021.3 and earlier,
+   __builtin_add_overflow_p etc. are not treated as integral constant
+   expressions even when all arguments are.  */
+# define _GL_HAS_BUILTIN_OVERFLOW_P 0
+#elif defined __has_builtin
+# define _GL_HAS_BUILTIN_OVERFLOW_P __has_builtin (__builtin_mul_overflow_p)
+#else
+# define _GL_HAS_BUILTIN_OVERFLOW_P (7 <= __GNUC__)
+#endif
+
+#if (!defined _GL_STDCKDINT_H && 202311 <= __STDC_VERSION__ \
+     && ! (_GL_HAS_BUILTIN_ADD_OVERFLOW && _GL_HAS_BUILTIN_MUL_OVERFLOW))
+# include <stdckdint.h>
+#endif
+
+/* Store the low-order bits of A + B, A - B, A * B, respectively, into *R.
+   Return 1 if the result overflows.  Arguments should not have side
+   effects and A, B and *R can be of any integer type other than char,
+   bool, a bit-precise integer type, or an enumeration type.  */
+#if _GL_HAS_BUILTIN_ADD_OVERFLOW
+# define _GL_INT_ADD_WRAPV(a, b, r) __builtin_add_overflow (a, b, r)
+# define _GL_INT_SUBTRACT_WRAPV(a, b, r) __builtin_sub_overflow (a, b, r)
+#elif defined ckd_add && defined ckd_sub && !defined _GL_STDCKDINT_H
+# define _GL_INT_ADD_WRAPV(a, b, r) ckd_add (r, + (a), + (b))
+# define _GL_INT_SUBTRACT_WRAPV(a, b, r) ckd_sub (r, + (a), + (b))
+#else
+# define _GL_INT_ADD_WRAPV(a, b, r) \
+   _GL_INT_OP_WRAPV (a, b, r, +, _GL_INT_ADD_RANGE_OVERFLOW)
+# define _GL_INT_SUBTRACT_WRAPV(a, b, r) \
+   _GL_INT_OP_WRAPV (a, b, r, -, _GL_INT_SUBTRACT_RANGE_OVERFLOW)
+#endif
+#if _GL_HAS_BUILTIN_MUL_OVERFLOW
+# if ((9 < __GNUC__ + (3 <= __GNUC_MINOR__) \
+       || (__GNUC__ == 8 && 4 <= __GNUC_MINOR__)) \
+      && !defined __EDG__)
+#  define _GL_INT_MULTIPLY_WRAPV(a, b, r) __builtin_mul_overflow (a, b, r)
+# else
+   /* Work around GCC bug 91450.  */
+#  define _GL_INT_MULTIPLY_WRAPV(a, b, r) \
+    ((!_GL_SIGNED_TYPE_OR_EXPR (*(r)) && _GL_EXPR_SIGNED (a) && _GL_EXPR_SIGNED (b) \
+      && _GL_INT_MULTIPLY_RANGE_OVERFLOW (a, b, 0, (__typeof__ (*(r))) -1)) \
+     ? ((void) __builtin_mul_overflow (a, b, r), 1) \
+     : __builtin_mul_overflow (a, b, r))
+# endif
+#elif defined ckd_mul && !defined _GL_STDCKDINT_H
+# define _GL_INT_MULTIPLY_WRAPV(a, b, r) ckd_mul (r, + (a), + (b))
+#else
+# define _GL_INT_MULTIPLY_WRAPV(a, b, r) \
+   _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:
+   https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68193
+   https://llvm.org/bugs/show_bug.cgi?id=25390
+   For now, assume all versions of GCC-like compilers generate bogus
+   warnings for _Generic.  This matters only for compilers that
+   lack relevant builtins.  */
+#if __GNUC__ || defined __clang__
+# define _GL__GENERIC_BOGUS 1
+#else
+# define _GL__GENERIC_BOGUS 0
+#endif
+
+/* Store the low-order bits of A <op> B into *R, where OP specifies
+   the operation and OVERFLOW the overflow predicate.  Return 1 if the
+   result overflows.  Arguments should not have side effects,
+   and A, B and *R can be of any integer type other than char, bool, a
+   bit-precise integer type, or an enumeration type.  */
+#if 201112 <= __STDC_VERSION__ && !_GL__GENERIC_BOGUS
+# define _GL_INT_OP_WRAPV(a, b, r, op, overflow) \
+   (_Generic \
+    (*(r), \
+     signed char: \
+       _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \
+                        signed char, SCHAR_MIN, SCHAR_MAX), \
+     unsigned char: \
+       _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \
+                        unsigned char, 0, UCHAR_MAX), \
+     short int: \
+       _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \
+                        short int, SHRT_MIN, SHRT_MAX), \
+     unsigned short int: \
+       _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \
+                        unsigned short int, 0, USHRT_MAX), \
+     int: \
+       _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \
+                        int, INT_MIN, INT_MAX), \
+     unsigned int: \
+       _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \
+                        unsigned int, 0, UINT_MAX), \
+     long int: \
+       _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \
+                        long int, LONG_MIN, LONG_MAX), \
+     unsigned long int: \
+       _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \
+                        unsigned long int, 0, ULONG_MAX), \
+     long long int: \
+       _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \
+                        long long int, LLONG_MIN, LLONG_MAX), \
+     unsigned long long int: \
+       _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \
+                        unsigned long long int, 0, ULLONG_MAX)))
+#else
+/* Store the low-order bits of A <op> B into *R, where OP specifies
+   the operation and OVERFLOW the overflow predicate.  If *R is
+   signed, its type is ST with bounds SMIN..SMAX; otherwise its type
+   is UT with bounds U..UMAX.  ST and UT are narrower than int.
+   Return 1 if the result overflows.  Arguments should not have side
+   effects, and A, B and *R can be of any integer type other than
+   char, bool, a bit-precise integer type, or an enumeration type.  */
+# if _GL_HAVE___TYPEOF__
+#  define _GL_INT_OP_WRAPV_SMALLISH(a,b,r,op,overflow,st,smin,smax,ut,umax) \
+    (_GL_TYPE_SIGNED (__typeof__ (*(r))) \
+     ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, st, smin, smax) \
+     : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, ut, 0, umax))
+# else
+#  define _GL_INT_OP_WRAPV_SMALLISH(a,b,r,op,overflow,st,smin,smax,ut,umax) \
+    (overflow (a, b, smin, smax) \
+     ? (overflow (a, b, 0, umax) \
+        ? (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st), 1) \
+        : (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st)) < 0) \
+     : (overflow (a, b, 0, umax) \
+        ? (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st)) >= 0 \
+        : (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st), 0)))
+# endif
+
+# define _GL_INT_OP_WRAPV(a, b, r, op, overflow) \
+   (sizeof *(r) == sizeof (signed char) \
+    ? _GL_INT_OP_WRAPV_SMALLISH (a, b, r, op, overflow, \
+                                 signed char, SCHAR_MIN, SCHAR_MAX, \
+                                 unsigned char, UCHAR_MAX) \
+    : sizeof *(r) == sizeof (short int) \
+    ? _GL_INT_OP_WRAPV_SMALLISH (a, b, r, op, overflow, \
+                                 short int, SHRT_MIN, SHRT_MAX, \
+                                 unsigned short int, USHRT_MAX) \
+    : sizeof *(r) == sizeof (int) \
+    ? (_GL_EXPR_SIGNED (*(r)) \
+       ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \
+                          int, INT_MIN, INT_MAX) \
+       : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \
+                          unsigned int, 0, UINT_MAX)) \
+    : _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow))
+# ifdef LLONG_MAX
+#  define _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow) \
+    (sizeof *(r) == sizeof (long int) \
+     ? (_GL_EXPR_SIGNED (*(r)) \
+        ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \
+                           long int, LONG_MIN, LONG_MAX) \
+        : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \
+                           unsigned long int, 0, ULONG_MAX)) \
+     : (_GL_EXPR_SIGNED (*(r)) \
+        ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \
+                           long long int, LLONG_MIN, LLONG_MAX) \
+        : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \
+                           unsigned long long int, 0, ULLONG_MAX)))
+# else
+#  define _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow) \
+    (_GL_EXPR_SIGNED (*(r)) \
+     ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \
+                        long int, LONG_MIN, LONG_MAX) \
+     : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \
+                        unsigned long int, 0, ULONG_MAX))
+# endif
+#endif
+
+/* Store the low-order bits of A <op> B into *R, where the operation
+   is given by OP.  Use the unsigned type UT for calculation to avoid
+   overflow problems.  *R's type is T, with extrema TMIN and TMAX.
+   T can be any signed integer type other than char, bool, a
+   bit-precise integer type, or an enumeration type.
+   Return 1 if the result overflows.  */
+#define _GL_INT_OP_CALC(a, b, r, op, overflow, ut, t, tmin, tmax) \
+  (overflow (a, b, tmin, tmax) \
+   ? (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a, b, op, ut, t), 1) \
+   : (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a, b, op, ut, t), 0))
+
+/* Return 1 if the integer expressions A - B and -A would overflow,
+   respectively.  Arguments should not have side effects,
+   and can be any signed integer type other than char, bool, a
+   bit-precise integer type, or an enumeration type.
+   These macros are tuned for their last input argument being a constant.  */
+
+#if _GL_HAS_BUILTIN_OVERFLOW_P
+# define _GL_INT_NEGATE_OVERFLOW(a) \
+   __builtin_sub_overflow_p (0, a, (__typeof__ (- (a))) 0)
+#else
+# define _GL_INT_NEGATE_OVERFLOW(a) \
+   _GL_INT_NEGATE_RANGE_OVERFLOW (a, _GL_INT_MINIMUM (a), _GL_INT_MAXIMUM (a))
+#endif
+
+/* Return the low-order bits of A <op> B, where the operation is given
+   by OP.  Use the unsigned type UT for calculation to avoid undefined
+   behavior on signed integer overflow, and convert the result to type T.
+   UT is at least as wide as T and is no narrower than unsigned int,
+   T is two's complement, and there is no padding or trap representations.
+   Assume that converting UT to T yields the low-order bits, as is
+   done in all known two's-complement C compilers.  E.g., see:
+   https://gcc.gnu.org/onlinedocs/gcc/Integers-implementation.html
+
+   According to the C standard, converting UT to T yields an
+   implementation-defined result or signal for values outside T's
+   range.  However, code that works around this theoretical problem
+   runs afoul of a compiler bug in Oracle Studio 12.3 x86.  See:
+   https://lists.gnu.org/r/bug-gnulib/2017-04/msg00049.html
+   As the compiler bug is real, don't try to work around the
+   theoretical problem.  */
+
+#define _GL_INT_OP_WRAPV_VIA_UNSIGNED(a, b, op, ut, t) \
+  ((t) ((ut) (a) op (ut) (b)))
+
+/* Return true if the numeric values A + B, A - B, A * B fall outside
+   the range TMIN..TMAX.  Arguments should not have side effects
+   and can be any integer type other than char, bool,
+   a bit-precise integer type, or an enumeration type.
+   TMIN should be signed and nonpositive.
+   TMAX should be positive, and should be signed unless TMIN is zero.  */
+#define _GL_INT_ADD_RANGE_OVERFLOW(a, b, tmin, tmax) \
+  ((b) < 0 \
+   ? (((tmin) \
+       ? ((_GL_EXPR_SIGNED (_GL_INT_CONVERT (a, (tmin) - (b))) || (b) < (tmin)) \
+          && (a) < (tmin) - (b)) \
+       : (a) <= -1 - (b)) \
+      || ((_GL_EXPR_SIGNED (a) ? 0 <= (a) : (tmax) < (a)) && (tmax) < (a) + (b))) \
+   : (a) < 0 \
+   ? (((tmin) \
+       ? ((_GL_EXPR_SIGNED (_GL_INT_CONVERT (b, (tmin) - (a))) || (a) < (tmin)) \
+          && (b) < (tmin) - (a)) \
+       : (b) <= -1 - (a)) \
+      || ((_GL_EXPR_SIGNED (_GL_INT_CONVERT (a, b)) || (tmax) < (b)) \
+          && (tmax) < (a) + (b))) \
+   : (tmax) < (b) || (tmax) - (b) < (a))
+#define _GL_INT_SUBTRACT_RANGE_OVERFLOW(a, b, tmin, tmax) \
+  (((a) < 0) == ((b) < 0) \
+   ? ((a) < (b) \
+      ? !(tmin) || -1 - (tmin) < (b) - (a) - 1 \
+      : (tmax) < (a) - (b)) \
+   : (a) < 0 \
+   ? ((!_GL_EXPR_SIGNED (_GL_INT_CONVERT ((a) - (tmin), b)) && (a) - (tmin) < 0) \
+      || (a) - (tmin) < (b)) \
+   : ((! (_GL_EXPR_SIGNED (_GL_INT_CONVERT (tmax, b)) \
+          && _GL_EXPR_SIGNED (_GL_INT_CONVERT ((tmax) + (b), a))) \
+       && (tmax) <= -1 - (b)) \
+      || (tmax) + (b) < (a)))
+#define _GL_INT_MULTIPLY_RANGE_OVERFLOW(a, b, tmin, tmax) \
+  ((b) < 0 \
+   ? ((a) < 0 \
+      ? (_GL_EXPR_SIGNED (_GL_INT_CONVERT (tmax, b)) \
+         ? (a) < (tmax) / (b) \
+         : ((_GL_INT_NEGATE_OVERFLOW (b) \
+             ? _GL_INT_CONVERT (b, tmax) >> (_GL_TYPE_WIDTH (+ (b)) - 1) \
+             : (tmax) / -(b)) \
+            <= -1 - (a))) \
+      : _GL_INT_NEGATE_OVERFLOW (_GL_INT_CONVERT (b, tmin)) && (b) == -1 \
+      ? (_GL_EXPR_SIGNED (a) \
+         ? 0 < (a) + (tmin) \
+         : 0 < (a) && -1 - (tmin) < (a) - 1) \
+      : (tmin) / (b) < (a)) \
+   : (b) == 0 \
+   ? 0 \
+   : ((a) < 0 \
+      ? (_GL_INT_NEGATE_OVERFLOW (_GL_INT_CONVERT (a, tmin)) && (a) == -1 \
+         ? (_GL_EXPR_SIGNED (b) ? 0 < (b) + (tmin) : -1 - (tmin) < (b) - 1) \
+         : (tmin) / (a) < (b)) \
+      : (tmax) / (b) < (a)))
+
+#endif /* _GL_INTPROPS_INTERNAL_H */
index 9d10028..44b5e60 100644 (file)
@@ -1,6 +1,6 @@
 /* intprops.h -- properties of integer types
 
-   Copyright (C) 2001-2021 Free Software Foundation, Inc.
+   Copyright (C) 2001-2023 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
    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 Paul Eggert.  */
-
 #ifndef _GL_INTPROPS_H
 #define _GL_INTPROPS_H
 
-#include <limits.h>
-
-/* Return a value with the common real type of E and V and the value of V.
-   Do not evaluate E.  */
-#define _GL_INT_CONVERT(e, v) ((1 ? 0 : (e)) + (v))
-
-/* Act like _GL_INT_CONVERT (E, -V) but work around a bug in IRIX 6.5 cc; see
-   <https://lists.gnu.org/r/bug-gnulib/2011-05/msg00406.html>.  */
-#define _GL_INT_NEGATE_CONVERT(e, v) ((1 ? 0 : (e)) - (v))
+#include "intprops-internal.h"
 
 /* The extra casts in the following macros work around compiler bugs,
    e.g., in Cray C 5.0.3.0.  */
 #define TYPE_IS_INTEGER(t) ((t) 1.5 == 1)
 
 /* True if the real type T is signed.  */
-#define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
+#define TYPE_SIGNED(t) _GL_TYPE_SIGNED (t)
 
 /* Return 1 if the real expression E, after promotion, has a
    signed or floating type.  Do not evaluate E.  */
-#define EXPR_SIGNED(e) (_GL_INT_NEGATE_CONVERT (e, 1) < 0)
+#define EXPR_SIGNED(e) _GL_EXPR_SIGNED (e)
 
 
 /* Minimum and maximum values for integer types and expressions.  */
@@ -50,7 +40,7 @@
 /* The width in bits of the integer type or expression T.
    Do not evaluate T.  T must not be a bit-field expression.
    Padding bits are not supported; this is checked at compile-time below.  */
-#define TYPE_WIDTH(t) (sizeof (t) * CHAR_BIT)
+#define TYPE_WIDTH(t) _GL_TYPE_WIDTH (t)
 
 /* The maximum and minimum values for the integer type T.  */
 #define TYPE_MINIMUM(t) ((t) ~ TYPE_MAXIMUM (t))
         ? (t) -1                                                        \
         : ((((t) 1 << (TYPE_WIDTH (t) - 2)) - 1) * 2 + 1)))
 
-/* The maximum and minimum values for the type of the expression E,
-   after integer promotion.  E is not evaluated.  */
-#define _GL_INT_MINIMUM(e)                                              \
-  (EXPR_SIGNED (e)                                                      \
-   ? ~ _GL_SIGNED_INT_MAXIMUM (e)                                       \
-   : _GL_INT_CONVERT (e, 0))
-#define _GL_INT_MAXIMUM(e)                                              \
-  (EXPR_SIGNED (e)                                                      \
-   ? _GL_SIGNED_INT_MAXIMUM (e)                                         \
-   : _GL_INT_NEGATE_CONVERT (e, 1))
-#define _GL_SIGNED_INT_MAXIMUM(e)                                       \
-  (((_GL_INT_CONVERT (e, 1) << (TYPE_WIDTH (+ (e)) - 2)) - 1) * 2 + 1)
-
-/* Work around OpenVMS incompatibility with C99.  */
-#if !defined LLONG_MAX && defined __INT64_MAX
-# define LLONG_MAX __INT64_MAX
-# define LLONG_MIN __INT64_MIN
-#endif
-
-/* This include file assumes that signed types are two's complement without
-   padding bits; the above macros have undefined behavior otherwise.
-   If this is a problem for you, please let us know how to fix it for your host.
-   This assumption is tested by the intprops-tests module.  */
-
-/* Does the __typeof__ keyword work?  This could be done by
-   'configure', but for now it's easier to do it by hand.  */
-#if (2 <= __GNUC__ \
-     || (4 <= __clang_major__) \
-     || (1210 <= __IBMC__ && defined __IBM__TYPEOF__) \
-     || (0x5110 <= __SUNPRO_C && !__STDC__))
-# define _GL_HAVE___TYPEOF__ 1
-#else
-# define _GL_HAVE___TYPEOF__ 0
-#endif
-
-/* Return 1 if the integer type or expression T might be signed.  Return 0
-   if it is definitely unsigned.  T must not be a bit-field expression.
-   This macro does not evaluate its argument, and expands to an
-   integer constant expression.  */
-#if _GL_HAVE___TYPEOF__
-# define _GL_SIGNED_TYPE_OR_EXPR(t) TYPE_SIGNED (__typeof__ (t))
-#else
-# define _GL_SIGNED_TYPE_OR_EXPR(t) 1
-#endif
-
 /* Bound on length of the string representing an unsigned integer
    value representable in B bits.  log10 (2.0) < 146/485.  The
    smallest value of B where this bound is not tight is 2621.  */
 /* Range overflow checks.
 
    The INT_<op>_RANGE_OVERFLOW macros return 1 if the corresponding C
-   operators might not yield numerically correct answers due to
-   arithmetic overflow.  They do not rely on undefined or
-   implementation-defined behavior.  Their implementations are simple
-   and straightforward, but they are harder to use and may be less
-   efficient than the INT_<op>_WRAPV, INT_<op>_OK, and
-   INT_<op>_OVERFLOW macros described below.
+   operators overflow arithmetically when given the same arguments.
+   These macros do not rely on undefined or implementation-defined behavior.
+   Although their implementations are simple and straightforward,
+   they are harder to use and may be less efficient than the
+   INT_<op>_WRAPV, INT_<op>_OK, and INT_<op>_OVERFLOW macros described below.
 
    Example usage:
 
 /* Return 1 if - A would overflow in [MIN,MAX] arithmetic.
    See above for restrictions.  */
 #define INT_NEGATE_RANGE_OVERFLOW(a, min, max)          \
-  ((min) < 0                                            \
-   ? (a) < - (max)                                      \
-   : 0 < (a))
+  _GL_INT_NEGATE_RANGE_OVERFLOW (a, min, max)
 
 /* Return 1 if A * B would overflow in [MIN,MAX] arithmetic.
    See above for restrictions.  Avoid && and || as they tickle
    ? (a) < (min) >> (b)                                 \
    : (max) >> (b) < (a))
 
-/* True if __builtin_add_overflow (A, B, P) and __builtin_sub_overflow
-   (A, B, P) work when P is non-null.  */
-/* __builtin_{add,sub}_overflow exists but is not reliable in GCC 5.x and 6.x,
-   see <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98269>.  */
-#if 7 <= __GNUC__ && !defined __ICC
-# define _GL_HAS_BUILTIN_ADD_OVERFLOW 1
-#elif defined __has_builtin
-# define _GL_HAS_BUILTIN_ADD_OVERFLOW __has_builtin (__builtin_add_overflow)
-#else
-# define _GL_HAS_BUILTIN_ADD_OVERFLOW 0
-#endif
-
-/* True if __builtin_mul_overflow (A, B, P) works when P is non-null.  */
-#ifdef __clang__
-/* Work around Clang bug <https://bugs.llvm.org/show_bug.cgi?id=16404>.  */
-# define _GL_HAS_BUILTIN_MUL_OVERFLOW 0
-#else
-# define _GL_HAS_BUILTIN_MUL_OVERFLOW _GL_HAS_BUILTIN_ADD_OVERFLOW
-#endif
-
-/* True if __builtin_add_overflow_p (A, B, C) works, and similarly for
-   __builtin_sub_overflow_p and __builtin_mul_overflow_p.  */
-#if defined __clang__ || defined __ICC
-/* Clang 11 lacks __builtin_mul_overflow_p, and even if it did it
-   would presumably run afoul of Clang bug 16404.  ICC 2021.1's
-   __builtin_add_overflow_p etc. are not treated as integral constant
-   expressions even when all arguments are.  */
-# define _GL_HAS_BUILTIN_OVERFLOW_P 0
-#elif defined __has_builtin
-# define _GL_HAS_BUILTIN_OVERFLOW_P __has_builtin (__builtin_mul_overflow_p)
-#else
-# define _GL_HAS_BUILTIN_OVERFLOW_P (7 <= __GNUC__)
-#endif
-
 /* The _GL*_OVERFLOW macros have the same restrictions as the
    *_RANGE_OVERFLOW macros, except that they do not assume that operands
    (e.g., A and B) have the same type as MIN and MAX.  Instead, they assume
    Because the WRAPV macros convert the result, they report overflow
    in different circumstances than the OVERFLOW macros do.  For
    example, in the typical case with 16-bit 'short' and 32-bit 'int',
-   if A, B and R are all of type 'short' then INT_ADD_OVERFLOW (A, B)
+   if A, B and *R are all of type 'short' then INT_ADD_OVERFLOW (A, B)
    returns false because the addition cannot overflow after A and B
-   are converted to 'int', whereas INT_ADD_WRAPV (A, B, &R) returns
+   are converted to 'int', whereas INT_ADD_WRAPV (A, B, R) returns
    true or false depending on whether the sum fits into 'short'.
 
    These macros are tuned for their last input argument being a constant.
 
+   A, B, and *R should be integers; they need not be the same type,
+   and they need not be all signed or all unsigned.
+   However, none of the integer types should be bit-precise,
+   and *R's type should not be char, bool, or an enumeration type.
+
    Return 1 if the integer expressions A * B, A - B, -A, A * B, A / B,
    A % B, and A << B would overflow, respectively.  */
 
   _GL_BINARY_OP_OVERFLOW (a, b, _GL_ADD_OVERFLOW)
 #define INT_SUBTRACT_OVERFLOW(a, b) \
   _GL_BINARY_OP_OVERFLOW (a, b, _GL_SUBTRACT_OVERFLOW)
-#if _GL_HAS_BUILTIN_OVERFLOW_P
-# define INT_NEGATE_OVERFLOW(a) INT_SUBTRACT_OVERFLOW (0, a)
-#else
-# define INT_NEGATE_OVERFLOW(a) \
-   INT_NEGATE_RANGE_OVERFLOW (a, _GL_INT_MINIMUM (a), _GL_INT_MAXIMUM (a))
-#endif
+#define INT_NEGATE_OVERFLOW(a) _GL_INT_NEGATE_OVERFLOW (a)
 #define INT_MULTIPLY_OVERFLOW(a, b) \
   _GL_BINARY_OP_OVERFLOW (a, b, _GL_MULTIPLY_OVERFLOW)
 #define INT_DIVIDE_OVERFLOW(a, b) \
 
 /* Store the low-order bits of A + B, A - B, A * B, respectively, into *R.
    Return 1 if the result overflows.  See above for restrictions.  */
-#if _GL_HAS_BUILTIN_ADD_OVERFLOW
-# define INT_ADD_WRAPV(a, b, r) __builtin_add_overflow (a, b, r)
-# define INT_SUBTRACT_WRAPV(a, b, r) __builtin_sub_overflow (a, b, r)
-#else
-# define INT_ADD_WRAPV(a, b, r) \
-   _GL_INT_OP_WRAPV (a, b, r, +, _GL_INT_ADD_RANGE_OVERFLOW)
-# define INT_SUBTRACT_WRAPV(a, b, r) \
-   _GL_INT_OP_WRAPV (a, b, r, -, _GL_INT_SUBTRACT_RANGE_OVERFLOW)
-#endif
-#if _GL_HAS_BUILTIN_MUL_OVERFLOW
-# if ((9 < __GNUC__ + (3 <= __GNUC_MINOR__) \
-       || (__GNUC__ == 8 && 4 <= __GNUC_MINOR__)) \
-      && !defined __ICC)
-#  define INT_MULTIPLY_WRAPV(a, b, r) __builtin_mul_overflow (a, b, r)
-# else
-   /* Work around GCC bug 91450.  */
-#  define INT_MULTIPLY_WRAPV(a, b, r) \
-    ((!_GL_SIGNED_TYPE_OR_EXPR (*(r)) && EXPR_SIGNED (a) && EXPR_SIGNED (b) \
-      && _GL_INT_MULTIPLY_RANGE_OVERFLOW (a, b, 0, (__typeof__ (*(r))) -1)) \
-     ? ((void) __builtin_mul_overflow (a, b, r), 1) \
-     : __builtin_mul_overflow (a, b, r))
-# endif
-#else
-# define INT_MULTIPLY_WRAPV(a, b, r) \
-   _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:
-   https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68193
-   https://llvm.org/bugs/show_bug.cgi?id=25390
-   For now, assume all versions of GCC-like compilers generate bogus
-   warnings for _Generic.  This matters only for compilers that
-   lack relevant builtins.  */
-#if __GNUC__ || defined __clang__
-# define _GL__GENERIC_BOGUS 1
-#else
-# define _GL__GENERIC_BOGUS 0
-#endif
-
-/* Store the low-order bits of A <op> B into *R, where OP specifies
-   the operation and OVERFLOW the overflow predicate.  Return 1 if the
-   result overflows.  See above for restrictions.  */
-#if 201112 <= __STDC_VERSION__ && !_GL__GENERIC_BOGUS
-# define _GL_INT_OP_WRAPV(a, b, r, op, overflow) \
-   (_Generic \
-    (*(r), \
-     signed char: \
-       _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \
-                        signed char, SCHAR_MIN, SCHAR_MAX), \
-     unsigned char: \
-       _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \
-                        unsigned char, 0, UCHAR_MAX), \
-     short int: \
-       _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \
-                        short int, SHRT_MIN, SHRT_MAX), \
-     unsigned short int: \
-       _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \
-                        unsigned short int, 0, USHRT_MAX), \
-     int: \
-       _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \
-                        int, INT_MIN, INT_MAX), \
-     unsigned int: \
-       _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \
-                        unsigned int, 0, UINT_MAX), \
-     long int: \
-       _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \
-                        long int, LONG_MIN, LONG_MAX), \
-     unsigned long int: \
-       _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \
-                        unsigned long int, 0, ULONG_MAX), \
-     long long int: \
-       _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \
-                        long long int, LLONG_MIN, LLONG_MAX), \
-     unsigned long long int: \
-       _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \
-                        unsigned long long int, 0, ULLONG_MAX)))
-#else
-/* Store the low-order bits of A <op> B into *R, where OP specifies
-   the operation and OVERFLOW the overflow predicate.  If *R is
-   signed, its type is ST with bounds SMIN..SMAX; otherwise its type
-   is UT with bounds U..UMAX.  ST and UT are narrower than int.
-   Return 1 if the result overflows.  See above for restrictions.  */
-# if _GL_HAVE___TYPEOF__
-#  define _GL_INT_OP_WRAPV_SMALLISH(a,b,r,op,overflow,st,smin,smax,ut,umax) \
-    (TYPE_SIGNED (__typeof__ (*(r))) \
-     ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, st, smin, smax) \
-     : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, ut, 0, umax))
-# else
-#  define _GL_INT_OP_WRAPV_SMALLISH(a,b,r,op,overflow,st,smin,smax,ut,umax) \
-    (overflow (a, b, smin, smax) \
-     ? (overflow (a, b, 0, umax) \
-        ? (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st), 1) \
-        : (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st)) < 0) \
-     : (overflow (a, b, 0, umax) \
-        ? (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st)) >= 0 \
-        : (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st), 0)))
-# endif
-
-# define _GL_INT_OP_WRAPV(a, b, r, op, overflow) \
-   (sizeof *(r) == sizeof (signed char) \
-    ? _GL_INT_OP_WRAPV_SMALLISH (a, b, r, op, overflow, \
-                                 signed char, SCHAR_MIN, SCHAR_MAX, \
-                                 unsigned char, UCHAR_MAX) \
-    : sizeof *(r) == sizeof (short int) \
-    ? _GL_INT_OP_WRAPV_SMALLISH (a, b, r, op, overflow, \
-                                 short int, SHRT_MIN, SHRT_MAX, \
-                                 unsigned short int, USHRT_MAX) \
-    : sizeof *(r) == sizeof (int) \
-    ? (EXPR_SIGNED (*(r)) \
-       ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \
-                          int, INT_MIN, INT_MAX) \
-       : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \
-                          unsigned int, 0, UINT_MAX)) \
-    : _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow))
-# ifdef LLONG_MAX
-#  define _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow) \
-    (sizeof *(r) == sizeof (long int) \
-     ? (EXPR_SIGNED (*(r)) \
-        ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \
-                           long int, LONG_MIN, LONG_MAX) \
-        : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \
-                           unsigned long int, 0, ULONG_MAX)) \
-     : (EXPR_SIGNED (*(r)) \
-        ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \
-                           long long int, LLONG_MIN, LLONG_MAX) \
-        : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \
-                           unsigned long long int, 0, ULLONG_MAX)))
-# else
-#  define _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow) \
-    (EXPR_SIGNED (*(r)) \
-     ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \
-                        long int, LONG_MIN, LONG_MAX) \
-     : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \
-                        unsigned long int, 0, ULONG_MAX))
-# endif
-#endif
-
-/* Store the low-order bits of A <op> B into *R, where the operation
-   is given by OP.  Use the unsigned type UT for calculation to avoid
-   overflow problems.  *R's type is T, with extrema TMIN and TMAX.
-   T must be a signed integer type.  Return 1 if the result overflows.  */
-#define _GL_INT_OP_CALC(a, b, r, op, overflow, ut, t, tmin, tmax) \
-  (overflow (a, b, tmin, tmax) \
-   ? (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a, b, op, ut, t), 1) \
-   : (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a, b, op, ut, t), 0))
-
-/* Return the low-order bits of A <op> B, where the operation is given
-   by OP.  Use the unsigned type UT for calculation to avoid undefined
-   behavior on signed integer overflow, and convert the result to type T.
-   UT is at least as wide as T and is no narrower than unsigned int,
-   T is two's complement, and there is no padding or trap representations.
-   Assume that converting UT to T yields the low-order bits, as is
-   done in all known two's-complement C compilers.  E.g., see:
-   https://gcc.gnu.org/onlinedocs/gcc/Integers-implementation.html
-
-   According to the C standard, converting UT to T yields an
-   implementation-defined result or signal for values outside T's
-   range.  However, code that works around this theoretical problem
-   runs afoul of a compiler bug in Oracle Studio 12.3 x86.  See:
-   https://lists.gnu.org/r/bug-gnulib/2017-04/msg00049.html
-   As the compiler bug is real, don't try to work around the
-   theoretical problem.  */
-
-#define _GL_INT_OP_WRAPV_VIA_UNSIGNED(a, b, op, ut, t) \
-  ((t) ((ut) (a) op (ut) (b)))
-
-/* Return true if the numeric values A + B, A - B, A * B fall outside
-   the range TMIN..TMAX.  Arguments should be integer expressions
-   without side effects.  TMIN should be signed and nonpositive.
-   TMAX should be positive, and should be signed unless TMIN is zero.  */
-#define _GL_INT_ADD_RANGE_OVERFLOW(a, b, tmin, tmax) \
-  ((b) < 0 \
-   ? (((tmin) \
-       ? ((EXPR_SIGNED (_GL_INT_CONVERT (a, (tmin) - (b))) || (b) < (tmin)) \
-          && (a) < (tmin) - (b)) \
-       : (a) <= -1 - (b)) \
-      || ((EXPR_SIGNED (a) ? 0 <= (a) : (tmax) < (a)) && (tmax) < (a) + (b))) \
-   : (a) < 0 \
-   ? (((tmin) \
-       ? ((EXPR_SIGNED (_GL_INT_CONVERT (b, (tmin) - (a))) || (a) < (tmin)) \
-          && (b) < (tmin) - (a)) \
-       : (b) <= -1 - (a)) \
-      || ((EXPR_SIGNED (_GL_INT_CONVERT (a, b)) || (tmax) < (b)) \
-          && (tmax) < (a) + (b))) \
-   : (tmax) < (b) || (tmax) - (b) < (a))
-#define _GL_INT_SUBTRACT_RANGE_OVERFLOW(a, b, tmin, tmax) \
-  (((a) < 0) == ((b) < 0) \
-   ? ((a) < (b) \
-      ? !(tmin) || -1 - (tmin) < (b) - (a) - 1 \
-      : (tmax) < (a) - (b)) \
-   : (a) < 0 \
-   ? ((!EXPR_SIGNED (_GL_INT_CONVERT ((a) - (tmin), b)) && (a) - (tmin) < 0) \
-      || (a) - (tmin) < (b)) \
-   : ((! (EXPR_SIGNED (_GL_INT_CONVERT (tmax, b)) \
-          && EXPR_SIGNED (_GL_INT_CONVERT ((tmax) + (b), a))) \
-       && (tmax) <= -1 - (b)) \
-      || (tmax) + (b) < (a)))
-#define _GL_INT_MULTIPLY_RANGE_OVERFLOW(a, b, tmin, tmax) \
-  ((b) < 0 \
-   ? ((a) < 0 \
-      ? (EXPR_SIGNED (_GL_INT_CONVERT (tmax, b)) \
-         ? (a) < (tmax) / (b) \
-         : ((INT_NEGATE_OVERFLOW (b) \
-             ? _GL_INT_CONVERT (b, tmax) >> (TYPE_WIDTH (+ (b)) - 1) \
-             : (tmax) / -(b)) \
-            <= -1 - (a))) \
-      : INT_NEGATE_OVERFLOW (_GL_INT_CONVERT (b, tmin)) && (b) == -1 \
-      ? (EXPR_SIGNED (a) \
-         ? 0 < (a) + (tmin) \
-         : 0 < (a) && -1 - (tmin) < (a) - 1) \
-      : (tmin) / (b) < (a)) \
-   : (b) == 0 \
-   ? 0 \
-   : ((a) < 0 \
-      ? (INT_NEGATE_OVERFLOW (_GL_INT_CONVERT (a, tmin)) && (a) == -1 \
-         ? (EXPR_SIGNED (b) ? 0 < (b) + (tmin) : -1 - (tmin) < (b) - 1) \
-         : (tmin) / (a) < (b)) \
-      : (tmax) / (b) < (a)))
+#define INT_ADD_WRAPV(a, b, r) _GL_INT_ADD_WRAPV (a, b, r)
+#define INT_SUBTRACT_WRAPV(a, b, r) _GL_INT_SUBTRACT_WRAPV (a, b, r)
+#define INT_MULTIPLY_WRAPV(a, b, r) _GL_INT_MULTIPLY_WRAPV (a, b, r)
 
 /* The following macros compute A + B, A - B, and A * B, respectively.
    If no overflow occurs, they set *R to the result and return 1;
 
    A, B, and *R should be integers; they need not be the same type,
    and they need not be all signed or all unsigned.
+   However, none of the integer types should be bit-precise,
+   and *R's type should not be char, bool, or an enumeration type.
 
    These macros work correctly on all known practical hosts, and do not rely
    on undefined behavior due to signed arithmetic overflow.
 
    These macros are tuned for B being a constant.  */
 
-#define INT_ADD_OK(a, b, r) ! INT_ADD_WRAPV (a, b, r)
-#define INT_SUBTRACT_OK(a, b, r) ! INT_SUBTRACT_WRAPV (a, b, r)
-#define INT_MULTIPLY_OK(a, b, r) ! INT_MULTIPLY_WRAPV (a, b, r)
+#define INT_ADD_OK(a, b, r) (! INT_ADD_WRAPV (a, b, r))
+#define INT_SUBTRACT_OK(a, b, r) (! INT_SUBTRACT_WRAPV (a, b, r))
+#define INT_MULTIPLY_OK(a, b, r) (! INT_MULTIPLY_WRAPV (a, b, r))
 
 #endif /* _GL_INTPROPS_H */
index 2fafd1c..2999153 100644 (file)
@@ -1,6 +1,6 @@
 /* Convert 'int' integer to printable string.
 
-   Copyright (C) 2004-2021 Free Software Foundation, Inc.
+   Copyright (C) 2004-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index db1f8fa..7e653f2 100644 (file)
@@ -1,6 +1,6 @@
 /* inttostr.h -- convert integers to printable strings
 
-   Copyright (C) 2001-2006, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2001-2006, 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 
 /* Written by Paul Eggert */
 
+/* This file uses _GL_ATTRIBUTE_NODISCARD.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 #include <stdint.h>
 #include <sys/types.h>
 
index 41cb422..2264387 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2021 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2023 Free Software Foundation, Inc.
    Written by Paul Eggert, Bruno Haible, Derek Price.
    This file is part of gnulib.
 
 #if ! defined INTTYPES_H && ! defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
 #define INTTYPES_H
 
+/* This file uses GNULIB_POSIXCHECK, HAVE_RAW_DECL_*.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 /* Include <stdint.h> or the gnulib replacement.
    But avoid namespace pollution on glibc systems.  */
 #ifndef __GLIBC__
@@ -903,8 +908,21 @@ extern "C" {
 #endif
 
 #if @GNULIB_IMAXABS@
-# if !@HAVE_DECL_IMAXABS@
-extern intmax_t imaxabs (intmax_t);
+# if @REPLACE_IMAXABS@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef imaxabs
+#   define imaxabs rpl_imaxabs
+#  endif
+_GL_FUNCDECL_RPL (imaxabs, intmax_t, (intmax_t x));
+_GL_CXXALIAS_RPL (imaxabs, intmax_t, (intmax_t x));
+# else
+#  if !@HAVE_DECL_IMAXABS@
+_GL_FUNCDECL_SYS (imaxabs, intmax_t, (intmax_t x));
+#  endif
+_GL_CXXALIAS_SYS (imaxabs, intmax_t, (intmax_t x));
+# endif
+# if __GLIBC__ >= 2
+_GL_CXXALIASWARN (imaxabs);
 # endif
 #elif defined GNULIB_POSIXCHECK
 # undef imaxabs
@@ -921,8 +939,21 @@ typedef struct { intmax_t quot; intmax_t rem; } imaxdiv_t;
 #   define GNULIB_defined_imaxdiv_t 1
 #  endif
 # endif
-# if !@HAVE_DECL_IMAXDIV@
-extern imaxdiv_t imaxdiv (intmax_t, intmax_t);
+# if @REPLACE_IMAXDIV@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef imaxdiv
+#   define imaxdiv rpl_imaxdiv
+#  endif
+_GL_FUNCDECL_RPL (imaxdiv, imaxdiv_t, (intmax_t numer, intmax_t denom));
+_GL_CXXALIAS_RPL (imaxdiv, imaxdiv_t, (intmax_t numer, intmax_t denom));
+# else
+#  if !@HAVE_DECL_IMAXDIV@
+_GL_FUNCDECL_SYS (imaxdiv, imaxdiv_t, (intmax_t numer, intmax_t denom));
+#  endif
+_GL_CXXALIAS_SYS (imaxdiv, imaxdiv_t, (intmax_t numer, intmax_t denom));
+# endif
+# if __GLIBC__ >= 2
+_GL_CXXALIASWARN (imaxdiv);
 # endif
 #elif defined GNULIB_POSIXCHECK
 # undef imaxdiv
index 8984f37..8aad6af 100644 (file)
@@ -1,6 +1,6 @@
 /* Test whether a character is a blank.
 
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 55628ec..5540f1f 100644 (file)
@@ -1,5 +1,5 @@
 /* Test wide character for being blank.
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 8ec9a6e..94db274 100644 (file)
@@ -1,5 +1,5 @@
 /* Test wide character for being a digit.
-   Copyright (C) 2020-2021 Free Software Foundation, Inc.
+   Copyright (C) 2020-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index fcdcdba..7ec4566 100644 (file)
@@ -1,5 +1,5 @@
 /* Test wide character for being a hexadecimal digit.
-   Copyright (C) 2020-2021 Free Software Foundation, Inc.
+   Copyright (C) 2020-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 4873899..4cf712e 100644 (file)
@@ -1,5 +1,5 @@
 /* Substitute for and wrapper around <langinfo.h>.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 #ifndef _@GUARD_PREFIX@_LANGINFO_H
 #define _@GUARD_PREFIX@_LANGINFO_H
 
+/* This file uses GNULIB_POSIXCHECK, HAVE_RAW_DECL_*.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 
 #if !@HAVE_LANGINFO_H@
 
@@ -208,7 +213,9 @@ _GL_FUNCDECL_SYS (nl_langinfo, char *, (nl_item item));
 #  endif
 _GL_CXXALIAS_SYS (nl_langinfo, char *, (nl_item item));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (nl_langinfo);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef nl_langinfo
 # if HAVE_RAW_DECL_NL_LANGINFO
index 88a0bd3..cd74466 100644 (file)
@@ -1,5 +1,5 @@
 /* Dispatching based on the current locale's character encoding.
-   Copyright (C) 2018-2021 Free Software Foundation, Inc.
+   Copyright (C) 2018-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 59b485d..c82b6a6 100644 (file)
@@ -1,5 +1,5 @@
 /* Dispatching based on the current locale's character encoding.
-   Copyright (C) 2018-2021 Free Software Foundation, Inc.
+   Copyright (C) 2018-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index f68749f..5f5ad01 100644 (file)
@@ -1,6 +1,6 @@
 /* System definitions for code taken from the GNU C Library
 
-   Copyright 2017-2021 Free Software Foundation, Inc.
+   Copyright 2017-2023 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
 # undef __THROW
 # undef __THROWNL
 # undef __attr_access
+# undef __attr_access_none
+# undef __attr_dealloc
+# undef __attr_dealloc_free
 # undef __attribute__
+# undef __attribute_alloc_align__
 # undef __attribute_alloc_size__
 # undef __attribute_artificial__
 # undef __attribute_const__
 # undef __attribute_format_arg__
 # undef __attribute_format_strfmon__
 # undef __attribute_malloc__
+# undef __attribute_maybe_unused__
 # undef __attribute_noinline__
 # undef __attribute_nonstring__
 # undef __attribute_pure__
 # undef __attribute_returns_twice__
 # undef __attribute_used__
 # undef __attribute_warn_unused_result__
-# undef __bos
-# undef __bos0
 # undef __errordecl
 # undef __extension__
 # undef __extern_always_inline
 # undef __extern_inline
 # undef __flexarr
+# undef __fortified_attr_access
 # undef __fortify_function
 # undef __glibc_c99_flexarr_available
 # undef __glibc_has_attribute
 # undef __glibc_has_builtin
 # undef __glibc_has_extension
+# undef __glibc_likely
 # undef __glibc_macro_warning
 # undef __glibc_macro_warning1
-# undef __glibc_objsize
-# undef __glibc_objsize0
 # undef __glibc_unlikely
 # undef __inline
 # undef __ptr_t
 # undef __va_arg_pack
 # undef __va_arg_pack_len
 # undef __warnattr
+# undef __wur
+# ifndef __GNULIB_CDEFS
+#  undef __bos
+#  undef __bos0
+#  undef __glibc_fortify
+#  undef __glibc_fortify_n
+#  undef __glibc_objsize
+#  undef __glibc_objsize0
+#  undef __glibc_safe_len_cond
+#  undef __glibc_safe_or_unknown_len
+#  undef __glibc_unsafe_len
+#  undef __glibc_unsigned_or_positive
+# endif
 
 /* Include our copy of glibc <sys/cdefs.h>.  */
 # include <cdefs.h>
index 2ecafeb..1d479c3 100644 (file)
@@ -1,6 +1,6 @@
 /* A GNU-like <limits.h>.
 
-   Copyright 2016-2021 Free Software Foundation, Inc.
+   Copyright 2016-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 # endif
 #endif
 
-/* Macros specified by C2x and by ISO/IEC TS 18661-1:2014.  */
+/* Assume no multibyte character is longer than 16 bytes.  */
+#ifndef MB_LEN_MAX
+# define MB_LEN_MAX 16
+#endif
+
+/* Macros specified by C23 and by ISO/IEC TS 18661-1:2014.  */
 
 #if (! defined ULLONG_WIDTH                                             \
      && (defined _GNU_SOURCE || defined __STDC_WANT_IEC_60559_BFP_EXT__ \
 # define ULLONG_WIDTH _GL_INTEGER_WIDTH (0, ULLONG_MAX)
 #endif
 
-/* Macros specified by C2x.  */
+/* Macros specified by C23.  */
 
-#if (! defined BOOL_WIDTH \
-     && (defined _GNU_SOURCE \
-         || (defined __STDC_VERSION__ && 201710 < __STDC_VERSION__)))
-# define BOOL_MAX 1
-# define BOOL_WIDTH 1
+#if (defined _GNU_SOURCE \
+     || (defined __STDC_VERSION__ && 201710 < __STDC_VERSION__))
+# if ! defined BOOL_WIDTH
+#  define BOOL_WIDTH 1
+#  define BOOL_MAX 1
+# elif ! defined BOOL_MAX
+#  define BOOL_MAX ((((1U << (BOOL_WIDTH - 1)) - 1) << 1) + 1)
+# endif
+#endif
+
+/* Macro specified by POSIX.  */
+
+/* The maximal size_t value.  Although it might not be of ssize_t type
+   as it should be, it's too much trouble to fix this minor detail.  */
+#ifndef SSIZE_MAX
+# ifdef _WIN64
+#  define SSIZE_MAX LLONG_MAX
+# else
+#  define SSIZE_MAX LONG_MAX
+# endif
 #endif
 
 #endif /* _@GUARD_PREFIX@_LIMITS_H */
index 3c50858..7ed9c95 100644 (file)
@@ -1,6 +1,6 @@
 /* Determine a canonical name for the current locale's character encoding.
 
-   Copyright (C) 2000-2006, 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2000-2006, 2008-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 0ff4954..29ee8dc 100644 (file)
@@ -1,5 +1,5 @@
 /* Determine a canonical name for the current locale's character encoding.
-   Copyright (C) 2000-2003, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2000-2003, 2009-2023 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
index 1063070..41a93c1 100644 (file)
@@ -1,5 +1,5 @@
 /* A POSIX <locale.h>.
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 #ifndef _@GUARD_PREFIX@_LOCALE_H
 #define _@GUARD_PREFIX@_LOCALE_H
 
+/* This file uses GNULIB_POSIXCHECK, HAVE_RAW_DECL_*.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 /* NetBSD 5.0 mis-defines NULL.  */
 #include <stddef.h>
 
@@ -229,7 +234,7 @@ _GL_CXXALIAS_SYS (newlocale, locale_t,
                   (int category_mask, const char *name, locale_t base));
 #  endif
 # endif
-# if @HAVE_NEWLOCALE@
+# if __GLIBC__ >= 2 && @HAVE_NEWLOCALE@
 _GL_CXXALIASWARN (newlocale);
 # endif
 # if @HAVE_NEWLOCALE@ || @REPLACE_NEWLOCALE@
@@ -245,23 +250,23 @@ _GL_WARN_ON_USE (newlocale, "newlocale is not portable");
 #endif
 
 #if @GNULIB_DUPLOCALE@ || (@GNULIB_LOCALENAME@ && @LOCALENAME_ENHANCE_LOCALE_FUNCS@ && @HAVE_DUPLOCALE@)
-# if @REPLACE_DUPLOCALE@
-#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#   undef duplocale
-#   define duplocale rpl_duplocale
-#   define GNULIB_defined_duplocale 1
-#  endif
+# if @HAVE_DUPLOCALE@ /* locale_t may be undefined if !@HAVE_DUPLOCALE@.  */
+#  if @REPLACE_DUPLOCALE@
+#   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#    undef duplocale
+#    define duplocale rpl_duplocale
+#    define GNULIB_defined_duplocale 1
+#   endif
 _GL_FUNCDECL_RPL (duplocale, locale_t, (locale_t locale) _GL_ARG_NONNULL ((1)));
 _GL_CXXALIAS_RPL (duplocale, locale_t, (locale_t locale));
-# else
-#  if @HAVE_DUPLOCALE@
+#  else
 _GL_CXXALIAS_SYS (duplocale, locale_t, (locale_t locale));
 #  endif
 # endif
-# if @HAVE_DUPLOCALE@
+# if __GLIBC__ >= 2 && @HAVE_DUPLOCALE@
 _GL_CXXALIASWARN (duplocale);
 # endif
-# if @HAVE_DUPLOCALE@ || @REPLACE_DUPLOCALE@
+# if @HAVE_DUPLOCALE@
 #  ifndef HAVE_WORKING_DUPLOCALE
 #   define HAVE_WORKING_DUPLOCALE 1
 #  endif
@@ -290,7 +295,7 @@ _GL_CXXALIAS_RPL (freelocale, void, (locale_t locale));
 _GL_CXXALIAS_SYS_CAST (freelocale, void, (locale_t locale));
 #  endif
 # endif
-# if @HAVE_FREELOCALE@
+# if __GLIBC__ >= 2 && @HAVE_FREELOCALE@
 _GL_CXXALIASWARN (freelocale);
 # endif
 #elif defined GNULIB_POSIXCHECK
index 25e95a1..c1a34ba 100644 (file)
@@ -1,5 +1,5 @@
 /* Query locale dependent information for formatting numbers.
-   Copyright (C) 2012-2021 Free Software Foundation, Inc.
+   Copyright (C) 2012-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 /* Specification.  */
 #include <locale.h>
 
+#include <limits.h>
+
 #if HAVE_STRUCT_LCONV_DECIMAL_POINT
 
+# define FIX_CHAR_VALUE(x) ((x) >= 0 ? (x) : CHAR_MAX)
+
 /* Override for platforms where 'struct lconv' lacks the int_p_*, int_n_*
-   members.  */
+   members or where fields of type 'char' are set to -1 instead of CHAR_MAX.  */
 
 struct lconv *
 localeconv (void)
@@ -41,21 +45,30 @@ localeconv (void)
   result.positive_sign = sys_result->positive_sign;
   result.negative_sign = sys_result->negative_sign;
   result.currency_symbol = sys_result->currency_symbol;
-  result.frac_digits = sys_result->frac_digits;
-  result.p_cs_precedes = sys_result->p_cs_precedes;
-  result.p_sign_posn = sys_result->p_sign_posn;
-  result.p_sep_by_space = sys_result->p_sep_by_space;
-  result.n_cs_precedes = sys_result->n_cs_precedes;
-  result.n_sign_posn = sys_result->n_sign_posn;
-  result.n_sep_by_space = sys_result->n_sep_by_space;
+  result.frac_digits = FIX_CHAR_VALUE (sys_result->frac_digits);
+  result.p_cs_precedes = FIX_CHAR_VALUE (sys_result->p_cs_precedes);
+  result.p_sign_posn = FIX_CHAR_VALUE (sys_result->p_sign_posn);
+  result.p_sep_by_space = FIX_CHAR_VALUE (sys_result->p_sep_by_space);
+  result.n_cs_precedes = FIX_CHAR_VALUE (sys_result->n_cs_precedes);
+  result.n_sign_posn = FIX_CHAR_VALUE (sys_result->n_sign_posn);
+  result.n_sep_by_space = FIX_CHAR_VALUE (sys_result->n_sep_by_space);
   result.int_curr_symbol = sys_result->int_curr_symbol;
-  result.int_frac_digits = sys_result->int_frac_digits;
-  result.int_p_cs_precedes = sys_result->p_cs_precedes;
-  result.int_p_sign_posn = sys_result->p_sign_posn;
-  result.int_p_sep_by_space = sys_result->p_sep_by_space;
-  result.int_n_cs_precedes = sys_result->n_cs_precedes;
-  result.int_n_sign_posn = sys_result->n_sign_posn;
-  result.int_n_sep_by_space = sys_result->n_sep_by_space;
+  result.int_frac_digits = FIX_CHAR_VALUE (sys_result->int_frac_digits);
+# if HAVE_STRUCT_LCONV_INT_P_CS_PRECEDES
+  result.int_p_cs_precedes = FIX_CHAR_VALUE (sys_result->int_p_cs_precedes);
+  result.int_p_sign_posn = FIX_CHAR_VALUE (sys_result->int_p_sign_posn);
+  result.int_p_sep_by_space = FIX_CHAR_VALUE (sys_result->int_p_sep_by_space);
+  result.int_n_cs_precedes = FIX_CHAR_VALUE (sys_result->int_n_cs_precedes);
+  result.int_n_sign_posn = FIX_CHAR_VALUE (sys_result->int_n_sign_posn);
+  result.int_n_sep_by_space = FIX_CHAR_VALUE (sys_result->int_n_sep_by_space);
+# else
+  result.int_p_cs_precedes = FIX_CHAR_VALUE (sys_result->p_cs_precedes);
+  result.int_p_sign_posn = FIX_CHAR_VALUE (sys_result->p_sign_posn);
+  result.int_p_sep_by_space = FIX_CHAR_VALUE (sys_result->p_sep_by_space);
+  result.int_n_cs_precedes = FIX_CHAR_VALUE (sys_result->n_cs_precedes);
+  result.int_n_sign_posn = FIX_CHAR_VALUE (sys_result->n_sign_posn);
+  result.int_n_sep_by_space = FIX_CHAR_VALUE (sys_result->n_sep_by_space);
+# endif
 
   return &result;
 }
@@ -64,8 +77,6 @@ localeconv (void)
 
 /* Override for platforms where 'struct lconv' is a dummy.  */
 
-# include <limits.h>
-
 struct lconv *
 localeconv (void)
 {
index 7de0bf1..00a4ce2 100644 (file)
@@ -1,6 +1,6 @@
 /* Work around a bug of lstat on some systems
 
-   Copyright (C) 1997-2006, 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 1997-2006, 2008-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 0d8b359..3ade35c 100644 (file)
@@ -1,6 +1,6 @@
 /* malloc() function that is glibc compatible.
 
-   Copyright (C) 1997-1998, 2006-2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 1997-1998, 2006-2007, 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 48210e3..580c278 100644 (file)
@@ -1,5 +1,5 @@
 /* Type-safe arrays which grow dynamically.
-   Copyright (C) 2017-2021 Free Software Foundation, Inc.
+   Copyright (C) 2017-2023 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
index 638c33f..a9a3b08 100644 (file)
@@ -1,5 +1,5 @@
 /* Type-safe arrays which grow dynamically.  Shared definitions.
-   Copyright (C) 2017-2021 Free Software Foundation, Inc.
+   Copyright (C) 2017-2023 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
@@ -94,7 +94,6 @@
 #ifndef _DYNARRAY_H
 #define _DYNARRAY_H
 
-#include <stdbool.h>
 #include <stddef.h>
 #include <string.h>
 
index 4f840db..ebc9310 100644 (file)
@@ -1,5 +1,5 @@
 /* Report an dynamic array index out of bounds condition.
-   Copyright (C) 2017-2021 Free Software Foundation, Inc.
+   Copyright (C) 2017-2023 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
 
 #ifndef _LIBC
 # include <libc-config.h>
+# include <stdlib.h>
 #endif
 
 #include <dynarray.h>
 #include <stdio.h>
-#include <stdlib.h>
 
 void
 __libc_dynarray_at_failure (size_t size, size_t index)
@@ -32,6 +32,7 @@ __libc_dynarray_at_failure (size_t size, size_t index)
   __snprintf (buf, sizeof (buf), "Fatal glibc error: "
               "array index %zu not less than array length %zu\n",
               index, size);
+  __libc_fatal (buf);
 #else
  abort ();
 #endif
index 0f8baf9..65aabb1 100644 (file)
@@ -1,5 +1,5 @@
 /* Increase the size of a dynamic array in preparation of an emplace operation.
-   Copyright (C) 2017-2021 Free Software Foundation, Inc.
+   Copyright (C) 2017-2023 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
@@ -22,7 +22,7 @@
 
 #include <dynarray.h>
 #include <errno.h>
-#include <intprops.h>
+#include <stdckdint.h>
 #include <stdlib.h>
 #include <string.h>
 
@@ -56,7 +56,7 @@ __libc_dynarray_emplace_enlarge (struct dynarray_header *list,
     }
 
   size_t new_size;
-  if (INT_MULTIPLY_WRAPV (new_allocated, element_size, &new_size))
+  if (ckd_mul (&new_size, new_allocated, element_size))
     return false;
   void *new_array;
   if (list->array == scratch)
index c33da41..673595a 100644 (file)
@@ -1,5 +1,5 @@
 /* Copy the dynamically-allocated area to an explicitly-sized heap allocation.
-   Copyright (C) 2017-2021 Free Software Foundation, Inc.
+   Copyright (C) 2017-2023 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
index 5a57166..014f98c 100644 (file)
@@ -1,5 +1,5 @@
 /* Increase the size of a dynamic array.
-   Copyright (C) 2017-2021 Free Software Foundation, Inc.
+   Copyright (C) 2017-2023 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
@@ -22,7 +22,7 @@
 
 #include <dynarray.h>
 #include <errno.h>
-#include <intprops.h>
+#include <stdckdint.h>
 #include <stdlib.h>
 #include <string.h>
 
@@ -42,7 +42,7 @@ __libc_dynarray_resize (struct dynarray_header *list, size_t size,
      over-allocation here.  */
 
   size_t new_size_bytes;
-  if (INT_MULTIPLY_WRAPV (size, element_size, &new_size_bytes))
+  if (ckd_mul (&new_size_bytes, size, element_size))
     {
       /* Overflow.  */
       __set_errno (ENOMEM);
index 9c43b00..bb23c52 100644 (file)
@@ -1,5 +1,5 @@
 /* Increase the size of a dynamic array and clear the new part.
-   Copyright (C) 2017-2021 Free Software Foundation, Inc.
+   Copyright (C) 2017-2023 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
index d7ad095..f055b1e 100644 (file)
@@ -1,5 +1,5 @@
 /* Safe automatic memory allocation.
-   Copyright (C) 2003, 2006-2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2006-2007, 2009-2023 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
@@ -21,9 +21,9 @@
 /* Specification.  */
 #include "malloca.h"
 
+#include <stdckdint.h>
+
 #include "idx.h"
-#include "intprops.h"
-#include "verify.h"
 
 /* The speed critical point in this file is freea() applied to an alloca()
    result: it must be fast, to match the speed of alloca().  The speed of
@@ -39,7 +39,7 @@
 /* Type for holding very small pointer differences.  */
 typedef unsigned char small_t;
 /* Verify that it is wide enough.  */
-verify (2 * sa_alignment_max - 1 <= (small_t) -1);
+static_assert (2 * sa_alignment_max - 1 <= (small_t) -1);
 
 void *
 mmalloca (size_t n)
@@ -47,24 +47,29 @@ mmalloca (size_t n)
 #if HAVE_ALLOCA
   /* Allocate one more word, used to determine the address to pass to freea(),
      and room for the alignment ≡ sa_alignment_max mod 2*sa_alignment_max.  */
-  int plus = sizeof (small_t) + 2 * sa_alignment_max - 1;
+  uintptr_t alignment2_mask = 2 * sa_alignment_max - 1;
+  int plus = sizeof (small_t) + alignment2_mask;
   idx_t nplus;
-  if (!INT_ADD_WRAPV (n, plus, &nplus) && !xalloc_oversized (nplus, 1))
+  if (!ckd_add (&nplus, n, plus) && !xalloc_oversized (nplus, 1))
     {
       char *mem = (char *) malloc (nplus);
 
       if (mem != NULL)
         {
-          char *p =
-            (char *)((((uintptr_t)mem + sizeof (small_t) + sa_alignment_max - 1)
-                      & ~(uintptr_t)(2 * sa_alignment_max - 1))
-                     + sa_alignment_max);
+          uintptr_t umem = (uintptr_t)mem, umemplus;
+          /* The ckd_add avoids signed integer overflow on
+             theoretical platforms where UINTPTR_MAX <= INT_MAX.  */
+          ckd_add (&umemplus, umem, sizeof (small_t) + sa_alignment_max - 1);
+          idx_t offset = ((umemplus & ~alignment2_mask)
+                          + sa_alignment_max - umem);
+          void *vp = mem + offset;
+          small_t *p = vp;
           /* Here p >= mem + sizeof (small_t),
              and p <= mem + sizeof (small_t) + 2 * sa_alignment_max - 1
              hence p + n <= mem + nplus.
              So, the memory range [p, p+n) lies in the allocated memory range
              [mem, mem + nplus).  */
-          ((small_t *) p)[-1] = p - mem;
+          p[-1] = offset;
           /* p ≡ sa_alignment_max mod 2*sa_alignment_max.  */
           return p;
         }
index 6fa1d8b..f68ddfe 100644 (file)
@@ -1,5 +1,5 @@
 /* Safe automatic memory allocation.
-   Copyright (C) 2003-2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2003-2007, 2009-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2003.
 
    This file is free software: you can redistribute it and/or modify
 #ifndef _MALLOCA_H
 #define _MALLOCA_H
 
+/* This file uses _GL_ATTRIBUTE_ALLOC_SIZE, _GL_ATTRIBUTE_DEALLOC,
+   _GL_ATTRIBUTE_MALLOC, HAVE_ALLOCA.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 #include <alloca.h>
 #include <stddef.h>
 #include <stdlib.h>
@@ -51,6 +57,13 @@ extern "C" {
 # define safe_alloca(N) ((void) (N), NULL)
 #endif
 
+/* Free a block of memory allocated through malloca().  */
+#if HAVE_ALLOCA
+extern void freea (void *p);
+#else
+# define freea free
+#endif
+
 /* malloca(N) is a safe variant of alloca(N).  It allocates N bytes of
    memory allocated on the stack, that must be freed using freea() before
    the function returns.  Upon failure, it returns NULL.  */
@@ -65,14 +78,9 @@ extern "C" {
 # define malloca(N) \
   mmalloca (N)
 #endif
-extern void * mmalloca (size_t n);
-
-/* Free a block of memory allocated through malloca().  */
-#if HAVE_ALLOCA
-extern void freea (void *p);
-#else
-# define freea free
-#endif
+extern void *mmalloca (size_t n)
+  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC (freea, 1)
+  _GL_ATTRIBUTE_ALLOC_SIZE ((1));
 
 /* nmalloca(N,S) is an overflow-safe variant of malloca (N * S).
    It allocates an array of N objects, each with S bytes of memory,
index a466257..7d5f72c 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2006, 2009-2021 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2006, 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 704814a..a2ff1d8 100644 (file)
@@ -1,5 +1,5 @@
 /* Multibyte character data type.
-   Copyright (C) 2001, 2005-2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2005-2007, 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 #ifndef _MBCHAR_H
 #define _MBCHAR_H 1
 
-#include <stdbool.h>
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 #include <string.h>
 #include <wchar.h>
 #include <wctype.h>
 
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
 _GL_INLINE_HEADER_BEGIN
 #ifndef MBCHAR_INLINE
 # define MBCHAR_INLINE _GL_INLINE
index 8c49fd7..530181a 100644 (file)
@@ -1,6 +1,6 @@
 /* Iterating through multibyte strings: macros for multi-byte encodings.
 
-   Copyright (C) 2012-2021 Free Software Foundation, Inc.
+   Copyright (C) 2012-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 8337b33..7b41870 100644 (file)
@@ -1,5 +1,5 @@
 /* Iterating through multibyte strings: macros for multi-byte encodings.
-   Copyright (C) 2001, 2005, 2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2005, 2007, 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 #ifndef _MBITER_H
 #define _MBITER_H 1
 
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 #include <assert.h>
-#include <stdbool.h>
 #include <stddef.h>
 #include <string.h>
 #include <wchar.h>
 
 #include "mbchar.h"
 
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
 _GL_INLINE_HEADER_BEGIN
 #ifndef MBITER_INLINE
 # define MBITER_INLINE _GL_INLINE
index 330fb10..4fdd65d 100644 (file)
@@ -1,5 +1,5 @@
 /* Convert multibyte character to wide character.
-   Copyright (C) 1999-2002, 2005-2021 Free Software Foundation, Inc.
+   Copyright (C) 1999-2002, 2005-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index bc3e688..e9c04ed 100644 (file)
@@ -1,5 +1,5 @@
 /* Convert multibyte character to wide character.
-   Copyright (C) 1999-2002, 2005-2021 Free Software Foundation, Inc.
+   Copyright (C) 1999-2002, 2005-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 8832f6e..c1a689a 100644 (file)
@@ -1,5 +1,5 @@
 /* Convert multibyte character to wide character.
-   Copyright (C) 1999-2002, 2005-2021 Free Software Foundation, Inc.
+   Copyright (C) 1999-2002, 2005-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2008.
 
    This file is free software: you can redistribute it and/or modify
 # endif
 
 # include "attribute.h"
-# include "verify.h"
 # include "lc-charset-dispatch.h"
 # include "mbtowc-lock.h"
 
-verify (sizeof (mbstate_t) >= 4);
+static_assert (sizeof (mbstate_t) >= 4);
 static char internal_state[4];
 
 size_t
index cad1de5..03292a5 100644 (file)
@@ -1,11 +1,11 @@
 /* Case-insensitive string comparison function.
-   Copyright (C) 1998-1999, 2005-2021 Free Software Foundation, Inc.
+   Copyright (C) 1998-1999, 2005-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2005,
    based on earlier glibc code.
 
    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 3 of the
+   published by the Free Software Foundation, either version 3 of the
    License, or (at your option) any later version.
 
    This file is distributed in the hope that it will be useful,
index f440155..6e60079 100644 (file)
@@ -1,5 +1,5 @@
 /* Test for initial conversion state.
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2008.
 
    This file is free software: you can redistribute it and/or modify
@@ -20,7 +20,6 @@
 /* Specification.  */
 #include <wchar.h>
 
-#include "verify.h"
 
 #if GNULIB_defined_mbstate_t
 
@@ -39,7 +38,7 @@
      - In wc -> mb direction, mbstate_t contains no information. In other
        words, it is always in the initial state.  */
 
-verify (sizeof (mbstate_t) >= 4);
+static_assert (sizeof (mbstate_t) >= 4);
 
 int
 mbsinit (const mbstate_t *ps)
index 8517f51..54c20be 100644 (file)
@@ -1,10 +1,10 @@
 /* Counting the multibyte characters in a string.
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2007.
 
    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 3 of the
+   published by the Free Software Foundation, either version 3 of the
    License, or (at your option) any later version.
 
    This file is distributed in the hope that it will be useful,
index ab3bab5..bcf729d 100644 (file)
@@ -1,5 +1,5 @@
 /* Convert string to wide string.
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2008.
 
    This file is free software: you can redistribute it and/or modify
index 83445fe..0949a37 100644 (file)
@@ -1,5 +1,5 @@
 /* Convert string to wide string.
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2008.
 
    This file is free software: you can redistribute it and/or modify
index 64fb9ff..c20fc41 100644 (file)
@@ -1,5 +1,5 @@
 /* Convert string to wide string.
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2008.
 
    This file is free software: you can redistribute it and/or modify
index aafe931..03fb704 100644 (file)
@@ -1,10 +1,10 @@
 /* Searching in a string.  -*- coding: utf-8 -*-
-   Copyright (C) 2005-2021 Free Software Foundation, Inc.
+   Copyright (C) 2005-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2005.
 
    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 3 of the
+   published by the Free Software Foundation, either version 3 of the
    License, or (at your option) any later version.
 
    This file is distributed in the hope that it will be useful,
@@ -20,7 +20,6 @@
 /* Specification.  */
 #include <string.h>
 
-#include <stdbool.h>
 #include <stddef.h>  /* for NULL, in case a nonstandard string.h lacks it */
 #include <stdlib.h>
 
index 30d715d..39b977b 100644 (file)
@@ -1,5 +1,5 @@
 /* Convert multibyte character to wide character.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2011.
 
    This file is free software: you can redistribute it and/or modify
index 0f7ae6c..6ca6e10 100644 (file)
@@ -1,5 +1,5 @@
 /* Return the internal lock used by mbrtowc and mbrtoc32.
-   Copyright (C) 2019-2021 Free Software Foundation, Inc.
+   Copyright (C) 2019-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index d31b0b6..2dc22ac 100644 (file)
@@ -1,5 +1,5 @@
 /* Use the internal lock used by mbrtowc and mbrtoc32.
-   Copyright (C) 2019-2021 Free Software Foundation, Inc.
+   Copyright (C) 2019-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 47b431a..8d9b06d 100644 (file)
@@ -1,5 +1,5 @@
 /* Convert multibyte character to wide character.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2011.
 
    This file is free software: you can redistribute it and/or modify
index d740bb0..58dea24 100644 (file)
@@ -1,9 +1,9 @@
 /* Iterating through multibyte strings: macros for multi-byte encodings.
-   Copyright (C) 2012-2021 Free Software Foundation, Inc.
+   Copyright (C) 2012-2023 Free Software Foundation, Inc.
 
    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 3 of the
+   published by the Free Software Foundation, either version 3 of the
    License, or (at your option) any later version.
 
    This file is distributed in the hope that it will be useful,
index 8e87c5c..7a619f1 100644 (file)
@@ -1,9 +1,9 @@
 /* Iterating through multibyte strings: macros for multi-byte encodings.
-   Copyright (C) 2001, 2005, 2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2005, 2007, 2009-2023 Free Software Foundation, Inc.
 
    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 3 of the
+   published by the Free Software Foundation, either version 3 of the
    License, or (at your option) any later version.
 
    This file is distributed in the hope that it will be useful,
 #ifndef _MBUITER_H
 #define _MBUITER_H 1
 
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 #include <assert.h>
-#include <stdbool.h>
 #include <stddef.h>
 #include <stdlib.h>
 #include <string.h>
 #include "mbchar.h"
 #include "strnlen1.h"
 
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
 _GL_INLINE_HEADER_BEGIN
 #ifndef MBUITER_INLINE
 # define MBUITER_INLINE _GL_INLINE
index 56fd59d..8e95579 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2004, 2006, 2008-2021
+/* Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2004, 2006, 2008-2023
    Free Software Foundation, Inc.
 
    Based on strlen implementation by Torbjorn Granlund (tege@sics.se),
index 4f16481..97690f2 100644 (file)
@@ -1,6 +1,6 @@
 # Suppress a valgrind message about use of uninitialized memory in memchr().
 
-# Copyright (C) 2009-2021 Free Software Foundation, Inc.
+# Copyright (C) 2009-2023 Free Software Foundation, Inc.
 #
 # This file is free software: you can redistribute it and/or modify
 # it under the terms of the GNU Lesser General Public License as
index cacacdb..24a3135 100644 (file)
@@ -1,5 +1,5 @@
 /* Copy memory area and return pointer after last written byte.
-   Copyright (C) 2003, 2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2007, 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index a03361b..0ac4019 100644 (file)
@@ -1,5 +1,5 @@
 /* MIN, MAX macros.
-   Copyright (C) 1995, 1998, 2001, 2003, 2005, 2009-2021 Free Software
+   Copyright (C) 1995, 1998, 2001, 2003, 2005, 2009-2023 Free Software
    Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    MIN, MAX macro redefinitions on some systems; the workaround is to
    #include this file as the last one among the #include list.  */
 
+/* This file uses HAVE_MINMAX_IN_LIMITS_H, HAVE_MINMAX_IN_SYS_PARAM_H.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 /* Before we define the following symbols we get the <limits.h> file
    since otherwise we get redefinitions on some systems if <limits.h> is
    included after this file.  Likewise for <sys/param.h>.
index 2766cc7..f94aba1 100644 (file)
@@ -1,7 +1,7 @@
 /* On some systems, mkdir ("foo/", 0700) fails because of the trailing
    slash.  On those systems, this wrapper removes the trailing slash.
 
-   Copyright (C) 2001, 2003, 2006, 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2003, 2006, 2008-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
@@ -48,7 +48,7 @@
 /* This function is required at least for NetBSD 1.5.2.  */
 
 int
-rpl_mkdir (char const *dir, mode_t mode maybe_unused)
+rpl_mkdir (char const *dir, maybe_unused mode_t mode)
 {
   int ret_val;
   char *tmp_dir;
index 6e605d8..77aadbb 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-1999, 2001, 2005-2007, 2009-2021 Free Software
+/* Copyright (C) 1998-1999, 2001, 2005-2007, 2009-2023 Free Software
    Foundation, Inc.
    This file is derived from the one in the GNU C Library.
 
index 7386625..709c36b 100644 (file)
@@ -1,5 +1,5 @@
 /* Internals of mktime and related functions
-   Copyright 2016-2021 Free Software Foundation, Inc.
+   Copyright 2016-2023 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Paul Eggert <eggert@cs.ucla.edu>.
 
index ae721c7..8e80bcd 100644 (file)
@@ -1,5 +1,5 @@
 /* Convert a 'struct tm' to a time_t value.
-   Copyright (C) 1993-2021 Free Software Foundation, Inc.
+   Copyright (C) 1993-2023 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Paul Eggert <eggert@twinsun.com>.
 
@@ -46,6 +46,7 @@
 #include <errno.h>
 #include <limits.h>
 #include <stdbool.h>
+#include <stdckdint.h>
 #include <stdlib.h>
 #include <string.h>
 
@@ -379,7 +380,7 @@ __mktime_internal (struct tm *tp,
   /* Invert CONVERT by probing.  First assume the same offset as last
      time.  */
 
-  INT_SUBTRACT_WRAPV (0, off, &negative_offset_guess);
+  ckd_sub (&negative_offset_guess, 0, off);
   long_int t0 = ydhms_diff (year, yday, hour, min, sec,
                            EPOCH_YEAR - TM_YEAR_BASE, 0, 0, 0,
                            negative_offset_guess);
@@ -429,8 +430,13 @@ __mktime_internal (struct tm *tp,
         time with the right value, and use its UTC offset.
 
         Heuristic: probe the adjacent timestamps in both directions,
-        looking for the desired isdst.  This should work for all real
-        time zone histories in the tz database.  */
+        looking for the desired isdst.  If none is found within a
+        reasonable duration bound, assume a one-hour DST difference.
+        This should work for all real time zone histories in the tz
+        database.  */
+
+      /* +1 if we wanted standard time but got DST, -1 if the reverse.  */
+      int dst_difference = (isdst == 0) - (tm.tm_isdst == 0);
 
       /* Distance between probes when looking for a DST boundary.  In
         tzdata2003a, the shortest period of DST is 601200 seconds
@@ -441,12 +447,14 @@ __mktime_internal (struct tm *tp,
         periods when probing.  */
       int stride = 601200;
 
-      /* The longest period of DST in tzdata2003a is 536454000 seconds
-        (e.g., America/Jujuy starting 1946-10-01 01:00).  The longest
-        period of non-DST is much longer, but it makes no real sense
-        to search for more than a year of non-DST, so use the DST
-        max.  */
-      int duration_max = 536454000;
+      /* In TZDB 2021e, the longest period of DST (or of non-DST), in
+        which the DST (or adjacent DST) difference is not one hour,
+        is 457243209 seconds: e.g., America/Cambridge_Bay with leap
+        seconds, starting 1965-10-31 00:00 in a switch from
+        double-daylight time (-05) to standard time (-07), and
+        continuing to 1980-04-27 02:00 in a switch from standard time
+        (-07) to daylight time (-06).  */
+      int duration_max = 457243209;
 
       /* Search in both directions, so the maximum distance is half
         the duration; add the stride to avoid off-by-1 problems.  */
@@ -458,7 +466,7 @@ __mktime_internal (struct tm *tp,
        for (direction = -1; direction <= 1; direction += 2)
          {
            long_int ot;
-           if (! INT_ADD_WRAPV (t, delta * direction, &ot))
+           if (! ckd_add (&ot, t, delta * direction))
              {
                struct tm otm;
                if (! ranged_convert (convert, &ot, &otm))
@@ -483,6 +491,11 @@ __mktime_internal (struct tm *tp,
              }
          }
 
+      /* No unusual DST offset was found nearby.  Assume one-hour DST.  */
+      t += 60 * 60 * dst_difference;
+      if (mktime_min <= t && t <= mktime_max && convert_time (convert, t, &tm))
+       goto offset_found;
+
       __set_errno (EOVERFLOW);
       return -1;
     }
@@ -491,8 +504,8 @@ __mktime_internal (struct tm *tp,
   /* Set *OFFSET to the low-order bits of T - T0 - NEGATIVE_OFFSET_GUESS.
      This is just a heuristic to speed up the next mktime call, and
      correctness is unaffected if integer overflow occurs here.  */
-  INT_SUBTRACT_WRAPV (t, t0, offset);
-  INT_SUBTRACT_WRAPV (*offset, negative_offset_guess, offset);
+  ckd_sub (offset, t, t0);
+  ckd_sub (offset, *offset, negative_offset_guess);
 
   if (LEAP_SECONDS_POSSIBLE && sec_requested != tm.tm_sec)
     {
@@ -501,7 +514,7 @@ __mktime_internal (struct tm *tp,
       long_int sec_adjustment = sec == 0 && tm.tm_sec == 60;
       sec_adjustment -= sec;
       sec_adjustment += sec_requested;
-      if (INT_ADD_WRAPV (t, sec_adjustment, &t)
+      if (ckd_add (&t, t, sec_adjustment)
          || ! (mktime_min <= t && t <= mktime_max))
        {
          __set_errno (EOVERFLOW);
index a23dac9..c5149a8 100644 (file)
@@ -1,5 +1,5 @@
 /* Invalid parameter handler for MSVC runtime libraries.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index e115a35..c16d880 100644 (file)
@@ -1,5 +1,5 @@
 /* Invalid parameter handler for MSVC runtime libraries.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
        AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [SANE_LIBRARY_HANDLING])
  */
 
+/* This file uses HAVE_MSVC_INVALID_PARAMETER_HANDLER.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 #define DEFAULT_HANDLING       0
 #define HAIRY_LIBRARY_HANDLING 1
 #define SANE_LIBRARY_HANDLING  2
index d3c1f54..f729fe6 100644 (file)
@@ -1,6 +1,6 @@
 /* Wrappers that don't throw invalid parameter notifications
    with MSVC runtime libraries.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 057b5dd..0dd229f 100644 (file)
@@ -1,6 +1,6 @@
 /* Wrappers that don't throw invalid parameter notifications
    with MSVC runtime libraries.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
    This file defines wrappers that turn such an invalid parameter notification
    into an error code.  */
 
+/* This file uses HAVE_MSVC_INVALID_PARAMETER_HANDLER.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 #if defined _WIN32 && ! defined __CYGWIN__
 
 /* Get original declaration of _get_osfhandle.  */
index fcdf56d..e5cdcd3 100644 (file)
@@ -1,5 +1,5 @@
 /* Return the internal lock used by nl_langinfo.
-   Copyright (C) 2019-2021 Free Software Foundation, Inc.
+   Copyright (C) 2019-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index b481f20..f872c6d 100644 (file)
@@ -1,6 +1,6 @@
 /* nl_langinfo() replacement: query locale dependent information.
 
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    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,8 @@
 static char *
 ctype_codeset (void)
 {
+  /* This function is only used on platforms which don't have uselocale().
+     Therefore we don't need to look at the per-thread locale first, here.  */
   static char result[2 + 10 + 1];
   char buf[2 + 10 + 1];
   char locale[SETLOCALE_NULL_MAX];
index 7f258e8..869c97f 100644 (file)
@@ -1,9 +1,9 @@
-/* Copyright (C) 1991-2021 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2023 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
    it under the terms of the GNU Lesser General Public License as
-   published by the Free Software Foundation; either version 3 of the
+   published by the Free Software Foundation, either version 3 of the
    License, or (at your option) any later version.
 
    This file is distributed in the hope that it will be useful,
@@ -22,7 +22,7 @@
 # define HAVE_TZNAME 1
 # include "../locale/localeinfo.h"
 #else
-# include <config.h>
+# include <libc-config.h>
 # if FPRINTFTIME
 #  include "fprintftime.h"
 # else
@@ -62,10 +62,10 @@ extern char *tzname[];
 #endif
 
 #include <limits.h>
+#include <stdckdint.h>
 #include <stddef.h>
 #include <stdlib.h>
 #include <string.h>
-#include <stdbool.h>
 
 #include "attribute.h"
 #include <intprops.h>
@@ -227,15 +227,6 @@ extern char *tzname[];
 #  undef __mbsrtowcs_l
 #  define __mbsrtowcs_l(d, s, l, st, loc) __mbsrtowcs (d, s, l, st)
 # endif
-# define widen(os, ws, l) \
-  {                                                                           \
-    mbstate_t __st;                                                           \
-    const char *__s = os;                                                     \
-    memset (&__st, '\0', sizeof (__st));                                      \
-    l = __mbsrtowcs_l (NULL, &__s, 0, &__st, loc);                            \
-    ws = (wchar_t *) alloca ((l + 1) * sizeof (wchar_t));                     \
-    (void) __mbsrtowcs_l (ws, &__s, l, &__st, loc);                           \
-  }
 #endif
 
 
@@ -285,6 +276,14 @@ extern char *tzname[];
    more reliable way to accept other sets of digits.  */
 #define ISDIGIT(Ch) ((unsigned int) (Ch) - L_('0') <= 9)
 
+/* Avoid false GCC warning "'memset' specified size 18446744073709551615 exceeds
+   maximum object size 9223372036854775807", caused by insufficient data flow
+   analysis and value propagation of the 'width_add' expansion when GCC is not
+   optimizing.  Cf. <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88443>.  */
+#if __GNUC__ >= 7 && !__OPTIMIZE__
+# pragma GCC diagnostic ignored "-Wstringop-overflow"
+#endif
+
 #if FPRINTFTIME
 static void
 fwrite_lowcase (FILE *fp, const CHAR_T *src, size_t len)
@@ -367,10 +366,7 @@ tm_diff (const struct tm *a, const struct tm *b)
 #define ISO_WEEK1_WDAY 4 /* Thursday */
 #define YDAY_MINIMUM (-366)
 static int iso_week_days (int, int);
-#if defined __GNUC__ || defined __clang__
-__inline__
-#endif
-static int
+static __inline int
 iso_week_days (int yday, int wday)
 {
   /* Add enough to the first operand of % to make it nonnegative.  */
@@ -428,9 +424,7 @@ my_strftime (STREAM_OR_CHAR_T *s, STRFTIME_ARG (size_t maxsize)
   return __strftime_internal (s, STRFTIME_ARG (maxsize) format, tp, false,
                               0, -1, &tzset_called extra_args LOCALE_ARG);
 }
-#if defined _LIBC && ! FPRINTFTIME
 libc_hidden_def (my_strftime)
-#endif
 
 /* Just like my_strftime, above, but with more parameters.
    UPCASE indicates that the result should be converted to upper case.
@@ -656,6 +650,8 @@ __strftime_internal (STREAM_OR_CHAR_T *s, STRFTIME_ARG (size_t maxsize)
 
 #endif /* ! DO_MULTIBYTE */
 
+      char const *percent = f;
+
       /* Check for flags that can modify a format.  */
       while (1)
         {
@@ -688,8 +684,8 @@ __strftime_internal (STREAM_OR_CHAR_T *s, STRFTIME_ARG (size_t maxsize)
           width = 0;
           do
             {
-              if (INT_MULTIPLY_WRAPV (width, 10, &width)
-                  || INT_ADD_WRAPV (width, *f - L_('0'), &width))
+              if (ckd_mul (&width, width, 10)
+                  || ckd_add (&width, width, *f - L_('0')))
                 width = INT_MAX;
               ++f;
             }
@@ -757,8 +753,8 @@ __strftime_internal (STREAM_OR_CHAR_T *s, STRFTIME_ARG (size_t maxsize)
           while (0)
 
         case L_('%'):
-          if (modifier != 0)
-            goto bad_format;
+          if (f - 1 != percent)
+            goto bad_percent;
           add1 (*f);
           break;
 
@@ -1161,7 +1157,6 @@ __strftime_internal (STREAM_OR_CHAR_T *s, STRFTIME_ARG (size_t maxsize)
 
         case L_('q'):           /* GNU extension.  */
           DO_SIGNED_NUMBER (1, false, ((tp->tm_mon * 11) >> 5) + 1);
-          break;
 
         case L_('R'):
           subfmt = L_("%H:%M");
@@ -1379,11 +1374,31 @@ __strftime_internal (STREAM_OR_CHAR_T *s, STRFTIME_ARG (size_t maxsize)
 #ifdef COMPILE_WIDE
           {
             /* The zone string is always given in multibyte form.  We have
-               to transform it first.  */
-            wchar_t *wczone;
-            size_t len;
-            widen (zone, wczone, len);
-            cpy (len, wczone);
+               to convert it to wide character.  */
+            size_t w = pad == L_('-') || width < 0 ? 0 : width;
+            char const *z = zone;
+            mbstate_t st = {0};
+            size_t len = __mbsrtowcs_l (p, &z, maxsize - i, &st, loc);
+            if (len == (size_t) -1)
+              return 0;
+            size_t incr = len < w ? w : len;
+            if (incr >= maxsize - i)
+              {
+                errno = ERANGE;
+                return 0;
+              }
+            if (p)
+              {
+                if (len < w)
+                  {
+                    size_t delta = w - len;
+                    wmemmove (p + delta, p, len);
+                    wchar_t wc = pad == L_('0') || pad == L_('+') ? L'0' : L' ';
+                    wmemset (p, wc, delta);
+                  }
+                p += incr;
+              }
+            i += incr;
           }
 #else
           cpy (strlen (zone), zone);
@@ -1472,6 +1487,7 @@ __strftime_internal (STREAM_OR_CHAR_T *s, STRFTIME_ARG (size_t maxsize)
           }
 
         case L_('\0'):          /* GNU extension: % at end of format.  */
+        bad_percent:
             --f;
             FALLTHROUGH;
         default:
@@ -1479,12 +1495,7 @@ __strftime_internal (STREAM_OR_CHAR_T *s, STRFTIME_ARG (size_t maxsize)
              since this is most likely the right thing to do if a
              multibyte string has been misparsed.  */
         bad_format:
-          {
-            int flen;
-            for (flen = 1; f[1 - flen] != L_('%'); flen++)
-              continue;
-            cpy (flen, &f[1 - flen]);
-          }
+          cpy (f - percent + 1, percent);
           break;
         }
     }
index b12ff2f..b02890f 100644 (file)
@@ -1,6 +1,6 @@
 /* Convert 'off_t' integer to printable string.
 
-   Copyright (C) 2004-2021 Free Software Foundation, Inc.
+   Copyright (C) 2004-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 372cda8..7ec8fdc 100644 (file)
@@ -1,5 +1,5 @@
 /* Open a descriptor to a file.
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 716f4a9..6930283 100644 (file)
@@ -1,5 +1,5 @@
 /* Define PATH_MAX somehow.  Requires sys/types.h.
-   Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2021 Free Software
+   Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2023 Free Software
    Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
          #endif
  */
 
+/* This file uses HAVE_SYS_PARAM_H.  */
+# if !_GL_CONFIG_H_INCLUDED
+#  error "Please include config.h first."
+# endif
+
 # include <unistd.h>
 
 # include <limits.h>
diff --git a/lib/prepargs.c b/lib/prepargs.c
deleted file mode 100644 (file)
index 3751ae0..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-/* Parse arguments from a string and prepend them to an argv.
-
-   Copyright (C) 1999-2002, 2006, 2009-2013, 2015-2021 Free Software
-   Foundation, Inc.
-
-   This program is free software: you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation, either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-/* Written by Paul Eggert <eggert@twinsun.com>.  */
-
-#include <config.h>
-
-#include "prepargs.h"
-#include <string.h>
-#include <sys/types.h>
-#include <xalloc.h>
-
-#include <ctype.h>
-
-/* IN_CTYPE_DOMAIN (C) is nonzero if the unsigned char C can safely be given
-   as an argument to <ctype.h> macros like "isspace".  */
-#ifdef STDC_HEADERS
-# define IN_CTYPE_DOMAIN(c) 1
-#else
-# define IN_CTYPE_DOMAIN(c) ((c) <= 0177)
-#endif
-
-#define ISSPACE(c) (IN_CTYPE_DOMAIN (c) && isspace (c))
-
-/* Find the white-space-separated options specified by OPTIONS, and
-   using BUF to store copies of these options, set ARGV[0], ARGV[1],
-   etc. to the option copies.  Return the number N of options found.
-   Do not set ARGV[N].  If ARGV is zero, do not store ARGV[0] etc.
-   Backslash can be used to escape whitespace (and backslashes).  */
-static int
-prepend_args (char const *options, char *buf, char **argv)
-{
-  char const *o = options;
-  char *b = buf;
-  int n = 0;
-
-  for (;;)
-    {
-      while (ISSPACE ((unsigned char) *o))
-        o++;
-      if (!*o)
-        return n;
-      if (argv)
-        argv[n] = b;
-      n++;
-
-      do
-        if ((*b++ = *o++) == '\\' && *o)
-          b[-1] = *o++;
-      while (*o && ! ISSPACE ((unsigned char) *o));
-
-      *b++ = '\0';
-    }
-}
-
-/* Prepend the whitespace-separated options in OPTIONS to the argument
-   vector of a main program with argument count *PARGC and argument
-   vector *PARGV.  */
-void
-prepend_default_options (char const *options, int *pargc, char ***pargv)
-{
-  if (options)
-    {
-      char *buf = xmalloc (strlen (options) + 1);
-      int prepended = prepend_args (options, buf, (char **) 0);
-      int argc = *pargc;
-      char * const *argv = *pargv;
-      char **pp = xmalloc ((prepended + argc + 1) * sizeof *pp);
-      *pargc = prepended + argc;
-      *pargv = pp;
-      *pp++ = *argv++;
-      pp += prepend_args (options, buf, pp);
-      while ((*pp++ = *argv++))
-        continue;
-    }
-}
diff --git a/lib/prepargs.h b/lib/prepargs.h
deleted file mode 100644 (file)
index ce93ea8..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-/* Parse arguments from a string and prepend them to an argv.  */
-
-void prepend_default_options (char const *, int *, char ***);
index fd7acae..ed928e0 100644 (file)
@@ -1,10 +1,10 @@
 /* Program name management.
-   Copyright (C) 2001-2003, 2005-2021 Free Software Foundation, Inc.
+   Copyright (C) 2001-2003, 2005-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2001.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index bf3513d..945d169 100644 (file)
@@ -1,10 +1,10 @@
 /* Program name management.
-   Copyright (C) 2001-2004, 2006, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2001-2004, 2006, 2009-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2001.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 561566b..f9eae49 100644 (file)
@@ -1,10 +1,10 @@
 /* Localization of proper names.
-   Copyright (C) 2006-2021 Free Software Foundation, Inc.
+   Copyright (C) 2006-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2006.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -27,7 +27,6 @@
 #include "propername.h"
 
 #include <ctype.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
index ee09d7c..359c8b5 100644 (file)
@@ -1,10 +1,10 @@
 /* Localization of proper names.  -*- coding: utf-8 -*-
-   Copyright (C) 2006, 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2008-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2006.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 3204997..9ec5747 100644 (file)
@@ -1,10 +1,10 @@
 /* quote.h - prototypes for quote.c
 
-   Copyright (C) 1998-2001, 2003, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 1998-2001, 2003, 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 5704689..975bd61 100644 (file)
@@ -1,10 +1,10 @@
 /* quotearg.c - quote arguments for output
 
-   Copyright (C) 1998-2002, 2004-2021 Free Software Foundation, Inc.
+   Copyright (C) 1998-2002, 2004-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -38,7 +38,6 @@
 #include <ctype.h>
 #include <errno.h>
 #include <limits.h>
-#include <stdbool.h>
 #include <stdint.h>
 #include <stdlib.h>
 #include <string.h>
@@ -787,7 +786,6 @@ quotearg_buffer (char *buffer, size_t buffersize,
   return r;
 }
 
-/* Equivalent to quotearg_alloc (ARG, ARGSIZE, NULL, O).  */
 char *
 quotearg_alloc (char const *arg, size_t argsize,
                 struct quoting_options const *o)
index ecef74f..baab586 100644 (file)
@@ -1,11 +1,11 @@
 /* quotearg.h - quote arguments for output
 
-   Copyright (C) 1998-2002, 2004, 2006, 2008-2021 Free Software Foundation,
+   Copyright (C) 1998-2002, 2004, 2006, 2008-2023 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
 #ifndef QUOTEARG_H_
 # define QUOTEARG_H_ 1
 
-# include <stddef.h>
+/* This file uses _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_RETURNS_NONNULL.  */
+# if !_GL_CONFIG_H_INCLUDED
+#  error "Please include config.h first."
+# endif
+
 # include <stdlib.h>
 
 /* Basic quoting styles.  For each style, an example is given on the
@@ -279,6 +283,7 @@ struct quoting_options;
 struct quoting_options *clone_quoting_options (struct quoting_options *o)
   _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE
   _GL_ATTRIBUTE_RETURNS_NONNULL;
+
 /* Get the value of O's quoting style.  If O is null, use the default.  */
 enum quoting_style get_quoting_style (struct quoting_options const *o);
 
@@ -333,7 +338,9 @@ size_t quotearg_buffer (char *restrict buffer, size_t buffersize,
    buffer.  It is the caller's responsibility to free the result.  The
    result will not contain embedded null bytes.  */
 char *quotearg_alloc (char const *arg, size_t argsize,
-                      struct quoting_options const *o);
+                      struct quoting_options const *o)
+  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE
+  _GL_ATTRIBUTE_RETURNS_NONNULL;
 
 /* Like quotearg_alloc, except that the length of the result,
    excluding the terminating null byte, is stored into SIZE if it is
@@ -342,7 +349,9 @@ char *quotearg_alloc (char const *arg, size_t argsize,
    backslash escapes, and the flags of O do not request elision of
    null bytes.*/
 char *quotearg_alloc_mem (char const *arg, size_t argsize,
-                          size_t *size, struct quoting_options const *o);
+                          size_t *size, struct quoting_options const *o)
+  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE
+  _GL_ATTRIBUTE_RETURNS_NONNULL;
 
 /* Use storage slot N to return a quoted version of the string ARG.
    Use the default quoting options.
index 37c100d..506e20b 100644 (file)
@@ -1,6 +1,6 @@
 /* Provide a non-threads replacement for the POSIX raise function.
 
-   Copyright (C) 2002-2003, 2005-2006, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2002-2003, 2005-2006, 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 896d435..45c6cd3 100644 (file)
@@ -1,5 +1,5 @@
 /* Searching in a string.
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 /* A function definition is only needed if HAVE_RAWMEMCHR is not defined.  */
 #if !HAVE_RAWMEMCHR
 
+# include <limits.h>
+# include <stdint.h>
+
+
 /* Find the first occurrence of C in S.  */
 void *
 rawmemchr (const void *s, int c_in)
 {
-  /* On 32-bit hardware, choosing longword to be a 32-bit unsigned
-     long instead of a 64-bit uintmax_t tends to give better
-     performance.  On 64-bit hardware, unsigned long is generally 64
-     bits already.  Change this typedef to experiment with
-     performance.  */
-  typedef unsigned long int longword;
+  /* Change this typedef to experiment with performance.  */
+  typedef uintptr_t longword;
+  /* If you change the "uintptr_t", you should change UINTPTR_WIDTH to match.
+     This verifies that the type does not have padding bits.  */
+  static_assert (UINTPTR_WIDTH == UCHAR_WIDTH * sizeof (longword));
 
   const unsigned char *char_ptr;
-  const longword *longword_ptr;
-  longword repeated_one;
-  longword repeated_c;
-  unsigned char c;
-
-  c = (unsigned char) c_in;
+  unsigned char c = c_in;
 
   /* 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;
-       (size_t) char_ptr % sizeof (longword) != 0;
+       (uintptr_t) char_ptr % alignof (longword) != 0;
        ++char_ptr)
     if (*char_ptr == c)
       return (void *) 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.  */
+  longword const *longword_ptr = s = char_ptr;
 
   /* 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)
-            {
-              repeated_one |= repeated_one << i;
-              repeated_c |= repeated_c << i;
-            }
-        }
-    }
+  longword repeated_one = (longword) -1 / UCHAR_MAX;
+  longword repeated_c = repeated_one * c;
+  longword repeated_hibit = repeated_one * (UCHAR_MAX / 2 + 1);
 
   /* 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 NUL or
+     test a longword at a time.  The tricky part is testing if any of
+     the 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.
+     to testing whether any of the bytes in longword1 is zero.
+
+     (The following comments assume 8-bit bytes, as POSIX requires;
+     the code's use of UCHAR_MAX should work even if bytes have more
+     than 8 bits.)
 
      We compute tmp =
-       ((longword1 - repeated_one) & ~longword1) & (repeated_one << 7).
+       ((longword1 - repeated_one) & ~longword1) & (repeated_one * 0x80).
      That is, we perform the following operations:
        1. Subtract repeated_one.
        2. & ~longword1.
@@ -117,22 +101,20 @@ rawmemchr (const void *s, int c_in)
     {
       longword longword1 = *longword_ptr ^ repeated_c;
 
-      if ((((longword1 - repeated_one) & ~longword1)
-           & (repeated_one << 7)) != 0)
+      if ((((longword1 - repeated_one) & ~longword1) & repeated_hibit) != 0)
         break;
       longword_ptr++;
     }
 
-  char_ptr = (const unsigned char *) longword_ptr;
+  char_ptr = s = longword_ptr;
 
   /* At this point, we know that one of the sizeof (longword) bytes
-     starting at char_ptr is == c.  On little-endian machines, we
+     starting at char_ptr is == c.  If we knew endianness, 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.  */
+     iteration.  However, the following simple and portable code does
+     not attempt this potential optimization.  */
 
-  char_ptr = (unsigned char *) longword_ptr;
   while (*char_ptr != c)
     char_ptr++;
   return (void *) char_ptr;
index d489c32..f3e4cb0 100644 (file)
@@ -1,6 +1,6 @@
 # Suppress a valgrind message about use of uninitialized memory in rawmemchr().
 
-# Copyright (C) 2008-2021 Free Software Foundation, Inc.
+# Copyright (C) 2008-2023 Free Software Foundation, Inc.
 #
 # This file is free software: you can redistribute it and/or modify
 # it under the terms of the GNU Lesser General Public License as
index d4f4b08..14bbb7f 100644 (file)
@@ -1,5 +1,5 @@
 /* Read the contents of a symbolic link.
-   Copyright (C) 2003-2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2003-2007, 2009-2023 Free Software Foundation, Inc.
 
    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 @@
    such as DJGPP 2.03 and mingw32.  */
 
 ssize_t
-readlink (char const *file, char *buf _GL_UNUSED,
-          size_t bufsize _GL_UNUSED)
+readlink (char const *file, _GL_UNUSED char *buf,
+          _GL_UNUSED size_t bufsize)
 {
   struct stat statbuf;
 
index af03f0c..1063eb0 100644 (file)
@@ -1,6 +1,6 @@
 /* realloc() function that is glibc compatible.
 
-   Copyright (C) 1997, 2003-2004, 2006-2007, 2009-2021 Free Software
+   Copyright (C) 1997, 2003-2004, 2006-2007, 2009-2023 Free Software
    Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
index 1fb2f3c..8c99250 100644 (file)
@@ -1,6 +1,6 @@
 /* reallocarray function that is glibc compatible.
 
-   Copyright (C) 2017-2021 Free Software Foundation, Inc.
+   Copyright (C) 2017-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 
 #include <config.h>
 
+#include <stdckdint.h>
 #include <stdlib.h>
 #include <errno.h>
 
-#include "intprops.h"
-
 void *
 reallocarray (void *ptr, size_t nmemb, size_t size)
 {
   size_t nbytes;
-  if (INT_MULTIPLY_WRAPV (nmemb, size, &nbytes))
+  if (ckd_mul (&nbytes, nmemb, size))
     {
       errno = ENOMEM;
       return NULL;
index 887e5b5..8947839 100644 (file)
@@ -1,5 +1,5 @@
 /* Extended regular expression matching and search library.
-   Copyright (C) 2002-2021 Free Software Foundation, Inc.
+   Copyright (C) 2002-2023 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
 
@@ -27,14 +27,10 @@ static void re_compile_fastmap_iter (regex_t *bufp,
                                     const re_dfastate_t *init_state,
                                     char *fastmap);
 static reg_errcode_t init_dfa (re_dfa_t *dfa, size_t pat_len);
-#ifdef RE_ENABLE_I18N
 static void free_charset (re_charset_t *cset);
-#endif /* RE_ENABLE_I18N */
 static void free_workarea_compile (regex_t *preg);
 static reg_errcode_t create_initial_state (re_dfa_t *dfa);
-#ifdef RE_ENABLE_I18N
 static void optimize_utf8 (re_dfa_t *dfa);
-#endif
 static reg_errcode_t analyze (regex_t *preg);
 static reg_errcode_t preorder (bin_tree_t *root,
                               reg_errcode_t (fn (void *, bin_tree_t *)),
@@ -89,7 +85,6 @@ static reg_errcode_t parse_bracket_element (bracket_elem_t *elem,
 static reg_errcode_t parse_bracket_symbol (bracket_elem_t *elem,
                                          re_string_t *regexp,
                                          re_token_t *token);
-#ifdef RE_ENABLE_I18N
 static reg_errcode_t build_equiv_class (bitset_t sbcset,
                                        re_charset_t *mbcset,
                                        Idx *equiv_class_alloc,
@@ -100,14 +95,6 @@ static reg_errcode_t build_charclass (RE_TRANSLATE_TYPE trans,
                                      Idx *char_class_alloc,
                                      const char *class_name,
                                      reg_syntax_t syntax);
-#else  /* not RE_ENABLE_I18N */
-static reg_errcode_t build_equiv_class (bitset_t sbcset,
-                                       const unsigned char *name);
-static reg_errcode_t build_charclass (RE_TRANSLATE_TYPE trans,
-                                     bitset_t sbcset,
-                                     const char *class_name,
-                                     reg_syntax_t syntax);
-#endif /* not RE_ENABLE_I18N */
 static bin_tree_t *build_charclass_op (re_dfa_t *dfa,
                                       RE_TRANSLATE_TYPE trans,
                                       const char *class_name,
@@ -279,8 +266,7 @@ re_compile_fastmap (struct re_pattern_buffer *bufp)
 }
 weak_alias (__re_compile_fastmap, re_compile_fastmap)
 
-static inline void
-__attribute__ ((always_inline))
+static __always_inline void
 re_set_fastmap (char *fastmap, bool icase, int ch)
 {
   fastmap[ch] = 1;
@@ -306,7 +292,6 @@ re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state,
       if (type == CHARACTER)
        {
          re_set_fastmap (fastmap, icase, dfa->nodes[node].opr.c);
-#ifdef RE_ENABLE_I18N
          if ((bufp->syntax & RE_ICASE) && dfa->mb_cur_max > 1)
            {
              unsigned char buf[MB_LEN_MAX];
@@ -327,7 +312,6 @@ re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state,
                      != (size_t) -1))
                re_set_fastmap (fastmap, false, buf[0]);
            }
-#endif
        }
       else if (type == SIMPLE_BRACKET)
        {
@@ -341,13 +325,12 @@ re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state,
                  re_set_fastmap (fastmap, icase, ch);
            }
        }
-#ifdef RE_ENABLE_I18N
       else if (type == COMPLEX_BRACKET)
        {
          re_charset_t *cset = dfa->nodes[node].opr.mbcset;
          Idx i;
 
-# ifdef _LIBC
+#ifdef _LIBC
          /* See if we have to try all bytes which start multiple collation
             elements.
             e.g. In da_DK, we want to catch 'a' since "aa" is a valid
@@ -363,7 +346,7 @@ re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state,
                    if (table[i] < 0)
                      re_set_fastmap (fastmap, icase, i);
                }
-# endif /* _LIBC */
+#endif /* _LIBC */
 
          /* See if we have to start the match at all multibyte characters,
             i.e. where we would not find an invalid sequence.  This only
@@ -371,9 +354,9 @@ re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state,
             sets, the SIMPLE_BRACKET again suffices.  */
          if (dfa->mb_cur_max > 1
              && (cset->nchar_classes || cset->non_match || cset->nranges
-# ifdef _LIBC
+#ifdef _LIBC
                  || cset->nequiv_classes
-# endif /* _LIBC */
+#endif /* _LIBC */
                 ))
            {
              unsigned char c = 0;
@@ -406,12 +389,7 @@ re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state,
                }
            }
        }
-#endif /* RE_ENABLE_I18N */
-      else if (type == OP_PERIOD
-#ifdef RE_ENABLE_I18N
-              || type == OP_UTF8_PERIOD
-#endif /* RE_ENABLE_I18N */
-              || type == END_OF_RE)
+      else if (type == OP_PERIOD || type == OP_UTF8_PERIOD || type == END_OF_RE)
        {
          memset (fastmap, '\1', sizeof (char) * SBC_MAX);
          if (type == END_OF_RE)
@@ -550,7 +528,6 @@ regerror (int errcode, const regex_t *__restrict preg, char *__restrict errbuf,
 weak_alias (__regerror, regerror)
 
 
-#ifdef RE_ENABLE_I18N
 /* This static array is used for the map to single-byte characters when
    UTF-8 is used.  Otherwise we would allocate memory just to initialize
    it the same all the time.  UTF-8 is the preferred encoding so this is
@@ -558,25 +535,24 @@ weak_alias (__regerror, regerror)
 static const bitset_t utf8_sb_map =
 {
   /* Set the first 128 bits.  */
-# if (defined __GNUC__ || __clang_major__ >= 4) && !defined __STRICT_ANSI__
+#if (defined __GNUC__ || __clang_major__ >= 4) && !defined __STRICT_ANSI__
   [0 ... 0x80 / BITSET_WORD_BITS - 1] = BITSET_WORD_MAX
-# else
-#  if 4 * BITSET_WORD_BITS < ASCII_CHARS
-#   error "bitset_word_t is narrower than 32 bits"
-#  elif 3 * BITSET_WORD_BITS < ASCII_CHARS
+#else
+# if 4 * BITSET_WORD_BITS < ASCII_CHARS
+#  error "bitset_word_t is narrower than 32 bits"
+# elif 3 * BITSET_WORD_BITS < ASCII_CHARS
   BITSET_WORD_MAX, BITSET_WORD_MAX, BITSET_WORD_MAX,
-#  elif 2 * BITSET_WORD_BITS < ASCII_CHARS
+# elif 2 * BITSET_WORD_BITS < ASCII_CHARS
   BITSET_WORD_MAX, BITSET_WORD_MAX,
-#  elif 1 * BITSET_WORD_BITS < ASCII_CHARS
+# elif 1 * BITSET_WORD_BITS < ASCII_CHARS
   BITSET_WORD_MAX,
-#  endif
+# endif
   (BITSET_WORD_MAX
    >> (SBC_MAX % BITSET_WORD_BITS == 0
        ? 0
        : BITSET_WORD_BITS - SBC_MAX % BITSET_WORD_BITS))
-# endif
-};
 #endif
+};
 
 
 static void
@@ -614,10 +590,8 @@ free_dfa_content (re_dfa_t *dfa)
        re_free (entry->array);
       }
   re_free (dfa->state_table);
-#ifdef RE_ENABLE_I18N
   if (dfa->sb_char != utf8_sb_map)
     re_free (dfa->sb_char);
-#endif
   re_free (dfa->subexp_map);
 #ifdef DEBUG
   re_free (dfa->re_str);
@@ -796,11 +770,9 @@ re_compile_internal (regex_t *preg, const char * pattern, size_t length,
   if (__glibc_unlikely (err != REG_NOERROR))
     goto re_compile_internal_free_return;
 
-#ifdef RE_ENABLE_I18N
   /* If possible, do searching in single byte encoding to speed things up.  */
   if (dfa->is_utf8 && !(syntax & RE_ICASE) && preg->translate == NULL)
     optimize_utf8 (dfa);
-#endif
 
   /* Then create the initial state of the dfa.  */
   err = create_initial_state (dfa);
@@ -830,11 +802,7 @@ init_dfa (re_dfa_t *dfa, size_t pat_len)
 #ifndef _LIBC
   const char *codeset_name;
 #endif
-#ifdef RE_ENABLE_I18N
   size_t max_i18n_object_size = MAX (sizeof (wchar_t), sizeof (wctype_t));
-#else
-  size_t max_i18n_object_size = 0;
-#endif
   size_t max_object_size =
     MAX (sizeof (struct re_state_table_entry),
         MAX (sizeof (re_token_t),
@@ -886,7 +854,6 @@ init_dfa (re_dfa_t *dfa, size_t pat_len)
   dfa->map_notascii = 0;
 #endif
 
-#ifdef RE_ENABLE_I18N
   if (dfa->mb_cur_max > 1)
     {
       if (dfa->is_utf8)
@@ -906,14 +873,13 @@ init_dfa (re_dfa_t *dfa, size_t pat_len)
                wint_t wch = __btowc (ch);
                if (wch != WEOF)
                  dfa->sb_char[i] |= (bitset_word_t) 1 << j;
-# ifndef _LIBC
+#ifndef _LIBC
                if (isascii (ch) && wch != ch)
                  dfa->map_notascii = 1;
-# endif
+#endif
              }
        }
     }
-#endif
 
   if (__glibc_unlikely (dfa->nodes == NULL || dfa->state_table == NULL))
     return REG_ESPACE;
@@ -933,8 +899,6 @@ init_word_char (re_dfa_t *dfa)
   dfa->word_ops_used = 1;
   if (__glibc_likely (dfa->map_notascii == 0))
     {
-      /* Avoid uint32_t and uint64_t as some non-GCC platforms lack
-        them, an issue when this code is used in Gnulib.  */
       bitset_word_t bits0 = 0x00000000;
       bitset_word_t bits1 = 0x03ff0000;
       bitset_word_t bits2 = 0x87fffffe;
@@ -1074,7 +1038,6 @@ create_initial_state (re_dfa_t *dfa)
   return REG_NOERROR;
 }
 \f
-#ifdef RE_ENABLE_I18N
 /* If it is possible to do searching in single byte encoding instead of UTF-8
    to speed things up, set dfa->mb_cur_max to 1, clear is_utf8 and change
    DFA nodes where needed.  */
@@ -1154,7 +1117,6 @@ optimize_utf8 (re_dfa_t *dfa)
   dfa->is_utf8 = 0;
   dfa->has_mb_node = dfa->nbackref > 0 || has_period;
 }
-#endif
 \f
 /* Analyze the structure tree, and calculate "first", "next", "edest",
    "eclosure", and "inveclosure".  */
@@ -1792,7 +1754,6 @@ peek_token (re_token_t *token, re_string_t *input, reg_syntax_t syntax)
   token->opr.c = c;
 
   token->word_char = 0;
-#ifdef RE_ENABLE_I18N
   token->mb_partial = 0;
   if (input->mb_cur_max > 1
       && !re_string_first_byte (input, re_string_cur_idx (input)))
@@ -1801,7 +1762,6 @@ peek_token (re_token_t *token, re_string_t *input, reg_syntax_t syntax)
       token->mb_partial = 1;
       return 1;
     }
-#endif
   if (c == '\\')
     {
       unsigned char c2;
@@ -1814,7 +1774,6 @@ peek_token (re_token_t *token, re_string_t *input, reg_syntax_t syntax)
       c2 = re_string_peek_byte_case (input, 1);
       token->opr.c = c2;
       token->type = CHARACTER;
-#ifdef RE_ENABLE_I18N
       if (input->mb_cur_max > 1)
        {
          wint_t wc = re_string_wchar_at (input,
@@ -1822,7 +1781,6 @@ peek_token (re_token_t *token, re_string_t *input, reg_syntax_t syntax)
          token->word_char = IS_WIDE_WORD_CHAR (wc) != 0;
        }
       else
-#endif
        token->word_char = IS_WORD_CHAR (c2) != 0;
 
       switch (c2)
@@ -1928,14 +1886,12 @@ peek_token (re_token_t *token, re_string_t *input, reg_syntax_t syntax)
     }
 
   token->type = CHARACTER;
-#ifdef RE_ENABLE_I18N
   if (input->mb_cur_max > 1)
     {
       wint_t wc = re_string_wchar_at (input, re_string_cur_idx (input));
       token->word_char = IS_WIDE_WORD_CHAR (wc) != 0;
     }
   else
-#endif
     token->word_char = IS_WORD_CHAR (token->opr.c);
 
   switch (c)
@@ -2027,14 +1983,12 @@ peek_token_bracket (re_token_t *token, re_string_t *input, reg_syntax_t syntax)
   c = re_string_peek_byte (input, 0);
   token->opr.c = c;
 
-#ifdef RE_ENABLE_I18N
   if (input->mb_cur_max > 1
       && !re_string_first_byte (input, re_string_cur_idx (input)))
     {
       token->type = CHARACTER;
       return 1;
     }
-#endif /* RE_ENABLE_I18N */
 
   if (c == '\\' && (syntax & RE_BACKSLASH_ESCAPE_IN_LISTS)
       && re_string_cur_idx (input) + 1 < re_string_length (input))
@@ -2084,15 +2038,25 @@ peek_token_bracket (re_token_t *token, re_string_t *input, reg_syntax_t syntax)
     }
   switch (c)
     {
-    case '-':
-      token->type = OP_CHARSET_RANGE;
-      break;
     case ']':
       token->type = OP_CLOSE_BRACKET;
       break;
     case '^':
       token->type = OP_NON_MATCH_LIST;
       break;
+    case '-':
+      /* In V7 Unix grep and Unix awk and mawk, [...---...]
+         (3 adjacent minus signs) stands for a single minus sign.
+         Support that without breaking anything else.  */
+      if (! (re_string_cur_idx (input) + 2 < re_string_length (input)
+             && re_string_peek_byte (input, 1) == '-'
+             && re_string_peek_byte (input, 2) == '-'))
+        {
+          token->type = OP_CHARSET_RANGE;
+          break;
+        }
+      re_string_skip_bytes (input, 2);
+      FALLTHROUGH;
     default:
       token->type = CHARACTER;
     }
@@ -2256,7 +2220,6 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token,
          *err = REG_ESPACE;
          return NULL;
        }
-#ifdef RE_ENABLE_I18N
       if (dfa->mb_cur_max > 1)
        {
          while (!re_string_eoi (regexp)
@@ -2273,7 +2236,6 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token,
                }
            }
        }
-#endif
       break;
 
     case OP_OPEN_SUBEXP:
@@ -2666,40 +2628,30 @@ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa,
 
 #ifndef _LIBC
 
-# ifdef RE_ENABLE_I18N
 /* Convert the byte B to the corresponding wide character.  In a
    unibyte locale, treat B as itself.  In a multibyte locale, return
    WEOF if B is an encoding error.  */
 static wint_t
-parse_byte (unsigned char b, re_charset_t *mbcset)
+parse_byte (unsigned char b, re_dfa_t const *dfa)
 {
-  return mbcset == NULL ? b : __btowc (b);
+  return dfa->mb_cur_max > 1 ? __btowc (b) : b;
 }
-# endif
 
-  /* Local function for parse_bracket_exp only used in case of NOT _LIBC.
-     Build the range expression which starts from START_ELEM, and ends
-     at END_ELEM.  The result are written to MBCSET and SBCSET.
-     RANGE_ALLOC is the allocated size of mbcset->range_starts, and
-     mbcset->range_ends, is a pointer argument since we may
-     update it.  */
+/* Local function for parse_bracket_exp used in _LIBC environment.
+   Build the range expression which starts from START_ELEM, and ends
+   at END_ELEM.  The result are written to MBCSET and SBCSET.
+   RANGE_ALLOC is the allocated size of mbcset->range_starts, and
+   mbcset->range_ends, is a pointer argument since we may
+   update it.  */
 
 static reg_errcode_t
-# ifdef RE_ENABLE_I18N
-build_range_exp (const reg_syntax_t syntax,
-                 bitset_t sbcset,
-                 re_charset_t *mbcset,
-                 Idx *range_alloc,
-                 const bracket_elem_t *start_elem,
-                 const bracket_elem_t *end_elem)
-# else /* not RE_ENABLE_I18N */
-build_range_exp (const reg_syntax_t syntax,
-                 bitset_t sbcset,
-                 const bracket_elem_t *start_elem,
-                 const bracket_elem_t *end_elem)
-# endif /* not RE_ENABLE_I18N */
+build_range_exp (bitset_t sbcset, re_charset_t *mbcset, Idx *range_alloc,
+                bracket_elem_t *start_elem, bracket_elem_t *end_elem,
+                re_dfa_t *dfa, reg_syntax_t syntax, uint_fast32_t nrules,
+                const unsigned char *collseqmb, const char *collseqwc,
+                int_fast32_t table_size, const void *symb_table,
+                const unsigned char *extra)
 {
-  unsigned int start_ch, end_ch;
   /* Equivalence Classes and Character Classes can't be a range start/end.  */
   if (__glibc_unlikely (start_elem->type == EQUIV_CLASS
                        || start_elem->type == CHAR_CLASS
@@ -2715,110 +2667,88 @@ build_range_exp (const reg_syntax_t syntax,
                            && strlen ((char *) end_elem->opr.name) > 1)))
     return REG_ECOLLATE;
 
-# ifdef RE_ENABLE_I18N
-  {
-    wchar_t wc;
-    wint_t start_wc;
-    wint_t end_wc;
-
+  unsigned int
     start_ch = ((start_elem->type == SB_CHAR) ? start_elem->opr.ch
                : ((start_elem->type == COLL_SYM) ? start_elem->opr.name[0]
-                  : 0));
+                  : 0)),
     end_ch = ((end_elem->type == SB_CHAR) ? end_elem->opr.ch
              : ((end_elem->type == COLL_SYM) ? end_elem->opr.name[0]
                 : 0));
+  wint_t
     start_wc = ((start_elem->type == SB_CHAR || start_elem->type == COLL_SYM)
-               ? parse_byte (start_ch, mbcset) : start_elem->opr.wch);
+               ? parse_byte (start_ch, dfa) : start_elem->opr.wch),
     end_wc = ((end_elem->type == SB_CHAR || end_elem->type == COLL_SYM)
-             ? parse_byte (end_ch, mbcset) : end_elem->opr.wch);
-    if (start_wc == WEOF || end_wc == WEOF)
-      return REG_ECOLLATE;
-    else if (__glibc_unlikely ((syntax & RE_NO_EMPTY_RANGES)
-                              && start_wc > end_wc))
-      return REG_ERANGE;
-
-    /* Got valid collation sequence values, add them as a new entry.
-       However, for !_LIBC we have no collation elements: if the
-       character set is single byte, the single byte character set
-       that we build below suffices.  parse_bracket_exp passes
-       no MBCSET if dfa->mb_cur_max == 1.  */
-    if (mbcset)
-      {
-       /* Check the space of the arrays.  */
-       if (__glibc_unlikely (*range_alloc == mbcset->nranges))
-         {
-           /* There is not enough space, need realloc.  */
-           wchar_t *new_array_start, *new_array_end;
-           Idx new_nranges;
-
-           /* +1 in case of mbcset->nranges is 0.  */
-           new_nranges = 2 * mbcset->nranges + 1;
-           /* Use realloc since mbcset->range_starts and mbcset->range_ends
-              are NULL if *range_alloc == 0.  */
-           new_array_start = re_realloc (mbcset->range_starts, wchar_t,
-                                         new_nranges);
-           new_array_end = re_realloc (mbcset->range_ends, wchar_t,
-                                       new_nranges);
+             ? parse_byte (end_ch, dfa) : end_elem->opr.wch);
 
-           if (__glibc_unlikely (new_array_start == NULL
-                                 || new_array_end == NULL))
-             {
-               re_free (new_array_start);
-               re_free (new_array_end);
-               return REG_ESPACE;
-             }
+  if (start_wc == WEOF || end_wc == WEOF)
+    return REG_ECOLLATE;
+  else if (__glibc_unlikely ((syntax & RE_NO_EMPTY_RANGES)
+                             && start_wc > end_wc))
+    return REG_ERANGE;
 
-           mbcset->range_starts = new_array_start;
-           mbcset->range_ends = new_array_end;
-           *range_alloc = new_nranges;
-         }
+  /* Got valid collation sequence values, add them as a new entry.
+     However, for !_LIBC we have no collation elements: if the
+     character set is single byte, the single byte character set
+     that we build below suffices.  parse_bracket_exp passes
+     no MBCSET if dfa->mb_cur_max == 1.  */
+  if (dfa->mb_cur_max > 1)
+    {
+      /* Check the space of the arrays.  */
+      if (__glibc_unlikely (*range_alloc == mbcset->nranges))
+        {
+          /* There is not enough space, need realloc.  */
+          wchar_t *new_array_start, *new_array_end;
+          Idx new_nranges;
 
-       mbcset->range_starts[mbcset->nranges] = start_wc;
-       mbcset->range_ends[mbcset->nranges++] = end_wc;
-      }
+          /* +1 in case of mbcset->nranges is 0.  */
+          new_nranges = 2 * mbcset->nranges + 1;
+          /* Use realloc since mbcset->range_starts and mbcset->range_ends
+             are NULL if *range_alloc == 0.  */
+          new_array_start = re_realloc (mbcset->range_starts, wchar_t,
+                                        new_nranges);
+          new_array_end = re_realloc (mbcset->range_ends, wchar_t,
+                                      new_nranges);
+
+          if (__glibc_unlikely (new_array_start == NULL
+                                || new_array_end == NULL))
+            {
+              re_free (new_array_start);
+              re_free (new_array_end);
+              return REG_ESPACE;
+            }
+
+          mbcset->range_starts = new_array_start;
+          mbcset->range_ends = new_array_end;
+          *range_alloc = new_nranges;
+        }
+
+      mbcset->range_starts[mbcset->nranges] = start_wc;
+      mbcset->range_ends[mbcset->nranges++] = end_wc;
+    }
+
+  /* Build the table for single byte characters.  */
+  for (wchar_t wc = 0; wc < SBC_MAX; ++wc)
+    {
+      if (start_wc <= wc && wc <= end_wc)
+        bitset_set (sbcset, wc);
+    }
 
-    /* Build the table for single byte characters.  */
-    for (wc = 0; wc < SBC_MAX; ++wc)
-      {
-       if (start_wc <= wc && wc <= end_wc)
-         bitset_set (sbcset, wc);
-      }
-  }
-# else /* not RE_ENABLE_I18N */
-  {
-    unsigned int ch;
-    start_ch = ((start_elem->type == SB_CHAR ) ? start_elem->opr.ch
-               : ((start_elem->type == COLL_SYM) ? start_elem->opr.name[0]
-                  : 0));
-    end_ch = ((end_elem->type == SB_CHAR ) ? end_elem->opr.ch
-             : ((end_elem->type == COLL_SYM) ? end_elem->opr.name[0]
-                : 0));
-    if (start_ch > end_ch)
-      return REG_ERANGE;
-    /* Build the table for single byte characters.  */
-    for (ch = 0; ch < SBC_MAX; ++ch)
-      if (start_ch <= ch  && ch <= end_ch)
-       bitset_set (sbcset, ch);
-  }
-# endif /* not RE_ENABLE_I18N */
   return REG_NOERROR;
 }
 #endif /* not _LIBC */
 
 #ifndef _LIBC
-/* Helper function for parse_bracket_exp only used in case of NOT _LIBC..
+/* Helper function for parse_bracket_exp only used in case of NOT _LIBC.
    Build the collating element which is represented by NAME.
    The result are written to MBCSET and SBCSET.
    COLL_SYM_ALLOC is the allocated size of mbcset->coll_sym, is a
    pointer argument since we may update it.  */
 
 static reg_errcode_t
-# ifdef RE_ENABLE_I18N
 build_collating_symbol (bitset_t sbcset, re_charset_t *mbcset,
-                       Idx *coll_sym_alloc, const unsigned char *name)
-# else /* not RE_ENABLE_I18N */
-build_collating_symbol (bitset_t sbcset, const unsigned char *name)
-# endif /* not RE_ENABLE_I18N */
+                       Idx *coll_sym_alloc, const unsigned char *name,
+                       uint_fast32_t nrules, int_fast32_t table_size,
+                       const void *symb_table, const unsigned char *extra)
 {
   size_t name_len = strlen ((const char *) name);
   if (__glibc_unlikely (name_len != 1))
@@ -2831,271 +2761,280 @@ build_collating_symbol (bitset_t sbcset, const unsigned char *name)
 }
 #endif /* not _LIBC */
 
-/* This function parse bracket expression like "[abc]", "[a-c]",
-   "[[.a-a.]]" etc.  */
-
-static bin_tree_t *
-parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
-                  reg_syntax_t syntax, reg_errcode_t *err)
-{
 #ifdef _LIBC
-  const unsigned char *collseqmb;
-  const char *collseqwc;
-  uint32_t nrules;
-  int32_t table_size;
-  const int32_t *symb_table;
-  const unsigned char *extra;
-
-  /* Local function for parse_bracket_exp used in _LIBC environment.
-     Seek the collating symbol entry corresponding to NAME.
-     Return the index of the symbol in the SYMB_TABLE,
-     or -1 if not found.  */
-
-  auto inline int32_t
-  __attribute__ ((always_inline))
-  seek_collating_symbol_entry (const unsigned char *name, size_t name_len)
-    {
-      int32_t elem;
-
-      for (elem = 0; elem < table_size; elem++)
-       if (symb_table[2 * elem] != 0)
-         {
-           int32_t idx = symb_table[2 * elem + 1];
-           /* Skip the name of collating element name.  */
-           idx += 1 + extra[idx];
-           if (/* Compare the length of the name.  */
-               name_len == extra[idx]
-               /* Compare the name.  */
-               && memcmp (name, &extra[idx + 1], name_len) == 0)
-             /* Yep, this is the entry.  */
-             return elem;
-         }
-      return -1;
-    }
+/* Local function for parse_bracket_exp used in _LIBC environment.
+   Seek the collating symbol entry corresponding to NAME.
+   Return the index of the symbol in the SYMB_TABLE,
+   or -1 if not found.  */
+
+static __always_inline int32_t
+seek_collating_symbol_entry (const unsigned char *name, size_t name_len,
+                            const int32_t *symb_table,
+                            int_fast32_t table_size,
+                            const unsigned char *extra)
+{
+  int_fast32_t elem;
 
-  /* Local function for parse_bracket_exp used in _LIBC environment.
-     Look up the collation sequence value of BR_ELEM.
-     Return the value if succeeded, UINT_MAX otherwise.  */
+  for (elem = 0; elem < table_size; elem++)
+    if (symb_table[2 * elem] != 0)
+      {
+       int32_t idx = symb_table[2 * elem + 1];
+       /* Skip the name of collating element name.  */
+       idx += 1 + extra[idx];
+       if (/* Compare the length of the name.  */
+           name_len == extra[idx]
+           /* Compare the name.  */
+           && memcmp (name, &extra[idx + 1], name_len) == 0)
+         /* Yep, this is the entry.  */
+         return elem;
+      }
+  return -1;
+}
 
-  auto inline unsigned int
-  __attribute__ ((always_inline))
-  lookup_collation_sequence_value (bracket_elem_t *br_elem)
+/* Local function for parse_bracket_exp used in _LIBC environment.
+   Look up the collation sequence value of BR_ELEM.
+   Return the value if succeeded, UINT_MAX otherwise.  */
+
+static __always_inline unsigned int
+lookup_collation_sequence_value (bracket_elem_t *br_elem, uint32_t nrules,
+                                const unsigned char *collseqmb,
+                                const char *collseqwc,
+                                int_fast32_t table_size,
+                                const int32_t *symb_table,
+                                const unsigned char *extra)
+{
+  if (br_elem->type == SB_CHAR)
     {
-      if (br_elem->type == SB_CHAR)
-       {
-         /*
-         if (MB_CUR_MAX == 1)
-         */
-         if (nrules == 0)
-           return collseqmb[br_elem->opr.ch];
-         else
-           {
-             wint_t wc = __btowc (br_elem->opr.ch);
-             return __collseq_table_lookup (collseqwc, wc);
-           }
-       }
-      else if (br_elem->type == MB_CHAR)
+      /* if (MB_CUR_MAX == 1) */
+      if (nrules == 0)
+       return collseqmb[br_elem->opr.ch];
+      else
        {
-         if (nrules != 0)
-           return __collseq_table_lookup (collseqwc, br_elem->opr.wch);
+         wint_t wc = __btowc (br_elem->opr.ch);
+         return __collseq_table_lookup (collseqwc, wc);
        }
-      else if (br_elem->type == COLL_SYM)
+    }
+  else if (br_elem->type == MB_CHAR)
+    {
+      if (nrules != 0)
+       return __collseq_table_lookup (collseqwc, br_elem->opr.wch);
+    }
+  else if (br_elem->type == COLL_SYM)
+    {
+      size_t sym_name_len = strlen ((char *) br_elem->opr.name);
+      if (nrules != 0)
        {
-         size_t sym_name_len = strlen ((char *) br_elem->opr.name);
-         if (nrules != 0)
+         int32_t elem, idx;
+         elem = seek_collating_symbol_entry (br_elem->opr.name,
+                                             sym_name_len,
+                                             symb_table, table_size,
+                                             extra);
+         if (elem != -1)
            {
-             int32_t elem, idx;
-             elem = seek_collating_symbol_entry (br_elem->opr.name,
-                                                 sym_name_len);
-             if (elem != -1)
-               {
-                 /* We found the entry.  */
-                 idx = symb_table[2 * elem + 1];
-                 /* Skip the name of collating element name.  */
-                 idx += 1 + extra[idx];
-                 /* Skip the byte sequence of the collating element.  */
-                 idx += 1 + extra[idx];
-                 /* Adjust for the alignment.  */
-                 idx = (idx + 3) & ~3;
-                 /* Skip the multibyte collation sequence value.  */
-                 idx += sizeof (unsigned int);
-                 /* Skip the wide char sequence of the collating element.  */
-                 idx += sizeof (unsigned int) *
-                   (1 + *(unsigned int *) (extra + idx));
-                 /* Return the collation sequence value.  */
-                 return *(unsigned int *) (extra + idx);
-               }
-             else if (sym_name_len == 1)
-               {
-                 /* No valid character.  Match it as a single byte
-                    character.  */
-                 return collseqmb[br_elem->opr.name[0]];
-               }
+             /* We found the entry.  */
+             idx = symb_table[2 * elem + 1];
+             /* Skip the name of collating element name.  */
+             idx += 1 + extra[idx];
+             /* Skip the byte sequence of the collating element.  */
+             idx += 1 + extra[idx];
+             /* Adjust for the alignment.  */
+             idx = (idx + 3) & ~3;
+             /* Skip the multibyte collation sequence value.  */
+             idx += sizeof (unsigned int);
+             /* Skip the wide char sequence of the collating element.  */
+             idx += sizeof (unsigned int) *
+               (1 + *(unsigned int *) (extra + idx));
+             /* Return the collation sequence value.  */
+             return *(unsigned int *) (extra + idx);
            }
          else if (sym_name_len == 1)
-           return collseqmb[br_elem->opr.name[0]];
+           {
+             /* No valid character.  Match it as a single byte
+                character.  */
+             return collseqmb[br_elem->opr.name[0]];
+           }
        }
-      return UINT_MAX;
+      else if (sym_name_len == 1)
+       return collseqmb[br_elem->opr.name[0]];
     }
+  return UINT_MAX;
+}
 
-  /* Local function for parse_bracket_exp used in _LIBC environment.
-     Build the range expression which starts from START_ELEM, and ends
-     at END_ELEM.  The result are written to MBCSET and SBCSET.
-     RANGE_ALLOC is the allocated size of mbcset->range_starts, and
-     mbcset->range_ends, is a pointer argument since we may
-     update it.  */
+/* Local function for parse_bracket_exp used in _LIBC environment.
+   Build the range expression which starts from START_ELEM, and ends
+   at END_ELEM.  The result are written to MBCSET and SBCSET.
+   RANGE_ALLOC is the allocated size of mbcset->range_starts, and
+   mbcset->range_ends, is a pointer argument since we may
+   update it.  */
+
+static __always_inline reg_errcode_t
+build_range_exp (bitset_t sbcset, re_charset_t *mbcset, Idx *range_alloc,
+                bracket_elem_t *start_elem, bracket_elem_t *end_elem,
+                re_dfa_t *dfa, reg_syntax_t syntax, uint32_t nrules,
+                const unsigned char *collseqmb, const char *collseqwc,
+                int_fast32_t table_size, const int32_t *symb_table,
+                const unsigned char *extra)
+{
+  unsigned int ch;
+  uint32_t start_collseq;
+  uint32_t end_collseq;
 
-  auto inline reg_errcode_t
-  __attribute__ ((always_inline))
-  build_range_exp (bitset_t sbcset, re_charset_t *mbcset, int *range_alloc,
-                  bracket_elem_t *start_elem, bracket_elem_t *end_elem)
-    {
-      unsigned int ch;
-      uint32_t start_collseq;
-      uint32_t end_collseq;
-
-      /* Equivalence Classes and Character Classes can't be a range
-        start/end.  */
-      if (__glibc_unlikely (start_elem->type == EQUIV_CLASS
-                           || start_elem->type == CHAR_CLASS
-                           || end_elem->type == EQUIV_CLASS
-                           || end_elem->type == CHAR_CLASS))
-       return REG_ERANGE;
+  /* Equivalence Classes and Character Classes can't be a range
+     start/end.  */
+  if (__glibc_unlikely (start_elem->type == EQUIV_CLASS
+                        || start_elem->type == CHAR_CLASS
+                        || end_elem->type == EQUIV_CLASS
+                        || end_elem->type == CHAR_CLASS))
+    return REG_ERANGE;
 
-      /* FIXME: Implement rational ranges here, too.  */
-      start_collseq = lookup_collation_sequence_value (start_elem);
-      end_collseq = lookup_collation_sequence_value (end_elem);
-      /* Check start/end collation sequence values.  */
-      if (__glibc_unlikely (start_collseq == UINT_MAX
-                           || end_collseq == UINT_MAX))
-       return REG_ECOLLATE;
-      if (__glibc_unlikely ((syntax & RE_NO_EMPTY_RANGES)
-                           && start_collseq > end_collseq))
-       return REG_ERANGE;
+  /* FIXME: Implement rational ranges here, too.  */
+  start_collseq = lookup_collation_sequence_value (start_elem, nrules, collseqmb, collseqwc,
+                                                  table_size, symb_table, extra);
+  end_collseq = lookup_collation_sequence_value (end_elem, nrules, collseqmb, collseqwc,
+                                                table_size, symb_table, extra);
+  /* Check start/end collation sequence values.  */
+  if (__glibc_unlikely (start_collseq == UINT_MAX
+                        || end_collseq == UINT_MAX))
+    return REG_ECOLLATE;
+  if (__glibc_unlikely ((syntax & RE_NO_EMPTY_RANGES)
+                        && start_collseq > end_collseq))
+    return REG_ERANGE;
 
-      /* Got valid collation sequence values, add them as a new entry.
-        However, if we have no collation elements, and the character set
-        is single byte, the single byte character set that we
-        build below suffices. */
-      if (nrules > 0 || dfa->mb_cur_max > 1)
+  /* Got valid collation sequence values, add them as a new entry.
+     However, if we have no collation elements, and the character set
+     is single byte, the single byte character set that we
+     build below suffices. */
+  if (nrules > 0 || dfa->mb_cur_max > 1)
+    {
+      /* Check the space of the arrays.  */
+      if (__glibc_unlikely (*range_alloc == mbcset->nranges))
        {
-         /* Check the space of the arrays.  */
-         if (__glibc_unlikely (*range_alloc == mbcset->nranges))
-           {
-             /* There is not enough space, need realloc.  */
-             uint32_t *new_array_start;
-             uint32_t *new_array_end;
-             Idx new_nranges;
-
-             /* +1 in case of mbcset->nranges is 0.  */
-             new_nranges = 2 * mbcset->nranges + 1;
-             new_array_start = re_realloc (mbcset->range_starts, uint32_t,
-                                           new_nranges);
-             new_array_end = re_realloc (mbcset->range_ends, uint32_t,
-                                         new_nranges);
-
-             if (__glibc_unlikely (new_array_start == NULL
-                                   || new_array_end == NULL))
-               return REG_ESPACE;
+         /* There is not enough space, need realloc.  */
+         uint32_t *new_array_start;
+         uint32_t *new_array_end;
+         int new_nranges;
 
-             mbcset->range_starts = new_array_start;
-             mbcset->range_ends = new_array_end;
-             *range_alloc = new_nranges;
-           }
+         /* +1 in case of mbcset->nranges is 0.  */
+         new_nranges = 2 * mbcset->nranges + 1;
+         new_array_start = re_realloc (mbcset->range_starts, uint32_t,
+                                       new_nranges);
+         new_array_end = re_realloc (mbcset->range_ends, uint32_t,
+                                     new_nranges);
 
-         mbcset->range_starts[mbcset->nranges] = start_collseq;
-         mbcset->range_ends[mbcset->nranges++] = end_collseq;
-       }
+          if (__glibc_unlikely (new_array_start == NULL
+                                || new_array_end == NULL))
+           return REG_ESPACE;
 
-      /* Build the table for single byte characters.  */
-      for (ch = 0; ch < SBC_MAX; ch++)
-       {
-         uint32_t ch_collseq;
-         /*
-         if (MB_CUR_MAX == 1)
-         */
-         if (nrules == 0)
-           ch_collseq = collseqmb[ch];
-         else
-           ch_collseq = __collseq_table_lookup (collseqwc, __btowc (ch));
-         if (start_collseq <= ch_collseq && ch_collseq <= end_collseq)
-           bitset_set (sbcset, ch);
+         mbcset->range_starts = new_array_start;
+         mbcset->range_ends = new_array_end;
+         *range_alloc = new_nranges;
        }
-      return REG_NOERROR;
+
+      mbcset->range_starts[mbcset->nranges] = start_collseq;
+      mbcset->range_ends[mbcset->nranges++] = end_collseq;
     }
 
-  /* Local function for parse_bracket_exp used in _LIBC environment.
-     Build the collating element which is represented by NAME.
-     The result are written to MBCSET and SBCSET.
-     COLL_SYM_ALLOC is the allocated size of mbcset->coll_sym, is a
-     pointer argument since we may update it.  */
+  /* Build the table for single byte characters.  */
+  for (ch = 0; ch < SBC_MAX; ch++)
+    {
+      uint32_t ch_collseq;
+      /* if (MB_CUR_MAX == 1) */
+      if (nrules == 0)
+       ch_collseq = collseqmb[ch];
+      else
+       ch_collseq = __collseq_table_lookup (collseqwc, __btowc (ch));
+      if (start_collseq <= ch_collseq && ch_collseq <= end_collseq)
+       bitset_set (sbcset, ch);
+    }
+  return REG_NOERROR;
+}
 
-  auto inline reg_errcode_t
-  __attribute__ ((always_inline))
-  build_collating_symbol (bitset_t sbcset, re_charset_t *mbcset,
-                         Idx *coll_sym_alloc, const unsigned char *name)
+/* Local function for parse_bracket_exp used in _LIBC environment.
+   Build the collating element which is represented by NAME.
+   The result are written to MBCSET and SBCSET.
+   COLL_SYM_ALLOC is the allocated size of mbcset->coll_sym, is a
+   pointer argument since we may update it.  */
+
+static __always_inline reg_errcode_t
+build_collating_symbol (bitset_t sbcset, re_charset_t *mbcset,
+                       Idx *coll_sym_alloc, const unsigned char *name,
+                       uint_fast32_t nrules, int_fast32_t table_size,
+                       const int32_t *symb_table, const unsigned char *extra)
+{
+  int32_t elem, idx;
+  size_t name_len = strlen ((const char *) name);
+  if (nrules != 0)
     {
-      int32_t elem, idx;
-      size_t name_len = strlen ((const char *) name);
-      if (nrules != 0)
+      elem = seek_collating_symbol_entry (name, name_len, symb_table,
+                                         table_size, extra);
+      if (elem != -1)
        {
-         elem = seek_collating_symbol_entry (name, name_len);
-         if (elem != -1)
-           {
-             /* We found the entry.  */
-             idx = symb_table[2 * elem + 1];
-             /* Skip the name of collating element name.  */
-             idx += 1 + extra[idx];
-           }
-         else if (name_len == 1)
-           {
-             /* No valid character, treat it as a normal
-                character.  */
-             bitset_set (sbcset, name[0]);
-             return REG_NOERROR;
-           }
-         else
-           return REG_ECOLLATE;
-
-         /* Got valid collation sequence, add it as a new entry.  */
-         /* Check the space of the arrays.  */
-         if (__glibc_unlikely (*coll_sym_alloc == mbcset->ncoll_syms))
-           {
-             /* Not enough, realloc it.  */
-             /* +1 in case of mbcset->ncoll_syms is 0.  */
-             Idx new_coll_sym_alloc = 2 * mbcset->ncoll_syms + 1;
-             /* Use realloc since mbcset->coll_syms is NULL
-                if *alloc == 0.  */
-             int32_t *new_coll_syms = re_realloc (mbcset->coll_syms, int32_t,
-                                                  new_coll_sym_alloc);
-             if (__glibc_unlikely (new_coll_syms == NULL))
-               return REG_ESPACE;
-             mbcset->coll_syms = new_coll_syms;
-             *coll_sym_alloc = new_coll_sym_alloc;
-           }
-         mbcset->coll_syms[mbcset->ncoll_syms++] = idx;
+         /* We found the entry.  */
+         idx = symb_table[2 * elem + 1];
+         /* Skip the name of collating element name.  */
+         idx += 1 + extra[idx];
+       }
+      else if (name_len == 1)
+       {
+         /* No valid character, treat it as a normal
+            character.  */
+         bitset_set (sbcset, name[0]);
          return REG_NOERROR;
        }
       else
+       return REG_ECOLLATE;
+
+      /* Got valid collation sequence, add it as a new entry.  */
+      /* Check the space of the arrays.  */
+      if (__glibc_unlikely (*coll_sym_alloc == mbcset->ncoll_syms))
        {
-         if (__glibc_unlikely (name_len != 1))
-           return REG_ECOLLATE;
-         else
-           {
-             bitset_set (sbcset, name[0]);
-             return REG_NOERROR;
-           }
+         /* Not enough, realloc it.  */
+         /* +1 in case of mbcset->ncoll_syms is 0.  */
+         int new_coll_sym_alloc = 2 * mbcset->ncoll_syms + 1;
+         /* Use realloc since mbcset->coll_syms is NULL
+            if *alloc == 0.  */
+         int32_t *new_coll_syms = re_realloc (mbcset->coll_syms, int32_t,
+                                              new_coll_sym_alloc);
+          if (__glibc_unlikely (new_coll_syms == NULL))
+           return REG_ESPACE;
+         mbcset->coll_syms = new_coll_syms;
+         *coll_sym_alloc = new_coll_sym_alloc;
        }
+      mbcset->coll_syms[mbcset->ncoll_syms++] = idx;
+      return REG_NOERROR;
     }
-#endif
+  else
+    {
+      if (__glibc_unlikely (name_len != 1))
+       return REG_ECOLLATE;
+      else
+       {
+         bitset_set (sbcset, name[0]);
+         return REG_NOERROR;
+       }
+    }
+}
+#endif /* _LIBC */
+
+/* This function parse bracket expression like "[abc]", "[a-c]",
+   "[[.a-a.]]" etc.  */
+
+static bin_tree_t *
+parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
+                  reg_syntax_t syntax, reg_errcode_t *err)
+{
+  const unsigned char *collseqmb = NULL;
+  const char *collseqwc = NULL;
+  uint_fast32_t nrules = 0;
+  int_fast32_t table_size = 0;
+  const void *symb_table = NULL;
+  const unsigned char *extra = NULL;
 
   re_token_t br_token;
   re_bitset_ptr_t sbcset;
-#ifdef RE_ENABLE_I18N
   re_charset_t *mbcset;
   Idx coll_sym_alloc = 0, range_alloc = 0, mbchar_alloc = 0;
   Idx equiv_class_alloc = 0, char_class_alloc = 0;
-#endif /* not RE_ENABLE_I18N */
   bool non_match = false;
   bin_tree_t *work_tree;
   int token_len;
@@ -3111,26 +3050,17 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
       */
       collseqwc = _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQWC);
       table_size = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_SYMB_HASH_SIZEMB);
-      symb_table = (const int32_t *) _NL_CURRENT (LC_COLLATE,
-                                                 _NL_COLLATE_SYMB_TABLEMB);
+      symb_table = _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_TABLEMB);
       extra = (const unsigned char *) _NL_CURRENT (LC_COLLATE,
                                                   _NL_COLLATE_SYMB_EXTRAMB);
     }
 #endif
   sbcset = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1);
-#ifdef RE_ENABLE_I18N
   mbcset = (re_charset_t *) calloc (sizeof (re_charset_t), 1);
-#endif /* RE_ENABLE_I18N */
-#ifdef RE_ENABLE_I18N
   if (__glibc_unlikely (sbcset == NULL || mbcset == NULL))
-#else
-  if (__glibc_unlikely (sbcset == NULL))
-#endif /* RE_ENABLE_I18N */
     {
       re_free (sbcset);
-#ifdef RE_ENABLE_I18N
       re_free (mbcset);
-#endif
       *err = REG_ESPACE;
       return NULL;
     }
@@ -3143,9 +3073,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
     }
   if (token->type == OP_NON_MATCH_LIST)
     {
-#ifdef RE_ENABLE_I18N
       mbcset->non_match = 1;
-#endif /* not RE_ENABLE_I18N */
       non_match = true;
       if (syntax & RE_HAT_LISTS_NOT_NEWLINE)
        bitset_set (sbcset, '\n');
@@ -3228,18 +3156,10 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
 
          token_len = peek_token_bracket (token, regexp, syntax);
 
-#ifdef _LIBC
          *err = build_range_exp (sbcset, mbcset, &range_alloc,
-                                 &start_elem, &end_elem);
-#else
-# ifdef RE_ENABLE_I18N
-         *err = build_range_exp (syntax, sbcset,
-                                 dfa->mb_cur_max > 1 ? mbcset : NULL,
-                                 &range_alloc, &start_elem, &end_elem);
-# else
-         *err = build_range_exp (syntax, sbcset, &start_elem, &end_elem);
-# endif
-#endif /* RE_ENABLE_I18N */
+                                 &start_elem, &end_elem,
+                                 dfa, syntax, nrules, collseqmb, collseqwc,
+                                 table_size, symb_table, extra);
          if (__glibc_unlikely (*err != REG_NOERROR))
            goto parse_bracket_exp_free_return;
        }
@@ -3250,7 +3170,6 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
            case SB_CHAR:
              bitset_set (sbcset, start_elem.opr.ch);
              break;
-#ifdef RE_ENABLE_I18N
            case MB_CHAR:
              /* Check whether the array has enough space.  */
              if (__glibc_unlikely (mbchar_alloc == mbcset->nmbchars))
@@ -3268,30 +3187,24 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
                }
              mbcset->mbchars[mbcset->nmbchars++] = start_elem.opr.wch;
              break;
-#endif /* RE_ENABLE_I18N */
            case EQUIV_CLASS:
              *err = build_equiv_class (sbcset,
-#ifdef RE_ENABLE_I18N
                                        mbcset, &equiv_class_alloc,
-#endif /* RE_ENABLE_I18N */
                                        start_elem.opr.name);
              if (__glibc_unlikely (*err != REG_NOERROR))
                goto parse_bracket_exp_free_return;
              break;
            case COLL_SYM:
              *err = build_collating_symbol (sbcset,
-#ifdef RE_ENABLE_I18N
                                             mbcset, &coll_sym_alloc,
-#endif /* RE_ENABLE_I18N */
-                                            start_elem.opr.name);
+                                            start_elem.opr.name,
+                                            nrules, table_size, symb_table, extra);
              if (__glibc_unlikely (*err != REG_NOERROR))
                goto parse_bracket_exp_free_return;
              break;
            case CHAR_CLASS:
              *err = build_charclass (regexp->trans, sbcset,
-#ifdef RE_ENABLE_I18N
                                      mbcset, &char_class_alloc,
-#endif /* RE_ENABLE_I18N */
                                      (const char *) start_elem.opr.name,
                                      syntax);
              if (__glibc_unlikely (*err != REG_NOERROR))
@@ -3317,7 +3230,6 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
   if (non_match)
     bitset_not (sbcset);
 
-#ifdef RE_ENABLE_I18N
   /* Ensure only single byte characters are set.  */
   if (dfa->mb_cur_max > 1)
     bitset_mask (sbcset, dfa->sb_char);
@@ -3361,11 +3273,8 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
        }
     }
   else
-#endif /* not RE_ENABLE_I18N */
     {
-#ifdef RE_ENABLE_I18N
       free_charset (mbcset);
-#endif
       /* Build a tree for simple bracket.  */
       br_token.type = SIMPLE_BRACKET;
       br_token.opr.sbcset = sbcset;
@@ -3379,9 +3288,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
   *err = REG_ESPACE;
  parse_bracket_exp_free_return:
   re_free (sbcset);
-#ifdef RE_ENABLE_I18N
   free_charset (mbcset);
-#endif /* RE_ENABLE_I18N */
   return NULL;
 }
 
@@ -3392,7 +3299,6 @@ parse_bracket_element (bracket_elem_t *elem, re_string_t *regexp,
                       re_token_t *token, int token_len, re_dfa_t *dfa,
                       reg_syntax_t syntax, bool accept_hyphen)
 {
-#ifdef RE_ENABLE_I18N
   int cur_char_size;
   cur_char_size = re_string_char_size_at (regexp, re_string_cur_idx (regexp));
   if (cur_char_size > 1)
@@ -3402,7 +3308,6 @@ parse_bracket_element (bracket_elem_t *elem, re_string_t *regexp,
       re_string_skip_bytes (regexp, cur_char_size);
       return REG_NOERROR;
     }
-#endif /* RE_ENABLE_I18N */
   re_string_skip_bytes (regexp, token_len); /* Skip a token.  */
   if (token->type == OP_OPEN_COLL_ELEM || token->type == OP_OPEN_CHAR_CLASS
       || token->type == OP_OPEN_EQUIV_CLASS)
@@ -3475,12 +3380,8 @@ parse_bracket_symbol (bracket_elem_t *elem, re_string_t *regexp,
      is a pointer argument since we may update it.  */
 
 static reg_errcode_t
-#ifdef RE_ENABLE_I18N
 build_equiv_class (bitset_t sbcset, re_charset_t *mbcset,
                   Idx *equiv_class_alloc, const unsigned char *name)
-#else /* not RE_ENABLE_I18N */
-build_equiv_class (bitset_t sbcset, const unsigned char *name)
-#endif /* not RE_ENABLE_I18N */
 {
 #ifdef _LIBC
   uint32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES);
@@ -3560,14 +3461,9 @@ build_equiv_class (bitset_t sbcset, const unsigned char *name)
      is a pointer argument since we may update it.  */
 
 static reg_errcode_t
-#ifdef RE_ENABLE_I18N
 build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset,
                 re_charset_t *mbcset, Idx *char_class_alloc,
                 const char *class_name, reg_syntax_t syntax)
-#else /* not RE_ENABLE_I18N */
-build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset,
-                const char *class_name, reg_syntax_t syntax)
-#endif /* not RE_ENABLE_I18N */
 {
   int i;
   const char *name = class_name;
@@ -3578,7 +3474,6 @@ build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset,
       && (strcmp (name, "upper") == 0 || strcmp (name, "lower") == 0))
     name = "alpha";
 
-#ifdef RE_ENABLE_I18N
   /* Check the space of the arrays.  */
   if (__glibc_unlikely (*char_class_alloc == mbcset->nchar_classes))
     {
@@ -3594,7 +3489,6 @@ build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset,
       *char_class_alloc = new_char_class_alloc;
     }
   mbcset->char_classes[mbcset->nchar_classes++] = __wctype (name);
-#endif /* RE_ENABLE_I18N */
 
 #define BUILD_CHARCLASS_LOOP(ctype_func)       \
   do {                                         \
@@ -3649,10 +3543,8 @@ build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans,
                    reg_errcode_t *err)
 {
   re_bitset_ptr_t sbcset;
-#ifdef RE_ENABLE_I18N
   re_charset_t *mbcset;
   Idx alloc = 0;
-#endif /* not RE_ENABLE_I18N */
   reg_errcode_t ret;
   bin_tree_t *tree;
 
@@ -3662,7 +3554,6 @@ build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans,
       *err = REG_ESPACE;
       return NULL;
     }
-#ifdef RE_ENABLE_I18N
   mbcset = (re_charset_t *) calloc (sizeof (re_charset_t), 1);
   if (__glibc_unlikely (mbcset == NULL))
     {
@@ -3671,21 +3562,14 @@ build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans,
       return NULL;
     }
   mbcset->non_match = non_match;
-#endif /* RE_ENABLE_I18N */
 
   /* We don't care the syntax in this case.  */
-  ret = build_charclass (trans, sbcset,
-#ifdef RE_ENABLE_I18N
-                        mbcset, &alloc,
-#endif /* RE_ENABLE_I18N */
-                        class_name, 0);
+  ret = build_charclass (trans, sbcset, mbcset, &alloc, class_name, 0);
 
   if (__glibc_unlikely (ret != REG_NOERROR))
     {
       re_free (sbcset);
-#ifdef RE_ENABLE_I18N
       free_charset (mbcset);
-#endif /* RE_ENABLE_I18N */
       *err = ret;
       return NULL;
     }
@@ -3697,11 +3581,9 @@ build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans,
   if (non_match)
     bitset_not (sbcset);
 
-#ifdef RE_ENABLE_I18N
   /* Ensure only single byte characters are set.  */
   if (dfa->mb_cur_max > 1)
     bitset_mask (sbcset, dfa->sb_char);
-#endif
 
   /* Build a tree for simple bracket.  */
   re_token_t br_token = { .type = SIMPLE_BRACKET, .opr.sbcset = sbcset };
@@ -3709,7 +3591,6 @@ build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans,
   if (__glibc_unlikely (tree == NULL))
     goto build_word_op_espace;
 
-#ifdef RE_ENABLE_I18N
   if (dfa->mb_cur_max > 1)
     {
       bin_tree_t *mbc_tree;
@@ -3730,15 +3611,10 @@ build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans,
       free_charset (mbcset);
       return tree;
     }
-#else /* not RE_ENABLE_I18N */
-  return tree;
-#endif /* not RE_ENABLE_I18N */
 
  build_word_op_espace:
   re_free (sbcset);
-#ifdef RE_ENABLE_I18N
   free_charset (mbcset);
-#endif /* RE_ENABLE_I18N */
   *err = REG_ESPACE;
   return NULL;
 }
@@ -3771,21 +3647,19 @@ fetch_number (re_string_t *input, re_token_t *token, reg_syntax_t syntax)
   return num;
 }
 \f
-#ifdef RE_ENABLE_I18N
 static void
 free_charset (re_charset_t *cset)
 {
   re_free (cset->mbchars);
-# ifdef _LIBC
+#ifdef _LIBC
   re_free (cset->coll_syms);
   re_free (cset->equiv_classes);
-# endif
+#endif
   re_free (cset->range_starts);
   re_free (cset->range_ends);
   re_free (cset->char_classes);
   re_free (cset);
 }
-#endif /* RE_ENABLE_I18N */
 \f
 /* Functions for binary tree operation.  */
 
@@ -3851,13 +3725,10 @@ mark_opt_subexp (void *extra, bin_tree_t *node)
 static void
 free_token (re_token_t *node)
 {
-#ifdef RE_ENABLE_I18N
   if (node->type == COMPLEX_BRACKET && node->duplicated == 0)
     free_charset (node->opr.mbcset);
-  else
-#endif /* RE_ENABLE_I18N */
-    if (node->type == SIMPLE_BRACKET && node->duplicated == 0)
-      re_free (node->opr.sbcset);
+  else if (node->type == SIMPLE_BRACKET && node->duplicated == 0)
+    re_free (node->opr.sbcset);
 }
 
 /* Worker function for tree walking.  Free the allocated memory inside NODE
index 7296be0..3beb0de 100644 (file)
@@ -1,5 +1,5 @@
 /* Extended regular expression matching and search library.
-   Copyright (C) 2002-2021 Free Software Foundation, Inc.
+   Copyright (C) 2002-2023 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
 
@@ -24,6 +24,7 @@
 
 # if __GNUC_PREREQ (4, 6)
 #  pragma GCC diagnostic ignored "-Wsuggest-attribute=pure"
+#  pragma GCC diagnostic ignored "-Wvla"
 # endif
 # if __GNUC_PREREQ (4, 3)
 #  pragma GCC diagnostic ignored "-Wold-style-definition"
index 8e4ef45..9ef0252 100644 (file)
@@ -1,6 +1,6 @@
 /* Definitions for data structures and routines for the regular
    expression library.
-   Copyright (C) 1985, 1989-2021 Free Software Foundation, Inc.
+   Copyright (C) 1985, 1989-2023 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
@@ -522,6 +522,30 @@ typedef struct
 \f
 /* Declarations for routines.  */
 
+#ifndef _REGEX_NELTS
+# if (defined __STDC_VERSION__ && 199901L <= __STDC_VERSION__ \
+       && !defined __STDC_NO_VLA__)
+#  define _REGEX_NELTS(n) n
+# else
+#  define _REGEX_NELTS(n)
+# endif
+#endif
+
+#if defined __GNUC__ && 4 < __GNUC__ + (6 <= __GNUC_MINOR__)
+# pragma GCC diagnostic push
+# pragma GCC diagnostic ignored "-Wvla"
+#endif
+
+#ifndef _Attr_access_
+# ifdef __attr_access
+#  define _Attr_access_(arg) __attr_access (arg)
+# elif defined __GNUC__ && 10 <= __GNUC__
+#  define _Attr_access_(x) __attribute__ ((__access__ x))
+# else
+#  define _Attr_access_(x)
+# endif
+#endif
+
 #ifdef __USE_GNU
 /* Sets the current default syntax to SYNTAX, and return the old syntax.
    You can also simply assign to the 're_syntax_options' variable.  */
@@ -536,7 +560,8 @@ extern reg_syntax_t re_set_syntax (reg_syntax_t __syntax);
    'regcomp', with a malloc'ed value, or set to NULL before calling
    'regfree'.  */
 extern const char *re_compile_pattern (const char *__pattern, size_t __length,
-                                      struct re_pattern_buffer *__buffer);
+                                      struct re_pattern_buffer *__buffer)
+    _Attr_access_ ((__read_only__, 1, 2));
 
 
 /* Compile a fastmap for the compiled pattern in BUFFER; used to
@@ -553,7 +578,8 @@ extern int re_compile_fastmap (struct re_pattern_buffer *__buffer);
 extern regoff_t re_search (struct re_pattern_buffer *__buffer,
                           const char *__String, regoff_t __length,
                           regoff_t __start, regoff_t __range,
-                          struct re_registers *__regs);
+                          struct re_registers *__regs)
+    _Attr_access_ ((__read_only__, 2, 3));
 
 
 /* Like 're_search', but search in the concatenation of STRING1 and
@@ -563,14 +589,17 @@ extern regoff_t re_search_2 (struct re_pattern_buffer *__buffer,
                             const char *__string2, regoff_t __length2,
                             regoff_t __start, regoff_t __range,
                             struct re_registers *__regs,
-                            regoff_t __stop);
+                            regoff_t __stop)
+    _Attr_access_ ((__read_only__, 2, 3))
+    _Attr_access_ ((__read_only__, 4, 5));
 
 
 /* Like 're_search', but return how many characters in STRING the regexp
    in BUFFER matched, starting at position START.  */
 extern regoff_t re_match (struct re_pattern_buffer *__buffer,
                          const char *__String, regoff_t __length,
-                         regoff_t __start, struct re_registers *__regs);
+                         regoff_t __start, struct re_registers *__regs)
+    _Attr_access_ ((__read_only__, 2, 3));
 
 
 /* Relates to 're_match' as 're_search_2' relates to 're_search'.  */
@@ -578,7 +607,9 @@ extern regoff_t re_match_2 (struct re_pattern_buffer *__buffer,
                            const char *__string1, regoff_t __length1,
                            const char *__string2, regoff_t __length2,
                            regoff_t __start, struct re_registers *__regs,
-                           regoff_t __stop);
+                           regoff_t __stop)
+    _Attr_access_ ((__read_only__, 2, 3))
+    _Attr_access_ ((__read_only__, 4, 5));
 
 
 /* Set REGS to hold NUM_REGS registers, storing them in STARTS and
@@ -647,14 +678,19 @@ extern int regcomp (regex_t *_Restrict_ __preg,
 
 extern int regexec (const regex_t *_Restrict_ __preg,
                    const char *_Restrict_ __String, size_t __nmatch,
-                   regmatch_t __pmatch[_Restrict_arr_],
+                   regmatch_t __pmatch[_Restrict_arr_
+                                       _REGEX_NELTS (__nmatch)],
                    int __eflags);
 
 extern size_t regerror (int __errcode, const regex_t *_Restrict_ __preg,
-                       char *_Restrict_ __errbuf, size_t __errbuf_size);
+                       char *_Restrict_ __errbuf, size_t __errbuf_size)
+    _Attr_access_ ((__write_only__, 3, 4));
 
 extern void regfree (regex_t *__preg);
 
+#if defined __GNUC__ && 4 < __GNUC__ + (6 <= __GNUC_MINOR__)
+# pragma GCC diagnostic pop
+#endif
 
 #ifdef __cplusplus
 }
index aefcfa2..998a19b 100644 (file)
@@ -1,5 +1,5 @@
 /* Extended regular expression matching and search library.
-   Copyright (C) 2002-2021 Free Software Foundation, Inc.
+   Copyright (C) 2002-2023 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
 
@@ -30,10 +30,8 @@ static re_dfastate_t *create_cd_newstate (const re_dfa_t *dfa,
                                          re_hashval_t hash);
 static reg_errcode_t re_string_realloc_buffers (re_string_t *pstr,
                                                Idx new_buf_len);
-#ifdef RE_ENABLE_I18N
 static void build_wcs_buffer (re_string_t *pstr);
 static reg_errcode_t build_wcs_upper_buffer (re_string_t *pstr);
-#endif /* RE_ENABLE_I18N */
 static void build_upper_buffer (re_string_t *pstr);
 static void re_string_translate_buffer (re_string_t *pstr);
 static unsigned int re_string_context_at (const re_string_t *input, Idx idx,
@@ -91,7 +89,6 @@ re_string_construct (re_string_t *pstr, const char *str, Idx len,
 
   if (icase)
     {
-#ifdef RE_ENABLE_I18N
       if (dfa->mb_cur_max > 1)
        {
          while (1)
@@ -109,16 +106,13 @@ re_string_construct (re_string_t *pstr, const char *str, Idx len,
            }
        }
       else
-#endif /* RE_ENABLE_I18N  */
        build_upper_buffer (pstr);
     }
   else
     {
-#ifdef RE_ENABLE_I18N
       if (dfa->mb_cur_max > 1)
        build_wcs_buffer (pstr);
       else
-#endif /* RE_ENABLE_I18N  */
        {
          if (trans != NULL)
            re_string_translate_buffer (pstr);
@@ -139,7 +133,6 @@ static reg_errcode_t
 __attribute_warn_unused_result__
 re_string_realloc_buffers (re_string_t *pstr, Idx new_buf_len)
 {
-#ifdef RE_ENABLE_I18N
   if (pstr->mb_cur_max > 1)
     {
       wint_t *new_wcs;
@@ -162,7 +155,6 @@ re_string_realloc_buffers (re_string_t *pstr, Idx new_buf_len)
          pstr->offsets = new_offsets;
        }
     }
-#endif /* RE_ENABLE_I18N  */
   if (pstr->mbs_allocated)
     {
       unsigned char *new_mbs = re_realloc (pstr->mbs, unsigned char,
@@ -194,7 +186,6 @@ re_string_construct_common (const char *str, Idx len, re_string_t *pstr,
   pstr->raw_stop = pstr->stop;
 }
 
-#ifdef RE_ENABLE_I18N
 
 /* Build wide character buffer PSTR->WCS.
    If the byte sequence of the string are:
@@ -530,7 +521,6 @@ re_string_skip_chars (re_string_t *pstr, Idx new_raw_idx, wint_t *last_wc)
   *last_wc = wc;
   return rawbuf_idx;
 }
-#endif /* RE_ENABLE_I18N  */
 
 /* Build the buffer PSTR->MBS, and apply the translation if we need.
    This function is used in case of REG_ICASE.  */
@@ -585,10 +575,8 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags)
   else
     {
       /* Reset buffer.  */
-#ifdef RE_ENABLE_I18N
       if (pstr->mb_cur_max > 1)
        memset (&pstr->cur_state, '\0', sizeof (mbstate_t));
-#endif /* RE_ENABLE_I18N */
       pstr->len = pstr->raw_len;
       pstr->stop = pstr->raw_stop;
       pstr->valid_len = 0;
@@ -608,7 +596,6 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags)
       if (__glibc_likely (offset < pstr->valid_raw_len))
        {
          /* Yes, move them to the front of the buffer.  */
-#ifdef RE_ENABLE_I18N
          if (__glibc_unlikely (pstr->offsets_needed))
            {
              Idx low = 0, high = pstr->valid_len, mid;
@@ -672,15 +659,12 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags)
                }
            }
          else
-#endif
            {
              pstr->tip_context = re_string_context_at (pstr, offset - 1,
                                                        eflags);
-#ifdef RE_ENABLE_I18N
              if (pstr->mb_cur_max > 1)
                memmove (pstr->wcs, pstr->wcs + offset,
                         (pstr->valid_len - offset) * sizeof (wint_t));
-#endif /* RE_ENABLE_I18N */
              if (__glibc_unlikely (pstr->mbs_allocated))
                memmove (pstr->mbs, pstr->mbs + offset,
                         pstr->valid_len - offset);
@@ -691,7 +675,6 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags)
        }
       else
        {
-#ifdef RE_ENABLE_I18N
          /* No, skip all characters until IDX.  */
          Idx prev_valid_len = pstr->valid_len;
 
@@ -701,9 +684,7 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags)
              pstr->stop = pstr->raw_stop - idx + offset;
              pstr->offsets_needed = 0;
            }
-#endif
          pstr->valid_len = 0;
-#ifdef RE_ENABLE_I18N
          if (pstr->mb_cur_max > 1)
            {
              Idx wcs_idx;
@@ -787,7 +768,6 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags)
              pstr->valid_raw_len = pstr->valid_len;
            }
          else
-#endif /* RE_ENABLE_I18N */
            {
              int c = pstr->raw_mbs[pstr->raw_mbs_idx + offset - 1];
              pstr->valid_raw_len = 0;
@@ -807,7 +787,6 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags)
   pstr->stop -= offset;
 
   /* Then build the buffers.  */
-#ifdef RE_ENABLE_I18N
   if (pstr->mb_cur_max > 1)
     {
       if (pstr->icase)
@@ -820,7 +799,6 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags)
        build_wcs_buffer (pstr);
     }
   else
-#endif /* RE_ENABLE_I18N */
     if (__glibc_unlikely (pstr->mbs_allocated))
       {
        if (pstr->icase)
@@ -846,28 +824,22 @@ re_string_peek_byte_case (const re_string_t *pstr, Idx idx)
   if (__glibc_likely (!pstr->mbs_allocated))
     return re_string_peek_byte (pstr, idx);
 
-#ifdef RE_ENABLE_I18N
   if (pstr->mb_cur_max > 1
       && ! re_string_is_single_byte_char (pstr, pstr->cur_idx + idx))
     return re_string_peek_byte (pstr, idx);
-#endif
 
   off = pstr->cur_idx + idx;
-#ifdef RE_ENABLE_I18N
   if (pstr->offsets_needed)
     off = pstr->offsets[off];
-#endif
 
   ch = pstr->raw_mbs[pstr->raw_mbs_idx + off];
 
-#ifdef RE_ENABLE_I18N
   /* Ensure that e.g. for tr_TR.UTF-8 BACKSLASH DOTLESS SMALL LETTER I
      this function returns CAPITAL LETTER I instead of first byte of
      DOTLESS SMALL LETTER I.  The latter would confuse the parser,
      since peek_byte_case doesn't advance cur_idx in any way.  */
   if (pstr->offsets_needed && !isascii (ch))
     return re_string_peek_byte (pstr, idx);
-#endif
 
   return ch;
 }
@@ -878,7 +850,6 @@ re_string_fetch_byte_case (re_string_t *pstr)
   if (__glibc_likely (!pstr->mbs_allocated))
     return re_string_fetch_byte (pstr);
 
-#ifdef RE_ENABLE_I18N
   if (pstr->offsets_needed)
     {
       Idx off;
@@ -904,7 +875,6 @@ re_string_fetch_byte_case (re_string_t *pstr)
                            re_string_char_size_at (pstr, pstr->cur_idx));
       return ch;
     }
-#endif
 
   return pstr->raw_mbs[pstr->raw_mbs_idx + pstr->cur_idx++];
 }
@@ -912,10 +882,8 @@ re_string_fetch_byte_case (re_string_t *pstr)
 static void
 re_string_destruct (re_string_t *pstr)
 {
-#ifdef RE_ENABLE_I18N
   re_free (pstr->wcs);
   re_free (pstr->offsets);
-#endif /* RE_ENABLE_I18N  */
   if (pstr->mbs_allocated)
     re_free (pstr->mbs);
 }
@@ -933,7 +901,6 @@ re_string_context_at (const re_string_t *input, Idx idx, int eflags)
   if (__glibc_unlikely (idx == input->len))
     return ((eflags & REG_NOTEOL) ? CONTEXT_ENDBUF
            : CONTEXT_NEWLINE | CONTEXT_ENDBUF);
-#ifdef RE_ENABLE_I18N
   if (input->mb_cur_max > 1)
     {
       wint_t wc;
@@ -953,7 +920,6 @@ re_string_context_at (const re_string_t *input, Idx idx, int eflags)
              ? CONTEXT_NEWLINE : 0);
     }
   else
-#endif
     {
       c = re_string_byte_at (input, idx);
       if (bitset_contain (input->word_char, c))
@@ -1430,32 +1396,28 @@ re_dfa_add_node (re_dfa_t *dfa, re_token_t token)
       if (__glibc_unlikely (new_nodes == NULL))
        return -1;
       dfa->nodes = new_nodes;
+      dfa->nodes_alloc = new_nodes_alloc;
       new_nexts = re_realloc (dfa->nexts, Idx, new_nodes_alloc);
+      if (new_nexts != NULL)
+       dfa->nexts = new_nexts;
       new_indices = re_realloc (dfa->org_indices, Idx, new_nodes_alloc);
+      if (new_indices != NULL)
+       dfa->org_indices = new_indices;
       new_edests = re_realloc (dfa->edests, re_node_set, new_nodes_alloc);
+      if (new_edests != NULL)
+       dfa->edests = new_edests;
       new_eclosures = re_realloc (dfa->eclosures, re_node_set, new_nodes_alloc);
+      if (new_eclosures != NULL)
+       dfa->eclosures = new_eclosures;
       if (__glibc_unlikely (new_nexts == NULL || new_indices == NULL
                            || new_edests == NULL || new_eclosures == NULL))
-       {
-          re_free (new_nexts);
-          re_free (new_indices);
-          re_free (new_edests);
-          re_free (new_eclosures);
-          return -1;
-       }
-      dfa->nexts = new_nexts;
-      dfa->org_indices = new_indices;
-      dfa->edests = new_edests;
-      dfa->eclosures = new_eclosures;
-      dfa->nodes_alloc = new_nodes_alloc;
+       return -1;
     }
   dfa->nodes[dfa->nodes_len] = token;
   dfa->nodes[dfa->nodes_len].constraint = 0;
-#ifdef RE_ENABLE_I18N
   dfa->nodes[dfa->nodes_len].accept_mb =
     ((token.type == OP_PERIOD && dfa->mb_cur_max > 1)
      || token.type == COMPLEX_BRACKET);
-#endif
   dfa->nexts[dfa->nodes_len] = -1;
   re_node_set_init_empty (dfa->edests + dfa->nodes_len);
   re_node_set_init_empty (dfa->eclosures + dfa->nodes_len);
@@ -1651,9 +1613,7 @@ create_ci_newstate (const re_dfa_t *dfa, const re_node_set *nodes,
       re_token_type_t type = node->type;
       if (type == CHARACTER && !node->constraint)
        continue;
-#ifdef RE_ENABLE_I18N
       newstate->accept_mb |= node->accept_mb;
-#endif /* RE_ENABLE_I18N */
 
       /* If the state has the halt node, the state is a halt state.  */
       if (type == END_OF_RE)
@@ -1705,9 +1665,7 @@ create_cd_newstate (const re_dfa_t *dfa, const re_node_set *nodes,
 
       if (type == CHARACTER && !constraint)
        continue;
-#ifdef RE_ENABLE_I18N
       newstate->accept_mb |= node->accept_mb;
-#endif /* RE_ENABLE_I18N */
 
       /* If the state has the halt node, the state is a halt state.  */
       if (type == END_OF_RE)
index 1245e78..7e35a11 100644 (file)
@@ -1,5 +1,5 @@
 /* Extended regular expression matching and search library.
-   Copyright (C) 2002-2021 Free Software Foundation, Inc.
+   Copyright (C) 2002-2023 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
 
@@ -29,7 +29,7 @@
 #include <locale.h>
 #include <wchar.h>
 #include <wctype.h>
-#include <stdbool.h>
+#include <stdckdint.h>
 #include <stdint.h>
 
 #ifndef _LIBC
 # define gettext_noop(String) String
 #endif
 
-#if (defined MB_CUR_MAX && HAVE_WCTYPE_H && HAVE_ISWCTYPE) || _LIBC
-# define RE_ENABLE_I18N
-#endif
-
 /* Number of ASCII characters.  */
 #define ASCII_CHARS 0x80
 
 # define __regfree regfree
 #endif /* not _LIBC */
 
-#ifndef SSIZE_MAX
-# define SSIZE_MAX ((ssize_t) (SIZE_MAX / 2))
-#endif
+/* Types related to integers.  Unless protected by #ifdef _LIBC, the
+   regex code should avoid exact-width types like int32_t and uint64_t
+   as some non-GCC platforms lack them, an issue when this code is
+   used in Gnulib.  */
+
 #ifndef ULONG_WIDTH
 # define ULONG_WIDTH REGEX_UINTEGER_WIDTH (ULONG_MAX)
 /* The number of usable bits in an unsigned integer type with maximum
@@ -246,10 +244,8 @@ typedef enum
   SIMPLE_BRACKET = 3,
   OP_BACK_REF = 4,
   OP_PERIOD = 5,
-#ifdef RE_ENABLE_I18N
   COMPLEX_BRACKET = 6,
   OP_UTF8_PERIOD = 7,
-#endif /* RE_ENABLE_I18N */
 
   /* We define EPSILON_BIT as a macro so that OP_OPEN_SUBEXP is used
      when the debugger shows values of this enum type.  */
@@ -287,30 +283,29 @@ typedef enum
 
 } re_token_type_t;
 
-#ifdef RE_ENABLE_I18N
 typedef struct
 {
   /* Multibyte characters.  */
   wchar_t *mbchars;
 
+#ifdef _LIBC
   /* Collating symbols.  */
-# ifdef _LIBC
   int32_t *coll_syms;
-# endif
+#endif
 
+#ifdef _LIBC
   /* Equivalence classes. */
-# ifdef _LIBC
   int32_t *equiv_classes;
-# endif
+#endif
 
   /* Range expressions. */
-# ifdef _LIBC
+#ifdef _LIBC
   uint32_t *range_starts;
   uint32_t *range_ends;
-# else /* not _LIBC */
+#else
   wchar_t *range_starts;
   wchar_t *range_ends;
-# endif /* not _LIBC */
+#endif
 
   /* Character classes. */
   wctype_t *char_classes;
@@ -333,7 +328,6 @@ typedef struct
   /* # of character classes. */
   Idx nchar_classes;
 } re_charset_t;
-#endif /* RE_ENABLE_I18N */
 
 typedef struct
 {
@@ -341,9 +335,7 @@ typedef struct
   {
     unsigned char c;           /* for CHARACTER */
     re_bitset_ptr_t sbcset;    /* for SIMPLE_BRACKET */
-#ifdef RE_ENABLE_I18N
     re_charset_t *mbcset;      /* for COMPLEX_BRACKET */
-#endif /* RE_ENABLE_I18N */
     Idx idx;                   /* for BACK_REF */
     re_context_type ctx_type;  /* for ANCHOR */
   } opr;
@@ -355,12 +347,10 @@ typedef struct
   unsigned int constraint : 10;        /* context constraint */
   unsigned int duplicated : 1;
   unsigned int opt_subexp : 1;
-#ifdef RE_ENABLE_I18N
   unsigned int accept_mb : 1;
   /* These 2 bits can be moved into the union if needed (e.g. if running out
      of bits; move opr.c to opr.c.c and move the flags to opr.c.flags).  */
   unsigned int mb_partial : 1;
-#endif
   unsigned int word_char : 1;
 } re_token_t;
 
@@ -375,12 +365,10 @@ struct re_string_t
      REG_ICASE, upper cases of the string are stored, otherwise MBS points
      the same address that RAW_MBS points.  */
   unsigned char *mbs;
-#ifdef RE_ENABLE_I18N
   /* Store the wide character string which is corresponding to MBS.  */
   wint_t *wcs;
   Idx *offsets;
   mbstate_t cur_state;
-#endif
   /* Index in RAW_MBS.  Each character mbs[i] corresponds to
      raw_mbs[raw_mbs_idx + i].  */
   Idx raw_mbs_idx;
@@ -779,7 +767,6 @@ bitset_mask (bitset_t dest, const bitset_t src)
     dest[bitset_i] &= src[bitset_i];
 }
 
-#ifdef RE_ENABLE_I18N
 /* Functions for re_string.  */
 static int
 __attribute__ ((pure, unused))
@@ -803,15 +790,15 @@ re_string_wchar_at (const re_string_t *pstr, Idx idx)
   return (wint_t) pstr->wcs[idx];
 }
 
-# ifdef _LIBC
-#  include <locale/weight.h>
-# endif
+#ifdef _LIBC
+# include <locale/weight.h>
+#endif
 
 static int
 __attribute__ ((pure, unused))
 re_string_elem_size_at (const re_string_t *pstr, Idx idx)
 {
-# ifdef _LIBC
+#ifdef _LIBC
   const unsigned char *p, *extra;
   const int32_t *table, *indirect;
   uint_fast32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES);
@@ -827,14 +814,13 @@ re_string_elem_size_at (const re_string_t *pstr, Idx idx)
       findidx (table, indirect, extra, &p, pstr->len - idx);
       return p - pstr->mbs - idx;
     }
-  else
-# endif /* _LIBC */
-    return 1;
+#endif /* _LIBC */
+
+  return 1;
 }
-#endif /* RE_ENABLE_I18N */
 
 #ifdef _LIBC
-# if __GNUC__ >= 7
+# if __glibc_has_attribute (__fallthrough__)
 #  define FALLTHROUGH __attribute__ ((__fallthrough__))
 # else
 #  define FALLTHROUGH ((void) 0)
index 5e4eb49..f05f38a 100644 (file)
@@ -1,5 +1,5 @@
 /* Extended regular expression matching and search library.
-   Copyright (C) 2002-2021 Free Software Foundation, Inc.
+   Copyright (C) 2002-2023 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
 
@@ -67,11 +67,9 @@ static reg_errcode_t set_regs (const regex_t *preg,
                               bool fl_backtrack);
 static reg_errcode_t free_fail_stack_return (struct re_fail_stack_t *fs);
 
-#ifdef RE_ENABLE_I18N
 static int sift_states_iter_mb (const re_match_context_t *mctx,
                                re_sift_context_t *sctx,
                                Idx node_idx, Idx str_idx, Idx max_str_idx);
-#endif /* RE_ENABLE_I18N */
 static reg_errcode_t sift_states_backward (const re_match_context_t *mctx,
                                           re_sift_context_t *sctx);
 static reg_errcode_t build_sifted_states (const re_match_context_t *mctx,
@@ -123,10 +121,8 @@ static re_dfastate_t *transit_state_sb (reg_errcode_t *err,
                                        re_match_context_t *mctx,
                                        re_dfastate_t *pstate);
 #endif
-#ifdef RE_ENABLE_I18N
 static reg_errcode_t transit_state_mb (re_match_context_t *mctx,
                                       re_dfastate_t *pstate);
-#endif /* RE_ENABLE_I18N */
 static reg_errcode_t transit_state_bkref (re_match_context_t *mctx,
                                          const re_node_set *nodes);
 static reg_errcode_t get_subexp (re_match_context_t *mctx,
@@ -156,14 +152,12 @@ static reg_errcode_t expand_bkref_cache (re_match_context_t *mctx,
                                         re_node_set *cur_nodes, Idx cur_str,
                                         Idx subexp_num, int type);
 static bool build_trtable (const re_dfa_t *dfa, re_dfastate_t *state);
-#ifdef RE_ENABLE_I18N
 static int check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx,
                                    const re_string_t *input, Idx idx);
-# ifdef _LIBC
+#ifdef _LIBC
 static unsigned int find_collation_sequence_value (const unsigned char *mbs,
                                                   size_t name_len);
-# endif /* _LIBC */
-#endif /* RE_ENABLE_I18N */
+#endif
 static Idx group_nodes_into_DFAstates (const re_dfa_t *dfa,
                                       const re_dfastate_t *state,
                                       re_node_set *states_node,
@@ -191,7 +185,7 @@ static reg_errcode_t extend_buffers (re_match_context_t *mctx, int min_len);
 
 int
 regexec (const regex_t *__restrict preg, const char *__restrict string,
-        size_t nmatch, regmatch_t pmatch[], int eflags)
+        size_t nmatch, regmatch_t pmatch[_REGEX_NELTS (nmatch)], int eflags)
 {
   reg_errcode_t err;
   Idx start, length;
@@ -235,7 +229,7 @@ int
 attribute_compat_text_section
 __compat_regexec (const regex_t *__restrict preg,
                  const char *__restrict string, size_t nmatch,
-                 regmatch_t pmatch[], int eflags)
+                 regmatch_t pmatch[_REGEX_NELTS (nmatch)], int eflags)
 {
   return regexec (preg, string, nmatch, pmatch,
                  eflags & (REG_NOTBOL | REG_NOTEOL));
@@ -330,7 +324,7 @@ re_search_2_stub (struct re_pattern_buffer *bufp, const char *string1,
   char *s = NULL;
 
   if (__glibc_unlikely ((length1 < 0 || length2 < 0 || stop < 0
-                        || INT_ADD_WRAPV (length1, length2, &len))))
+                        || ckd_add (&len, length1, length2))))
     return -2;
 
   /* Concatenate the strings.  */
@@ -758,10 +752,9 @@ re_search_internal (const regex_t *preg, const char *string, Idx length,
 
                  offset = match_first - mctx.input.raw_mbs_idx;
                }
-             /* If MATCH_FIRST is out of the buffer, leave it as '\0'.
-                Note that MATCH_FIRST must not be smaller than 0.  */
-             ch = (match_first >= length
-                   ? 0 : re_string_byte_at (&mctx.input, offset));
+             /* Use buffer byte if OFFSET is in buffer, otherwise '\0'.  */
+             ch = (offset < mctx.input.valid_len
+                   ? re_string_byte_at (&mctx.input, offset) : 0);
              if (fastmap[ch])
                break;
              match_first += incr;
@@ -780,12 +773,10 @@ re_search_internal (const regex_t *preg, const char *string, Idx length,
       if (__glibc_unlikely (err != REG_NOERROR))
        goto free_return;
 
-#ifdef RE_ENABLE_I18N
-     /* Don't consider this char as a possible match start if it part,
-       yet isn't the head, of a multibyte character.  */
+      /* Don't consider this char as a possible match start if it part,
+         yet isn't the head, of a multibyte character.  */
       if (!sb && !re_string_first_byte (&mctx.input, 0))
        continue;
-#endif
 
       /* It seems to be appropriate one, then use the matcher.  */
       /* We assume that the matching starts from 0.  */
@@ -859,7 +850,6 @@ re_search_internal (const regex_t *preg, const char *string, Idx length,
       for (reg_idx = 0; reg_idx < nmatch; ++reg_idx)
        if (pmatch[reg_idx].rm_so != -1)
          {
-#ifdef RE_ENABLE_I18N
            if (__glibc_unlikely (mctx.input.offsets_needed != 0))
              {
                pmatch[reg_idx].rm_so =
@@ -871,9 +861,6 @@ re_search_internal (const regex_t *preg, const char *string, Idx length,
                   ? mctx.input.valid_raw_len
                   : mctx.input.offsets[pmatch[reg_idx].rm_eo]);
              }
-#else
-           DEBUG_ASSERT (mctx.input.offsets_needed == 0);
-#endif
            pmatch[reg_idx].rm_so += match_first;
            pmatch[reg_idx].rm_eo += match_first;
          }
@@ -997,8 +984,7 @@ prune_impossible_nodes (re_match_context_t *mctx)
    We must select appropriate initial state depending on the context,
    since initial states may have constraints like "\<", "^", etc..  */
 
-static inline re_dfastate_t *
-__attribute__ ((always_inline))
+static __always_inline re_dfastate_t *
 acquire_init_state_context (reg_errcode_t *err, const re_match_context_t *mctx,
                            Idx idx)
 {
@@ -1262,12 +1248,9 @@ proceed_next_node (const re_match_context_t *mctx, Idx nregs, regmatch_t *regs,
       Idx naccepted = 0;
       re_token_type_t type = dfa->nodes[node].type;
 
-#ifdef RE_ENABLE_I18N
       if (dfa->nodes[node].accept_mb)
        naccepted = check_node_accept_bytes (dfa, node, &mctx->input, *pidx);
-      else
-#endif /* RE_ENABLE_I18N */
-      if (type == OP_BACK_REF)
+      else if (type == OP_BACK_REF)
        {
          Idx subexp_idx = dfa->nodes[node].opr.idx + 1;
          if (subexp_idx < nregs)
@@ -1325,8 +1308,8 @@ push_fail_stack (struct re_fail_stack_t *fs, Idx str_idx, Idx dest_node,
                 re_node_set *eps_via_nodes)
 {
   reg_errcode_t err;
-  Idx num = fs->num++;
-  if (fs->num == fs->alloc)
+  Idx num = fs->num;
+  if (num == fs->alloc)
     {
       struct re_fail_stack_ent_t *new_array;
       new_array = re_realloc (fs->stack, struct re_fail_stack_ent_t,
@@ -1341,6 +1324,7 @@ push_fail_stack (struct re_fail_stack_t *fs, Idx str_idx, Idx dest_node,
   fs->stack[num].regs = re_malloc (regmatch_t, 2 * nregs);
   if (fs->stack[num].regs == NULL)
     return REG_ESPACE;
+  fs->num = num + 1;
   memcpy (fs->stack[num].regs, regs, sizeof (regmatch_t) * nregs);
   memcpy (fs->stack[num].regs + nregs, prevregs, sizeof (regmatch_t) * nregs);
   err = re_node_set_init_copy (&fs->stack[num].eps_via_nodes, eps_via_nodes);
@@ -1635,12 +1619,10 @@ build_sifted_states (const re_match_context_t *mctx, re_sift_context_t *sctx,
       bool ok;
       DEBUG_ASSERT (!IS_EPSILON_NODE (dfa->nodes[prev_node].type));
 
-#ifdef RE_ENABLE_I18N
       /* If the node may accept "multi byte".  */
       if (dfa->nodes[prev_node].accept_mb)
        naccepted = sift_states_iter_mb (mctx, sctx, prev_node,
                                         str_idx, sctx->last_str_idx);
-#endif /* RE_ENABLE_I18N */
 
       /* We don't check backreferences here.
         See update_cur_sifted_state().  */
@@ -1689,6 +1671,7 @@ clean_state_log_if_needed (re_match_context_t *mctx, Idx next_state_log_idx)
 
   if (top < next_state_log_idx)
     {
+      DEBUG_ASSERT (mctx->state_log != NULL);
       memset (mctx->state_log + top + 1, '\0',
              sizeof (re_dfastate_t *) * (next_state_log_idx - top));
       mctx->state_log_top = next_state_log_idx;
@@ -2177,7 +2160,6 @@ sift_states_bkref (const re_match_context_t *mctx, re_sift_context_t *sctx,
 }
 
 
-#ifdef RE_ENABLE_I18N
 static int
 sift_states_iter_mb (const re_match_context_t *mctx, re_sift_context_t *sctx,
                     Idx node_idx, Idx str_idx, Idx max_str_idx)
@@ -2197,8 +2179,6 @@ sift_states_iter_mb (const re_match_context_t *mctx, re_sift_context_t *sctx,
      'naccepted' bytes input.  */
   return naccepted;
 }
-#endif /* RE_ENABLE_I18N */
-
 \f
 /* Functions for state transition.  */
 
@@ -2216,7 +2196,6 @@ transit_state (reg_errcode_t *err, re_match_context_t *mctx,
   re_dfastate_t **trtable;
   unsigned char ch;
 
-#ifdef RE_ENABLE_I18N
   /* If the current state can accept multibyte.  */
   if (__glibc_unlikely (state->accept_mb))
     {
@@ -2224,7 +2203,6 @@ transit_state (reg_errcode_t *err, re_match_context_t *mctx,
       if (__glibc_unlikely (*err != REG_NOERROR))
        return NULL;
     }
-#endif /* RE_ENABLE_I18N */
 
   /* Then decide the next state with the single byte.  */
 #if 0
@@ -2445,7 +2423,6 @@ transit_state_sb (reg_errcode_t *err, re_match_context_t *mctx,
 }
 #endif
 
-#ifdef RE_ENABLE_I18N
 static reg_errcode_t
 transit_state_mb (re_match_context_t *mctx, re_dfastate_t *pstate)
 {
@@ -2513,7 +2490,6 @@ transit_state_mb (re_match_context_t *mctx, re_dfastate_t *pstate)
     }
   return REG_NOERROR;
 }
-#endif /* RE_ENABLE_I18N */
 
 static reg_errcode_t
 transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes)
@@ -3003,9 +2979,7 @@ check_arrival_add_next_nodes (re_match_context_t *mctx, Idx str_idx,
   const re_dfa_t *const dfa = mctx->dfa;
   bool ok;
   Idx cur_idx;
-#ifdef RE_ENABLE_I18N
   reg_errcode_t err = REG_NOERROR;
-#endif
   re_node_set union_set;
   re_node_set_init_empty (&union_set);
   for (cur_idx = 0; cur_idx < cur_nodes->nelem; ++cur_idx)
@@ -3014,7 +2988,6 @@ check_arrival_add_next_nodes (re_match_context_t *mctx, Idx str_idx,
       Idx cur_node = cur_nodes->elems[cur_idx];
       DEBUG_ASSERT (!IS_EPSILON_NODE (dfa->nodes[cur_node].type));
 
-#ifdef RE_ENABLE_I18N
       /* If the node may accept "multi byte".  */
       if (dfa->nodes[cur_node].accept_mb)
        {
@@ -3052,7 +3025,7 @@ check_arrival_add_next_nodes (re_match_context_t *mctx, Idx str_idx,
                }
            }
        }
-#endif /* RE_ENABLE_I18N */
+
       if (naccepted
          || check_node_accept (mctx, dfa->nodes + cur_node, str_idx))
        {
@@ -3476,18 +3449,15 @@ group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state,
        }
       else if (type == OP_PERIOD)
        {
-#ifdef RE_ENABLE_I18N
          if (dfa->mb_cur_max > 1)
            bitset_merge (accepts, dfa->sb_char);
          else
-#endif
            bitset_set_all (accepts);
          if (!(dfa->syntax & RE_DOT_NEWLINE))
            bitset_clear (accepts, '\n');
          if (dfa->syntax & RE_DOT_NOT_NULL)
            bitset_clear (accepts, '\0');
        }
-#ifdef RE_ENABLE_I18N
       else if (type == OP_UTF8_PERIOD)
        {
          if (ASCII_CHARS % BITSET_WORD_BITS == 0)
@@ -3499,7 +3469,6 @@ group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state,
          if (dfa->syntax & RE_DOT_NOT_NULL)
            bitset_clear (accepts, '\0');
        }
-#endif
       else
        continue;
 
@@ -3530,12 +3499,10 @@ group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state,
                  bitset_empty (accepts);
                  continue;
                }
-#ifdef RE_ENABLE_I18N
              if (dfa->mb_cur_max > 1)
                for (j = 0; j < BITSET_WORDS; ++j)
                  any_set |= (accepts[j] &= (dfa->word_char[j] | ~dfa->sb_char[j]));
              else
-#endif
                for (j = 0; j < BITSET_WORDS; ++j)
                  any_set |= (accepts[j] &= dfa->word_char[j]);
              if (!any_set)
@@ -3549,12 +3516,10 @@ group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state,
                  bitset_empty (accepts);
                  continue;
                }
-#ifdef RE_ENABLE_I18N
              if (dfa->mb_cur_max > 1)
                for (j = 0; j < BITSET_WORDS; ++j)
                  any_set |= (accepts[j] &= ~(dfa->word_char[j] & dfa->sb_char[j]));
              else
-#endif
                for (j = 0; j < BITSET_WORDS; ++j)
                  any_set |= (accepts[j] &= ~dfa->word_char[j]);
              if (!any_set)
@@ -3631,7 +3596,6 @@ group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state,
   return -1;
 }
 
-#ifdef RE_ENABLE_I18N
 /* Check how many bytes the node 'dfa->nodes[node_idx]' accepts.
    Return the number of the bytes the node accepts.
    STR_IDX is the current index of the input string.
@@ -3640,9 +3604,9 @@ group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state,
    one collating element like '.', '[a-z]', opposite to the other nodes
    can only accept one byte.  */
 
-# ifdef _LIBC
-#  include <locale/weight.h>
-# endif
+#ifdef _LIBC
+# include <locale/weight.h>
+#endif
 
 static int
 check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx,
@@ -3726,12 +3690,12 @@ check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx,
   if (node->type == COMPLEX_BRACKET)
     {
       const re_charset_t *cset = node->opr.mbcset;
-# ifdef _LIBC
+#ifdef _LIBC
       const unsigned char *pin
        = ((const unsigned char *) re_string_get_buffer (input) + str_idx);
       Idx j;
       uint32_t nrules;
-# endif /* _LIBC */
+#endif
       int match_len = 0;
       wchar_t wc = ((cset->nranges || cset->nchar_classes || cset->nmbchars)
                    ? re_string_wchar_at (input, str_idx) : 0);
@@ -3754,7 +3718,7 @@ check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx,
            }
        }
 
-# ifdef _LIBC
+#ifdef _LIBC
       nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES);
       if (nrules != 0)
        {
@@ -3843,7 +3807,7 @@ check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx,
            }
        }
       else
-# endif /* _LIBC */
+#endif /* _LIBC */
        {
          /* match with range expression?  */
          for (i = 0; i < cset->nranges; ++i)
@@ -3869,7 +3833,7 @@ check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx,
   return 0;
 }
 
-# ifdef _LIBC
+#ifdef _LIBC
 static unsigned int
 find_collation_sequence_value (const unsigned char *mbs, size_t mbs_len)
 {
@@ -3927,8 +3891,7 @@ find_collation_sequence_value (const unsigned char *mbs, size_t mbs_len)
       return UINT_MAX;
     }
 }
-# endif /* _LIBC */
-#endif /* RE_ENABLE_I18N */
+#endif /* _LIBC */
 
 /* Check whether the node accepts the byte which is IDX-th
    byte of the INPUT.  */
@@ -3951,12 +3914,10 @@ check_node_accept (const re_match_context_t *mctx, const re_token_t *node,
         return false;
       break;
 
-#ifdef RE_ENABLE_I18N
     case OP_UTF8_PERIOD:
       if (ch >= ASCII_CHARS)
         return false;
       FALLTHROUGH;
-#endif
     case OP_PERIOD:
       if ((ch == '\n' && !(mctx->dfa->syntax & RE_DOT_NEWLINE))
          || (ch == '\0' && (mctx->dfa->syntax & RE_DOT_NOT_NULL)))
@@ -4017,7 +3978,6 @@ extend_buffers (re_match_context_t *mctx, int min_len)
   /* Then reconstruct the buffers.  */
   if (pstr->icase)
     {
-#ifdef RE_ENABLE_I18N
       if (pstr->mb_cur_max > 1)
        {
          ret = build_wcs_upper_buffer (pstr);
@@ -4025,16 +3985,13 @@ extend_buffers (re_match_context_t *mctx, int min_len)
            return ret;
        }
       else
-#endif /* RE_ENABLE_I18N  */
        build_upper_buffer (pstr);
     }
   else
     {
-#ifdef RE_ENABLE_I18N
       if (pstr->mb_cur_max > 1)
        build_wcs_buffer (pstr);
       else
-#endif /* RE_ENABLE_I18N  */
        {
          if (pstr->trans != NULL)
            re_string_translate_buffer (pstr);
index 3ad3477..f0b8899 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1995-2003, 2005-2021 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1995-2003, 2005-2023 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
index 53e231c..b70ba09 100644 (file)
@@ -1,5 +1,5 @@
 /* Return the internal lock used by setlocale_null_r.
-   Copyright (C) 2019-2021 Free Software Foundation, Inc.
+   Copyright (C) 2019-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index dbfda25..89c8a06 100644 (file)
@@ -1,5 +1,5 @@
 /* Query the name of the current global locale.
-   Copyright (C) 2019-2021 Free Software Foundation, Inc.
+   Copyright (C) 2019-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
@@ -173,7 +173,7 @@ setlocale_null_unlocked (int category, char *buf, size_t bufsize)
 #endif
 }
 
-#if !(SETLOCALE_NULL_ALL_MTSAFE && SETLOCALE_NULL_ONE_MTSAFE) /* musl libc, macOS, FreeBSD, NetBSD, OpenBSD, AIX, Haiku, Cygwin */
+#if !(SETLOCALE_NULL_ALL_MTSAFE && SETLOCALE_NULL_ONE_MTSAFE) /* musl libc, macOS, FreeBSD, NetBSD, OpenBSD, AIX, Haiku, Cygwin < 3.4.6 */
 
 /* Use a lock, so that no two threads can invoke setlocale_null_unlocked
    at the same time.  */
@@ -198,7 +198,7 @@ setlocale_null_with_lock (int category, char *buf, size_t bufsize)
   return ret;
 }
 
-# elif HAVE_PTHREAD_API /* musl libc, macOS, FreeBSD, NetBSD, OpenBSD, AIX, Haiku, Cygwin */
+# elif HAVE_PTHREAD_API /* musl libc, macOS, FreeBSD, NetBSD, OpenBSD, AIX, Haiku, Cygwin < 3.4.6 */
 
 extern
 #  if defined _WIN32 || defined __CYGWIN__
index 00c42e2..c740fa0 100644 (file)
@@ -1,5 +1,5 @@
 /* Query the name of the current global locale.
-   Copyright (C) 2019-2021 Free Software Foundation, Inc.
+   Copyright (C) 2019-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index a69ee02..a15d2cc 100644 (file)
@@ -1,10 +1,10 @@
 /* Shell quoting.
-   Copyright (C) 2001-2004, 2006, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2001-2004, 2006, 2009-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <haible@clisp.cons.org>, 2001.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index e543e40..8c377c4 100644 (file)
@@ -1,10 +1,10 @@
 /* Shell quoting.
-   Copyright (C) 2001-2002, 2004, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2001-2002, 2004, 2009-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <haible@clisp.cons.org>, 2001.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    arguments, since Unix shells interpret characters like " ", "'", "<", ">",
    "$", '*', '?' etc. in a special way.  */
 
-#include <stddef.h>
+/* This file uses _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_RETURNS_NONNULL.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
+#include <stdlib.h>
 
 #ifdef __cplusplus
 extern "C" {
@@ -36,11 +41,15 @@ extern size_t shell_quote_length (const char *string);
 extern char * shell_quote_copy (char *restrict p, const char *string);
 
 /* Returns the freshly allocated quoted string.  */
-extern char * shell_quote (const char *string);
+extern char * shell_quote (const char *string)
+  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE
+  _GL_ATTRIBUTE_RETURNS_NONNULL;
 
 /* Returns a freshly allocated string containing all argument strings, quoted,
    separated through spaces.  */
-extern char * shell_quote_argv (const char * const *argv);
+extern char * shell_quote_argv (const char * const *argv)
+  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE
+  _GL_ATTRIBUTE_RETURNS_NONNULL;
 
 #ifdef __cplusplus
 }
index 275da8c..418d59c 100644 (file)
@@ -1,6 +1,6 @@
 /* A GNU-like <signal.h>.
 
-   Copyright (C) 2006-2021 Free Software Foundation, Inc.
+   Copyright (C) 2006-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 #ifndef _@GUARD_PREFIX@_SIGNAL_H
 #define _@GUARD_PREFIX@_SIGNAL_H
 
-/* Mac OS X 10.3, FreeBSD 6.4, OpenBSD 3.8, OSF/1 4.0, Solaris 2.6, Android,
+/* This file uses GNULIB_POSIXCHECK, HAVE_RAW_DECL_*.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
+/* For testing the OpenBSD version.  */
+#if (@GNULIB_PTHREAD_SIGMASK@ || defined GNULIB_POSIXCHECK) \
+    && defined __OpenBSD__
+# include <sys/param.h>
+#endif
+
+/* Mac OS X 10.3, FreeBSD < 8.0, OpenBSD < 5.1, OSF/1 4.0, Solaris 2.6, Android,
    OS/2 kLIBC declare pthread_sigmask in <pthread.h>, not in <signal.h>.
    But avoid namespace pollution on glibc systems.*/
 #if (@GNULIB_PTHREAD_SIGMASK@ || defined GNULIB_POSIXCHECK) \
     && ((defined __APPLE__ && defined __MACH__) \
-        || defined __FreeBSD__ || defined __OpenBSD__ || defined __osf__ \
-        || defined __sun || defined __ANDROID__ || defined __KLIBC__) \
+        || (defined __FreeBSD__ && __FreeBSD__ < 8) \
+        || (defined __OpenBSD__ && OpenBSD < 201205) \
+        || defined __osf__ || defined __sun || defined __ANDROID__ \
+        || defined __KLIBC__) \
     && ! defined __GLIBC__
 # include <pthread.h>
 #endif
similarity index 99%
rename from gnulib-tests/sigprocmask.c
rename to lib/sigprocmask.c
index c479204..943383e 100644 (file)
@@ -1,5 +1,5 @@
 /* POSIX compatible signal blocking.
-   Copyright (C) 2006-2021 Free Software Foundation, Inc.
+   Copyright (C) 2006-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2006.
 
    This file is free software: you can redistribute it and/or modify
index 998c827..8263d9b 100644 (file)
@@ -1,5 +1,5 @@
 /* Page fault handling library.
-   Copyright (C) 1993-2021 Free Software Foundation, Inc.
+   Copyright (C) 1993-2023 Free Software Foundation, Inc.
    Copyright (C) 2018  Nylon Chen <nylon7@andestech.com>
 
    This program is free software: you can redistribute it and/or modify
@@ -61,7 +61,7 @@ int libsigsegv_version = LIBSIGSEGV_VERSION;
           occurred.
  */
 
-#if defined __linux__ || defined __ANDROID__ /* Linux */
+#if defined __linux__ && !defined __ANDROID__ /* Linux */
 
 # define SIGSEGV_FAULT_HANDLER_ARGLIST  int sig, siginfo_t *sip, void *ucp
 # define SIGSEGV_FAULT_ADDRESS  sip->si_addr
@@ -168,6 +168,15 @@ int libsigsegv_version = LIBSIGSEGV_VERSION;
    because $bsp and $bspstore never differ by more than ca. 1 KB.  */
 #  define SIGSEGV_FAULT_BSP_POINTER  ((ucontext_t *) ucp)->uc_mcontext.sc_ar_bsp
 
+# elif defined __loongarch__
+
+/* See <sys/ucontext.h>.
+   Note that the 'mcontext_t' defined in <sys/ucontext.h>
+   and the 'struct sigcontext' defined in <bits/sigcontext.h>
+   (see also <asm/sigcontext.h>) are effectively the same.  */
+
+#  define SIGSEGV_FAULT_STACKPOINTER  ((ucontext_t *) ucp)->uc_mcontext.__gregs[3]
+
 # elif defined __m68k__
 
 /* See glibc/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h
@@ -218,11 +227,28 @@ int libsigsegv_version = LIBSIGSEGV_VERSION;
 #  if defined __powerpc64__ || defined __powerpc64_elfv2__ /* 64-bit */
 #   define SIGSEGV_FAULT_STACKPOINTER  ((ucontext_t *) ucp)->uc_mcontext.gp_regs[1]
 #  else /* 32-bit */
-/* both should be equivalent */
-#   if 0
-#    define SIGSEGV_FAULT_STACKPOINTER  ((ucontext_t *) ucp)->uc_mcontext.regs->gpr[1]
+#   if MUSL_LIBC
+/* musl libc has a different structure of ucontext_t in
+   musl/arch/powerpc/bits/signal.h.  */
+/* The glibc comments say:
+     "Different versions of the kernel have stored the registers on signal
+      delivery at different offsets from the ucontext struct.  Programs should
+      thus use the uc_mcontext.uc_regs pointer to find where the registers are
+      actually stored."  */
+#    if 0
+#     define SIGSEGV_FAULT_STACKPOINTER  ((ucontext_t *) ucp)->uc_mcontext.gregs[1]
+#    else
+#     define SIGSEGV_FAULT_STACKPOINTER  ((ucontext_t *) ucp)->uc_regs->gregs[1]
+#    endif
 #   else
-#    define SIGSEGV_FAULT_STACKPOINTER  ((ucontext_t *) ucp)->uc_mcontext.uc_regs->gregs[1]
+/* Assume the structure of ucontext_t in
+   glibc/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h.  */
+/* Because of the union, both definitions should be equivalent.  */
+#    if 0
+#     define SIGSEGV_FAULT_STACKPOINTER  ((ucontext_t *) ucp)->uc_mcontext.regs->gpr[1]
+#    else
+#     define SIGSEGV_FAULT_STACKPOINTER  ((ucontext_t *) ucp)->uc_mcontext.uc_regs->gregs[1]
+#    endif
 #   endif
 #  endif
 
@@ -322,21 +348,80 @@ int libsigsegv_version = LIBSIGSEGV_VERSION;
 
 #endif
 
+#if defined __ANDROID__ /* Android */
+/* A platform that supports the POSIX:2008 (XPG 7) way, without
+   'struct sigcontext' nor 'ucontext_t'.  */
+
+# define SIGSEGV_FAULT_HANDLER_ARGLIST  int sig, siginfo_t *sip, void *context
+# define SIGSEGV_FAULT_ADDRESS  sip->si_addr
+# define SIGSEGV_FAULT_CONTEXT  context
+# define SIGSEGV_FAULT_ADDRESS_FROM_SIGINFO
+
+#endif
+
 #if defined __GNU__ /* Hurd */
 
-# define SIGSEGV_FAULT_HANDLER_ARGLIST  int sig, int code, struct sigcontext *scp
+# define SIGSEGV_FAULT_HANDLER_ARGLIST  int sig, long code, struct sigcontext *scp
 # define SIGSEGV_FAULT_ADDRESS  (unsigned long) code
 # define SIGSEGV_FAULT_CONTEXT  scp
 
-# if defined __i386__
+# if defined __x86_64__
+/* 64 bit registers */
+
+/* scp points to a 'struct sigcontext' (defined in
+   glibc/sysdeps/mach/hurd/x86_64/bits/sigcontext.h).
+   The registers, at the moment the signal occurred, get pushed on the kernel
+   stack through gnumach/x86_64/locore.S:alltraps. They are denoted by a
+   'struct i386_saved_state' (defined in gnumach/i386/i386/thread.h).
+   Upon invocation of the Mach interface function thread_get_state
+   <https://www.gnu.org/software/hurd/gnumach-doc/Thread-Execution.html>
+   (= __thread_get_state in glibc), defined in gnumach/kern/thread.c,
+   the function thread_getstatus, defined in gnumach/i386/i386/pcb.c, copies the
+   register values in a different arrangement into a 'struct i386_thread_state',
+   defined in gnumach/i386/include/mach/i386/thread_status.h. (Different
+   arrangement: trapno, err get dropped; different order of r8...r15; also rsp
+   gets set to 0.)
+   This 'struct i386_thread_state' is actually the 'basic' part of a
+   'struct machine_thread_all_state', defined in
+   glibc/sysdeps/mach/x86/thread_state.h.
+   From there, the function _hurd_setup_sighandler, defined in
+   glibc/sysdeps/mach/hurd/x86/trampoline.c,
+   1. sets rsp to the same value as ursp,
+   2. copies the 'struct i386_thread_state' into the appropriate part of a
+      'struct sigcontext', defined in
+      glibc/sysdeps/mach/hurd/x86_64/bits/sigcontext.h.  */
+/* Both sc_rsp and sc_ursp have the same value.
+   It appears more reliable to use sc_ursp because sc_rsp is marked as
+   "not used".  */
+#  define SIGSEGV_FAULT_STACKPOINTER  scp->sc_ursp
+
+# elif defined __i386__
+/* 32 bit registers */
 
 /* scp points to a 'struct sigcontext' (defined in
    glibc/sysdeps/mach/hurd/i386/bits/sigcontext.h).
-   The registers of this struct get pushed on the stack through
-   gnumach/i386/i386/locore.S:trapall.  */
-/* Both sc_esp and sc_uesp appear to have the same value.
-   It appears more reliable to use sc_uesp because it is labelled as
-   "old esp, if trapped from user".  */
+   The registers, at the moment the signal occurred, get pushed on the kernel
+   stack through gnumach/i386/i386/locore.S:alltraps. They are denoted by a
+   'struct i386_saved_state' (defined in gnumach/i386/i386/thread.h).
+   Upon invocation of the Mach interface function thread_get_state
+   <https://www.gnu.org/software/hurd/gnumach-doc/Thread-Execution.html>
+   (= __thread_get_state in glibc), defined in gnumach/kern/thread.c,
+   the function thread_getstatus, defined in gnumach/i386/i386/pcb.c, copies the
+   register values in a different arrangement into a 'struct i386_thread_state',
+   defined in gnumach/i386/include/mach/i386/thread_status.h. (Different
+   arrangement: trapno, err get dropped; also esp gets set to 0.)
+   This 'struct i386_thread_state' is actually the 'basic' part of a
+   'struct machine_thread_all_state', defined in
+   glibc/sysdeps/mach/x86/thread_state.h.
+   From there, the function _hurd_setup_sighandler, defined in
+   glibc/sysdeps/mach/hurd/x86/trampoline.c,
+   1. sets esp to the same value as uesp,
+   2. copies the 'struct i386_thread_state' into the appropriate part of a
+      'struct sigcontext', defined in
+      glibc/sysdeps/mach/hurd/i386/bits/sigcontext.h.  */
+/* Both sc_esp and sc_uesp have the same value.
+   It appears more reliable to use sc_uesp because sc_esp is marked as
+   "not used".  */
 #  define SIGSEGV_FAULT_STACKPOINTER  scp->sc_uesp
 
 # endif
@@ -511,7 +596,14 @@ int libsigsegv_version = LIBSIGSEGV_VERSION;
 
 #  define SIGSEGV_FAULT_STACKPOINTER  scp->sc_regs[29]
 
-# elif defined __powerpc__ || defined __powerpc64__
+# elif defined __powerpc64__
+
+/* See the definition of 'struct sigcontext' in
+   openbsd-src/sys/arch/powerpc64/include/signal.h.  */
+
+#  define SIGSEGV_FAULT_STACKPOINTER  scp->sc_sp
+
+# elif defined __powerpc__
 
 /* See the definition of 'struct sigcontext' and 'struct trapframe' in
    openbsd-src/sys/arch/powerpc/include/signal.h.  */
@@ -1167,7 +1259,7 @@ install_for (int sig)
   struct sigaction action;
 
 # ifdef SIGSEGV_FAULT_ADDRESS_FROM_SIGINFO
-  action.sa_sigaction = &sigsegv_handler;
+  action.sa_sigaction = (void (*) (int, siginfo_t *, void *)) &sigsegv_handler;
 # else
   action.sa_handler = (void (*) (int)) &sigsegv_handler;
 # endif
index 17ad87e..40b453e 100644 (file)
@@ -1,5 +1,5 @@
 /* Page fault handling library.
-   Copyright (C) 1998-2021 Free Software Foundation, Inc.
+   Copyright (C) 1998-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -23,7 +23,7 @@
 #include <stddef.h>
 
 /* Define the fault context structure.  */
-#if defined __linux__ || defined __ANDROID__ \
+#if (defined __linux__ && !defined __ANDROID__) \
     || (defined __FreeBSD__ && (defined __arm__ || defined __armhf__ || defined __arm64__)) \
     || defined __NetBSD__ \
     || defined _AIX || defined __sun \
@@ -180,7 +180,7 @@ extern int sigsegv_leave_handler (void (*continuation) (void*, void*, void*), vo
  * on some platforms it is a 'struct sigcontext *', on others merely an
  * opaque 'void *'.
  */
-# if defined __linux__ || defined __ANDROID__ \
+# if (defined __linux__ && !defined __ANDROID__) \
      || (defined __FreeBSD__ && (defined __arm__ || defined __armhf__ || defined __arm64__)) \
      || defined __NetBSD__ \
      || (defined __APPLE__ && defined __MACH__) \
index a810afe..1224b7b 100644 (file)
@@ -1,5 +1,5 @@
 /* Determine the virtual memory area of a given address.
-   Copyright (C) 2002-2021 Free Software Foundation, Inc.
+   Copyright (C) 2002-2023 Free Software Foundation, Inc.
    Copyright (C) 2003-2006  Paolo Bonzini <bonzini@gnu.org>
 
    This program is free software: you can redistribute it and/or modify
@@ -22,6 +22,7 @@
 /* On Solaris in 32-bit mode, when gnulib module 'largefile' is in use,
    prevent a compilation error
      "Cannot use procfs in the large file compilation environment"
+   while also preventing <sys/types.h> from not defining off_t.
    On Android, when targeting Android 4.4 or older with a GCC toolchain,
    prevent a compilation error
      "error: call to 'mmap' declared with attribute error: mmap is not
       switch to Clang."
    The files that we access in this compilation unit are less than 2 GB
    large.  */
-#if defined __sun || defined __ANDROID__
+#if defined __sun && !defined _LP64 && _FILE_OFFSET_BITS == 64
+# undef _FILE_OFFSET_BITS
+# define _FILE_OFFSET_BITS 32
+#endif
+#ifdef __ANDROID__
 # undef _FILE_OFFSET_BITS
 #endif
 
@@ -46,7 +51,7 @@
     || defined __FreeBSD_kernel__ || defined __FreeBSD__ || defined __DragonFly__ \
     || defined __NetBSD__ \
     || (defined __APPLE__ && defined __MACH__) \
-    || defined __sgi || defined __sun \
+    || defined _AIX || defined __sgi || defined __sun \
     || defined __CYGWIN__ || defined __HAIKU__
 
 /* This file contains the proximity test function for the simple cases, where
@@ -1465,17 +1470,312 @@ sigsegv_get_vma (uintptr_t req_address, struct vma_struct *vma)
   return -1;
 }
 
-/* -------------------------------------------------------------------------- */
+/* ----------------------------- stackvma-aix.c ----------------------------- */
 
 #elif defined _AIX /* AIX */
 
+# include <unistd.h> /* getpagesize, getpid, close, read */
+# include <errno.h> /* EINTR */
+# include <fcntl.h> /* open */
+# include <string.h> /* memcpy */
+# include <sys/types.h>
+# include <sys/mman.h> /* mmap, munmap */
+# include <sys/procfs.h> /* prmap_t */
+# include <sys/utsname.h> /* uname */
+
+struct callback_locals
+{
+  uintptr_t address;
+  struct vma_struct *vma;
+# if STACK_DIRECTION < 0
+  uintptr_t prev;
+# else
+  int stop_at_next_vma;
+# endif
+  int retval;
+};
+
+static int
+callback (struct callback_locals *locals, uintptr_t start, uintptr_t end)
+{
+# if STACK_DIRECTION < 0
+  if (locals->address >= start && locals->address <= end - 1)
+    {
+      locals->vma->start = start;
+      locals->vma->end = end;
+      locals->vma->prev_end = locals->prev;
+      locals->retval = 0;
+      return 1;
+    }
+  locals->prev = end;
+# else
+  if (locals->stop_at_next_vma)
+    {
+      locals->vma->next_start = start;
+      locals->stop_at_next_vma = 0;
+      return 1;
+    }
+  if (locals->address >= start && locals->address <= end - 1)
+    {
+      locals->vma->start = start;
+      locals->vma->end = end;
+      locals->retval = 0;
+      locals->stop_at_next_vma = 1;
+      return 0;
+    }
+# endif
+  return 0;
+}
+
+/* Iterate over the virtual memory areas of the current process.
+   If such iteration is supported, the callback is called once for every
+   virtual memory area, in ascending order, with the following arguments:
+     - LOCALS is the same argument as passed to vma_iterate.
+     - START is the address of the first byte in the area, page-aligned.
+     - END is the address of the last byte in the area plus 1, page-aligned.
+       Note that it may be 0 for the last area in the address space.
+   If the callback returns 0, the iteration continues.  If it returns 1,
+   the iteration terminates prematurely.
+   This function may open file descriptors, but does not call malloc().
+   Return 0 if all went well, or -1 in case of error.  */
+/* This code is a simplified copy (no handling of protection flags) of the
+   code in gnulib's lib/vma-iter.c.  */
+static int
+vma_iterate (struct callback_locals *locals)
+{
+  /* On AIX, there is a /proc/$pic/map file, that contains records of type
+     prmap_t, defined in <sys/procfs.h>.  In older versions of AIX, it lists
+     only the virtual memory areas that are connected to a file, not the
+     anonymous ones.  But at least since AIX 7.1, it is well usable.  */
+
+  char fnamebuf[6+10+4+1];
+  char *fname;
+  int fd;
+  size_t memneed;
+
+  if (pagesize == 0)
+    init_pagesize ();
+
+  /* Construct fname = sprintf (fnamebuf+i, "/proc/%u/map", getpid ()).  */
+  fname = fnamebuf + sizeof (fnamebuf) - (4+1);
+  memcpy (fname, "/map", 4+1);
+  {
+    unsigned int value = getpid ();
+    do
+      *--fname = (value % 10) + '0';
+    while ((value = value / 10) > 0);
+  }
+  fname -= 6;
+  memcpy (fname, "/proc/", 6);
+
+  fd = open (fname, O_RDONLY | O_CLOEXEC);
+  if (fd < 0)
+    return -1;
+
+  /* The contents of /proc/<pid>/map contains a number of prmap_t entries,
+     then an entirely null prmap_t entry, then a heap of NUL terminated
+     strings.
+     Documentation: https://www.ibm.com/docs/en/aix/7.1?topic=files-proc-file
+     We read the entire contents, but look only at the prmap_t entries and
+     ignore the tail part.  */
+
+  for (memneed = 2 * pagesize; ; memneed = 2 * memneed)
+    {
+      /* Allocate memneed bytes of memory.
+         We cannot use alloca here, because not much stack space is guaranteed.
+         We also cannot use malloc here, because a malloc() call may call mmap()
+         and thus pre-allocate available memory.
+         So use mmap(), and ignore the resulting VMA if it occurs among the
+         resulting VMAs.  (Normally it doesn't, because it was allocated after
+         the open() call.)  */
+      void *auxmap;
+      unsigned long auxmap_start;
+      unsigned long auxmap_end;
+      ssize_t nbytes;
+
+      auxmap = (void *) mmap ((void *) 0, memneed, PROT_READ | PROT_WRITE,
+                              MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
+      if (auxmap == (void *) -1)
+        {
+          close (fd);
+          return -1;
+        }
+      auxmap_start = (unsigned long) auxmap;
+      auxmap_end = auxmap_start + memneed;
+
+      /* Read the contents of /proc/<pid>/map in a single system call.
+         This guarantees a consistent result (no duplicated or omitted
+         entries).  */
+     retry:
+      do
+        nbytes = read (fd, auxmap, memneed);
+      while (nbytes < 0 && errno == EINTR);
+      if (nbytes <= 0)
+        {
+          munmap (auxmap, memneed);
+          close (fd);
+          return -1;
+        }
+      if (nbytes == memneed)
+        {
+          /* Need more memory.  */
+          munmap (auxmap, memneed);
+          if (lseek (fd, 0, SEEK_SET) < 0)
+            {
+              close (fd);
+              return -1;
+            }
+        }
+      else
+        {
+          if (read (fd, (char *) auxmap + nbytes, 1) > 0)
+            {
+              /* Oops, we had a short read.  Retry.  */
+              if (lseek (fd, 0, SEEK_SET) < 0)
+                {
+                  munmap (auxmap, memneed);
+                  close (fd);
+                  return -1;
+                }
+              goto retry;
+            }
+
+          /* We now have the entire contents of /proc/<pid>/map in memory.  */
+          prmap_t* maps = (prmap_t *) auxmap;
+
+          /* The entries are not sorted by address.  Therefore
+             1. Extract the relevant information into an array.
+             2. Sort the array in ascending order.
+             3. Invoke the callback.  */
+          typedef struct
+            {
+              uintptr_t start;
+              uintptr_t end;
+            }
+          vma_t;
+          /* Since 2 * sizeof (vma_t) <= sizeof (prmap_t), we can reuse the
+             same memory.  */
+          vma_t *vmas = (vma_t *) auxmap;
+
+          vma_t *vp = vmas;
+          {
+            prmap_t* mp;
+            for (mp = maps;;)
+              {
+                unsigned long start, end;
+
+                start = (unsigned long) mp->pr_vaddr;
+                end = start + mp->pr_size;
+                if (start == 0 && end == 0 && mp->pr_mflags == 0)
+                  break;
+                /* Discard empty VMAs and kernel VMAs.  */
+                if (start < end && (mp->pr_mflags & MA_KERNTEXT) == 0)
+                  {
+                    if (start <= auxmap_start && auxmap_end - 1 <= end - 1)
+                      {
+                        /* Consider [start,end-1] \ [auxmap_start,auxmap_end-1]
+                           = [start,auxmap_start-1] u [auxmap_end,end-1].  */
+                        if (start < auxmap_start)
+                          {
+                            vp->start = start;
+                            vp->end = auxmap_start;
+                            vp++;
+                          }
+                        if (auxmap_end - 1 < end - 1)
+                          {
+                            vp->start = auxmap_end;
+                            vp->end = end;
+                            vp++;
+                          }
+                      }
+                    else
+                      {
+                        vp->start = start;
+                        vp->end = end;
+                        vp++;
+                      }
+                  }
+                mp++;
+              }
+          }
+
+          size_t nvmas = vp - vmas;
+          /* Sort the array in ascending order.
+             Better not call qsort(), since it may call malloc().
+             Insertion-sort is OK in this case, despite its worst-case running
+             time of O(N²), since the number of VMAs will rarely be larger than
+             1000.  */
+          {
+            size_t i;
+            for (i = 1; i < nvmas; i++)
+              {
+                /* Invariant: Here vmas[0..i-1] is sorted.  */
+                size_t j;
+                for (j = i; j > 0 && vmas[j - 1].start > vmas[j].start; j--)
+                  {
+                    vma_t tmp = vmas[j - 1];
+                    vmas[j - 1] = vmas[j];
+                    vmas[j] = tmp;
+                  }
+                /* Invariant: Here vmas[0..i] is sorted.  */
+              }
+          }
+
+          /* Invoke the callback.  */
+          {
+            size_t i;
+            for (i = 0; i < nvmas; i++)
+              {
+                vma_t *vpi = &vmas[i];
+                if (callback (locals, vpi->start, vpi->end))
+                  break;
+              }
+          }
+
+          munmap (auxmap, memneed);
+          break;
+        }
+    }
+
+  close (fd);
+  return 0;
+}
+
 int
 sigsegv_get_vma (uintptr_t address, struct vma_struct *vma)
 {
+  struct utsname u;
+  if (uname (&u) >= 0
+      /* && strcmp (u.sysname, "AIX") == 0 */
+      && !(u.version[0] >= '1' && u.version[0] <= '6' && u.version[1] == '\0'))
+    {
+      /* AIX 7 or higher.  */
+      struct callback_locals locals;
+      locals.address = address;
+      locals.vma = vma;
+#if STACK_DIRECTION < 0
+      locals.prev = 0;
+#else
+      locals.stop_at_next_vma = 0;
+#endif
+      locals.retval = -1;
+
+      vma_iterate (&locals);
+      if (locals.retval == 0)
+        {
+#if !(STACK_DIRECTION < 0)
+          if (locals.stop_at_next_vma)
+            vma->next_start = 0;
+#endif
+          vma->is_near_this = simple_is_near_this;
+          return 0;
+        }
+    }
+
   return mincore_get_vma (address, vma);
 }
 
-/* --------------------------- stackvma-procfs.h --------------------------- */
+/* --------------------------- stackvma-procfs.c --------------------------- */
 
 #elif defined __sgi || defined __sun /* IRIX, Solaris */
 
index 1f214a4..2ddca87 100644 (file)
@@ -1,5 +1,5 @@
 /* Determine the virtual memory area of a given address.
-   Copyright (C) 2002-2021 Free Software Foundation, Inc.
+   Copyright (C) 2002-2023 Free Software Foundation, Inc.
    Copyright (C) 2003-2006  Paolo Bonzini <bonzini@gnu.org>
 
    This program is free software: you can redistribute it and/or modify
index 8c1f414..ece22a5 100644 (file)
@@ -1,10 +1,10 @@
 /* stat-related macros
 
-   Copyright (C) 1993-2021 Free Software Foundation, Inc.
+   Copyright (C) 1993-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published
-   by the Free Software Foundation; either version 3 of the License,
+   by the Free Software Foundation, either version 3 of the License,
    or (at your option) any later version.
 
    This file is distributed in the hope that it will be useful,
index 7b92792..bc28223 100644 (file)
@@ -1,6 +1,6 @@
 /* stat-related time functions.
 
-   Copyright (C) 2012-2021 Free Software Foundation, Inc.
+   Copyright (C) 2012-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index fe3483d..75eb27e 100644 (file)
@@ -1,6 +1,6 @@
 /* stat-related time functions.
 
-   Copyright (C) 2005, 2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2007, 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 #ifndef STAT_TIME_H
 #define STAT_TIME_H 1
 
-#include "intprops.h"
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _GL_UNUSED,
+   _GL_ATTRIBUTE_PURE, HAVE_STRUCT_STAT_*.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
 
 #include <errno.h>
+#include <stdckdint.h>
 #include <stddef.h>
 #include <sys/stat.h>
 #include <time.h>
 
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
 _GL_INLINE_HEADER_BEGIN
 #ifndef _GL_STAT_TIME_INLINE
 # define _GL_STAT_TIME_INLINE _GL_INLINE
@@ -102,7 +104,7 @@ get_stat_mtime_ns (struct stat const *st)
 
 /* Return the nanosecond component of *ST's birth time.  */
 _GL_STAT_TIME_INLINE long int _GL_ATTRIBUTE_PURE
-get_stat_birthtime_ns (struct stat const *st _GL_UNUSED)
+get_stat_birthtime_ns (_GL_UNUSED struct stat const *st)
 {
 # if defined HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC
   return STAT_TIMESPEC (st, st_birthtim).tv_nsec;
@@ -120,10 +122,8 @@ get_stat_atime (struct stat const *st)
 #ifdef STAT_TIMESPEC
   return STAT_TIMESPEC (st, st_atim);
 #else
-  struct timespec t;
-  t.tv_sec = st->st_atime;
-  t.tv_nsec = get_stat_atime_ns (st);
-  return t;
+  return (struct timespec) { .tv_sec = st->st_atime,
+                             .tv_nsec = get_stat_atime_ns (st) };
 #endif
 }
 
@@ -134,10 +134,8 @@ get_stat_ctime (struct stat const *st)
 #ifdef STAT_TIMESPEC
   return STAT_TIMESPEC (st, st_ctim);
 #else
-  struct timespec t;
-  t.tv_sec = st->st_ctime;
-  t.tv_nsec = get_stat_ctime_ns (st);
-  return t;
+  return (struct timespec) { .tv_sec = st->st_ctime,
+                             .tv_nsec = get_stat_ctime_ns (st) };
 #endif
 }
 
@@ -148,17 +146,15 @@ get_stat_mtime (struct stat const *st)
 #ifdef STAT_TIMESPEC
   return STAT_TIMESPEC (st, st_mtim);
 #else
-  struct timespec t;
-  t.tv_sec = st->st_mtime;
-  t.tv_nsec = get_stat_mtime_ns (st);
-  return t;
+  return (struct timespec) { .tv_sec = st->st_mtime,
+                             .tv_nsec = get_stat_mtime_ns (st) };
 #endif
 }
 
 /* Return *ST's birth time, if available; otherwise return a value
    with tv_sec and tv_nsec both equal to -1.  */
 _GL_STAT_TIME_INLINE struct timespec _GL_ATTRIBUTE_PURE
-get_stat_birthtime (struct stat const *st _GL_UNUSED)
+get_stat_birthtime (_GL_UNUSED struct stat const *st)
 {
   struct timespec t;
 
@@ -166,8 +162,8 @@ get_stat_birthtime (struct stat const *st _GL_UNUSED)
      || defined HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC)
   t = STAT_TIMESPEC (st, st_birthtim);
 #elif defined HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC
-  t.tv_sec = st->st_birthtime;
-  t.tv_nsec = st->st_birthtimensec;
+  t = (struct timespec) { .tv_sec = st->st_birthtime,
+                          .tv_nsec = st->st_birthtimensec };
 #elif defined _WIN32 && ! defined __CYGWIN__
   /* Native Windows platforms (but not Cygwin) put the "file creation
      time" in st_ctime (!).  See
@@ -175,13 +171,11 @@ get_stat_birthtime (struct stat const *st _GL_UNUSED)
 # if _GL_WINDOWS_STAT_TIMESPEC
   t = st->st_ctim;
 # else
-  t.tv_sec = st->st_ctime;
-  t.tv_nsec = 0;
+  t = (struct timespec) { .tv_sec = st->st_ctime };
 # endif
 #else
   /* Birth time is not supported.  */
-  t.tv_sec = -1;
-  t.tv_nsec = -1;
+  t = (struct timespec) { .tv_sec = -1, .tv_nsec = -1 };
 #endif
 
 #if (defined HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC \
@@ -193,10 +187,7 @@ get_stat_birthtime (struct stat const *st _GL_UNUSED)
      sometimes returns junk in the birth time fields; work around this
      bug if it is detected.  */
   if (! (t.tv_sec && 0 <= t.tv_nsec && t.tv_nsec < 1000000000))
-    {
-      t.tv_sec = -1;
-      t.tv_nsec = -1;
-    }
+    t = (struct timespec) { .tv_sec = -1, .tv_nsec = -1 };
 #endif
 
   return t;
@@ -208,7 +199,7 @@ get_stat_birthtime (struct stat const *st _GL_UNUSED)
    errno to EOVERFLOW if normalization overflowed.  This function
    is intended to be private to this .h file.  */
 _GL_STAT_TIME_INLINE int
-stat_time_normalize (int result, struct stat *st _GL_UNUSED)
+stat_time_normalize (int result, _GL_UNUSED struct stat *st)
 {
 #if defined __sun && defined STAT_TIMESPEC
   if (result == 0)
@@ -230,9 +221,8 @@ stat_time_normalize (int result, struct stat *st _GL_UNUSED)
             }
           ts->tv_nsec = r;
           /* Overflow is possible, as Solaris 11 stat can yield
-             tv_sec == TYPE_MINIMUM (time_t) && tv_nsec == -1000000000.
-             INT_ADD_WRAPV is OK, since time_t is signed on Solaris.  */
-          if (INT_ADD_WRAPV (q, ts->tv_sec, &ts->tv_sec))
+             tv_sec == TYPE_MINIMUM (time_t) && tv_nsec == -1000000000.  */
+          if (ckd_add (&ts->tv_sec, q, ts->tv_sec))
             {
               errno = EOVERFLOW;
               return -1;
index 4164199..2f01197 100644 (file)
@@ -1,5 +1,5 @@
 /* Core of implementation of fstat and stat for native Windows.
-   Copyright (C) 2017-2021 Free Software Foundation, Inc.
+   Copyright (C) 2017-2023 Free Software Foundation, Inc.
 
    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,7 +50,6 @@
 #include "stat-w32.h"
 
 #include "pathmax.h"
-#include "verify.h"
 
 /* Don't assume that UNICODE is not defined.  */
 #undef LoadLibrary
@@ -228,7 +227,7 @@ _gl_fstat_by_handle (HANDLE h, const char *path, struct stat *buf)
           if (GetFileInformationByHandleExFunc (h, FileIdInfo, &id, sizeof (id)))
             {
               buf->st_dev = id.VolumeSerialNumber;
-              verify (sizeof (ino_t) == sizeof (id.FileId));
+              static_assert (sizeof (ino_t) == sizeof (id.FileId));
               memcpy (&buf->st_ino, &id.FileId, sizeof (ino_t));
               goto ino_done;
             }
index 5b56c09..c673874 100644 (file)
@@ -1,5 +1,5 @@
 /* Core of implementation of fstat and stat for native Windows.
-   Copyright (C) 2017-2021 Free Software Foundation, Inc.
+   Copyright (C) 2017-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index bc9a767..7987e26 100644 (file)
@@ -1,5 +1,5 @@
 /* Work around platform bugs in stat.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
@@ -55,11 +55,9 @@ orig_stat (const char *filename, struct stat *buf)
 
 #include <errno.h>
 #include <limits.h>
-#include <stdbool.h>
 #include <string.h>
 #include "filename.h"
 #include "malloca.h"
-#include "verify.h"
 
 #ifdef WINDOWS_NATIVE
 # define WIN32_LEAN_AND_MEAN
diff --git a/lib/stdalign.in.h b/lib/stdalign.in.h
deleted file mode 100644 (file)
index 592d58e..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-/* A substitute for ISO C11 <stdalign.h>.
-
-   Copyright 2011-2021 Free Software Foundation, Inc.
-
-   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 Paul Eggert and Bruno Haible.  */
-
-#ifndef _GL_STDALIGN_H
-#define _GL_STDALIGN_H
-
-/* ISO C11 <stdalign.h> for platforms that lack it.
-
-   References:
-   ISO C11 (latest free draft
-   <http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf>)
-   sections 6.5.3.4, 6.7.5, 7.15.
-   C++11 (latest free draft
-   <http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf>)
-   section 18.10. */
-
-/* alignof (TYPE), also known as _Alignof (TYPE), yields the alignment
-   requirement of a structure member (i.e., slot or field) that is of
-   type TYPE, as an integer constant expression.
-
-   This differs from GCC's and clang's __alignof__ operator, which can
-   yield a better-performing alignment for an object of that type.  For
-   example, on x86 with GCC and on Linux/x86 with clang,
-   __alignof__ (double) and __alignof__ (long long) are 8, whereas
-   alignof (double) and alignof (long long) are 4 unless the option
-   '-malign-double' is used.
-
-   The result cannot be used as a value for an 'enum' constant, if you
-   want to be portable to HP-UX 10.20 cc and AIX 3.2.5 xlc.
-
-   Include <stddef.h> for offsetof.  */
-#include <stddef.h>
-
-/* FreeBSD 9.1 <sys/cdefs.h>, included by <stddef.h> and lots of other
-   standard headers, defines conflicting implementations of _Alignas
-   and _Alignof that are no better than ours; override them.  */
-#undef _Alignas
-#undef _Alignof
-
-/* GCC releases before GCC 4.9 had a bug in _Alignof.  See GCC bug 52023
-   <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023>.
-   clang versions < 8.0.0 have the same bug.  */
-#if (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 \
-     || (defined __GNUC__ && __GNUC__ < 4 + (__GNUC_MINOR__ < 9) \
-         && !defined __clang__) \
-     || (defined __clang__ && __clang_major__ < 8))
-# ifdef __cplusplus
-#  if 201103 <= __cplusplus
-#   define _Alignof(type) alignof (type)
-#  else
-   template <class __t> struct __alignof_helper { char __a; __t __b; };
-#   define _Alignof(type) offsetof (__alignof_helper<type>, __b)
-#  endif
-# else
-#  define _Alignof(type) offsetof (struct { char __a; type __b; }, __b)
-# endif
-#endif
-#if ! (defined __cplusplus && 201103 <= __cplusplus)
-# define alignof _Alignof
-#endif
-#define __alignof_is_defined 1
-
-/* alignas (A), also known as _Alignas (A), aligns a variable or type
-   to the alignment A, where A is an integer constant expression.  For
-   example:
-
-      int alignas (8) foo;
-      struct s { int a; int alignas (8) bar; };
-
-   aligns the address of FOO and the offset of BAR to be multiples of 8.
-
-   A should be a power of two that is at least the type's alignment
-   and at most the implementation's alignment limit.  This limit is
-   2**28 on typical GNUish hosts, and 2**13 on MSVC.  To be portable
-   to MSVC through at least version 10.0, A should be an integer
-   constant, as MSVC does not support expressions such as 1 << 3.
-   To be portable to Sun C 5.11, do not align auto variables to
-   anything stricter than their default alignment.
-
-   The following C11 requirements are not supported here:
-
-     - If A is zero, alignas has no effect.
-     - alignas can be used multiple times; the strictest one wins.
-     - alignas (TYPE) is equivalent to alignas (alignof (TYPE)).
-
-   */
-
-#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112
-# if defined __cplusplus && 201103 <= __cplusplus
-#  define _Alignas(a) alignas (a)
-# elif (!defined __attribute__ \
-        && ((defined __APPLE__ && defined __MACH__ \
-             ? 4 < __GNUC__ + (1 <= __GNUC_MINOR__) \
-             : __GNUC__ && !defined __ibmxl__) \
-            || (4 <= __clang_major__) \
-            || (__ia64 && (61200 <= __HP_cc || 61200 <= __HP_aCC)) \
-            || __ICC || 0x590 <= __SUNPRO_C || 0x0600 <= __xlC__))
-#  define _Alignas(a) __attribute__ ((__aligned__ (a)))
-# elif 1300 <= _MSC_VER
-#  define _Alignas(a) __declspec (align (a))
-# endif
-#endif
-#if ((defined _Alignas && ! (defined __cplusplus && 201103 <= __cplusplus)) \
-     || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__))
-# define alignas _Alignas
-#endif
-#if defined alignas || (defined __cplusplus && 201103 <= __cplusplus)
-# define __alignas_is_defined 1
-#endif
-
-#endif /* _GL_STDALIGN_H */
index 9269da2..8145216 100644 (file)
@@ -1,5 +1,5 @@
 /* Substitute for and wrapper around <stdarg.h>.
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 #ifndef _@GUARD_PREFIX@_STDARG_H
 #define _@GUARD_PREFIX@_STDARG_H
 
+/* This file uses va_copy.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 #ifndef va_copy
 # define va_copy(a,b) ((a) = (b))
 #endif
diff --git a/lib/stdbool.in.h b/lib/stdbool.in.h
deleted file mode 100644 (file)
index 2a1992d..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-/* Copyright (C) 2001-2003, 2006-2021 Free Software Foundation, Inc.
-   Written by Bruno Haible <haible@clisp.cons.org>, 2001.
-
-   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/>.  */
-
-#ifndef _GL_STDBOOL_H
-#define _GL_STDBOOL_H
-
-/* ISO C 99 <stdbool.h> for platforms that lack it.  */
-
-/* Usage suggestions:
-
-   Programs that use <stdbool.h> should be aware of some limitations
-   and standards compliance issues.
-
-   Standards compliance:
-
-       - <stdbool.h> must be #included before 'bool', 'false', 'true'
-         can be used.
-
-       - You cannot assume that sizeof (bool) == 1.
-
-       - Programs should not undefine the macros bool, true, and false,
-         as C99 lists that as an "obsolescent feature".
-
-   Limitations of this substitute, when used in a C89 environment:
-
-       - <stdbool.h> must be #included before the '_Bool' type can be used.
-
-       - You cannot assume that _Bool is a typedef; it might be a macro.
-
-       - Bit-fields of type 'bool' are not supported.  Portable code
-         should use 'unsigned int foo : 1;' rather than 'bool foo : 1;'.
-
-       - In C99, casts and automatic conversions to '_Bool' or 'bool' are
-         performed in such a way that every nonzero value gets converted
-         to 'true', and zero gets converted to 'false'.  This doesn't work
-         with this substitute.  With this substitute, only the values 0 and 1
-         give the expected result when converted to _Bool' or 'bool'.
-
-       - C99 allows the use of (_Bool)0.0 in constant expressions, but
-         this substitute cannot always provide this property.
-
-   Also, it is suggested that programs use 'bool' rather than '_Bool';
-   this isn't required, but 'bool' is more common.  */
-
-
-/* 7.16. Boolean type and values */
-
-/* BeOS <sys/socket.h> already #defines false 0, true 1.  We use the same
-   definitions below, but temporarily we have to #undef them.  */
-#if defined __BEOS__ && !defined __HAIKU__
-# include <OS.h> /* defines bool but not _Bool */
-# undef false
-# undef true
-#endif
-
-#ifdef __cplusplus
-# define _Bool bool
-# define bool bool
-#else
-# if defined __BEOS__ && !defined __HAIKU__
-  /* A compiler known to have 'bool'.  */
-  /* If the compiler already has both 'bool' and '_Bool', we can assume they
-     are the same types.  */
-#  if !@HAVE__BOOL@
-typedef bool _Bool;
-#  endif
-# else
-#  if !defined __GNUC__
-   /* If @HAVE__BOOL@:
-        Some HP-UX cc and AIX IBM C compiler versions have compiler bugs when
-        the built-in _Bool type is used.  See
-          https://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
-          https://lists.gnu.org/r/bug-coreutils/2005-11/msg00161.html
-          https://lists.gnu.org/r/bug-coreutils/2005-10/msg00086.html
-        Similar bugs are likely with other compilers as well; this file
-        wouldn't be used if <stdbool.h> was working.
-        So we override the _Bool type.
-      If !@HAVE__BOOL@:
-        Need to define _Bool ourselves. As 'signed char' or as an enum type?
-        Use of a typedef, with SunPRO C, leads to a stupid
-          "warning: _Bool is a keyword in ISO C99".
-        Use of an enum type, with IRIX cc, leads to a stupid
-          "warning(1185): enumerated type mixed with another type".
-        Even the existence of an enum type, without a typedef,
-          "Invalid enumerator. (badenum)" with HP-UX cc on Tru64.
-        The only benefit of the enum, debuggability, is not important
-        with these compilers.  So use 'signed char' and no enum.  */
-#   define _Bool signed char
-#  else
-   /* With this compiler, trust the _Bool type if the compiler has it.  */
-#   if !@HAVE__BOOL@
-   /* For the sake of symbolic names in gdb, define true and false as
-      enum constants, not only as macros.
-      It is tempting to write
-         typedef enum { false = 0, true = 1 } _Bool;
-      so that gdb prints values of type 'bool' symbolically.  But then
-      values of type '_Bool' might promote to 'int' or 'unsigned int'
-      (see ISO C 99 6.7.2.2.(4)); however, '_Bool' must promote to 'int'
-      (see ISO C 99 6.3.1.1.(2)).  So add a negative value to the
-      enum; this ensures that '_Bool' promotes to 'int'.  */
-typedef enum { _Bool_must_promote_to_int = -1, false = 0, true = 1 } _Bool;
-#   endif
-#  endif
-# endif
-# define bool _Bool
-#endif
-
-/* The other macros must be usable in preprocessor directives.  */
-#ifdef __cplusplus
-# define false false
-# define true true
-#else
-# define false 0
-# define true 1
-#endif
-
-#define __bool_true_false_are_defined 1
-
-#endif /* _GL_STDBOOL_H */
diff --git a/lib/stdckdint.in.h b/lib/stdckdint.in.h
new file mode 100644 (file)
index 0000000..71bab5f
--- /dev/null
@@ -0,0 +1,35 @@
+/* stdckdint.h -- checked integer arithmetic
+
+   Copyright 2022-2023 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 2.1 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU 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/>.  */
+
+#ifndef _GL_STDCKDINT_H
+#define _GL_STDCKDINT_H
+
+#include "intprops-internal.h"
+
+/* Store into *R the low-order bits of A + B, A - B, A * B, respectively.
+   Return 1 if the result overflows, 0 otherwise.
+   A, B, and *R can have any integer type other than char, bool, a
+   bit-precise integer type, or an enumeration type.
+
+   These are like the standard macros introduced in C23, except that
+   arguments should not have side effects.  */
+
+#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))
+#define ckd_mul(r, a, b) ((bool) _GL_INT_MULTIPLY_WRAPV (a, b, r))
+
+#endif /* _GL_STDCKDINT_H */
index 42290d4..431e819 100644 (file)
@@ -1,6 +1,6 @@
 /* A substitute for POSIX 2008 <stddef.h>, for platforms that have issues.
 
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
@@ -18,7 +18,7 @@
 /* Written by Eric Blake.  */
 
 /*
- * POSIX 2008 <stddef.h> for platforms that have issues.
+ * POSIX 2008 and ISO C 23 <stddef.h> for platforms that have issues.
  * <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/stddef.h.html>
  */
 
@@ -37,9 +37,9 @@
    remember if special invocation has ever been used to obtain wint_t,
    in which case we need to clean up NULL yet again.  */
 
-# if !(defined _@GUARD_PREFIX@_STDDEF_H && defined _GL_STDDEF_WINT_T)
+# if !(defined _@GUARD_PREFIX@_STDDEF_H && defined _@GUARD_PREFIX@_STDDEF_WINT_T)
 #  ifdef __need_wint_t
-#   define _GL_STDDEF_WINT_T
+#   define _@GUARD_PREFIX@_STDDEF_WINT_T
 #  endif
 #  @INCLUDE_NEXT@ @NEXT_STDDEF_H@
    /* On TinyCC, make sure that the macros that indicate the special invocation
@@ -69,6 +69,7 @@ typedef long rpl_max_align_t;
 typedef long max_align_t;
 #     define _MAX_ALIGN_T
 #    endif
+#    define __CLANG_MAX_ALIGN_T_DEFINED
 #    define GNULIB_defined_max_align_t 1
 #   endif
 #  endif
@@ -79,7 +80,7 @@ typedef long max_align_t;
 
 /* On NetBSD 5.0, the definition of NULL lacks proper parentheses.  */
 #  if (@REPLACE_NULL@ \
-       && (!defined _@GUARD_PREFIX@_STDDEF_H || defined _GL_STDDEF_WINT_T))
+       && (!defined _@GUARD_PREFIX@_STDDEF_H || defined _@GUARD_PREFIX@_STDDEF_WINT_T))
 #   undef NULL
 #   ifdef __cplusplus
    /* ISO C++ says that the macro NULL must expand to an integer constant
@@ -100,6 +101,11 @@ typedef long max_align_t;
 #  ifndef _@GUARD_PREFIX@_STDDEF_H
 #   define _@GUARD_PREFIX@_STDDEF_H
 
+/* This file uses _Noreturn.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 /* Some platforms lack wchar_t.  */
 #if !@HAVE_WCHAR_T@
 # define wchar_t int
@@ -137,11 +143,49 @@ typedef union
   long int __i _GL_STDDEF_ALIGNAS (long int);
 } rpl_max_align_t;
 #   define max_align_t rpl_max_align_t
+#   define __CLANG_MAX_ALIGN_T_DEFINED
 #   define GNULIB_defined_max_align_t 1
 #  endif
 # endif
 #endif
 
+/* ISO C 23 § 7.21.1 The unreachable macro  */
+#ifndef unreachable
+
+/* Code borrowed from verify.h.  */
+# ifndef _GL_HAS_BUILTIN_UNREACHABLE
+#  if defined __clang_major__ && __clang_major__ < 5
+#   define _GL_HAS_BUILTIN_UNREACHABLE 0
+#  elif 4 < __GNUC__ + (5 <= __GNUC_MINOR__)
+#   define _GL_HAS_BUILTIN_UNREACHABLE 1
+#  elif defined __has_builtin
+#   define _GL_HAS_BUILTIN_UNREACHABLE __has_builtin (__builtin_unreachable)
+#  else
+#   define _GL_HAS_BUILTIN_UNREACHABLE 0
+#  endif
+# endif
+
+# if _GL_HAS_BUILTIN_UNREACHABLE
+#  define unreachable() __builtin_unreachable ()
+# elif 1200 <= _MSC_VER
+#  define unreachable() __assume (0)
+# else
+/* Declare abort(), without including <stdlib.h>.  */
+extern
+#  if defined __cplusplus
+"C"
+#  endif
+_Noreturn
+void abort (void)
+#  if defined __cplusplus && (__GLIBC__ >= 2)
+throw ()
+#  endif
+;
+#  define unreachable() abort ()
+# endif
+
+#endif
+
 #  endif /* _@GUARD_PREFIX@_STDDEF_H */
 # endif /* _@GUARD_PREFIX@_STDDEF_H */
 #endif /* __need_XXX */
index 85c5418..5ddc644 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2002, 2004-2021 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2002, 2004-2023 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-read.c b/lib/stdio-read.c
new file mode 100644 (file)
index 0000000..6e2984c
--- /dev/null
@@ -0,0 +1,168 @@
+/* POSIX compatible FILE stream read function.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+   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/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include <stdio.h>
+
+/* Replace these functions only if module 'nonblocking' is requested.  */
+#if GNULIB_NONBLOCKING
+
+/* On native Windows platforms, when read() is called on a non-blocking pipe
+   with an empty buffer, ReadFile() fails with error GetLastError() =
+   ERROR_NO_DATA, and read() in consequence fails with error EINVAL.  This
+   read() function is at the basis of the function which fills the buffer of
+   a FILE stream.  */
+
+# if defined _WIN32 && ! defined __CYGWIN__
+
+#  include <errno.h>
+#  include <io.h>
+
+#  define WIN32_LEAN_AND_MEAN  /* avoid including junk */
+#  include <windows.h>
+
+#  if GNULIB_MSVC_NOTHROW
+#   include "msvc-nothrow.h"
+#  else
+#   include <io.h>
+#  endif
+
+/* Don't assume that UNICODE is not defined.  */
+#  undef GetNamedPipeHandleState
+#  define GetNamedPipeHandleState GetNamedPipeHandleStateA
+
+#  define CALL_WITH_ERRNO_FIX(RETTYPE, EXPRESSION, FAILED) \
+  if (ferror (stream))                                                        \
+    return (EXPRESSION);                                                      \
+  else                                                                        \
+    {                                                                         \
+      RETTYPE ret;                                                            \
+      SetLastError (0);                                                       \
+      ret = (EXPRESSION);                                                     \
+      if (FAILED)                                                             \
+        {                                                                     \
+          if (GetLastError () == ERROR_NO_DATA && ferror (stream))            \
+            {                                                                 \
+              int fd = fileno (stream);                                       \
+              if (fd >= 0)                                                    \
+                {                                                             \
+                  HANDLE h = (HANDLE) _get_osfhandle (fd);                    \
+                  if (GetFileType (h) == FILE_TYPE_PIPE)                      \
+                    {                                                         \
+                      /* h is a pipe or socket.  */                           \
+                      DWORD state;                                            \
+                      if (GetNamedPipeHandleState (h, &state, NULL, NULL,     \
+                                                   NULL, NULL, 0)             \
+                          && (state & PIPE_NOWAIT) != 0)                      \
+                        /* h is a pipe in non-blocking mode.                  \
+                           Change errno from EINVAL to EAGAIN.  */            \
+                        errno = EAGAIN;                                       \
+                    }                                                         \
+                }                                                             \
+            }                                                                 \
+        }                                                                     \
+      return ret;                                                             \
+    }
+
+/* Enable this function definition only if gnulib's <stdio.h> has prepared it.
+   Otherwise we get a function definition conflict with mingw64's <stdio.h>.  */
+#  if GNULIB_SCANF
+int
+scanf (const char *format, ...)
+{
+  int retval;
+  va_list args;
+
+  va_start (args, format);
+  retval = vfscanf (stdin, format, args);
+  va_end (args);
+
+  return retval;
+}
+#  endif
+
+/* Enable this function definition only if gnulib's <stdio.h> has prepared it.
+   Otherwise we get a function definition conflict with mingw64's <stdio.h>.  */
+#  if GNULIB_FSCANF
+int
+fscanf (FILE *stream, const char *format, ...)
+{
+  int retval;
+  va_list args;
+
+  va_start (args, format);
+  retval = vfscanf (stream, format, args);
+  va_end (args);
+
+  return retval;
+}
+#  endif
+
+/* Enable this function definition only if gnulib's <stdio.h> has prepared it.
+   Otherwise we get a function definition conflict with mingw64's <stdio.h>.  */
+#  if GNULIB_VSCANF
+int
+vscanf (const char *format, va_list args)
+{
+  return vfscanf (stdin, format, args);
+}
+#  endif
+
+/* Enable this function definition only if gnulib's <stdio.h> has prepared it.
+   Otherwise we get a function definition conflict with mingw64's <stdio.h>.  */
+#  if GNULIB_VFSCANF
+int
+vfscanf (FILE *stream, const char *format, va_list args)
+#undef vfscanf
+{
+  CALL_WITH_ERRNO_FIX (int, vfscanf (stream, format, args), ret == EOF)
+}
+#  endif
+
+int
+getchar (void)
+{
+  return fgetc (stdin);
+}
+
+int
+fgetc (FILE *stream)
+#undef fgetc
+{
+  CALL_WITH_ERRNO_FIX (int, fgetc (stream), ret == EOF)
+}
+
+char *
+fgets (char *s, int n, FILE *stream)
+#undef fgets
+{
+  CALL_WITH_ERRNO_FIX (char *, fgets (s, n, stream), ret == NULL)
+}
+
+/* We intentionally don't bother to fix gets.  */
+
+size_t
+fread (void *ptr, size_t s, size_t n, FILE *stream)
+#undef fread
+{
+  CALL_WITH_ERRNO_FIX (size_t, fread (ptr, s, n, stream), ret < n)
+}
+
+# endif
+#endif
diff --git a/lib/stdio-write.c b/lib/stdio-write.c
new file mode 100644 (file)
index 0000000..9cf36cc
--- /dev/null
@@ -0,0 +1,206 @@
+/* POSIX compatible FILE stream write function.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2008.
+
+   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/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include <stdio.h>
+
+/* Replace these functions only if module 'nonblocking' or module 'sigpipe' is
+   requested.  */
+#if GNULIB_NONBLOCKING || GNULIB_SIGPIPE
+
+/* On native Windows platforms, SIGPIPE does not exist.  When write() is
+   called on a pipe with no readers, WriteFile() fails with error
+   GetLastError() = ERROR_NO_DATA, and write() in consequence fails with
+   error EINVAL.  This write() function is at the basis of the function
+   which flushes the buffer of a FILE stream.  */
+
+# if defined _WIN32 && ! defined __CYGWIN__
+
+#  include <errno.h>
+#  include <signal.h>
+#  include <io.h>
+
+#  define WIN32_LEAN_AND_MEAN  /* avoid including junk */
+#  include <windows.h>
+
+#  if GNULIB_MSVC_NOTHROW
+#   include "msvc-nothrow.h"
+#  else
+#   include <io.h>
+#  endif
+
+/* Don't assume that UNICODE is not defined.  */
+#  undef GetNamedPipeHandleState
+#  define GetNamedPipeHandleState GetNamedPipeHandleStateA
+
+#  if GNULIB_NONBLOCKING
+#   define CLEAR_ERRNO \
+      errno = 0;
+#   define HANDLE_ENOSPC \
+          if (errno == ENOSPC && ferror (stream))                             \
+            {                                                                 \
+              int fd = fileno (stream);                                       \
+              if (fd >= 0)                                                    \
+                {                                                             \
+                  HANDLE h = (HANDLE) _get_osfhandle (fd);                    \
+                  if (GetFileType (h) == FILE_TYPE_PIPE)                      \
+                    {                                                         \
+                      /* h is a pipe or socket.  */                           \
+                      DWORD state;                                            \
+                      if (GetNamedPipeHandleState (h, &state, NULL, NULL,     \
+                                                   NULL, NULL, 0)             \
+                          && (state & PIPE_NOWAIT) != 0)                      \
+                        /* h is a pipe in non-blocking mode.                  \
+                           Change errno from ENOSPC to EAGAIN.  */            \
+                        errno = EAGAIN;                                       \
+                    }                                                         \
+                }                                                             \
+            }                                                                 \
+          else
+#  else
+#   define CLEAR_ERRNO
+#   define HANDLE_ENOSPC
+#  endif
+
+#  if GNULIB_SIGPIPE
+#   define CLEAR_LastError \
+      SetLastError (0);
+#   define HANDLE_ERROR_NO_DATA \
+          if (GetLastError () == ERROR_NO_DATA && ferror (stream))            \
+            {                                                                 \
+              int fd = fileno (stream);                                       \
+              if (fd >= 0                                                     \
+                  && GetFileType ((HANDLE) _get_osfhandle (fd))               \
+                     == FILE_TYPE_PIPE)                                       \
+                {                                                             \
+                  /* Try to raise signal SIGPIPE.  */                         \
+                  raise (SIGPIPE);                                            \
+                  /* If it is currently blocked or ignored, change errno from \
+                     EINVAL to EPIPE.  */                                     \
+                  errno = EPIPE;                                              \
+                }                                                             \
+            }                                                                 \
+          else
+#  else
+#   define CLEAR_LastError
+#   define HANDLE_ERROR_NO_DATA
+#  endif
+
+#  define CALL_WITH_SIGPIPE_EMULATION(RETTYPE, EXPRESSION, FAILED) \
+  if (ferror (stream))                                                        \
+    return (EXPRESSION);                                                      \
+  else                                                                        \
+    {                                                                         \
+      RETTYPE ret;                                                            \
+      CLEAR_ERRNO                                                             \
+      CLEAR_LastError                                                         \
+      ret = (EXPRESSION);                                                     \
+      if (FAILED)                                                             \
+        {                                                                     \
+          HANDLE_ENOSPC                                                       \
+          HANDLE_ERROR_NO_DATA                                                \
+          ;                                                                   \
+        }                                                                     \
+      return ret;                                                             \
+    }
+
+#  if !REPLACE_PRINTF_POSIX /* avoid collision with printf.c */
+int
+printf (const char *format, ...)
+{
+  int retval;
+  va_list args;
+
+  va_start (args, format);
+  retval = vfprintf (stdout, format, args);
+  va_end (args);
+
+  return retval;
+}
+#  endif
+
+#  if !REPLACE_FPRINTF_POSIX /* avoid collision with fprintf.c */
+int
+fprintf (FILE *stream, const char *format, ...)
+{
+  int retval;
+  va_list args;
+
+  va_start (args, format);
+  retval = vfprintf (stream, format, args);
+  va_end (args);
+
+  return retval;
+}
+#  endif
+
+#  if !REPLACE_VPRINTF_POSIX /* avoid collision with vprintf.c */
+int
+vprintf (const char *format, va_list args)
+{
+  return vfprintf (stdout, format, args);
+}
+#  endif
+
+#  if !REPLACE_VFPRINTF_POSIX /* avoid collision with vfprintf.c */
+int
+vfprintf (FILE *stream, const char *format, va_list args)
+#undef vfprintf
+{
+  CALL_WITH_SIGPIPE_EMULATION (int, vfprintf (stream, format, args), ret == EOF)
+}
+#  endif
+
+int
+putchar (int c)
+{
+  return fputc (c, stdout);
+}
+
+int
+fputc (int c, FILE *stream)
+#undef fputc
+{
+  CALL_WITH_SIGPIPE_EMULATION (int, fputc (c, stream), ret == EOF)
+}
+
+int
+fputs (const char *string, FILE *stream)
+#undef fputs
+{
+  CALL_WITH_SIGPIPE_EMULATION (int, fputs (string, stream), ret == EOF)
+}
+
+int
+puts (const char *string)
+#undef puts
+{
+  FILE *stream = stdout;
+  CALL_WITH_SIGPIPE_EMULATION (int, puts (string), ret == EOF)
+}
+
+size_t
+fwrite (const void *ptr, size_t s, size_t n, FILE *stream)
+#undef fwrite
+{
+  CALL_WITH_SIGPIPE_EMULATION (size_t, fwrite (ptr, s, n, stream), ret < n)
+}
+
+# endif
+#endif
index 20ba488..6be12c0 100644 (file)
@@ -1,6 +1,6 @@
 /* A GNU-like <stdio.h>.
 
-   Copyright (C) 2004, 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2007-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 
 #ifndef _@GUARD_PREFIX@_STDIO_H
 
+/* Suppress macOS deprecation warnings for sprintf and vsprintf.  */
+#if (defined __APPLE__ && defined __MACH__) && !defined _POSIX_C_SOURCE
+# define _POSIX_C_SOURCE 200809L
+# define _GL_DEFINED__POSIX_C_SOURCE
+#endif
+
 #define _GL_ALREADY_INCLUDING_STDIO_H
 
 /* The include_next requires a split double-inclusion guard.  */
 
 #undef _GL_ALREADY_INCLUDING_STDIO_H
 
+#ifdef _GL_DEFINED__POSIX_C_SOURCE
+# undef _GL_DEFINED__POSIX_C_SOURCE
+# undef _POSIX_C_SOURCE
+#endif
+
 #ifndef _@GUARD_PREFIX@_STDIO_H
 #define _@GUARD_PREFIX@_STDIO_H
 
+/* This file uses _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_FORMAT,
+   _GL_ATTRIBUTE_MALLOC, GNULIB_POSIXCHECK, HAVE_RAW_DECL_*.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 /* Get va_list.  Needed on many systems, including glibc 2.8.  */
 #include <stdarg.h>
 
    May also define off_t to a 64-bit type on native Windows.  */
 #include <sys/types.h>
 
+/* Solaris 10 and NetBSD 7.0 declare renameat in <unistd.h>, not in <stdio.h>.  */
+/* But in any case avoid namespace pollution on glibc systems.  */
+#if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && (defined __sun || defined __NetBSD__) \
+    && ! defined __GLIBC__
+# include <unistd.h>
+#endif
+
+/* Android 4.3 declares renameat in <sys/stat.h>, not in <stdio.h>.  */
+/* But in any case avoid namespace pollution on glibc systems.  */
+#if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && defined __ANDROID__ \
+    && ! defined __GLIBC__
+# include <sys/stat.h>
+#endif
+
+/* MSVC declares 'perror' in <stdlib.h>, not in <stdio.h>.  We must include
+   it before we  #define perror rpl_perror.  */
+/* But in any case avoid namespace pollution on glibc systems.  */
+#if (@GNULIB_PERROR@ || defined GNULIB_POSIXCHECK) \
+    && (defined _WIN32 && ! defined __CYGWIN__) \
+    && ! defined __GLIBC__
+# include <stdlib.h>
+#endif
+
+/* MSVC declares 'remove' in <io.h>, not in <stdio.h>.  We must include
+   it before we  #define remove rpl_remove.  */
+/* MSVC declares 'rename' in <io.h>, not in <stdio.h>.  We must include
+   it before we  #define rename rpl_rename.  */
+/* But in any case avoid namespace pollution on glibc systems.  */
+#if (@GNULIB_REMOVE@ || @GNULIB_RENAME@ || defined GNULIB_POSIXCHECK) \
+    && (defined _WIN32 && ! defined __CYGWIN__) \
+    && ! defined __GLIBC__
+# include <io.h>
+#endif
+
+
+/* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers
+   that can be freed by passing them as the Ith argument to the
+   function F.  */
+#ifndef _GL_ATTRIBUTE_DEALLOC
+# if __GNUC__ >= 11
+#  define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i)))
+# else
+#  define _GL_ATTRIBUTE_DEALLOC(f, i)
+# endif
+#endif
+
 /* The __attribute__ feature is available in gcc versions 2.5 and later.
    The __-protected variants of the attributes 'format' and 'printf' are
    accepted by gcc versions 2.6.4 (effectively 2.7) and later.
 # endif
 #endif
 
+/* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly
+   allocated memory.  */
+#ifndef _GL_ATTRIBUTE_MALLOC
+# if __GNUC__ >= 3 || defined __clang__
+#  define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
+# else
+#  define _GL_ATTRIBUTE_MALLOC
+# endif
+#endif
+
 /* An __attribute__ __format__ specifier for a function that takes a format
    string and arguments, where the format string directives are the ones
    standardized by ISO C99 and POSIX.
 #define _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM(formatstring_parameter, first_argument) \
   _GL_ATTRIBUTE_FORMAT ((__scanf__, formatstring_parameter, first_argument))
 
-/* Solaris 10 and NetBSD 7.0 declare renameat in <unistd.h>, not in <stdio.h>.  */
-/* But in any case avoid namespace pollution on glibc systems.  */
-#if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && (defined __sun || defined __NetBSD__) \
-    && ! defined __GLIBC__
-# include <unistd.h>
-#endif
-
-/* Android 4.3 declares renameat in <sys/stat.h>, not in <stdio.h>.  */
-/* But in any case avoid namespace pollution on glibc systems.  */
-#if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && defined __ANDROID__ \
-    && ! defined __GLIBC__
-# include <sys/stat.h>
-#endif
-
-/* MSVC declares 'perror' in <stdlib.h>, not in <stdio.h>.  We must include
-   it before we  #define perror rpl_perror.  */
-/* But in any case avoid namespace pollution on glibc systems.  */
-#if (@GNULIB_PERROR@ || defined GNULIB_POSIXCHECK) \
-    && (defined _WIN32 && ! defined __CYGWIN__) \
-    && ! defined __GLIBC__
-# include <stdlib.h>
-#endif
-
-/* MSVC declares 'remove' in <io.h>, not in <stdio.h>.  We must include
-   it before we  #define remove rpl_remove.  */
-/* MSVC declares 'rename' in <io.h>, not in <stdio.h>.  We must include
-   it before we  #define rename rpl_rename.  */
-/* But in any case avoid namespace pollution on glibc systems.  */
-#if (@GNULIB_REMOVE@ || @GNULIB_RENAME@ || defined GNULIB_POSIXCHECK) \
-    && (defined _WIN32 && ! defined __CYGWIN__) \
-    && ! defined __GLIBC__
-# include <io.h>
-#endif
-
-
 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
 
 /* The definition of _GL_ARG_NONNULL is copied here.  */
 # undef putc_unlocked
 #endif
 
+
+/* Maximum number of characters produced by printing a NaN value.  */
+#ifndef _PRINTF_NAN_LEN_MAX
+# if defined __FreeBSD__ || defined __DragonFly__ \
+     || defined __NetBSD__ \
+     || (defined __APPLE__ && defined __MACH__)
+/* On BSD systems, a NaN value prints as just "nan", without a sign.  */
+#  define _PRINTF_NAN_LEN_MAX 3
+# elif (__GLIBC__ >= 2) || MUSL_LIBC || defined __OpenBSD__ || defined __sun || defined __CYGWIN__
+/* glibc, musl libc, OpenBSD, Solaris libc, and Cygwin produce "[-]nan".  */
+#  define _PRINTF_NAN_LEN_MAX 4
+# elif defined _AIX
+/* AIX produces "[-]NaNQ".  */
+#  define _PRINTF_NAN_LEN_MAX 5
+# elif defined _WIN32 && !defined __CYGWIN__
+/* On native Windows, the output can be:
+   - with MSVC ucrt: "[-]nan" or "[-]nan(ind)" or "[-]nan(snan)",
+   - with mingw: "[-]1.#IND" or "[-]1.#QNAN".  */
+#  define _PRINTF_NAN_LEN_MAX 10
+# elif defined __sgi
+/* On IRIX, the output typically is "[-]nan0xNNNNNNNN" with 8 hexadecimal
+   digits.  */
+#  define _PRINTF_NAN_LEN_MAX 14
+# else
+/* We don't know, but 32 should be a safe maximum.  */
+#  define _PRINTF_NAN_LEN_MAX 32
+# endif
+#endif
+
+
 #if @GNULIB_DPRINTF@
 # if @REPLACE_DPRINTF@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
@@ -199,7 +267,9 @@ _GL_FUNCDECL_SYS (dprintf, int, (int fd, const char *restrict format, ...)
 #  endif
 _GL_CXXALIAS_SYS (dprintf, int, (int fd, const char *restrict format, ...));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (dprintf);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef dprintf
 # if HAVE_RAW_DECL_DPRINTF
@@ -260,8 +330,10 @@ _GL_CXXALIASWARN (fcloseall);
 #   undef fdopen
 #   define fdopen rpl_fdopen
 #  endif
-_GL_FUNCDECL_RPL (fdopen, FILE *, (int fd, const char *mode)
-                                  _GL_ARG_NONNULL ((2)));
+_GL_FUNCDECL_RPL (fdopen, FILE *,
+                  (int fd, const char *mode)
+                  _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1)
+                  _GL_ATTRIBUTE_MALLOC);
 _GL_CXXALIAS_RPL (fdopen, FILE *, (int fd, const char *mode));
 # elif defined _WIN32 && !defined __CYGWIN__
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
@@ -270,28 +342,44 @@ _GL_CXXALIAS_RPL (fdopen, FILE *, (int fd, const char *mode));
 #  endif
 _GL_CXXALIAS_MDA (fdopen, FILE *, (int fd, const char *mode));
 # else
+#  if __GNUC__ >= 11
+/* For -Wmismatched-dealloc: Associate fdopen with fclose or rpl_fclose.  */
+_GL_FUNCDECL_SYS (fdopen, FILE *,
+                  (int fd, const char *mode)
+                  _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1)
+                  _GL_ATTRIBUTE_MALLOC);
+#  endif
 _GL_CXXALIAS_SYS (fdopen, FILE *, (int fd, const char *mode));
 # endif
 _GL_CXXALIASWARN (fdopen);
-#elif defined GNULIB_POSIXCHECK
-# undef fdopen
+#else
+# if @GNULIB_FCLOSE@ && __GNUC__ >= 11 && !defined fdopen
+/* For -Wmismatched-dealloc: Associate fdopen with fclose or rpl_fclose.  */
+_GL_FUNCDECL_SYS (fdopen, FILE *,
+                  (int fd, const char *mode)
+                  _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1)
+                  _GL_ATTRIBUTE_MALLOC);
+# 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");
-#elif @GNULIB_MDA_FDOPEN@
+# elif @GNULIB_MDA_FDOPEN@
 /* On native Windows, map 'fdopen' to '_fdopen', so that -loldnames is not
    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
    platforms by defining GNULIB_NAMESPACE::fdopen always.  */
-# if defined _WIN32 && !defined __CYGWIN__
-#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#   undef fdopen
-#   define fdopen _fdopen
-#  endif
+#  if defined _WIN32 && !defined __CYGWIN__
+#   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#    undef fdopen
+#    define fdopen _fdopen
+#   endif
 _GL_CXXALIAS_MDA (fdopen, FILE *, (int fd, const char *mode));
-# else
+#  else
 _GL_CXXALIAS_SYS (fdopen, FILE *, (int fd, const char *mode));
-# endif
+#  endif
 _GL_CXXALIASWARN (fdopen);
+# endif
 #endif
 
 #if @GNULIB_FFLUSH@
@@ -373,28 +461,44 @@ _GL_CXXALIASWARN (fileno);
 #endif
 
 #if @GNULIB_FOPEN@
-# if @REPLACE_FOPEN@
+# if (@GNULIB_FOPEN@ && @REPLACE_FOPEN@) \
+     || (@GNULIB_FOPEN_GNU@ && @REPLACE_FOPEN_FOR_FOPEN_GNU@)
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   undef fopen
 #   define fopen rpl_fopen
 #  endif
 _GL_FUNCDECL_RPL (fopen, FILE *,
                   (const char *restrict filename, const char *restrict mode)
-                  _GL_ARG_NONNULL ((1, 2)));
+                  _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1)
+                  _GL_ATTRIBUTE_MALLOC);
 _GL_CXXALIAS_RPL (fopen, FILE *,
                   (const char *restrict filename, const char *restrict mode));
 # else
+#  if __GNUC__ >= 11
+/* For -Wmismatched-dealloc: Associate fopen with fclose or rpl_fclose.  */
+_GL_FUNCDECL_SYS (fopen, FILE *,
+                  (const char *restrict filename, const char *restrict mode)
+                  _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1));
+#  endif
 _GL_CXXALIAS_SYS (fopen, FILE *,
                   (const char *restrict filename, const char *restrict mode));
 # endif
 # if __GLIBC__ >= 2
 _GL_CXXALIASWARN (fopen);
 # endif
-#elif defined GNULIB_POSIXCHECK
-# undef fopen
+#else
+# if @GNULIB_FCLOSE@ && __GNUC__ >= 11 && !defined fopen
+/* For -Wmismatched-dealloc: Associate fopen with fclose or rpl_fclose.  */
+_GL_FUNCDECL_SYS (fopen, FILE *,
+                  (const char *restrict filename, const char *restrict mode)
+                  _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");
+# endif
 #endif
 
 #if @GNULIB_FPRINTF_POSIX@ || @GNULIB_FPRINTF@
@@ -841,7 +945,9 @@ _GL_CXXALIAS_SYS (getdelim, ssize_t,
                    int delimiter,
                    FILE *restrict stream));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (getdelim);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef getdelim
 # if HAVE_RAW_DECL_GETDELIM
@@ -880,7 +986,7 @@ _GL_CXXALIAS_SYS (getline, ssize_t,
                   (char **restrict lineptr, size_t *restrict linesize,
                    FILE *restrict stream));
 # endif
-# if @HAVE_DECL_GETLINE@
+# if __GLIBC__ >= 2 && @HAVE_DECL_GETLINE@
 _GL_CXXALIASWARN (getline);
 # endif
 #elif defined GNULIB_POSIXCHECK
@@ -910,9 +1016,17 @@ _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
 #  endif
 _GL_CXXALIAS_MDA (getw, int, (FILE *restrict stream));
 # else
+#  if @HAVE_DECL_GETW@
+#   if defined __APPLE__ && defined __MACH__
+/* The presence of the declaration depends on _POSIX_C_SOURCE.  */
+_GL_FUNCDECL_SYS (getw, int, (FILE *restrict stream));
+#   endif
 _GL_CXXALIAS_SYS (getw, int, (FILE *restrict stream));
+#  endif
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (getw);
+# endif
 #endif
 
 #if @GNULIB_OBSTACK_PRINTF@ || @GNULIB_OBSTACK_PRINTF_POSIX@
@@ -1009,22 +1123,35 @@ _GL_WARN_ON_USE (perror, "perror is not always POSIX compliant - "
 #   undef popen
 #   define popen rpl_popen
 #  endif
-_GL_FUNCDECL_RPL (popen, FILE *, (const char *cmd, const char *mode)
-                                 _GL_ARG_NONNULL ((1, 2)));
+_GL_FUNCDECL_RPL (popen, FILE *,
+                  (const char *cmd, const char *mode)
+                  _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (pclose, 1)
+                  _GL_ATTRIBUTE_MALLOC);
 _GL_CXXALIAS_RPL (popen, FILE *, (const char *cmd, const char *mode));
 # else
-#  if !@HAVE_POPEN@
-_GL_FUNCDECL_SYS (popen, FILE *, (const char *cmd, const char *mode)
-                                 _GL_ARG_NONNULL ((1, 2)));
+#  if !@HAVE_POPEN@ || __GNUC__ >= 11
+_GL_FUNCDECL_SYS (popen, FILE *,
+                  (const char *cmd, const char *mode)
+                  _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (pclose, 1)
+                  _GL_ATTRIBUTE_MALLOC);
 #  endif
 _GL_CXXALIAS_SYS (popen, FILE *, (const char *cmd, const char *mode));
 # endif
 _GL_CXXALIASWARN (popen);
-#elif defined GNULIB_POSIXCHECK
-# undef popen
-# if HAVE_RAW_DECL_POPEN
+#else
+# if @GNULIB_PCLOSE@ && __GNUC__ >= 11 && !defined popen
+/* For -Wmismatched-dealloc: Associate popen with pclose or rpl_pclose.  */
+_GL_FUNCDECL_SYS (popen, FILE *,
+                  (const char *cmd, const char *mode)
+                  _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (pclose, 1)
+                  _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");
+#  endif
 # endif
 #endif
 
@@ -1139,9 +1266,17 @@ _GL_CXXALIASWARN (puts);
 #  endif
 _GL_CXXALIAS_MDA (putw, int, (int w, FILE *restrict stream));
 # else
+#  if @HAVE_DECL_PUTW@
+#   if defined __APPLE__ && defined __MACH__
+/* The presence of the declaration depends on _POSIX_C_SOURCE.  */
+_GL_FUNCDECL_SYS (putw, int, (int w, FILE *restrict stream));
+#   endif
 _GL_CXXALIAS_SYS (putw, int, (int w, FILE *restrict stream));
+#  endif
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (putw);
+# endif
 #endif
 
 #if @GNULIB_REMOVE@
@@ -1346,19 +1481,35 @@ _GL_CXXALIASWARN (tempnam);
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   define tmpfile rpl_tmpfile
 #  endif
-_GL_FUNCDECL_RPL (tmpfile, FILE *, (void));
+_GL_FUNCDECL_RPL (tmpfile, FILE *, (void)
+                                   _GL_ATTRIBUTE_DEALLOC (fclose, 1)
+                                   _GL_ATTRIBUTE_MALLOC);
 _GL_CXXALIAS_RPL (tmpfile, FILE *, (void));
 # else
+#  if __GNUC__ >= 11
+/* For -Wmismatched-dealloc: Associate tmpfile with fclose or rpl_fclose.  */
+_GL_FUNCDECL_SYS (tmpfile, FILE *, (void)
+                                   _GL_ATTRIBUTE_DEALLOC (fclose, 1)
+                                   _GL_ATTRIBUTE_MALLOC);
+#  endif
 _GL_CXXALIAS_SYS (tmpfile, FILE *, (void));
 # endif
 # if __GLIBC__ >= 2
 _GL_CXXALIASWARN (tmpfile);
 # endif
-#elif defined GNULIB_POSIXCHECK
-# undef tmpfile
-# if HAVE_RAW_DECL_TMPFILE
+#else
+# if @GNULIB_FCLOSE@ && __GNUC__ >= 11 && !defined tmpfile
+/* For -Wmismatched-dealloc: Associate tmpfile with fclose or rpl_fclose.  */
+_GL_FUNCDECL_SYS (tmpfile, FILE *, (void)
+                                   _GL_ATTRIBUTE_DEALLOC (fclose, 1)
+                                   _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");
+#  endif
 # endif
 #endif
 
index 652062d..1479a2b 100644 (file)
@@ -1,6 +1,6 @@
 /* A GNU-like <stdlib.h>.
 
-   Copyright (C) 1995, 2001-2004, 2006-2021 Free Software Foundation, Inc.
+   Copyright (C) 1995, 2001-2004, 2006-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 #ifndef _@GUARD_PREFIX@_STDLIB_H
 #define _@GUARD_PREFIX@_STDLIB_H
 
+/* This file uses _Noreturn, _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_MALLOC,
+   _GL_ATTRIBUTE_PURE, GNULIB_POSIXCHECK, HAVE_RAW_DECL_*.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 /* NetBSD 5.0 mis-defines NULL.  */
 #include <stddef.h>
 
@@ -67,9 +73,7 @@
 #  include <random.h>
 # endif
 
-# if !@HAVE_STRUCT_RANDOM_DATA@ || @REPLACE_RANDOM_R@ || !@HAVE_RANDOM_R@
-#  include <stdint.h>
-# endif
+# include <stdint.h>
 
 # if !@HAVE_STRUCT_RANDOM_DATA@
 /* Define 'struct random_data'.
@@ -99,6 +103,35 @@ struct random_data
 # include <unistd.h>
 #endif
 
+/* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers
+   that can be freed by passing them as the Ith argument to the
+   function F.  */
+#ifndef _GL_ATTRIBUTE_DEALLOC
+# if __GNUC__ >= 11
+#  define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i)))
+# else
+#  define _GL_ATTRIBUTE_DEALLOC(f, i)
+# endif
+#endif
+
+/* _GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that
+   can be freed via 'free'; it can be used only after declaring 'free'.  */
+/* Applies to: functions.  Cannot be used on inline functions.  */
+#ifndef _GL_ATTRIBUTE_DEALLOC_FREE
+# define _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_DEALLOC (free, 1)
+#endif
+
+/* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly
+   allocated memory.  */
+/* Applies to: functions.  */
+#ifndef _GL_ATTRIBUTE_MALLOC
+# if __GNUC__ >= 3 || defined __clang__
+#  define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
+# else
+#  define _GL_ATTRIBUTE_MALLOC
+# endif
+#endif
+
 /* The __attribute__ feature is available in gcc versions 2.5 and later.
    The attribute __pure__ was added in gcc 2.96.  */
 #ifndef _GL_ATTRIBUTE_PURE
@@ -135,11 +168,22 @@ struct random_data
 #if @GNULIB__EXIT@
 /* Terminate the current process with the given return code, without running
    the 'atexit' handlers.  */
-# if !@HAVE__EXIT@
+# if @REPLACE__EXIT@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef _Exit
+#   define _Exit rpl__Exit
+#  endif
+_GL_FUNCDECL_RPL (_Exit, _Noreturn void, (int status));
+_GL_CXXALIAS_RPL (_Exit, void, (int status));
+# else
+#  if !@HAVE__EXIT@
 _GL_FUNCDECL_SYS (_Exit, _Noreturn void, (int status));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (_Exit, void, (int status));
+# endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (_Exit);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef _Exit
 # if HAVE_RAW_DECL__EXIT
@@ -149,6 +193,32 @@ _GL_WARN_ON_USE (_Exit, "_Exit is unportable - "
 #endif
 
 
+#if @GNULIB_FREE_POSIX@
+# if @REPLACE_FREE@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef free
+#   define free rpl_free
+#  endif
+#  if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2)
+_GL_FUNCDECL_RPL (free, void, (void *ptr) throw ());
+#  else
+_GL_FUNCDECL_RPL (free, void, (void *ptr));
+#  endif
+_GL_CXXALIAS_RPL (free, void, (void *ptr));
+# else
+_GL_CXXALIAS_SYS (free, void, (void *ptr));
+# endif
+# if __GLIBC__ >= 2
+_GL_CXXALIASWARN (free);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef free
+/* Assume free is always declared.  */
+_GL_WARN_ON_USE (free, "free is not future POSIX compliant everywhere - "
+                 "use gnulib module free for portability");
+#endif
+
+
 /* Allocate memory with indefinite extent and specified alignment.  */
 #if @GNULIB_ALIGNED_ALLOC@
 # if @REPLACE_ALIGNED_ALLOC@
@@ -156,21 +226,37 @@ _GL_WARN_ON_USE (_Exit, "_Exit is unportable - "
 #   undef aligned_alloc
 #   define aligned_alloc rpl_aligned_alloc
 #  endif
-_GL_FUNCDECL_RPL (aligned_alloc, void *, (size_t alignment, size_t size));
+_GL_FUNCDECL_RPL (aligned_alloc, void *,
+                  (size_t alignment, size_t size)
+                  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
 _GL_CXXALIAS_RPL (aligned_alloc, void *, (size_t alignment, size_t size));
 # else
 #  if @HAVE_ALIGNED_ALLOC@
+#   if __GNUC__ >= 11
+/* For -Wmismatched-dealloc: Associate aligned_alloc with free or rpl_free.  */
+_GL_FUNCDECL_SYS (aligned_alloc, void *,
+                  (size_t alignment, size_t size)
+                  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
+#   endif
 _GL_CXXALIAS_SYS (aligned_alloc, void *, (size_t alignment, size_t size));
 #  endif
 # endif
-# if @HAVE_ALIGNED_ALLOC@
+# if (__GLIBC__ >= 2) && @HAVE_ALIGNED_ALLOC@
 _GL_CXXALIASWARN (aligned_alloc);
 # endif
-#elif defined GNULIB_POSIXCHECK
-# undef aligned_alloc
-# if HAVE_RAW_DECL_ALIGNED_ALLOC
+#else
+# if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined aligned_alloc
+/* For -Wmismatched-dealloc: Associate aligned_alloc with free or rpl_free.  */
+_GL_FUNCDECL_SYS (aligned_alloc, void *,
+                  (size_t alignment, size_t size)
+                  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
+# 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");
+#  endif
 # endif
 #endif
 
@@ -193,24 +279,41 @@ _GL_WARN_ON_USE (atoll, "atoll is unportable - "
 #endif
 
 #if @GNULIB_CALLOC_POSIX@
-# if @REPLACE_CALLOC@
+# if (@GNULIB_CALLOC_POSIX@ && @REPLACE_CALLOC_FOR_CALLOC_POSIX@) \
+     || (@GNULIB_CALLOC_GNU@ && @REPLACE_CALLOC_FOR_CALLOC_GNU@)
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   undef calloc
 #   define calloc rpl_calloc
 #  endif
-_GL_FUNCDECL_RPL (calloc, void *, (size_t nmemb, size_t size));
+_GL_FUNCDECL_RPL (calloc, void *,
+                  (size_t nmemb, size_t size)
+                  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
 _GL_CXXALIAS_RPL (calloc, void *, (size_t nmemb, size_t size));
 # else
+#  if __GNUC__ >= 11
+/* For -Wmismatched-dealloc: Associate calloc with free or rpl_free.  */
+_GL_FUNCDECL_SYS (calloc, void *,
+                  (size_t nmemb, size_t size)
+                  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
+#  endif
 _GL_CXXALIAS_SYS (calloc, void *, (size_t nmemb, size_t size));
 # endif
 # if __GLIBC__ >= 2
 _GL_CXXALIASWARN (calloc);
 # endif
-#elif defined GNULIB_POSIXCHECK
-# undef calloc
+#else
+# if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined calloc
+/* For -Wmismatched-dealloc: Associate calloc with free or rpl_free.  */
+_GL_FUNCDECL_SYS (calloc, void *,
+                  (size_t nmemb, size_t size)
+                  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
+# 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");
+# endif
 #endif
 
 #if @GNULIB_CANONICALIZE_FILE_NAME@
@@ -218,13 +321,17 @@ _GL_WARN_ON_USE (calloc, "calloc is not POSIX compliant everywhere - "
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   define canonicalize_file_name rpl_canonicalize_file_name
 #  endif
-_GL_FUNCDECL_RPL (canonicalize_file_name, char *, (const char *name)
-                                                  _GL_ARG_NONNULL ((1)));
+_GL_FUNCDECL_RPL (canonicalize_file_name, char *,
+                  (const char *name)
+                  _GL_ARG_NONNULL ((1))
+                  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
 _GL_CXXALIAS_RPL (canonicalize_file_name, char *, (const char *name));
 # else
-#  if !@HAVE_CANONICALIZE_FILE_NAME@
-_GL_FUNCDECL_SYS (canonicalize_file_name, char *, (const char *name)
-                                                  _GL_ARG_NONNULL ((1)));
+#  if !@HAVE_CANONICALIZE_FILE_NAME@ || __GNUC__ >= 11
+_GL_FUNCDECL_SYS (canonicalize_file_name, char *,
+                  (const char *name)
+                  _GL_ARG_NONNULL ((1))
+                  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
 #  endif
 _GL_CXXALIAS_SYS (canonicalize_file_name, char *, (const char *name));
 # endif
@@ -233,12 +340,22 @@ _GL_CXXALIAS_SYS (canonicalize_file_name, char *, (const char *name));
      (!@HAVE_CANONICALIZE_FILE_NAME@ || @REPLACE_CANONICALIZE_FILE_NAME@)
 # endif
 _GL_CXXALIASWARN (canonicalize_file_name);
-#elif defined GNULIB_POSIXCHECK
-# undef canonicalize_file_name
-# if HAVE_RAW_DECL_CANONICALIZE_FILE_NAME
+#else
+# if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined canonicalize_file_name
+/* For -Wmismatched-dealloc: Associate canonicalize_file_name with free or
+   rpl_free.  */
+_GL_FUNCDECL_SYS (canonicalize_file_name, char *,
+                  (const char *name)
+                  _GL_ARG_NONNULL ((1))
+                  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
+# 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 - "
                  "use gnulib module canonicalize-lgpl for portability");
+#  endif
 # endif
 #endif
 
@@ -288,27 +405,6 @@ _GL_CXXALIASWARN (fcvt);
 # endif
 #endif
 
-#if @GNULIB_FREE_POSIX@
-# if @REPLACE_FREE@
-#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#   undef free
-#   define free rpl_free
-#  endif
-_GL_FUNCDECL_RPL (free, void, (void *ptr));
-_GL_CXXALIAS_RPL (free, void, (void *ptr));
-# else
-_GL_CXXALIAS_SYS (free, void, (void *ptr));
-# endif
-# if __GLIBC__ >= 2
-_GL_CXXALIASWARN (free);
-# endif
-#elif defined GNULIB_POSIXCHECK
-# undef free
-/* Assume free is always declared.  */
-_GL_WARN_ON_USE (free, "free is not future POSIX compliant everywhere - "
-                 "use gnulib module free for portability");
-#endif
-
 #if @GNULIB_MDA_GCVT@
 /* On native Windows, map 'gcvt' to '_gcvt', so that -loldnames is not
    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
@@ -335,12 +431,24 @@ _GL_CXXALIASWARN (gcvt);
    The three numbers are the load average of the last 1 minute, the last 5
    minutes, and the last 15 minutes, respectively.
    LOADAVG is an array of NELEM numbers.  */
-# if !@HAVE_DECL_GETLOADAVG@
+# if @REPLACE_GETLOADAVG@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef getloadavg
+#   define getloadavg rpl_getloadavg
+#  endif
+_GL_FUNCDECL_RPL (getloadavg, int, (double loadavg[], int nelem)
+                                   _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (getloadavg, int, (double loadavg[], int nelem));
+# else
+#  if !@HAVE_DECL_GETLOADAVG@
 _GL_FUNCDECL_SYS (getloadavg, int, (double loadavg[], int nelem)
                                    _GL_ARG_NONNULL ((1)));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (getloadavg, int, (double loadavg[], int nelem));
+# endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (getloadavg);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef getloadavg
 # if HAVE_RAW_DECL_GETLOADAVG
@@ -349,6 +457,41 @@ _GL_WARN_ON_USE (getloadavg, "getloadavg is not portable - "
 # endif
 #endif
 
+#if @GNULIB_GETPROGNAME@
+/* Return the base name of the executing program.
+   On native Windows this will usually end in ".exe" or ".EXE". */
+# if @REPLACE_GETPROGNAME@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef getprogname
+#   define getprogname rpl_getprogname
+#  endif
+#  if @HAVE_DECL_PROGRAM_INVOCATION_NAME@
+_GL_FUNCDECL_RPL (getprogname, const char *, (void) _GL_ATTRIBUTE_PURE);
+#  else
+_GL_FUNCDECL_RPL (getprogname, const char *, (void));
+#  endif
+_GL_CXXALIAS_RPL (getprogname, const char *, (void));
+# else
+#  if !@HAVE_GETPROGNAME@
+#   if @HAVE_DECL_PROGRAM_INVOCATION_NAME@
+_GL_FUNCDECL_SYS (getprogname, const char *, (void) _GL_ATTRIBUTE_PURE);
+#   else
+_GL_FUNCDECL_SYS (getprogname, const char *, (void));
+#   endif
+#  endif
+_GL_CXXALIAS_SYS (getprogname, const char *, (void));
+# endif
+# if __GLIBC__ >= 2
+_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");
+# endif
+#endif
+
 #if @GNULIB_GETSUBOPT@
 /* Assuming *OPTIONP is a comma separated list of elements of the form
    "token" or "token=value", getsubopt parses the first of these elements.
@@ -361,14 +504,28 @@ _GL_WARN_ON_USE (getloadavg, "getloadavg is not portable - "
    Otherwise it returns -1, and *OPTIONP and *VALUEP are undefined.
    For more details see the POSIX specification.
    https://pubs.opengroup.org/onlinepubs/9699919799/functions/getsubopt.html */
-# if !@HAVE_GETSUBOPT@
+# if @REPLACE_GETSUBOPT@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef getsubopt
+#   define getsubopt rpl_getsubopt
+#  endif
+_GL_FUNCDECL_RPL (getsubopt, int,
+                  (char **optionp, char *const *tokens, char **valuep)
+                  _GL_ARG_NONNULL ((1, 2, 3)));
+_GL_CXXALIAS_RPL (getsubopt, int,
+                  (char **optionp, char *const *tokens, char **valuep));
+# else
+#  if !@HAVE_GETSUBOPT@
 _GL_FUNCDECL_SYS (getsubopt, int,
                   (char **optionp, char *const *tokens, char **valuep)
                   _GL_ARG_NONNULL ((1, 2, 3)));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (getsubopt, int,
                   (char **optionp, char *const *tokens, char **valuep));
+# endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (getsubopt);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef getsubopt
 # if HAVE_RAW_DECL_GETSUBOPT
@@ -398,25 +555,87 @@ _GL_WARN_ON_USE (grantpt, "grantpt is not portable - "
    by never specifying a zero size), so it does not need malloc or
    realloc to be redefined.  */
 #if @GNULIB_MALLOC_POSIX@
-# if @REPLACE_MALLOC@
+# if (@GNULIB_MALLOC_POSIX@ && @REPLACE_MALLOC_FOR_MALLOC_POSIX@) \
+     || (@GNULIB_MALLOC_GNU@ && @REPLACE_MALLOC_FOR_MALLOC_GNU@)
 #  if !((defined __cplusplus && defined GNULIB_NAMESPACE) \
         || _GL_USE_STDLIB_ALLOC)
 #   undef malloc
 #   define malloc rpl_malloc
 #  endif
-_GL_FUNCDECL_RPL (malloc, void *, (size_t size));
+_GL_FUNCDECL_RPL (malloc, void *,
+                  (size_t size)
+                  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
 _GL_CXXALIAS_RPL (malloc, void *, (size_t size));
 # else
+#  if __GNUC__ >= 11
+/* For -Wmismatched-dealloc: Associate malloc with free or rpl_free.  */
+_GL_FUNCDECL_SYS (malloc, void *,
+                  (size_t size)
+                  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
+#  endif
 _GL_CXXALIAS_SYS (malloc, void *, (size_t size));
 # endif
 # if __GLIBC__ >= 2
 _GL_CXXALIASWARN (malloc);
 # endif
-#elif defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC
-# undef malloc
+#else
+# if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined malloc
+/* For -Wmismatched-dealloc: Associate malloc with free or rpl_free.  */
+_GL_FUNCDECL_SYS (malloc, void *,
+                  (size_t size)
+                  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
+# 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");
+# endif
+#endif
+
+/* Return maximum number of bytes of a multibyte character.  */
+#if @REPLACE_MB_CUR_MAX@
+# if !GNULIB_defined_MB_CUR_MAX
+static inline
+int gl_MB_CUR_MAX (void)
+{
+  /* Turn the value 3 to the value 4, as needed for the UTF-8 encoding.  */
+  return MB_CUR_MAX + (MB_CUR_MAX == 3);
+}
+#  undef MB_CUR_MAX
+#  define MB_CUR_MAX gl_MB_CUR_MAX ()
+#  define GNULIB_defined_MB_CUR_MAX 1
+# endif
+#endif
+
+/* Convert a string to a wide string.  */
+#if @GNULIB_MBSTOWCS@
+# if @REPLACE_MBSTOWCS@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef mbstowcs
+#   define mbstowcs rpl_mbstowcs
+#  endif
+_GL_FUNCDECL_RPL (mbstowcs, size_t,
+                  (wchar_t *restrict dest, const char *restrict src,
+                   size_t len)
+                  _GL_ARG_NONNULL ((2)));
+_GL_CXXALIAS_RPL (mbstowcs, size_t,
+                  (wchar_t *restrict dest, const char *restrict src,
+                   size_t len));
+# else
+_GL_CXXALIAS_SYS (mbstowcs, size_t,
+                  (wchar_t *restrict dest, const char *restrict src,
+                   size_t len));
+# endif
+# if __GLIBC__ >= 2
+_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");
+# endif
 #endif
 
 /* Convert a multibyte character to a wide character.  */
@@ -481,12 +700,24 @@ _GL_WARN_ON_USE (mkdtemp, "mkdtemp is unportable - "
    implementation.
    Returns the open file descriptor if successful, otherwise -1 and errno
    set.  */
-# if !@HAVE_MKOSTEMP@
+# if @REPLACE_MKOSTEMP@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef mkostemp
+#   define mkostemp rpl_mkostemp
+#  endif
+_GL_FUNCDECL_RPL (mkostemp, int, (char * /*template*/, int /*flags*/)
+                                 _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (mkostemp, int, (char * /*template*/, int /*flags*/));
+# else
+#  if !@HAVE_MKOSTEMP@
 _GL_FUNCDECL_SYS (mkostemp, int, (char * /*template*/, int /*flags*/)
                                  _GL_ARG_NONNULL ((1)));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (mkostemp, int, (char * /*template*/, int /*flags*/));
+# endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (mkostemp);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef mkostemp
 # if HAVE_RAW_DECL_MKOSTEMP
@@ -509,14 +740,28 @@ _GL_WARN_ON_USE (mkostemp, "mkostemp is unportable - "
    implementation.
    Returns the open file descriptor if successful, otherwise -1 and errno
    set.  */
-# if !@HAVE_MKOSTEMPS@
+# if @REPLACE_MKOSTEMPS@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef mkostemps
+#   define mkostemps rpl_mkostemps
+#  endif
+_GL_FUNCDECL_RPL (mkostemps, int,
+                  (char * /*template*/, int /*suffixlen*/, int /*flags*/)
+                  _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (mkostemps, int,
+                  (char * /*template*/, int /*suffixlen*/, int /*flags*/));
+# else
+#  if !@HAVE_MKOSTEMPS@
 _GL_FUNCDECL_SYS (mkostemps, int,
                   (char * /*template*/, int /*suffixlen*/, int /*flags*/)
                   _GL_ARG_NONNULL ((1)));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (mkostemps, int,
                   (char * /*template*/, int /*suffixlen*/, int /*flags*/));
+# endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (mkostemps);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef mkostemps
 # if HAVE_RAW_DECL_MKOSTEMPS
@@ -615,7 +860,7 @@ _GL_CXXALIAS_SYS (posix_memalign, int,
                   (void **memptr, size_t alignment, size_t size));
 #  endif
 # endif
-# if @HAVE_POSIX_MEMALIGN@
+# if __GLIBC__ >= 2 && @HAVE_POSIX_MEMALIGN@
 _GL_CXXALIASWARN (posix_memalign);
 # endif
 #elif defined GNULIB_POSIXCHECK
@@ -629,11 +874,22 @@ _GL_WARN_ON_USE (posix_memalign, "posix_memalign is not portable - "
 #if @GNULIB_POSIX_OPENPT@
 /* Return an FD open to the master side of a pseudo-terminal.  Flags should
    include O_RDWR, and may also include O_NOCTTY.  */
-# if !@HAVE_POSIX_OPENPT@
+# if @REPLACE_POSIX_OPENPT@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef posix_openpt
+#   define posix_openpt rpl_posix_openpt
+#  endif
+_GL_FUNCDECL_RPL (posix_openpt, int, (int flags));
+_GL_CXXALIAS_RPL (posix_openpt, int, (int flags));
+# else
+#  if !@HAVE_POSIX_OPENPT@
 _GL_FUNCDECL_SYS (posix_openpt, int, (int flags));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (posix_openpt, int, (int flags));
+# endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (posix_openpt);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef posix_openpt
 # if HAVE_RAW_DECL_POSIX_OPENPT
@@ -736,29 +992,35 @@ _GL_CXXALIASWARN (putenv);
 /* Sort an array of NMEMB elements, starting at address BASE, each element
    occupying SIZE bytes, in ascending order according to the comparison
    function COMPARE.  */
+# ifdef __cplusplus
+extern "C" {
+# endif
+# if !GNULIB_defined_qsort_r_fn_types
+typedef int (*_gl_qsort_r_compar_fn) (void const *, void const *, void *);
+#  define GNULIB_defined_qsort_r_fn_types 1
+# endif
+# ifdef __cplusplus
+}
+# endif
 # if @REPLACE_QSORT_R@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   undef qsort_r
 #   define qsort_r rpl_qsort_r
 #  endif
 _GL_FUNCDECL_RPL (qsort_r, void, (void *base, size_t nmemb, size_t size,
-                                  int (*compare) (void const *, void const *,
-                                                  void *),
+                                  _gl_qsort_r_compar_fn compare,
                                   void *arg) _GL_ARG_NONNULL ((1, 4)));
 _GL_CXXALIAS_RPL (qsort_r, void, (void *base, size_t nmemb, size_t size,
-                                  int (*compare) (void const *, void const *,
-                                                  void *),
+                                  _gl_qsort_r_compar_fn compare,
                                   void *arg));
 # else
 #  if !@HAVE_QSORT_R@
 _GL_FUNCDECL_SYS (qsort_r, void, (void *base, size_t nmemb, size_t size,
-                                  int (*compare) (void const *, void const *,
-                                                  void *),
+                                  _gl_qsort_r_compar_fn compare,
                                   void *arg) _GL_ARG_NONNULL ((1, 4)));
 #  endif
 _GL_CXXALIAS_SYS (qsort_r, void, (void *base, size_t nmemb, size_t size,
-                                  int (*compare) (void const *, void const *,
-                                                  void *),
+                                  _gl_qsort_r_compar_fn compare,
                                   void *arg));
 # endif
 _GL_CXXALIASWARN (qsort_r);
@@ -796,7 +1058,9 @@ _GL_FUNCDECL_SYS (random, long, (void));
                                int.  */
 _GL_CXXALIAS_SYS_CAST (random, long, (void));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (random);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef random
 # if HAVE_RAW_DECL_RANDOM
@@ -821,7 +1085,9 @@ _GL_FUNCDECL_SYS (srandom, void, (unsigned int seed));
                                        unsigned long seed.  */
 _GL_CXXALIAS_SYS_CAST (srandom, void, (unsigned int seed));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (srandom);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef srandom
 # if HAVE_RAW_DECL_SRANDOM
@@ -852,7 +1118,9 @@ _GL_FUNCDECL_SYS (initstate, char *,
 _GL_CXXALIAS_SYS_CAST (initstate, char *,
                        (unsigned int seed, char *buf, size_t buf_size));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (initstate);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef initstate
 # if HAVE_RAW_DECL_INITSTATE
@@ -877,7 +1145,9 @@ _GL_FUNCDECL_SYS (setstate, char *, (char *arg_state) _GL_ARG_NONNULL ((1)));
    is                                     const char *arg_state.  */
 _GL_CXXALIAS_SYS_CAST (setstate, char *, (char *arg_state));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (setstate);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef setstate
 # if HAVE_RAW_DECL_SETSTATE
@@ -1009,25 +1279,39 @@ _GL_WARN_ON_USE (setstate_r, "setstate_r is unportable - "
 
 
 #if @GNULIB_REALLOC_POSIX@
-# if @REPLACE_REALLOC@
+# if (@GNULIB_REALLOC_POSIX@ && @REPLACE_REALLOC_FOR_REALLOC_POSIX@) \
+     || (@GNULIB_REALLOC_GNU@ && @REPLACE_REALLOC_FOR_REALLOC_GNU@)
 #  if !((defined __cplusplus && defined GNULIB_NAMESPACE) \
         || _GL_USE_STDLIB_ALLOC)
 #   undef realloc
 #   define realloc rpl_realloc
 #  endif
-_GL_FUNCDECL_RPL (realloc, void *, (void *ptr, size_t size));
+_GL_FUNCDECL_RPL (realloc, void *, (void *ptr, size_t size)
+                                   _GL_ATTRIBUTE_DEALLOC_FREE);
 _GL_CXXALIAS_RPL (realloc, void *, (void *ptr, size_t size));
 # else
+#  if __GNUC__ >= 11
+/* For -Wmismatched-dealloc: Associate realloc with free or rpl_free.  */
+_GL_FUNCDECL_SYS (realloc, void *, (void *ptr, size_t size)
+                                   _GL_ATTRIBUTE_DEALLOC_FREE);
+#  endif
 _GL_CXXALIAS_SYS (realloc, void *, (void *ptr, size_t size));
 # endif
 # if __GLIBC__ >= 2
 _GL_CXXALIASWARN (realloc);
 # endif
-#elif defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC
-# undef realloc
+#else
+# if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined realloc
+/* For -Wmismatched-dealloc: Associate realloc with free or rpl_free.  */
+_GL_FUNCDECL_SYS (realloc, void *, (void *ptr, size_t size)
+                                   _GL_ATTRIBUTE_DEALLOC_FREE);
+# 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");
+# endif
 #endif
 
 
@@ -1049,7 +1333,9 @@ _GL_FUNCDECL_SYS (reallocarray, void *,
 _GL_CXXALIAS_SYS (reallocarray, void *,
                   (void *ptr, size_t nmemb, size_t size));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (reallocarray);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef reallocarray
 # if HAVE_RAW_DECL_REALLOCARRAY
@@ -1245,7 +1531,9 @@ _GL_CXXALIAS_SYS (strtol, long,
                   (const char *restrict string, char **restrict endptr,
                    int base));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (strtol);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef strtol
 # if HAVE_RAW_DECL_STRTOL
@@ -1326,7 +1614,9 @@ _GL_CXXALIAS_SYS (strtoul, unsigned long,
                   (const char *restrict string, char **restrict endptr,
                    int base));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (strtoul);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef strtoul
 # if HAVE_RAW_DECL_STRTOUL
index e1db32f..e9a8e49 100644 (file)
@@ -1,6 +1,6 @@
 /* stdopen.c - ensure that the three standard file descriptors are in use
 
-   Copyright (C) 2005-2006, 2019-2021 Free Software Foundation, Inc.
+   Copyright (C) 2005-2006, 2019-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index aa69c34..c6111fa 100644 (file)
@@ -1,9 +1,9 @@
 /* Arrange for stdin/stdout/stderr to be open.
-   Copyright (C) 2005-2021 Free Software Foundation, Inc.
+   Copyright (C) 2005-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
diff --git a/lib/stpcpy.c b/lib/stpcpy.c
new file mode 100644 (file)
index 0000000..73c1eb7
--- /dev/null
@@ -0,0 +1,49 @@
+/* stpcpy.c -- copy a string and return pointer to end of new string
+   Copyright (C) 1992, 1995, 1997-1998, 2006, 2009-2023 Free Software
+   Foundation, Inc.
+
+   NOTE: The canonical source of this file is maintained with the GNU C Library.
+   Bugs can be reported to bug-glibc@prep.ai.mit.edu.
+
+   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/>.  */
+
+#include <config.h>
+
+#include <string.h>
+
+#undef __stpcpy
+#ifdef _LIBC
+# undef stpcpy
+#endif
+
+#ifndef weak_alias
+# define __stpcpy stpcpy
+#endif
+
+/* Copy SRC to DEST, returning the address of the terminating '\0' in DEST.  */
+char *
+__stpcpy (char *dest, const char *src)
+{
+  register char *d = dest;
+  register const char *s = src;
+
+  do
+    *d++ = *s;
+  while (*s++ != '\0');
+
+  return d - 1;
+}
+#ifdef weak_alias
+weak_alias (__stpcpy, stpcpy)
+#endif
index 22c5701..b8821f8 100644 (file)
@@ -1,13 +1,13 @@
 /* Substring search in a NUL terminated string of UNIT elements,
    using the Knuth-Morris-Pratt algorithm.
-   Copyright (C) 2005-2021 Free Software Foundation, Inc.
+   Copyright (C) 2005-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2005.
 
    This file is free software.
    It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
    You can redistribute it and/or modify it under either
      - the terms of the GNU Lesser General Public License as published
-       by the Free Software Foundation; either version 3, or (at your
+       by the Free Software Foundation, either version 3, or (at your
        option) any later version, or
      - the terms of the GNU General Public License as published by the
        Free Software Foundation; either version 2, or (at your option)
index c714270..3a5ce3e 100644 (file)
@@ -1,5 +1,5 @@
 /* Case-insensitive string comparison function.
-   Copyright (C) 1998-1999, 2005-2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 1998-1999, 2005-2007, 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index adabd15..712948e 100644 (file)
@@ -1,5 +1,5 @@
 /* Optimized string comparison.
-   Copyright (C) 2001-2002, 2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2001-2002, 2007, 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index e76d55d..cddaa4a 100644 (file)
@@ -1,6 +1,6 @@
 /* strerror-override.c --- POSIX compatible system error routine
 
-   Copyright (C) 2010-2021 Free Software Foundation, Inc.
+   Copyright (C) 2010-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 9cfc5ad..c9b3ba8 100644 (file)
@@ -1,6 +1,6 @@
 /* strerror-override.h --- POSIX compatible system error routine
 
-   Copyright (C) 2010-2021 Free Software Foundation, Inc.
+   Copyright (C) 2010-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 #ifndef _GL_STRERROR_OVERRIDE_H
 # define _GL_STRERROR_OVERRIDE_H
 
+/* This file uses _GL_ATTRIBUTE_CONST.  */
+# if !_GL_CONFIG_H_INCLUDED
+#  error "Please include config.h first."
+# endif
+
 # include <errno.h>
 # include <stddef.h>
 
index 83926df..d754f60 100644 (file)
@@ -1,6 +1,6 @@
 /* strerror.c --- POSIX compatible system error routine
 
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    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,7 +27,6 @@
 
 #include "intprops.h"
 #include "strerror-override.h"
-#include "verify.h"
 
 /* Use the system functions, not the gnulib overrides in this file.  */
 #undef sprintf
@@ -55,7 +54,7 @@ strerror (int n)
   if (!msg || !*msg)
     {
       static char const fmt[] = "Unknown error %d";
-      verify (sizeof buf >= sizeof (fmt) + INT_STRLEN_BOUND (n));
+      static_assert (sizeof buf >= sizeof (fmt) + INT_STRLEN_BOUND (n));
       sprintf (buf, fmt, n);
       errno = EINVAL;
       return buf;
index 790a80e..88c1f73 100644 (file)
@@ -1,10 +1,10 @@
 /* declarations for strftime.c
 
-   Copyright (C) 2002, 2004, 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2004, 2008-2023 Free Software Foundation, Inc.
 
    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 3 of the
+   published by the Free Software Foundation, either version 3 of the
    License, or (at your option) any later version.
 
    This file is distributed in the hope that it will be useful,
index b92bdc9..ec5e1a8 100644 (file)
@@ -1,5 +1,5 @@
 /* Charset conversion.
-   Copyright (C) 2001-2007, 2010-2021 Free Software Foundation, Inc.
+   Copyright (C) 2001-2007, 2010-2023 Free Software Foundation, Inc.
    Written by Bruno Haible and Simon Josefsson.
 
    This file is free software: you can redistribute it and/or modify
index 69da35d..a4164da 100644 (file)
@@ -1,5 +1,5 @@
 /* Charset conversion.
-   Copyright (C) 2001-2004, 2006-2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2001-2004, 2006-2007, 2009-2023 Free Software Foundation, Inc.
    Written by Bruno Haible and Simon Josefsson.
 
    This file is free software: you can redistribute it and/or modify
 #ifndef _STRICONV_H
 #define _STRICONV_H
 
-#include <stddef.h>
+/* This file uses _GL_ATTRIBUTE_MALLOC, HAVE_ICONV.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
+#include <stdlib.h>
 #if HAVE_ICONV
 #include <iconv.h>
 #endif
@@ -52,7 +57,8 @@ extern int mem_cd_iconv (const char *src, size_t srclen, iconv_t cd,
    Allocate a malloced memory block for the result.
    Return value: the freshly allocated resulting NUL-terminated string if
    successful, otherwise NULL and errno set.  */
-extern char * str_cd_iconv (const char *src, iconv_t cd);
+extern char * str_cd_iconv (const char *src, iconv_t cd)
+  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE;
 
 #endif
 
@@ -64,7 +70,8 @@ extern char * str_cd_iconv (const char *src, iconv_t cd);
    Return value: the freshly allocated resulting NUL-terminated string if
    successful, otherwise NULL and errno set.  */
 extern char * str_iconv (const char *src,
-                         const char *from_codeset, const char *to_codeset);
+                         const char *from_codeset, const char *to_codeset)
+  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE;
 
 
 #ifdef __cplusplus
index cb964bc..912d0f7 100644 (file)
@@ -1,6 +1,6 @@
 /* A GNU-like <string.h>.
 
-   Copyright (C) 1995-1996, 2001-2021 Free Software Foundation, Inc.
+   Copyright (C) 1995-1996, 2001-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 #ifndef _@GUARD_PREFIX@_STRING_H
 #define _@GUARD_PREFIX@_STRING_H
 
+/* This file uses _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_MALLOC,
+   _GL_ATTRIBUTE_PURE, GNULIB_POSIXCHECK, HAVE_RAW_DECL_*.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 /* NetBSD 5.0 mis-defines NULL.  */
 #include <stddef.h>
 
 # include <wchar.h>
 #endif
 
-/* The __attribute__ feature is available in gcc versions 2.5 and later.
-   The attribute __pure__ was added in gcc 2.96.  */
-#ifndef _GL_ATTRIBUTE_PURE
-# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) || defined __clang__
-#  define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
-# else
-#  define _GL_ATTRIBUTE_PURE /* empty */
-# endif
-#endif
-
 /* NetBSD 5.0 declares strsignal in <unistd.h>, not in <string.h>.  */
 /* But in any case avoid namespace pollution on glibc systems.  */
 #if (@GNULIB_STRSIGNAL@ || defined GNULIB_POSIXCHECK) && defined __NetBSD__ \
 # include <unistd.h>
 #endif
 
-/* AIX 7.2 declares ffsl and ffsll in <strings.h>, not in <string.h>.  */
+/* AIX 7.2 and Android 13 declare ffsl and ffsll in <strings.h>, not in
+   <string.h>.  */
 /* But in any case avoid namespace pollution on glibc systems.  */
 #if ((@GNULIB_FFSL@ || @GNULIB_FFSLL@ || defined GNULIB_POSIXCHECK) \
-     && defined _AIX) \
+     && (defined _AIX || defined __ANDROID__)) \
     && ! defined __GLIBC__
 # include <strings.h>
 #endif
 
+/* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers
+   that can be freed by passing them as the Ith argument to the
+   function F.  */
+#ifndef _GL_ATTRIBUTE_DEALLOC
+# if __GNUC__ >= 11
+#  define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i)))
+# else
+#  define _GL_ATTRIBUTE_DEALLOC(f, i)
+# endif
+#endif
+
+/* _GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that
+   can be freed via 'free'; it can be used only after declaring 'free'.  */
+/* Applies to: functions.  Cannot be used on inline functions.  */
+#ifndef _GL_ATTRIBUTE_DEALLOC_FREE
+# if defined __cplusplus && defined __GNUC__ && !defined __clang__
+/* Work around GCC bug <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108231> */
+#  define _GL_ATTRIBUTE_DEALLOC_FREE \
+     _GL_ATTRIBUTE_DEALLOC ((void (*) (void *)) free, 1)
+# else
+#  define _GL_ATTRIBUTE_DEALLOC_FREE \
+     _GL_ATTRIBUTE_DEALLOC (free, 1)
+# endif
+#endif
+
+/* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly
+   allocated memory.  */
+/* Applies to: functions.  */
+#ifndef _GL_ATTRIBUTE_MALLOC
+# if __GNUC__ >= 3 || defined __clang__
+#  define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
+# else
+#  define _GL_ATTRIBUTE_MALLOC
+# endif
+#endif
+
+/* The __attribute__ feature is available in gcc versions 2.5 and later.
+   The attribute __pure__ was added in gcc 2.96.  */
+#ifndef _GL_ATTRIBUTE_PURE
+# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) || defined __clang__
+#  define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
+# else
+#  define _GL_ATTRIBUTE_PURE /* empty */
+# endif
+#endif
+
 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
 
 /* The definition of _GL_ARG_NONNULL is copied here.  */
 
 /* The definition of _GL_WARN_ON_USE is copied here.  */
 
+/* Make _GL_ATTRIBUTE_DEALLOC_FREE work, even though <stdlib.h> may not have
+   been included yet.  */
+#if @GNULIB_FREE_POSIX@
+# if (@REPLACE_FREE@ && !defined free \
+      && !(defined __cplusplus && defined GNULIB_NAMESPACE))
+/* We can't do '#define free rpl_free' here.  */
+#  if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2)
+_GL_EXTERN_C void rpl_free (void *) throw ();
+#  else
+_GL_EXTERN_C void rpl_free (void *);
+#  endif
+#  undef _GL_ATTRIBUTE_DEALLOC_FREE
+#  define _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_DEALLOC (rpl_free, 1)
+# else
+#  if defined _MSC_VER && !defined free
+_GL_EXTERN_C
+#   if defined _DLL
+     __declspec (dllimport)
+#   endif
+     void __cdecl free (void *);
+#  else
+#   if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2)
+_GL_EXTERN_C void free (void *) throw ();
+#   else
+_GL_EXTERN_C void free (void *);
+#   endif
+#  endif
+# endif
+#else
+# if defined _MSC_VER && !defined free
+_GL_EXTERN_C
+#   if defined _DLL
+     __declspec (dllimport)
+#   endif
+     void __cdecl free (void *);
+# else
+#  if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2)
+_GL_EXTERN_C void free (void *) throw ();
+#  else
+_GL_EXTERN_C void free (void *);
+#  endif
+# endif
+#endif
 
 /* Clear a block of memory.  The compiler will not delete a call to
    this function, even if the block is dead after the call.  */
@@ -178,10 +264,11 @@ _GL_CXXALIAS_SYS_CAST2 (memchr,
                         void const *, (void const *__s, int __c, size_t __n));
 # endif
 # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
-     && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
-_GL_CXXALIASWARN1 (memchr, void *, (void *__s, int __c, size_t __n));
+     && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \
+         || defined __clang__)
+_GL_CXXALIASWARN1 (memchr, void *, (void *__s, int __c, size_t __n) throw ());
 _GL_CXXALIASWARN1 (memchr, void const *,
-                   (void const *__s, int __c, size_t __n));
+                   (void const *__s, int __c, size_t __n) throw ());
 # elif __GLIBC__ >= 2
 _GL_CXXALIASWARN (memchr);
 # endif
@@ -231,16 +318,32 @@ _GL_WARN_ON_USE (memmem, "memmem is unportable and often quadratic - "
 /* Copy N bytes of SRC to DEST, return pointer to bytes after the
    last written byte.  */
 #if @GNULIB_MEMPCPY@
-# if ! @HAVE_MEMPCPY@
+# if @REPLACE_MEMPCPY@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef mempcpy
+#   define mempcpy rpl_mempcpy
+#  endif
+_GL_FUNCDECL_RPL (mempcpy, void *,
+                  (void *restrict __dest, void const *restrict __src,
+                   size_t __n)
+                  _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (mempcpy, void *,
+                  (void *restrict __dest, void const *restrict __src,
+                   size_t __n));
+# else
+#  if !@HAVE_MEMPCPY@
 _GL_FUNCDECL_SYS (mempcpy, void *,
                   (void *restrict __dest, void const *restrict __src,
                    size_t __n)
                   _GL_ARG_NONNULL ((1, 2)));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (mempcpy, void *,
                   (void *restrict __dest, void const *restrict __src,
                    size_t __n));
+# endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (mempcpy);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef mempcpy
 # if HAVE_RAW_DECL_MEMPCPY
@@ -263,10 +366,11 @@ _GL_CXXALIAS_SYS_CAST2 (memrchr,
                         void *, (void const *, int, size_t),
                         void const *, (void const *, int, size_t));
 # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
-     && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
-_GL_CXXALIASWARN1 (memrchr, void *, (void *, int, size_t));
-_GL_CXXALIASWARN1 (memrchr, void const *, (void const *, int, size_t));
-# else
+     && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \
+         || defined __clang__)
+_GL_CXXALIASWARN1 (memrchr, void *, (void *, int, size_t) throw ());
+_GL_CXXALIASWARN1 (memrchr, void const *, (void const *, int, size_t) throw ());
+# elif __GLIBC__ >= 2
 _GL_CXXALIASWARN (memrchr);
 # endif
 #elif defined GNULIB_POSIXCHECK
@@ -277,6 +381,23 @@ _GL_WARN_ON_USE (memrchr, "memrchr is unportable - "
 # endif
 #endif
 
+/* Overwrite a block of memory.  The compiler will not optimize
+   effects away, even if the block is dead after the call.  */
+#if @GNULIB_MEMSET_EXPLICIT@
+# if ! @HAVE_MEMSET_EXPLICIT@
+_GL_FUNCDECL_SYS (memset_explicit, void *,
+                  (void *__dest, int __c, size_t __n) _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_SYS (memset_explicit, void *, (void *__dest, int __c, size_t __n));
+_GL_CXXALIASWARN (memset_explicit);
+#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");
+# endif
+#endif
+
 /* Find the first occurrence of C in S.  More efficient than
    memchr(S,C,N), at the expense of undefined behavior if C does not
    occur within N bytes.  */
@@ -293,9 +414,11 @@ _GL_CXXALIAS_SYS_CAST2 (rawmemchr,
                         void *, (void const *__s, int __c_in),
                         void const *, (void const *__s, int __c_in));
 # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
-     && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
-_GL_CXXALIASWARN1 (rawmemchr, void *, (void *__s, int __c_in));
-_GL_CXXALIASWARN1 (rawmemchr, void const *, (void const *__s, int __c_in));
+     && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \
+         || defined __clang__)
+_GL_CXXALIASWARN1 (rawmemchr, void *, (void *__s, int __c_in) throw ());
+_GL_CXXALIASWARN1 (rawmemchr, void const *,
+                   (void const *__s, int __c_in) throw ());
 # else
 _GL_CXXALIASWARN (rawmemchr);
 # endif
@@ -309,14 +432,28 @@ _GL_WARN_ON_USE (rawmemchr, "rawmemchr is unportable - "
 
 /* Copy SRC to DST, returning the address of the terminating '\0' in DST.  */
 #if @GNULIB_STPCPY@
-# if ! @HAVE_STPCPY@
+# if @REPLACE_STPCPY@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef stpcpy
+#   define stpcpy rpl_stpcpy
+#  endif
+_GL_FUNCDECL_RPL (stpcpy, char *,
+                  (char *restrict __dst, char const *restrict __src)
+                  _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (stpcpy, char *,
+                  (char *restrict __dst, char const *restrict __src));
+# else
+#  if !@HAVE_STPCPY@
 _GL_FUNCDECL_SYS (stpcpy, char *,
                   (char *restrict __dst, char const *restrict __src)
                   _GL_ARG_NONNULL ((1, 2)));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (stpcpy, char *,
                   (char *restrict __dst, char const *restrict __src));
+# endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (stpcpy);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef stpcpy
 # if HAVE_RAW_DECL_STPCPY
@@ -351,7 +488,9 @@ _GL_CXXALIAS_SYS (stpncpy, char *,
                   (char *restrict __dst, char const *restrict __src,
                    size_t __n));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (stpncpy);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef stpncpy
 # if HAVE_RAW_DECL_STPNCPY
@@ -397,10 +536,12 @@ _GL_CXXALIAS_SYS_CAST2 (strchrnul,
                         char const *, (char const *__s, int __c_in));
 # endif
 # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
-     && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
-_GL_CXXALIASWARN1 (strchrnul, char *, (char *__s, int __c_in));
-_GL_CXXALIASWARN1 (strchrnul, char const *, (char const *__s, int __c_in));
-# else
+     && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \
+         || defined __clang__)
+_GL_CXXALIASWARN1 (strchrnul, char *, (char *__s, int __c_in) throw ());
+_GL_CXXALIASWARN1 (strchrnul, char const *,
+                   (char const *__s, int __c_in) throw ());
+# elif __GLIBC__ >= 2
 _GL_CXXALIASWARN (strchrnul);
 # endif
 #elif defined GNULIB_POSIXCHECK
@@ -418,7 +559,10 @@ _GL_WARN_ON_USE (strchrnul, "strchrnul is unportable - "
 #   undef strdup
 #   define strdup rpl_strdup
 #  endif
-_GL_FUNCDECL_RPL (strdup, char *, (char const *__s) _GL_ARG_NONNULL ((1)));
+_GL_FUNCDECL_RPL (strdup, char *,
+                  (char const *__s)
+                  _GL_ARG_NONNULL ((1))
+                  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
 _GL_CXXALIAS_RPL (strdup, char *, (char const *__s));
 # elif defined _WIN32 && !defined __CYGWIN__
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
@@ -431,35 +575,47 @@ _GL_CXXALIAS_MDA (strdup, char *, (char const *__s));
     /* strdup exists as a function and as a macro.  Get rid of the macro.  */
 #   undef strdup
 #  endif
-#  if !(@HAVE_DECL_STRDUP@ || defined strdup)
-_GL_FUNCDECL_SYS (strdup, char *, (char const *__s) _GL_ARG_NONNULL ((1)));
+#  if (!@HAVE_DECL_STRDUP@ || __GNUC__ >= 11) && !defined strdup
+_GL_FUNCDECL_SYS (strdup, char *,
+                  (char const *__s)
+                  _GL_ARG_NONNULL ((1))
+                  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
 #  endif
 _GL_CXXALIAS_SYS (strdup, char *, (char const *__s));
 # endif
 _GL_CXXALIASWARN (strdup);
-#elif defined GNULIB_POSIXCHECK
-# undef strdup
-# if HAVE_RAW_DECL_STRDUP
+#else
+# if __GNUC__ >= 11 && !defined strdup
+/* For -Wmismatched-dealloc: Associate strdup with free or rpl_free.  */
+_GL_FUNCDECL_SYS (strdup, char *,
+                  (char const *__s)
+                  _GL_ARG_NONNULL ((1))
+                  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
+# 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");
-# endif
-#elif @GNULIB_MDA_STRDUP@
+#  endif
+# elif @GNULIB_MDA_STRDUP@
 /* On native Windows, map 'creat' to '_creat', so that -loldnames is not
    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
    platforms by defining GNULIB_NAMESPACE::strdup always.  */
-# if defined _WIN32 && !defined __CYGWIN__
-#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#   undef strdup
-#   define strdup _strdup
-#  endif
+#  if defined _WIN32 && !defined __CYGWIN__
+#   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#    undef strdup
+#    define strdup _strdup
+#   endif
 _GL_CXXALIAS_MDA (strdup, char *, (char const *__s));
-# else
-#  if defined __cplusplus && defined GNULIB_NAMESPACE && defined strdup
-#   undef strdup
-#  endif
+#  else
+#   if defined __cplusplus && defined GNULIB_NAMESPACE && defined strdup
+#    undef strdup
+#   endif
 _GL_CXXALIAS_SYS (strdup, char *, (char const *__s));
-# endif
+#  endif
 _GL_CXXALIASWARN (strdup);
+# endif
 #endif
 
 /* Append no more than N characters from SRC onto DEST.  */
@@ -496,22 +652,35 @@ _GL_WARN_ON_USE (strncat, "strncat is unportable - "
 #   undef strndup
 #   define strndup rpl_strndup
 #  endif
-_GL_FUNCDECL_RPL (strndup, char *, (char const *__s, size_t __n)
-                                   _GL_ARG_NONNULL ((1)));
+_GL_FUNCDECL_RPL (strndup, char *,
+                  (char const *__s, size_t __n)
+                  _GL_ARG_NONNULL ((1))
+                  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
 _GL_CXXALIAS_RPL (strndup, char *, (char const *__s, size_t __n));
 # else
-#  if ! @HAVE_DECL_STRNDUP@
-_GL_FUNCDECL_SYS (strndup, char *, (char const *__s, size_t __n)
-                                   _GL_ARG_NONNULL ((1)));
+#  if !@HAVE_DECL_STRNDUP@ || (__GNUC__ >= 11 && !defined strndup)
+_GL_FUNCDECL_SYS (strndup, char *,
+                  (char const *__s, size_t __n)
+                  _GL_ARG_NONNULL ((1))
+                  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
 #  endif
 _GL_CXXALIAS_SYS (strndup, char *, (char const *__s, size_t __n));
 # endif
 _GL_CXXALIASWARN (strndup);
-#elif defined GNULIB_POSIXCHECK
-# undef strndup
-# if HAVE_RAW_DECL_STRNDUP
+#else
+# if __GNUC__ >= 11 && !defined strndup
+/* For -Wmismatched-dealloc: Associate strndup with free or rpl_free.  */
+_GL_FUNCDECL_SYS (strndup, char *,
+                  (char const *__s, size_t __n)
+                  _GL_ARG_NONNULL ((1))
+                  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
+# 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");
+#  endif
 # endif
 #endif
 
@@ -571,10 +740,11 @@ _GL_CXXALIAS_SYS_CAST2 (strpbrk,
                         char *, (char const *__s, char const *__accept),
                         const char *, (char const *__s, char const *__accept));
 # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
-     && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
-_GL_CXXALIASWARN1 (strpbrk, char *, (char *__s, char const *__accept));
+     && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \
+         || defined __clang__)
+_GL_CXXALIASWARN1 (strpbrk, char *, (char *__s, char const *__accept) throw ());
 _GL_CXXALIASWARN1 (strpbrk, char const *,
-                   (char const *__s, char const *__accept));
+                   (char const *__s, char const *__accept) throw ());
 # elif __GLIBC__ >= 2
 _GL_CXXALIASWARN (strpbrk);
 # endif
@@ -679,10 +849,12 @@ _GL_CXXALIAS_SYS_CAST2 (strstr,
                         const char *, (const char *haystack, const char *needle));
 # endif
 # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
-     && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
-_GL_CXXALIASWARN1 (strstr, char *, (char *haystack, const char *needle));
+     && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \
+         || defined __clang__)
+_GL_CXXALIASWARN1 (strstr, char *,
+                   (char *haystack, const char *needle) throw ());
 _GL_CXXALIASWARN1 (strstr, const char *,
-                   (const char *haystack, const char *needle));
+                   (const char *haystack, const char *needle) throw ());
 # elif __GLIBC__ >= 2
 _GL_CXXALIASWARN (strstr);
 # endif
@@ -728,11 +900,13 @@ _GL_CXXALIAS_SYS_CAST2 (strcasestr,
                         const char *, (const char *haystack, const char *needle));
 # endif
 # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
-     && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
-_GL_CXXALIASWARN1 (strcasestr, char *, (char *haystack, const char *needle));
+     && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \
+         || defined __clang__)
+_GL_CXXALIASWARN1 (strcasestr, char *,
+                   (char *haystack, const char *needle) throw ());
 _GL_CXXALIASWARN1 (strcasestr, const char *,
-                   (const char *haystack, const char *needle));
-# else
+                   (const char *haystack, const char *needle) throw ());
+# elif __GLIBC__ >= 2
 _GL_CXXALIASWARN (strcasestr);
 # endif
 #elif defined GNULIB_POSIXCHECK
@@ -836,7 +1010,9 @@ _GL_FUNCDECL_SYS (mbslen, size_t, (const char *string)
                                   _GL_ARG_NONNULL ((1)));
 _GL_CXXALIAS_SYS (mbslen, size_t, (const char *string));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (mbslen);
+# endif
 #endif
 
 #if @GNULIB_MBSNLEN@
@@ -1078,7 +1254,7 @@ _GL_FUNCDECL_SYS (strerror_r, int, (int errnum, char *buf, size_t buflen)
 #  endif
 _GL_CXXALIAS_SYS (strerror_r, int, (int errnum, char *buf, size_t buflen));
 # endif
-# if @HAVE_DECL_STRERROR_R@
+# if __GLIBC__ >= 2 && @HAVE_DECL_STRERROR_R@
 _GL_CXXALIASWARN (strerror_r);
 # endif
 #elif defined GNULIB_POSIXCHECK
index 07aed18..929329d 100644 (file)
@@ -1,6 +1,6 @@
 /* A substitute <strings.h>.
 
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 #ifndef _@GUARD_PREFIX@_STRINGS_H
 #define _@GUARD_PREFIX@_STRINGS_H
 
+/* This file uses GNULIB_POSIXCHECK, HAVE_RAW_DECL_*.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 #if ! @HAVE_DECL_STRNCASECMP@
 /* Get size_t.  */
 # include <stddef.h>
index 99bfbe6..fe46a9c 100644 (file)
@@ -1,6 +1,6 @@
 /* stripslash.c -- remove redundant trailing slashes from a file name
 
-   Copyright (C) 1990, 2001, 2003-2006, 2009-2021 Free Software Foundation,
+   Copyright (C) 1990, 2001, 2003-2006, 2009-2023 Free Software Foundation,
    Inc.
 
    This file is free software: you can redistribute it and/or modify
index ccc0170..c5c2cd3 100644 (file)
@@ -1,5 +1,5 @@
 /* strncasecmp.c -- case insensitive string comparator
-   Copyright (C) 1998-1999, 2005-2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 1998-1999, 2005-2007, 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index ded06ce..09c010e 100644 (file)
@@ -1,5 +1,5 @@
 /* Find the length of STRING, but scan at most MAXLEN characters.
-   Copyright (C) 2005-2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2005-2007, 2009-2023 Free Software Foundation, Inc.
    Written by Simon Josefsson.
 
    This file is free software: you can redistribute it and/or modify
index ac12576..25866c5 100644 (file)
@@ -1,5 +1,5 @@
 /* Find the length of STRING + 1, but scan at most MAXLEN bytes.
-   Copyright (C) 2005-2006, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2005-2006, 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 2d69299..02dcd4c 100644 (file)
@@ -1,5 +1,5 @@
 /* Find the length of STRING + 1, but scan at most MAXLEN bytes.
-   Copyright (C) 2005, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 #ifndef _STRNLEN1_H
 #define _STRNLEN1_H
 
+/* This file uses _GL_ATTRIBUTE_PURE.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 #include <stddef.h>
 
 
index 7745f10..23f9ec6 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2004-2005, 2007, 2009-2021 Free Software Foundation,
+/* Copyright (C) 2002, 2004-2005, 2007, 2009-2023 Free Software Foundation,
    Inc.
    This file is part of the GNU C Library.
 
@@ -29,9 +29,9 @@
 #include <limits.h>
 #include <string.h>
 #include <strings.h>
-#include <stdbool.h>
 
 #ifdef _LIBC
+# include <stdbool.h>
 # include "../locale/localeinfo.h"
 #endif
 
@@ -684,7 +684,7 @@ __strptime_internal (rp, fmt, tm, decided, era_cnt LOCALE_PARAM)
              specify hours.  If fours digits are used, minutes are
              also specified.  */
           {
-            bool neg _GL_UNUSED;
+            _GL_UNUSED bool neg;
             int n;
 
             val = 0;
index bf8534a..f7977e2 100644 (file)
@@ -1,11 +1,11 @@
 /* Convert string representation of a number into an intmax_t value.
 
-   Copyright (C) 1999, 2001-2004, 2006, 2009-2021 Free Software Foundation,
+   Copyright (C) 1999, 2001-2004, 2006, 2009-2023 Free Software Foundation,
    Inc.
 
    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 3 of the
+   published by the Free Software Foundation, either version 3 of the
    License, or (at your option) any later version.
 
    This file is distributed in the hope that it will be useful,
@@ -25,8 +25,6 @@
 
 #include <stdlib.h>
 
-#include "verify.h"
-
 #ifdef UNSIGNED
 # ifndef HAVE_DECL_STRTOULL
 "this configure-time declaration test was not run"
@@ -62,8 +60,8 @@ long long int strtoll (char const *, char **, int);
 Int
 Strtoimax (char const *ptr, char **endptr, int base)
 {
-  verify (sizeof (Int) == sizeof (Unsigned long int)
-          || sizeof (Int) == sizeof (Unsigned long long int));
+  static_assert (sizeof (Int) == sizeof (Unsigned long int)
+                 || sizeof (Int) == sizeof (Unsigned long long int));
 
   if (sizeof (Int) != sizeof (Unsigned long int))
     return Strtoll (ptr, endptr, base);
index c49321b..b93483d 100644 (file)
@@ -1,6 +1,6 @@
 /* Convert string representation of a number into an integer value.
 
-   Copyright (C) 1991-1992, 1994-1999, 2003, 2005-2007, 2009-2021 Free Software
+   Copyright (C) 1991-1992, 1994-1999, 2003, 2005-2007, 2009-2023 Free Software
    Foundation, Inc.
 
    NOTE: The canonical source of this file is maintained with the GNU C
@@ -8,7 +8,7 @@
 
    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 3 of the
+   published by the Free Software Foundation, either version 3 of the
    License, or (at your option) any later version.
 
    This file is distributed in the hope that it will be useful,
@@ -288,6 +288,11 @@ INTERNAL (strtol) (const STRING_TYPE *nptr, STRING_TYPE **endptr,
           s += 2;
           base = 16;
         }
+      else if ((base == 0 || base == 2) && TOUPPER (s[1]) == L_('B'))
+        {
+          s += 2;
+          base = 2;
+        }
       else if (base == 0)
         base = 8;
     }
@@ -378,11 +383,14 @@ INTERNAL (strtol) (const STRING_TYPE *nptr, STRING_TYPE **endptr,
 noconv:
   /* We must handle a special case here: the base is 0 or 16 and the
      first two characters are '0' and 'x', but the rest are no
-     hexadecimal digits.  This is no error case.  We return 0 and
-     ENDPTR points to the 'x'.  */
+     hexadecimal digits.  Likewise when the base is 0 or 2 and the
+     first two characters are '0' and 'b', but the rest are no binary
+     digits.  This is no error case.  We return 0 and ENDPTR points to
+     the 'x' or 'b'.  */
   if (endptr != NULL)
     {
-      if (save - nptr >= 2 && TOUPPER (save[-1]) == L_('X')
+      if (save - nptr >= 2
+          && (TOUPPER (save[-1]) == L_('X') || TOUPPER (save[-1]) == L_('B'))
           && save[-2] == L_('0'))
         *endptr = (STRING_TYPE *) &save[-1];
       else
index 8e6f93f..9fdfa19 100644 (file)
@@ -1,11 +1,11 @@
 /* Function to parse a 'long long int' from text.
-   Copyright (C) 1995-1997, 1999, 2001, 2009-2021 Free Software Foundation,
+   Copyright (C) 1995-1997, 1999, 2001, 2009-2023 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
    it under the terms of the GNU Lesser General Public License as
-   published by the Free Software Foundation; either version 3 of the
+   published by the Free Software Foundation, either version 3 of the
    License, or (at your option) any later version.
 
    This file is distributed in the hope that it will be useful,
index 1abd6c5..b240033 100644 (file)
@@ -1,5 +1,5 @@
 /* Substitute for <sys/random.h>.
-   Copyright (C) 2020-2021 Free Software Foundation, Inc.
+   Copyright (C) 2020-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 
 #if @HAVE_SYS_RANDOM_H@
 
-/* On uClibc, <sys/random.h> assumes prior inclusion of <stddef.h>.  */
-# if defined __UCLIBC__
+/* On uClibc < 1.0.35, <sys/random.h> assumes prior inclusion of <stddef.h>.
+   Do not use __UCLIBC__ here, as it might not be defined yet.
+   But avoid namespace pollution on glibc systems.  */
+# ifndef __GLIBC__
 #  include <stddef.h>
 # endif
 /* On Mac OS X 10.5, <sys/random.h> assumes prior inclusion of <sys/types.h>.
 #ifndef _@GUARD_PREFIX@_SYS_RANDOM_H
 #define _@GUARD_PREFIX@_SYS_RANDOM_H
 
+/* This file uses GNULIB_POSIXCHECK, HAVE_RAW_DECL_*.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 #include <sys/types.h>
 
 /* Define the GRND_* constants.  */
@@ -82,7 +89,9 @@ _GL_FUNCDECL_SYS (getrandom, ssize_t,
 _GL_CXXALIAS_SYS (getrandom, ssize_t,
                   (void *buffer, size_t length, unsigned int flags));
 # endif
+# if __GLIBC__ + (__GLIBC_MINOR__ >= 25) > 2
 _GL_CXXALIASWARN (getrandom);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef getrandom
 # if HAVE_RAW_DECL_GETRANDOM
index babe3db..ad4da17 100644 (file)
@@ -1,5 +1,5 @@
 /* Provide a more complete sys/stat.h header file.
-   Copyright (C) 2005-2021 Free Software Foundation, Inc.
+   Copyright (C) 2005-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 #endif
 @PRAGMA_COLUMNS@
 
+/* This file uses #include_next of a system file that defines time_t.
+   For the 'year2038' module to work right, <config.h> needs to have been
+   included before.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 #if defined __need_system_sys_stat_h
 /* Special invocation convention.  */
 
 #ifndef _@GUARD_PREFIX@_SYS_STAT_H
 #define _@GUARD_PREFIX@_SYS_STAT_H
 
+/* This file uses GNULIB_POSIXCHECK, HAVE_RAW_DECL_*.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
 
 /* The definition of _GL_ARG_NONNULL is copied here.  */
@@ -391,7 +403,33 @@ struct stat
 #endif
 
 
-#if @GNULIB_MDA_CHMOD@
+#if @GNULIB_CHMOD@
+# if @REPLACE_CHMOD@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef chmod
+#   define chmod rpl_chmod
+#  endif
+_GL_FUNCDECL_RPL (chmod, int, (const char *filename, mode_t mode)
+                               _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (chmod, int, (const char *filename, mode_t mode));
+# elif defined _WIN32 && !defined __CYGWIN__
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef chmod
+#   define chmod _chmod
+#  endif
+/* Need to cast, because in mingw the last argument is 'int mode'.  */
+_GL_CXXALIAS_MDA_CAST (chmod, int, (const char *filename, mode_t mode));
+# else
+_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");
+# endif
+#elif @GNULIB_MDA_CHMOD@
 /* On native Windows, map 'chmod' to '_chmod', so that -loldnames is not
    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
    platforms by defining GNULIB_NAMESPACE::chmod always.  */
@@ -523,7 +561,7 @@ _GL_FUNCDECL_SYS (futimens, int, (int fd, struct timespec const times[2]));
 #  endif
 _GL_CXXALIAS_SYS (futimens, int, (int fd, struct timespec const times[2]));
 # endif
-# if @HAVE_FUTIMENS@
+# if __GLIBC__ >= 2 && @HAVE_FUTIMENS@
 _GL_CXXALIASWARN (futimens);
 # endif
 #elif defined GNULIB_POSIXCHECK
@@ -570,44 +608,6 @@ _GL_WARN_ON_USE (lchmod, "lchmod is unportable - "
 #endif
 
 
-#if @GNULIB_LSTAT@
-# if ! @HAVE_LSTAT@
-/* mingw does not support symlinks, therefore it does not have lstat.  But
-   without links, stat does just fine.  */
-#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#   define lstat stat
-#  endif
-_GL_CXXALIAS_RPL_1 (lstat, stat, int,
-                    (const char *restrict name, struct stat *restrict buf));
-# elif @REPLACE_LSTAT@
-#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#   undef lstat
-#   define lstat rpl_lstat
-#  endif
-_GL_FUNCDECL_RPL (lstat, int,
-                  (const char *restrict name, struct stat *restrict buf)
-                  _GL_ARG_NONNULL ((1, 2)));
-_GL_CXXALIAS_RPL (lstat, int,
-                  (const char *restrict name, struct stat *restrict buf));
-# else
-_GL_CXXALIAS_SYS (lstat, int,
-                  (const char *restrict name, struct stat *restrict buf));
-# endif
-# if @HAVE_LSTAT@
-_GL_CXXALIASWARN (lstat);
-# endif
-#elif @GNULIB_OVERRIDES_STRUCT_STAT@
-# undef lstat
-# define lstat lstat_used_without_requesting_gnulib_module_lstat
-#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");
-# endif
-#endif
-
-
 #if @GNULIB_MKDIR@
 # if @REPLACE_MKDIR@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
@@ -728,7 +728,9 @@ _GL_FUNCDECL_SYS (mkfifoat, int, (int fd, char const *file, mode_t mode)
 #  endif
 _GL_CXXALIAS_SYS (mkfifoat, int, (int fd, char const *file, mode_t mode));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (mkfifoat);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef mkfifoat
 # if HAVE_RAW_DECL_MKFIFOAT
@@ -785,7 +787,9 @@ _GL_FUNCDECL_SYS (mknodat, int,
 _GL_CXXALIAS_SYS (mknodat, int,
                   (int fd, char const *file, mode_t mode, dev_t dev));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (mknodat);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef mknodat
 # if HAVE_RAW_DECL_MKNODAT
@@ -869,6 +873,44 @@ _GL_WARN_ON_USE (stat, "stat is unportable - "
 #endif
 
 
+#if @GNULIB_LSTAT@
+# if ! @HAVE_LSTAT@
+/* mingw does not support symlinks, therefore it does not have lstat.  But
+   without links, stat does just fine.  */
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define lstat stat
+#  endif
+_GL_CXXALIAS_RPL_1 (lstat, stat, int,
+                    (const char *restrict name, struct stat *restrict buf));
+# elif @REPLACE_LSTAT@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef lstat
+#   define lstat rpl_lstat
+#  endif
+_GL_FUNCDECL_RPL (lstat, int,
+                  (const char *restrict name, struct stat *restrict buf)
+                  _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (lstat, int,
+                  (const char *restrict name, struct stat *restrict buf));
+# else
+_GL_CXXALIAS_SYS (lstat, int,
+                  (const char *restrict name, struct stat *restrict buf));
+# endif
+# if @HAVE_LSTAT@
+_GL_CXXALIASWARN (lstat);
+# endif
+#elif @GNULIB_OVERRIDES_STRUCT_STAT@
+# undef lstat
+# define lstat lstat_used_without_requesting_gnulib_module_lstat
+#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");
+# endif
+#endif
+
+
 #if @GNULIB_MDA_UMASK@
 /* On native Windows, map 'umask' to '_umask', so that -loldnames is not
    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
@@ -911,7 +953,7 @@ _GL_FUNCDECL_SYS (utimensat, int, (int fd, char const *name,
 _GL_CXXALIAS_SYS (utimensat, int, (int fd, char const *name,
                                    struct timespec const times[2], int flag));
 # endif
-# if @HAVE_UTIMENSAT@
+# if __GLIBC__ >= 2 && @HAVE_UTIMENSAT@
 _GL_CXXALIASWARN (utimensat);
 # endif
 #elif defined GNULIB_POSIXCHECK
index 8035fbe..59cce14 100644 (file)
@@ -1,6 +1,6 @@
 /* Provide a more complete sys/time.h.
 
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 #endif
 @PRAGMA_COLUMNS@
 
+/* This file uses #include_next of a system file that defines time_t.
+   For the 'year2038' module to work right, <config.h> needs to have been
+   included before.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 /* On Cygwin and on many BSDish systems, <sys/time.h> includes itself
    recursively via <sys/select.h>.
    Simply delegate to the system's header in this case; it is a no-op.
 #ifndef _@GUARD_PREFIX@_SYS_TIME_H
 #define _@GUARD_PREFIX@_SYS_TIME_H
 
+/* This file uses GNULIB_POSIXCHECK, HAVE_RAW_DECL_*.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 #if ! @HAVE_SYS_TIME_H@
 # include <time.h>
 #endif
index 2079d72..ea77e14 100644 (file)
@@ -1,6 +1,6 @@
 /* Provide a more complete sys/types.h.
 
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 #endif
 @PRAGMA_COLUMNS@
 
+/* This file uses #include_next of a system file that defines time_t.
+   For the 'year2038' module to work right, <config.h> needs to have been
+   included before.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 #if defined _WIN32 && !defined __CYGWIN__ \
     && (defined __need_off_t || defined __need___off64_t \
         || defined __need_ssize_t || defined __need_time_t)
index 446c66b..79dc139 100644 (file)
@@ -1,5 +1,5 @@
 /* A POSIX-like <sys/wait.h>.
-   Copyright (C) 2001-2003, 2005-2021 Free Software Foundation, Inc.
+   Copyright (C) 2001-2003, 2005-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 #ifndef _@GUARD_PREFIX@_SYS_WAIT_H
 #define _@GUARD_PREFIX@_SYS_WAIT_H
 
+/* This file uses GNULIB_POSIXCHECK, HAVE_RAW_DECL_*.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 /* Get pid_t.  */
 #include <sys/types.h>
 
index 89c2303..54e891d 100644 (file)
@@ -1,10 +1,10 @@
 /* Quoting for a system command.
-   Copyright (C) 2012-2021 Free Software Foundation, Inc.
+   Copyright (C) 2012-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2012.
 
    This 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
+   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,
@@ -20,7 +20,6 @@
 /* Specification.  */
 #include "system-quote.h"
 
-#include <stdbool.h>
 #include <stdlib.h>
 #include <string.h>
 
@@ -258,7 +257,7 @@ system_quote (enum system_command_interpreter interpreter,
     case SCI_SYSTEM:
     case SCI_WINDOWS_CMD:
       {
-        size_t length = system_quote_length (interpreter, string);
+        size_t length = system_quote_length (interpreter, string) + 1;
         char *quoted = XNMALLOC (length, char);
         system_quote_copy (quoted, interpreter, string);
         return quoted;
index f378950..870a5c1 100644 (file)
@@ -1,10 +1,10 @@
 /* Quoting for a system command.
-   Copyright (C) 2001-2021 Free Software Foundation, Inc.
+   Copyright (C) 2001-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2012.
 
    This 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
+   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,
       is to truncate the entire command line.
  */
 
-#include <stddef.h>
+/* This file uses _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_RETURNS_NONNULL.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
+#include <stdlib.h>
 
 #ifdef __cplusplus
 extern "C" {
@@ -84,13 +89,17 @@ extern char *
 /* Returns the freshly allocated quoted string.  */
 extern char *
        system_quote (enum system_command_interpreter interpreter,
-                     const char *string);
+                     const char *string)
+  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE
+  _GL_ATTRIBUTE_RETURNS_NONNULL;
 
 /* Returns a freshly allocated string containing all argument strings, quoted,
    separated through spaces.  */
 extern char *
        system_quote_argv (enum system_command_interpreter interpreter,
-                          char * const *argv);
+                          char * const *argv)
+  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE
+  _GL_ATTRIBUTE_RETURNS_NONNULL;
 
 #ifdef __cplusplus
 }
index 5f804b3..bf362db 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2021 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2023 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
 # include "tempname.h"
 #endif
 
-#include <sys/types.h>
-#include <assert.h>
-#include <stdbool.h>
-
 #include <errno.h>
 
 #include <stdio.h>
-#ifndef P_tmpdir
-# define P_tmpdir "/tmp"
-#endif
 #ifndef TMP_MAX
 # define TMP_MAX 238328
 #endif
 # error report this to bug-gnulib@gnu.org
 #endif
 
-#include <stddef.h>
 #include <stdlib.h>
 #include <string.h>
 
 #include <fcntl.h>
-#include <stdalign.h>
 #include <stdint.h>
 #include <sys/random.h>
 #include <sys/stat.h>
 #include <time.h>
 
 #if _LIBC
-# define struct_stat64 struct stat64
-# define __secure_getenv __libc_secure_getenv
+# define struct_stat64 struct __stat64_t64
 #else
 # define struct_stat64 struct stat
 # define __gen_tempname gen_tempname
 # define __mkdir mkdir
 # define __open open
-# define __lstat64(file, buf) lstat (file, buf)
-# define __stat64(file, buf) stat (file, buf)
+# define __lstat64_time64(file, buf) lstat (file, buf)
 # define __getrandom getrandom
 # define __clock_gettime64 clock_gettime
 # define __timespec64 timespec
@@ -77,94 +66,56 @@ typedef uint_fast64_t random_value;
 #define BASE_62_DIGITS 10 /* 62**10 < UINT_FAST64_MAX */
 #define BASE_62_POWER (62LL * 62 * 62 * 62 * 62 * 62 * 62 * 62 * 62 * 62)
 
+/* Return the result of mixing the entropy from R and S.
+   Assume that R and S are not particularly random,
+   and that the result should look randomish to an untrained eye.  */
+
 static random_value
-random_bits (random_value var, bool use_getrandom)
+mix_random_values (random_value r, random_value s)
 {
-  random_value r;
-  /* Without GRND_NONBLOCK it can be blocked for minutes on some systems.  */
-  if (use_getrandom && __getrandom (&r, sizeof r, GRND_NONBLOCK) == sizeof r)
-    return r;
-#if _LIBC || (defined CLOCK_MONOTONIC && HAVE_CLOCK_GETTIME)
-  /* Add entropy if getrandom did not work.  */
-  struct __timespec64 tv;
-  __clock_gettime64 (CLOCK_MONOTONIC, &tv);
-  var ^= tv.tv_nsec;
-#endif
-  return 2862933555777941757 * var + 3037000493;
+  /* As this code is used only when high-quality randomness is neither
+     available nor necessary, there is no need for fancier polynomials
+     such as those in the Linux kernel's 'random' driver.  */
+  return (2862933555777941757 * r + 3037000493) ^ s;
 }
 
-#if _LIBC
-/* Return nonzero if DIR is an existent directory.  */
-static int
-direxists (const char *dir)
-{
-  struct_stat64 buf;
-  return __stat64 (dir, &buf) == 0 && S_ISDIR (buf.st_mode);
-}
+/* Set *R to a random value.
+   Return true if *R is set to high-quality value taken from getrandom.
+   Otherwise return false, falling back to a low-quality *R that might
+   depend on S.
 
-/* Path search algorithm, for tmpnam, tmpfile, etc.  If DIR is
-   non-null and exists, uses it; otherwise uses the first of $TMPDIR,
-   P_tmpdir, /tmp that exists.  Copies into TMPL a template suitable
-   for use with mk[s]temp.  Will fail (-1) if DIR is non-null and
-   doesn't exist, none of the searched dirs exists, or there's not
-   enough space in TMPL. */
-int
-__path_search (char *tmpl, size_t tmpl_len, const char *dir, const char *pfx,
-               int try_tmpdir)
+   This function returns false only when getrandom fails.
+   On GNU systems this should happen only early in the boot process,
+   when the fallback should be good enough for programs using tempname
+   because any attacker likely has root privileges already.  */
+
+static bool
+random_bits (random_value *r, random_value s)
 {
-  const char *d;
-  size_t dlen, plen;
+  /* Without GRND_NONBLOCK it can be blocked for minutes on some systems.  */
+  if (__getrandom (r, sizeof *r, GRND_NONBLOCK) == sizeof *r)
+    return true;
 
-  if (!pfx || !pfx[0])
-    {
-      pfx = "file";
-      plen = 4;
-    }
-  else
-    {
-      plen = strlen (pfx);
-      if (plen > 5)
-        plen = 5;
-    }
+  /* If getrandom did not work, use ersatz entropy based on low-order
+     clock bits.  On GNU systems getrandom should fail only
+     early in booting, when ersatz should be good enough.
+     Do not use ASLR-based entropy, as that would leak ASLR info into
+     the resulting file name which is typically public.
 
-  if (try_tmpdir)
-    {
-      d = __secure_getenv ("TMPDIR");
-      if (d != NULL && direxists (d))
-        dir = d;
-      else if (dir != NULL && direxists (dir))
-        /* nothing */ ;
-      else
-        dir = NULL;
-    }
-  if (dir == NULL)
-    {
-      if (direxists (P_tmpdir))
-        dir = P_tmpdir;
-      else if (strcmp (P_tmpdir, "/tmp") != 0 && direxists ("/tmp"))
-        dir = "/tmp";
-      else
-        {
-          __set_errno (ENOENT);
-          return -1;
-        }
-    }
+     Of course we are in a state of sin here.  */
 
-  dlen = strlen (dir);
-  while (dlen > 1 && dir[dlen - 1] == '/')
-    dlen--;                     /* remove trailing slashes */
+  random_value v = s;
 
-  /* check we have room for "${dir}/${pfx}XXXXXX\0" */
-  if (tmpl_len < dlen + 1 + plen + 6 + 1)
-    {
-      __set_errno (EINVAL);
-      return -1;
-    }
+#if _LIBC || (defined CLOCK_REALTIME && HAVE_CLOCK_GETTIME)
+  struct __timespec64 tv;
+  __clock_gettime64 (CLOCK_REALTIME, &tv);
+  v = mix_random_values (v, tv.tv_sec);
+  v = mix_random_values (v, tv.tv_nsec);
+#endif
 
-  sprintf (tmpl, "%.*s/%.*sXXXXXX", (int) dlen, dir, (int) plen, pfx);
-  return 0;
+  *r = mix_random_values (v, clock ());
+  return false;
 }
-#endif /* _LIBC */
 
 #if _LIBC
 static int try_tempname_len (char *, int, void *, int (*) (char *, void *),
@@ -181,17 +132,17 @@ try_file (char *tmpl, void *flags)
 }
 
 static int
-try_dir (char *tmpl, void *flags _GL_UNUSED)
+try_dir (char *tmpl, _GL_UNUSED void *flags)
 {
   return __mkdir (tmpl, S_IRUSR | S_IWUSR | S_IXUSR);
 }
 
 static int
-try_nocreate (char *tmpl, void *flags _GL_UNUSED)
+try_nocreate (char *tmpl, _GL_UNUSED void *flags)
 {
   struct_stat64 st;
 
-  if (__lstat64 (tmpl, &st) == 0 || errno == EOVERFLOW)
+  if (__lstat64_time64 (tmpl, &st) == 0 || errno == EOVERFLOW)
     __set_errno (EEXIST);
   return errno == ENOENT ? 0 : -1;
 }
@@ -213,7 +164,7 @@ static const char letters[] =
                         and return a read-write fd.  The file is mode 0600.
    __GT_DIR:            create a directory, which will be mode 0700.
 
-   We use a clever algorithm to get hard-to-predict names. */
+   */
 #ifdef _LIBC
 static
 #endif
@@ -261,25 +212,17 @@ try_tempname_len (char *tmpl, int suffixlen, void *args,
   unsigned int attempts = ATTEMPTS_MIN;
 #endif
 
-  /* A random variable.  The initial value is used only the for fallback path
-     on 'random_bits' on 'getrandom' failure.  Its initial value tries to use
-     some entropy from the ASLR and ignore possible bits from the stack
-     alignment.  */
-  random_value v = ((uintptr_t) &v) / alignof (max_align_t);
+  /* A random variable.  */
+  random_value v = 0;
 
-  /* How many random base-62 digits can currently be extracted from V.  */
+  /* A value derived from the random variable, and how many random
+     base-62 digits can currently be extracted from VDIGBUF.  */
+  random_value vdigbuf;
   int vdigits = 0;
 
-  /* Whether to consume entropy when acquiring random bits.  On the
-     first try it's worth the entropy cost with __GT_NOCREATE, which
-     is inherently insecure and can use the entropy to make it a bit
-     less secure.  On the (rare) second and later attempts it might
-     help against DoS attacks.  */
-  bool use_getrandom = tryfunc == try_nocreate;
-
-  /* Least unfair value for V.  If V is less than this, V can generate
-     BASE_62_DIGITS digits fairly.  Otherwise it might be biased.  */
-  random_value const unfair_min
+  /* Least biased value for V.  If V is less than this, V can generate
+     BASE_62_DIGITS unbiased digits.  Otherwise the digits are biased.  */
+  random_value const biased_min
     = RANDOM_VALUE_MAX - RANDOM_VALUE_MAX % BASE_62_POWER;
 
   len = strlen (tmpl);
@@ -299,18 +242,16 @@ try_tempname_len (char *tmpl, int suffixlen, void *args,
         {
           if (vdigits == 0)
             {
-              do
-                {
-                  v = random_bits (v, use_getrandom);
-                  use_getrandom = true;
-                }
-              while (unfair_min <= v);
+              /* Worry about bias only if the bits are high quality.  */
+              while (random_bits (&v, v) && biased_min <= v)
+                continue;
 
+              vdigbuf = v;
               vdigits = BASE_62_DIGITS;
             }
 
-          XXXXXX[i] = letters[v % 62];
-          v /= 62;
+          XXXXXX[i] = letters[vdigbuf % 62];
+          vdigbuf /= 62;
           vdigits--;
         }
 
index 795bb49..36a5138 100644 (file)
@@ -1,6 +1,6 @@
 /* Create a temporary file or directory.
 
-   Copyright (C) 2006, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
@@ -48,7 +48,7 @@ extern "C" {
                         and return a read-write fd.  The file is mode 0600.
    GT_DIR:              create a directory, which will be mode 0700.
 
-   We use a clever algorithm to get hard-to-predict names. */
+   */
 extern int gen_tempname (char *tmpl, int suffixlen, int flags, int kind);
 /* Similar, except X_SUFFIX_LEN gives the number of Xs.  */
 extern int gen_tempname_len (char *tmpl, int suffixlen, int flags, int kind,
index 6bbd0a7..51423c9 100644 (file)
@@ -1,10 +1,10 @@
 /* Time internal interface
 
-   Copyright 2015-2021 Free Software Foundation, Inc.
+   Copyright 2015-2023 Free Software Foundation, Inc.
 
    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 3 of the
+   published by the Free Software Foundation, either version 3 of the
    License, or (at your option) any later version.
 
    This file is distributed in the hope that it will be useful,
index a73fe59..06428ad 100644 (file)
@@ -1,6 +1,6 @@
 /* A more-standard <time.h>.
 
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 #endif
 @PRAGMA_COLUMNS@
 
+/* This file uses #include_next of a system file that defines time_t.
+   For the 'year2038' module to work right, <config.h> needs to have been
+   included before.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 /* Don't get in the way of glibc when it includes time.h merely to
    declare a few standard symbols, rather than to declare all the
    symbols.  (However, skip this for MinGW as it treats __need_time_t
 
 # @INCLUDE_NEXT@ @NEXT_TIME_H@
 
+/* This file uses _GL_ATTRIBUTE_DEPRECATED, GNULIB_POSIXCHECK,
+   HAVE_RAW_DECL_*.  */
+# if !_GL_CONFIG_H_INCLUDED
+#  error "Please include config.h first."
+# endif
+
 /* NetBSD 5.0 mis-defines NULL.  */
 # include <stddef.h>
 
@@ -112,12 +125,51 @@ struct __time_t_must_be_integral {
 /* Set *TS to the current time, and return BASE.
    Upon failure, return 0.  */
 # if @GNULIB_TIMESPEC_GET@
-#  if ! @HAVE_TIMESPEC_GET@
+#  if @REPLACE_TIMESPEC_GET@
+#   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#    undef timespec_get
+#    define timespec_get rpl_timespec_get
+#   endif
+_GL_FUNCDECL_RPL (timespec_get, int, (struct timespec *ts, int base)
+                                     _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (timespec_get, int, (struct timespec *ts, int base));
+#  else
+#   if !@HAVE_TIMESPEC_GET@
 _GL_FUNCDECL_SYS (timespec_get, int, (struct timespec *ts, int base)
                                      _GL_ARG_NONNULL ((1)));
-#  endif
+#   endif
 _GL_CXXALIAS_SYS (timespec_get, int, (struct timespec *ts, int base));
+#  endif
+#  if __GLIBC__ >= 2
 _GL_CXXALIASWARN (timespec_get);
+#  endif
+# endif
+
+/* Set *TS to the current time resolution, and return BASE.
+   Upon failure, return 0.  */
+# if @GNULIB_TIMESPEC_GETRES@
+#  if ! @HAVE_TIMESPEC_GETRES@
+_GL_FUNCDECL_SYS (timespec_getres, int, (struct timespec *ts, int base)
+                                        _GL_ARG_NONNULL ((1)));
+#  endif
+_GL_CXXALIAS_SYS (timespec_getres, int, (struct timespec *ts, int base));
+_GL_CXXALIASWARN (timespec_getres);
+# endif
+
+/* Return the number of seconds that have elapsed since the Epoch.  */
+# if @GNULIB_TIME@
+#  if @REPLACE_TIME@
+#   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#    define time rpl_time
+#   endif
+_GL_FUNCDECL_RPL (time, time_t, (time_t *__tp));
+_GL_CXXALIAS_RPL (time, time_t, (time_t *__tp));
+#  else
+_GL_CXXALIAS_SYS (time, time_t, (time_t *__tp));
+#  endif
+#  if __GLIBC__ >= 2
+_GL_CXXALIASWARN (time);
+#  endif
 # endif
 
 /* Sleep for at least RQTP seconds unless interrupted,  If interrupted,
@@ -304,6 +356,9 @@ _GL_CXXALIASWARN (strptime);
 #   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #    define ctime rpl_ctime
 #   endif
+#   ifndef __cplusplus
+_GL_ATTRIBUTE_DEPRECATED
+#   endif
 _GL_FUNCDECL_RPL (ctime, char *, (time_t const *__tp)
                                  _GL_ARG_NONNULL ((1)));
 _GL_CXXALIAS_RPL (ctime, char *, (time_t const *__tp));
@@ -411,7 +466,9 @@ _GL_FUNCDECL_SYS (timegm, time_t, (struct tm *__tm) _GL_ARG_NONNULL ((1)));
 #   endif
 _GL_CXXALIAS_SYS (timegm, time_t, (struct tm *__tm));
 #  endif
+#  if __GLIBC__ >= 2
 _GL_CXXALIASWARN (timegm);
+#  endif
 # endif
 
 /* Encourage applications to avoid unsafe functions that can overrun
@@ -424,8 +481,10 @@ _GL_WARN_ON_USE (asctime, "asctime can overrun buffers in some cases - "
 # 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
@@ -434,8 +493,10 @@ _GL_WARN_ON_USE (ctime, "ctime can overrun buffers in some cases - "
 # 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");
+#  endif
 # endif
 
 #endif
index 88d3c1c..97be4fd 100644 (file)
@@ -1,6 +1,6 @@
 /* Reentrant time functions like localtime_r.
 
-   Copyright (C) 2003, 2006-2007, 2010-2021 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2006-2007, 2010-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index e772244..da0d57b 100644 (file)
@@ -1,10 +1,10 @@
 /* Time zone functions such as tzalloc and localtime_rz
 
-   Copyright 2015-2021 Free Software Foundation, Inc.
+   Copyright 2015-2023 Free Software Foundation, Inc.
 
    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 3 of the
+   published by the Free Software Foundation, either version 3 of the
    License, or (at your option) any later version.
 
    This file is distributed in the hope that it will be useful,
@@ -27,7 +27,6 @@
 #include <time.h>
 
 #include <errno.h>
-#include <stdbool.h>
 #include <stddef.h>
 #include <stdlib.h>
 #include <string.h>
index 7e723e1..b47025a 100644 (file)
@@ -1,6 +1,6 @@
 /* Convert UTC calendar time to simple time.  Like mktime but assumes UTC.
 
-   Copyright (C) 1994-2021 Free Software Foundation, Inc.
+   Copyright (C) 1994-2023 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
index 957b5fb..5f7ffbd 100644 (file)
@@ -1,10 +1,10 @@
 /* Inline functions for <timespec.h>.
 
-   Copyright (C) 2012-2021 Free Software Foundation, Inc.
+   Copyright (C) 2012-2023 Free Software Foundation, Inc.
 
    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 3 of the
+   published by the Free Software Foundation, either version 3 of the
    License, or (at your option) any later version.
 
    This file is distributed in the hope that it will be useful,
index 94a5db7..e94da75 100644 (file)
@@ -1,11 +1,11 @@
 /* timespec -- System time interface
 
-   Copyright (C) 2000, 2002, 2004-2005, 2007, 2009-2021 Free Software
+   Copyright (C) 2000, 2002, 2004-2005, 2007, 2009-2023 Free Software
    Foundation, Inc.
 
    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 3 of the
+   published by the Free Software Foundation, either version 3 of the
    License, or (at your option) any later version.
 
    This file is distributed in the hope that it will be useful,
 #if ! defined TIMESPEC_H
 #define TIMESPEC_H
 
-#include <time.h>
-
-#ifndef _GL_INLINE_HEADER_BEGIN
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _GL_ATTRIBUTE_CONST,
+   _GL_ATTRIBUTE_PURE, _GL_CMP.  */
+#if !_GL_CONFIG_H_INCLUDED
  #error "Please include config.h first."
 #endif
+
+#include <time.h>
+
 _GL_INLINE_HEADER_BEGIN
 #ifndef _GL_TIMESPEC_INLINE
 # define _GL_TIMESPEC_INLINE _GL_INLINE
@@ -52,10 +55,7 @@ enum { LOG10_TIMESPEC_RESOLUTION = LOG10_TIMESPEC_HZ };
 _GL_TIMESPEC_INLINE struct timespec
 make_timespec (time_t s, long int ns)
 {
-  struct timespec r;
-  r.tv_sec = s;
-  r.tv_nsec = ns;
-  return r;
+  return (struct timespec) { .tv_sec = s, .tv_nsec = ns };
 }
 
 /* Return negative, zero, positive if A < B, A == B, A > B, respectively.  */
@@ -88,6 +88,7 @@ timespectod (struct timespec a)
   return a.tv_sec + a.tv_nsec / 1e9;
 }
 
+long int gettime_res (void);
 struct timespec current_timespec (void);
 void gettime (struct timespec *) _GL_ARG_NONNULL ((1));
 int settime (struct timespec const *) _GL_ARG_NONNULL ((1));
index 30e7d5b..d33dd13 100644 (file)
@@ -1,9 +1,9 @@
 /* Removes leading and/or trailing whitespaces
-   Copyright (C) 2006-2021 Free Software Foundation, Inc.
+   Copyright (C) 2006-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
 #include "mbiter.h"
 #include "xalloc.h"
 
-/* Use this to suppress gcc's "...may be used before initialized" warnings. */
-#if defined GCC_LINT || defined lint
-# define IF_LINT(Code) Code
-#else
-# define IF_LINT(Code) /* empty */
-#endif
-
 char *
 trim2 (const char *s, int how)
 {
@@ -65,42 +58,21 @@ trim2 (const char *s, int how)
       /* Trim trailing whitespaces. */
       if (how != TRIM_LEADING)
         {
-          unsigned int state = 0;
-          char *r IF_LINT (= NULL); /* used only while state = 2 */
+          char *start_of_spaces = NULL;
 
           mbi_init (i, d, strlen (d));
 
           for (; mbi_avail (i); mbi_advance (i))
-            {
-              if (state == 0 && mb_isspace (mbi_cur (i)))
-                continue;
-
-              if (state == 0 && !mb_isspace (mbi_cur (i)))
-                {
-                  state = 1;
-                  continue;
-                }
-
-              if (state == 1 && !mb_isspace (mbi_cur (i)))
-                continue;
-
-              if (state == 1 && mb_isspace (mbi_cur (i)))
-                {
-                  state = 2;
-                  r = (char *) mbi_cur_ptr (i);
-                }
-              else if (state == 2 && mb_isspace (mbi_cur (i)))
-                {
-                  /* empty */
-                }
-              else
-                {
-                  state = 1;
-                }
-            }
-
-          if (state == 2)
-            *r = '\0';
+            if (mb_isspace (mbi_cur (i)))
+              {
+                if (start_of_spaces == NULL)
+                  start_of_spaces = (char *) mbi_cur_ptr (i);
+              }
+            else
+              start_of_spaces = NULL;
+
+          if (start_of_spaces != NULL)
+            *start_of_spaces = '\0';
         }
     }
   else
index dc886e5..a8040ef 100644 (file)
@@ -1,9 +1,9 @@
 /* Removes leading and/or trailing whitespaces
-   Copyright (C) 2006, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
 
 /* Written by Davide Angelocola <davide.angelocola@gmail.com> */
 
+/* This file uses _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_RETURNS_NONNULL.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
+#include <stdlib.h>
+
 /* Trim mode. */
 #define TRIM_TRAILING 0
 #define TRIM_LEADING 1
@@ -30,4 +37,6 @@
 /* Removes leading whitespaces. */
 #define trim_leading(s) trim2(s, TRIM_LEADING)
 
-char *trim2 (const char *, int);
+char *trim2 (const char *, int)
+  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE
+  _GL_ATTRIBUTE_RETURNS_NONNULL;
index 7fd4936..88fc047 100644 (file)
@@ -1,10 +1,10 @@
 /* Provide tzset for systems that don't have it or for which it's broken.
 
-   Copyright (C) 2001-2003, 2005-2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2001-2003, 2005-2007, 2009-2023 Free Software Foundation, Inc.
 
    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 3 of the
+   published by the Free Software Foundation, either version 3 of the
    License, or (at your option) any later version.
 
    This file is distributed in the hope that it will be useful,
index 46537eb..682eba5 100644 (file)
@@ -1,6 +1,6 @@
 /* Convert 'unsigned int' integer to printable string.
 
-   Copyright (C) 2006-2021 Free Software Foundation, Inc.
+   Copyright (C) 2006-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index f8a7abc..cd81e46 100644 (file)
@@ -1,6 +1,6 @@
 /* Convert 'uintmax_t' integer to printable string.
 
-   Copyright (C) 2004-2021 Free Software Foundation, Inc.
+   Copyright (C) 2004-2023 Free Software Foundation, Inc.
 
    This file is free 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/bitmap.h b/lib/unictype/bitmap.h
new file mode 100644 (file)
index 0000000..9da85c1
--- /dev/null
@@ -0,0 +1,48 @@
+/* Three-level bitmap lookup.
+   Copyright (C) 2000-2002, 2005-2007, 2009-2023 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
+   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/>.  */
+
+static inline int bitmap_lookup (const void *table, ucs4_t uc);
+
+/* These values are currently hardcoded into gen-uni-tables.c, function
+   output_predicate().  */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+
+static inline int
+bitmap_lookup (const void *table, ucs4_t uc)
+{
+  unsigned int index1 = uc >> header_0;
+  if (index1 < ((const int *) table)[0])
+    {
+      int lookup1 = ((const int *) table)[1 + index1];
+      if (lookup1 >= 0)
+        {
+          unsigned int index2 = (uc >> header_2) & header_3;
+          int lookup2 = ((const short *) table)[lookup1 + index2];
+          if (lookup2 >= 0)
+            {
+              unsigned int index3 = (uc >> 5) & header_4;
+              unsigned int lookup3 = ((const unsigned int *) table)[lookup2 + index3];
+
+              return (lookup3 >> (uc & 0x1f)) & 1;
+            }
+        }
+    }
+  return 0;
+}
index 0763456..be7a825 100644 (file)
@@ -1,6 +1,6 @@
 /* Inline functions for <unistd.h>.
 
-   Copyright (C) 2012-2021 Free Software Foundation, Inc.
+   Copyright (C) 2012-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 73c882f..2ae040a 100644 (file)
@@ -1,5 +1,5 @@
 /* Substitute for and wrapper around <unistd.h>.
-   Copyright (C) 2003-2021 Free Software Foundation, Inc.
+   Copyright (C) 2003-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 # undef _GL_INCLUDING_UNISTD_H
 #endif
 
+/* Avoid lseek bugs in FreeBSD, macOS <https://bugs.gnu.org/61386>.
+   This bug is fixed after FreeBSD 13; see <https://bugs.freebsd.org/256205>.
+   Use macOS "9999" to stand for a future fixed macOS version.  */
+#if defined __FreeBSD__ && __FreeBSD__ < 14
+# undef SEEK_DATA
+# undef SEEK_HOLE
+#elif defined __APPLE__ && defined __MACH__ && defined SEEK_DATA
+# ifdef __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+#  include <AvailabilityMacros.h>
+# endif
+# if (!defined MAC_OS_X_VERSION_MIN_REQUIRED \
+      || MAC_OS_X_VERSION_MIN_REQUIRED < 99990000)
+#  include <sys/fcntl.h> /* It also defines the two macros.  */
+#  undef SEEK_DATA
+#  undef SEEK_HOLE
+# endif
+#endif
+
 /* Get all possible declarations of gethostname().  */
 #if @GNULIB_GETHOSTNAME@ && @UNISTD_H_HAVE_WINSOCK2_H@ \
   && !defined _GL_INCLUDING_WINSOCK2_H
 #if !defined _@GUARD_PREFIX@_UNISTD_H && !defined _GL_INCLUDING_WINSOCK2_H
 #define _@GUARD_PREFIX@_UNISTD_H
 
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, GNULIB_POSIXCHECK,
+   HAVE_RAW_DECL_*.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 /* NetBSD 5.0 mis-defines NULL.  Also get size_t.  */
 /* But avoid namespace pollution on glibc systems.  */
 #ifndef __GLIBC__
 # include <getopt-pfx-core.h>
 #endif
 
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
 _GL_INLINE_HEADER_BEGIN
 #ifndef _GL_UNISTD_INLINE
 # define _GL_UNISTD_INLINE _GL_INLINE
@@ -415,16 +436,30 @@ _GL_CXXALIASWARN (close);
 
 
 #if @GNULIB_COPY_FILE_RANGE@
-# if !@HAVE_COPY_FILE_RANGE@
+# if @REPLACE_COPY_FILE_RANGE@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef copy_file_range
+#   define copy_file_range rpl_copy_file_range
+#  endif
+_GL_FUNCDECL_RPL (copy_file_range, ssize_t, (int ifd, off_t *ipos,
+                                             int ofd, off_t *opos,
+                                             size_t len, unsigned flags));
+_GL_CXXALIAS_RPL (copy_file_range, ssize_t, (int ifd, off_t *ipos,
+                                             int ofd, off_t *opos,
+                                             size_t len, unsigned flags));
+# else
+#  if !@HAVE_COPY_FILE_RANGE@
 _GL_FUNCDECL_SYS (copy_file_range, ssize_t, (int ifd, off_t *ipos,
                                              int ofd, off_t *opos,
                                              size_t len, unsigned flags));
+#  endif
 _GL_CXXALIAS_SYS (copy_file_range, ssize_t, (int ifd, off_t *ipos,
                                              int ofd, off_t *opos,
                                              size_t len, unsigned flags));
 # endif
 _GL_CXXALIASWARN (copy_file_range);
 #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 - "
@@ -527,17 +562,22 @@ _GL_CXXALIASWARN (dup2);
    Return newfd if successful, otherwise -1 and errno set.
    See the Linux man page at
    <https://www.kernel.org/doc/man-pages/online/pages/man2/dup3.2.html>.  */
-# if @HAVE_DUP3@
+# if @REPLACE_DUP3@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef dup3
 #   define dup3 rpl_dup3
 #  endif
 _GL_FUNCDECL_RPL (dup3, int, (int oldfd, int newfd, int flags));
 _GL_CXXALIAS_RPL (dup3, int, (int oldfd, int newfd, int flags));
 # else
+#  if !@HAVE_DUP3@
 _GL_FUNCDECL_SYS (dup3, int, (int oldfd, int newfd, int flags));
+#  endif
 _GL_CXXALIAS_SYS (dup3, int, (int oldfd, int newfd, int flags));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (dup3);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef dup3
 # if HAVE_RAW_DECL_DUP3
@@ -856,7 +896,9 @@ _GL_FUNCDECL_SYS (execvpe, int,
 _GL_CXXALIAS_SYS (execvpe, int,
                   (const char *program, char * const *argv, char * const *env));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (execvpe);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef execvpe
 # if HAVE_RAW_DECL_EXECVPE
@@ -911,7 +953,9 @@ _GL_FUNCDECL_SYS (faccessat, int,
 _GL_CXXALIAS_SYS (faccessat, int,
                   (int fd, char const *file, int mode, int flag));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (faccessat);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef faccessat
 # if HAVE_RAW_DECL_FACCESSAT
@@ -988,11 +1032,22 @@ _GL_WARN_ON_USE (fchownat, "fchownat is not portable - "
    Return 0 if successful, otherwise -1 and errno set.
    See POSIX:2008 specification
    <https://pubs.opengroup.org/onlinepubs/9699919799/functions/fdatasync.html>.  */
-# if !@HAVE_FDATASYNC@ || !@HAVE_DECL_FDATASYNC@
+# if @REPLACE_FDATASYNC@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef fdatasync
+#   define fdatasync rpl_fdatasync
+#  endif
+_GL_FUNCDECL_RPL (fdatasync, int, (int fd));
+_GL_CXXALIAS_RPL (fdatasync, int, (int fd));
+# else
+#  if !@HAVE_FDATASYNC@|| !@HAVE_DECL_FDATASYNC@
 _GL_FUNCDECL_SYS (fdatasync, int, (int fd));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (fdatasync, int, (int fd));
+# endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (fdatasync);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef fdatasync
 # if HAVE_RAW_DECL_FDATASYNC
@@ -1039,7 +1094,9 @@ _GL_FUNCDECL_SYS (ftruncate, int, (int fd, off_t length));
 #  endif
 _GL_CXXALIAS_SYS (ftruncate, int, (int fd, off_t length));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (ftruncate);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef ftruncate
 # if HAVE_RAW_DECL_FTRUNCATE
@@ -1129,7 +1186,9 @@ _GL_FUNCDECL_SYS (getdomainname, int, (char *name, size_t len)
 #  endif
 _GL_CXXALIAS_SYS (getdomainname, int, (char *name, size_t len));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (getdomainname);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef getdomainname
 # if HAVE_RAW_DECL_GETDOMAINNAME
@@ -1169,11 +1228,22 @@ _GL_WARN_ON_USE (getdtablesize, "getdtablesize is unportable - "
 
 #if @GNULIB_GETENTROPY@
 /* Fill a buffer with random bytes.  */
-# if !@HAVE_GETENTROPY@
+# if @REPLACE_GETENTROPY@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef getentropy
+#   define getentropy rpl_getentropy
+#  endif
+_GL_FUNCDECL_RPL (getentropy, int, (void *buffer, size_t length));
+_GL_CXXALIAS_RPL (getentropy, int, (void *buffer, size_t length));
+# else
+#  if !@HAVE_GETENTROPY@
 _GL_FUNCDECL_SYS (getentropy, int, (void *buffer, size_t length));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (getentropy, int, (void *buffer, size_t length));
+# endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (getentropy);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef getentropy
 # if HAVE_RAW_DECL_GETENTROPY
@@ -1307,7 +1377,9 @@ _GL_FUNCDECL_SYS (getlogin_r, int, (char *name, size_t size)
                                                      int size.  */
 _GL_CXXALIAS_SYS_CAST (getlogin_r, int, (char *name, size_t size));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (getlogin_r);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef getlogin_r
 # if HAVE_RAW_DECL_GETLOGIN_R
@@ -1409,7 +1481,8 @@ _GL_WARN_ON_USE (getpagesize, "getpagesize is unportable - "
      Read a password from /dev/tty or stdin.
    Function getpass() from module 'getpass-gnu':
      Read a password of arbitrary length from /dev/tty or stdin.  */
-# if @REPLACE_GETPASS@
+# if (@GNULIB_GETPASS@ && @REPLACE_GETPASS@) \
+     || (@GNULIB_GETPASS_GNU@ && @REPLACE_GETPASS_FOR_GETPASS_GNU@)
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   undef getpass
 #   define getpass rpl_getpass
@@ -1644,7 +1717,9 @@ _GL_CXXALIAS_SYS (linkat, int,
                   (int fd1, const char *path1, int fd2, const char *path2,
                    int flag));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (linkat);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef linkat
 # if HAVE_RAW_DECL_LINKAT
@@ -1725,8 +1800,9 @@ _GL_WARN_ON_USE (pipe, "pipe is unportable - "
    Return 0 upon success, or -1 with errno set upon failure.
    See also the Linux man page at
    <https://www.kernel.org/doc/man-pages/online/pages/man2/pipe2.2.html>.  */
-# if @HAVE_PIPE2@
+# if @REPLACE_PIPE2@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef pipe2
 #   define pipe2 rpl_pipe2
 #  endif
 _GL_FUNCDECL_RPL (pipe2, int, (int fd[2], int flags) _GL_ARG_NONNULL ((1)));
@@ -1735,7 +1811,9 @@ _GL_CXXALIAS_RPL (pipe2, int, (int fd[2], int flags));
 _GL_FUNCDECL_SYS (pipe2, int, (int fd[2], int flags) _GL_ARG_NONNULL ((1)));
 _GL_CXXALIAS_SYS (pipe2, int, (int fd[2], int flags));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (pipe2);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef pipe2
 # if HAVE_RAW_DECL_PIPE2
@@ -1770,7 +1848,9 @@ _GL_FUNCDECL_SYS (pread, ssize_t,
 _GL_CXXALIAS_SYS (pread, ssize_t,
                   (int fd, void *buf, size_t bufsize, off_t offset));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (pread);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef pread
 # if HAVE_RAW_DECL_PREAD
@@ -1805,7 +1885,9 @@ _GL_FUNCDECL_SYS (pwrite, ssize_t,
 _GL_CXXALIAS_SYS (pwrite, ssize_t,
                   (int fd, const void *buf, size_t bufsize, off_t offset));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (pwrite);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef pwrite
 # if HAVE_RAW_DECL_PWRITE
@@ -1919,7 +2001,9 @@ _GL_CXXALIAS_SYS (readlinkat, ssize_t,
                   (int fd, char const *restrict file,
                    char *restrict buf, size_t len));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (readlinkat);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef readlinkat
 # if HAVE_RAW_DECL_READLINKAT
@@ -1979,15 +2063,27 @@ _GL_CXXALIASWARN (rmdir);
 
    Platforms with no ability to set the hostname return -1 and set
    errno = ENOSYS.  */
-# if !@HAVE_SETHOSTNAME@ || !@HAVE_DECL_SETHOSTNAME@
+# if @REPLACE_SETHOSTNAME@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef sethostname
+#   define sethostname rpl_sethostname
+#  endif
+_GL_FUNCDECL_RPL (sethostname, int, (const char *name, size_t len)
+                                    _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (sethostname, int, (const char *name, size_t len));
+# else
+#  if !@HAVE_SETHOSTNAME@ || !@HAVE_DECL_SETHOSTNAME@
 _GL_FUNCDECL_SYS (sethostname, int, (const char *name, size_t len)
                                     _GL_ARG_NONNULL ((1)));
-# endif
+#  endif
 /* Need to cast, because on Solaris 11 2011-10, Mac OS X 10.5, IRIX 6.5
    and FreeBSD 6.4 the second parameter is int.  On Solaris 11
    2011-10, the first parameter is not const.  */
 _GL_CXXALIAS_SYS_CAST (sethostname, int, (const char *name, size_t len));
+# endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (sethostname);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef sethostname
 # if HAVE_RAW_DECL_SETHOSTNAME
@@ -2040,7 +2136,7 @@ _GL_CXXALIAS_MDA_CAST (swab, void, (char *from, char *to, int n));
 # else
 #  if defined __hpux /* HP-UX */
 _GL_CXXALIAS_SYS (swab, void, (const char *from, char *to, int n));
-#  elif defined __sun && !defined _XPG4 /* Solaris */
+#  elif defined __sun && (defined __SunOS_5_10 || defined __XOPEN_OR_POSIX) && !defined _XPG4 /* Solaris */
 _GL_CXXALIAS_SYS (swab, void, (const char *from, char *to, ssize_t n));
 #  else
 _GL_CXXALIAS_SYS (swab, void, (const void *from, void *to, ssize_t n));
@@ -2096,7 +2192,9 @@ _GL_FUNCDECL_SYS (symlinkat, int,
 _GL_CXXALIAS_SYS (symlinkat, int,
                   (char const *contents, int fd, char const *file));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (symlinkat);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef symlinkat
 # if HAVE_RAW_DECL_SYMLINKAT
@@ -2126,7 +2224,9 @@ _GL_FUNCDECL_SYS (truncate, int, (const char *filename, off_t length)
 #  endif
 _GL_CXXALIAS_SYS (truncate, int, (const char *filename, off_t length));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (truncate);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef truncate
 # if HAVE_RAW_DECL_TRUNCATE
@@ -2156,7 +2256,9 @@ _GL_FUNCDECL_SYS (ttyname_r, int,
 _GL_CXXALIAS_SYS (ttyname_r, int,
                   (int fd, char *buf, size_t buflen));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (ttyname_r);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef ttyname_r
 # if HAVE_RAW_DECL_TTYNAME_R
index ed65777..d85ad51 100644 (file)
@@ -1,5 +1,5 @@
 /* Elementary Unicode string functions.
-   Copyright (C) 2001-2002, 2005-2021 Free Software Foundation, Inc.
+   Copyright (C) 2001-2002, 2005-2023 Free Software Foundation, Inc.
 
    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,6 +25,9 @@
 /* Get size_t, ptrdiff_t.  */
 #include <stddef.h>
 
+/* Get free().  */
+#include <stdlib.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -624,11 +627,14 @@ extern int
 /* Duplicate S, returning an identical malloc'd string.  */
 /* Similar to strdup(), wcsdup().  */
 extern uint8_t *
-       u8_strdup (const uint8_t *s);
+       u8_strdup (const uint8_t *s)
+       _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE;
 extern uint16_t *
-       u16_strdup (const uint16_t *s);
+       u16_strdup (const uint16_t *s)
+       _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE;
 extern uint32_t *
-       u32_strdup (const uint32_t *s);
+       u32_strdup (const uint32_t *s)
+       _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE;
 
 /* Find the first occurrence of UC in STR.  */
 /* Similar to strchr(), wcschr().  */
index 77a6cac..d090511 100644 (file)
@@ -1,5 +1,5 @@
 /* Look at first character in UTF-8 string, returning an error code.
-   Copyright (C) 1999-2002, 2006-2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 1999-2002, 2006-2007, 2009-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2001.
 
    This file is free software: you can redistribute it and/or modify
index 2be1cfb..6deeeb7 100644 (file)
@@ -1,5 +1,5 @@
 /* Conversion UCS-4 to UTF-8.
-   Copyright (C) 2002, 2006-2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This file is free software: you can redistribute it and/or modify
index e2577c6..58de19b 100644 (file)
@@ -1,5 +1,5 @@
 /* Store a character in UTF-8 string.
-   Copyright (C) 2002, 2005-2006, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2005-2006, 2009-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This file is free software: you can redistribute it and/or modify
index 82ee0de..d3a4c67 100644 (file)
@@ -1,5 +1,5 @@
 /* Elementary types and macros for the GNU UniString library.
-   Copyright (C) 2002, 2005-2006, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2005-2006, 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 0859254..66829e4 100644 (file)
@@ -1,5 +1,5 @@
 /* Display width functions.
-   Copyright (C) 2001-2002, 2005, 2007, 2009-2021 Free Software Foundation,
+   Copyright (C) 2001-2002, 2005, 2007, 2009-2023 Free Software Foundation,
    Inc.
 
    This file is free software: you can redistribute it and/or modify
index 1853ceb..98f7e92 100644 (file)
@@ -1,5 +1,5 @@
 /* Test for CJK encoding.
-   Copyright (C) 2001-2002, 2005-2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2001-2002, 2005-2007, 2009-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This file is free software: you can redistribute it and/or modify
index 9ba07d3..c9d4d1d 100644 (file)
@@ -1,5 +1,5 @@
 /* Determine display width of Unicode character.
-   Copyright (C) 2001-2002, 2006-2021 Free Software Foundation, Inc.
+   Copyright (C) 2001-2002, 2006-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This file is free software: you can redistribute it and/or modify
 
 #include "cjk.h"
 
-/*
- * Non-spacing attribute table.
- * Consists of:
- * - Non-spacing characters; generated from PropList.txt or
- *   "grep '^[^;]*;[^;]*;[^;]*;[^;]*;NSM;' UnicodeData.txt"
- * - Format control characters; generated from
- *   "grep '^[^;]*;[^;]*;Cf;' UnicodeData.txt"
- * - Zero width characters; generated from
- *   "grep '^[^;]*;ZERO WIDTH ' UnicodeData.txt"
+/* The non-spacing attribute table consists of:
+   * Non-spacing characters; generated from PropList.txt or
+     "grep '^[^;]*;[^;]*;[^;]*;[^;]*;NSM;' UnicodeData.txt"
+   * Format control characters; generated from
+     "grep '^[^;]*;[^;]*;Cf;' UnicodeData.txt"
+   * Zero width characters; generated from
+     "grep '^[^;]*;ZERO WIDTH ' UnicodeData.txt"
+   * Hangul Jamo characters that have conjoining behaviour:
+       - jungseong = syllable-middle vowels
+       - jongseong = syllable-final consonants
+     Rationale:
+     1) These characters act like combining characters. They have no
+     equivalent in legacy character sets. Therefore the EastAsianWidth.txt
+     file does not really matter for them; UAX #11 East Asian Width
+     <https://www.unicode.org/reports/tr11/> makes it clear that it focus
+     is on compatibility with traditional Japanese layout.
+     By contrast, the same glyphs without conjoining behaviour are available
+     in the U+3130..U+318F block, and these characters are mapped to legacy
+     character sets, and traditional Japanese layout matters for them.
+     2) glibc does the same thing, see
+     <https://sourceware.org/bugzilla/show_bug.cgi?id=21750>
+     <https://sourceware.org/bugzilla/show_bug.cgi?id=26120>
  */
-static const unsigned char nonspacing_table_data[38*64] = {
-  /* 0x0000-0x01ff */
-  0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, /* 0x0000-0x003f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0x0040-0x007f */
-  0xff, 0xff, 0xff, 0xff, 0x00, 0x20, 0x00, 0x00, /* 0x0080-0x00bf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00c0-0x00ff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0100-0x013f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0140-0x017f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0180-0x01bf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x01c0-0x01ff */
-  /* 0x0200-0x03ff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0200-0x023f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0240-0x027f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0280-0x02bf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x02c0-0x02ff */
-  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x0300-0x033f */
-  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, /* 0x0340-0x037f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0380-0x03bf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x03c0-0x03ff */
-  /* 0x0400-0x05ff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0400-0x043f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0440-0x047f */
-  0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0480-0x04bf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04c0-0x04ff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0500-0x053f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0540-0x057f */
-  0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xbf, /* 0x0580-0x05bf */
-  0xb6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x05c0-0x05ff */
-  /* 0x0600-0x07ff */
-  0x3f, 0x00, 0xff, 0x17, 0x00, 0x00, 0x00, 0x00, /* 0x0600-0x063f */
-  0x00, 0xf8, 0xff, 0xff, 0x00, 0x00, 0x01, 0x00, /* 0x0640-0x067f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0680-0x06bf */
-  0x00, 0x00, 0xc0, 0xbf, 0x9f, 0x3d, 0x00, 0x00, /* 0x06c0-0x06ff */
-  0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0xff, 0xff, /* 0x0700-0x073f */
-  0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0740-0x077f */
-  0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x01, 0x00, /* 0x0780-0x07bf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, /* 0x07c0-0x07ff */
-  /* 0x0800-0x09ff */
-  0x00, 0x00, 0xc0, 0xfb, 0xef, 0x3e, 0x00, 0x00, /* 0x0800-0x083f */
-  0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, /* 0x0840-0x087f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0880-0x08bf */
-  0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x08c0-0x08ff */
-  0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, /* 0x0900-0x093f */
-  0xfe, 0x21, 0xfe, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0940-0x097f */
-  0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0980-0x09bf */
-  0x1e, 0x20, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x09c0-0x09ff */
-  /* 0x0a00-0x0bff */
-  0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0a00-0x0a3f */
-  0x86, 0x39, 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, /* 0x0a40-0x0a7f */
-  0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0a80-0x0abf */
-  0xbe, 0x21, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0ac0-0x0aff */
-  0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, /* 0x0b00-0x0b3f */
-  0x1e, 0x20, 0x40, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0b40-0x0b7f */
-  0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0b80-0x0bbf */
-  0x01, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0bc0-0x0bff */
-  /* 0x0c00-0x0dff */
-  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, /* 0x0c00-0x0c3f */
-  0xc1, 0x3d, 0x60, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0c40-0x0c7f */
-  0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0c80-0x0cbf */
-  0x00, 0x30, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0cc0-0x0cff */
-  0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0d00-0x0d3f */
-  0x1e, 0x20, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0d40-0x0d7f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0d80-0x0dbf */
-  0x00, 0x04, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0dc0-0x0dff */
-  /* 0x0e00-0x0fff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2, 0x07, /* 0x0e00-0x0e3f */
-  0x80, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0e40-0x0e7f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2, 0x1b, /* 0x0e80-0x0ebf */
-  0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0ec0-0x0eff */
-  0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xa0, 0x02, /* 0x0f00-0x0f3f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7f, /* 0x0f40-0x0f7f */
-  0xdf, 0xe0, 0xff, 0xfe, 0xff, 0xff, 0xff, 0x1f, /* 0x0f80-0x0fbf */
-  0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0fc0-0x0fff */
-  /* 0x1000-0x11ff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xfd, 0x66, /* 0x1000-0x103f */
-  0x00, 0x00, 0x00, 0xc3, 0x01, 0x00, 0x1e, 0x00, /* 0x1040-0x107f */
-  0x64, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, /* 0x1080-0x10bf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10c0-0x10ff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1100-0x113f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1140-0x117f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1180-0x11bf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11c0-0x11ff */
-  /* 0x1200-0x13ff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1200-0x123f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1240-0x127f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1280-0x12bf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x12c0-0x12ff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1300-0x133f */
-  0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, /* 0x1340-0x137f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1380-0x13bf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x13c0-0x13ff */
-  /* 0x1600-0x17ff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1600-0x163f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1640-0x167f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1680-0x16bf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16c0-0x16ff */
-  0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1c, 0x00, /* 0x1700-0x173f */
-  0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, /* 0x1740-0x177f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x3f, /* 0x1780-0x17bf */
-  0x40, 0xfe, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x00, /* 0x17c0-0x17ff */
-  /* 0x1800-0x19ff */
-  0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1800-0x183f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1840-0x187f */
-  0x60, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, /* 0x1880-0x18bf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18c0-0x18ff */
-  0x00, 0x00, 0x00, 0x00, 0x87, 0x01, 0x04, 0x0e, /* 0x1900-0x193f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1940-0x197f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1980-0x19bf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x19c0-0x19ff */
-  /* 0x1a00-0x1bff */
-  0x00, 0x00, 0x80, 0x09, 0x00, 0x00, 0x00, 0x00, /* 0x1a00-0x1a3f */
-  0x00, 0x00, 0x40, 0x7f, 0xe5, 0x1f, 0xf8, 0x9f, /* 0x1a40-0x1a7f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x7f, /* 0x1a80-0x1abf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1ac0-0x1aff */
-  0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x17, /* 0x1b00-0x1b3f */
-  0x04, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, /* 0x1b40-0x1b7f */
-  0x03, 0x00, 0x00, 0x00, 0x3c, 0x3b, 0x00, 0x00, /* 0x1b80-0x1bbf */
-  0x00, 0x00, 0x00, 0x00, 0x40, 0xa3, 0x03, 0x00, /* 0x1bc0-0x1bff */
-  /* 0x1c00-0x1dff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xcf, 0x00, /* 0x1c00-0x1c3f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1c40-0x1c7f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1c80-0x1cbf */
-  0x00, 0x00, 0xf7, 0xff, 0xfd, 0x21, 0x10, 0x03, /* 0x1cc0-0x1cff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d00-0x1d3f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d40-0x1d7f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d80-0x1dbf */
-  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xf8, /* 0x1dc0-0x1dff */
-  /* 0x2000-0x21ff */
-  0x00, 0xf8, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, /* 0x2000-0x203f */
-  0x00, 0x00, 0x00, 0x00, 0xdf, 0xff, 0x00, 0x00, /* 0x2040-0x207f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2080-0x20bf */
-  0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, /* 0x20c0-0x20ff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2100-0x213f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2140-0x217f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2180-0x21bf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x21c0-0x21ff */
-  /* 0x2c00-0x2dff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2c00-0x2c3f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2c40-0x2c7f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2c80-0x2cbf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, /* 0x2cc0-0x2cff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2d00-0x2d3f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0x2d40-0x2d7f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2d80-0x2dbf */
-  0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, /* 0x2dc0-0x2dff */
-  /* 0x3000-0x31ff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, /* 0x3000-0x303f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3040-0x307f */
-  0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, /* 0x3080-0x30bf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30c0-0x30ff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3100-0x313f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3140-0x317f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3180-0x31bf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x31c0-0x31ff */
-  /* 0xa600-0xa7ff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa600-0xa63f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf7, 0x3f, /* 0xa640-0xa67f */
-  0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, /* 0xa680-0xa6bf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, /* 0xa6c0-0xa6ff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa700-0xa73f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa740-0xa77f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa780-0xa7bf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa7c0-0xa7ff */
-  /* 0xa800-0xa9ff */
-  0x44, 0x08, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, /* 0xa800-0xa83f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa840-0xa87f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa880-0xa8bf */
-  0x30, 0x00, 0x00, 0x00, 0xff, 0xff, 0x03, 0x00, /* 0xa8c0-0xa8ff */
-  0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, /* 0xa900-0xa93f */
-  0x80, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa940-0xa97f */
-  0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x13, /* 0xa980-0xa9bf */
-  0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, /* 0xa9c0-0xa9ff */
-  /* 0xaa00-0xabff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x66, 0x00, /* 0xaa00-0xaa3f */
-  0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0xaa40-0xaa7f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0xc1, /* 0xaa80-0xaabf */
-  0x02, 0x00, 0x00, 0x00, 0x00, 0x30, 0x40, 0x00, /* 0xaac0-0xaaff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xab00-0xab3f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xab40-0xab7f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xab80-0xabbf */
-  0x00, 0x00, 0x00, 0x00, 0x20, 0x21, 0x00, 0x00, /* 0xabc0-0xabff */
-  /* 0xfa00-0xfbff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa00-0xfa3f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa40-0xfa7f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa80-0xfabf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfac0-0xfaff */
-  0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, /* 0xfb00-0xfb3f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfb40-0xfb7f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfb80-0xfbbf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfbc0-0xfbff */
-  /* 0xfe00-0xffff */
-  0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, /* 0xfe00-0xfe3f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfe40-0xfe7f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfe80-0xfebf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0xfec0-0xfeff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xff00-0xff3f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xff40-0xff7f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xff80-0xffbf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, /* 0xffc0-0xffff */
-  /* 0x10000-0x101ff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10000-0x1003f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10040-0x1007f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10080-0x100bf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x100c0-0x100ff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10100-0x1013f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10140-0x1017f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10180-0x101bf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, /* 0x101c0-0x101ff */
-  /* 0x10200-0x103ff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10200-0x1023f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10240-0x1027f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10280-0x102bf */
-  0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, /* 0x102c0-0x102ff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10300-0x1033f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, /* 0x10340-0x1037f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10380-0x103bf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x103c0-0x103ff */
-  /* 0x10a00-0x10bff */
-  0x6e, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, /* 0x10a00-0x10a3f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10a40-0x10a7f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10a80-0x10abf */
-  0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, /* 0x10ac0-0x10aff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b00-0x10b3f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b40-0x10b7f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b80-0x10bbf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10bc0-0x10bff */
-  /* 0x11000-0x111ff */
-  0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, /* 0x11000-0x1103f */
-  0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0x11040-0x1107f */
-  0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x26, /* 0x11080-0x110bf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x110c0-0x110ff */
-  0x07, 0x00, 0x00, 0x00, 0x80, 0xef, 0x1f, 0x00, /* 0x11100-0x1113f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, /* 0x11140-0x1117f */
-  0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x7f, /* 0x11180-0x111bf */
-  0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x111c0-0x111ff */
-  /* 0x11200-0x113ff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xd3, 0x40, /* 0x11200-0x1123f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11240-0x1127f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11280-0x112bf */
-  0x00, 0x00, 0x00, 0x80, 0xf8, 0x07, 0x00, 0x00, /* 0x112c0-0x112ff */
-  0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x11300-0x1133f */
-  0x01, 0x00, 0x00, 0x00, 0xc0, 0x1f, 0x1f, 0x00, /* 0x11340-0x1137f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11380-0x113bf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x113c0-0x113ff */
-  /* 0x11400-0x115ff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, /* 0x11400-0x1143f */
-  0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11440-0x1147f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x85, /* 0x11480-0x114bf */
-  0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x114c0-0x114ff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11500-0x1153f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11540-0x1157f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0xb0, /* 0x11580-0x115bf */
-  0x01, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, /* 0x115c0-0x115ff */
-  /* 0x11600-0x117ff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xa7, /* 0x11600-0x1163f */
-  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11640-0x1167f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0xbf, 0x00, /* 0x11680-0x116bf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x116c0-0x116ff */
-  0x00, 0x00, 0x00, 0xe0, 0xbc, 0x0f, 0x00, 0x00, /* 0x11700-0x1173f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11740-0x1177f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11780-0x117bf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x117c0-0x117ff */
-  /* 0x11c00-0x11dff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x3f, /* 0x11c00-0x11c3f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11c40-0x11c7f */
-  0x00, 0x00, 0xfc, 0xff, 0xff, 0xfc, 0x6d, 0x00, /* 0x11c80-0x11cbf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11cc0-0x11cff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11d00-0x11d3f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11d40-0x11d7f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11d80-0x11dbf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11dc0-0x11dff */
-  /* 0x16a00-0x16bff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16a00-0x16a3f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16a40-0x16a7f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16a80-0x16abf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, /* 0x16ac0-0x16aff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, /* 0x16b00-0x16b3f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16b40-0x16b7f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16b80-0x16bbf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16bc0-0x16bff */
-  /* 0x16e00-0x16fff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16e00-0x16e3f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16e40-0x16e7f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16e80-0x16ebf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16ec0-0x16eff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16f00-0x16f3f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16f40-0x16f7f */
-  0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16f80-0x16fbf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16fc0-0x16fff */
-  /* 0x1bc00-0x1bdff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bc00-0x1bc3f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bc40-0x1bc7f */
-  0x00, 0x00, 0x00, 0x60, 0x0f, 0x00, 0x00, 0x00, /* 0x1bc80-0x1bcbf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bcc0-0x1bcff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bd00-0x1bd3f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bd40-0x1bd7f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bd80-0x1bdbf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bdc0-0x1bdff */
-  /* 0x1d000-0x1d1ff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d000-0x1d03f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d040-0x1d07f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d080-0x1d0bf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d0c0-0x1d0ff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d100-0x1d13f */
-  0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0xf8, 0xff, /* 0x1d140-0x1d17f */
-  0xe7, 0x0f, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, /* 0x1d180-0x1d1bf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d1c0-0x1d1ff */
-  /* 0x1d200-0x1d3ff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d200-0x1d23f */
-  0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d240-0x1d27f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d280-0x1d2bf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d2c0-0x1d2ff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d300-0x1d33f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d340-0x1d37f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d380-0x1d3bf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d3c0-0x1d3ff */
-  /* 0x1da00-0x1dbff */
-  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xf8, /* 0x1da00-0x1da3f */
-  0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x20, 0x00, /* 0x1da40-0x1da7f */
-  0x10, 0x00, 0x00, 0xf8, 0xfe, 0xff, 0x00, 0x00, /* 0x1da80-0x1dabf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1dac0-0x1daff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1db00-0x1db3f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1db40-0x1db7f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1db80-0x1dbbf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1dbc0-0x1dbff */
-  /* 0x1e000-0x1e1ff */
-  0x7f, 0xff, 0xff, 0xf9, 0xdb, 0x07, 0x00, 0x00, /* 0x1e000-0x1e03f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e040-0x1e07f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e080-0x1e0bf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e0c0-0x1e0ff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e100-0x1e13f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e140-0x1e17f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e180-0x1e1bf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e1c0-0x1e1ff */
-  /* 0x1e800-0x1e9ff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e800-0x1e83f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e840-0x1e87f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e880-0x1e8bf */
-  0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e8c0-0x1e8ff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e900-0x1e93f */
-  0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e940-0x1e97f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e980-0x1e9bf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00  /* 0x1e9c0-0x1e9ff */
-};
-static const signed char nonspacing_table_ind[248] = {
-   0,  1,  2,  3,  4,  5,  6,  7, /* 0x0000-0x0fff */
-   8,  9, -1, 10, 11, 12, 13, -1, /* 0x1000-0x1fff */
-  14, -1, -1, -1, -1, -1, 15, -1, /* 0x2000-0x2fff */
-  16, -1, -1, -1, -1, -1, -1, -1, /* 0x3000-0x3fff */
-  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x4000-0x4fff */
-  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x5000-0x5fff */
-  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x6000-0x6fff */
-  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x7000-0x7fff */
-  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x8000-0x8fff */
-  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x9000-0x9fff */
-  -1, -1, -1, 17, 18, 19, -1, -1, /* 0xa000-0xafff */
-  -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb000-0xbfff */
-  -1, -1, -1, -1, -1, -1, -1, -1, /* 0xc000-0xcfff */
-  -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd000-0xdfff */
-  -1, -1, -1, -1, -1, -1, -1, -1, /* 0xe000-0xefff */
-  -1, -1, -1, -1, -1, 20, -1, 21, /* 0xf000-0xffff */
-  22, 23, -1, -1, -1, 24, -1, -1, /* 0x10000-0x10fff */
-  25, 26, 27, 28, -1, -1, 29, -1, /* 0x11000-0x11fff */
-  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x12000-0x12fff */
-  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x13000-0x13fff */
-  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x14000-0x14fff */
-  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x15000-0x15fff */
-  -1, -1, -1, -1, -1, 30, -1, 31, /* 0x16000-0x16fff */
-  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x17000-0x17fff */
-  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x18000-0x18fff */
-  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x19000-0x19fff */
-  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1a000-0x1afff */
-  -1, -1, -1, -1, -1, -1, 32, -1, /* 0x1b000-0x1bfff */
-  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1c000-0x1cfff */
-  33, 34, -1, -1, -1, 35, -1, -1, /* 0x1d000-0x1dfff */
-  36, -1, -1, -1, 37, -1, -1, -1  /* 0x1e000-0x1efff */
-};
+#include "uniwidth/width0.h"
+
+#include "uniwidth/width2.h"
+#include "unictype/bitmap.h"
+
+#define SIZEOF(a) (sizeof(a) / sizeof(a[0]))
+
 
 /* Determine number of column positions required for UC.  */
 int
 uc_width (ucs4_t uc, const char *encoding)
 {
   /* Test for non-spacing or control character.  */
-  if ((uc >> 9) < 248)
+  if ((uc >> 9) < SIZEOF (nonspacing_table_ind))
     {
       int ind = nonspacing_table_ind[uc >> 9];
       if (ind >= 0)
@@ -440,24 +83,8 @@ uc_width (ucs4_t uc, const char *encoding)
             return 0;
         }
     }
-  /* Test for double-width character.
-   * Generated from "grep '^[^;]\{4,5\};[WF]' EastAsianWidth.txt"
-   * and            "grep '^[^;]\{4,5\};[^WF]' EastAsianWidth.txt"
-   */
-  if (uc >= 0x1100
-      && ((uc < 0x1160) /* Hangul Jamo */
-          || (uc >= 0x2329 && uc < 0x232b) /* Angle Brackets */
-          || (uc >= 0x2e80 && uc < 0xa4d0  /* CJK ... Yi */
-              && !(uc == 0x303f) && !(uc >= 0x4dc0 && uc < 0x4e00))
-          || (uc >= 0xac00 && uc < 0xd7a4) /* Hangul Syllables */
-          || (uc >= 0xf900 && uc < 0xfb00) /* CJK Compatibility Ideographs */
-          || (uc >= 0xfe10 && uc < 0xfe20) /* Presentation Forms for Vertical */
-          || (uc >= 0xfe30 && uc < 0xfe70) /* CJK Compatibility Forms */
-          || (uc >= 0xff00 && uc < 0xff61) /* Fullwidth Forms */
-          || (uc >= 0xffe0 && uc < 0xffe7) /* Fullwidth Signs */
-          || (uc >= 0x20000 && uc <= 0x2ffff) /* Supplementary Ideographic Plane */
-          || (uc >= 0x30000 && uc <= 0x3ffff) /* Tertiary Ideographic Plane */
-     )   )
+  /* Test for double-width character.  */
+  if (bitmap_lookup (&u_width2, uc))
     return 2;
   /* In ancient CJK encodings, Cyrillic and most other characters are
      double-width as well.  */
diff --git a/lib/uniwidth/width0.h b/lib/uniwidth/width0.h
new file mode 100644 (file)
index 0000000..0c1713a
--- /dev/null
@@ -0,0 +1,486 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Table of non-spacing or control characters.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 15.0.0.  */
+
+/* Copyright (C) 2000-2022 Free Software Foundation, Inc.
+
+   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/>.  */
+
+static const unsigned char nonspacing_table_data[48*64] = {
+  /* 0x0000-0x01ff */
+  0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, /* 0x0000-0x003f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0x0040-0x007f */
+  0xff, 0xff, 0xff, 0xff, 0x00, 0x20, 0x00, 0x00, /* 0x0080-0x00bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00c0-0x00ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0100-0x013f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0140-0x017f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0180-0x01bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x01c0-0x01ff */
+  /* 0x0200-0x03ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0200-0x023f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0240-0x027f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0280-0x02bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x02c0-0x02ff */
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x0300-0x033f */
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, /* 0x0340-0x037f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0380-0x03bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x03c0-0x03ff */
+  /* 0x0400-0x05ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0400-0x043f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0440-0x047f */
+  0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0480-0x04bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04c0-0x04ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0500-0x053f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0540-0x057f */
+  0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xbf, /* 0x0580-0x05bf */
+  0xb6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x05c0-0x05ff */
+  /* 0x0600-0x07ff */
+  0x3f, 0x00, 0xff, 0x17, 0x00, 0x00, 0x00, 0x00, /* 0x0600-0x063f */
+  0x00, 0xf8, 0xff, 0xff, 0x00, 0x00, 0x01, 0x00, /* 0x0640-0x067f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0680-0x06bf */
+  0x00, 0x00, 0xc0, 0xbf, 0x9f, 0x3d, 0x00, 0x00, /* 0x06c0-0x06ff */
+  0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0xff, 0xff, /* 0x0700-0x073f */
+  0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0740-0x077f */
+  0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x01, 0x00, /* 0x0780-0x07bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x20, /* 0x07c0-0x07ff */
+  /* 0x0800-0x09ff */
+  0x00, 0x00, 0xc0, 0xfb, 0xef, 0x3e, 0x00, 0x00, /* 0x0800-0x083f */
+  0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, /* 0x0840-0x087f */
+  0x00, 0x00, 0x03, 0xff, 0x00, 0x00, 0x00, 0x00, /* 0x0880-0x08bf */
+  0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x08c0-0x08ff */
+  0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, /* 0x0900-0x093f */
+  0xfe, 0x21, 0xfe, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0940-0x097f */
+  0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0980-0x09bf */
+  0x1e, 0x20, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x40, /* 0x09c0-0x09ff */
+  /* 0x0a00-0x0bff */
+  0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0a00-0x0a3f */
+  0x86, 0x39, 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, /* 0x0a40-0x0a7f */
+  0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0a80-0x0abf */
+  0xbe, 0x21, 0x00, 0x00, 0x0c, 0x00, 0x00, 0xfc, /* 0x0ac0-0x0aff */
+  0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, /* 0x0b00-0x0b3f */
+  0x1e, 0x20, 0x60, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0b40-0x0b7f */
+  0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0b80-0x0bbf */
+  0x01, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0bc0-0x0bff */
+  /* 0x0c00-0x0dff */
+  0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, /* 0x0c00-0x0c3f */
+  0xc1, 0x3d, 0x60, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0c40-0x0c7f */
+  0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0c80-0x0cbf */
+  0x00, 0x30, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0cc0-0x0cff */
+  0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, /* 0x0d00-0x0d3f */
+  0x1e, 0x20, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0d40-0x0d7f */
+  0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0d80-0x0dbf */
+  0x00, 0x04, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0dc0-0x0dff */
+  /* 0x0e00-0x0fff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2, 0x07, /* 0x0e00-0x0e3f */
+  0x80, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0e40-0x0e7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2, 0x1f, /* 0x0e80-0x0ebf */
+  0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0ec0-0x0eff */
+  0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xa0, 0x02, /* 0x0f00-0x0f3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7f, /* 0x0f40-0x0f7f */
+  0xdf, 0xe0, 0xff, 0xfe, 0xff, 0xff, 0xff, 0x1f, /* 0x0f80-0x0fbf */
+  0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0fc0-0x0fff */
+  /* 0x1000-0x11ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xfd, 0x66, /* 0x1000-0x103f */
+  0x00, 0x00, 0x00, 0xc3, 0x01, 0x00, 0x1e, 0x00, /* 0x1040-0x107f */
+  0x64, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, /* 0x1080-0x10bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10c0-0x10ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1100-0x113f */
+  0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, /* 0x1140-0x117f */
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x1180-0x11bf */
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x11c0-0x11ff */
+  /* 0x1200-0x13ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1200-0x123f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1240-0x127f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1280-0x12bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x12c0-0x12ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1300-0x133f */
+  0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, /* 0x1340-0x137f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1380-0x13bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x13c0-0x13ff */
+  /* 0x1600-0x17ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1600-0x163f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1640-0x167f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1680-0x16bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16c0-0x16ff */
+  0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x0c, 0x00, /* 0x1700-0x173f */
+  0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, /* 0x1740-0x177f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x3f, /* 0x1780-0x17bf */
+  0x40, 0xfe, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x00, /* 0x17c0-0x17ff */
+  /* 0x1800-0x19ff */
+  0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1800-0x183f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1840-0x187f */
+  0x60, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, /* 0x1880-0x18bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18c0-0x18ff */
+  0x00, 0x00, 0x00, 0x00, 0x87, 0x01, 0x04, 0x0e, /* 0x1900-0x193f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1940-0x197f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1980-0x19bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x19c0-0x19ff */
+  /* 0x1a00-0x1bff */
+  0x00, 0x00, 0x80, 0x09, 0x00, 0x00, 0x00, 0x00, /* 0x1a00-0x1a3f */
+  0x00, 0x00, 0x40, 0x7f, 0xe5, 0x1f, 0xf8, 0x9f, /* 0x1a40-0x1a7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, /* 0x1a80-0x1abf */
+  0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1ac0-0x1aff */
+  0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x17, /* 0x1b00-0x1b3f */
+  0x04, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, /* 0x1b40-0x1b7f */
+  0x03, 0x00, 0x00, 0x00, 0x3c, 0x3b, 0x00, 0x00, /* 0x1b80-0x1bbf */
+  0x00, 0x00, 0x00, 0x00, 0x40, 0xa3, 0x03, 0x00, /* 0x1bc0-0x1bff */
+  /* 0x1c00-0x1dff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xcf, 0x00, /* 0x1c00-0x1c3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1c40-0x1c7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1c80-0x1cbf */
+  0x00, 0x00, 0xf7, 0xff, 0xfd, 0x21, 0x10, 0x03, /* 0x1cc0-0x1cff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d00-0x1d3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d40-0x1d7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d80-0x1dbf */
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x1dc0-0x1dff */
+  /* 0x2000-0x21ff */
+  0x00, 0xf8, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, /* 0x2000-0x203f */
+  0x00, 0x00, 0x00, 0x00, 0xdf, 0xff, 0x00, 0x00, /* 0x2040-0x207f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2080-0x20bf */
+  0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, /* 0x20c0-0x20ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2100-0x213f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2140-0x217f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2180-0x21bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x21c0-0x21ff */
+  /* 0x2c00-0x2dff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2c00-0x2c3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2c40-0x2c7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2c80-0x2cbf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, /* 0x2cc0-0x2cff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2d00-0x2d3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0x2d40-0x2d7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2d80-0x2dbf */
+  0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, /* 0x2dc0-0x2dff */
+  /* 0x3000-0x31ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, /* 0x3000-0x303f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3040-0x307f */
+  0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, /* 0x3080-0x30bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30c0-0x30ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3100-0x313f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3140-0x317f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3180-0x31bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x31c0-0x31ff */
+  /* 0xa600-0xa7ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa600-0xa63f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf7, 0x3f, /* 0xa640-0xa67f */
+  0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, /* 0xa680-0xa6bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, /* 0xa6c0-0xa6ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa700-0xa73f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa740-0xa77f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa780-0xa7bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa7c0-0xa7ff */
+  /* 0xa800-0xa9ff */
+  0x44, 0x08, 0x00, 0x00, 0x60, 0x10, 0x00, 0x00, /* 0xa800-0xa83f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa840-0xa87f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa880-0xa8bf */
+  0x30, 0x00, 0x00, 0x00, 0xff, 0xff, 0x03, 0x80, /* 0xa8c0-0xa8ff */
+  0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, /* 0xa900-0xa93f */
+  0x80, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa940-0xa97f */
+  0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x33, /* 0xa980-0xa9bf */
+  0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, /* 0xa9c0-0xa9ff */
+  /* 0xaa00-0xabff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x66, 0x00, /* 0xaa00-0xaa3f */
+  0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0xaa40-0xaa7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0xc1, /* 0xaa80-0xaabf */
+  0x02, 0x00, 0x00, 0x00, 0x00, 0x30, 0x40, 0x00, /* 0xaac0-0xaaff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xab00-0xab3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xab40-0xab7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xab80-0xabbf */
+  0x00, 0x00, 0x00, 0x00, 0x20, 0x21, 0x00, 0x00, /* 0xabc0-0xabff */
+  /* 0xd600-0xd7ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd600-0xd63f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd640-0xd67f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd680-0xd6bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd6c0-0xd6ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd700-0xd73f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd740-0xd77f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, /* 0xd780-0xd7bf */
+  0x7f, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, /* 0xd7c0-0xd7ff */
+  /* 0xfa00-0xfbff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa00-0xfa3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa40-0xfa7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa80-0xfabf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfac0-0xfaff */
+  0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, /* 0xfb00-0xfb3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfb40-0xfb7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfb80-0xfbbf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfbc0-0xfbff */
+  /* 0xfe00-0xffff */
+  0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, /* 0xfe00-0xfe3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfe40-0xfe7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfe80-0xfebf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0xfec0-0xfeff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xff00-0xff3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xff40-0xff7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xff80-0xffbf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, /* 0xffc0-0xffff */
+  /* 0x10000-0x101ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10000-0x1003f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10040-0x1007f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10080-0x100bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x100c0-0x100ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10100-0x1013f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10140-0x1017f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10180-0x101bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, /* 0x101c0-0x101ff */
+  /* 0x10200-0x103ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10200-0x1023f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10240-0x1027f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10280-0x102bf */
+  0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, /* 0x102c0-0x102ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10300-0x1033f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, /* 0x10340-0x1037f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10380-0x103bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x103c0-0x103ff */
+  /* 0x10a00-0x10bff */
+  0x6e, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, /* 0x10a00-0x10a3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10a40-0x10a7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10a80-0x10abf */
+  0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, /* 0x10ac0-0x10aff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b00-0x10b3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b40-0x10b7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b80-0x10bbf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10bc0-0x10bff */
+  /* 0x10c00-0x10dff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10c00-0x10c3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10c40-0x10c7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10c80-0x10cbf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10cc0-0x10cff */
+  0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, /* 0x10d00-0x10d3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10d40-0x10d7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10d80-0x10dbf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10dc0-0x10dff */
+  /* 0x10e00-0x10fff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10e00-0x10e3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10e40-0x10e7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, /* 0x10e80-0x10ebf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, /* 0x10ec0-0x10eff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10f00-0x10f3f */
+  0xc0, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10f40-0x10f7f */
+  0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10f80-0x10fbf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10fc0-0x10fff */
+  /* 0x11000-0x111ff */
+  0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, /* 0x11000-0x1103f */
+  0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x80, /* 0x11040-0x1107f */
+  0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x26, /* 0x11080-0x110bf */
+  0x04, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x110c0-0x110ff */
+  0x07, 0x00, 0x00, 0x00, 0x80, 0xef, 0x1f, 0x00, /* 0x11100-0x1113f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, /* 0x11140-0x1117f */
+  0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x7f, /* 0x11180-0x111bf */
+  0x00, 0x9e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x111c0-0x111ff */
+  /* 0x11200-0x113ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xd3, 0x40, /* 0x11200-0x1123f */
+  0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11240-0x1127f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11280-0x112bf */
+  0x00, 0x00, 0x00, 0x80, 0xf8, 0x07, 0x00, 0x00, /* 0x112c0-0x112ff */
+  0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, /* 0x11300-0x1133f */
+  0x01, 0x00, 0x00, 0x00, 0xc0, 0x1f, 0x1f, 0x00, /* 0x11340-0x1137f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11380-0x113bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x113c0-0x113ff */
+  /* 0x11400-0x115ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, /* 0x11400-0x1143f */
+  0x5c, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, /* 0x11440-0x1147f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x85, /* 0x11480-0x114bf */
+  0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x114c0-0x114ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11500-0x1153f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11540-0x1157f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0xb0, /* 0x11580-0x115bf */
+  0x01, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, /* 0x115c0-0x115ff */
+  /* 0x11600-0x117ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xa7, /* 0x11600-0x1163f */
+  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11640-0x1167f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0xbf, 0x00, /* 0x11680-0x116bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x116c0-0x116ff */
+  0x00, 0x00, 0x00, 0xe0, 0xbc, 0x0f, 0x00, 0x00, /* 0x11700-0x1173f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11740-0x1177f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11780-0x117bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x117c0-0x117ff */
+  /* 0x11800-0x119ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x06, /* 0x11800-0x1183f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11840-0x1187f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11880-0x118bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x118c0-0x118ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, /* 0x11900-0x1193f */
+  0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11940-0x1197f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11980-0x119bf */
+  0x00, 0x00, 0xf0, 0x0c, 0x01, 0x00, 0x00, 0x00, /* 0x119c0-0x119ff */
+  /* 0x11a00-0x11bff */
+  0x7e, 0x06, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x79, /* 0x11a00-0x11a3f */
+  0x80, 0x00, 0x7e, 0x0e, 0x00, 0x00, 0x00, 0x00, /* 0x11a40-0x11a7f */
+  0x00, 0xfc, 0x7f, 0x03, 0x00, 0x00, 0x00, 0x00, /* 0x11a80-0x11abf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11ac0-0x11aff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11b00-0x11b3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11b40-0x11b7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11b80-0x11bbf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11bc0-0x11bff */
+  /* 0x11c00-0x11dff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x3f, /* 0x11c00-0x11c3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11c40-0x11c7f */
+  0x00, 0x00, 0xfc, 0xff, 0xff, 0xfc, 0x6d, 0x00, /* 0x11c80-0x11cbf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11cc0-0x11cff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0xb4, /* 0x11d00-0x11d3f */
+  0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11d40-0x11d7f */
+  0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11d80-0x11dbf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11dc0-0x11dff */
+  /* 0x11e00-0x11fff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11e00-0x11e3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11e40-0x11e7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11e80-0x11ebf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, /* 0x11ec0-0x11eff */
+  0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, /* 0x11f00-0x11f3f */
+  0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11f40-0x11f7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11f80-0x11fbf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11fc0-0x11fff */
+  /* 0x13400-0x135ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, /* 0x13400-0x1343f */
+  0x81, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x13440-0x1347f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x13480-0x134bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x134c0-0x134ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x13500-0x1353f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x13540-0x1357f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x13580-0x135bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x135c0-0x135ff */
+  /* 0x16a00-0x16bff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16a00-0x16a3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16a40-0x16a7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16a80-0x16abf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, /* 0x16ac0-0x16aff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, /* 0x16b00-0x16b3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16b40-0x16b7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16b80-0x16bbf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16bc0-0x16bff */
+  /* 0x16e00-0x16fff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16e00-0x16e3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16e40-0x16e7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16e80-0x16ebf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16ec0-0x16eff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16f00-0x16f3f */
+  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16f40-0x16f7f */
+  0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16f80-0x16fbf */
+  0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, /* 0x16fc0-0x16fff */
+  /* 0x1bc00-0x1bdff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bc00-0x1bc3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bc40-0x1bc7f */
+  0x00, 0x00, 0x00, 0x60, 0x0f, 0x00, 0x00, 0x00, /* 0x1bc80-0x1bcbf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bcc0-0x1bcff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bd00-0x1bd3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bd40-0x1bd7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bd80-0x1bdbf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bdc0-0x1bdff */
+  /* 0x1ce00-0x1cfff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1ce00-0x1ce3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1ce40-0x1ce7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1ce80-0x1cebf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1cec0-0x1ceff */
+  0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, /* 0x1cf00-0x1cf3f */
+  0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1cf40-0x1cf7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1cf80-0x1cfbf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1cfc0-0x1cfff */
+  /* 0x1d000-0x1d1ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d000-0x1d03f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d040-0x1d07f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d080-0x1d0bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d0c0-0x1d0ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d100-0x1d13f */
+  0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0xf8, 0xff, /* 0x1d140-0x1d17f */
+  0xe7, 0x0f, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, /* 0x1d180-0x1d1bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d1c0-0x1d1ff */
+  /* 0x1d200-0x1d3ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d200-0x1d23f */
+  0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d240-0x1d27f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d280-0x1d2bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d2c0-0x1d2ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d300-0x1d33f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d340-0x1d37f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d380-0x1d3bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d3c0-0x1d3ff */
+  /* 0x1da00-0x1dbff */
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xf8, /* 0x1da00-0x1da3f */
+  0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x20, 0x00, /* 0x1da40-0x1da7f */
+  0x10, 0x00, 0x00, 0xf8, 0xfe, 0xff, 0x00, 0x00, /* 0x1da80-0x1dabf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1dac0-0x1daff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1db00-0x1db3f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1db40-0x1db7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1db80-0x1dbbf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1dbc0-0x1dbff */
+  /* 0x1e000-0x1e1ff */
+  0x7f, 0xff, 0xff, 0xf9, 0xdb, 0x07, 0x00, 0x00, /* 0x1e000-0x1e03f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e040-0x1e07f */
+  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e080-0x1e0bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e0c0-0x1e0ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, /* 0x1e100-0x1e13f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e140-0x1e17f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e180-0x1e1bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e1c0-0x1e1ff */
+  /* 0x1e200-0x1e3ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e200-0x1e23f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e240-0x1e27f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, /* 0x1e280-0x1e2bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, /* 0x1e2c0-0x1e2ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e300-0x1e33f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e340-0x1e37f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e380-0x1e3bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e3c0-0x1e3ff */
+  /* 0x1e400-0x1e5ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e400-0x1e43f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e440-0x1e47f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e480-0x1e4bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, /* 0x1e4c0-0x1e4ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e500-0x1e53f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e540-0x1e57f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e580-0x1e5bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e5c0-0x1e5ff */
+  /* 0x1e800-0x1e9ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e800-0x1e83f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e840-0x1e87f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e880-0x1e8bf */
+  0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e8c0-0x1e8ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e900-0x1e93f */
+  0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e940-0x1e97f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e980-0x1e9bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00  /* 0x1e9c0-0x1e9ff */
+};
+static const signed char nonspacing_table_ind[248] = {
+   0,  1,  2,  3,  4,  5,  6,  7, /* 0x0000-0x0fff */
+   8,  9, -1, 10, 11, 12, 13, -1, /* 0x1000-0x1fff */
+  14, -1, -1, -1, -1, -1, 15, -1, /* 0x2000-0x2fff */
+  16, -1, -1, -1, -1, -1, -1, -1, /* 0x3000-0x3fff */
+  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x4000-0x4fff */
+  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x5000-0x5fff */
+  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x6000-0x6fff */
+  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x7000-0x7fff */
+  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x8000-0x8fff */
+  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x9000-0x9fff */
+  -1, -1, -1, 17, 18, 19, -1, -1, /* 0xa000-0xafff */
+  -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb000-0xbfff */
+  -1, -1, -1, -1, -1, -1, -1, -1, /* 0xc000-0xcfff */
+  -1, -1, -1, 20, -1, -1, -1, -1, /* 0xd000-0xdfff */
+  -1, -1, -1, -1, -1, -1, -1, -1, /* 0xe000-0xefff */
+  -1, -1, -1, -1, -1, 21, -1, 22, /* 0xf000-0xffff */
+  23, 24, -1, -1, -1, 25, 26, 27, /* 0x10000-0x10fff */
+  28, 29, 30, 31, 32, 33, 34, 35, /* 0x11000-0x11fff */
+  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x12000-0x12fff */
+  -1, -1, 36, -1, -1, -1, -1, -1, /* 0x13000-0x13fff */
+  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x14000-0x14fff */
+  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x15000-0x15fff */
+  -1, -1, -1, -1, -1, 37, -1, 38, /* 0x16000-0x16fff */
+  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x17000-0x17fff */
+  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x18000-0x18fff */
+  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x19000-0x19fff */
+  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1a000-0x1afff */
+  -1, -1, -1, -1, -1, -1, 39, -1, /* 0x1b000-0x1bfff */
+  -1, -1, -1, -1, -1, -1, -1, 40, /* 0x1c000-0x1cfff */
+  41, 42, -1, -1, -1, 43, -1, -1, /* 0x1d000-0x1dfff */
+  44, 45, 46, -1, 47, -1, -1, -1  /* 0x1e000-0x1efff */
+};
diff --git a/lib/uniwidth/width2.h b/lib/uniwidth/width2.h
new file mode 100644 (file)
index 0000000..19c8c02
--- /dev/null
@@ -0,0 +1,541 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Width 2 property of Unicode characters.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 15.0.0.  */
+
+/* Copyright (C) 2000-2022 Free Software Foundation, Inc.
+
+   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/>.  */
+
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+  {
+    int header[1];
+    int level1[4];
+    short level2[3 << 7];
+    unsigned int level3[28 << 4];
+  }
+u_width2 =
+{
+  { 4 },
+  {
+        5 * sizeof (int) / sizeof (short) +     0,
+        5 * sizeof (int) / sizeof (short) +   128,
+        5 * sizeof (int) / sizeof (short) +   256,
+        5 * sizeof (int) / sizeof (short) +   256
+  },
+  {
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        5 +   384 * sizeof (short) / sizeof (int) +     0,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        5 +   384 * sizeof (short) / sizeof (int) +    16,
+        5 +   384 * sizeof (short) / sizeof (int) +    32,
+        5 +   384 * sizeof (short) / sizeof (int) +    48,
+       -1,
+        5 +   384 * sizeof (short) / sizeof (int) +    64,
+       -1,
+        5 +   384 * sizeof (short) / sizeof (int) +    80,
+        5 +   384 * sizeof (short) / sizeof (int) +    96,
+        5 +   384 * sizeof (short) / sizeof (int) +   112,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   144,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   160,
+       -1,
+        5 +   384 * sizeof (short) / sizeof (int) +   176,
+       -1,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   192,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        5 +   384 * sizeof (short) / sizeof (int) +   208,
+        5 +   384 * sizeof (short) / sizeof (int) +   224,
+       -1,
+        5 +   384 * sizeof (short) / sizeof (int) +   240,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        5 +   384 * sizeof (short) / sizeof (int) +   256,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   272,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   288,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        5 +   384 * sizeof (short) / sizeof (int) +   304,
+        5 +   384 * sizeof (short) / sizeof (int) +   320,
+        5 +   384 * sizeof (short) / sizeof (int) +   336,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        5 +   384 * sizeof (short) / sizeof (int) +   352,
+        5 +   384 * sizeof (short) / sizeof (int) +   368,
+        5 +   384 * sizeof (short) / sizeof (int) +   384,
+        5 +   384 * sizeof (short) / sizeof (int) +   400,
+        5 +   384 * sizeof (short) / sizeof (int) +   416,
+        5 +   384 * sizeof (short) / sizeof (int) +   432,
+       -1,
+       -1,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128,
+        5 +   384 * sizeof (short) / sizeof (int) +   128
+  },
+  {
+    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x00000000U,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+    0x0C000000U, 0x00000600U, 0x00000000U, 0x00000000U,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x00091E00U,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x60000000U,
+    0x00300000U, 0x00000000U, 0x000FFF00U, 0x80000000U,
+    0x00080000U, 0x60000C02U, 0x00104030U, 0x242C0400U,
+    0x00000C20U, 0x00000100U, 0x00B85000U, 0x00000000U,
+    0x00E00000U, 0x80010000U, 0x00000000U, 0x00000000U,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+    0x18000000U, 0x00000000U, 0x00210000U, 0x00000000U,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
+    0xFFFFFFFFU, 0x7FFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFF00FFU, 0xFFFFFFFFU,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0x00000000U, 0x00000000U,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0x0000FFFFU, 0x00000000U,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x1FFFFFFFU,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
+    0xFFFFFFFFU, 0x0000000FU, 0x00000000U, 0x00000000U,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+    0xFFFF0000U, 0xFFFF0000U, 0xFFFFFFFFU, 0x0000FFFFU,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x00000001U,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x0000007FU,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x0003000FU,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x00FFFFFFU,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0x003FFFFFU, 0x00000000U,
+    0x000001FFU, 0x00000000U, 0x00000000U, 0x00000000U,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x6FEF0000U,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
+    0xFFFFFFFFU, 0x00000007U, 0x00070000U, 0xFFFF00F0U,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x0FFFFFFFU,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+    0x00000010U, 0x00000000U, 0x00000000U, 0x00000000U,
+    0x00000000U, 0x00000000U, 0x00008000U, 0x00000000U,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+    0x07FE4000U, 0x00000000U, 0x00000000U, 0x00000000U,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
+    0xFFFFFFFFU, 0xFFBFE001U, 0xFFFFFFFFU, 0xDFFFFFFFU,
+    0x000FFFFFU, 0xFFFFFFFFU, 0x000F87FFU, 0xFF11FFFFU,
+    0xFFFFFFFFU, 0x7FFFFFFFU, 0xFFFFFFFDU, 0xFFFFFFFFU,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x9FFFFFFFU,
+    0xFFFFFFFFU, 0x3FFFFFFFU, 0xFFFF7800U, 0x040000FFU,
+    0x00600000U, 0x00000010U, 0x00000000U, 0xF8000000U,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0x0000FFFFU, 0x00000000U,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xE0E7103FU, 0x1FF01800U,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x00010FFFU,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+    0xFFFFF000U, 0xF7FFFFFFU, 0xFFFFFFBFU, 0xFFFFFFFFU,
+    0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x1F1F0000U,
+    0xFFFF007FU, 0x07FF1FFFU, 0x03FF003FU, 0x007F00FFU,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U,
+    0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U
+  }
+};
index ca184b3..4830df4 100644 (file)
@@ -1,10 +1,10 @@
 /* Prefer faster, non-thread-safe stdio functions if available.
 
-   Copyright (C) 2001-2004, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2001-2004, 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    the *_unlocked functions directly.  On hosts that lack those
    functions, invoke the non-thread-safe versions instead.  */
 
+/* This file uses HAVE_DECL_*_UNLOCKED.  */
+# if !_GL_CONFIG_H_INCLUDED
+#  error "Please include config.h first."
+# endif
+
 # include <stdio.h>
 
 # if HAVE_DECL_CLEARERR_UNLOCKED || defined clearerr_unlocked
index b2e910e..e548949 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1995-2002, 2005-2021 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1995-2002, 2005-2023 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
diff --git a/lib/vasprintf.c b/lib/vasprintf.c
deleted file mode 100644 (file)
index fe8b14f..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006-2021 Free Software Foundation, Inc.
-
-   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/>.  */
-
-#include <config.h>
-
-/* Specification.  */
-#ifdef IN_LIBASPRINTF
-# include "vasprintf.h"
-#else
-# include <stdio.h>
-#endif
-
-#include <errno.h>
-#include <limits.h>
-#include <stdlib.h>
-
-#include "vasnprintf.h"
-
-int
-vasprintf (char **resultp, const char *format, va_list args)
-{
-  size_t length;
-  char *result = vasnprintf (NULL, &length, format, args);
-  if (result == NULL)
-    return -1;
-
-  if (length > INT_MAX)
-    {
-      free (result);
-      errno = EOVERFLOW;
-      return -1;
-    }
-
-  *resultp = result;
-  /* Return the number of resulting bytes, excluding the trailing NUL.  */
-  return length;
-}
index a8ca59b..e4af915 100644 (file)
@@ -1,6 +1,6 @@
 /* Compile-time assert-like macros.
 
-   Copyright (C) 2005-2006, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2005-2006, 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
    works as per C11.  This is supported by GCC 4.6.0+ and by clang 4+.
 
    Define _GL_HAVE__STATIC_ASSERT1 to 1 if _Static_assert (R) works as
-   per C2x.  This is supported by GCC 9.1+.
+   per C23.  This is supported by GCC 9.1+.
 
    Support compilers claiming conformance to the relevant standard,
    and also support GCC when not pedantic.  If we were willing to slow
    'configure' down we could also use it with other compilers, but
    since this affects only the quality of diagnostics, why bother?  */
 #ifndef __cplusplus
-# if (201112L <= __STDC_VERSION__ \
+# if (201112 <= __STDC_VERSION__ \
       || (!defined __STRICT_ANSI__ \
-          && (4 < __GNUC__ + (6 <= __GNUC_MINOR__) || 4 <= __clang_major__)))
+          && (4 < __GNUC__ + (6 <= __GNUC_MINOR__) || 5 <= __clang_major__)))
 #  define _GL_HAVE__STATIC_ASSERT 1
 # endif
-# if (202000L <= __STDC_VERSION__ \
+# if (202311 <= __STDC_VERSION__ \
       || (!defined __STRICT_ANSI__ && 9 <= __GNUC__))
 #  define _GL_HAVE__STATIC_ASSERT1 1
 # endif
@@ -202,12 +202,12 @@ template <int w>
 
    This macro requires three or more arguments but uses at most the first
    two, so that the _Static_assert macro optionally defined below supports
-   both the C11 two-argument syntax and the C2x one-argument syntax.
+   both the C11 two-argument syntax and the C23 one-argument syntax.
 
    Unfortunately, unlike C11, this implementation must appear as an
    ordinary declaration, and cannot appear inside struct { ... }.  */
 
-#if 200410 <= __cpp_static_assert
+#if 202311 <= __STDC_VERSION__ || 200410 <= __cpp_static_assert
 # define _GL_VERIFY(R, DIAGNOSTIC, ...) static_assert (R, DIAGNOSTIC)
 #elif defined _GL_HAVE__STATIC_ASSERT
 # define _GL_VERIFY(R, DIAGNOSTIC, ...) _Static_assert (R, DIAGNOSTIC)
@@ -215,22 +215,75 @@ template <int w>
 # define _GL_VERIFY(R, DIAGNOSTIC, ...)                                \
     extern int (*_GL_GENSYM (_gl_verify_function) (void))             \
       [_GL_VERIFY_TRUE (R, DIAGNOSTIC)]
+# if 4 < __GNUC__ + (6 <= __GNUC_MINOR__)
+#  pragma GCC diagnostic ignored "-Wnested-externs"
+# endif
 #endif
 
 /* _GL_STATIC_ASSERT_H is defined if this code is copied into assert.h.  */
 #ifdef _GL_STATIC_ASSERT_H
-# if !defined _GL_HAVE__STATIC_ASSERT1 && !defined _Static_assert
-#  define _Static_assert(...) \
-     _GL_VERIFY (__VA_ARGS__, "static assertion failed", -)
+/* Define _Static_assert if needed.  */
+/* With clang ≥ 3.8.0 in C++ mode, _Static_assert already works and accepts
+   1 or 2 arguments.  We better don't override it, because clang's standard
+   C++ library uses static_assert inside classes in several places, and our
+   replacement via _GL_VERIFY does not work in these contexts.  */
+# if (defined __cplusplus && defined __clang__ \
+      && (4 <= __clang_major__ + (8 <= __clang_minor__)))
+#  if 5 <= __clang_major__
+/* Avoid "warning: 'static_assert' with no message is a C++17 extension".  */
+#   pragma clang diagnostic ignored "-Wc++17-extensions"
+#  else
+/* Avoid "warning: static_assert with no message is a C++1z extension".  */
+#   pragma clang diagnostic ignored "-Wc++1z-extensions"
+#  endif
+# elif !defined _GL_HAVE__STATIC_ASSERT1 && !defined _Static_assert
+#  if !defined _MSC_VER || defined __clang__
+#   define _Static_assert(...) \
+      _GL_VERIFY (__VA_ARGS__, "static assertion failed", -)
+#  else
+#   if defined __cplusplus && _MSC_VER >= 1910
+     /* In MSVC 14.1 or newer, static_assert accepts one or two arguments,
+        but _Static_assert is not defined.  */
+#    define _Static_assert static_assert
+#   else
+     /* Work around MSVC preprocessor incompatibility with ISO C; see
+        <https://stackoverflow.com/questions/5134523/>.  */
+#    define _Static_assert(R, ...) \
+       _GL_VERIFY ((R), "static assertion failed", -)
+#   endif
+#  endif
 # endif
-# if __cpp_static_assert < 201411 && !defined static_assert
-#  define static_assert _Static_assert /* C11 requires this #define.  */
+/* Define static_assert if needed.  */
+# if (!defined static_assert \
+      && __STDC_VERSION__ < 202311 \
+      && (!defined __cplusplus \
+          || (__cpp_static_assert < 201411 \
+              && __GNUG__ < 6 && __clang_major__ < 6 && _MSC_VER < 1910)))
+#  if defined __cplusplus && _MSC_VER >= 1900 && !defined __clang__
+/* MSVC 14 in C++ mode supports the two-arguments static_assert but not
+   the one-argument static_assert, and it does not support _Static_assert.
+   We have to play preprocessor tricks to distinguish the two cases.
+   Since the MSVC preprocessor is not ISO C compliant (see above),.
+   the solution is specific to MSVC.  */
+#   define _GL_EXPAND(x) x
+#   define _GL_SA1(a1) static_assert ((a1), "static assertion failed")
+#   define _GL_SA2 static_assert
+#   define _GL_SA3 static_assert
+#   define _GL_SA_PICK(x1,x2,x3,x4,...) x4
+#   define static_assert(...) _GL_EXPAND(_GL_SA_PICK(__VA_ARGS__,_GL_SA3,_GL_SA2,_GL_SA1)) (__VA_ARGS__)
+/* Avoid "fatal error C1189: #error:  The C++ Standard Library forbids macroizing keywords."  */
+#   define _ALLOW_KEYWORD_MACROS 1
+#  else
+#   define static_assert _Static_assert /* C11 requires this #define. */
+#  endif
 # endif
 #endif
 
 /* @assert.h omit start@  */
 
-#if 3 < __GNUC__ + (3 < __GNUC_MINOR__ + (4 <= __GNUC_PATCHLEVEL__))
+#if defined __clang_major__ && __clang_major__ < 5
+# define _GL_HAS_BUILTIN_TRAP 0
+#elif 3 < __GNUC__ + (3 < __GNUC_MINOR__ + (4 <= __GNUC_PATCHLEVEL__))
 # define _GL_HAS_BUILTIN_TRAP 1
 #elif defined __has_builtin
 # define _GL_HAS_BUILTIN_TRAP __has_builtin (__builtin_trap)
@@ -238,12 +291,16 @@ template <int w>
 # define _GL_HAS_BUILTIN_TRAP 0
 #endif
 
-#if 4 < __GNUC__ + (5 <= __GNUC_MINOR__)
-# define _GL_HAS_BUILTIN_UNREACHABLE 1
-#elif defined __has_builtin
-# define _GL_HAS_BUILTIN_UNREACHABLE __has_builtin (__builtin_unreachable)
-#else
-# define _GL_HAS_BUILTIN_UNREACHABLE 0
+#ifndef _GL_HAS_BUILTIN_UNREACHABLE
+# if defined __clang_major__ && __clang_major__ < 5
+#  define _GL_HAS_BUILTIN_UNREACHABLE 0
+# elif 4 < __GNUC__ + (5 <= __GNUC_MINOR__)
+#  define _GL_HAS_BUILTIN_UNREACHABLE 1
+# elif defined __has_builtin
+#  define _GL_HAS_BUILTIN_UNREACHABLE __has_builtin (__builtin_unreachable)
+# else
+#  define _GL_HAS_BUILTIN_UNREACHABLE 0
+# endif
 #endif
 
 /* Each of these macros verifies that its argument R is nonzero.  To
@@ -300,13 +357,16 @@ template <int w>
 # define assume(R) ((R) ? (void) 0 : __builtin_unreachable ())
 #elif 1200 <= _MSC_VER
 # define assume(R) __assume (R)
+#elif 202311 <= __STDC_VERSION__
+# include <stddef.h>
+# define assume(R) ((R) ? (void) 0 : unreachable ())
 #elif (defined GCC_LINT || defined lint) && _GL_HAS_BUILTIN_TRAP
   /* Doing it this way helps various packages when configured with
      --enable-gcc-warnings, which compiles with -Dlint.  It's nicer
-     when 'assume' silences warnings even with older GCCs.  */
+     if 'assume' silences warnings with GCC 3.4 through GCC 4.4.7 (2012).  */
 # define assume(R) ((R) ? (void) 0 : __builtin_trap ())
 #else
-  /* Some tools grok NOTREACHED, e.g., Oracle Studio 12.6.  */
+  /* Some older tools grok NOTREACHED, e.g., Oracle Studio 12.6 (2017).  */
 # define assume(R) ((R) ? (void) 0 : /*NOTREACHED*/ (void) 0)
 #endif
 
index e27ab14..a34996d 100644 (file)
@@ -1,9 +1,9 @@
 /* Variable with FSF copyright information, for version-etc.
-   Copyright (C) 1999-2006, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 1999-2006, 2009-2023 Free Software Foundation, Inc.
 
    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 3 of the
+   published by the Free Software Foundation, either version 3 of the
    License, or (at your option) any later version.
 
    This file is distributed in the hope that it will be useful,
index ce4ef45..8e3b573 100644 (file)
@@ -1,9 +1,9 @@
 /* Print --version and bug-reporting information in a consistent format.
-   Copyright (C) 1999-2021 Free Software Foundation, Inc.
+   Copyright (C) 1999-2023 Free Software Foundation, Inc.
 
    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 3 of the
+   published by the Free Software Foundation, either version 3 of the
    License, or (at your option) any later version.
 
    This file is distributed in the hope that it will be useful,
@@ -37,7 +37,7 @@
 # define PACKAGE PACKAGE_TARNAME
 #endif
 
-enum { COPYRIGHT_YEAR = 2021 };
+enum { COPYRIGHT_YEAR = 2023 };
 
 /* The three functions below display the --version information the
    standard way.
index 3f04732..2313d98 100644 (file)
@@ -1,9 +1,9 @@
 /* Print --version and bug-reporting information in a consistent format.
-   Copyright (C) 1999, 2003, 2005, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2003, 2005, 2009-2023 Free Software Foundation, Inc.
 
    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 3 of the
+   published by the Free Software Foundation, either version 3 of the
    License, or (at your option) any later version.
 
    This file is distributed in the hope that it will be useful,
 #ifndef VERSION_ETC_H
 # define VERSION_ETC_H 1
 
+/* This file uses _GL_ATTRIBUTE_SENTINEL.  */
+# if !_GL_CONFIG_H_INCLUDED
+#  error "Please include config.h first."
+# endif
+
 # include <stdarg.h>
 # include <stdio.h>
 
+# ifdef __cplusplus
+extern "C"
+{
+# endif
+
 extern const char version_etc_copyright[];
 
 /* The three functions below display the --version information in the
@@ -66,4 +76,8 @@ extern void version_etc (FILE *stream,
 /* Display the usual "Report bugs to" stanza.  */
 extern void emit_bug_reporting_address (void);
 
+# ifdef __cplusplus
+}
+# endif
+
 #endif /* VERSION_ETC_H */
index 612937a..3075603 100644 (file)
@@ -1,5 +1,5 @@
 /* A C macro for emitting warnings if a function is used.
-   Copyright (C) 2010-2021 Free Software Foundation, Inc.
+   Copyright (C) 2010-2023 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
 # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
 /* A compiler attribute is available in gcc versions 4.3.0 and later.  */
 #  define _GL_WARN_ON_USE(function, message) \
-extern __typeof__ (function) function __attribute__ ((__warning__ (message)))
+_GL_WARN_EXTERN_C __typeof__ (function) function __attribute__ ((__warning__ (message)))
 #  define _GL_WARN_ON_USE_ATTRIBUTE(message) \
   __attribute__ ((__warning__ (message)))
 # elif __clang_major__ >= 4
 /* Another compiler attribute is available in clang.  */
 #  define _GL_WARN_ON_USE(function, message) \
-extern __typeof__ (function) function \
+_GL_WARN_EXTERN_C __typeof__ (function) function \
   __attribute__ ((__diagnose_if__ (1, message, "warning")))
 #  define _GL_WARN_ON_USE_ATTRIBUTE(message) \
   __attribute__ ((__diagnose_if__ (1, message, "warning")))
 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
 /* Verify the existence of the function.  */
 #  define _GL_WARN_ON_USE(function, message) \
-extern __typeof__ (function) function
+_GL_WARN_EXTERN_C __typeof__ (function) function
 #  define _GL_WARN_ON_USE_ATTRIBUTE(message)
 # else /* Unsupported.  */
 #  define _GL_WARN_ON_USE(function, message) \
index 919a5a3..69fa2f8 100644 (file)
@@ -1,6 +1,6 @@
 /* A substitute for ISO C99 <wchar.h>, for platforms that have issues.
 
-   Copyright (C) 2007-2021 Free Software Foundation, Inc.
+   Copyright (C) 2007-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 #ifndef _@GUARD_PREFIX@_WCHAR_H
 #define _@GUARD_PREFIX@_WCHAR_H
 
+/* This file uses _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_MALLOC,
+   _GL_ATTRIBUTE_PURE, GNULIB_POSIXCHECK, HAVE_RAW_DECL_*.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
+/* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers
+   that can be freed by passing them as the Ith argument to the
+   function F.  */
+#ifndef _GL_ATTRIBUTE_DEALLOC
+# if __GNUC__ >= 11
+#  define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i)))
+# else
+#  define _GL_ATTRIBUTE_DEALLOC(f, i)
+# endif
+#endif
+
+/* _GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that
+   can be freed via 'free'; it can be used only after declaring 'free'.  */
+/* Applies to: functions.  Cannot be used on inline functions.  */
+#ifndef _GL_ATTRIBUTE_DEALLOC_FREE
+# if defined __cplusplus && defined __GNUC__ && !defined __clang__
+/* Work around GCC bug <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108231> */
+#  define _GL_ATTRIBUTE_DEALLOC_FREE \
+     _GL_ATTRIBUTE_DEALLOC ((void (*) (void *)) free, 1)
+# else
+#  define _GL_ATTRIBUTE_DEALLOC_FREE \
+     _GL_ATTRIBUTE_DEALLOC (free, 1)
+# endif
+#endif
+
+/* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly
+   allocated memory.  */
+/* Applies to: functions.  */
+#ifndef _GL_ATTRIBUTE_MALLOC
+# if __GNUC__ >= 3 || defined __clang__
+#  define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
+# else
+#  define _GL_ATTRIBUTE_MALLOC
+# endif
+#endif
+
 /* The __attribute__ feature is available in gcc versions 2.5 and later.
    The attribute __pure__ was added in gcc 2.96.  */
 #ifndef _GL_ATTRIBUTE_PURE
@@ -146,6 +188,49 @@ typedef int rpl_mbstate_t;
 # endif
 #endif
 
+/* Make _GL_ATTRIBUTE_DEALLOC_FREE work, even though <stdlib.h> may not have
+   been included yet.  */
+#if @GNULIB_FREE_POSIX@
+# if (@REPLACE_FREE@ && !defined free \
+      && !(defined __cplusplus && defined GNULIB_NAMESPACE))
+/* We can't do '#define free rpl_free' here.  */
+#  if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2)
+_GL_EXTERN_C void rpl_free (void *) throw ();
+#  else
+_GL_EXTERN_C void rpl_free (void *);
+#  endif
+#  undef _GL_ATTRIBUTE_DEALLOC_FREE
+#  define _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_DEALLOC (rpl_free, 1)
+# else
+#  if defined _MSC_VER && !defined free
+_GL_EXTERN_C
+#   if defined _DLL
+     __declspec (dllimport)
+#   endif
+     void __cdecl free (void *);
+#  else
+#   if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2)
+_GL_EXTERN_C void free (void *) throw ();
+#   else
+_GL_EXTERN_C void free (void *);
+#   endif
+#  endif
+# endif
+#else
+# if defined _MSC_VER && !defined free
+_GL_EXTERN_C
+#   if defined _DLL
+     __declspec (dllimport)
+#   endif
+     void __cdecl free (void *);
+# else
+#  if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2)
+_GL_EXTERN_C void free (void *) throw ();
+#  else
+_GL_EXTERN_C void free (void *);
+#  endif
+# endif
+#endif
 
 /* Convert a single-byte character to a wide character.  */
 #if @GNULIB_BTOWC@
@@ -366,7 +451,9 @@ _GL_CXXALIAS_SYS (mbsnrtowcs, size_t,
                    const char **restrict srcp, size_t srclen, size_t len,
                    mbstate_t *restrict ps));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (mbsnrtowcs);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef mbsnrtowcs
 # if HAVE_RAW_DECL_MBSNRTOWCS
@@ -554,13 +641,25 @@ _GL_WARN_ON_USE (wmemchr, "wmemchr is unportable - "
 
 /* Compare N wide characters of S1 and S2.  */
 #if @GNULIB_WMEMCMP@
-# if !@HAVE_WMEMCMP@
+# if @REPLACE_WMEMCMP@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef wmemcmp
+#   define wmemcmp rpl_wmemcmp
+#  endif
+_GL_FUNCDECL_RPL (wmemcmp, int,
+                  (const wchar_t *s1, const wchar_t *s2, size_t n)
+                  _GL_ATTRIBUTE_PURE);
+_GL_CXXALIAS_RPL (wmemcmp, int,
+                  (const wchar_t *s1, const wchar_t *s2, size_t n));
+# else
+#  if !@HAVE_WMEMCMP@
 _GL_FUNCDECL_SYS (wmemcmp, int,
                   (const wchar_t *s1, const wchar_t *s2, size_t n)
                   _GL_ATTRIBUTE_PURE);
-# endif
+#  endif
 _GL_CXXALIAS_SYS (wmemcmp, int,
                   (const wchar_t *s1, const wchar_t *s2, size_t n));
+# endif
 # if __GLIBC__ >= 2
 _GL_CXXALIASWARN (wmemcmp);
 # endif
@@ -619,14 +718,27 @@ _GL_WARN_ON_USE (wmemmove, "wmemmove is unportable - "
 /* Copy N wide characters of SRC to DEST.
    Return pointer to wide characters after the last written wide character.  */
 #if @GNULIB_WMEMPCPY@
-# if !@HAVE_WMEMPCPY@
+# if @REPLACE_WMEMPCPY@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef wmempcpy
+#   define wmempcpy rpl_wmempcpy
+#  endif
+_GL_FUNCDECL_RPL (wmempcpy, wchar_t *,
+                  (wchar_t *restrict dest,
+                   const wchar_t *restrict src, size_t n));
+_GL_CXXALIAS_RPL (wmempcpy, wchar_t *,
+                  (wchar_t *restrict dest,
+                   const wchar_t *restrict src, size_t n));
+# else
+#  if !@HAVE_WMEMPCPY@
 _GL_FUNCDECL_SYS (wmempcpy, wchar_t *,
                   (wchar_t *restrict dest,
                    const wchar_t *restrict src, size_t n));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (wmempcpy, wchar_t *,
                   (wchar_t *restrict dest,
                    const wchar_t *restrict src, size_t n));
+# endif
 # if __GLIBC__ >= 2
 _GL_CXXALIASWARN (wmempcpy);
 # endif
@@ -677,7 +789,10 @@ _GL_WARN_ON_USE (wcslen, "wcslen is unportable - "
 
 /* Return the number of wide characters in S, but at most MAXLEN.  */
 #if @GNULIB_WCSNLEN@
-# if !@HAVE_WCSNLEN@
+/* On Solaris 11.3, the header files declare the function in the std::
+   namespace, not in the global namespace.  So, force a declaration in
+   the global namespace.  */
+# if !@HAVE_WCSNLEN@ || (defined __sun && defined __cplusplus)
 _GL_FUNCDECL_SYS (wcsnlen, size_t, (const wchar_t *s, size_t maxlen)
                                    _GL_ATTRIBUTE_PURE);
 # endif
@@ -714,7 +829,10 @@ _GL_WARN_ON_USE (wcscpy, "wcscpy is unportable - "
 
 /* Copy SRC to DEST, returning the address of the terminating L'\0' in DEST.  */
 #if @GNULIB_WCPCPY@
-# if !@HAVE_WCPCPY@
+/* On Solaris 11.3, the header files declare the function in the std::
+   namespace, not in the global namespace.  So, force a declaration in
+   the global namespace.  */
+# if !@HAVE_WCPCPY@ || (defined __sun && defined __cplusplus)
 _GL_FUNCDECL_SYS (wcpcpy, wchar_t *,
                   (wchar_t *restrict dest, const wchar_t *restrict src));
 # endif
@@ -755,7 +873,10 @@ _GL_WARN_ON_USE (wcsncpy, "wcsncpy is unportable - "
 /* Copy no more than N characters of SRC to DEST, returning the address of
    the last character written into DEST.  */
 #if @GNULIB_WCPNCPY@
-# if !@HAVE_WCPNCPY@
+/* On Solaris 11.3, the header files declare the function in the std::
+   namespace, not in the global namespace.  So, force a declaration in
+   the global namespace.  */
+# if !@HAVE_WCPNCPY@ || (defined __sun && defined __cplusplus)
 _GL_FUNCDECL_SYS (wcpncpy, wchar_t *,
                   (wchar_t *restrict dest,
                    const wchar_t *restrict src, size_t n));
@@ -817,11 +938,21 @@ _GL_WARN_ON_USE (wcsncat, "wcsncat is unportable - "
 
 /* Compare S1 and S2.  */
 #if @GNULIB_WCSCMP@
-# if !@HAVE_WCSCMP@
+# if @REPLACE_WCSCMP@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef wcscmp
+#   define wcscmp rpl_wcscmp
+#  endif
+_GL_FUNCDECL_RPL (wcscmp, int, (const wchar_t *s1, const wchar_t *s2)
+                               _GL_ATTRIBUTE_PURE);
+_GL_CXXALIAS_RPL (wcscmp, int, (const wchar_t *s1, const wchar_t *s2));
+# else
+#  if !@HAVE_WCSCMP@
 _GL_FUNCDECL_SYS (wcscmp, int, (const wchar_t *s1, const wchar_t *s2)
                                _GL_ATTRIBUTE_PURE);
-# endif
+#  endif
 _GL_CXXALIAS_SYS (wcscmp, int, (const wchar_t *s1, const wchar_t *s2));
+# endif
 # if __GLIBC__ >= 2
 _GL_CXXALIASWARN (wcscmp);
 # endif
@@ -836,13 +967,25 @@ _GL_WARN_ON_USE (wcscmp, "wcscmp is unportable - "
 
 /* Compare no more than N wide characters of S1 and S2.  */
 #if @GNULIB_WCSNCMP@
-# if !@HAVE_WCSNCMP@
+# if @REPLACE_WCSNCMP@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef wcsncmp
+#   define wcsncmp rpl_wcsncmp
+#  endif
+_GL_FUNCDECL_RPL (wcsncmp, int,
+                  (const wchar_t *s1, const wchar_t *s2, size_t n)
+                  _GL_ATTRIBUTE_PURE);
+_GL_CXXALIAS_RPL (wcsncmp, int,
+                  (const wchar_t *s1, const wchar_t *s2, size_t n));
+# else
+#  if !@HAVE_WCSNCMP@
 _GL_FUNCDECL_SYS (wcsncmp, int,
                   (const wchar_t *s1, const wchar_t *s2, size_t n)
                   _GL_ATTRIBUTE_PURE);
-# endif
+#  endif
 _GL_CXXALIAS_SYS (wcsncmp, int,
                   (const wchar_t *s1, const wchar_t *s2, size_t n));
+# endif
 # if __GLIBC__ >= 2
 _GL_CXXALIASWARN (wcsncmp);
 # endif
@@ -857,7 +1000,10 @@ _GL_WARN_ON_USE (wcsncmp, "wcsncmp is unportable - "
 
 /* Compare S1 and S2, ignoring case.  */
 #if @GNULIB_WCSCASECMP@
-# if !@HAVE_WCSCASECMP@
+/* On Solaris 11.3, the header files declare the function in the std::
+   namespace, not in the global namespace.  So, force a declaration in
+   the global namespace.  */
+# if !@HAVE_WCSCASECMP@ || (defined __sun && defined __cplusplus)
 _GL_FUNCDECL_SYS (wcscasecmp, int, (const wchar_t *s1, const wchar_t *s2)
                                    _GL_ATTRIBUTE_PURE);
 # endif
@@ -874,7 +1020,10 @@ _GL_WARN_ON_USE (wcscasecmp, "wcscasecmp is unportable - "
 
 /* Compare no more than N chars of S1 and S2, ignoring case.  */
 #if @GNULIB_WCSNCASECMP@
-# if !@HAVE_WCSNCASECMP@
+/* On Solaris 11.3, the header files declare the function in the std::
+   namespace, not in the global namespace.  So, force a declaration in
+   the global namespace.  */
+# if !@HAVE_WCSNCASECMP@ || (defined __sun && defined __cplusplus)
 _GL_FUNCDECL_SYS (wcsncasecmp, int,
                   (const wchar_t *s1, const wchar_t *s2, size_t n)
                   _GL_ATTRIBUTE_PURE);
@@ -941,36 +1090,51 @@ _GL_WARN_ON_USE (wcsxfrm, "wcsxfrm is unportable - "
 #  endif
 _GL_CXXALIAS_MDA (wcsdup, wchar_t *, (const wchar_t *s));
 # else
-#  if !@HAVE_WCSDUP@
-_GL_FUNCDECL_SYS (wcsdup, wchar_t *, (const wchar_t *s));
+/* On Solaris 11.3, the header files declare the function in the std::
+   namespace, not in the global namespace.  So, force a declaration in
+   the global namespace.  */
+#  if !@HAVE_WCSDUP@ || (defined __sun && defined __cplusplus) || __GNUC__ >= 11
+_GL_FUNCDECL_SYS (wcsdup, wchar_t *,
+                  (const wchar_t *s)
+                  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
 #  endif
 _GL_CXXALIAS_SYS (wcsdup, wchar_t *, (const wchar_t *s));
 # endif
 _GL_CXXALIASWARN (wcsdup);
-#elif defined GNULIB_POSIXCHECK
-# undef wcsdup
-# if HAVE_RAW_DECL_WCSDUP
+#else
+# if __GNUC__ >= 11 && !defined wcsdup
+/* For -Wmismatched-dealloc: Associate wcsdup with free or rpl_free.  */
+_GL_FUNCDECL_SYS (wcsdup, wchar_t *,
+                  (const wchar_t *s)
+                  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
+# 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");
-# endif
-#elif @GNULIB_MDA_WCSDUP@
+#  endif
+# elif @GNULIB_MDA_WCSDUP@
 /* On native Windows, map 'wcsdup' to '_wcsdup', so that -loldnames is not
    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
    platforms by defining GNULIB_NAMESPACE::wcsdup always.  */
-# if defined _WIN32 && !defined __CYGWIN__
-#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#   undef wcsdup
-#   define wcsdup _wcsdup
-#  endif
+#  if defined _WIN32 && !defined __CYGWIN__
+#   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#    undef wcsdup
+#    define wcsdup _wcsdup
+#   endif
 _GL_CXXALIAS_MDA (wcsdup, wchar_t *, (const wchar_t *s));
-# else
-_GL_FUNCDECL_SYS (wcsdup, wchar_t *, (const wchar_t *s));
-#  if @HAVE_DECL_WCSDUP@
+#  else
+_GL_FUNCDECL_SYS (wcsdup, wchar_t *,
+                  (const wchar_t *s)
+                  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
+#   if @HAVE_DECL_WCSDUP@
 _GL_CXXALIAS_SYS (wcsdup, wchar_t *, (const wchar_t *s));
+#   endif
 #  endif
-# endif
-# if (defined _WIN32 && !defined __CYGWIN__) || @HAVE_DECL_WCSDUP@
+#  if (defined _WIN32 && !defined __CYGWIN__) || @HAVE_DECL_WCSDUP@
 _GL_CXXALIASWARN (wcsdup);
+#  endif
 # endif
 #endif
 
@@ -1110,12 +1274,25 @@ _GL_WARN_ON_USE (wcspbrk, "wcspbrk is unportable - "
 
 /* Find the first occurrence of NEEDLE in HAYSTACK.  */
 #if @GNULIB_WCSSTR@
-# if !@HAVE_WCSSTR@
+# if @REPLACE_WCSSTR@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef wcsstr
+#   define wcsstr rpl_wcsstr
+#  endif
+_GL_FUNCDECL_RPL (wcsstr, wchar_t *,
+                  (const wchar_t *restrict haystack,
+                   const wchar_t *restrict needle)
+                  _GL_ATTRIBUTE_PURE);
+_GL_CXXALIAS_RPL (wcsstr, wchar_t *,
+                  (const wchar_t *restrict haystack,
+                   const wchar_t *restrict needle));
+# else
+#  if !@HAVE_WCSSTR@
 _GL_FUNCDECL_SYS (wcsstr, wchar_t *,
                   (const wchar_t *restrict haystack,
                    const wchar_t *restrict needle)
                   _GL_ATTRIBUTE_PURE);
-# endif
+#  endif
   /* On some systems, this function is defined as an overloaded function:
        extern "C++" {
          const wchar_t * std::wcsstr (const wchar_t *, const wchar_t *);
@@ -1126,6 +1303,7 @@ _GL_CXXALIAS_SYS_CAST2 (wcsstr,
                         (const wchar_t *restrict, const wchar_t *restrict),
                         const wchar_t *,
                         (const wchar_t *restrict, const wchar_t *restrict));
+# endif
 # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
      && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
 _GL_CXXALIASWARN1 (wcsstr, wchar_t *,
index 5c9fd79..48a6c8e 100644 (file)
@@ -1,5 +1,5 @@
 /* Convert wide character to multibyte character.
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2008.
 
    This file is free software: you can redistribute it and/or modify
index 150221d..7d3e14a 100644 (file)
@@ -1,6 +1,6 @@
 /* Inline functions for <wctype.h>.
 
-   Copyright (C) 2012-2021 Free Software Foundation, Inc.
+   Copyright (C) 2012-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 652d811..227fdac 100644 (file)
@@ -1,6 +1,6 @@
 /* A substitute for ISO C99 <wctype.h>, for platforms that lack it.
 
-   Copyright (C) 2006-2021 Free Software Foundation, Inc.
+   Copyright (C) 2006-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
 
 #ifndef _@GUARD_PREFIX@_WCTYPE_H
 
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, GNULIB_POSIXCHECK,
+   HAVE_RAW_DECL_*.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 #if @HAVE_WINT_T@
 /* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>.  */
 # include <wchar.h>
@@ -68,9 +74,6 @@
 #ifndef _@GUARD_PREFIX@_WCTYPE_H
 #define _@GUARD_PREFIX@_WCTYPE_H
 
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
 _GL_INLINE_HEADER_BEGIN
 #ifndef _GL_WCTYPE_INLINE
 # define _GL_WCTYPE_INLINE _GL_INLINE
index 7f11211..1d03665 100644 (file)
@@ -1,5 +1,5 @@
 /* Determine the number of screen columns needed for a character.
-   Copyright (C) 2006-2007, 2010-2021 Free Software Foundation, Inc.
+   Copyright (C) 2006-2007, 2010-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 7999b23..9d36f53 100644 (file)
@@ -1,5 +1,5 @@
 /* Init guards, somewhat like spinlocks (native Windows implementation).
-   Copyright (C) 2005-2021 Free Software Foundation, Inc.
+   Copyright (C) 2005-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 2edfeaa..ab7258c 100644 (file)
@@ -1,5 +1,5 @@
 /* Plain mutexes (native Windows implementation).
-   Copyright (C) 2005-2021 Free Software Foundation, Inc.
+   Copyright (C) 2005-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 5ecf9f8..039eb70 100644 (file)
@@ -1,5 +1,5 @@
 /* Plain mutexes (native Windows implementation).
-   Copyright (C) 2005-2021 Free Software Foundation, Inc.
+   Copyright (C) 2005-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 8dcd37c..0d28281 100644 (file)
@@ -1,5 +1,5 @@
 /* Once-only control (native Windows implementation).
-   Copyright (C) 2005-2021 Free Software Foundation, Inc.
+   Copyright (C) 2005-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 58632f9..5488568 100644 (file)
@@ -1,5 +1,5 @@
 /* Once-only control (native Windows implementation).
-   Copyright (C) 2005-2021 Free Software Foundation, Inc.
+   Copyright (C) 2005-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index cfc94b4..a8ce9a0 100644 (file)
@@ -1,5 +1,5 @@
 /* Plain recursive mutexes (native Windows implementation).
-   Copyright (C) 2005-2021 Free Software Foundation, Inc.
+   Copyright (C) 2005-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 174fe73..08ff459 100644 (file)
@@ -1,5 +1,5 @@
 /* Plain recursive mutexes (native Windows implementation).
-   Copyright (C) 2005-2021 Free Software Foundation, Inc.
+   Copyright (C) 2005-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index d63936c..7cbd7bb 100644 (file)
@@ -1,5 +1,5 @@
 /* Read-write locks (native Windows implementation).
-   Copyright (C) 2005-2021 Free Software Foundation, Inc.
+   Copyright (C) 2005-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 280c9f2..fe8381e 100644 (file)
@@ -1,5 +1,5 @@
 /* Read-write locks (native Windows implementation).
-   Copyright (C) 2005-2021 Free Software Foundation, Inc.
+   Copyright (C) 2005-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 9cb4b20..96b9ad3 100644 (file)
@@ -1,5 +1,5 @@
 /* Search wide character array for a wide character.
-   Copyright (C) 1999, 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2011-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 1999.
 
    This file is free software: you can redistribute it and/or modify
index 78742e2..5d28247 100644 (file)
@@ -1,5 +1,5 @@
 /* Search wide character array for a wide character.
-   Copyright (C) 2011-2021 Free Software Foundation, Inc.
+   Copyright (C) 2011-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2011.
 
    This file is free software: you can redistribute it and/or modify
index 1d7588a..6803ecb 100644 (file)
@@ -1,5 +1,5 @@
 /* Copy wide character array, return pointer after last written wide character.
-   Copyright (C) 2020-2021 Free Software Foundation, Inc.
+   Copyright (C) 2020-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 1bf0a9e..7605eee 100644 (file)
@@ -1,11 +1,11 @@
 /* Report a memory allocation failure and exit.
 
-   Copyright (C) 1997-2000, 2002-2004, 2006, 2009-2021 Free Software
+   Copyright (C) 1997-2000, 2002-2004, 2006, 2009-2023 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 4184f33..5dbdfb5 100644 (file)
@@ -1,6 +1,6 @@
 /* xalloc-oversized.h -- memory allocation size checking
 
-   Copyright (C) 1990-2000, 2003-2004, 2006-2021 Free Software Foundation, Inc.
+   Copyright (C) 1990-2000, 2003-2004, 2006-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
index 05e2daa..0a951e1 100644 (file)
@@ -1,10 +1,10 @@
 /* xalloc.h -- malloc with out-of-memory checking
 
-   Copyright (C) 1990-2000, 2003-2004, 2006-2021 Free Software Foundation, Inc.
+   Copyright (C) 1990-2000, 2003-2004, 2006-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
 #ifndef XALLOC_H_
 #define XALLOC_H_
 
+/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _Noreturn,
+   _GL_ATTRIBUTE_ALLOC_SIZE, _GL_ATTRIBUTE_MALLOC,
+   _GL_ATTRIBUTE_RETURNS_NONNULL.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 #include <stddef.h>
 #include <stdlib.h>
-#include <stdint.h>
 
 #if GNULIB_XALLOC
 # include "idx.h"
-# include "intprops.h"
 #endif
 
-#ifndef _GL_INLINE_HEADER_BEGIN
- #error "Please include config.h first."
-#endif
 _GL_INLINE_HEADER_BEGIN
 #ifndef XALLOC_INLINE
 # define XALLOC_INLINE _GL_INLINE
@@ -60,6 +62,9 @@ void *xmalloc (size_t s)
 void *ximalloc (idx_t s)
   _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE
   _GL_ATTRIBUTE_ALLOC_SIZE ((1)) _GL_ATTRIBUTE_RETURNS_NONNULL;
+void *xinmalloc (idx_t n, idx_t s)
+  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE
+  _GL_ATTRIBUTE_ALLOC_SIZE ((1, 2)) _GL_ATTRIBUTE_RETURNS_NONNULL;
 void *xzalloc (size_t s)
   _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE
   _GL_ATTRIBUTE_ALLOC_SIZE ((1)) _GL_ATTRIBUTE_RETURNS_NONNULL;
@@ -128,14 +133,9 @@ char *xstrdup (char const *str)
 /* Allocate an array of N objects, each with S bytes of memory,
    dynamically, with error checking.  S must be nonzero.  */
 
-XALLOC_INLINE void *xnmalloc (size_t n, size_t s)
+void *xnmalloc (size_t n, size_t s)
   _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE
   _GL_ATTRIBUTE_ALLOC_SIZE ((1, 2)) _GL_ATTRIBUTE_RETURNS_NONNULL;
-XALLOC_INLINE void *
-xnmalloc (size_t n, size_t s)
-{
-  return xreallocarray (NULL, n, s);
-}
 
 /* FIXME: Deprecate this in favor of xreallocarray?  */
 /* Change the size of an allocated block of memory P to an array of N
@@ -152,14 +152,9 @@ xnrealloc (void *p, size_t n, size_t s)
 /* Return a pointer to a new buffer of N bytes.  This is like xmalloc,
    except it returns char *.  */
 
-XALLOC_INLINE char *xcharalloc (size_t n)
+char *xcharalloc (size_t n)
   _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE
   _GL_ATTRIBUTE_ALLOC_SIZE ((1)) _GL_ATTRIBUTE_RETURNS_NONNULL;
-XALLOC_INLINE char *
-xcharalloc (size_t n)
-{
-  return XNMALLOC (n, char);
-}
 
 #endif /* GNULIB_XALLOC */
 
index b9e3883..e776ff7 100644 (file)
@@ -1,5 +1,5 @@
 /* Open a file, reusing a given stream, with error checking.
-   Copyright (C) 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 2008-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index adfb9b9..dc124c3 100644 (file)
@@ -1,9 +1,9 @@
 /* Open a file, reusing a given stream, with error checking.
-   Copyright (C) 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published
-   by the Free Software Foundation; either version 3 of the License,
+   by the Free Software Foundation, either version 3 of the License,
    or (at your option) any later version.
 
    This file is distributed in the hope that it will be useful,
index 81bb427..289cbd0 100644 (file)
@@ -1,10 +1,10 @@
 /* xmalloc.c -- malloc with out of memory checking
 
-   Copyright (C) 1990-2000, 2002-2006, 2008-2021 Free Software Foundation, Inc.
+   Copyright (C) 1990-2000, 2002-2006, 2008-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
 #include "xalloc.h"
 
 #include "ialloc.h"
-#include "intprops.h"
 #include "minmax.h"
 
+#include <stdckdint.h>
 #include <stdlib.h>
+#include <stdint.h>
 #include <string.h>
 
 static void * _GL_ATTRIBUTE_PURE
@@ -50,6 +51,12 @@ ximalloc (idx_t s)
   return nonnull (imalloc (s));
 }
 
+char *
+xcharalloc (size_t n)
+{
+  return XNMALLOC (n, char);
+}
+
 /* Change the size of an allocated block of memory P to S bytes,
    with error checking.  */
 
@@ -86,6 +93,21 @@ xireallocarray (void *p, idx_t n, idx_t s)
   return nonnull (ireallocarray (p, n, s));
 }
 
+/* Allocate an array of N objects, each with S bytes of memory,
+   dynamically, with error checking.  S must be nonzero.  */
+
+void *
+xnmalloc (size_t n, size_t s)
+{
+  return xreallocarray (NULL, n, s);
+}
+
+void *
+xinmalloc (idx_t n, idx_t s)
+{
+  return xireallocarray (NULL, n, s);
+}
+
 /* If P is null, allocate a block of at least *PS bytes; otherwise,
    reallocate P so that it contains more than *PS bytes.  *PS must be
    nonzero unless P is null.  Set *PS to the new block's size, and
@@ -174,7 +196,7 @@ x2nrealloc (void *p, size_t *pn, size_t s)
   else
     {
       /* Set N = floor (1.5 * N) + 1 to make progress even if N == 0.  */
-      if (INT_ADD_WRAPV (n, (n >> 1) + 1, &n))
+      if (ckd_add (&n, n, (n >> 1) + 1))
         xalloc_die ();
     }
 
@@ -215,7 +237,7 @@ xpalloc (void *pa, idx_t *pn, idx_t n_incr_min, ptrdiff_t n_max, idx_t s)
      N_MAX, and what the C language can represent safely.  */
 
   idx_t n;
-  if (INT_ADD_WRAPV (n0, n0 >> 1, &n))
+  if (ckd_add (&n, n0, n0 >> 1))
     n = IDX_MAX;
   if (0 <= n_max && n_max < n)
     n = n_max;
@@ -230,7 +252,7 @@ xpalloc (void *pa, idx_t *pn, idx_t n_incr_min, ptrdiff_t n_max, idx_t s)
   size_t nbytes;
 #endif
   idx_t adjusted_nbytes
-    = (INT_MULTIPLY_WRAPV (n, s, &nbytes)
+    = (ckd_mul (&nbytes, n, s)
        ? MIN (IDX_MAX, SIZE_MAX)
        : nbytes < DEFAULT_MXFAST ? DEFAULT_MXFAST : 0);
   if (adjusted_nbytes)
@@ -242,9 +264,9 @@ xpalloc (void *pa, idx_t *pn, idx_t n_incr_min, ptrdiff_t n_max, idx_t s)
   if (! pa)
     *pn = 0;
   if (n - n0 < n_incr_min
-      && (INT_ADD_WRAPV (n0, n_incr_min, &n)
+      && (ckd_add (&n, n0, n_incr_min)
           || (0 <= n_max && n_max < n)
-          || INT_MULTIPLY_WRAPV (n, s, &nbytes)))
+          || ckd_mul (&nbytes, n, s)))
     xalloc_die ();
   pa = xrealloc (pa, nbytes);
   *pn = n;
index 82db671..329ebd0 100644 (file)
@@ -1,10 +1,10 @@
 /* Safe automatic memory allocation with out of memory checking.
-   Copyright (C) 2003, 2006-2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2006-2007, 2009-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2003.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index dbc6486..9ef41c6 100644 (file)
@@ -1,10 +1,10 @@
 /* Safe automatic memory allocation with out of memory checking.
-   Copyright (C) 2003, 2005, 2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2005, 2007, 2009-2023 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2003.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
 #ifndef _XMALLOCA_H
 #define _XMALLOCA_H
 
+/* This file uses _GL_ATTRIBUTE_ALLOC_SIZE, _GL_ATTRIBUTE_DEALLOC,
+   _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_RETURNS_NONNULL, HAVE_ALLOCA.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
 #include "malloca.h"
 #include "xalloc.h"
 #include "xalloc-oversized.h"
@@ -39,7 +45,9 @@ extern "C" {
                 + (2 * sa_alignment_max - 1))                                \
                & ~(uintptr_t)(2 * sa_alignment_max - 1))                     \
    : xmmalloca (N))
-extern void * xmmalloca (size_t n);
+extern void * xmmalloca (size_t n)
+  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC (freea, 1)
+  _GL_ATTRIBUTE_ALLOC_SIZE ((1)) _GL_ATTRIBUTE_RETURNS_NONNULL;
 #else
 # define xmalloca(N) \
   xmalloc (N)
index d9348b5..de7755d 100644 (file)
@@ -1,10 +1,10 @@
 /* xreadlink.c -- readlink wrapper to return the link name in malloc'd storage
 
-   Copyright (C) 2001, 2003-2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2003-2007, 2009-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index ef749ba..44f848f 100644 (file)
@@ -1,11 +1,11 @@
 /* Reading symbolic links without size limitation.
 
-   Copyright (C) 2001, 2003-2004, 2007, 2009-2021 Free Software Foundation,
+   Copyright (C) 2001, 2003-2004, 2007, 2009-2023 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
 
 /* Written by Jim Meyering <jim@meyering.net>  */
 
-extern char *xreadlink (char const *filename);
+/* This file uses _GL_ATTRIBUTE_MALLOC.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
+#include <stdlib.h>
+
+extern char *xreadlink (char const *filename)
+  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE;
 
 #if GNULIB_XREADLINKAT
-extern char *xreadlinkat (int fd, char const *filename);
+extern char *xreadlinkat (int fd, char const *filename)
+  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE;
 #endif
index 7473f1d..76d4781 100644 (file)
@@ -1,9 +1,9 @@
 /* Ensure that stdin, stdout, stderr are open.
-   Copyright (C) 2019-2021 Free Software Foundation, Inc.
+   Copyright (C) 2019-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 9531052..c317bff 100644 (file)
@@ -1,9 +1,9 @@
 /* Ensure that stdin, stdout, stderr are open.
-   Copyright (C) 2019-2021 Free Software Foundation, Inc.
+   Copyright (C) 2019-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
index 687a00b..77b7ac0 100644 (file)
@@ -1,10 +1,10 @@
 /* Charset conversion with out-of-memory checking.
-   Copyright (C) 2001-2004, 2006, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2001-2004, 2006, 2009-2023 Free Software Foundation, Inc.
    Written by Bruno Haible.
 
    This 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
+   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,
index 1f69fa3..5a3a663 100644 (file)
@@ -1,10 +1,10 @@
 /* Charset conversion with out-of-memory checking.
-   Copyright (C) 2001-2004, 2006-2007, 2009-2021 Free Software Foundation, Inc.
+   Copyright (C) 2001-2004, 2006-2007, 2009-2023 Free Software Foundation, Inc.
    Written by Bruno Haible and Simon Josefsson.
 
    This 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
+   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,
 #ifndef _XSTRICONV_H
 #define _XSTRICONV_H
 
-#include <stddef.h>
+/* This file uses _GL_ATTRIBUTE_MALLOC, HAVE_ICONV.  */
+#if !_GL_CONFIG_H_INCLUDED
+ #error "Please include config.h first."
+#endif
+
+#include <stdlib.h>
 #if HAVE_ICONV
 #include <iconv.h>
 #endif
@@ -54,7 +59,8 @@ extern int xmem_cd_iconv (const char *src, size_t srclen, iconv_t cd,
    Upon memory allocation failure, report the error and exit.
    Return value: the freshly allocated resulting NUL-terminated string if
    successful, otherwise NULL and errno set.  */
-extern char * xstr_cd_iconv (const char *src, iconv_t cd);
+extern char * xstr_cd_iconv (const char *src, iconv_t cd)
+  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE;
 
 #endif
 
@@ -67,7 +73,8 @@ extern char * xstr_cd_iconv (const char *src, iconv_t cd);
    Return value: the freshly allocated resulting NUL-terminated string if
    successful, otherwise NULL and errno set.  */
 extern char * xstr_iconv (const char *src,
-                          const char *from_codeset, const char *to_codeset);
+                          const char *from_codeset, const char *to_codeset)
+  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE;
 
 
 #ifdef __cplusplus
index 17bd54c..1064bc3 100644 (file)
@@ -1,10 +1,10 @@
 /* A more useful interface to strtoimax.
 
-   Copyright (C) 2001-2021 Free Software Foundation, Inc.
+   Copyright (C) 2001-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published
-   by the Free Software Foundation; either version 3 of the License,
+   by the Free Software Foundation, either version 3 of the License,
    or (at your option) any later version.
 
    This file is distributed in the hope that it will be useful,
@@ -20,4 +20,5 @@
 #define __xstrtol xstrtoimax
 #define STRTOL_T_MINIMUM INTMAX_MIN
 #define STRTOL_T_MAXIMUM INTMAX_MAX
+#define XSTRTOL_INCLUDE_INTTYPES_H 1
 #include "xstrtol.c"
index 2eab22a..6a8e042 100644 (file)
@@ -1,11 +1,11 @@
 /* A more useful interface to strtol.
 
-   Copyright (C) 1995-1996, 1998-2001, 2003-2007, 2009-2021 Free Software
+   Copyright (C) 1995-1996, 1998-2001, 2003-2007, 2009-2023 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
 #include <ctype.h>
 #include <errno.h>
 #include <limits.h>
+#include <stdckdint.h>
 #include <stdlib.h>
 #include <string.h>
 
-#include "assure.h"
+#if XSTRTOL_INCLUDE_INTTYPES_H
+# include <inttypes.h>
+#endif
 
-#define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
+#include "assure.h"
+#include "intprops.h"
 
 static strtol_error
 bkm_scale (__strtol_t *x, int scale_factor)
 {
-  if (TYPE_SIGNED (__strtol_t) && *x < STRTOL_T_MINIMUM / scale_factor)
-    {
-      *x = STRTOL_T_MINIMUM;
-      return LONGINT_OVERFLOW;
-    }
-  if (STRTOL_T_MAXIMUM / scale_factor < *x)
+  __strtol_t scaled;
+  if (ckd_mul (&scaled, *x, scale_factor))
     {
-      *x = STRTOL_T_MAXIMUM;
+      *x = *x < 0 ? TYPE_MINIMUM (__strtol_t) : TYPE_MAXIMUM (__strtol_t);
       return LONGINT_OVERFLOW;
     }
-  *x *= scale_factor;
+
+  *x = scaled;
+
   return LONGINT_OK;
 }
 
@@ -139,7 +141,7 @@ __xstrtol (const char *s, char **ptr, int strtol_base,
       switch (**p)
         {
         case 'E': case 'G': case 'g': case 'k': case 'K': case 'M': case 'm':
-        case 'P': case 'T': case 't': case 'Y': case 'Z':
+        case 'P': case 'Q': case 'R': case 'T': case 't': case 'Y': case 'Z':
 
           /* The "valid suffix" '0' is a special flag meaning that
              an optional second suffix is allowed, which can change
@@ -204,6 +206,14 @@ __xstrtol (const char *s, char **ptr, int strtol_base,
           overflow = bkm_scale_by_power (&tmp, base, 5);
           break;
 
+        case 'Q': /* quetta or 2**100 */
+          overflow = bkm_scale_by_power (&tmp, base, 10);
+          break;
+
+        case 'R': /* ronna or 2**90 */
+          overflow = bkm_scale_by_power (&tmp, base, 9);
+          break;
+
         case 'T': /* tera or tebi */
         case 't': /* 't' is undocumented; for compatibility only */
           overflow = bkm_scale_by_power (&tmp, base, 4);
index b873033..f70119a 100644 (file)
@@ -1,11 +1,11 @@
 /* A more useful interface to strtol.
 
-   Copyright (C) 1995-1996, 1998-1999, 2001-2004, 2006-2021 Free Software
+   Copyright (C) 1995-1996, 1998-1999, 2001-2004, 2006-2023 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -19,7 +19,8 @@
 #ifndef XSTRTOL_H_
 # define XSTRTOL_H_ 1
 
-# include <inttypes.h>
+/* Get intmax_t, uintmax_t.  */
+# include <stdint.h>
 
 # ifndef _STRTOL_ERROR
 enum strtol_error
index c705a4c..33c38d4 100644 (file)
@@ -1,10 +1,10 @@
 /* Convert string to 'unsigned long', with error checking.
 
-   Copyright (C) 1994-2021 Free Software Foundation, Inc.
+   Copyright (C) 1994-2023 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published
-   by the Free Software Foundation; either version 3 of the License,
+   by the Free Software Foundation, either version 3 of the License,
    or (at your option) any later version.
 
    This file is distributed in the hope that it will be useful,
diff --git a/lib/xvasprintf.c b/lib/xvasprintf.c
deleted file mode 100644 (file)
index 7bf9c09..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-/* vasprintf and asprintf with out-of-memory checking.
-   Copyright (C) 1999, 2002-2004, 2006-2021 Free Software Foundation, Inc.
-
-   This 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 "xvasprintf.h"
-
-#include <errno.h>
-#include <limits.h>
-#include <string.h>
-#include <stdio.h>
-
-#include "xalloc.h"
-
-/* Checked size_t computations.  */
-#include "xsize.h"
-
-static char *
-xstrcat (size_t argcount, va_list args)
-{
-  char *result;
-  va_list ap;
-  size_t totalsize;
-  size_t i;
-  char *p;
-
-  /* Determine the total size.  */
-  totalsize = 0;
-  va_copy (ap, args);
-  for (i = argcount; i > 0; i--)
-    {
-      const char *next = va_arg (ap, const char *);
-      totalsize = xsum (totalsize, strlen (next));
-    }
-  va_end (ap);
-
-  /* Test for overflow in the summing pass above or in (totalsize + 1) below.
-     Also, don't return a string longer than INT_MAX, for consistency with
-     vasprintf().  */
-  if (totalsize == SIZE_MAX || totalsize > INT_MAX)
-    {
-      errno = EOVERFLOW;
-      return NULL;
-    }
-
-  /* Allocate and fill the result string.  */
-  result = XNMALLOC (totalsize + 1, char);
-  p = result;
-  for (i = argcount; i > 0; i--)
-    {
-      const char *next = va_arg (args, const char *);
-      size_t len = strlen (next);
-      memcpy (p, next, len);
-      p += len;
-    }
-  *p = '\0';
-
-  return result;
-}
-
-char *
-xvasprintf (const char *format, va_list args)
-{
-  char *result;
-
-  /* Recognize the special case format = "%s...%s".  It is a frequently used
-     idiom for string concatenation and needs to be fast.  We don't want to
-     have a separate function xstrcat() for this purpose.  */
-  {
-    size_t argcount = 0;
-    const char *f;
-
-    for (f = format;;)
-      {
-        if (*f == '\0')
-          /* Recognized the special case of string concatenation.  */
-          return xstrcat (argcount, args);
-        if (*f != '%')
-          break;
-        f++;
-        if (*f != 's')
-          break;
-        f++;
-        argcount++;
-      }
-  }
-
-  if (vasprintf (&result, format, args) < 0)
-    {
-      if (errno == ENOMEM)
-        xalloc_die ();
-      return NULL;
-    }
-
-  return result;
-}
diff --git a/lib/xvasprintf.h b/lib/xvasprintf.h
deleted file mode 100644 (file)
index 4da42c6..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/* vasprintf and asprintf with out-of-memory checking.
-   Copyright (C) 2002-2004, 2006-2021 Free Software Foundation, Inc.
-
-   This 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/>.  */
-
-#ifndef _XVASPRINTF_H
-#define _XVASPRINTF_H
-
-/* Get va_list.  */
-#include <stdarg.h>
-
-/* Get _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD.  */
-#include <stdio.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Write formatted output to a string dynamically allocated with malloc(),
-   and return it.  Upon [ENOMEM] memory allocation error, call xalloc_die.
-   On some other error
-     - [EOVERFLOW] resulting string length is > INT_MAX,
-     - [EINVAL] invalid format string,
-     - [EILSEQ] error during conversion between wide and multibyte characters,
-   return NULL.  */
-extern char *xasprintf (const char *format, ...)
-       _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 1, 2));
-extern char *xvasprintf (const char *format, va_list args)
-       _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 1, 0));
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _XVASPRINTF_H */
index 9ba1743..7fe03e0 100644 (file)
@@ -1,5 +1,5 @@
 # 00gnulib.m4 serial 8
-dnl Copyright (C) 2009-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index b28cc6a..acf8668 100644 (file)
@@ -1,5 +1,5 @@
 # Test for __inline keyword
-dnl Copyright 2017-2021 Free Software Foundation, Inc.
+dnl Copyright 2017-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 52d80d0..e794764 100644 (file)
@@ -1,5 +1,5 @@
 # absolute-header.m4 serial 17
-dnl Copyright (C) 2006-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index ba2f679..c685fac 100644 (file)
@@ -1,5 +1,5 @@
-# alloca.m4 serial 20
-dnl Copyright (C) 2002-2004, 2006-2007, 2009-2021 Free Software Foundation,
+# alloca.m4 serial 21
+dnl Copyright (C) 2002-2004, 2006-2007, 2009-2023 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,
@@ -26,17 +26,15 @@ AC_DEFUN([gl_FUNC_ALLOCA],
       AC_DEFINE([HAVE_ALLOCA], [1],
         [Define to 1 if you have 'alloca' after including <alloca.h>,
          a header that may be supplied by this distribution.])
-      ALLOCA_H=alloca.h
+      GL_GENERATE_ALLOCA_H=true
     else
       dnl alloca exists as a library function, i.e. it is slow and probably
       dnl a memory leak. Don't define HAVE_ALLOCA in this case.
-      ALLOCA_H=
+      GL_GENERATE_ALLOCA_H=false
     fi
   else
-    ALLOCA_H=alloca.h
+    GL_GENERATE_ALLOCA_H=true
   fi
-  AC_SUBST([ALLOCA_H])
-  AM_CONDITIONAL([GL_GENERATE_ALLOCA_H], [test -n "$ALLOCA_H"])
 
   if test $ac_cv_working_alloca_h = yes; then
     HAVE_ALLOCA_H=1
index a3ba256..fa5fe83 100644 (file)
@@ -1,5 +1,5 @@
 # arpa_inet_h.m4 serial 17
-dnl Copyright (C) 2006, 2008-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2006, 2008-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 93b98be..65ae55a 100644 (file)
@@ -1,5 +1,5 @@
 # asm-underscore.m4 serial 5
-dnl Copyright (C) 2010-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2010-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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/m4/assert_h.m4 b/m4/assert_h.m4
new file mode 100644 (file)
index 0000000..d255855
--- /dev/null
@@ -0,0 +1,73 @@
+# assert-h.m4
+dnl Copyright (C) 2011-2023 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Paul Eggert.
+
+AC_DEFUN([gl_ASSERT_H],
+[
+  AC_CACHE_CHECK([for static_assert], [gl_cv_static_assert],
+    [gl_save_CFLAGS=$CFLAGS
+     for gl_working in "yes, a keyword" "yes, an <assert.h> macro"; do
+      AS_CASE([$gl_working],
+        [*assert.h*], [CFLAGS="$gl_save_CFLAGS -DINCLUDE_ASSERT_H"])
+
+      AC_COMPILE_IFELSE(
+       [AC_LANG_PROGRAM(
+          [[#if defined __clang__ && __STDC_VERSION__ < 202311
+             #pragma clang diagnostic error "-Wc2x-extensions"
+             #pragma clang diagnostic error "-Wc++1z-extensions"
+            #endif
+            #ifdef INCLUDE_ASSERT_H
+             #include <assert.h>
+            #endif
+            static_assert (2 + 2 == 4, "arithmetic does not work");
+            static_assert (2 + 2 == 4);
+          ]],
+          [[
+            static_assert (sizeof (char) == 1, "sizeof does not work");
+            static_assert (sizeof (char) == 1);
+          ]])],
+       [gl_cv_static_assert=$gl_working],
+       [gl_cv_static_assert=no])
+      CFLAGS=$gl_save_CFLAGS
+      test "$gl_cv_static_assert" != no && break
+     done])
+
+  GL_GENERATE_ASSERT_H=false
+  AS_CASE([$gl_cv_static_assert],
+    [yes*keyword*],
+      [AC_DEFINE([HAVE_C_STATIC_ASSERT], [1],
+         [Define to 1 if the static_assert keyword works.])],
+    [no],
+      [GL_GENERATE_ASSERT_H=true
+       gl_NEXT_HEADERS([assert.h])])
+
+  dnl The "zz" puts this toward config.h's end, to avoid potential
+  dnl collisions with other definitions.
+  dnl #undef assert so that programs are not tempted to use it without
+  dnl specifically including assert.h.
+  dnl #undef __ASSERT_H__ so that on IRIX, when programs later include
+  dnl <assert.h>, this include actually defines assert.
+  dnl Break the #undef_s apart with a comment so that 'configure' does
+  dnl not comment them out.
+  AH_VERBATIM([zzstatic_assert],
+[#if (!defined HAVE_C_STATIC_ASSERT && !defined assert \
+     && (!defined __cplusplus \
+         || (__cpp_static_assert < 201411 \
+             && __GNUG__ < 6 && __clang_major__ < 6)))
+ #include <assert.h>
+ #undef/**/assert
+ #ifdef __sgi
+  #undef/**/__ASSERT_H__
+ #endif
+ /* Solaris 11.4 <assert.h> defines static_assert as a macro with 2 arguments.
+    We need it also to be invocable with a single argument.  */
+ #if defined __sun && (__STDC_VERSION__ - 0 >= 201112L) && !defined __cplusplus
+  #undef/**/static_assert
+  #define static_assert _Static_assert
+ #endif
+#endif])
+])
index 8b46626..8ab3bc9 100644 (file)
@@ -1,5 +1,5 @@
 # atoll.m4 serial 3
-dnl Copyright (C) 2008-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index d2b2fe8..1cd100a 100644 (file)
@@ -1,5 +1,5 @@
-# btowc.m4 serial 12
-dnl Copyright (C) 2008-2021 Free Software Foundation, Inc.
+# btowc.m4 serial 13
+dnl Copyright (C) 2008-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -88,6 +88,49 @@ int main ()
         fi
       ])
 
+    dnl On mingw, in the C locale, btowc is inconsistent with mbrtowc:
+    dnl mbrtowc avoids calling MultiByteToWideChar when MB_CUR_MAX is 1 and
+    dnl ___lc_codepage_func() is 0, but btowc is lacking this special case.
+    AC_CHECK_FUNCS_ONCE([mbrtowc])
+    AC_CACHE_CHECK([whether btowc is consistent with mbrtowc in the C locale],
+      [gl_cv_func_btowc_consistent],
+      [
+        AC_RUN_IFELSE(
+          [AC_LANG_SOURCE([[
+#include <stdlib.h>
+#include <string.h>
+#include <wchar.h>
+int main ()
+{
+#if HAVE_MBRTOWC
+  wint_t wc1 = btowc (0x80);
+  wchar_t wc2 = (wchar_t) 0xbadface;
+  char buf[1] = { 0x80 };
+  mbstate_t state;
+  memset (&state, 0, sizeof (mbstate_t));
+  if (mbrtowc (&wc2, buf, 1, &state) != 1 || wc1 != wc2)
+    return 1;
+#endif
+  return 0;
+}]])],
+          [gl_cv_func_btowc_consistent=yes],
+          [gl_cv_func_btowc_consistent=no],
+          [case "$host_os" in
+                     # Guess no on mingw.
+             mingw*) AC_EGREP_CPP([Problem], [
+#ifdef __MINGW32__
+ Problem
+#endif
+                       ],
+                       [gl_cv_func_btowc_consistent="guessing no"],
+                       [gl_cv_func_btowc_consistent="guessing yes"])
+                     ;;
+                     # Guess yes otherwise.
+             *)      gl_cv_func_btowc_consistent="guessing yes" ;;
+           esac
+          ])
+      ])
+
     case "$gl_cv_func_btowc_nul" in
       *yes) ;;
       *) REPLACE_BTOWC=1 ;;
@@ -96,10 +139,22 @@ int main ()
       *yes) ;;
       *) REPLACE_BTOWC=1 ;;
     esac
+    case "$gl_cv_func_btowc_consistent" in
+      *yes) ;;
+      *) REPLACE_BTOWC=1 ;;
+    esac
+    if test $REPLACE_BTOWC = 0; then
+      gl_MBRTOWC_C_LOCALE
+      case "$gl_cv_func_mbrtowc_C_locale_sans_EILSEQ" in
+        *yes) ;;
+        *) REPLACE_BTOWC=1 ;;
+      esac
+    fi
   fi
 ])
 
 # Prerequisites of lib/btowc.c.
 AC_DEFUN([gl_PREREQ_BTOWC], [
   :
+  AC_CHECK_FUNCS_ONCE([mbrtowc])
 ])
index c584116..531ed48 100644 (file)
@@ -1,6 +1,6 @@
 dnl Check for __builtin_expect.
 
-dnl Copyright 2016-2021 Free Software Foundation, Inc.
+dnl Copyright 2016-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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/m4/c-bool.m4 b/m4/c-bool.m4
new file mode 100644 (file)
index 0000000..f614371
--- /dev/null
@@ -0,0 +1,51 @@
+# Check for bool that conforms to C2023.
+
+dnl Copyright 2022-2023 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_C_BOOL],
+[
+  AC_CACHE_CHECK([for bool, true, false], [gl_cv_c_bool],
+    [AC_COMPILE_IFELSE(
+       [AC_LANG_SOURCE([[
+          #if true == false
+           #error "true == false"
+          #endif
+          extern bool b;
+          bool b = true == false;]])],
+       [gl_cv_c_bool=yes],
+       [gl_cv_c_bool=no])])
+  if test "$gl_cv_c_bool" = yes; then
+    AC_DEFINE([HAVE_C_BOOL], [1],
+      [Define to 1 if bool, true and false work as per C2023.])
+  fi
+
+  AC_CHECK_HEADERS_ONCE([stdbool.h])
+
+  dnl The "zz" puts this toward config.h's end, to avoid potential
+  dnl collisions with other definitions.
+  dnl If 'bool', 'true' and 'false' do not work, arrange for them to work.
+  dnl In C, this means including <stdbool.h> if it is not already included.
+  dnl However, if the preprocessor mistakenly treats 'true' as 0,
+  dnl define it to a bool expression equal to 1; this is needed in
+  dnl Sun C++ 5.11 (Oracle Solaris Studio 12.2, 2010) and older.
+  AH_VERBATIM([zzbool],
+[#ifndef HAVE_C_BOOL
+# if !defined __cplusplus && !defined __bool_true_false_are_defined
+#  if HAVE_STDBOOL_H
+#   include <stdbool.h>
+#  else
+#   if defined __SUNPRO_C
+#    error "<stdbool.h> is not usable with this configuration. To make it usable, add -D_STDC_C99= to $CC."
+#   else
+#    error "<stdbool.h> does not exist on this platform. Use gnulib module 'stdbool-c99' instead of gnulib module 'stdbool'."
+#   endif
+#  endif
+# endif
+# if !true
+#  define true (!false)
+# endif
+#endif])
+])
index 7cccb06..5f6c5d2 100644 (file)
@@ -1,21 +1,20 @@
 # Check prerequisites for compiling lib/c-stack.c.
 
-# Copyright (C) 2002-2004, 2008-2021 Free Software Foundation, Inc.
+# Copyright (C) 2002-2004, 2008-2023 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
 # Written by Paul Eggert.
 
-# serial 23
+# serial 25
 
 AC_DEFUN([gl_C_STACK],
 [
   dnl 'c-stack' needs -lsigsegv if and only if the 'sigsegv' module needs it.
-  if test "$with_libsigsegv" = yes; then
-    if test "$gl_cv_lib_sigsegv" = yes; then
-      AC_SUBST([LIBCSTACK], [$LIBSIGSEGV])
-      AC_SUBST([LTLIBCSTACK], [$LTLIBSIGSEGV])
-    fi
+  AC_REQUIRE([gl_SIGSEGV])
+  if test $gl_sigsegv_uses_libsigsegv = yes; then
+    AC_SUBST([LIBCSTACK], [$LIBSIGSEGV])
+    AC_SUBST([LTLIBCSTACK], [$LTLIBSIGSEGV])
   fi
 ])
index fe12b15..3789cbf 100644 (file)
@@ -1,6 +1,6 @@
-# calloc.m4 serial 27
+# calloc.m4 serial 30
 
-# Copyright (C) 2004-2021 Free Software Foundation, Inc.
+# Copyright (C) 2004-2023 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -36,14 +36,14 @@ AC_DEFUN([_AC_FUNC_CALLOC_IF],
          [ac_cv_func_calloc_0_nonnull=no])
      else
        case "$host_os" in
-                        # Guess yes on glibc systems.
-         *-gnu* | gnu*) ac_cv_func_calloc_0_nonnull="guessing yes" ;;
-                        # Guess yes on musl systems.
-         *-musl*)       ac_cv_func_calloc_0_nonnull="guessing yes" ;;
-                        # Guess yes on native Windows.
-         mingw*)        ac_cv_func_calloc_0_nonnull="guessing yes" ;;
-                        # If we don't know, obey --enable-cross-guesses.
-         *)             ac_cv_func_calloc_0_nonnull="$gl_cross_guess_normal" ;;
+                             # Guess yes on glibc systems.
+         *-gnu* | gnu*)      ac_cv_func_calloc_0_nonnull="guessing yes" ;;
+                             # Guess yes on musl systems.
+         *-musl* | midipix*) ac_cv_func_calloc_0_nonnull="guessing yes" ;;
+                             # Guess yes on native Windows.
+         mingw*)             ac_cv_func_calloc_0_nonnull="guessing yes" ;;
+                             # If we don't know, obey --enable-cross-guesses.
+         *)                  ac_cv_func_calloc_0_nonnull="$gl_cross_guess_normal" ;;
        esac
      fi
     ])
@@ -58,8 +58,9 @@ AC_DEFUN([gl_FUNC_CALLOC_GNU],
 [
   AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
   AC_REQUIRE([gl_FUNC_CALLOC_POSIX])
-  if test $REPLACE_CALLOC = 0; then
-    _AC_FUNC_CALLOC_IF([], [REPLACE_CALLOC=1])
+  REPLACE_CALLOC_FOR_CALLOC_GNU="$REPLACE_CALLOC_FOR_CALLOC_POSIX"
+  if test $REPLACE_CALLOC_FOR_CALLOC_GNU = 0; then
+    _AC_FUNC_CALLOC_IF([], [REPLACE_CALLOC_FOR_CALLOC_GNU=1])
   fi
 ])# gl_FUNC_CALLOC_GNU
 
@@ -72,8 +73,8 @@ AC_DEFUN([gl_FUNC_CALLOC_POSIX],
 [
   AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
   AC_REQUIRE([gl_FUNC_MALLOC_POSIX])
-  if test $REPLACE_MALLOC = 1; then
-    REPLACE_CALLOC=1
+  if test $REPLACE_MALLOC_FOR_MALLOC_POSIX = 1; then
+    REPLACE_CALLOC_FOR_CALLOC_POSIX=1
   fi
   dnl Although in theory we should also test for size_t overflow,
   dnl in practice testing for ptrdiff_t overflow suffices
index c3b9e7e..d624a73 100644 (file)
@@ -1,13 +1,14 @@
-# clock_time.m4 serial 10
-dnl Copyright (C) 2002-2006, 2009-2021 Free Software Foundation, Inc.
+# clock_time.m4 serial 12
+dnl Copyright (C) 2002-2006, 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 
-# Check for clock_gettime and clock_settime, and set LIB_CLOCK_GETTIME.
+# Check for clock_getres, clock_gettime and clock_settime,
+# and set CLOCK_TIME_LIB.
 # For a program named, say foo, you should add a line like the following
 # in the corresponding Makefile.am file:
-# foo_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME)
+# foo_LDADD = $(LDADD) $(CLOCK_TIME_LIB)
 
 AC_DEFUN([gl_CLOCK_TIME],
 [
@@ -20,12 +21,15 @@ AC_DEFUN([gl_CLOCK_TIME],
   # Save and restore LIBS so e.g., -lrt, isn't added to it.  Otherwise, *all*
   # programs in the package would end up linked with that potentially-shared
   # library, inducing unnecessary run-time overhead.
-  LIB_CLOCK_GETTIME=
-  AC_SUBST([LIB_CLOCK_GETTIME])
+  CLOCK_TIME_LIB=
+  AC_SUBST([CLOCK_TIME_LIB])
   gl_saved_libs=$LIBS
     AC_SEARCH_LIBS([clock_gettime], [rt posix4],
                    [test "$ac_cv_search_clock_gettime" = "none required" ||
-                    LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime])
-    AC_CHECK_FUNCS([clock_gettime clock_settime])
+                    CLOCK_TIME_LIB=$ac_cv_search_clock_gettime])
+    AC_CHECK_FUNCS([clock_getres clock_gettime clock_settime])
   LIBS=$gl_saved_libs
+  # For backward compatibility.
+  LIB_CLOCK_GETTIME="$CLOCK_TIME_LIB"
+  AC_SUBST([LIB_CLOCK_GETTIME])
 ])
index 77a5047..0feabd6 100644 (file)
@@ -1,10 +1,10 @@
-# close.m4 serial 9
-dnl Copyright (C) 2008-2021 Free Software Foundation, Inc.
+# close.m4 serial 10
+dnl Copyright (C) 2008-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 
-AC_DEFUN([gl_FUNC_CLOSE],
+AC_DEFUN_ONCE([gl_FUNC_CLOSE],
 [
   AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
   m4_ifdef([gl_MSVC_INVAL], [
index 629f4ee..5804f47 100644 (file)
@@ -1,5 +1,5 @@
 # codeset.m4 serial 5 (gettext-0.18.2)
-dnl Copyright (C) 2000-2002, 2006, 2008-2014, 2016, 2019-2021 Free Software
+dnl Copyright (C) 2000-2002, 2006, 2008-2014, 2016, 2019-2023 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,
index b3be47b..185a3e4 100644 (file)
@@ -1,6 +1,6 @@
 # Say that -DHAVE_CONFIG_H is not needed.
 
-dnl Copyright (C) 2006, 2009-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2006, 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index efdae45..219f2ed 100644 (file)
@@ -1,5 +1,5 @@
 # ctype_h.m4 serial 9
-dnl Copyright (C) 2009-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index c9bbcef..1776e5e 100644 (file)
@@ -1,5 +1,5 @@
 # double-slash-root.m4 serial 4   -*- Autoconf -*-
-dnl Copyright (C) 2006, 2008-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2006, 2008-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 0753a32..e1cc73e 100644 (file)
@@ -1,5 +1,5 @@
 #serial 27
-dnl Copyright (C) 2002, 2005, 2007, 2009-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2005, 2007, 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 002f0c8..cb3e08f 100644 (file)
@@ -1,5 +1,5 @@
 # eealloc.m4 serial 3
-dnl Copyright (C) 2003, 2009-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index ae53291..741dfc5 100644 (file)
@@ -1,5 +1,5 @@
 # environ.m4 serial 8
-dnl Copyright (C) 2001-2004, 2006-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-2004, 2006-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 51dfe92..4c70d22 100644 (file)
@@ -1,5 +1,5 @@
-# errno_h.m4 serial 13
-dnl Copyright (C) 2004, 2006, 2008-2021 Free Software Foundation, Inc.
+# errno_h.m4 serial 14
+dnl Copyright (C) 2004, 2006, 2008-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -68,13 +68,11 @@ booboo
       [gl_cv_header_errno_h_complete=yes])
   ])
   if test $gl_cv_header_errno_h_complete = yes; then
-    ERRNO_H=''
+    GL_GENERATE_ERRNO_H=false
   else
     gl_NEXT_HEADERS([errno.h])
-    ERRNO_H='errno.h'
+    GL_GENERATE_ERRNO_H=true
   fi
-  AC_SUBST([ERRNO_H])
-  AM_CONDITIONAL([GL_GENERATE_ERRNO_H], [test -n "$ERRNO_H"])
   gl_REPLACE_ERRNO_VALUE([EMULTIHOP])
   gl_REPLACE_ERRNO_VALUE([ENOLINK])
   gl_REPLACE_ERRNO_VALUE([EOVERFLOW])
@@ -88,7 +86,7 @@ booboo
 # Set the variables EOVERFLOW_HIDDEN and EOVERFLOW_VALUE.
 AC_DEFUN([gl_REPLACE_ERRNO_VALUE],
 [
-  if test -n "$ERRNO_H"; then
+  if $GL_GENERATE_ERRNO_H; then
     AC_CACHE_CHECK([for ]$1[ value], [gl_cv_header_errno_h_]$1, [
       AC_EGREP_CPP([yes],[
 #include <errno.h>
index 77f67f7..93a7558 100644 (file)
@@ -1,6 +1,6 @@
-#serial 14
+#serial 16
 
-# Copyright (C) 1996-1998, 2001-2004, 2009-2021 Free Software Foundation, Inc.
+# Copyright (C) 1996-1998, 2001-2004, 2009-2023 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -8,20 +8,15 @@
 
 AC_DEFUN([gl_ERROR],
 [
-  dnl We don't use AC_FUNC_ERROR_AT_LINE any more, because it is no longer
-  dnl maintained in Autoconf and because it invokes AC_LIBOBJ.
-  AC_CACHE_CHECK([for error_at_line], [ac_cv_lib_error_at_line],
-    [AC_LINK_IFELSE(
-       [AC_LANG_PROGRAM(
-          [[#include <error.h>]],
-          [[error_at_line (0, 0, "", 0, "an error occurred");]])],
-       [ac_cv_lib_error_at_line=yes],
-       [ac_cv_lib_error_at_line=no])])
 ])
 
 # Prerequisites of lib/error.c.
 AC_DEFUN([gl_PREREQ_ERROR],
 [
+  dnl Use system extensions on Android, so that AC_FUNC_STRERROR_R
+  dnl discovers the GNU API for strerror_r on Android API level 23 and later.
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
   AC_REQUIRE([AC_FUNC_STRERROR_R])
   :
 ])
diff --git a/m4/error_h.m4 b/m4/error_h.m4
new file mode 100644 (file)
index 0000000..f38e4ea
--- /dev/null
@@ -0,0 +1,125 @@
+# error_h.m4 serial 3
+dnl Copyright (C) 1996-2023 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+dnl Provide a working "error.h".
+
+AC_DEFUN_ONCE([gl_ERROR_H],
+[
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+
+  gl_CHECK_NEXT_HEADERS([error.h])
+  if test $ac_cv_header_error_h = yes; then
+    HAVE_ERROR_H=1
+  else
+    HAVE_ERROR_H=0
+  fi
+  AC_SUBST([HAVE_ERROR_H])
+
+  REPLACE_ERROR=0
+
+  gl_CHECK_FUNCS_ANDROID([error], [[#include <error.h>]])
+  if test $ac_cv_func_error = yes; then
+    HAVE_ERROR=1
+  else
+    HAVE_ERROR=0
+    case "$gl_cv_onwards_func_error" in
+      future*) REPLACE_ERROR=1 ;;
+    esac
+  fi
+
+  dnl We don't use AC_FUNC_ERROR_AT_LINE any more, because it is no longer
+  dnl maintained in Autoconf and because it invokes AC_LIBOBJ.
+  dnl We need to notice a missing declaration, like gl_CHECK_FUNCS_ANDROID does.
+  AC_CHECK_DECL([error_at_line], , , [[#include <error.h>]])
+  if test $ac_cv_have_decl_error_at_line = yes; then
+    AC_CACHE_CHECK([for error_at_line], [ac_cv_lib_error_at_line],
+      [AC_LINK_IFELSE(
+         [AC_LANG_PROGRAM(
+            [[#include <error.h>]],
+            [[error_at_line (0, 0, "", 0, "an error occurred");]])],
+         [ac_cv_lib_error_at_line=yes],
+         [ac_cv_lib_error_at_line=no])])
+  else
+    ac_cv_lib_error_at_line=no
+  fi
+  if test $ac_cv_lib_error_at_line = yes; then
+    HAVE_ERROR_AT_LINE=1
+  else
+    HAVE_ERROR_AT_LINE=0
+  fi
+  REPLACE_ERROR_AT_LINE=0
+
+  if test $ac_cv_func_error = yes && test $ac_cv_lib_error_at_line = yes; then
+    dnl On Android 11, when error_print_progname is set, the output of the
+    dnl error() function contains an extra space.
+    AC_CACHE_CHECK([for working error function],
+      [gl_cv_func_working_error],
+      [if test $cross_compiling != yes; then
+         AC_LINK_IFELSE(
+           [AC_LANG_PROGRAM([[
+              #include <error.h>
+              static void print_no_progname (void) {}
+            ]], [[
+              error_print_progname = print_no_progname;
+              error (0, 0, "foo");
+            ]])
+           ],
+           [rm -f conftest.out
+            if test -s conftest$ac_exeext \
+               && ./conftest$ac_exeext 2> conftest.out; then
+              if grep ' ' conftest.out >/dev/null; then
+                gl_cv_func_working_error=no
+              else
+                gl_cv_func_working_error=yes
+              fi
+            else
+              gl_cv_func_working_error=no
+            fi
+            rm -f conftest.out
+           ],
+           [gl_cv_func_working_error=no])
+       else
+         AC_COMPILE_IFELSE(
+           [AC_LANG_PROGRAM([[
+              #include <error.h>
+            ]], [[
+              error (0, 0, "foo");
+            ]])
+           ],
+           [case "$host_os" in
+                               # Guess yes on glibc systems.
+              *-gnu* | gnu*)   gl_cv_func_working_error="guessing yes" ;;
+                               # Guess no on Android.
+              linux*-android*) gl_cv_func_working_error="guessing no" ;;
+                               # If we don't know, obey --enable-cross-guesses.
+              *)               gl_cv_func_working_error="$gl_cross_guess_normal" ;;
+            esac
+           ],
+           [gl_cv_func_working_error=no])
+       fi
+      ])
+    case "$gl_cv_func_working_error" in
+      *no)
+        REPLACE_ERROR=1
+        REPLACE_ERROR_AT_LINE=1
+        ;;
+    esac
+  fi
+
+  if test $HAVE_ERROR = 0 || test $REPLACE_ERROR = 1 \
+     || test $HAVE_ERROR_AT_LINE = 0 || test $REPLACE_ERROR_AT_LINE = 1; then
+    dnl Provide a substitute <error.h> file.
+    GL_GENERATE_ERROR_H=true
+  else
+    GL_GENERATE_ERROR_H=false
+  fi
+
+  AC_SUBST([HAVE_ERROR])
+  AC_SUBST([HAVE_ERROR_AT_LINE])
+  AC_SUBST([REPLACE_ERROR])
+  AC_SUBST([REPLACE_ERROR_AT_LINE])
+])
index fb136f4..163114b 100644 (file)
@@ -1,9 +1,9 @@
-# exponentd.m4 serial 3
-dnl Copyright (C) 2007-2008, 2010-2021 Free Software Foundation, Inc.
+# exponentd.m4 serial 4
+dnl Copyright (C) 2007-2008, 2010-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
-AC_DEFUN([gl_DOUBLE_EXPONENT_LOCATION],
+AC_DEFUN_ONCE([gl_DOUBLE_EXPONENT_LOCATION],
 [
   AC_CACHE_CHECK([where to find the exponent in a 'double'],
     [gl_cv_cc_double_expbit0],
index 5792a95..5336b8d 100644 (file)
@@ -1,7 +1,7 @@
-# serial 22  -*- Autoconf -*-
+# serial 23  -*- Autoconf -*-
 # Enable extensions on systems that normally disable them.
 
-# Copyright (C) 2003, 2006-2021 Free Software Foundation, Inc.
+# Copyright (C) 2003, 2006-2023 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -31,7 +31,7 @@ m4_ifndef([AC_CHECK_INCLUDES_DEFAULT],
 #      its dependencies. This will ensure that the gl_USE_SYSTEM_EXTENSIONS
 #      invocation occurs in gl_EARLY, not in gl_INIT.
 
-m4_version_prereq([2.70.1], [], [
+m4_version_prereq([2.72], [], [
 
 # AC_USE_SYSTEM_EXTENSIONS
 # ------------------------
@@ -113,11 +113,15 @@ AH_VERBATIM([USE_SYSTEM_EXTENSIONS],
 #ifndef __STDC_WANT_IEC_60559_DFP_EXT__
 # undef __STDC_WANT_IEC_60559_DFP_EXT__
 #endif
+/* Enable extensions specified by C23 Annex F.  */
+#ifndef __STDC_WANT_IEC_60559_EXT__
+# undef __STDC_WANT_IEC_60559_EXT__
+#endif
 /* Enable extensions specified by ISO/IEC TS 18661-4:2015.  */
 #ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__
 # undef __STDC_WANT_IEC_60559_FUNCS_EXT__
 #endif
-/* Enable extensions specified by ISO/IEC TS 18661-3:2015.  */
+/* Enable extensions specified by C23 Annex H and ISO/IEC TS 18661-3:2015.  */
 #ifndef __STDC_WANT_IEC_60559_TYPES_EXT__
 # undef __STDC_WANT_IEC_60559_TYPES_EXT__
 #endif
@@ -187,6 +191,7 @@ dnl it should only be defined when necessary.
   AC_DEFINE([__STDC_WANT_IEC_60559_ATTRIBS_EXT__])
   AC_DEFINE([__STDC_WANT_IEC_60559_BFP_EXT__])
   AC_DEFINE([__STDC_WANT_IEC_60559_DFP_EXT__])
+  AC_DEFINE([__STDC_WANT_IEC_60559_EXT__])
   AC_DEFINE([__STDC_WANT_IEC_60559_FUNCS_EXT__])
   AC_DEFINE([__STDC_WANT_IEC_60559_TYPES_EXT__])
   AC_DEFINE([__STDC_WANT_LIB_EXT2__])
index a2acf12..f9894d7 100644 (file)
@@ -1,13 +1,28 @@
 dnl 'extern inline' a la ISO C99.
 
-dnl Copyright 2012-2021 Free Software Foundation, Inc.
+dnl Copyright 2012-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 
 AC_DEFUN([gl_EXTERN_INLINE],
 [
-  AH_VERBATIM([extern_inline],
+  AC_CACHE_CHECK([whether ctype.h defines __header_inline],
+    [gl_cv_have___header_inline],
+    [AC_PREPROC_IFELSE(
+       [AC_LANG_SOURCE([[#include <ctype.h>
+                         #ifndef __header_inline
+                          #error "<ctype.h> does not define __header_inline"
+                         #endif
+                        ]])],
+       [gl_cv_have___header_inline=yes],
+       [gl_cv_have___header_inline=no])])
+  if test "$gl_cv_have___header_inline" = yes; then
+    AC_DEFINE([HAVE___HEADER_INLINE], [1],
+      [Define to 1 if ctype.h defines __header_inline.])
+  fi
+
+  AH_VERBATIM([HAVE___HEADER_INLINE_1],
 [/* Please see the Gnulib manual for how to use these macros.
 
    Suppress extern inline with HP-UX cc, as it appears to be broken; see
@@ -17,7 +32,8 @@ AC_DEFUN([gl_EXTERN_INLINE],
    mishandles inline functions that call each other.  E.g., for 'inline void f
    (void) { } inline void g (void) { f (); }', c99 incorrectly complains
    'reference to static identifier "f" in extern inline function'.
-   This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16.
+   This bug was observed with Oracle Developer Studio 12.6
+   (Sun C 5.15 SunOS_sparc 2017/05/30).
 
    Suppress extern inline (with or without __attribute__ ((__gnu_inline__)))
    on configurations that mistakenly use 'static inline' to implement
@@ -53,7 +69,7 @@ AC_DEFUN([gl_EXTERN_INLINE],
  */
 #if (((defined __APPLE__ && defined __MACH__) \
       || defined __DragonFly__ || defined __FreeBSD__) \
-     && (defined __header_inline \
+     && (defined HAVE___HEADER_INLINE \
          ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \
             && ! defined __clang__) \
          : ((! defined _DONT_USE_CTYPE_INLINE_ \
@@ -63,7 +79,8 @@ AC_DEFUN([gl_EXTERN_INLINE],
 # define _GL_EXTERN_INLINE_STDHEADER_BUG
 #endif
 #if ((__GNUC__ \
-      ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \
+      ? (defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \
+         && !defined __PCC__) \
       : (199901L <= __STDC_VERSION__ \
          && !defined __HP_cc \
          && !defined __PGI \
@@ -73,6 +90,7 @@ AC_DEFUN([gl_EXTERN_INLINE],
 # define _GL_EXTERN_INLINE extern inline
 # define _GL_EXTERN_INLINE_IN_USE
 #elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \
+       && !defined __PCC__ \
        && !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
 # if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__
    /* __gnu_inline__ suppresses a GCC 4.2 diagnostic.  */
@@ -83,8 +101,8 @@ AC_DEFUN([gl_EXTERN_INLINE],
 # define _GL_EXTERN_INLINE extern
 # define _GL_EXTERN_INLINE_IN_USE
 #else
-# define _GL_INLINE static _GL_UNUSED
-# define _GL_EXTERN_INLINE static _GL_UNUSED
+# define _GL_INLINE _GL_UNUSED static
+# define _GL_EXTERN_INLINE _GL_UNUSED static
 #endif
 
 /* In GCC 4.6 (inclusive) to 5.1 (exclusive),
diff --git a/m4/fclose.m4 b/m4/fclose.m4
new file mode 100644 (file)
index 0000000..e9291f0
--- /dev/null
@@ -0,0 +1,98 @@
+# fclose.m4 serial 11
+dnl Copyright (C) 2008-2023 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN_ONCE([gl_FUNC_FCLOSE],
+[
+  AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+  AC_REQUIRE([AC_CANONICAL_HOST])
+
+  gl_FUNC_FFLUSH_STDIN
+  case "$gl_cv_func_fflush_stdin" in
+    *yes) ;;
+    *) REPLACE_FCLOSE=1 ;;
+  esac
+
+  AC_REQUIRE([gl_FUNC_CLOSE])
+  if test $REPLACE_CLOSE = 1; then
+    REPLACE_FCLOSE=1
+  fi
+
+  case "$host_os" in
+    openedition) REPLACE_FCLOSE=1 ;;
+  esac
+
+  if test $REPLACE_FCLOSE = 0; then
+    gl_FUNC_FCLOSE_STDIN
+    case "$gl_cv_func_fclose_stdin" in
+      *yes) ;;
+      *) REPLACE_FCLOSE=1 ;;
+    esac
+  fi
+])
+
+dnl Determine whether fclose works on input streams.
+dnl Sets gl_cv_func_fclose_stdin.
+
+AC_DEFUN([gl_FUNC_FCLOSE_STDIN],
+[
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+  AC_CHECK_HEADERS_ONCE([unistd.h])
+  AC_CACHE_CHECK([whether fclose works on input streams],
+    [gl_cv_func_fclose_stdin],
+    [echo hello world > conftest.txt
+     AC_RUN_IFELSE(
+       [AC_LANG_PROGRAM(
+          [[#include <fcntl.h>
+            #include <stdio.h>
+            #if HAVE_UNISTD_H
+            # include <unistd.h>
+            #else /* on Windows with MSVC */
+            # include <io.h>
+            #endif
+           ]GL_MDA_DEFINES],
+          [[int fd;
+            int fd2;
+            FILE *fp;
+            fd = open ("conftest.txt", O_RDONLY);
+            if (fd < 0)
+              return 1;
+            if (lseek (fd, 1, SEEK_SET) != 1)
+              return 2;
+            fd2 = dup (fd);
+            if (fd2 < 0)
+              return 3;
+            fp = fdopen (fd2, "r");
+            if (fp == NULL)
+              return 4;
+            if (fgetc (fp) != 'e')
+              { fclose (fp); return 5; }
+            /* This fclose() call should reposition the underlying file
+               descriptor.  */
+            if (fclose (fp) != 0)
+              return 6;
+            if (lseek (fd2, 0, SEEK_CUR) != -1) /* should fail with EBADF */
+              return 7;
+            /* Verify the file position.  */
+            if (lseek (fd, 0, SEEK_CUR) != 2)
+              return 8;
+            return 0;
+          ]])],
+       [gl_cv_func_fclose_stdin=yes],
+       [gl_cv_func_fclose_stdin=no],
+       [case "$host_os" in
+                              # Guess no on glibc systems.
+          *-gnu* | gnu*)      gl_cv_func_fclose_stdin="guessing no" ;;
+                              # Guess yes on musl systems.
+          *-musl* | midipix*) gl_cv_func_fclose_stdin="guessing yes" ;;
+                              # Guess no on native Windows.
+          mingw*)             gl_cv_func_fclose_stdin="guessing no" ;;
+                              # If we don't know, obey --enable-cross-guesses.
+          *)                  gl_cv_func_fclose_stdin="$gl_cross_guess_normal" ;;
+        esac
+       ])
+     rm conftest.txt
+    ])
+])
index 7c459ad..59d558b 100644 (file)
@@ -1,5 +1,5 @@
 # fcntl-o.m4 serial 7
-dnl Copyright (C) 2006, 2009-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2006, 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index f626434..524a99a 100644 (file)
@@ -1,5 +1,5 @@
 # fcntl.m4 serial 11
-dnl Copyright (C) 2009-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index aba4473..68f4e64 100644 (file)
@@ -1,6 +1,6 @@
 # serial 20
 # Configure fcntl.h.
-dnl Copyright (C) 2006-2007, 2009-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2007, 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index e41ed63..6b3909b 100644 (file)
@@ -1,5 +1,5 @@
 # fdopen.m4 serial 5
-dnl Copyright (C) 2011-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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/m4/fflush.m4 b/m4/fflush.m4
new file mode 100644 (file)
index 0000000..3e3c890
--- /dev/null
@@ -0,0 +1,100 @@
+# fflush.m4 serial 18
+
+# Copyright (C) 2007-2023 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+dnl From Eric Blake
+
+dnl Find out how to obey POSIX semantics of fflush(stdin) discarding
+dnl unread input on seekable streams, rather than C99 undefined semantics.
+
+AC_DEFUN([gl_FUNC_FFLUSH],
+[
+  AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+  gl_FUNC_FFLUSH_STDIN
+  case "$gl_cv_func_fflush_stdin" in
+    *yes) ;;
+    *) REPLACE_FFLUSH=1 ;;
+  esac
+])
+
+dnl Determine whether fflush works on input streams.
+dnl Sets gl_cv_func_fflush_stdin.
+
+AC_DEFUN([gl_FUNC_FFLUSH_STDIN],
+[
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+  AC_CHECK_HEADERS_ONCE([unistd.h])
+  AC_CACHE_CHECK([whether fflush works on input streams],
+    [gl_cv_func_fflush_stdin],
+    [echo hello world > conftest.txt
+     AC_RUN_IFELSE([AC_LANG_PROGRAM(
+       [[
+#include <stdio.h>
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#else /* on Windows with MSVC */
+# include <io.h>
+#endif
+       ]GL_MDA_DEFINES],
+       [[FILE *f = fopen ("conftest.txt", "r");
+         char buffer[10];
+         int fd;
+         int c;
+         if (f == NULL)
+           return 1;
+         fd = fileno (f);
+         if (fd < 0 || fread (buffer, 1, 5, f) != 5)
+           { fclose (f); return 2; }
+         /* For deterministic results, ensure f read a bigger buffer.  */
+         if (lseek (fd, 0, SEEK_CUR) == 5)
+           { fclose (f); return 3; }
+         /* POSIX requires fflush-fseek to set file offset of fd.  This fails
+            on BSD systems and on mingw.  */
+         if (fflush (f) != 0 || fseek (f, 0, SEEK_CUR) != 0)
+           { fclose (f); return 4; }
+         if (lseek (fd, 0, SEEK_CUR) != 5)
+           { fclose (f); return 5; }
+         /* Verify behaviour of fflush after ungetc. See
+            <https://www.opengroup.org/austin/aardvark/latest/xshbug3.txt>  */
+         /* Verify behaviour of fflush after a backup ungetc.  This fails on
+            mingw.  */
+         c = fgetc (f);
+         ungetc (c, f);
+         fflush (f);
+         if (fgetc (f) != c)
+           { fclose (f); return 6; }
+         /* Verify behaviour of fflush after a non-backup ungetc.  This fails
+            on glibc 2.8 and on BSD systems.  */
+         c = fgetc (f);
+         ungetc ('@', f);
+         fflush (f);
+         if (fgetc (f) != c)
+           { fclose (f); return 7; }
+         fclose (f);
+         return 0;
+       ]])],
+       [gl_cv_func_fflush_stdin=yes],
+       [gl_cv_func_fflush_stdin=no],
+       [case "$host_os" in
+                  # Guess no on native Windows.
+          mingw*) gl_cv_func_fflush_stdin="guessing no" ;;
+          *)      gl_cv_func_fflush_stdin=cross ;;
+        esac
+       ])
+     rm conftest.txt
+    ])
+  case "$gl_cv_func_fflush_stdin" in
+    *yes) gl_func_fflush_stdin=1 ;;
+    *no)  gl_func_fflush_stdin=0 ;;
+    *)    gl_func_fflush_stdin='(-1)' ;;
+  esac
+  AC_DEFINE_UNQUOTED([FUNC_FFLUSH_STDIN], [$gl_func_fflush_stdin],
+    [Define to 1 if fflush is known to work on stdin as per POSIX.1-2008,
+     0 if fflush is known to not work, -1 if unknown.])
+])
+
+# Prerequisites of lib/fflush.c.
+AC_DEFUN([gl_PREREQ_FFLUSH], [:])
index e6eac12..3dab236 100644 (file)
@@ -1,5 +1,5 @@
-# filenamecat.m4 serial 11
-dnl Copyright (C) 2002-2006, 2009-2021 Free Software Foundation, Inc.
+# filenamecat.m4 serial 12
+dnl Copyright (C) 2002-2006, 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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,5 +12,5 @@ AC_DEFUN([gl_FILE_NAME_CONCAT],
 AC_DEFUN([gl_FILE_NAME_CONCAT_LGPL],
 [
   dnl Prerequisites of lib/filenamecat-lgpl.c.
-  AC_CHECK_FUNCS_ONCE([mempcpy])
+  gl_CHECK_FUNCS_ANDROID([mempcpy], [[#include <string.h>]])
 ])
index 49b1c75..13f7e87 100644 (file)
@@ -1,7 +1,7 @@
 # serial 5
 # Check for flexible array member support.
 
-# Copyright (C) 2006, 2009-2021 Free Software Foundation, Inc.
+# Copyright (C) 2006, 2009-2023 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
index ba38a28..2f0c9c4 100644 (file)
@@ -1,5 +1,5 @@
-# float_h.m4 serial 12
-dnl Copyright (C) 2007, 2009-2021 Free Software Foundation, Inc.
+# float_h.m4 serial 13
+dnl Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -8,18 +8,18 @@ AC_DEFUN([gl_FLOAT_H],
 [
   AC_REQUIRE([AC_PROG_CC])
   AC_REQUIRE([AC_CANONICAL_HOST])
-  FLOAT_H=
+  GL_GENERATE_FLOAT_H=false
   REPLACE_FLOAT_LDBL=0
   case "$host_os" in
     aix* | beos* | openbsd* | mirbsd* | irix*)
-      FLOAT_H=float.h
+      GL_GENERATE_FLOAT_H=true
       ;;
     freebsd* | dragonfly*)
       case "$host_cpu" in
 changequote(,)dnl
         i[34567]86 )
 changequote([,])dnl
-          FLOAT_H=float.h
+          GL_GENERATE_FLOAT_H=true
           ;;
         x86_64 )
           # On x86_64 systems, the C compiler may still be generating
@@ -33,21 +33,21 @@ changequote([,])dnl
                  #endif
                ]])],
             [],
-            [FLOAT_H=float.h])
+            [GL_GENERATE_FLOAT_H=true])
           ;;
       esac
       ;;
     linux*)
       case "$host_cpu" in
         powerpc*)
-          FLOAT_H=float.h
+          GL_GENERATE_FLOAT_H=true
           ;;
       esac
       ;;
   esac
   case "$host_os" in
     aix* | freebsd* | dragonfly* | linux*)
-      if test -n "$FLOAT_H"; then
+      if $GL_GENERATE_FLOAT_H; then
         REPLACE_FLOAT_LDBL=1
       fi
       ;;
@@ -95,14 +95,12 @@ int main ()
       REPLACE_ITOLD=1
       dnl We add the workaround to <float.h> but also to <math.h>,
       dnl to increase the chances that the fix function gets pulled in.
-      FLOAT_H=float.h
+      GL_GENERATE_FLOAT_H=true
       ;;
   esac
 
-  if test -n "$FLOAT_H"; then
+  if $GL_GENERATE_FLOAT_H; then
     gl_NEXT_HEADERS([float.h])
   fi
-  AC_SUBST([FLOAT_H])
-  AM_CONDITIONAL([GL_GENERATE_FLOAT_H], [test -n "$FLOAT_H"])
   AC_SUBST([REPLACE_ITOLD])
 ])
index 81589ca..895db13 100644 (file)
@@ -1,6 +1,6 @@
-# Check for fnmatch - serial 15.  -*- coding: utf-8 -*-
+# Check for fnmatch - serial 16.  -*- coding: utf-8 -*-
 
-# Copyright (C) 2000-2007, 2009-2021 Free Software Foundation, Inc.
+# Copyright (C) 2000-2007, 2009-2023 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -119,10 +119,10 @@ AC_DEFUN([gl_FUNC_FNMATCH_POSIX],
          [eval "$gl_fnmatch_cache_var=yes"],
          [eval "$gl_fnmatch_cache_var=no"],
          [case "$host_os" in
-                     # Guess yes on musl systems.
-            *-musl*) eval "$gl_fnmatch_cache_var=\"guessing yes\"" ;;
-                     # Guess no otherwise, even on glibc systems.
-            *)       eval "$gl_fnmatch_cache_var=\"guessing no\"" ;;
+                                # Guess yes on musl systems.
+            *-musl* | midipix*) eval "$gl_fnmatch_cache_var=\"guessing yes\"" ;;
+                                # Guess no otherwise, even on glibc systems.
+            *)                  eval "$gl_fnmatch_cache_var=\"guessing no\"" ;;
           esac
          ])
       ])
index e9bcb66..40a62b6 100644 (file)
@@ -1,5 +1,5 @@
-# fnmatch_h.m4 serial 7
-dnl Copyright (C) 2009-2021 Free Software Foundation, Inc.
+# fnmatch_h.m4 serial 8
+dnl Copyright (C) 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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,20 +27,18 @@ AC_DEFUN_ONCE([gl_FNMATCH_H],
   AC_SUBST([HAVE_FNMATCH_H])
 
   m4_ifdef([gl_POSIXCHECK],
-    [FNMATCH_H=fnmatch.h],
-    [FNMATCH_H=''
+    [GL_GENERATE_FNMATCH_H=true],
+    [GL_GENERATE_FNMATCH_H=false
      if m4_ifdef([gl_ANSI_CXX], [test "$CXX" != no], [false]); then
        dnl Override <fnmatch.h> always, to support the C++ GNULIB_NAMESPACE.
-       FNMATCH_H=fnmatch.h
+       GL_GENERATE_FNMATCH_H=true
      else
        if test $ac_cv_header_fnmatch_h != yes; then
          dnl Provide a substitute <fnmatch.h> file.
-         FNMATCH_H=fnmatch.h
+         GL_GENERATE_FNMATCH_H=true
        fi
      fi
     ])
-  AC_SUBST([FNMATCH_H])
-  AM_CONDITIONAL([GL_GENERATE_FNMATCH_H], [test -n "$FNMATCH_H"])
 
   dnl Check for declarations of anything we want to poison if the
   dnl corresponding gnulib module is not in use.
@@ -53,8 +51,7 @@ dnl Unconditionally enables the replacement of <fnmatch.h>.
 AC_DEFUN([gl_REPLACE_FNMATCH_H],
 [
   gl_FNMATCH_H_REQUIRE_DEFAULTS
-  FNMATCH_H='fnmatch.h'
-  AM_CONDITIONAL([GL_GENERATE_FNMATCH_H], [test -n "$FNMATCH_H"])
+  GL_GENERATE_FNMATCH_H=true
 ])
 
 # gl_FNMATCH_MODULE_INDICATOR([modulename])
index 4ed7dce..7daa4ca 100644 (file)
@@ -1,10 +1,10 @@
-# fopen.m4 serial 12
-dnl Copyright (C) 2007-2021 Free Software Foundation, Inc.
+# fopen.m4 serial 15
+dnl Copyright (C) 2007-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 
-AC_DEFUN([gl_FUNC_FOPEN],
+AC_DEFUN([gl_FUNC_FOPEN_ITSELF],
 [
   AC_REQUIRE([gl_STDIO_H_DEFAULTS])
   AC_REQUIRE([AC_CANONICAL_HOST])
@@ -58,6 +58,15 @@ changequote([,])dnl
   esac
 ])
 
+AC_DEFUN([gl_FUNC_FOPEN],
+[
+  AC_REQUIRE([gl_FUNC_FOPEN_ITSELF])
+  AC_REQUIRE([gl_FUNC_FCLOSE])
+  if test $REPLACE_FCLOSE = 1; then
+    REPLACE_FOPEN=1
+  fi
+])
+
 AC_DEFUN([gl_FUNC_FOPEN_GNU],
 [
   AC_REQUIRE([gl_FUNC_FOPEN])
@@ -87,7 +96,7 @@ int main ()
        [gl_cv_func_fopen_mode_x=no],
        [case "$host_os" in
           # Guess yes on glibc and musl systems.
-          linux*-gnu* | gnu* | kfreebsd*-gnu | *-musl*)
+          linux*-gnu* | gnu* | kfreebsd*-gnu | *-musl* | midipix*)
             gl_cv_func_fopen_mode_x="guessing yes" ;;
           # If we don't know, obey --enable-cross-guesses.
           *)
@@ -124,7 +133,7 @@ int main ()
        [gl_cv_func_fopen_mode_e=no],
        [case "$host_os" in
           # Guess yes on glibc and musl systems.
-          linux*-gnu* | gnu* | kfreebsd*-gnu | *-musl*)
+          linux*-gnu* | gnu* | kfreebsd*-gnu | *-musl* | midipix*)
             gl_cv_func_fopen_mode_e="guessing yes" ;;
           # Guess no on native Windows.
           mingw*)
@@ -136,11 +145,12 @@ int main ()
        ])
      rm -f conftest.x
     ])
+  REPLACE_FOPEN_FOR_FOPEN_GNU="$REPLACE_FOPEN"
   case "$gl_cv_func_fopen_mode_x" in
-    *no) REPLACE_FOPEN=1 ;;
+    *no) REPLACE_FOPEN_FOR_FOPEN_GNU=1 ;;
   esac
   case "$gl_cv_func_fopen_mode_e" in
-    *no) REPLACE_FOPEN=1 ;;
+    *no) REPLACE_FOPEN_FOR_FOPEN_GNU=1 ;;
   esac
 ])
 
index 3f16957..706b331 100644 (file)
@@ -1,5 +1,5 @@
 # fpieee.m4 serial 2  -*- coding: utf-8 -*-
-dnl Copyright (C) 2007, 2009-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index a7923b9..0389dea 100644 (file)
@@ -1,5 +1,5 @@
 # free.m4 serial 6
-# Copyright (C) 2003-2005, 2009-2021 Free Software Foundation, Inc.
+# Copyright (C) 2003-2005, 2009-2023 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
index d5a3512..459f8c4 100644 (file)
@@ -1,5 +1,5 @@
 # freopen.m4 serial 7
-dnl Copyright (C) 2007-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index cdaca80..7cb2edb 100644 (file)
@@ -1,5 +1,5 @@
 # fstat.m4 serial 8
-dnl Copyright (C) 2011-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 4a3eca6..cbb5f42 100644 (file)
@@ -1,8 +1,8 @@
-# serial 21
+# serial 23
 
 # See if we need to emulate a missing ftruncate function using _chsize.
 
-# Copyright (C) 2000-2001, 2003-2007, 2009-2021 Free Software Foundation, Inc.
+# Copyright (C) 2000-2001, 2003-2007, 2009-2023 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -10,7 +10,7 @@
 AC_DEFUN([gl_FUNC_FTRUNCATE],
 [
   AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
-  AC_CHECK_FUNCS_ONCE([ftruncate])
+  gl_CHECK_FUNCS_ANDROID([ftruncate], [[#include <unistd.h>]])
   if test $ac_cv_func_ftruncate = yes; then
     m4_ifdef([gl_LARGEFILE], [
       AC_REQUIRE([AC_CANONICAL_HOST])
@@ -30,6 +30,9 @@ AC_DEFUN([gl_FUNC_FTRUNCATE],
     ])
   else
     HAVE_FTRUNCATE=0
+    case "$gl_cv_onwards_func_ftruncate" in
+      future*) REPLACE_FTRUNCATE=1 ;;
+    esac
   fi
 ])
 
index 6ec7a94..e95db05 100644 (file)
@@ -1,12 +1,12 @@
 # getcwd.m4 - check for working getcwd that is compatible with glibc
 
-# Copyright (C) 2001, 2003-2007, 2009-2021 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003-2007, 2009-2023 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
 # Written by Paul Eggert.
-# serial 19
+# serial 20
 
 AC_DEFUN([gl_FUNC_GETCWD_NULL],
   [
@@ -53,6 +53,8 @@ AC_DEFUN([gl_FUNC_GETCWD_NULL],
             *-gnu* | gnu*) gl_cv_func_getcwd_null="guessing yes";;
                            # Guess yes on musl systems.
             *-musl*)       gl_cv_func_getcwd_null="guessing yes";;
+                           # Guess yes on systems that emulate the Linux system calls.
+            midipix*)      gl_cv_func_getcwd_null="guessing yes";;
                            # Guess yes on Cygwin.
             cygwin*)       gl_cv_func_getcwd_null="guessing yes";;
                            # If we don't know, obey --enable-cross-guesses.
index 8fbc941..8bcda90 100644 (file)
@@ -1,5 +1,5 @@
 # getdtablesize.m4 serial 8
-dnl Copyright (C) 2008-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index bb95c5e..7981a09 100644 (file)
@@ -1,5 +1,5 @@
-# getopt.m4 serial 47
-dnl Copyright (C) 2002-2006, 2008-2021 Free Software Foundation, Inc.
+# getopt.m4 serial 48
+dnl Copyright (C) 2002-2006, 2008-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -21,6 +21,8 @@ AC_DEFUN([gl_FUNC_GETOPT_POSIX],
       REPLACE_GETOPT=1
     fi
   ])
+  GL_GENERATE_GETOPT_H=false
+  GL_GENERATE_GETOPT_CDEFS_H=false
   if test $REPLACE_GETOPT = 1; then
     dnl Arrange for getopt.h to be created.
     gl_GETOPT_SUBSTITUTE_HEADER
@@ -374,8 +376,6 @@ AC_DEFUN([gl_GETOPT_SUBSTITUTE_HEADER],
   AC_DEFINE([__GETOPT_PREFIX], [[rpl_]],
     [Define to rpl_ if the getopt replacement functions and variables
      should be used.])
-  GETOPT_H=getopt.h
-  GETOPT_CDEFS_H=getopt-cdefs.h
-  AC_SUBST([GETOPT_H])
-  AC_SUBST([GETOPT_CDEFS_H])
+  GL_GENERATE_GETOPT_H=true
+  GL_GENERATE_GETOPT_CDEFS_H=true
 ])
index 7e61801..79925a7 100644 (file)
@@ -1,5 +1,5 @@
 # getpagesize.m4 serial 10
-dnl Copyright (C) 2002, 2004-2005, 2007, 2009-2021 Free Software Foundation,
+dnl Copyright (C) 2002, 2004-2005, 2007, 2009-2023 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
index 65917d6..2b741f5 100644 (file)
@@ -1,16 +1,33 @@
 # getprogname.m4 - check for getprogname or replacements for it
 
-# Copyright (C) 2016-2021 Free Software Foundation, Inc.
+# Copyright (C) 2016-2023 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 4
+# serial 8
 
 AC_DEFUN([gl_FUNC_GETPROGNAME],
 [
-  AC_CHECK_FUNCS_ONCE([getprogname getexecname])
+  AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+  gl_CHECK_FUNCS_ANDROID([getprogname], [[#include <stdlib.h>]])
+  if test $ac_cv_func_getprogname = no; then
+    HAVE_GETPROGNAME=0
+    case "$gl_cv_onwards_func_getprogname" in
+      future*) REPLACE_GETPROGNAME=1 ;;
+    esac
+  fi
+  AC_CHECK_DECLS([program_invocation_name],
+    [],
+    [HAVE_DECL_PROGRAM_INVOCATION_NAME=0],
+    [[#include <errno.h>]])
+])
+
+AC_DEFUN([gl_PREREQ_GETPROGNAME],
+[
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+  AC_CHECK_FUNCS_ONCE([getexecname])
   ac_found=0
   AC_CHECK_DECLS([program_invocation_name], [ac_found=1], [],
     [#include <errno.h>])
index 5f174dc..7b7f9ce 100644 (file)
@@ -1,5 +1,5 @@
-# getrandom.m4 serial 8
-dnl Copyright 2020-2021 Free Software Foundation, Inc.
+# getrandom.m4 serial 11
+dnl Copyright 2020-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -9,9 +9,18 @@ dnl Written by Paul Eggert.
 AC_DEFUN([gl_FUNC_GETRANDOM],
 [
   AC_REQUIRE([gl_SYS_RANDOM_H_DEFAULTS])
-  AC_CHECK_FUNCS_ONCE([getrandom])
+  gl_CHECK_FUNCS_ANDROID([getrandom],
+    [[/* Additional includes are needed before <sys/random.h> on uClibc
+         and Mac OS X.  */
+      #include <sys/types.h>
+      #include <stdlib.h>
+      #include <sys/random.h>
+    ]])
   if test "$ac_cv_func_getrandom" != yes; then
     HAVE_GETRANDOM=0
+    case "$gl_cv_onwards_func_getrandom" in
+      future*) REPLACE_GETRANDOM=1 ;;
+    esac
   else
     dnl On Solaris 11.4 the return type is 'int', not 'ssize_t'.
     AC_CACHE_CHECK([whether getrandom is compatible with its GNU+BSD signature],
@@ -56,13 +65,16 @@ AC_DEFUN([gl_FUNC_GETRANDOM],
       if test $gl_cv_lib_assume_bcrypt = yes; then
         AC_DEFINE([HAVE_LIB_BCRYPT], [1],
           [Define to 1 if the bcrypt library is guaranteed to be present.])
-        LIB_GETRANDOM='-lbcrypt'
+        GETRANDOM_LIB='-lbcrypt'
       else
-        LIB_GETRANDOM='-ladvapi32'
+        GETRANDOM_LIB='-ladvapi32'
       fi
       ;;
     *)
-      LIB_GETRANDOM= ;;
+      GETRANDOM_LIB= ;;
   esac
+  AC_SUBST([GETRANDOM_LIB])
+  dnl For backward compatibility.
+  LIB_GETRANDOM="$GETRANDOM_LIB"
   AC_SUBST([LIB_GETRANDOM])
 ])
index de7c330..ec1f97e 100644 (file)
@@ -1,5 +1,5 @@
-# gettime.m4 serial 9
-dnl Copyright (C) 2002, 2004-2006, 2009-2021 Free Software Foundation, Inc.
+# gettime.m4 serial 14
+dnl Copyright (C) 2002, 2004-2006, 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -9,5 +9,60 @@ AC_DEFUN([gl_GETTIME],
   dnl Prerequisites of lib/gettime.c.
   AC_REQUIRE([gl_CLOCK_TIME])
   AC_REQUIRE([gl_TIMESPEC])
-  AC_CHECK_FUNCS_ONCE([gettimeofday])
+
+  AC_REQUIRE([gl_CHECK_FUNC_TIMESPEC_GET])
+  if test $gl_cv_func_timespec_get = yes; then
+    AC_DEFINE([HAVE_TIMESPEC_GET], [1],
+      [Define if you have the timespec_get function.])
+  fi
+])
+
+dnl Tests whether the function timespec_get exists.
+dnl Sets gl_cv_func_timespec_get and gl_cv_onwards_func_timespec_get.
+AC_DEFUN([gl_CHECK_FUNC_TIMESPEC_GET],
+[
+  AC_REQUIRE([AC_CANONICAL_HOST])
+
+  dnl Persuade OpenBSD <time.h> to declare timespec_get().
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
+  dnl We can't use AC_CHECK_FUNC here, because timespec_get() is defined as a
+  dnl static inline function in <time.h> on MSVC 14.
+  dnl But at the same time, we need to notice a missing declaration, like
+  dnl gl_CHECK_FUNCS_ANDROID does.
+  AC_CHECK_DECL([timespec_get], , , [[#include <time.h>]])
+  AC_CACHE_CHECK([for timespec_get], [gl_cv_onwards_func_timespec_get],
+    [if test $ac_cv_have_decl_timespec_get = yes; then
+       AC_LINK_IFELSE(
+         [AC_LANG_PROGRAM(
+            [[#include <time.h>
+              struct timespec ts;
+            ]],
+            [[return timespec_get (&ts, 0);]])
+         ],
+         [gl_cv_onwards_func_timespec_get=yes],
+         [gl_cv_onwards_func_timespec_get=no])
+     else
+       gl_cv_onwards_func_timespec_get=no
+     fi
+     case "$host_os" in
+       linux*-android*)
+         if test $gl_cv_onwards_func_timespec_get = no; then
+           gl_cv_onwards_func_timespec_get='future OS version'
+         fi
+         ;;
+     esac
+    ])
+  case "$gl_cv_onwards_func_timespec_get" in
+    future*) gl_cv_func_timespec_get=no ;;
+    *)       gl_cv_func_timespec_get=$gl_cv_onwards_func_timespec_get ;;
+  esac
+])
+
+AC_DEFUN([gl_GETTIME_RES],
+[
+  dnl Prerequisites of lib/gettime-res.c.
+  AC_REQUIRE([gl_CLOCK_TIME])
+  AC_REQUIRE([gl_TIMESPEC])
+  AC_CHECK_FUNCS_ONCE([timespec_getres])
 ])
index 37c5440..5051d61 100644 (file)
@@ -1,6 +1,6 @@
 # serial 29
 
-# Copyright (C) 2001-2003, 2005, 2007, 2009-2021 Free Software Foundation, Inc.
+# Copyright (C) 2001-2003, 2005, 2007, 2009-2023 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
index 9a5b676..6f7c306 100644 (file)
@@ -1,6 +1,6 @@
 # Determine whether recent-enough GNU Make is being used.
 
-# Copyright (C) 2007, 2009-2021 Free Software Foundation, Inc.
+# Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
index 2872ecd..a2b53d3 100644 (file)
@@ -1,5 +1,5 @@
-# gnulib-common.m4 serial 66
-dnl Copyright (C) 2007-2021 Free Software Foundation, Inc.
+# gnulib-common.m4 serial 87
+dnl Copyright (C) 2007-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -15,6 +15,10 @@ AC_DEFUN([gl_COMMON], [
   AC_REQUIRE([gl_ZZGNULIB])
 ])
 AC_DEFUN([gl_COMMON_BODY], [
+  AH_VERBATIM([0witness],
+[/* Witness that <config.h> has been included.  */
+#define _GL_CONFIG_H_INCLUDED 1
+])
   AH_VERBATIM([_GL_GNUC_PREREQ],
 [/* True if the compiler says it groks GNU C version MAJOR.MINOR.  */
 #if defined __GNUC__ && defined __GNUC_MINOR__
@@ -38,6 +42,11 @@ AC_DEFUN([gl_COMMON_BODY], [
        AIX system header files and several gnulib header files use precisely
        this syntax with 'extern'.  */
 #  define _Noreturn [[noreturn]]
+# elif (defined __clang__ && __clang_major__ < 16 \
+        && defined _GL_WORK_AROUND_LLVM_BUG_59792)
+   /* Compile with -D_GL_WORK_AROUND_LLVM_BUG_59792 to work around
+      that rare LLVM bug, though you may get many false-alarm warnings.  */
+#  define _Noreturn
 # elif ((!defined __cplusplus || defined __clang__) \
         && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \
             || (!defined __STRICT_ANSI__ \
@@ -69,7 +78,9 @@ AC_DEFUN([gl_COMMON_BODY], [
 [/* Attributes.  */
 #if (defined __has_attribute \
      && (!defined __clang_minor__ \
-         || 3 < __clang_major__ + (5 <= __clang_minor__)))
+         || (defined __apple_build_version__ \
+             ? 6000000 <= __apple_build_version__ \
+             : 5 <= __clang_major__)))
 # define _GL_HAS_ATTRIBUTE(attr) __has_attribute (__##attr##__)
 #else
 # define _GL_HAS_ATTRIBUTE(attr) _GL_ATTR_##attr
@@ -85,12 +96,12 @@ AC_DEFUN([gl_COMMON_BODY], [
 # define _GL_ATTR_fallthrough _GL_GNUC_PREREQ (7, 0)
 # define _GL_ATTR_format _GL_GNUC_PREREQ (2, 7)
 # define _GL_ATTR_leaf _GL_GNUC_PREREQ (4, 6)
+# define _GL_ATTR_malloc _GL_GNUC_PREREQ (3, 0)
 # ifdef _ICC
 #  define _GL_ATTR_may_alias 0
 # else
 #  define _GL_ATTR_may_alias _GL_GNUC_PREREQ (3, 3)
 # endif
-# define _GL_ATTR_malloc _GL_GNUC_PREREQ (3, 0)
 # define _GL_ATTR_noinline _GL_GNUC_PREREQ (3, 1)
 # define _GL_ATTR_nonnull _GL_GNUC_PREREQ (3, 3)
 # define _GL_ATTR_nonstring _GL_GNUC_PREREQ (8, 0)
@@ -103,203 +114,454 @@ AC_DEFUN([gl_COMMON_BODY], [
 # define _GL_ATTR_warn_unused_result _GL_GNUC_PREREQ (3, 4)
 #endif
 
-#ifdef __has_c_attribute
-# define _GL_HAS_C_ATTRIBUTE(attr) __has_c_attribute (__##attr##__)
-#else
-# define _GL_HAS_C_ATTRIBUTE(attr) 0
+/* Disable GCC -Wpedantic if using __has_c_attribute and this is not C23+.  */
+#if (defined __has_c_attribute && _GL_GNUC_PREREQ (4, 6) \
+     && (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) <= 201710)
+# pragma GCC diagnostic ignored "-Wpedantic"
 #endif
 
-]dnl There is no _GL_ATTRIBUTE_ALIGNED; use stdalign's _Alignas instead.
-[
-#if _GL_HAS_ATTRIBUTE (alloc_size)
-# define _GL_ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args))
+/* Define if, in a function declaration, the attributes in bracket syntax
+   [[...]] must come before the attributes in __attribute__((...)) syntax.
+   If this is defined, it is best to avoid the bracket syntax, so that the
+   various _GL_ATTRIBUTE_* can be cumulated on the same declaration in any
+   order.  */
+#ifdef __cplusplus
+# if defined __clang__
+#  define _GL_BRACKET_BEFORE_ATTRIBUTE 1
+# endif
 #else
-# define _GL_ATTRIBUTE_ALLOC_SIZE(args)
+# if defined __GNUC__ && !defined __clang__
+#  define _GL_BRACKET_BEFORE_ATTRIBUTE 1
+# endif
+#endif
+]dnl There is no _GL_ATTRIBUTE_ALIGNED; use stdalign's alignas instead.
+[
+/* _GL_ATTRIBUTE_ALLOC_SIZE ((N)) declares that the Nth argument of the function
+   is the size of the returned memory block.
+   _GL_ATTRIBUTE_ALLOC_SIZE ((M, N)) declares that the Mth argument multiplied
+   by the Nth argument of the function is the size of the returned memory block.
+ */
+/* Applies to: function, pointer to function, function types.  */
+#ifndef _GL_ATTRIBUTE_ALLOC_SIZE
+# if _GL_HAS_ATTRIBUTE (alloc_size)
+#  define _GL_ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args))
+# else
+#  define _GL_ATTRIBUTE_ALLOC_SIZE(args)
+# endif
 #endif
 
-#if _GL_HAS_ATTRIBUTE (always_inline)
-# define _GL_ATTRIBUTE_ALWAYS_INLINE __attribute__ ((__always_inline__))
-#else
-# define _GL_ATTRIBUTE_ALWAYS_INLINE
+/* _GL_ATTRIBUTE_ALWAYS_INLINE tells that the compiler should always inline the
+   function and report an error if it cannot do so.  */
+/* Applies to: function.  */
+#ifndef _GL_ATTRIBUTE_ALWAYS_INLINE
+# if _GL_HAS_ATTRIBUTE (always_inline)
+#  define _GL_ATTRIBUTE_ALWAYS_INLINE __attribute__ ((__always_inline__))
+# else
+#  define _GL_ATTRIBUTE_ALWAYS_INLINE
+# endif
 #endif
 
-#if _GL_HAS_ATTRIBUTE (artificial)
-# define _GL_ATTRIBUTE_ARTIFICIAL __attribute__ ((__artificial__))
-#else
-# define _GL_ATTRIBUTE_ARTIFICIAL
+/* _GL_ATTRIBUTE_ARTIFICIAL declares that the function is not important to show
+    in stack traces when debugging.  The compiler should omit the function from
+    stack traces.  */
+/* Applies to: function.  */
+#ifndef _GL_ATTRIBUTE_ARTIFICIAL
+# if _GL_HAS_ATTRIBUTE (artificial)
+#  define _GL_ATTRIBUTE_ARTIFICIAL __attribute__ ((__artificial__))
+# else
+#  define _GL_ATTRIBUTE_ARTIFICIAL
+# endif
 #endif
 
+/* _GL_ATTRIBUTE_COLD declares that the function is rarely executed.  */
+/* Applies to: functions.  */
 /* Avoid __attribute__ ((cold)) on MinGW; see thread starting at
    <https://lists.gnu.org/r/emacs-devel/2019-04/msg01152.html>.
    Also, Oracle Studio 12.6 requires 'cold' not '__cold__'.  */
-#if _GL_HAS_ATTRIBUTE (cold) && !defined __MINGW32__
-# ifndef __SUNPRO_C
-#  define _GL_ATTRIBUTE_COLD __attribute__ ((__cold__))
+#ifndef _GL_ATTRIBUTE_COLD
+# if _GL_HAS_ATTRIBUTE (cold) && !defined __MINGW32__
+#  ifndef __SUNPRO_C
+#   define _GL_ATTRIBUTE_COLD __attribute__ ((__cold__))
+#  else
+#   define _GL_ATTRIBUTE_COLD __attribute__ ((cold))
+#  endif
 # else
-#  define _GL_ATTRIBUTE_COLD __attribute__ ((cold))
+#  define _GL_ATTRIBUTE_COLD
 # endif
-#else
-# define _GL_ATTRIBUTE_COLD
 #endif
 
-#if _GL_HAS_ATTRIBUTE (const)
-# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__))
-#else
-# define _GL_ATTRIBUTE_CONST
+/* _GL_ATTRIBUTE_CONST declares that it is OK for a compiler to omit duplicate
+   calls to the function with the same arguments.
+   This attribute is safe for a function that neither depends on nor affects
+   observable state, and always returns exactly once - e.g., does not loop
+   forever, and does not call longjmp.
+   (This attribute is stricter than _GL_ATTRIBUTE_PURE.)  */
+/* Applies to: functions.  */
+#ifndef _GL_ATTRIBUTE_CONST
+# if _GL_HAS_ATTRIBUTE (const)
+#  define _GL_ATTRIBUTE_CONST __attribute__ ((__const__))
+# else
+#  define _GL_ATTRIBUTE_CONST
+# endif
 #endif
 
-/* _GL_ATTRIBUTE_DEALLOC (F, I) is for functions returning pointers
+/* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers
    that can be freed by passing them as the Ith argument to the
-   function F.  _GL_ATTRIBUTE_DEALLOC_FREE is for functions that
-   return pointers that can be freed via 'free'; it can be used
-   only after including stdlib.h.  */
-#if _GL_GNUC_PREREQ (11, 0)
-# define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i)))
-#else
-# define _GL_ATTRIBUTE_DEALLOC(f, i)
+   function F.
+   _GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that
+   can be freed via 'free'; it can be used only after declaring 'free'.  */
+/* Applies to: functions.  Cannot be used on inline functions.  */
+#ifndef _GL_ATTRIBUTE_DEALLOC
+# if _GL_GNUC_PREREQ (11, 0)
+#  define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i)))
+# else
+#  define _GL_ATTRIBUTE_DEALLOC(f, i)
+# endif
+#endif
+/* If gnulib's <string.h> or <wchar.h> has already defined this macro, continue
+   to use this earlier definition, since <stdlib.h> may not have been included
+   yet.  */
+#ifndef _GL_ATTRIBUTE_DEALLOC_FREE
+# if defined __cplusplus && defined __GNUC__ && !defined __clang__
+/* Work around GCC bug <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108231> */
+#  define _GL_ATTRIBUTE_DEALLOC_FREE \
+     _GL_ATTRIBUTE_DEALLOC ((void (*) (void *)) free, 1)
+# else
+#  define _GL_ATTRIBUTE_DEALLOC_FREE \
+     _GL_ATTRIBUTE_DEALLOC (free, 1)
+# endif
 #endif
-#define _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_DEALLOC (free, 1)
 
-#if _GL_HAS_C_ATTRIBUTE (deprecated)
-# define _GL_ATTRIBUTE_DEPRECATED [[__deprecated__]]
-#elif _GL_HAS_ATTRIBUTE (deprecated)
-# define _GL_ATTRIBUTE_DEPRECATED __attribute__ ((__deprecated__))
-#else
-# define _GL_ATTRIBUTE_DEPRECATED
+/* _GL_ATTRIBUTE_DEPRECATED: Declares that an entity is deprecated.
+   The compiler may warn if the entity is used.  */
+/* Applies to:
+     - function, variable,
+     - struct, union, struct/union member,
+     - enumeration, enumeration item,
+     - typedef,
+   in C++ also: namespace, class, template specialization.  */
+#ifndef _GL_ATTRIBUTE_DEPRECATED
+# ifndef _GL_BRACKET_BEFORE_ATTRIBUTE
+#  ifdef __has_c_attribute
+#   if __has_c_attribute (__deprecated__)
+#    define _GL_ATTRIBUTE_DEPRECATED [[__deprecated__]]
+#   endif
+#  endif
+# endif
+# if !defined _GL_ATTRIBUTE_DEPRECATED && _GL_HAS_ATTRIBUTE (deprecated)
+#  define _GL_ATTRIBUTE_DEPRECATED __attribute__ ((__deprecated__))
+# endif
+# ifndef _GL_ATTRIBUTE_DEPRECATED
+#  define _GL_ATTRIBUTE_DEPRECATED
+# endif
 #endif
 
-#if _GL_HAS_ATTRIBUTE (error)
-# define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__error__ (msg)))
-# define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__warning__ (msg)))
-#elif _GL_HAS_ATTRIBUTE (diagnose_if)
-# define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__diagnose_if__ (1, msg, "error")))
-# define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__diagnose_if__ (1, msg, "warning")))
-#else
-# define _GL_ATTRIBUTE_ERROR(msg)
-# define _GL_ATTRIBUTE_WARNING(msg)
+/* _GL_ATTRIBUTE_ERROR(msg) requests an error if a function is called and
+   the function call is not optimized away.
+   _GL_ATTRIBUTE_WARNING(msg) requests a warning if a function is called and
+   the function call is not optimized away.  */
+/* Applies to: functions.  */
+#if !(defined _GL_ATTRIBUTE_ERROR && defined _GL_ATTRIBUTE_WARNING)
+# if _GL_HAS_ATTRIBUTE (error)
+#  define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__error__ (msg)))
+#  define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__warning__ (msg)))
+# elif _GL_HAS_ATTRIBUTE (diagnose_if)
+#  define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__diagnose_if__ (1, msg, "error")))
+#  define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__diagnose_if__ (1, msg, "warning")))
+# else
+#  define _GL_ATTRIBUTE_ERROR(msg)
+#  define _GL_ATTRIBUTE_WARNING(msg)
+# endif
 #endif
 
-#if _GL_HAS_ATTRIBUTE (externally_visible)
-# define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE __attribute__ ((externally_visible))
-#else
-# define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE
+/* _GL_ATTRIBUTE_EXTERNALLY_VISIBLE declares that the entity should remain
+   visible to debuggers etc., even with '-fwhole-program'.  */
+/* Applies to: functions, variables.  */
+#ifndef _GL_ATTRIBUTE_EXTERNALLY_VISIBLE
+# if _GL_HAS_ATTRIBUTE (externally_visible)
+#  define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE __attribute__ ((externally_visible))
+# else
+#  define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE
+# endif
 #endif
 
-/* FALLTHROUGH is special, because it always expands to something.  */
-#if _GL_HAS_C_ATTRIBUTE (fallthrough)
-# define _GL_ATTRIBUTE_FALLTHROUGH [[__fallthrough__]]
-#elif _GL_HAS_ATTRIBUTE (fallthrough)
-# define _GL_ATTRIBUTE_FALLTHROUGH __attribute__ ((__fallthrough__))
-#else
-# define _GL_ATTRIBUTE_FALLTHROUGH ((void) 0)
+/* _GL_ATTRIBUTE_FALLTHROUGH declares that it is not a programming mistake if
+   the control flow falls through to the immediately following 'case' or
+   'default' label.  The compiler should not warn in this case.  */
+/* Applies to: Empty statement (;), inside a 'switch' statement.  */
+/* Always expands to something.  */
+#ifndef _GL_ATTRIBUTE_FALLTHROUGH
+# ifdef __has_c_attribute
+#  if __has_c_attribute (__fallthrough__)
+#   define _GL_ATTRIBUTE_FALLTHROUGH [[__fallthrough__]]
+#  endif
+# endif
+# if !defined _GL_ATTRIBUTE_FALLTHROUGH && _GL_HAS_ATTRIBUTE (fallthrough)
+#  define _GL_ATTRIBUTE_FALLTHROUGH __attribute__ ((__fallthrough__))
+# endif
+# ifndef _GL_ATTRIBUTE_FALLTHROUGH
+#  define _GL_ATTRIBUTE_FALLTHROUGH ((void) 0)
+# endif
 #endif
 
-#if _GL_HAS_ATTRIBUTE (format)
-# define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec))
-#else
-# define _GL_ATTRIBUTE_FORMAT(spec)
+/* _GL_ATTRIBUTE_FORMAT ((ARCHETYPE, STRING-INDEX, FIRST-TO-CHECK))
+   declares that the STRING-INDEXth function argument is a format string of
+   style ARCHETYPE, which is one of:
+     printf, gnu_printf
+     scanf, gnu_scanf,
+     strftime, gnu_strftime,
+     strfmon,
+   or the same thing prefixed and suffixed with '__'.
+   If FIRST-TO-CHECK is not 0, arguments starting at FIRST-TO_CHECK
+   are suitable for the format string.  */
+/* Applies to: functions.  */
+#ifndef _GL_ATTRIBUTE_FORMAT
+# if _GL_HAS_ATTRIBUTE (format)
+#  define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec))
+# else
+#  define _GL_ATTRIBUTE_FORMAT(spec)
+# endif
 #endif
 
-#if _GL_HAS_ATTRIBUTE (leaf)
-# define _GL_ATTRIBUTE_LEAF __attribute__ ((__leaf__))
-#else
-# define _GL_ATTRIBUTE_LEAF
+/* _GL_ATTRIBUTE_LEAF declares that if the function is called from some other
+   compilation unit, it executes code from that unit only by return or by
+   exception handling.  This declaration lets the compiler optimize that unit
+   more aggressively.  */
+/* Applies to: functions.  */
+#ifndef _GL_ATTRIBUTE_LEAF
+# if _GL_HAS_ATTRIBUTE (leaf)
+#  define _GL_ATTRIBUTE_LEAF __attribute__ ((__leaf__))
+# else
+#  define _GL_ATTRIBUTE_LEAF
+# endif
 #endif
 
+/* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly
+   allocated memory.  */
+/* Applies to: functions.  */
+#ifndef _GL_ATTRIBUTE_MALLOC
+# if _GL_HAS_ATTRIBUTE (malloc)
+#  define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
+# else
+#  define _GL_ATTRIBUTE_MALLOC
+# endif
+#endif
+
+/* _GL_ATTRIBUTE_MAY_ALIAS declares that pointers to the type may point to the
+   same storage as pointers to other types.  Thus this declaration disables
+   strict aliasing optimization.  */
+/* Applies to: types.  */
 /* Oracle Studio 12.6 mishandles may_alias despite __has_attribute OK.  */
-#if _GL_HAS_ATTRIBUTE (may_alias) && !defined __SUNPRO_C
-# define _GL_ATTRIBUTE_MAY_ALIAS __attribute__ ((__may_alias__))
-#else
-# define _GL_ATTRIBUTE_MAY_ALIAS
+#ifndef _GL_ATTRIBUTE_MAY_ALIAS
+# if _GL_HAS_ATTRIBUTE (may_alias) && !defined __SUNPRO_C
+#  define _GL_ATTRIBUTE_MAY_ALIAS __attribute__ ((__may_alias__))
+# else
+#  define _GL_ATTRIBUTE_MAY_ALIAS
+# endif
 #endif
 
-#if _GL_HAS_C_ATTRIBUTE (maybe_unused)
-# define _GL_ATTRIBUTE_MAYBE_UNUSED [[__maybe_unused__]]
-#else
-# define _GL_ATTRIBUTE_MAYBE_UNUSED _GL_ATTRIBUTE_UNUSED
+/* _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.  */
+/* Applies to:
+     - function, variable,
+     - struct, union, struct/union member,
+     - enumeration, enumeration item,
+     - typedef,
+   in C++ also: class.  */
+/* In C++ and C23, this is spelled [[__maybe_unused__]].
+   GCC's syntax is __attribute__ ((__unused__)).
+   clang supports both syntaxes.  Except that with clang ≥ 6, < 10, in C++ mode,
+   __has_c_attribute (__maybe_unused__) yields true but the use of
+   [[__maybe_unused__]] nevertheless produces a warning.  */
+#ifndef _GL_ATTRIBUTE_MAYBE_UNUSED
+# ifndef _GL_BRACKET_BEFORE_ATTRIBUTE
+#  if defined __clang__ && defined __cplusplus
+#   if !defined __apple_build_version__ && __clang_major__ >= 10
+#    define _GL_ATTRIBUTE_MAYBE_UNUSED [[__maybe_unused__]]
+#   endif
+#  elif defined __has_c_attribute
+#   if __has_c_attribute (__maybe_unused__)
+#    define _GL_ATTRIBUTE_MAYBE_UNUSED [[__maybe_unused__]]
+#   endif
+#  endif
+# endif
+# ifndef _GL_ATTRIBUTE_MAYBE_UNUSED
+#  define _GL_ATTRIBUTE_MAYBE_UNUSED _GL_ATTRIBUTE_UNUSED
+# endif
 #endif
+/* Alternative spelling of this macro, for convenience and for
+   compatibility with glibc/include/libc-symbols.h.  */
+#define _GL_UNUSED _GL_ATTRIBUTE_MAYBE_UNUSED
 /* Earlier spellings of this macro.  */
 #define _UNUSED_PARAMETER_ _GL_ATTRIBUTE_MAYBE_UNUSED
 
-#if _GL_HAS_ATTRIBUTE (malloc)
-# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
-#else
-# define _GL_ATTRIBUTE_MALLOC
-#endif
-
-#if _GL_HAS_C_ATTRIBUTE (nodiscard)
-# define _GL_ATTRIBUTE_NODISCARD [[__nodiscard__]]
-#elif _GL_HAS_ATTRIBUTE (warn_unused_result)
-# define _GL_ATTRIBUTE_NODISCARD __attribute__ ((__warn_unused_result__))
-#else
-# define _GL_ATTRIBUTE_NODISCARD
+/* _GL_ATTRIBUTE_NODISCARD declares that the caller of the function should not
+   discard the return value.  The compiler may warn if the caller does not use
+   the return value, unless the caller uses something like ignore_value.  */
+/* Applies to: function, enumeration, class.  */
+#ifndef _GL_ATTRIBUTE_NODISCARD
+# ifndef _GL_BRACKET_BEFORE_ATTRIBUTE
+#  if defined __clang__ && defined __cplusplus
+  /* With clang up to 15.0.6 (at least), in C++ mode, [[__nodiscard__]] produces
+     a warning.
+     The 1000 below means a yet unknown threshold.  When clang++ version X
+     starts supporting [[__nodiscard__]] without warning about it, you can
+     replace the 1000 with X.  */
+#   if __clang_major__ >= 1000
+#    define _GL_ATTRIBUTE_NODISCARD [[__nodiscard__]]
+#   endif
+#  elif defined __has_c_attribute
+#   if __has_c_attribute (__nodiscard__)
+#    define _GL_ATTRIBUTE_NODISCARD [[__nodiscard__]]
+#   endif
+#  endif
+# endif
+# if !defined _GL_ATTRIBUTE_NODISCARD && _GL_HAS_ATTRIBUTE (warn_unused_result)
+#  define _GL_ATTRIBUTE_NODISCARD __attribute__ ((__warn_unused_result__))
+# endif
+# ifndef _GL_ATTRIBUTE_NODISCARD
+#  define _GL_ATTRIBUTE_NODISCARD
+# endif
 #endif
 
-#if _GL_HAS_ATTRIBUTE (noinline)
-# define _GL_ATTRIBUTE_NOINLINE __attribute__ ((__noinline__))
-#else
-# define _GL_ATTRIBUTE_NOINLINE
+/* _GL_ATTRIBUTE_NOINLINE tells that the compiler should not inline the
+   function.  */
+/* Applies to: functions.  */
+#ifndef _GL_ATTRIBUTE_NOINLINE
+# if _GL_HAS_ATTRIBUTE (noinline)
+#  define _GL_ATTRIBUTE_NOINLINE __attribute__ ((__noinline__))
+# else
+#  define _GL_ATTRIBUTE_NOINLINE
+# endif
 #endif
 
-#if _GL_HAS_ATTRIBUTE (nonnull)
-# define _GL_ATTRIBUTE_NONNULL(args) __attribute__ ((__nonnull__ args))
-#else
-# define _GL_ATTRIBUTE_NONNULL(args)
+/* _GL_ATTRIBUTE_NONNULL ((N1, N2,...)) declares that the arguments N1, N2,...
+   must not be NULL.
+   _GL_ATTRIBUTE_NONNULL () declares that all pointer arguments must not be
+   null.  */
+/* Applies to: functions.  */
+#ifndef _GL_ATTRIBUTE_NONNULL
+# if _GL_HAS_ATTRIBUTE (nonnull)
+#  define _GL_ATTRIBUTE_NONNULL(args) __attribute__ ((__nonnull__ args))
+# else
+#  define _GL_ATTRIBUTE_NONNULL(args)
+# endif
 #endif
 
-#if _GL_HAS_ATTRIBUTE (nonstring)
-# define _GL_ATTRIBUTE_NONSTRING __attribute__ ((__nonstring__))
-#else
-# define _GL_ATTRIBUTE_NONSTRING
+/* _GL_ATTRIBUTE_NONSTRING declares that the contents of a character array is
+   not meant to be NUL-terminated.  */
+/* Applies to: struct/union members and variables that are arrays of element
+   type '[[un]signed] char'.  */
+#ifndef _GL_ATTRIBUTE_NONSTRING
+# if _GL_HAS_ATTRIBUTE (nonstring)
+#  define _GL_ATTRIBUTE_NONSTRING __attribute__ ((__nonstring__))
+# else
+#  define _GL_ATTRIBUTE_NONSTRING
+# endif
 #endif
 
 /* There is no _GL_ATTRIBUTE_NORETURN; use _Noreturn instead.  */
 
-#if _GL_HAS_ATTRIBUTE (nothrow) && !defined __cplusplus
-# define _GL_ATTRIBUTE_NOTHROW __attribute__ ((__nothrow__))
-#else
-# define _GL_ATTRIBUTE_NOTHROW
+/* _GL_ATTRIBUTE_NOTHROW declares that the function does not throw exceptions.
+ */
+/* Applies to: functions.  */
+#ifndef _GL_ATTRIBUTE_NOTHROW
+# if _GL_HAS_ATTRIBUTE (nothrow) && !defined __cplusplus
+#  define _GL_ATTRIBUTE_NOTHROW __attribute__ ((__nothrow__))
+# else
+#  define _GL_ATTRIBUTE_NOTHROW
+# endif
 #endif
 
-#if _GL_HAS_ATTRIBUTE (packed)
-# define _GL_ATTRIBUTE_PACKED __attribute__ ((__packed__))
-#else
-# define _GL_ATTRIBUTE_PACKED
+/* _GL_ATTRIBUTE_PACKED declares:
+   For struct members: The member has the smallest possible alignment.
+   For struct, union, class: All members have the smallest possible alignment,
+   minimizing the memory required.  */
+/* Applies to: struct members, struct, union,
+   in C++ also: class.  */
+#ifndef _GL_ATTRIBUTE_PACKED
+# if _GL_HAS_ATTRIBUTE (packed)
+#  define _GL_ATTRIBUTE_PACKED __attribute__ ((__packed__))
+# else
+#  define _GL_ATTRIBUTE_PACKED
+# endif
 #endif
 
-#if _GL_HAS_ATTRIBUTE (pure)
-# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
-#else
-# define _GL_ATTRIBUTE_PURE
+/* _GL_ATTRIBUTE_PURE declares that It is OK for a compiler to omit duplicate
+   calls to the function with the same arguments if observable state is not
+   changed between calls.
+   This attribute is safe for a function that does not affect
+   observable state, and always returns exactly once.
+   (This attribute is looser than _GL_ATTRIBUTE_CONST.)  */
+/* Applies to: functions.  */
+#ifndef _GL_ATTRIBUTE_PURE
+# if _GL_HAS_ATTRIBUTE (pure)
+#  define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
+# else
+#  define _GL_ATTRIBUTE_PURE
+# endif
 #endif
 
-#if _GL_HAS_ATTRIBUTE (returns_nonnull)
-# define _GL_ATTRIBUTE_RETURNS_NONNULL __attribute__ ((__returns_nonnull__))
-#else
-# define _GL_ATTRIBUTE_RETURNS_NONNULL
+/* _GL_ATTRIBUTE_RETURNS_NONNULL declares that the function's return value is
+   a non-NULL pointer.  */
+/* Applies to: functions.  */
+#ifndef _GL_ATTRIBUTE_RETURNS_NONNULL
+# if _GL_HAS_ATTRIBUTE (returns_nonnull)
+#  define _GL_ATTRIBUTE_RETURNS_NONNULL __attribute__ ((__returns_nonnull__))
+# else
+#  define _GL_ATTRIBUTE_RETURNS_NONNULL
+# endif
 #endif
 
-#if _GL_HAS_ATTRIBUTE (sentinel)
-# define _GL_ATTRIBUTE_SENTINEL(pos) __attribute__ ((__sentinel__ pos))
-#else
-# define _GL_ATTRIBUTE_SENTINEL(pos)
+/* _GL_ATTRIBUTE_SENTINEL(pos) declares that the variadic function expects a
+   trailing NULL argument.
+   _GL_ATTRIBUTE_SENTINEL () - The last argument is NULL (requires C99).
+   _GL_ATTRIBUTE_SENTINEL ((N)) - The (N+1)st argument from the end is NULL.  */
+/* Applies to: functions.  */
+#ifndef _GL_ATTRIBUTE_SENTINEL
+# if _GL_HAS_ATTRIBUTE (sentinel)
+#  define _GL_ATTRIBUTE_SENTINEL(pos) __attribute__ ((__sentinel__ pos))
+# else
+#  define _GL_ATTRIBUTE_SENTINEL(pos)
+# endif
 #endif
 
-#if _GL_HAS_ATTRIBUTE (unused)
-# define _GL_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
-#else
-# define _GL_ATTRIBUTE_UNUSED
+/* A helper macro.  Don't use it directly.  */
+#ifndef _GL_ATTRIBUTE_UNUSED
+# if _GL_HAS_ATTRIBUTE (unused)
+#  define _GL_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
+# else
+#  define _GL_ATTRIBUTE_UNUSED
+# endif
 #endif
-/* Earlier spellings of this macro.  */
-#define _GL_UNUSED _GL_ATTRIBUTE_UNUSED
 
 ]dnl There is no _GL_ATTRIBUTE_VISIBILITY; see m4/visibility.m4 instead.
 [
-/* To support C++ as well as C, use _GL_UNUSED_LABEL with trailing ';'.  */
-#if !defined __cplusplus || _GL_GNUC_PREREQ (4, 5)
-# define _GL_UNUSED_LABEL _GL_ATTRIBUTE_UNUSED
+/* _GL_UNUSED_LABEL; declares that it is not a programming mistake if the
+   immediately preceding label is not used.  The compiler should not warn
+   if the label is not used.  */
+/* Applies to: label (both in C and C++).  */
+/* Note that g++ < 4.5 does not support the '__attribute__ ((__unused__)) ;'
+   syntax.  But clang does.  */
+#ifndef _GL_UNUSED_LABEL
+# if !(defined __cplusplus && !_GL_GNUC_PREREQ (4, 5)) || defined __clang__
+#  define _GL_UNUSED_LABEL _GL_ATTRIBUTE_UNUSED
+# else
+#  define _GL_UNUSED_LABEL
+# endif
+#endif
+])
+  AH_VERBATIM([c_linkage],
+[/* In C++, there is the concept of "language linkage", that encompasses
+    name mangling and function calling conventions.
+    The following macros start and end a block of "C" linkage.  */
+#ifdef __cplusplus
+# define _GL_BEGIN_C_LINKAGE extern "C" {
+# define _GL_END_C_LINKAGE }
 #else
-# define _GL_UNUSED_LABEL
+# define _GL_BEGIN_C_LINKAGE
+# define _GL_END_C_LINKAGE
 #endif
 ])
   AH_VERBATIM([async_safe],
@@ -357,7 +619,7 @@ AC_DEFUN([gl_COMMON_BODY], [
   dnl gl_cross_guess_normal    (to be used when 'yes' is good and 'no' is bad),
   dnl gl_cross_guess_inverted  (to be used when 'no' is good and 'yes' is bad).
   AC_ARG_ENABLE([cross-guesses],
-    [AS_HELP_STRING([--enable-cross-guesses={conservative|risky}],
+    [AS_HELP_STRING([[--enable-cross-guesses={conservative|risky}]],
        [specify policy for cross-compilation guesses])],
     [if test "x$enableval" != xconservative && test "x$enableval" != xrisky; then
        AC_MSG_WARN([invalid argument supplied to --enable-cross-guesses])
@@ -689,6 +951,24 @@ AC_DEFUN([gl_CACHE_VAL_SILENT],
   ])
 ])
 
+# gl_CONDITIONAL(conditional, condition)
+# is like AM_CONDITIONAL(conditional, condition), except that it does not
+# produce an error
+#   configure: error: conditional "..." was never defined.
+#   Usually this means the macro was only invoked conditionally.
+# when only invoked conditionally. Instead, in that case, both the _TRUE
+# and the _FALSE case are disabled.
+AC_DEFUN([gl_CONDITIONAL],
+[
+  pushdef([AC_CONFIG_COMMANDS_PRE], [:])dnl
+  AM_CONDITIONAL([$1], [$2])
+  popdef([AC_CONFIG_COMMANDS_PRE])dnl
+  if test -z "${[$1]_TRUE}" && test -z "${[$1]_FALSE}"; then
+    [$1]_TRUE='#'
+    [$1]_FALSE='#'
+  fi
+])
+
 # gl_CC_ALLOW_WARNINGS
 # sets and substitutes a variable GL_CFLAG_ALLOW_WARNINGS, to a $(CC) option
 # that reverts a preceding '-Werror' option, if available.
@@ -755,6 +1035,338 @@ AC_DEFUN([gl_CXX_ALLOW_WARNINGS],
   AC_SUBST([GL_CXXFLAG_ALLOW_WARNINGS])
 ])
 
+# gl_CC_GNULIB_WARNINGS
+# sets and substitutes a variable GL_CFLAG_GNULIB_WARNINGS, to a $(CC) option
+# set that enables or disables warnings as suitable for the Gnulib coding style.
+AC_DEFUN([gl_CC_GNULIB_WARNINGS],
+[
+  AC_REQUIRE([gl_CC_ALLOW_WARNINGS])
+  dnl Assume that the compiler supports -Wno-* options only if it also supports
+  dnl -Wno-error.
+  GL_CFLAG_GNULIB_WARNINGS=''
+  if test -n "$GL_CFLAG_ALLOW_WARNINGS"; then
+    dnl Enable these warning options:
+    dnl
+    dnl                                       GCC             clang
+    dnl -Wno-cast-qual                        >= 3            >= 3.9
+    dnl -Wno-conversion                       >= 3            >= 3.9
+    dnl -Wno-float-conversion                 >= 4.9          >= 3.9
+    dnl -Wno-float-equal                      >= 3            >= 3.9
+    dnl -Wimplicit-fallthrough                >= 7            >= 3.9
+    dnl -Wno-missing-field-initializers       >= 4.0, < 11
+    dnl -Wno-pedantic                         >= 4.8          >= 3.9
+    dnl -Wno-sign-compare                     >= 3            >= 3.9
+    dnl -Wno-sign-conversion                  >= 4.3          >= 3.9
+    dnl -Wno-type-limits                      >= 4.3          >= 3.9
+    dnl -Wno-undef                            >= 3            >= 3.9
+    dnl -Wno-unsuffixed-float-constants       >= 4.5
+    dnl -Wno-unused-function                  >= 3            >= 3.9
+    dnl -Wno-unused-parameter                 >= 3            >= 3.9
+    dnl
+    cat > conftest.c <<\EOF
+      #if __GNUC__ >= 3 || (__clang_major__ + (__clang_minor__ >= 9) > 3)
+      -Wno-cast-qual
+      -Wno-conversion
+      -Wno-float-equal
+      -Wno-sign-compare
+      -Wno-undef
+      -Wno-unused-function
+      -Wno-unused-parameter
+      #endif
+      #if __GNUC__ + (__GNUC_MINOR__ >= 9) > 4 || (__clang_major__ + (__clang_minor__ >= 9) > 3)
+      -Wno-float-conversion
+      #endif
+      #if __GNUC__ >= 7 || (__clang_major__ + (__clang_minor__ >= 9) > 3)
+      -Wimplicit-fallthrough
+      #endif
+      #if __GNUC__ >= 4 && __GNUC__ < 11 && !defined __clang__
+      -Wno-missing-field-initializers
+      #endif
+      #if __GNUC__ + (__GNUC_MINOR__ >= 8) > 4 || (__clang_major__ + (__clang_minor__ >= 9) > 3)
+      -Wno-pedantic
+      #endif
+      #if __GNUC__ + (__GNUC_MINOR__ >= 3) > 4 || (__clang_major__ + (__clang_minor__ >= 9) > 3)
+      -Wno-sign-conversion
+      -Wno-type-limits
+      #endif
+      #if __GNUC__ + (__GNUC_MINOR__ >= 5) > 4
+      -Wno-unsuffixed-float-constants
+      #endif
+EOF
+    gl_command="$CC $CFLAGS $CPPFLAGS -E conftest.c > conftest.out"
+    if AC_TRY_EVAL([gl_command]); then
+      gl_options=`grep -v '#' conftest.out`
+      for word in $gl_options; do
+        GL_CFLAG_GNULIB_WARNINGS="$GL_CFLAG_GNULIB_WARNINGS $word"
+      done
+    fi
+    rm -f conftest.c conftest.out
+  fi
+  AC_SUBST([GL_CFLAG_GNULIB_WARNINGS])
+])
+
+dnl gl_CONDITIONAL_HEADER([foo.h])
+dnl takes a shell variable GL_GENERATE_FOO_H (with value true or false) as input
+dnl and produces
+dnl   - an AC_SUBSTed variable FOO_H that is either a file name or empty, based
+dnl     on whether GL_GENERATE_FOO_H is true or false,
+dnl   - an Automake conditional GL_GENERATE_FOO_H that evaluates to the value of
+dnl     the shell variable GL_GENERATE_FOO_H.
+AC_DEFUN([gl_CONDITIONAL_HEADER],
+[
+  m4_pushdef([gl_header_name], AS_TR_SH(m4_toupper($1)))
+  m4_pushdef([gl_generate_var], [GL_GENERATE_]AS_TR_SH(m4_toupper($1)))
+  m4_pushdef([gl_generate_cond], [GL_GENERATE_]AS_TR_SH(m4_toupper($1)))
+  case "$gl_generate_var" in
+    false) gl_header_name='' ;;
+    true)
+      dnl It is OK to use a .h file in lib/ from within tests/, but not vice
+      dnl versa.
+      if test -z "$gl_header_name"; then
+        gl_header_name="${gl_source_base_prefix}$1"
+      fi
+      ;;
+    *) echo "*** gl_generate_var is not set correctly" 1>&2; exit 1 ;;
+  esac
+  AC_SUBST(gl_header_name)
+  gl_CONDITIONAL(gl_generate_cond, [$gl_generate_var])
+  m4_popdef([gl_generate_cond])
+  m4_popdef([gl_generate_var])
+  m4_popdef([gl_header_name])
+])
+
+dnl Preparations for gl_CHECK_FUNCS_MACOS.
+AC_DEFUN([gl_PREPARE_CHECK_FUNCS_MACOS],
+[
+  AC_REQUIRE([AC_CANONICAL_HOST])
+  AC_REQUIRE([gl_COMPILER_CLANG])
+  AC_CACHE_CHECK([for compiler option needed when checking for future declarations],
+    [gl_cv_compiler_check_future_option],
+    [case "$host_os" in
+       dnl This is only needed on macOS.
+       darwin*)
+         if test $gl_cv_compiler_clang = yes; then
+           dnl Test whether the compiler supports the option
+           dnl '-Werror=unguarded-availability-new'.
+           save_ac_compile="$ac_compile"
+           ac_compile="$ac_compile -Werror=unguarded-availability-new"
+           AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]],[[]])],
+             [gl_cv_compiler_check_future_option='-Werror=unguarded-availability-new'],
+             [gl_cv_compiler_check_future_option=none])
+           ac_compile="$save_ac_compile"
+         else
+           gl_cv_compiler_check_future_option=none
+         fi
+         ;;
+       *) gl_cv_compiler_check_future_option=none ;;
+     esac
+    ])
+])
+
+dnl Pieces of the expansion of
+dnl gl_CHECK_FUNCS_ANDROID
+dnl gl_CHECK_FUNCS_MACOS
+dnl gl_CHECK_FUNCS_ANDROID_MACOS
+
+AC_DEFUN([gl_CHECK_FUNCS_DEFAULT_CASE],
+[
+         *)
+           AC_CHECK_FUNC([$1])
+           [gl_cv_onwards_func_][$1]=$[ac_cv_func_][$1]
+           ;;
+])
+
+AC_DEFUN([gl_CHECK_FUNCS_CASE_FOR_ANDROID],
+[
+         linux*-android*)
+           AC_CHECK_DECL([$1], , , [$2])
+           if test $[ac_cv_have_decl_][$1] = yes; then
+             AC_CHECK_FUNC([[$1]])
+             if test $[ac_cv_func_][$1] = yes; then
+               [gl_cv_onwards_func_][$1]=yes
+             else
+               dnl The function is declared but does not exist. This should not
+               dnl happen normally. But anyway, we know that a future version
+               dnl of Android will have the function.
+               [gl_cv_onwards_func_][$1]='future OS version'
+             fi
+           else
+             [gl_cv_onwards_func_][$1]='future OS version'
+           fi
+           ;;
+])
+
+AC_DEFUN([gl_CHECK_FUNCS_CASE_FOR_MACOS],
+[
+         darwin*)
+           if test "x$gl_cv_compiler_check_future_option" != "xnone"; then
+             dnl Use a compile test, not a link test.
+             save_ac_compile="$ac_compile"
+             ac_compile="$ac_compile $gl_cv_compiler_check_future_option"
+             save_ac_compile_for_check_decl="$ac_compile_for_check_decl"
+             ac_compile_for_check_decl="$ac_compile_for_check_decl $gl_cv_compiler_check_future_option"
+             unset [ac_cv_have_decl_][$1]
+             AC_CHECK_DECL([$1], , , [$2])
+             ac_compile="$save_ac_compile"
+             ac_compile_for_check_decl="$save_ac_compile_for_check_decl"
+             [ac_cv_func_][$1]="$[ac_cv_have_decl_][$1]"
+             if test $[ac_cv_func_][$1] = yes; then
+               [gl_cv_onwards_func_][$1]=yes
+             else
+               unset [ac_cv_have_decl_][$1]
+               AC_CHECK_DECL([$1], , , [$2])
+               if test $[ac_cv_have_decl_][$1] = yes; then
+                 [gl_cv_onwards_func_][$1]='future OS version'
+               else
+                 [gl_cv_onwards_func_][$1]=no
+               fi
+             fi
+           else
+             AC_CHECK_FUNC([$1])
+             [gl_cv_onwards_func_][$1]=$[ac_cv_func_][$1]
+           fi
+           ;;
+])
+
+AC_DEFUN([gl_CHECK_FUNCS_SET_RESULTS],
+[
+  case "$[gl_cv_onwards_func_][$1]" in
+    future*) [ac_cv_func_][$1]=no ;;
+    *)       [ac_cv_func_][$1]=$[gl_cv_onwards_func_][$1] ;;
+  esac
+  if test $[ac_cv_func_][$1] = yes; then
+    AC_DEFINE([HAVE_]m4_translit([[$1]],
+                                 [abcdefghijklmnopqrstuvwxyz],
+                                 [ABCDEFGHIJKLMNOPQRSTUVWXYZ]),
+              [1], [Define to 1 if you have the `$1' function.])
+  fi
+])
+
+dnl gl_CHECK_FUNCS_ANDROID([func], [[#include <foo.h>]])
+dnl is like AC_CHECK_FUNCS([func]), taking into account a portability problem
+dnl on Android.
+dnl
+dnl When code is compiled on Android, it is in the context of a certain
+dnl "Android API level", which indicates the minimum version of Android on
+dnl which the app can be installed. In other words, you don't compile for a
+dnl specific version of Android. You compile for all versions of Android,
+dnl onwards from the given API level.
+dnl Thus, the question "does the OS have the function func" has three possible
+dnl answers:
+dnl   - yes, in all versions starting from the given API level,
+dnl   - no, in no version,
+dnl   - not in the given API level, but in a later version of Android.
+dnl
+dnl In detail, this works as follows:
+dnl If func was added to Android API level, say, 28, then the libc.so has the
+dnl symbol func always, whereas the header file <foo.h> declares func
+dnl conditionally:
+dnl   #if __ANDROID_API__ >= 28
+dnl   ... func (...) __INTRODUCED_IN(28);
+dnl   #endif
+dnl Thus, when compiling with "clang -target armv7a-unknown-linux-android28",
+dnl the function func is declared and exists in libc.
+dnl Whereas when compiling with "clang -target armv7a-unknown-linux-android27",
+dnl the function func is not declared but exists in libc.
+dnl
+dnl This macro sets two variables:
+dnl   - gl_cv_onwards_func_<func>   to yes / no / "future OS version"
+dnl   - ac_cv_func_<func>           to yes / no / no
+dnl The first variable allows to distinguish all three cases.
+dnl The second variable is set, so that an invocation
+dnl   gl_CHECK_FUNCS_ANDROID([func], [[#include <foo.h>]])
+dnl can be used as a drop-in replacement for
+dnl   AC_CHECK_FUNCS([func]).
+AC_DEFUN([gl_CHECK_FUNCS_ANDROID],
+[
+  AC_REQUIRE([AC_CANONICAL_HOST])
+  AC_CACHE_CHECK([for [$1]],
+    [[gl_cv_onwards_func_][$1]],
+    [gl_SILENT([
+       case "$host_os" in
+         gl_CHECK_FUNCS_CASE_FOR_ANDROID([$1], [$2])
+         gl_CHECK_FUNCS_DEFAULT_CASE([$1])
+       esac
+      ])
+    ])
+  gl_CHECK_FUNCS_SET_RESULTS([$1])
+])
+
+dnl gl_CHECK_FUNCS_MACOS([func], [[#include <foo.h>]])
+dnl is like AC_CHECK_FUNCS([func]), taking into account a portability problem
+dnl on macOS.
+dnl
+dnl When code is compiled on macOS, it is in the context of a certain minimum
+dnl macOS version, that can be set through the option '-mmacosx-version-min='.
+dnl In other words, you don't compile for a specific version of macOS. You
+dnl compile for all versions of macOS, onwards from the given version.
+dnl Thus, the question "does the OS have the function func" has three possible
+dnl answers:
+dnl   - yes, in all versions starting from the given version,
+dnl   - no, in no version,
+dnl   - not in the given version, but in a later version of macOS.
+dnl
+dnl In detail, this works as follows:
+dnl If func was added to, say, macOS version 13, then the libc has the
+dnl symbol func always, whereas the header file <foo.h> declares func
+dnl conditionally with a special availability attribute:
+dnl   ... func (...) __attribute__((availability(macos,introduced=13.0)));
+dnl Thus, when compiling with "clang mmacosx-version-min=13", there is no
+dnl warning about the use of func, and the resulting binary
+dnl   - runs fine on macOS 13,
+dnl   - aborts with a dyld "Symbol not found" message on macOS 12.
+dnl Whereas, when compiling with "clang mmacosx-version-min=12", there is a
+dnl   warning: 'func' is only available on macOS 13.0 or newer
+dnl   [-Wunguarded-availability-new],
+dnl and the resulting binary
+dnl   - runs fine on macOS 13,
+dnl   - crashes with a SIGSEGV (signal 11) on macOS 12.
+dnl
+dnl This macro sets two variables:
+dnl   - gl_cv_onwards_func_<func>   to yes / no / "future OS version"
+dnl   - ac_cv_func_<func>           to yes / no / no
+dnl The first variable allows to distinguish all three cases.
+dnl The second variable is set, so that an invocation
+dnl   gl_CHECK_FUNCS_MACOS([func], [[#include <foo.h>]])
+dnl can be used as a drop-in replacement for
+dnl   AC_CHECK_FUNCS([func]).
+AC_DEFUN([gl_CHECK_FUNCS_MACOS],
+[
+  AC_REQUIRE([AC_CANONICAL_HOST])
+  AC_REQUIRE([gl_PREPARE_CHECK_FUNCS_MACOS])
+  AC_CACHE_CHECK([for [$1]],
+    [[gl_cv_onwards_func_][$1]],
+    [gl_SILENT([
+       case "$host_os" in
+         gl_CHECK_FUNCS_CASE_FOR_MACOS([$1], [$2])
+         gl_CHECK_FUNCS_DEFAULT_CASE([$1])
+       esac
+      ])
+    ])
+  gl_CHECK_FUNCS_SET_RESULTS([$1])
+])
+
+dnl gl_CHECK_FUNCS_ANDROID_MACOS([func], [[#include <foo.h>]])
+dnl is like AC_CHECK_FUNCS([func]), taking into account a portability problem
+dnl on Android and on macOS.
+dnl It is the combination of gl_CHECK_FUNCS_ANDROID and gl_CHECK_FUNCS_MACOS.
+AC_DEFUN([gl_CHECK_FUNCS_ANDROID_MACOS],
+[
+  AC_REQUIRE([AC_CANONICAL_HOST])
+  AC_REQUIRE([gl_PREPARE_CHECK_FUNCS_MACOS])
+  AC_CACHE_CHECK([for [$1]],
+    [[gl_cv_onwards_func_][$1]],
+    [gl_SILENT([
+       case "$host_os" in
+         gl_CHECK_FUNCS_CASE_FOR_ANDROID([$1], [$2])
+         gl_CHECK_FUNCS_CASE_FOR_MACOS([$1], [$2])
+         gl_CHECK_FUNCS_DEFAULT_CASE([$1])
+       esac
+      ])
+    ])
+  gl_CHECK_FUNCS_SET_RESULTS([$1])
+])
+
 dnl Expands to some code for use in .c programs that, on native Windows, defines
 dnl the Microsoft deprecated alias function names to the underscore-prefixed
 dnl actual function names. With this macro, these function names are available
index 211d39f..66c0a8d 100644 (file)
@@ -1,9 +1,9 @@
 # DO NOT EDIT! GENERATED AUTOMATICALLY!
-# Copyright (C) 2002-2021 Free Software Foundation, Inc.
+# Copyright (C) 2002-2023 Free Software Foundation, Inc.
 #
 # This file is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
+# the Free Software Foundation, either version 3 of the License, or
 # (at your option) any later version.
 #
 # This file is distributed in the hope that it will be useful,
@@ -42,10 +42,11 @@ AC_DEFUN([gl_EARLY],
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
   AC_REQUIRE([gl_PROG_AR_RANLIB])
 
-  AC_REQUIRE([AM_PROG_CC_C_O])
   # Code from module absolute-header:
   # Code from module accept:
   # Code from module accept-tests:
+  # Code from module alignasof:
+  # Code from module alignasof-tests:
   # Code from module alloca:
   # Code from module alloca-opt:
   # Code from module alloca-opt-tests:
@@ -57,6 +58,8 @@ AC_DEFUN([gl_EARLY],
   # Code from module argmatch-tests:
   # Code from module arpa_inet:
   # Code from module arpa_inet-tests:
+  # Code from module assert-h:
+  # Code from module assert-h-tests:
   # Code from module assure:
   # Code from module atoll:
   # Code from module attribute:
@@ -77,6 +80,8 @@ AC_DEFUN([gl_EARLY],
   # Code from module c-strcase:
   # Code from module c-strcase-tests:
   # Code from module c-strcaseeq:
+  # Code from module c-strcasestr:
+  # Code from module c-strcasestr-tests:
   # Code from module c99:
   # Code from module calloc-gnu:
   # Code from module calloc-gnu-tests:
@@ -101,13 +106,13 @@ AC_DEFUN([gl_EARLY],
   # Code from module dtotimespec:
   # Code from module dup2:
   # Code from module dup2-tests:
-  # Code from module dynarray:
-  # Code from module dynarray-tests:
   # Code from module environ:
   # Code from module environ-tests:
   # Code from module errno:
   # Code from module errno-tests:
   # Code from module error:
+  # Code from module error-h:
+  # Code from module error-tests:
   # Code from module exclude:
   # Code from module exclude-tests:
   # Code from module exitfail:
@@ -118,7 +123,6 @@ AC_DEFUN([gl_EARLY],
   # Code from module fcntl-h-tests:
   # Code from module fcntl-tests:
   # Code from module fd-hook:
-  # Code from module fdl:
   # Code from module fdopen:
   # Code from module fdopen-tests:
   # Code from module fgetc-tests:
@@ -153,6 +157,7 @@ AC_DEFUN([gl_EARLY],
   # Code from module ftruncate:
   # Code from module ftruncate-tests:
   # Code from module fwrite-tests:
+  # Code from module gen-header:
   # Code from module gendocs:
   # Code from module getcwd-lgpl:
   # Code from module getcwd-lgpl-tests:
@@ -173,6 +178,8 @@ AC_DEFUN([gl_EARLY],
   # Code from module gettimeofday-tests:
   # Code from module git-version-gen:
   # Code from module gitlog-to-changelog:
+  # Code from module glibc-internal/dynarray:
+  # Code from module glibc-internal/dynarray-tests:
   # Code from module gnu-make:
   # Code from module gnu-web-doc-update:
   # Code from module gnumakefile:
@@ -219,7 +226,7 @@ AC_DEFUN([gl_EARLY],
   # Code from module langinfo-tests:
   # Code from module largefile:
   AC_REQUIRE([AC_SYS_LARGEFILE])
-  AC_REQUIRE([gl_YEAR2038_EARLY])
+  # Code from module largefile-tests:
   # Code from module libc-config:
   # Code from module limits-h:
   # Code from module limits-h-tests:
@@ -277,16 +284,21 @@ AC_DEFUN([gl_EARLY],
   # Code from module nocrash:
   # Code from module nstrftime:
   # Code from module nstrftime-tests:
+  # Code from module nullptr:
+  # Code from module nullptr-tests:
   # Code from module open:
   # Code from module open-tests:
   # Code from module pathmax:
   # Code from module pathmax-tests:
+  # Code from module perl:
   # Code from module perror:
   # Code from module perror-tests:
   # Code from module pipe-posix:
   # Code from module pipe-posix-tests:
   # Code from module progname:
   # Code from module propername:
+  # Code from module pselect:
+  # Code from module pselect-tests:
   # Code from module pthread-h:
   gl_ANYTHREADLIB_EARLY
   # Code from module pthread-h-tests:
@@ -326,8 +338,6 @@ AC_DEFUN([gl_EARLY],
   # Code from module setsockopt-tests:
   # Code from module sh-quote:
   # Code from module sh-quote-tests:
-  # Code from module sigaction:
-  # Code from module sigaction-tests:
   # Code from module signal:
   # Code from module signal-h:
   # Code from module signal-h-tests:
@@ -356,8 +366,6 @@ AC_DEFUN([gl_EARLY],
   # Code from module stat-time:
   # Code from module stat-time-tests:
   # Code from module std-gnu11:
-  # Code from module stdalign:
-  # Code from module stdalign-tests:
   # Code from module stdarg:
   dnl Some compilers (e.g., AIX 5.3 cc) need to be in c99 mode
   dnl for the builtin va_copy to work.  gl_PROG_CC_C99 arranges for this.
@@ -365,15 +373,19 @@ AC_DEFUN([gl_EARLY],
   # Code from module stdarg-tests:
   # Code from module stdbool:
   # Code from module stdbool-tests:
+  # Code from module stdckdint:
+  # Code from module stdckdint-tests:
   # Code from module stddef:
   # Code from module stddef-tests:
   # Code from module stdint:
   # Code from module stdint-tests:
   # Code from module stdio:
+  gl_STDIO_H_EARLY
   # Code from module stdio-tests:
   # Code from module stdlib:
   # Code from module stdlib-tests:
   # Code from module stdopen:
+  # Code from module stpcpy:
   # Code from module strcase:
   # Code from module streq:
   # Code from module strerror:
@@ -424,6 +436,8 @@ AC_DEFUN([gl_EARLY],
   # Code from module threadlib:
   gl_THREADLIB_EARLY
   # Code from module time:
+  # Code from module time-h:
+  # Code from module time-h-tests:
   # Code from module time-tests:
   # Code from module time_r:
   # Code from module time_rz:
@@ -433,6 +447,7 @@ AC_DEFUN([gl_EARLY],
   # Code from module timespec-sub:
   # Code from module timespec-tests:
   # Code from module trim:
+  # Code from module trim-tests:
   # Code from module tzset:
   # Code from module unistd:
   # Code from module unistd-tests:
@@ -452,10 +467,9 @@ AC_DEFUN([gl_EARLY],
   # Code from module update-copyright:
   # Code from module update-copyright-tests:
   # Code from module useless-if-before-free:
+  # Code from module vararrays:
   # Code from module vasnprintf:
   # Code from module vasnprintf-tests:
-  # Code from module vasprintf:
-  # Code from module vasprintf-tests:
   # Code from module vc-list-files:
   # Code from module vc-list-files-tests:
   # Code from module verify:
@@ -498,14 +512,16 @@ AC_DEFUN([gl_EARLY],
   # Code from module xstrtol:
   # Code from module xstrtol-error:
   # Code from module xstrtol-tests:
-  # Code from module xvasprintf:
-  # Code from module xvasprintf-tests:
+  # Code from module year2038:
+  AC_REQUIRE([AC_SYS_YEAR2038])
+  # Code from module year2038-tests:
 ])
 
 # This macro should be invoked from ./configure.ac, in the section
 # "Check for header files, types and library functions".
 AC_DEFUN([gl_INIT],
 [
+  AC_CONFIG_LIBOBJ_DIR([gnulib-tests])
   AM_CONDITIONAL([GL_COND_LIBTOOL], [false])
   gl_cond_libtool=false
   gl_libdeps=
@@ -520,76 +536,84 @@ AC_DEFUN([gl_INIT],
   m4_pushdef([GL_MODULE_INDICATOR_PREFIX], [GL])
   gl_COMMON
   gl_source_base='lib'
+  gl_source_base_prefix=
+  gl_ALIGNASOF
   gl_FUNC_ALLOCA
+  gl_CONDITIONAL_HEADER([alloca.h])
+  AC_PROG_MKDIR_P
+  gl_ASSERT_H
+  gl_CONDITIONAL_HEADER([assert.h])
+  AC_PROG_MKDIR_P
   gl_FUNC_BTOWC
-  if test $HAVE_BTOWC = 0 || test $REPLACE_BTOWC = 1; then
-    AC_LIBOBJ([btowc])
+  gl_CONDITIONAL([GL_COND_OBJ_BTOWC],
+                 [test $HAVE_BTOWC = 0 || test $REPLACE_BTOWC = 1])
+  AM_COND_IF([GL_COND_OBJ_BTOWC], [
     gl_PREREQ_BTOWC
-  fi
+  ])
   gl_WCHAR_MODULE_INDICATOR([btowc])
   gl___BUILTIN_EXPECT
   gl_C_STACK
   gl_FUNC_CALLOC_GNU
-  if test $REPLACE_CALLOC = 1; then
+  if test $REPLACE_CALLOC_FOR_CALLOC_GNU = 1; then
     AC_LIBOBJ([calloc])
   fi
+  gl_STDLIB_MODULE_INDICATOR([calloc-gnu])
   gl_FUNC_CALLOC_POSIX
-  if test $REPLACE_CALLOC = 1; then
+  if test $REPLACE_CALLOC_FOR_CALLOC_POSIX = 1; then
     AC_LIBOBJ([calloc])
   fi
   gl_STDLIB_MODULE_INDICATOR([calloc-posix])
   AC_REQUIRE([AC_C_RESTRICT])
-  AC_CHECK_FUNCS_ONCE([readlinkat])
+  gl_CHECK_FUNCS_ANDROID([readlinkat], [[#include <unistd.h>]])
   gl_CLOCK_TIME
   gl_MODULE_INDICATOR_FOR_TESTS([cloexec])
   gl_FUNC_CLOSE
-  if test $REPLACE_CLOSE = 1; then
-    AC_LIBOBJ([close])
-  fi
+  gl_CONDITIONAL([GL_COND_OBJ_CLOSE], [test $REPLACE_CLOSE = 1])
   gl_UNISTD_MODULE_INDICATOR([close])
   gl_CONFIG_H
   gl_CTYPE_H
   gl_CTYPE_H_REQUIRE_DEFAULTS
+  AC_PROG_MKDIR_P
   gl_MODULE_INDICATOR([dirname])
   gl_DOUBLE_SLASH_ROOT
   gl_FUNC_DUP2
-  if test $REPLACE_DUP2 = 1; then
-    AC_LIBOBJ([dup2])
+  gl_CONDITIONAL([GL_COND_OBJ_DUP2], [test $REPLACE_DUP2 = 1])
+  AM_COND_IF([GL_COND_OBJ_DUP2], [
     gl_PREREQ_DUP2
-  fi
+  ])
   gl_UNISTD_MODULE_INDICATOR([dup2])
-  AC_PROG_MKDIR_P
   gl_ENVIRON
   gl_UNISTD_MODULE_INDICATOR([environ])
   gl_HEADER_ERRNO_H
+  gl_CONDITIONAL_HEADER([errno.h])
+  AC_PROG_MKDIR_P
+  AC_REQUIRE([gl_ERROR_H])
   gl_ERROR
-  if test $ac_cv_lib_error_at_line = no; then
-    AC_LIBOBJ([error])
+  gl_CONDITIONAL([GL_COND_OBJ_ERROR], [test $GL_GENERATE_ERROR_H = true])
+  AM_COND_IF([GL_COND_OBJ_ERROR], [
     gl_PREREQ_ERROR
-  fi
+  ])
   m4_ifdef([AM_XGETTEXT_OPTION],
     [AM_][XGETTEXT_OPTION([--flag=error:3:c-format])
      AM_][XGETTEXT_OPTION([--flag=error_at_line:5:c-format])])
+  gl_ERROR_H
+  gl_CONDITIONAL_HEADER([error.h])
+  AC_PROG_MKDIR_P
   AC_REQUIRE([gl_EXTERN_INLINE])
   gl_FUNC_FCNTL
-  if test $HAVE_FCNTL = 0 || test $REPLACE_FCNTL = 1; then
-    AC_LIBOBJ([fcntl])
-  fi
+  gl_CONDITIONAL([GL_COND_OBJ_FCNTL],
+                 [test $HAVE_FCNTL = 0 || test $REPLACE_FCNTL = 1])
   gl_FCNTL_MODULE_INDICATOR([fcntl])
   gl_FCNTL_H
   gl_FCNTL_H_REQUIRE_DEFAULTS
+  AC_PROG_MKDIR_P
   gl_FILE_NAME_CONCAT
   gl_MODULE_INDICATOR([filenamecat])
   gl_FILE_NAME_CONCAT_LGPL
   AC_C_FLEXIBLE_ARRAY_MEMBER
-  gl_FLOAT_H
-  if test $REPLACE_FLOAT_LDBL = 1; then
-    AC_LIBOBJ([float])
-  fi
-  if test $REPLACE_ITOLD = 1; then
-    AC_LIBOBJ([itold])
-  fi
   gl_FUNC_FNMATCH_POSIX
+  dnl Because of gl_REPLACE_FNMATCH_H:
+  gl_CONDITIONAL_HEADER([fnmatch.h])
   if test $HAVE_FNMATCH = 0 || test $REPLACE_FNMATCH = 1; then
     AC_LIBOBJ([fnmatch])
     gl_PREREQ_FNMATCH
@@ -603,6 +627,8 @@ AC_DEFUN([gl_INIT],
   gl_MODULE_INDICATOR([fnmatch-gnu])
   gl_FNMATCH_H
   gl_FNMATCH_H_REQUIRE_DEFAULTS
+  gl_CONDITIONAL_HEADER([fnmatch.h])
+  AC_PROG_MKDIR_P
   gl_FUNC_FOPEN
   if test $REPLACE_FOPEN = 1; then
     AC_LIBOBJ([fopen])
@@ -610,74 +636,83 @@ AC_DEFUN([gl_INIT],
   fi
   gl_STDIO_MODULE_INDICATOR([fopen])
   gl_FUNC_FOPEN_GNU
-  if test $REPLACE_FOPEN = 1; then
+  if test $REPLACE_FOPEN_FOR_FOPEN_GNU = 1; then
     AC_LIBOBJ([fopen])
     gl_PREREQ_FOPEN
   fi
   gl_MODULE_INDICATOR([fopen-gnu])
+  gl_STDIO_MODULE_INDICATOR([fopen-gnu])
   gl_FUNC_FREE
-  if test $REPLACE_FREE = 1; then
-    AC_LIBOBJ([free])
+  gl_CONDITIONAL([GL_COND_OBJ_FREE], [test $REPLACE_FREE = 1])
+  AM_COND_IF([GL_COND_OBJ_FREE], [
     gl_PREREQ_FREE
-  fi
+  ])
   gl_STDLIB_MODULE_INDICATOR([free-posix])
   gl_FUNC_FREOPEN
-  if test $REPLACE_FREOPEN = 1; then
-    AC_LIBOBJ([freopen])
+  gl_CONDITIONAL([GL_COND_OBJ_FREOPEN], [test $REPLACE_FREOPEN = 1])
+  AM_COND_IF([GL_COND_OBJ_FREOPEN], [
     gl_PREREQ_FREOPEN
-  fi
+  ])
   gl_STDIO_MODULE_INDICATOR([freopen])
   gl_FUNC_FSTAT
-  if test $REPLACE_FSTAT = 1; then
-    AC_LIBOBJ([fstat])
+  gl_CONDITIONAL([GL_COND_OBJ_FSTAT], [test $REPLACE_FSTAT = 1])
+  AM_COND_IF([GL_COND_OBJ_FSTAT], [
     case "$host_os" in
       mingw*)
         AC_LIBOBJ([stat-w32])
         ;;
     esac
     gl_PREREQ_FSTAT
-  fi
+  ])
   gl_SYS_STAT_MODULE_INDICATOR([fstat])
   gl_FUNC_GETDTABLESIZE
-  if test $HAVE_GETDTABLESIZE = 0 || test $REPLACE_GETDTABLESIZE = 1; then
-    AC_LIBOBJ([getdtablesize])
+  gl_CONDITIONAL([GL_COND_OBJ_GETDTABLESIZE],
+                 [test $HAVE_GETDTABLESIZE = 0 || test $REPLACE_GETDTABLESIZE = 1])
+  AM_COND_IF([GL_COND_OBJ_GETDTABLESIZE], [
     gl_PREREQ_GETDTABLESIZE
-  fi
+  ])
   gl_UNISTD_MODULE_INDICATOR([getdtablesize])
   gl_FUNC_GETOPT_GNU
   dnl Because of the way gl_FUNC_GETOPT_GNU is implemented (the gl_getopt_required
   dnl mechanism), there is no need to do any AC_LIBOBJ or AC_SUBST here; they are
   dnl done in the getopt-posix module.
   gl_FUNC_GETOPT_POSIX
-  if test $REPLACE_GETOPT = 1; then
-    AC_LIBOBJ([getopt])
-    AC_LIBOBJ([getopt1])
+  gl_CONDITIONAL_HEADER([getopt.h])
+  gl_CONDITIONAL_HEADER([getopt-cdefs.h])
+  AC_PROG_MKDIR_P
+  gl_CONDITIONAL([GL_COND_OBJ_GETOPT], [test $REPLACE_GETOPT = 1])
+  AM_COND_IF([GL_COND_OBJ_GETOPT], [
     dnl Define the substituted variable GNULIB_UNISTD_H_GETOPT to 1.
     gl_UNISTD_H_REQUIRE_DEFAULTS
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNISTD_H_GETOPT], [1])
-  fi
+  ])
   gl_UNISTD_MODULE_INDICATOR([getopt-posix])
   gl_FUNC_GETPAGESIZE
-  if test $REPLACE_GETPAGESIZE = 1; then
-    AC_LIBOBJ([getpagesize])
-  fi
+  gl_CONDITIONAL([GL_COND_OBJ_GETPAGESIZE], [test $REPLACE_GETPAGESIZE = 1])
   gl_UNISTD_MODULE_INDICATOR([getpagesize])
   gl_FUNC_GETPROGNAME
+  gl_CONDITIONAL([GL_COND_OBJ_GETPROGNAME],
+                 [test $HAVE_GETPROGNAME = 0 || test $REPLACE_GETPROGNAME = 1])
+  AM_COND_IF([GL_COND_OBJ_GETPROGNAME], [
+    gl_PREREQ_GETPROGNAME
+  ])
+  gl_STDLIB_MODULE_INDICATOR([getprogname])
   AC_REQUIRE([AC_CANONICAL_HOST])
   gl_FUNC_GETRANDOM
-  if test $HAVE_GETRANDOM = 0 || test $REPLACE_GETRANDOM = 1; then
-    AC_LIBOBJ([getrandom])
-  fi
+  gl_CONDITIONAL([GL_COND_OBJ_GETRANDOM],
+                 [test $HAVE_GETRANDOM = 0 || test $REPLACE_GETRANDOM = 1])
   gl_SYS_RANDOM_MODULE_INDICATOR([getrandom])
   AC_SUBST([LIBINTL])
   AC_SUBST([LTLIBINTL])
   gl_GETTIME
   gl_FUNC_GETTIMEOFDAY
-  if test $HAVE_GETTIMEOFDAY = 0 || test $REPLACE_GETTIMEOFDAY = 1; then
-    AC_LIBOBJ([gettimeofday])
+  gl_CONDITIONAL([GL_COND_OBJ_GETTIMEOFDAY],
+                 [test $HAVE_GETTIMEOFDAY = 0 || test $REPLACE_GETTIMEOFDAY = 1])
+  AM_COND_IF([GL_COND_OBJ_GETTIMEOFDAY], [
     gl_PREREQ_GETTIMEOFDAY
-  fi
+  ])
   gl_SYS_TIME_MODULE_INDICATOR([gettimeofday])
+  AC_PROG_MKDIR_P
   gl_GNU_MAKE
   # Autoconf 2.61a.99 and earlier don't support linking a file only
   # in VPATH builds.  But since GNUmakefile is for maintainer use
@@ -690,7 +725,10 @@ AC_DEFUN([gl_INIT],
         [AC_CONFIG_LINKS([$GNUmakefile:$GNUmakefile], [],
           [GNUmakefile=$GNUmakefile])])
   AC_REQUIRE([gl_FUNC_SETLOCALE_NULL])
-  LIB_HARD_LOCALE="$LIB_SETLOCALE_NULL"
+  HARD_LOCALE_LIB="$SETLOCALE_NULL_LIB"
+  AC_SUBST([HARD_LOCALE_LIB])
+  dnl For backward compatibility.
+  LIB_HARD_LOCALE="$HARD_LOCALE_LIB"
   AC_SUBST([LIB_HARD_LOCALE])
   AC_DEFUN([gl_HAVE_MODULE_HAVELIB])
   AC_REQUIRE([gl_HOST_CPU_C_ABI])
@@ -699,87 +737,75 @@ AC_DEFUN([gl_INIT],
     [gl_ICONV_MODULE_INDICATOR([iconv])])
   gl_ICONV_H
   gl_ICONV_H_REQUIRE_DEFAULTS
+  gl_CONDITIONAL_HEADER([iconv.h])
+  AC_PROG_MKDIR_P
   gl_FUNC_ICONV_OPEN
-  if test $REPLACE_ICONV_OPEN = 1; then
-    AC_LIBOBJ([iconv_open])
-  fi
-  if test $REPLACE_ICONV = 1; then
-    AC_LIBOBJ([iconv])
-    AC_LIBOBJ([iconv_close])
-  fi
+  dnl Because of gl_REPLACE_ICONV_H:
+  gl_CONDITIONAL_HEADER([iconv.h])
+  gl_CONDITIONAL([GL_COND_OBJ_ICONV_OPEN], [test $REPLACE_ICONV_OPEN = 1])
+  gl_CONDITIONAL([GL_COND_OBJ_ICONV], [test $REPLACE_ICONV = 1])
   gl_INLINE
   gl_INTTOSTR
   gl_INTTYPES_H
   gl_INTTYPES_INCOMPLETE
   gl_INTTYPES_H_REQUIRE_DEFAULTS
+  AC_PROG_MKDIR_P
   gl_FUNC_ISBLANK
-  if test $HAVE_ISBLANK = 0; then
-    AC_LIBOBJ([isblank])
-  fi
+  gl_CONDITIONAL([GL_COND_OBJ_ISBLANK], [test $HAVE_ISBLANK = 0])
   gl_MODULE_INDICATOR([isblank])
   gl_CTYPE_MODULE_INDICATOR([isblank])
   gl_FUNC_ISWBLANK
-  if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
-    :
-  else
-    if test $HAVE_ISWBLANK = 0 || test $REPLACE_ISWBLANK = 1; then
-      AC_LIBOBJ([iswblank])
-    fi
-  fi
+  gl_CONDITIONAL([GL_COND_OBJ_ISWBLANK],
+                 [! { test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; } && { test $HAVE_ISWBLANK = 0 || test $REPLACE_ISWBLANK = 1; }])
   gl_WCTYPE_MODULE_INDICATOR([iswblank])
   gl_FUNC_ISWDIGIT
-  if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
-    :
-  else
-    if test $REPLACE_ISWDIGIT = 1; then
-      AC_LIBOBJ([iswdigit])
-    fi
-  fi
+  gl_CONDITIONAL([GL_COND_OBJ_ISWDIGIT],
+                 [! { test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; } && test $REPLACE_ISWDIGIT = 1])
   gl_WCTYPE_MODULE_INDICATOR([iswdigit])
   gl_FUNC_ISWXDIGIT
-  if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
-    :
-  else
-    if test $REPLACE_ISWXDIGIT = 1; then
-      AC_LIBOBJ([iswxdigit])
-    fi
-  fi
+  gl_CONDITIONAL([GL_COND_OBJ_ISWXDIGIT],
+                 [! { test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; } && test $REPLACE_ISWXDIGIT = 1])
   gl_WCTYPE_MODULE_INDICATOR([iswxdigit])
   gl_LANGINFO_H
   gl_LANGINFO_H_REQUIRE_DEFAULTS
+  AC_PROG_MKDIR_P
   AC_REQUIRE([gl_LARGEFILE])
   gl___INLINE
   gl_LIMITS_H
+  gl_CONDITIONAL_HEADER([limits.h])
+  AC_PROG_MKDIR_P
   gl_LOCALCHARSET
   dnl For backward compatibility. Some packages still use this.
   LOCALCHARSET_TESTS_ENVIRONMENT=
   AC_SUBST([LOCALCHARSET_TESTS_ENVIRONMENT])
   gl_LOCALE_H
   gl_LOCALE_H_REQUIRE_DEFAULTS
+  AC_PROG_MKDIR_P
   gl_FUNC_LOCALECONV
-  if test $REPLACE_LOCALECONV = 1; then
-    AC_LIBOBJ([localeconv])
+  gl_CONDITIONAL([GL_COND_OBJ_LOCALECONV], [test $REPLACE_LOCALECONV = 1])
+  AM_COND_IF([GL_COND_OBJ_LOCALECONV], [
     gl_PREREQ_LOCALECONV
-  fi
+  ])
   gl_LOCALE_MODULE_INDICATOR([localeconv])
   gl_LOCK
   gl_MODULE_INDICATOR([lock])
   gl_FUNC_LSTAT
-  if test $REPLACE_LSTAT = 1; then
-    AC_LIBOBJ([lstat])
+  gl_CONDITIONAL([GL_COND_OBJ_LSTAT], [test $REPLACE_LSTAT = 1])
+  AM_COND_IF([GL_COND_OBJ_LSTAT], [
     gl_PREREQ_LSTAT
-  fi
+  ])
   gl_SYS_STAT_MODULE_INDICATOR([lstat])
   AC_CONFIG_COMMANDS_PRE([m4_ifdef([AH_HEADER],
     [AC_SUBST([CONFIG_INCLUDE], m4_defn([AH_HEADER]))])])
   AC_REQUIRE([AC_PROG_SED])
   AC_REQUIRE([AC_PROG_GREP])
   gl_FUNC_MALLOC_GNU
-  if test $REPLACE_MALLOC = 1; then
+  if test $REPLACE_MALLOC_FOR_MALLOC_GNU = 1; then
     AC_LIBOBJ([malloc])
   fi
+  gl_STDLIB_MODULE_INDICATOR([malloc-gnu])
   AC_REQUIRE([gl_FUNC_MALLOC_POSIX])
-  if test $REPLACE_MALLOC = 1; then
+  if test $REPLACE_MALLOC_FOR_MALLOC_POSIX = 1; then
     AC_LIBOBJ([malloc])
   fi
   gl_STDLIB_MODULE_INDICATOR([malloc-posix])
@@ -787,63 +813,67 @@ AC_DEFUN([gl_INIT],
   gl_MBCHAR
   gl_MBITER
   gl_FUNC_MBRTOWC
-  if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then
-    AC_LIBOBJ([mbrtowc])
+  gl_CONDITIONAL([GL_COND_OBJ_MBRTOWC],
+                 [test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1])
+  AM_COND_IF([GL_COND_OBJ_MBRTOWC], [
     if test $REPLACE_MBSTATE_T = 1; then
       AC_LIBOBJ([lc-charset-dispatch])
       AC_LIBOBJ([mbtowc-lock])
       gl_PREREQ_MBTOWC_LOCK
     fi
     gl_PREREQ_MBRTOWC
-  fi
+  ])
   gl_WCHAR_MODULE_INDICATOR([mbrtowc])
   gl_STRING_MODULE_INDICATOR([mbscasecmp])
   gl_FUNC_MBSINIT
-  if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then
-    AC_LIBOBJ([mbsinit])
+  gl_CONDITIONAL([GL_COND_OBJ_MBSINIT],
+                 [test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1])
+  AM_COND_IF([GL_COND_OBJ_MBSINIT], [
     gl_PREREQ_MBSINIT
-  fi
+  ])
   gl_WCHAR_MODULE_INDICATOR([mbsinit])
   gl_FUNC_MBSLEN
   gl_STRING_MODULE_INDICATOR([mbslen])
   gl_FUNC_MBSRTOWCS
-  if test $HAVE_MBSRTOWCS = 0 || test $REPLACE_MBSRTOWCS = 1; then
-    AC_LIBOBJ([mbsrtowcs])
+  gl_CONDITIONAL([GL_COND_OBJ_MBSRTOWCS],
+                 [test $HAVE_MBSRTOWCS = 0 || test $REPLACE_MBSRTOWCS = 1])
+  AM_COND_IF([GL_COND_OBJ_MBSRTOWCS], [
     AC_LIBOBJ([mbsrtowcs-state])
     gl_PREREQ_MBSRTOWCS
-  fi
+  ])
   gl_WCHAR_MODULE_INDICATOR([mbsrtowcs])
   gl_STRING_MODULE_INDICATOR([mbsstr])
   gl_FUNC_MBTOWC
-  if test $HAVE_MBTOWC = 0 || test $REPLACE_MBTOWC = 1; then
-    AC_LIBOBJ([mbtowc])
+  gl_CONDITIONAL([GL_COND_OBJ_MBTOWC],
+                 [test $HAVE_MBTOWC = 0 || test $REPLACE_MBTOWC = 1])
+  AM_COND_IF([GL_COND_OBJ_MBTOWC], [
     gl_PREREQ_MBTOWC
-  fi
+  ])
   gl_STDLIB_MODULE_INDICATOR([mbtowc])
   gl_MBITER
   gl_FUNC_MEMCHR
-  if test $REPLACE_MEMCHR = 1; then
-    AC_LIBOBJ([memchr])
+  gl_CONDITIONAL([GL_COND_OBJ_MEMCHR], [test $REPLACE_MEMCHR = 1])
+  AM_COND_IF([GL_COND_OBJ_MEMCHR], [
     gl_PREREQ_MEMCHR
-  fi
+  ])
   gl_STRING_MODULE_INDICATOR([memchr])
   gl_FUNC_MEMPCPY
-  if test $HAVE_MEMPCPY = 0; then
-    AC_LIBOBJ([mempcpy])
+  gl_CONDITIONAL([GL_COND_OBJ_MEMPCPY],
+                 [test $HAVE_MEMPCPY = 0 || test $REPLACE_MEMPCPY = 1])
+  AM_COND_IF([GL_COND_OBJ_MEMPCPY], [
     gl_PREREQ_MEMPCPY
-  fi
+  ])
   gl_STRING_MODULE_INDICATOR([mempcpy])
   gl_MINMAX
   gl_FUNC_MKDIR
-  if test $REPLACE_MKDIR = 1; then
-    AC_LIBOBJ([mkdir])
-  fi
+  gl_CONDITIONAL([GL_COND_OBJ_MKDIR], [test $REPLACE_MKDIR = 1])
   gl_SYS_STAT_MODULE_INDICATOR([mkdir])
   gl_FUNC_MKSTEMP
-  if test $HAVE_MKSTEMP = 0 || test $REPLACE_MKSTEMP = 1; then
-    AC_LIBOBJ([mkstemp])
+  gl_CONDITIONAL([GL_COND_OBJ_MKSTEMP],
+                 [test $HAVE_MKSTEMP = 0 || test $REPLACE_MKSTEMP = 1])
+  AM_COND_IF([GL_COND_OBJ_MKSTEMP], [
     gl_PREREQ_MKSTEMP
-  fi
+  ])
   gl_STDLIB_MODULE_INDICATOR([mkstemp])
   gl_FUNC_MKTIME
   if test $REPLACE_MKTIME = 1; then
@@ -857,32 +887,32 @@ AC_DEFUN([gl_INIT],
     gl_PREREQ_MKTIME
   fi
   AC_REQUIRE([gl_MSVC_INVAL])
-  if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
-    AC_LIBOBJ([msvc-inval])
-  fi
+  gl_CONDITIONAL([GL_COND_OBJ_MSVC_INVAL],
+                 [test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1])
   AC_REQUIRE([gl_MSVC_NOTHROW])
-  if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
-    AC_LIBOBJ([msvc-nothrow])
-  fi
+  gl_CONDITIONAL([GL_COND_OBJ_MSVC_NOTHROW],
+                 [test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1])
   gl_MODULE_INDICATOR([msvc-nothrow])
   gl_MULTIARCH
   gl_FUNC_NL_LANGINFO
-  if test $HAVE_NL_LANGINFO = 0 || test $REPLACE_NL_LANGINFO = 1; then
-    AC_LIBOBJ([nl_langinfo])
-  fi
+  gl_CONDITIONAL([GL_COND_OBJ_NL_LANGINFO],
+                 [test $HAVE_NL_LANGINFO = 0 || test $REPLACE_NL_LANGINFO = 1])
+  gl_CONDITIONAL([GL_COND_OBJ_NL_LANGINFO_LOCK],
+                 [test $REPLACE_NL_LANGINFO = 1 && test $NL_LANGINFO_MTSAFE = 0])
   if test $REPLACE_NL_LANGINFO = 1 && test $NL_LANGINFO_MTSAFE = 0; then
-    AC_LIBOBJ([nl_langinfo-lock])
     gl_PREREQ_NL_LANGINFO_LOCK
   fi
   gl_LANGINFO_MODULE_INDICATOR([nl_langinfo])
   gl_FUNC_GNU_STRFTIME
+  gl_NULLPTR
   gl_FUNC_OPEN
-  if test $REPLACE_OPEN = 1; then
-    AC_LIBOBJ([open])
+  gl_CONDITIONAL([GL_COND_OBJ_OPEN], [test $REPLACE_OPEN = 1])
+  AM_COND_IF([GL_COND_OBJ_OPEN], [
     gl_PREREQ_OPEN
-  fi
+  ])
   gl_FCNTL_MODULE_INDICATOR([open])
   gl_PATHMAX
+  gl_PERL
   AC_CHECK_DECLS([program_invocation_name], [], [], [#include <errno.h>])
   AC_CHECK_DECLS([program_invocation_short_name], [], [], [#include <errno.h>])
   m4_ifdef([AM_XGETTEXT_OPTION],
@@ -891,77 +921,85 @@ AC_DEFUN([gl_INIT],
   gl_QUOTE
   gl_QUOTEARG
   gl_FUNC_RAISE
-  if test $HAVE_RAISE = 0 || test $REPLACE_RAISE = 1; then
-    AC_LIBOBJ([raise])
+  gl_CONDITIONAL([GL_COND_OBJ_RAISE],
+                 [test $HAVE_RAISE = 0 || test $REPLACE_RAISE = 1])
+  AM_COND_IF([GL_COND_OBJ_RAISE], [
     gl_PREREQ_RAISE
-  fi
+  ])
   gl_SIGNAL_MODULE_INDICATOR([raise])
   gl_FUNC_RAWMEMCHR
-  if test $HAVE_RAWMEMCHR = 0; then
-    AC_LIBOBJ([rawmemchr])
+  gl_CONDITIONAL([GL_COND_OBJ_RAWMEMCHR], [test $HAVE_RAWMEMCHR = 0])
+  AM_COND_IF([GL_COND_OBJ_RAWMEMCHR], [
     gl_PREREQ_RAWMEMCHR
-  fi
+  ])
   gl_STRING_MODULE_INDICATOR([rawmemchr])
   gl_FUNC_READLINK
-  if test $HAVE_READLINK = 0 || test $REPLACE_READLINK = 1; then
-    AC_LIBOBJ([readlink])
+  gl_CONDITIONAL([GL_COND_OBJ_READLINK],
+                 [test $HAVE_READLINK = 0 || test $REPLACE_READLINK = 1])
+  AM_COND_IF([GL_COND_OBJ_READLINK], [
     gl_PREREQ_READLINK
-  fi
+  ])
   gl_UNISTD_MODULE_INDICATOR([readlink])
   gl_FUNC_REALLOC_GNU
-  if test $REPLACE_REALLOC = 1; then
+  if test $REPLACE_REALLOC_FOR_REALLOC_GNU = 1; then
     AC_LIBOBJ([realloc])
   fi
+  gl_STDLIB_MODULE_INDICATOR([realloc-gnu])
   gl_FUNC_REALLOC_POSIX
-  if test $REPLACE_REALLOC = 1; then
+  if test $REPLACE_REALLOC_FOR_REALLOC_POSIX = 1; then
     AC_LIBOBJ([realloc])
   fi
   gl_STDLIB_MODULE_INDICATOR([realloc-posix])
   gl_FUNC_REALLOCARRAY
-  if test $HAVE_REALLOCARRAY = 0 || test $REPLACE_REALLOCARRAY = 1; then
-    AC_LIBOBJ([reallocarray])
+  gl_CONDITIONAL([GL_COND_OBJ_REALLOCARRAY],
+                 [test $HAVE_REALLOCARRAY = 0 || test $REPLACE_REALLOCARRAY = 1])
+  AM_COND_IF([GL_COND_OBJ_REALLOCARRAY], [
     gl_PREREQ_REALLOCARRAY
-  fi
+  ])
   gl_MODULE_INDICATOR([reallocarray])
   gl_STDLIB_MODULE_INDICATOR([reallocarray])
   gl_REGEX
-  if test $ac_use_included_regex = yes; then
-    AC_LIBOBJ([regex])
+  gl_CONDITIONAL([GL_COND_OBJ_REGEX], [test $ac_use_included_regex = yes])
+  AM_COND_IF([GL_COND_OBJ_REGEX], [
     gl_PREREQ_REGEX
-  fi
+  ])
   gl_FUNC_SETENV
-  if test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1; then
-    AC_LIBOBJ([setenv])
-  fi
+  gl_CONDITIONAL([GL_COND_OBJ_SETENV],
+                 [test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1])
   gl_STDLIB_MODULE_INDICATOR([setenv])
   gl_FUNC_SETLOCALE_NULL
-  if test $SETLOCALE_NULL_ALL_MTSAFE = 0 || test $SETLOCALE_NULL_ONE_MTSAFE = 0; then
-    AC_LIBOBJ([setlocale-lock])
+  gl_CONDITIONAL([GL_COND_OBJ_SETLOCALE_LOCK],
+                 [test $SETLOCALE_NULL_ALL_MTSAFE = 0 || test $SETLOCALE_NULL_ONE_MTSAFE = 0])
+  AM_COND_IF([GL_COND_OBJ_SETLOCALE_LOCK], [
     gl_PREREQ_SETLOCALE_LOCK
-  fi
+  ])
   gl_LOCALE_MODULE_INDICATOR([setlocale_null])
   AC_REQUIRE([AC_C_RESTRICT])
   gl_SIGNAL_H
   gl_SIGNAL_H_REQUIRE_DEFAULTS
-  AC_ARG_WITH([libsigsegv],
-    [AS_HELP_STRING([--with-libsigsegv],
-       [use the GNU libsigsegv library, when present, instead of the gnulib module 'sigsegv'])])
-  SIGSEGV_H=sigsegv.h
-  if test "$with_libsigsegv" = yes; then
-    gl_LIBSIGSEGV
-    if test "$gl_cv_lib_sigsegv" = yes; then
-      SIGSEGV_H=
-    fi
+  AC_PROG_MKDIR_P
+  gl_SIGNALBLOCKING
+  gl_CONDITIONAL([GL_COND_OBJ_SIGPROCMASK], [test $HAVE_POSIX_SIGNALBLOCKING = 0])
+  AM_COND_IF([GL_COND_OBJ_SIGPROCMASK], [
+    gl_PREREQ_SIGPROCMASK
+  ])
+  gl_SIGNAL_MODULE_INDICATOR([sigprocmask])
+  AC_REQUIRE([gl_SIGSEGV])
+  if test $gl_sigsegv_uses_libsigsegv = yes; then
+    GL_GENERATE_SIGSEGV_H=false
+  else
+    GL_GENERATE_SIGSEGV_H=true
   fi
-  AC_SUBST([SIGSEGV_H])
-  AM_CONDITIONAL([GL_GENERATE_SIGSEGV_H], [test -n "$SIGSEGV_H"])
-  if test -n "$SIGSEGV_H"; then
+  gl_CONDITIONAL_HEADER([sigsegv.h])
+  AC_PROG_MKDIR_P
+  if $GL_GENERATE_SIGSEGV_H; then
     dnl Persuade glibc <sys/ucontext.h> to declare macros designating register
     dnl indices: REG_RSP on x86_64, REG_ESP on i386.
     dnl Persuade Solaris OpenIndiana <ucontext.h> to include <sys/regset.h>,
     dnl which declares macros designating register indices, such as ESP on i386.
     dnl Persuade Solaris OpenIndiana <unistd.h> to declare mincore().
     AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+    gl_MUSL_LIBC
     AC_REQUIRE([AC_CANONICAL_HOST])
     case "$host_os" in
       solaris2.11)
@@ -977,29 +1015,46 @@ AC_DEFUN([gl_INIT],
     SV_SIGALTSTACK
     AC_CHECK_FUNCS_ONCE([getrlimit])
   fi
-  gl_SIZE_MAX
   gt_TYPE_SSIZE_T
   gl_FUNC_STAT
-  if test $REPLACE_STAT = 1; then
-    AC_LIBOBJ([stat])
+  gl_CONDITIONAL([GL_COND_OBJ_STAT], [test $REPLACE_STAT = 1])
+  AM_COND_IF([GL_COND_OBJ_STAT], [
     case "$host_os" in
       mingw*)
         AC_LIBOBJ([stat-w32])
         ;;
     esac
     gl_PREREQ_STAT
-  fi
+  ])
   gl_SYS_STAT_MODULE_INDICATOR([stat])
   gl_STAT_TIME
   gl_STAT_BIRTHTIME
-  gl_STDALIGN_H
   gl_STDARG_H
-  AM_STDBOOL_H
+  gl_CONDITIONAL_HEADER([stdarg.h])
+  AC_PROG_MKDIR_P
+  gl_C_BOOL
+  AC_CHECK_HEADERS_ONCE([stdckdint.h])
+  if test $ac_cv_header_stdckdint_h = yes; then
+    GL_GENERATE_STDCKDINT_H=false
+  else
+    GL_GENERATE_STDCKDINT_H=true
+  fi
+  gl_CONDITIONAL_HEADER([stdckdint.h])
+  AC_PROG_MKDIR_P
   gl_STDDEF_H
   gl_STDDEF_H_REQUIRE_DEFAULTS
+  gl_CONDITIONAL_HEADER([stddef.h])
+  AC_PROG_MKDIR_P
   gl_STDINT_H
+  gl_CONDITIONAL_HEADER([stdint.h])
+  dnl Because of gl_REPLACE_LIMITS_H:
+  gl_CONDITIONAL_HEADER([limits.h])
+  AC_PROG_MKDIR_P
   gl_STDIO_H
   gl_STDIO_H_REQUIRE_DEFAULTS
+  AC_PROG_MKDIR_P
+  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
   dnl <stdio.h> likely needs them.
   gl_STDIO_MODULE_INDICATOR([fscanf])
@@ -1025,58 +1080,70 @@ AC_DEFUN([gl_INIT],
   gl_STDIO_MODULE_INDICATOR([fwrite])
   gl_STDLIB_H
   gl_STDLIB_H_REQUIRE_DEFAULTS
+  AC_PROG_MKDIR_P
+  gl_FUNC_STPCPY
+  gl_CONDITIONAL([GL_COND_OBJ_STPCPY],
+                 [test $HAVE_STPCPY = 0 || test $REPLACE_STPCPY = 1])
+  AM_COND_IF([GL_COND_OBJ_STPCPY], [
+    gl_PREREQ_STPCPY
+  ])
+  gl_STRING_MODULE_INDICATOR([stpcpy])
   gl_STRCASE
-  if test $HAVE_STRCASECMP = 0; then
-    AC_LIBOBJ([strcasecmp])
+  gl_CONDITIONAL([GL_COND_OBJ_STRCASECMP], [test $HAVE_STRCASECMP = 0])
+  AM_COND_IF([GL_COND_OBJ_STRCASECMP], [
     gl_PREREQ_STRCASECMP
-  fi
-  if test $HAVE_STRNCASECMP = 0; then
-    AC_LIBOBJ([strncasecmp])
+  ])
+  gl_CONDITIONAL([GL_COND_OBJ_STRNCASECMP], [test $HAVE_STRNCASECMP = 0])
+  AM_COND_IF([GL_COND_OBJ_STRNCASECMP], [
     gl_PREREQ_STRNCASECMP
-  fi
+  ])
   gl_FUNC_STRERROR
-  if test $REPLACE_STRERROR = 1; then
-    AC_LIBOBJ([strerror])
-  fi
+  gl_CONDITIONAL([GL_COND_OBJ_STRERROR], [test $REPLACE_STRERROR = 1])
   gl_MODULE_INDICATOR([strerror])
   gl_STRING_MODULE_INDICATOR([strerror])
   AC_REQUIRE([gl_HEADER_ERRNO_H])
   AC_REQUIRE([gl_FUNC_STRERROR_0])
-  if test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1; then
-    AC_LIBOBJ([strerror-override])
+  gl_CONDITIONAL([GL_COND_OBJ_STRERROR_OVERRIDE],
+                 [test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1])
+  AM_COND_IF([GL_COND_OBJ_STRERROR_OVERRIDE], [
     gl_PREREQ_SYS_H_WINSOCK2
-  fi
+  ])
   if test $gl_cond_libtool = false; then
     gl_ltlibdeps="$gl_ltlibdeps $LTLIBICONV"
     gl_libdeps="$gl_libdeps $LIBICONV"
   fi
   gl_STRING_H
   gl_STRING_H_REQUIRE_DEFAULTS
+  AC_PROG_MKDIR_P
   gl_STRINGS_H
   gl_STRINGS_H_REQUIRE_DEFAULTS
+  AC_PROG_MKDIR_P
   gl_FUNC_STRNLEN
-  if test $HAVE_DECL_STRNLEN = 0 || test $REPLACE_STRNLEN = 1; then
-    AC_LIBOBJ([strnlen])
+  gl_CONDITIONAL([GL_COND_OBJ_STRNLEN],
+                 [test $HAVE_DECL_STRNLEN = 0 || test $REPLACE_STRNLEN = 1])
+  AM_COND_IF([GL_COND_OBJ_STRNLEN], [
     gl_PREREQ_STRNLEN
-  fi
+  ])
   gl_STRING_MODULE_INDICATOR([strnlen])
   gl_FUNC_STRPTIME
-  if test $HAVE_STRPTIME = 0; then
-    AC_LIBOBJ([strptime])
+  gl_CONDITIONAL([GL_COND_OBJ_STRPTIME], [test $HAVE_STRPTIME = 0])
+  AM_COND_IF([GL_COND_OBJ_STRPTIME], [
     gl_PREREQ_STRPTIME
-  fi
+  ])
   gl_TIME_MODULE_INDICATOR([strptime])
   gl_FUNC_STRTOIMAX
-  if test $HAVE_DECL_STRTOIMAX = 0 || test $REPLACE_STRTOIMAX = 1; then
-    AC_LIBOBJ([strtoimax])
+  gl_CONDITIONAL([GL_COND_OBJ_STRTOIMAX],
+                 [test $HAVE_DECL_STRTOIMAX = 0 || test $REPLACE_STRTOIMAX = 1])
+  AM_COND_IF([GL_COND_OBJ_STRTOIMAX], [
     gl_PREREQ_STRTOIMAX
-  fi
+  ])
   gl_INTTYPES_MODULE_INDICATOR([strtoimax])
   gl_FUNC_STRTOLL
-  if test $HAVE_STRTOLL = 0 || test $REPLACE_STRTOLL = 1; then
-    AC_LIBOBJ([strtoll])
+  gl_CONDITIONAL([GL_COND_OBJ_STRTOLL],
+                 [test $HAVE_STRTOLL = 0 || test $REPLACE_STRTOLL = 1])
+  AM_COND_IF([GL_COND_OBJ_STRTOLL], [
     gl_PREREQ_STRTOLL
-  fi
+  ])
   gl_STDLIB_MODULE_INDICATOR([strtoll])
   gl_SYS_RANDOM_H
   gl_SYS_RANDOM_H_REQUIRE_DEFAULTS
@@ -1099,37 +1166,39 @@ AC_DEFUN([gl_INIT],
   AC_REQUIRE([gl_THREADLIB])
   gl_TIME_H
   gl_TIME_H_REQUIRE_DEFAULTS
+  AC_PROG_MKDIR_P
   gl_TIME_R
-  if test $HAVE_LOCALTIME_R = 0 || test $REPLACE_LOCALTIME_R = 1; then
-    AC_LIBOBJ([time_r])
+  gl_CONDITIONAL([GL_COND_OBJ_TIME_R],
+                 [test $HAVE_LOCALTIME_R = 0 || test $REPLACE_LOCALTIME_R = 1])
+  AM_COND_IF([GL_COND_OBJ_TIME_R], [
     gl_PREREQ_TIME_R
-  fi
+  ])
   gl_TIME_MODULE_INDICATOR([time_r])
   gl_TIME_RZ
-  if test $HAVE_TIMEZONE_T = 0; then
-    AC_LIBOBJ([time_rz])
-  fi
+  gl_CONDITIONAL([GL_COND_OBJ_TIME_RZ], [test $HAVE_TIMEZONE_T = 0])
   gl_TIME_MODULE_INDICATOR([time_rz])
   gl_FUNC_TIMEGM
-  if test $HAVE_TIMEGM = 0 || test $REPLACE_TIMEGM = 1; then
-    AC_LIBOBJ([timegm])
+  gl_CONDITIONAL([GL_COND_OBJ_TIMEGM],
+                 [test $HAVE_TIMEGM = 0 || test $REPLACE_TIMEGM = 1])
+  AM_COND_IF([GL_COND_OBJ_TIMEGM], [
     gl_PREREQ_TIMEGM
-  fi
+  ])
   gl_TIME_MODULE_INDICATOR([timegm])
   gl_TIMESPEC
   gl_FUNC_TZSET
-  if test $REPLACE_TZSET = 1; then
-    AC_LIBOBJ([tzset])
-  fi
+  gl_CONDITIONAL([GL_COND_OBJ_TZSET], [test $REPLACE_TZSET = 1])
   gl_TIME_MODULE_INDICATOR([tzset])
   gl_UNISTD_H
   gl_UNISTD_H_REQUIRE_DEFAULTS
+  AC_PROG_MKDIR_P
   gl_LIBUNISTRING_LIBHEADER([0.9.11], [unistr.h])
+  AC_PROG_MKDIR_P
   gl_MODULE_INDICATOR([unistr/u8-mbtoucr])
   gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-mbtoucr])
   gl_MODULE_INDICATOR([unistr/u8-uctomb])
   gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-uctomb])
   gl_LIBUNISTRING_LIBHEADER([0.9.11], [unitypes.h])
+  AC_PROG_MKDIR_P
   AH_VERBATIM([unitypes_restrict], [
   /* This definition is a duplicate of the one in unitypes.h.
      It is here so that we can cope with an older version of unitypes.h
@@ -1146,7 +1215,8 @@ AC_DEFUN([gl_INIT],
   # endif
   ])
   gl_LIBUNISTRING_LIBHEADER([0.9.11], [uniwidth.h])
-  gl_LIBUNISTRING_MODULE([0.9.8], [uniwidth/width])
+  AC_PROG_MKDIR_P
+  gl_LIBUNISTRING_MODULE([1.1], [uniwidth/width])
   AC_DEFINE([GNULIB_STDIO_SINGLE_THREAD], [1],
     [Define to 1 if you want the FILE stream functions getc, putc, etc.
      to use unlocked I/O if available, throughout the package.
@@ -1159,77 +1229,57 @@ AC_DEFUN([gl_INIT],
     [An alias of GNULIB_STDIO_SINGLE_THREAD.])
   gl_FUNC_GLIBC_UNLOCKED_IO
   gl_FUNC_UNSETENV
-  if test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1; then
-    AC_LIBOBJ([unsetenv])
+  gl_CONDITIONAL([GL_COND_OBJ_UNSETENV],
+                 [test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1])
+  AM_COND_IF([GL_COND_OBJ_UNSETENV], [
     gl_PREREQ_UNSETENV
-  fi
+  ])
   gl_STDLIB_MODULE_INDICATOR([unsetenv])
-  AC_REQUIRE([AC_C_RESTRICT])
-  gl_FUNC_VASNPRINTF
-  gl_FUNC_VASPRINTF
-  gl_STDIO_MODULE_INDICATOR([vasprintf])
-  m4_ifdef([AM_XGETTEXT_OPTION],
-    [AM_][XGETTEXT_OPTION([--flag=asprintf:2:c-format])
-     AM_][XGETTEXT_OPTION([--flag=vasprintf:2:c-format])])
+  AC_C_VARARRAYS
   gl_VERSION_ETC
   gl_WCHAR_H
   gl_WCHAR_H_REQUIRE_DEFAULTS
+  AC_PROG_MKDIR_P
   gl_FUNC_WCRTOMB
-  if test $HAVE_WCRTOMB = 0 || test $REPLACE_WCRTOMB = 1; then
-    AC_LIBOBJ([wcrtomb])
+  gl_CONDITIONAL([GL_COND_OBJ_WCRTOMB],
+                 [test $HAVE_WCRTOMB = 0 || test $REPLACE_WCRTOMB = 1])
+  AM_COND_IF([GL_COND_OBJ_WCRTOMB], [
     gl_PREREQ_WCRTOMB
-  fi
+  ])
   gl_WCHAR_MODULE_INDICATOR([wcrtomb])
   gl_WCTYPE_H
   gl_WCTYPE_H_REQUIRE_DEFAULTS
+  AC_PROG_MKDIR_P
   gl_FUNC_WCWIDTH
-  if test $HAVE_WCWIDTH = 0 || test $REPLACE_WCWIDTH = 1; then
-    AC_LIBOBJ([wcwidth])
+  gl_CONDITIONAL([GL_COND_OBJ_WCWIDTH],
+                 [test $HAVE_WCWIDTH = 0 || test $REPLACE_WCWIDTH = 1])
+  AM_COND_IF([GL_COND_OBJ_WCWIDTH], [
     gl_PREREQ_WCWIDTH
-  fi
+  ])
   gl_WCHAR_MODULE_INDICATOR([wcwidth])
   AC_REQUIRE([AC_CANONICAL_HOST])
-  case "$host_os" in
-    mingw*)
-      AC_LIBOBJ([windows-mutex])
-      ;;
-  esac
+  gl_CONDITIONAL([GL_COND_OBJ_WINDOWS_MUTEX],
+                 [case "$host_os" in mingw*) true;; *) false;; esac])
   AC_REQUIRE([AC_CANONICAL_HOST])
-  case "$host_os" in
-    mingw*)
-      AC_LIBOBJ([windows-once])
-      ;;
-  esac
+  gl_CONDITIONAL([GL_COND_OBJ_WINDOWS_ONCE],
+                 [case "$host_os" in mingw*) true;; *) false;; esac])
   AC_REQUIRE([AC_CANONICAL_HOST])
-  case "$host_os" in
-    mingw*)
-      AC_LIBOBJ([windows-recmutex])
-      ;;
-  esac
+  gl_CONDITIONAL([GL_COND_OBJ_WINDOWS_RECMUTEX],
+                 [case "$host_os" in mingw*) true;; *) false;; esac])
   AC_REQUIRE([AC_CANONICAL_HOST])
-  case "$host_os" in
-    mingw*)
-      AC_LIBOBJ([windows-rwlock])
-      ;;
-  esac
+  gl_CONDITIONAL([GL_COND_OBJ_WINDOWS_RWLOCK],
+                 [case "$host_os" in mingw*) true;; *) false;; esac])
   gl_FUNC_WMEMCHR
-  if test $HAVE_WMEMCHR = 0; then
-    AC_LIBOBJ([wmemchr])
-  fi
+  gl_CONDITIONAL([GL_COND_OBJ_WMEMCHR], [test $HAVE_WMEMCHR = 0])
   gl_WCHAR_MODULE_INDICATOR([wmemchr])
   gl_FUNC_WMEMPCPY
-  if test $HAVE_WMEMPCPY = 0; then
-    AC_LIBOBJ([wmempcpy])
-  fi
+  gl_CONDITIONAL([GL_COND_OBJ_WMEMPCPY],
+                 [test $HAVE_WMEMPCPY = 0 || test $REPLACE_WMEMPCPY = 1])
   gl_WCHAR_MODULE_INDICATOR([wmempcpy])
   gl_XALLOC
   gl_MODULE_INDICATOR([xalloc])
   gl_MODULE_INDICATOR([xalloc-die])
-  gl_XSIZE
   gl_XSTRTOL
-  gl_XVASPRINTF
-  m4_ifdef([AM_XGETTEXT_OPTION],
-    [AM_][XGETTEXT_OPTION([--flag=xasprintf:1:c-format])])
   # End of code from modules
   m4_ifval(gl_LIBSOURCES_LIST, [
     m4_syscmd([test ! -d ]m4_defn([gl_LIBSOURCES_DIR])[ ||
@@ -1252,16 +1302,28 @@ AC_DEFUN([gl_INIT],
   AC_CONFIG_COMMANDS_PRE([
     gl_libobjs=
     gl_ltlibobjs=
+    gl_libobjdeps=
     if test -n "$gl_LIBOBJS"; then
       # Remove the extension.
+changequote(,)dnl
       sed_drop_objext='s/\.o$//;s/\.obj$//'
+      sed_dirname1='s,//*,/,g'
+      sed_dirname2='s,\(.\)/$,\1,'
+      sed_dirname3='s,^[^/]*$,.,'
+      sed_dirname4='s,\(.\)/[^/]*$,\1,'
+      sed_basename1='s,.*/,,'
+changequote([, ])dnl
       for i in `for i in $gl_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do
         gl_libobjs="$gl_libobjs $i.$ac_objext"
         gl_ltlibobjs="$gl_ltlibobjs $i.lo"
+        i_dir=`echo "$i" | sed -e "$sed_dirname1" -e "$sed_dirname2" -e "$sed_dirname3" -e "$sed_dirname4"`
+        i_base=`echo "$i" | sed -e "$sed_basename1"`
+        gl_libobjdeps="$gl_libobjdeps $i_dir/\$(DEPDIR)/$i_base.Po"
       done
     fi
     AC_SUBST([gl_LIBOBJS], [$gl_libobjs])
     AC_SUBST([gl_LTLIBOBJS], [$gl_ltlibobjs])
+    AC_SUBST([gl_LIBOBJDEPS], [$gl_libobjdeps])
   ])
   gltests_libdeps=
   gltests_ltlibdeps=
@@ -1276,6 +1338,7 @@ AC_DEFUN([gl_INIT],
   AC_REQUIRE([gl_CC_ALLOW_WARNINGS])
   AC_REQUIRE([gl_CXX_ALLOW_WARNINGS])
   gl_source_base='gnulib-tests'
+  gl_source_base_prefix=
 changequote(,)dnl
   gltests_WITNESS=IN_`echo "${PACKAGE-$PACKAGE_TARNAME}" | LC_ALL=C tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | LC_ALL=C sed -e 's/[^A-Z0-9_]/_/g'`_GNULIB_TESTS
 changequote([, ])dnl
@@ -1283,64 +1346,62 @@ changequote([, ])dnl
   gl_module_indicator_condition=$gltests_WITNESS
   m4_pushdef([gl_MODULE_INDICATOR_CONDITION], [$gl_module_indicator_condition])
   AC_REQUIRE([gl_SYS_SOCKET_H])
-  if test "$ac_cv_header_winsock2_h" = yes; then
-    AC_LIBOBJ([accept])
-  fi
+  gl_CONDITIONAL([GL_COND_OBJ_ACCEPT], [test "$ac_cv_header_winsock2_h" = yes])
   gl_SYS_SOCKET_MODULE_INDICATOR([accept])
   gl_ARPA_INET_H
   gl_ARPA_INET_H_REQUIRE_DEFAULTS
   AC_PROG_MKDIR_P
   gl_FUNC_ATOLL
-  if test $HAVE_ATOLL = 0; then
-    AC_LIBOBJ([atoll])
+  gl_CONDITIONAL([GL_COND_OBJ_ATOLL], [test $HAVE_ATOLL = 0])
+  AM_COND_IF([GL_COND_OBJ_ATOLL], [
     gl_PREREQ_ATOLL
-  fi
+  ])
   gl_STDLIB_MODULE_INDICATOR([atoll])
   AC_REQUIRE([gl_SYS_SOCKET_H])
-  if test "$ac_cv_header_winsock2_h" = yes; then
-    AC_LIBOBJ([bind])
-  fi
+  gl_CONDITIONAL([GL_COND_OBJ_BIND], [test "$ac_cv_header_winsock2_h" = yes])
   gl_SYS_SOCKET_MODULE_INDICATOR([bind])
   gt_LOCALE_FR
   gt_LOCALE_FR_UTF8
   gt_LOCALE_FR
   gt_LOCALE_TR_UTF8
   AC_REQUIRE([gl_SYS_SOCKET_H])
-  if test "$ac_cv_header_winsock2_h" = yes; then
-    AC_LIBOBJ([connect])
-  fi
+  gl_CONDITIONAL([GL_COND_OBJ_CONNECT], [test "$ac_cv_header_winsock2_h" = yes])
   gl_SYS_SOCKET_MODULE_INDICATOR([connect])
   gl_FUNC_FDOPEN
-  if test $REPLACE_FDOPEN = 1; then
-    AC_LIBOBJ([fdopen])
+  gl_CONDITIONAL([GL_COND_OBJ_FDOPEN], [test $REPLACE_FDOPEN = 1])
+  AM_COND_IF([GL_COND_OBJ_FDOPEN], [
     gl_PREREQ_FDOPEN
-  fi
+  ])
   gl_STDIO_MODULE_INDICATOR([fdopen])
+  gl_FLOAT_H
+  gl_CONDITIONAL_HEADER([float.h])
+  AC_PROG_MKDIR_P
+  gl_CONDITIONAL([GL_COND_OBJ_FLOAT], [test $REPLACE_FLOAT_LDBL = 1])
+  gl_CONDITIONAL([GL_COND_OBJ_ITOLD], [test $REPLACE_ITOLD = 1])
   gl_FUNC_FTRUNCATE
-  if test $HAVE_FTRUNCATE = 0 || test $REPLACE_FTRUNCATE = 1; then
-    AC_LIBOBJ([ftruncate])
+  gl_CONDITIONAL([GL_COND_OBJ_FTRUNCATE],
+                 [test $HAVE_FTRUNCATE = 0 || test $REPLACE_FTRUNCATE = 1])
+  AM_COND_IF([GL_COND_OBJ_FTRUNCATE], [
     gl_PREREQ_FTRUNCATE
-  fi
+  ])
   gl_UNISTD_MODULE_INDICATOR([ftruncate])
   gl_FUNC_GETCWD_LGPL
-  if test $REPLACE_GETCWD = 1; then
-    AC_LIBOBJ([getcwd-lgpl])
-  fi
+  gl_CONDITIONAL([GL_COND_OBJ_GETCWD_LGPL], [test $REPLACE_GETCWD = 1])
   gl_UNISTD_MODULE_INDICATOR([getcwd])
   gl_MUSL_LIBC
   dnl Distinguish OpenBSD >= 6.2 from OpenBSD < 6.2.
-  AC_CHECK_FUNCS_ONCE([duplocale])
+  gl_CHECK_FUNCS_ANDROID([duplocale], [[#include <locale.h>]])
   gl_FUNC_INET_PTON
-  if test $HAVE_INET_PTON = 0 || test $REPLACE_INET_PTON = 1; then
-    AC_LIBOBJ([inet_pton])
+  gl_CONDITIONAL([GL_COND_OBJ_INET_PTON],
+                 [test $HAVE_INET_PTON = 0 || test $REPLACE_INET_PTON = 1])
+  AM_COND_IF([GL_COND_OBJ_INET_PTON], [
     gl_PREREQ_INET_PTON
-  fi
+  ])
   gl_ARPA_INET_MODULE_INDICATOR([inet_pton])
   AC_C_BIGENDIAN
   gl_FUNC_IOCTL
-  if test $HAVE_IOCTL = 0 || test $REPLACE_IOCTL = 1; then
-    AC_LIBOBJ([ioctl])
-  fi
+  gl_CONDITIONAL([GL_COND_OBJ_IOCTL],
+                 [test $HAVE_IOCTL = 0 || test $REPLACE_IOCTL = 1])
   gl_SYS_IOCTL_MODULE_INDICATOR([ioctl])
   gt_LOCALE_FR
   gt_LOCALE_FR_UTF8
@@ -1351,11 +1412,9 @@ changequote([, ])dnl
   gt_LOCALE_JA
   gt_LOCALE_ZH_CN
   AC_REQUIRE([gl_SYS_SOCKET_H])
-  if test "$ac_cv_header_winsock2_h" = yes; then
-    AC_LIBOBJ([listen])
-  fi
+  gl_CONDITIONAL([GL_COND_OBJ_LISTEN], [test "$ac_cv_header_winsock2_h" = yes])
   gl_SYS_SOCKET_MODULE_INDICATOR([listen])
-  AC_CHECK_FUNCS_ONCE([newlocale])
+  gl_CHECK_FUNCS_ANDROID([newlocale], [[#include <locale.h>]])
   gt_LOCALE_FR
   gt_LOCALE_FR_UTF8
   gt_LOCALE_JA
@@ -1373,44 +1432,46 @@ changequote([, ])dnl
   AC_CHECK_HEADERS_ONCE([sys/mman.h])
   AC_CHECK_FUNCS_ONCE([mprotect])
   gl_FUNC_NANOSLEEP
-  if test $HAVE_NANOSLEEP = 0 || test $REPLACE_NANOSLEEP = 1; then
-    AC_LIBOBJ([nanosleep])
-    gl_PREREQ_NANOSLEEP
-  fi
+  gl_CONDITIONAL([GL_COND_OBJ_NANOSLEEP],
+                 [test $HAVE_NANOSLEEP = 0 || test $REPLACE_NANOSLEEP = 1])
   gl_TIME_MODULE_INDICATOR([nanosleep])
   AC_CHECK_DECLS_ONCE([alarm])
   gl_HEADER_NETINET_IN
+  gl_CONDITIONAL_HEADER([netinet/in.h])
   AC_PROG_MKDIR_P
   gt_LOCALE_FR
   gt_LOCALE_FR_UTF8
+  gt_FUNC_USELOCALE
   gl_FUNC_PERROR
-  if test $REPLACE_PERROR = 1; then
-    AC_LIBOBJ([perror])
-  fi
+  gl_CONDITIONAL([GL_COND_OBJ_PERROR], [test $REPLACE_PERROR = 1])
   gl_STRING_MODULE_INDICATOR([perror])
   gl_FUNC_PIPE
-  if test $HAVE_PIPE = 0; then
-    AC_LIBOBJ([pipe])
-  fi
+  gl_CONDITIONAL([GL_COND_OBJ_PIPE], [test $HAVE_PIPE = 0])
   gl_UNISTD_MODULE_INDICATOR([pipe])
+  gl_FUNC_PSELECT
+  gl_CONDITIONAL([GL_COND_OBJ_PSELECT],
+                 [test $HAVE_PSELECT = 0 || test $REPLACE_PSELECT = 1])
+  gl_SYS_SELECT_MODULE_INDICATOR([pselect])
+  AC_CHECK_HEADERS_ONCE([sys/wait.h])
   gl_PTHREAD_H
   gl_PTHREAD_H_REQUIRE_DEFAULTS
+  AC_PROG_MKDIR_P
   gl_PTHREAD_THREAD
-  if test $HAVE_PTHREAD_CREATE = 0 || test $REPLACE_PTHREAD_CREATE = 1; then
-    AC_LIBOBJ([pthread-thread])
-  fi
+  gl_CONDITIONAL([GL_COND_OBJ_PTHREAD_THREAD],
+                 [test $HAVE_PTHREAD_CREATE = 0 || test $REPLACE_PTHREAD_CREATE = 1])
   gl_PTHREAD_MODULE_INDICATOR([pthread-thread])
   gl_FUNC_PTHREAD_SIGMASK
-  if test $HAVE_PTHREAD_SIGMASK = 0 || test $REPLACE_PTHREAD_SIGMASK = 1; then
-    AC_LIBOBJ([pthread_sigmask])
+  gl_CONDITIONAL([GL_COND_OBJ_PTHREAD_SIGMASK],
+                 [test $HAVE_PTHREAD_SIGMASK = 0 || test $REPLACE_PTHREAD_SIGMASK = 1])
+  AM_COND_IF([GL_COND_OBJ_PTHREAD_SIGMASK], [
     gl_PREREQ_PTHREAD_SIGMASK
-  fi
+  ])
   gl_SIGNAL_MODULE_INDICATOR([pthread_sigmask])
   gl_FUNC_PUTENV
-  if test $REPLACE_PUTENV = 1; then
-    AC_LIBOBJ([putenv])
+  gl_CONDITIONAL([GL_COND_OBJ_PUTENV], [test $REPLACE_PUTENV = 1])
+  AM_COND_IF([GL_COND_OBJ_PUTENV], [
     gl_PREREQ_PUTENV
-  fi
+  ])
   gl_STDLIB_MODULE_INDICATOR([putenv])
   dnl Check for prerequisites for memory fence checks.
   dnl FIXME: zerosize-ptr.h requires these: make a module for it
@@ -1423,44 +1484,28 @@ changequote([, ])dnl
   AC_CHECK_FUNCS_ONCE([mprotect])
   gl_SCHED_H
   gl_SCHED_H_REQUIRE_DEFAULTS
+  AC_PROG_MKDIR_P
   gl_FUNC_SELECT
-  if test $REPLACE_SELECT = 1; then
-    AC_LIBOBJ([select])
-  fi
+  gl_CONDITIONAL([GL_COND_OBJ_SELECT], [test $REPLACE_SELECT = 1])
   gl_SYS_SELECT_MODULE_INDICATOR([select])
   AC_CHECK_HEADERS_ONCE([sys/wait.h])
   AC_REQUIRE([gl_SYS_SOCKET_H])
-  if test "$ac_cv_header_winsock2_h" = yes; then
-    AC_LIBOBJ([setsockopt])
-  fi
+  gl_CONDITIONAL([GL_COND_OBJ_SETSOCKOPT],
+                 [test "$ac_cv_header_winsock2_h" = yes])
   gl_SYS_SOCKET_MODULE_INDICATOR([setsockopt])
-  gl_SIGACTION
-  if test $HAVE_SIGACTION = 0; then
-    AC_LIBOBJ([sigaction])
-    gl_PREREQ_SIGACTION
-  fi
-  gl_SIGNAL_MODULE_INDICATOR([sigaction])
-  gl_SIGNALBLOCKING
-  if test $HAVE_POSIX_SIGNALBLOCKING = 0; then
-    AC_LIBOBJ([sigprocmask])
-    gl_PREREQ_SIGPROCMASK
-  fi
-  gl_SIGNAL_MODULE_INDICATOR([sigprocmask])
   AC_CHECK_FUNCS_ONCE([setrlimit])
   gl_FUNC_MMAP_ANON
+  gl_SIZE_MAX
   gl_FUNC_SLEEP
-  if test $HAVE_SLEEP = 0 || test $REPLACE_SLEEP = 1; then
-    AC_LIBOBJ([sleep])
-  fi
+  gl_CONDITIONAL([GL_COND_OBJ_SLEEP],
+                 [test $HAVE_SLEEP = 0 || test $REPLACE_SLEEP = 1])
   gl_UNISTD_MODULE_INDICATOR([sleep])
   AC_CHECK_DECLS_ONCE([alarm])
   gl_FUNC_SNPRINTF
   gl_STDIO_MODULE_INDICATOR([snprintf])
   gl_MODULE_INDICATOR([snprintf])
   AC_REQUIRE([gl_SYS_SOCKET_H])
-  if test "$ac_cv_header_winsock2_h" = yes; then
-    AC_LIBOBJ([socket])
-  fi
+  gl_CONDITIONAL([GL_COND_OBJ_SOCKET], [test "$ac_cv_header_winsock2_h" = yes])
   # When this module is used, sockets may actually occur as file descriptors,
   # hence it is worth warning if the modules 'close' and 'ioctl' are not used.
   m4_ifdef([gl_UNISTD_H_DEFAULTS], [gl_UNISTD_H_REQUIRE_DEFAULTS])
@@ -1476,11 +1521,12 @@ changequote([, ])dnl
   gl_TYPE_SOCKLEN_T
   AC_REQUIRE([gt_TYPE_WCHAR_T])
   AC_REQUIRE([gt_TYPE_WINT_T])
+  gl_DOUBLE_EXPONENT_LOCATION
   gl_FUNC_STRERROR_R
-  if test $HAVE_DECL_STRERROR_R = 0 || test $REPLACE_STRERROR_R = 1; then
+  AS_IF([test $HAVE_DECL_STRERROR_R = 0 || test $REPLACE_STRERROR_R = 1], [
     AC_LIBOBJ([strerror_r])
     gl_PREREQ_STRERROR_R
-  fi
+  ])
   gl_STRING_MODULE_INDICATOR([strerror_r])
   dnl For the modules argp, error.
   gl_MODULE_INDICATOR([strerror_r-posix])
@@ -1489,9 +1535,8 @@ changequote([, ])dnl
   AC_CHECK_HEADERS_ONCE([sys/mman.h])
   AC_CHECK_FUNCS_ONCE([mprotect])
   gl_FUNC_SYMLINK
-  if test $HAVE_SYMLINK = 0 || test $REPLACE_SYMLINK = 1; then
-    AC_LIBOBJ([symlink])
-  fi
+  gl_CONDITIONAL([GL_COND_OBJ_SYMLINK],
+                 [test $HAVE_SYMLINK = 0 || test $REPLACE_SYMLINK = 1])
   gl_UNISTD_MODULE_INDICATOR([symlink])
   gl_SYS_IOCTL_H
   gl_SYS_IOCTL_H_REQUIRE_DEFAULTS
@@ -1507,8 +1552,16 @@ changequote([, ])dnl
   gl_SYS_UIO_H_REQUIRE_DEFAULTS
   AC_PROG_MKDIR_P
   gl_THREAD
+  gl_FUNC_TIME
+  gl_CONDITIONAL([GL_COND_OBJ_TIME], [test $REPLACE_TIME = 1])
+  AM_COND_IF([GL_COND_OBJ_TIME], [
+    gl_PREREQ_TIME
+  ])
+  gl_TIME_MODULE_INDICATOR([time])
   abs_aux_dir=`cd "$ac_aux_dir"; pwd`
   AC_SUBST([abs_aux_dir])
+  AC_REQUIRE([AC_C_RESTRICT])
+  gl_FUNC_VASNPRINTF
   abs_aux_dir=`cd "$ac_aux_dir"; pwd`
   AC_SUBST([abs_aux_dir])
   gt_LOCALE_FR
@@ -1516,29 +1569,25 @@ changequote([, ])dnl
   gt_LOCALE_JA
   gt_LOCALE_ZH_CN
   gl_FUNC_WCTOB
-  if test $HAVE_WCTOB = 0 || test $REPLACE_WCTOB = 1; then
-    AC_LIBOBJ([wctob])
+  gl_CONDITIONAL([GL_COND_OBJ_WCTOB],
+                 [test $HAVE_WCTOB = 0 || test $REPLACE_WCTOB = 1])
+  AM_COND_IF([GL_COND_OBJ_WCTOB], [
     gl_PREREQ_WCTOB
-  fi
+  ])
   gl_WCHAR_MODULE_INDICATOR([wctob])
   gl_FUNC_WCTOMB
-  if test $REPLACE_WCTOMB = 1; then
-    AC_LIBOBJ([wctomb])
+  gl_CONDITIONAL([GL_COND_OBJ_WCTOMB], [test $REPLACE_WCTOMB = 1])
+  AM_COND_IF([GL_COND_OBJ_WCTOMB], [
     gl_PREREQ_WCTOMB
-  fi
+  ])
   gl_STDLIB_MODULE_INDICATOR([wctomb])
   AC_REQUIRE([AC_CANONICAL_HOST])
-  case "$host_os" in
-    mingw*)
-      AC_LIBOBJ([windows-thread])
-      ;;
-  esac
+  gl_CONDITIONAL([GL_COND_OBJ_WINDOWS_THREAD],
+                 [case "$host_os" in mingw*) true;; *) false;; esac])
   AC_REQUIRE([AC_CANONICAL_HOST])
-  case "$host_os" in
-    mingw*)
-      AC_LIBOBJ([windows-tls])
-      ;;
-  esac
+  gl_CONDITIONAL([GL_COND_OBJ_WINDOWS_TLS],
+                 [case "$host_os" in mingw*) true;; *) false;; esac])
+  gl_XSIZE
   m4_popdef([gl_MODULE_INDICATOR_CONDITION])
   m4_ifval(gltests_LIBSOURCES_LIST, [
     m4_syscmd([test ! -d ]m4_defn([gltests_LIBSOURCES_DIR])[ ||
@@ -1561,17 +1610,30 @@ changequote([, ])dnl
   AC_CONFIG_COMMANDS_PRE([
     gltests_libobjs=
     gltests_ltlibobjs=
+    gltests_libobjdeps=
     if test -n "$gltests_LIBOBJS"; then
       # Remove the extension.
+changequote(,)dnl
       sed_drop_objext='s/\.o$//;s/\.obj$//'
+      sed_dirname1='s,//*,/,g'
+      sed_dirname2='s,\(.\)/$,\1,'
+      sed_dirname3='s,^[^/]*$,.,'
+      sed_dirname4='s,\(.\)/[^/]*$,\1,'
+      sed_basename1='s,.*/,,'
+changequote([, ])dnl
       for i in `for i in $gltests_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do
         gltests_libobjs="$gltests_libobjs $i.$ac_objext"
         gltests_ltlibobjs="$gltests_ltlibobjs $i.lo"
+        i_dir=`echo "$i" | sed -e "$sed_dirname1" -e "$sed_dirname2" -e "$sed_dirname3" -e "$sed_dirname4"`
+        i_base=`echo "$i" | sed -e "$sed_basename1"`
+        gltests_libobjdeps="$gltests_libobjdeps $i_dir/\$(DEPDIR)/$i_base.Po"
       done
     fi
     AC_SUBST([gltests_LIBOBJS], [$gltests_libobjs])
     AC_SUBST([gltests_LTLIBOBJS], [$gltests_ltlibobjs])
+    AC_SUBST([gltests_LIBOBJDEPS], [$gltests_libobjdeps])
   ])
+  AC_REQUIRE([gl_CC_GNULIB_WARNINGS])
   LIBDIFFUTILS_LIBDEPS="$gl_libdeps"
   AC_SUBST([LIBDIFFUTILS_LIBDEPS])
   LIBDIFFUTILS_LTLIBDEPS="$gl_ltlibdeps"
@@ -1648,7 +1710,6 @@ AC_DEFUN([gl_FILE_LIST], [
   build-aux/update-copyright
   build-aux/useless-if-before-free
   build-aux/vc-list-files
-  doc/fdl.texi
   doc/gendocs_template
   doc/gendocs_template_min
   lib/_Noreturn.h
@@ -1661,8 +1722,7 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/arg-nonnull.h
   lib/argmatch.c
   lib/argmatch.h
-  lib/asnprintf.c
-  lib/asprintf.c
+  lib/assert.in.h
   lib/assure.h
   lib/attribute.h
   lib/basename-lgpl.c
@@ -1698,7 +1758,7 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/dynarray.h
   lib/errno.in.h
   lib/error.c
-  lib/error.h
+  lib/error.in.h
   lib/exclude.c
   lib/exclude.h
   lib/exitfail.c
@@ -1714,9 +1774,6 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/filenamecat.c
   lib/filenamecat.h
   lib/flexmember.h
-  lib/float+.h
-  lib/float.c
-  lib/float.in.h
   lib/fnmatch.c
   lib/fnmatch.in.h
   lib/fnmatch_loop.c
@@ -1763,6 +1820,7 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/idx.h
   lib/ignore-value.h
   lib/imaxtostr.c
+  lib/intprops-internal.h
   lib/intprops.h
   lib/inttostr.c
   lib/inttostr.h
@@ -1771,7 +1829,6 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/iswblank.c
   lib/iswdigit.c
   lib/iswxdigit.c
-  lib/itold.c
   lib/langinfo.in.h
   lib/lc-charset-dispatch.c
   lib/lc-charset-dispatch.h
@@ -1830,10 +1887,6 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/offtostr.c
   lib/open.c
   lib/pathmax.h
-  lib/printf-args.c
-  lib/printf-args.h
-  lib/printf-parse.c
-  lib/printf-parse.h
   lib/progname.c
   lib/progname.h
   lib/propername.c
@@ -1860,9 +1913,9 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/sh-quote.c
   lib/sh-quote.h
   lib/signal.in.h
+  lib/sigprocmask.c
   lib/sigsegv.c
   lib/sigsegv.in.h
-  lib/size_max.h
   lib/stackvma.c
   lib/stackvma.h
   lib/stat-macros.h
@@ -1871,15 +1924,17 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/stat-w32.c
   lib/stat-w32.h
   lib/stat.c
-  lib/stdalign.in.h
   lib/stdarg.in.h
-  lib/stdbool.in.h
+  lib/stdckdint.in.h
   lib/stddef.in.h
   lib/stdint.in.h
+  lib/stdio-read.c
+  lib/stdio-write.c
   lib/stdio.in.h
   lib/stdlib.in.h
   lib/stdopen.c
   lib/stdopen.h
+  lib/stpcpy.c
   lib/str-kmp.h
   lib/strcasecmp.c
   lib/streq.h
@@ -1921,6 +1976,7 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/tzset.c
   lib/uinttostr.c
   lib/umaxtostr.c
+  lib/unictype/bitmap.h
   lib/unistd.c
   lib/unistd.in.h
   lib/unistr.in.h
@@ -1931,11 +1987,10 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/uniwidth.in.h
   lib/uniwidth/cjk.h
   lib/uniwidth/width.c
+  lib/uniwidth/width0.h
+  lib/uniwidth/width2.h
   lib/unlocked-io.h
   lib/unsetenv.c
-  lib/vasnprintf.c
-  lib/vasnprintf.h
-  lib/vasprintf.c
   lib/verify.h
   lib/version-etc-fsf.c
   lib/version-etc.c
@@ -1961,7 +2016,6 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/xalloc-die.c
   lib/xalloc-oversized.h
   lib/xalloc.h
-  lib/xasprintf.c
   lib/xfreopen.c
   lib/xfreopen.h
   lib/xmalloc.c
@@ -1969,8 +2023,6 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/xmalloca.h
   lib/xreadlink.c
   lib/xreadlink.h
-  lib/xsize.c
-  lib/xsize.h
   lib/xstdopen.c
   lib/xstdopen.h
   lib/xstriconv.c
@@ -1979,17 +2031,17 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/xstrtol.c
   lib/xstrtol.h
   lib/xstrtoul.c
-  lib/xvasprintf.c
-  lib/xvasprintf.h
   m4/00gnulib.m4
   m4/__inline.m4
   m4/absolute-header.m4
   m4/alloca.m4
   m4/arpa_inet_h.m4
   m4/asm-underscore.m4
+  m4/assert_h.m4
   m4/atoll.m4
   m4/btowc.m4
   m4/builtin-expect.m4
+  m4/c-bool.m4
   m4/c-stack.m4
   m4/calloc.m4
   m4/clock_time.m4
@@ -2003,13 +2055,16 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/environ.m4
   m4/errno_h.m4
   m4/error.m4
+  m4/error_h.m4
   m4/exponentd.m4
   m4/extensions.m4
   m4/extern-inline.m4
+  m4/fclose.m4
   m4/fcntl-o.m4
   m4/fcntl.m4
   m4/fcntl_h.m4
   m4/fdopen.m4
+  m4/fflush.m4
   m4/filenamecat.m4
   m4/flexmember.m4
   m4/float_h.m4
@@ -2038,6 +2093,7 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/include_next.m4
   m4/inet_pton.m4
   m4/inline.m4
+  m4/intl-thread-locale.m4
   m4/intmax_t.m4
   m4/inttostr.m4
   m4/inttypes.m4
@@ -2094,15 +2150,18 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/nl_langinfo.m4
   m4/nocrash.m4
   m4/nstrftime.m4
+  m4/nullptr.m4
   m4/off_t.m4
   m4/open-cloexec.m4
   m4/open-slash.m4
   m4/open.m4
   m4/pathmax.m4
+  m4/perl.m4
   m4/perror.m4
   m4/pid_t.m4
   m4/pipe.m4
   m4/printf.m4
+  m4/pselect.m4
   m4/pthread-thread.m4
   m4/pthread_h.m4
   m4/pthread_rwlock_rdlock.m4
@@ -2120,10 +2179,10 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/select.m4
   m4/setenv.m4
   m4/setlocale_null.m4
-  m4/sigaction.m4
   m4/sigaltstack.m4
   m4/signal_h.m4
   m4/signalblocking.m4
+  m4/sigsegv.m4
   m4/size_max.m4
   m4/sleep.m4
   m4/snprintf.m4
@@ -2138,12 +2197,12 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/std-gnu11.m4
   m4/stdalign.m4
   m4/stdarg.m4
-  m4/stdbool.m4
   m4/stddef_h.m4
   m4/stdint.m4
   m4/stdint_h.m4
   m4/stdio_h.m4
   m4/stdlib_h.m4
+  m4/stpcpy.m4
   m4/strcase.m4
   m4/strerror.m4
   m4/strerror_r.m4
@@ -2166,6 +2225,7 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/tempname.m4
   m4/thread.m4
   m4/threadlib.m4
+  m4/time.m4
   m4/time_h.m4
   m4/time_r.m4
   m4/time_rz.m4
@@ -2175,8 +2235,8 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/tzset.m4
   m4/unistd_h.m4
   m4/unlocked-io.m4
+  m4/vararrays.m4
   m4/vasnprintf.m4
-  m4/vasprintf.m4
   m4/version-etc.m4
   m4/visibility.m4
   m4/warn-on-use.m4
@@ -2194,22 +2254,23 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/xalloc.m4
   m4/xsize.m4
   m4/xstrtol.m4
-  m4/xvasprintf.m4
-  m4/year2038.m4
   m4/zzgnulib.m4
   tests/altstack-util.h
   tests/init.sh
   tests/locale.c
   tests/macros.h
   tests/mmap-anon-util.h
+  tests/nan.h
   tests/nap.h
   tests/signature.h
   tests/test-accept.c
+  tests/test-alignasof.c
   tests/test-alloca-opt.c
   tests/test-areadlink.c
   tests/test-areadlink.h
   tests/test-argmatch.c
   tests/test-arpa_inet.c
+  tests/test-assert.c
   tests/test-binary-io.c
   tests/test-binary-io.sh
   tests/test-bind.c
@@ -2217,12 +2278,14 @@ AC_DEFUN([gl_FILE_LIST], [
   tests/test-btowc.c
   tests/test-btowc1.sh
   tests/test-btowc2.sh
+  tests/test-btowc3.sh
   tests/test-c-ctype.c
   tests/test-c-stack.c
   tests/test-c-stack.sh
   tests/test-c-stack2.sh
   tests/test-c-strcase.sh
   tests/test-c-strcasecmp.c
+  tests/test-c-strcasestr.c
   tests/test-c-strncasecmp.c
   tests/test-calloc-gnu.c
   tests/test-cloexec.c
@@ -2234,6 +2297,8 @@ AC_DEFUN([gl_FILE_LIST], [
   tests/test-dynarray.c
   tests/test-environ.c
   tests/test-errno.c
+  tests/test-error.c
+  tests/test-error.sh
   tests/test-exclude.c
   tests/test-exclude1.sh
   tests/test-exclude2.sh
@@ -2290,6 +2355,7 @@ AC_DEFUN([gl_FILE_LIST], [
   tests/test-iswxdigit.c
   tests/test-iswxdigit.sh
   tests/test-langinfo.c
+  tests/test-largefile.c
   tests/test-limits-h.c
   tests/test-listen.c
   tests/test-localcharset.c
@@ -2322,6 +2388,7 @@ AC_DEFUN([gl_FILE_LIST], [
   tests/test-mbsrtowcs2.sh
   tests/test-mbsrtowcs3.sh
   tests/test-mbsrtowcs4.sh
+  tests/test-mbsrtowcs5.sh
   tests/test-mbsstr1.c
   tests/test-mbsstr2.c
   tests/test-mbsstr2.sh
@@ -2333,9 +2400,12 @@ AC_DEFUN([gl_FILE_LIST], [
   tests/test-nanosleep.c
   tests/test-netinet_in.c
   tests/test-nl_langinfo-mt.c
-  tests/test-nl_langinfo.c
-  tests/test-nl_langinfo.sh
+  tests/test-nl_langinfo1.c
+  tests/test-nl_langinfo1.sh
+  tests/test-nl_langinfo2.c
+  tests/test-nl_langinfo2.sh
   tests/test-nstrftime.c
+  tests/test-nullptr.c
   tests/test-open.c
   tests/test-open.h
   tests/test-pathmax.c
@@ -2343,6 +2413,7 @@ AC_DEFUN([gl_FILE_LIST], [
   tests/test-perror.sh
   tests/test-perror2.c
   tests/test-pipe.c
+  tests/test-pselect.c
   tests/test-pthread-thread.c
   tests/test-pthread.c
   tests/test-pthread_sigmask1.c
@@ -2369,7 +2440,6 @@ AC_DEFUN([gl_FILE_LIST], [
   tests/test-setlocale_null.c
   tests/test-setsockopt.c
   tests/test-sh-quote.c
-  tests/test-sigaction.c
   tests/test-signal-h.c
   tests/test-sigprocmask.c
   tests/test-sigsegv-catch-segv1.c
@@ -2382,8 +2452,8 @@ AC_DEFUN([gl_FILE_LIST], [
   tests/test-stat-time.c
   tests/test-stat.c
   tests/test-stat.h
-  tests/test-stdalign.c
   tests/test-stdbool.c
+  tests/test-stdckdint.c
   tests/test-stddef.c
   tests/test-stdint.c
   tests/test-stdio.c
@@ -2410,13 +2480,17 @@ AC_DEFUN([gl_FILE_LIST], [
   tests/test-sys_wait.h
   tests/test-thread_create.c
   tests/test-thread_self.c
+  tests/test-time-h.c
   tests/test-time.c
   tests/test-timespec.c
+  tests/test-trim.c
+  tests/test-trim1.sh
+  tests/test-trim2.sh
+  tests/test-trim3.sh
   tests/test-unistd.c
   tests/test-unsetenv.c
   tests/test-update-copyright.sh
   tests/test-vasnprintf.c
-  tests/test-vasprintf.c
   tests/test-vc-list-files-cvs.sh
   tests/test-vc-list-files-git.sh
   tests/test-verify-try.c
@@ -2446,7 +2520,7 @@ AC_DEFUN([gl_FILE_LIST], [
   tests/test-xstrtol.c
   tests/test-xstrtol.sh
   tests/test-xstrtoul.c
-  tests/test-xvasprintf.c
+  tests/test-year2038.c
   tests/unistr/test-u8-mbtoucr.c
   tests/unistr/test-u8-uctomb.c
   tests/uniwidth/test-uc_width.c
@@ -2458,12 +2532,18 @@ AC_DEFUN([gl_FILE_LIST], [
   tests=lib/alloca.c
   tests=lib/arg-nonnull.h
   tests=lib/arpa_inet.in.h
+  tests=lib/asnprintf.c
   tests=lib/atoll.c
   tests=lib/bind.c
   tests=lib/c++defs.h
+  tests=lib/c-strcasestr.c
+  tests=lib/c-strcasestr.h
   tests=lib/connect.c
   tests=lib/dtotimespec.c
   tests=lib/fdopen.c
+  tests=lib/float+.h
+  tests=lib/float.c
+  tests=lib/float.in.h
   tests=lib/fpucw.h
   tests=lib/ftruncate.c
   tests=lib/getcwd-lgpl.c
@@ -2473,11 +2553,17 @@ AC_DEFUN([gl_FILE_LIST], [
   tests=lib/hash-pjw.h
   tests=lib/inet_pton.c
   tests=lib/ioctl.c
+  tests=lib/itold.c
   tests=lib/listen.c
   tests=lib/nanosleep.c
   tests=lib/netinet_in.in.h
   tests=lib/perror.c
   tests=lib/pipe.c
+  tests=lib/printf-args.c
+  tests=lib/printf-args.h
+  tests=lib/printf-parse.c
+  tests=lib/printf-parse.h
+  tests=lib/pselect.c
   tests=lib/pthread-thread.c
   tests=lib/pthread.in.h
   tests=lib/pthread_sigmask.c
@@ -2486,15 +2572,13 @@ AC_DEFUN([gl_FILE_LIST], [
   tests=lib/sched.in.h
   tests=lib/select.c
   tests=lib/setsockopt.c
-  tests=lib/sig-handler.c
-  tests=lib/sig-handler.h
-  tests=lib/sigaction.c
-  tests=lib/sigprocmask.c
+  tests=lib/size_max.h
   tests=lib/sleep.c
   tests=lib/snprintf.c
   tests=lib/socket.c
   tests=lib/sockets.c
   tests=lib/sockets.h
+  tests=lib/str-two-way.h
   tests=lib/strerror_r.c
   tests=lib/symlink.c
   tests=lib/sys_ioctl.in.h
@@ -2502,8 +2586,11 @@ AC_DEFUN([gl_FILE_LIST], [
   tests=lib/sys_socket.c
   tests=lib/sys_socket.in.h
   tests=lib/sys_uio.in.h
+  tests=lib/time.c
   tests=lib/timespec-add.c
   tests=lib/timespec-sub.c
+  tests=lib/vasnprintf.c
+  tests=lib/vasnprintf.h
   tests=lib/w32sock.h
   tests=lib/warn-on-use.h
   tests=lib/wctob.c
@@ -2513,6 +2600,8 @@ AC_DEFUN([gl_FILE_LIST], [
   tests=lib/windows-thread.h
   tests=lib/windows-tls.c
   tests=lib/windows-tls.h
+  tests=lib/xsize.c
+  tests=lib/xsize.h
   tests=lib/xstrtol-error.c
   tests=lib/xstrtol-error.h
   top/GNUmakefile
index 64e28b1..134f228 100644 (file)
@@ -1,5 +1,5 @@
-# host-cpu-c-abi.m4 serial 14
-dnl Copyright (C) 2002-2021 Free Software Foundation, Inc.
+# host-cpu-c-abi.m4 serial 15
+dnl Copyright (C) 2002-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -382,6 +382,9 @@ EOF
 #ifndef __ia64__
 #undef __ia64__
 #endif
+#ifndef __loongarch64__
+#undef __loongarch64__
+#endif
 #ifndef __m68k__
 #undef __m68k__
 #endif
index d0e61de..ff5d526 100644 (file)
@@ -1,5 +1,5 @@
-# iconv.m4 serial 24
-dnl Copyright (C) 2000-2002, 2007-2014, 2016-2021 Free Software Foundation,
+# iconv.m4 serial 26
+dnl Copyright (C) 2000-2002, 2007-2014, 2016-2023 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,
@@ -234,12 +234,6 @@ AC_DEFUN([AM_ICONV_LINK],
 
 dnl Define AM_ICONV using AC_DEFUN_ONCE, in order to avoid warnings like
 dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required".
-dnl This is tricky because of the way 'aclocal' is implemented:
-dnl - It requires defining an auxiliary macro whose name ends in AC_DEFUN.
-dnl   Otherwise aclocal's initial scan pass would miss the macro definition.
-dnl - It requires a line break inside the AC_DEFUN_ONCE and AC_DEFUN expansions.
-dnl   Otherwise aclocal would emit many "Use of uninitialized value $1"
-dnl   warnings.
 AC_DEFUN_ONCE([AM_ICONV],
 [
   AM_ICONV_LINK
@@ -280,4 +274,20 @@ size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, si
        ICONV_CONST="const"
      fi
     ])
+
+  dnl A summary result, for those packages which want to print a summary at the
+  dnl end of the configuration.
+  if test "$am_func_iconv" = yes; then
+    if test -n "$LIBICONV"; then
+      am_cv_func_iconv_summary='yes, in libiconv'
+    else
+      am_cv_func_iconv_summary='yes, in libc'
+    fi
+  else
+    if test "$am_cv_func_iconv" = yes; then
+      am_cv_func_iconv_summary='not working, consider installing GNU libiconv'
+    else
+      am_cv_func_iconv_summary='no, consider installing GNU libiconv'
+    fi
+  fi
 ])
index 2940988..40c985e 100644 (file)
@@ -1,5 +1,5 @@
-# iconv_h.m4 serial 15
-dnl Copyright (C) 2007-2021 Free Software Foundation, Inc.
+# iconv_h.m4 serial 16
+dnl Copyright (C) 2007-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -8,8 +8,8 @@ AC_DEFUN_ONCE([gl_ICONV_H],
 [
   AC_REQUIRE([gl_ICONV_H_DEFAULTS])
 
-  dnl Execute this unconditionally, because ICONV_H may be set by other
-  dnl modules, after this code is executed.
+  dnl Execute this unconditionally, because GL_GENERATE_ICONV_H may be set to
+  dnl true by other modules, after this code is executed.
   gl_CHECK_NEXT_HEADERS([iconv.h])
 
   dnl Check for declarations of anything we want to poison if the
@@ -25,8 +25,7 @@ dnl Unconditionally enables the replacement of <iconv.h>.
 AC_DEFUN([gl_REPLACE_ICONV_H],
 [
   gl_ICONV_H_REQUIRE_DEFAULTS
-  ICONV_H='iconv.h'
-  AM_CONDITIONAL([GL_GENERATE_ICONV_H], [test -n "$ICONV_H"])
+  GL_GENERATE_ICONV_H=true
 ])
 
 # gl_ICONV_MODULE_INDICATOR([modulename])
@@ -60,13 +59,12 @@ AC_DEFUN([gl_ICONV_H_DEFAULTS],
   REPLACE_ICONV=0;      AC_SUBST([REPLACE_ICONV])
   REPLACE_ICONV_OPEN=0; AC_SUBST([REPLACE_ICONV_OPEN])
   REPLACE_ICONV_UTF=0;  AC_SUBST([REPLACE_ICONV_UTF])
-  ICONV_H='';           AC_SUBST([ICONV_H])
+  GL_GENERATE_ICONV_H=false
   m4_ifdef([gl_POSIXCHECK],
-    [ICONV_H='iconv.h'],
+    [GL_GENERATE_ICONV_H=true],
     [if m4_ifdef([gl_ANSI_CXX], [test "$CXX" != no], [false]); then
        dnl Override <fnmatch.h> always, to support the C++ GNULIB_NAMESPACE.
-       ICONV_H='iconv.h'
+       GL_GENERATE_ICONV_H=true
      fi
     ])
-  AM_CONDITIONAL([GL_GENERATE_ICONV_H], [test -n "$ICONV_H"])
 ])
index 61b6af4..8a27709 100644 (file)
@@ -1,5 +1,5 @@
 # iconv_open.m4 serial 16
-dnl Copyright (C) 2007-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index bdd542b..9f19215 100644 (file)
@@ -1,5 +1,5 @@
 # include_next.m4 serial 26
-dnl Copyright (C) 2006-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -193,9 +193,9 @@ AC_DEFUN([gl_NEXT_HEADERS_INTERNAL],
              if test AS_VAR_GET([gl_header_exists]) = yes; then
              AS_VAR_POPDEF([gl_header_exists])
             ])
-           gl_ABSOLUTE_HEADER_ONE(gl_HEADER_NAME)
-           AS_VAR_COPY([gl_header], [gl_cv_absolute_]AS_TR_SH(gl_HEADER_NAME))
-           AS_VAR_SET([gl_next_header], ['"'$gl_header'"'])
+          gl_ABSOLUTE_HEADER_ONE(gl_HEADER_NAME)
+          AS_VAR_COPY([gl_header], [gl_cv_absolute_]AS_TR_SH(gl_HEADER_NAME))
+          AS_VAR_SET([gl_next_header], ['"'$gl_header'"'])
           m4_if([$2], [check],
             [else
                AS_VAR_SET([gl_next_header], ['<'gl_HEADER_NAME'>'])
index 1979179..94695c1 100644 (file)
@@ -1,5 +1,5 @@
 # inet_pton.m4 serial 19
-dnl Copyright (C) 2006, 2008-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2006, 2008-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 04fc774..dbbb811 100644 (file)
@@ -1,5 +1,5 @@
 # inline.m4 serial 4
-dnl Copyright (C) 2006, 2009-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2006, 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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/m4/intl-thread-locale.m4 b/m4/intl-thread-locale.m4
new file mode 100644 (file)
index 0000000..90bc3b1
--- /dev/null
@@ -0,0 +1,219 @@
+# intl-thread-locale.m4 serial 10
+dnl Copyright (C) 2015-2023 Free Software Foundation, Inc.
+dnl This file is free software; the Free 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
+dnl This file can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Lesser General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Lesser General Public License, and the rest of the GNU
+dnl gettext package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Check how to retrieve the name of a per-thread locale (POSIX locale_t).
+dnl Sets gt_nameless_locales.
+AC_DEFUN([gt_INTL_THREAD_LOCALE_NAME],
+[
+  AC_REQUIRE([AC_CANONICAL_HOST])
+
+  dnl Persuade Solaris <locale.h> to define 'locale_t'.
+  AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+  dnl Test whether uselocale() exists and works at all.
+  gt_FUNC_USELOCALE
+
+  dnl On OpenBSD >= 6.2, the locale_t type and the uselocale(), newlocale(),
+  dnl duplocale(), freelocale() functions exist but are effectively useless,
+  dnl because the locale_t value depends only on the LC_CTYPE category of the
+  dnl locale and furthermore contains only one bit of information (it
+  dnl distinguishes the "C" locale from the *.UTF-8 locales). See
+  dnl <https://cvsweb.openbsd.org/src/lib/libc/locale/newlocale.c?rev=1.1&content-type=text/x-cvsweb-markup>.
+  dnl In the setlocale() implementation they have thought about the programs
+  dnl that use the API ("Even though only LC_CTYPE has any effect in the
+  dnl OpenBSD base system, store complete information about the global locale,
+  dnl such that third-party software can access it"), but for uselocale()
+  dnl they did not think about the programs.
+  dnl In this situation, even the HAVE_NAMELESS_LOCALES support does not work.
+  dnl So, define HAVE_FAKE_LOCALES and disable all locale_t support.
+  case "$gt_cv_func_uselocale_works" in
+    *yes)
+      AC_CHECK_HEADERS_ONCE([xlocale.h])
+      AC_CACHE_CHECK([for fake locale system (OpenBSD)],
+        [gt_cv_locale_fake],
+        [AC_RUN_IFELSE(
+           [AC_LANG_SOURCE([[
+#include <locale.h>
+#if HAVE_XLOCALE_H
+# include <xlocale.h>
+#endif
+int main ()
+{
+  locale_t loc1, loc2;
+  if (setlocale (LC_ALL, "de_DE.UTF-8") == NULL) return 1;
+  if (setlocale (LC_ALL, "fr_FR.UTF-8") == NULL) return 1;
+  loc1 = newlocale (LC_ALL_MASK, "de_DE.UTF-8", (locale_t)0);
+  loc2 = newlocale (LC_ALL_MASK, "fr_FR.UTF-8", (locale_t)0);
+  return !(loc1 == loc2);
+}]])],
+           [gt_cv_locale_fake=yes],
+           [gt_cv_locale_fake=no],
+           [dnl Guess the locale system is fake only on OpenBSD.
+            case "$host_os" in
+              openbsd*) gt_cv_locale_fake="guessing yes" ;;
+              *)        gt_cv_locale_fake="guessing no" ;;
+            esac
+           ])
+        ])
+      ;;
+    *) gt_cv_locale_fake=no ;;
+  esac
+  case "$gt_cv_locale_fake" in
+    *yes)
+      gt_fake_locales=yes
+      AC_DEFINE([HAVE_FAKE_LOCALES], [1],
+        [Define if the locale_t type contains insufficient information, as on OpenBSD.])
+      ;;
+    *)
+      gt_fake_locales=no
+      ;;
+  esac
+
+  case "$gt_cv_func_uselocale_works" in
+    *yes)
+      AC_CACHE_CHECK([for Solaris 11.4 locale system],
+        [gt_cv_locale_solaris114],
+        [case "$host_os" in
+           solaris*)
+             dnl Test whether <locale.h> defines locale_t as a typedef of
+             dnl 'struct _LC_locale_t **' (whereas Illumos defines it as a
+             dnl typedef of 'struct _locale *').
+             dnl Another possible test would be to include <sys/localedef.h>
+             dnl and test whether it defines the _LC_core_data_locale_t type.
+             dnl This type was added in Solaris 11.4.
+             AC_COMPILE_IFELSE(
+               [AC_LANG_PROGRAM([[
+                  #include <locale.h>
+                  struct _LC_locale_t *x;
+                  locale_t y;
+                ]],
+                [[*y = x;]])],
+               [gt_cv_locale_solaris114=yes],
+               [gt_cv_locale_solaris114=no])
+             ;;
+           *) gt_cv_locale_solaris114=no ;;
+         esac
+        ])
+      ;;
+    *) gt_cv_locale_solaris114=no ;;
+  esac
+  if test $gt_cv_locale_solaris114 = yes; then
+    AC_DEFINE([HAVE_SOLARIS114_LOCALES], [1],
+      [Define if the locale_t type is as on Solaris 11.4.])
+  fi
+
+  dnl Solaris 12 will maybe provide getlocalename_l.  If it does, it will
+  dnl improve the implementation of gl_locale_name_thread(), by removing
+  dnl the use of undocumented structures.
+  case "$gt_cv_func_uselocale_works" in
+    *yes)
+      AC_CHECK_FUNCS([getlocalename_l])
+      ;;
+  esac
+
+  dnl This code is for platforms where the locale_t type does not provide access
+  dnl to the name of each locale category.  This code has the drawback that it
+  dnl requires the gnulib overrides of 'newlocale', 'duplocale', 'freelocale',
+  dnl which is a problem for GNU libunistring.  Therefore try hard to avoid
+  dnl enabling this code!
+  gt_nameless_locales=no
+  case "$host_os" in
+    dnl It's needed on AIX 7.2.
+    aix*)
+      gt_nameless_locales=yes
+      AC_DEFINE([HAVE_NAMELESS_LOCALES], [1],
+        [Define if the locale_t type does not contain the name of each locale category.])
+      ;;
+  esac
+
+  dnl We cannot support uselocale() on platforms where the locale_t type is
+  dnl fake.  So, set
+  dnl   gt_good_uselocale = gt_working_uselocale && !gt_fake_locales.
+  if test $gt_working_uselocale = yes && test $gt_fake_locales = no; then
+    gt_good_uselocale=yes
+    AC_DEFINE([HAVE_GOOD_USELOCALE], [1],
+      [Define if the uselocale exists, may be safely called, and returns sufficient information.])
+  else
+    gt_good_uselocale=no
+  fi
+
+  dnl Set gt_localename_enhances_locale_funcs to indicate whether localename.c
+  dnl overrides newlocale(), duplocale(), freelocale() to keep track of locale
+  dnl names.
+  if test $gt_good_uselocale = yes && test $gt_nameless_locales = yes; then
+    gt_localename_enhances_locale_funcs=yes
+    LOCALENAME_ENHANCE_LOCALE_FUNCS=1
+    AC_DEFINE([LOCALENAME_ENHANCE_LOCALE_FUNCS], [1],
+      [Define if localename.c overrides newlocale(), duplocale(), freelocale().])
+  else
+    gt_localename_enhances_locale_funcs=no
+  fi
+])
+
+dnl Tests whether uselocale() exists and is usable.
+dnl Sets gt_working_uselocale and defines HAVE_WORKING_USELOCALE.
+AC_DEFUN([gt_FUNC_USELOCALE],
+[
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+
+  dnl Persuade glibc and Solaris <locale.h> to define 'locale_t'.
+  AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+  gl_CHECK_FUNCS_ANDROID([uselocale], [[#include <locale.h>]])
+
+  dnl On AIX 7.2, the uselocale() function is not documented and leads to
+  dnl crashes in subsequent setlocale() invocations.
+  dnl In 2019, some versions of z/OS lack the locale_t type and have a broken
+  dnl uselocale function.
+  if test $ac_cv_func_uselocale = yes; then
+    AC_CHECK_HEADERS_ONCE([xlocale.h])
+    AC_CACHE_CHECK([whether uselocale works],
+      [gt_cv_func_uselocale_works],
+      [AC_RUN_IFELSE(
+         [AC_LANG_SOURCE([[
+#include <locale.h>
+#if HAVE_XLOCALE_H
+# include <xlocale.h>
+#endif
+locale_t loc1;
+int main ()
+{
+  uselocale (NULL);
+  setlocale (LC_ALL, "en_US.UTF-8");
+  return 0;
+}]])],
+         [gt_cv_func_uselocale_works=yes],
+         [gt_cv_func_uselocale_works=no],
+         [# Guess no on AIX and z/OS, yes otherwise.
+          case "$host_os" in
+            aix* | openedition*) gt_cv_func_uselocale_works="guessing no" ;;
+            *)                   gt_cv_func_uselocale_works="guessing yes" ;;
+          esac
+         ])
+      ])
+  else
+    gt_cv_func_uselocale_works=no
+  fi
+  case "$gt_cv_func_uselocale_works" in
+    *yes)
+      gt_working_uselocale=yes
+      AC_DEFINE([HAVE_WORKING_USELOCALE], [1],
+        [Define if the uselocale function exists and may safely be called.])
+      ;;
+    *)
+      gt_working_uselocale=no
+      ;;
+  esac
+])
index 63c4b41..ef32e1b 100644 (file)
@@ -1,5 +1,5 @@
 # intmax_t.m4 serial 9
-dnl Copyright (C) 1997-2004, 2006-2007, 2009-2021 Free Software Foundation,
+dnl Copyright (C) 1997-2004, 2006-2007, 2009-2023 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
index 8a50d50..0297ddd 100644 (file)
@@ -1,5 +1,5 @@
 #serial 8
-dnl Copyright (C) 2004-2006, 2009-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2004-2006, 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 64b1de5..e7efbe9 100644 (file)
@@ -1,5 +1,5 @@
-# inttypes.m4 serial 35
-dnl Copyright (C) 2006-2021 Free Software Foundation, Inc.
+# inttypes.m4 serial 37
+dnl Copyright (C) 2006-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -36,7 +36,7 @@ AC_DEFUN_ONCE([gl_INTTYPES_INCOMPLETE],
 AC_DEFUN([gl_INTTYPES_PRI_SCN],
 [
   PRIPTR_PREFIX=
-  if test -n "$STDINT_H"; then
+  if $GL_GENERATE_STDINT_H; then
     dnl Using the gnulib <stdint.h>. It defines intptr_t to 'long' or
     dnl 'long long', depending on _WIN64.
     AC_COMPILE_IFELSE(
@@ -170,6 +170,10 @@ AC_DEFUN([gl_INTTYPES_H_DEFAULTS],
   HAVE_DECL_STRTOIMAX=1; AC_SUBST([HAVE_DECL_STRTOIMAX])
   HAVE_DECL_STRTOUMAX=1; AC_SUBST([HAVE_DECL_STRTOUMAX])
   HAVE_IMAXDIV_T=1;      AC_SUBST([HAVE_IMAXDIV_T])
+  HAVE_IMAXABS=1;        AC_SUBST([HAVE_IMAXABS])
+  HAVE_IMAXDIV=1;        AC_SUBST([HAVE_IMAXDIV])
+  REPLACE_IMAXABS=0;     AC_SUBST([REPLACE_IMAXABS])
+  REPLACE_IMAXDIV=0;     AC_SUBST([REPLACE_IMAXDIV])
   REPLACE_STRTOIMAX=0;   AC_SUBST([REPLACE_STRTOIMAX])
   REPLACE_STRTOUMAX=0;   AC_SUBST([REPLACE_STRTOUMAX])
   INT32_MAX_LT_INTMAX_MAX=1;  AC_SUBST([INT32_MAX_LT_INTMAX_MAX])
index 672a93e..68c60e9 100644 (file)
@@ -1,5 +1,5 @@
 # inttypes_h.m4 serial 10
-dnl Copyright (C) 1997-2004, 2006, 2008-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 1997-2004, 2006, 2008-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index efd29f3..83036c3 100644 (file)
@@ -1,5 +1,5 @@
 # ioctl.m4 serial 6
-dnl Copyright (C) 2008-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index e77e1a8..809eab4 100644 (file)
@@ -1,5 +1,5 @@
 # isblank.m4 serial 3
-dnl Copyright (C) 2009-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 84fd838..b1220b1 100644 (file)
@@ -1,5 +1,5 @@
-# iswblank.m4 serial 5
-dnl Copyright (C) 2011-2021 Free Software Foundation, Inc.
+# iswblank.m4 serial 7
+dnl Copyright (C) 2011-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -10,14 +10,18 @@ AC_DEFUN([gl_FUNC_ISWBLANK],
   AC_REQUIRE([gl_WCTYPE_H])
   dnl Persuade glibc <wctype.h> to declare iswblank().
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
-  AC_CHECK_FUNCS_ONCE([iswblank])
+  gl_CHECK_FUNCS_ANDROID([iswblank], [[#include <wctype.h>]])
   AC_CHECK_DECLS([iswblank], , , [[
     #include <wchar.h>
     #include <wctype.h>
   ]])
   if test $ac_cv_func_iswblank = no; then
     HAVE_ISWBLANK=0
-    if test $ac_cv_have_decl_iswblank = yes; then
+    if test $ac_cv_have_decl_iswblank = yes \
+       || case "$gl_cv_onwards_func_iswblank" in \
+            future*) true ;; \
+            *) false ;; \
+          esac; then
       REPLACE_ISWBLANK=1
     fi
   fi
index de4ffce..0df7b30 100644 (file)
@@ -1,5 +1,5 @@
 # iswdigit.m4 serial 3
-dnl Copyright (C) 2020-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2020-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index f96d735..3f952f0 100644 (file)
@@ -1,5 +1,5 @@
 # iswxdigit.m4 serial 3
-dnl Copyright (C) 2020-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2020-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 87959f7..b17a526 100644 (file)
@@ -1,5 +1,5 @@
 # langinfo_h.m4 serial 12
-dnl Copyright (C) 2009-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index fbde5e6..a2adb53 100644 (file)
@@ -1,7 +1,7 @@
 # Enable large files on systems where this is not the default.
 # Enable support for files on Linux file systems with 64-bit inode numbers.
 
-# Copyright 1992-1996, 1998-2021 Free Software Foundation, Inc.
+# Copyright 1992-1996, 1998-2023 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -10,8 +10,9 @@
 # It does not set _LARGEFILE_SOURCE=1 on HP-UX/ia64 32-bit, although this
 # setting of _LARGEFILE_SOURCE is needed so that <stdio.h> declares fseeko
 # and ftello in C++ mode as well.
+# This problem occurs in Autoconf 2.71 and earlier, which lack AC_SYS_YEAR2038.
 AC_DEFUN([gl_SET_LARGEFILE_SOURCE],
-[
+ m4_ifndef([AC_SYS_YEAR2038], [[
   AC_REQUIRE([AC_CANONICAL_HOST])
   AC_FUNC_FSEEKO
   case "$host_os" in
@@ -20,56 +21,255 @@ AC_DEFUN([gl_SET_LARGEFILE_SOURCE],
         [Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2).])
       ;;
   esac
+ ]])
+)
+
+m4_ifndef([AC_SYS_YEAR2038_RECOMMENDED], [
+# Support AC_SYS_YEAR2038_RECOMMENDED and related macros, even if
+# Autoconf 2.71 or earlier.  This code is taken from Autoconf master.
+
+# _AC_SYS_YEAR2038_TEST_CODE
+# --------------------------
+# C code used to probe for time_t that can represent time points more
+# than 2**31 - 1 seconds after the epoch.  With the usual Unix epoch,
+# these correspond to dates after 2038-01-18 22:14:07 +0000 (Gregorian),
+# hence the name.
+AC_DEFUN([_AC_SYS_YEAR2038_TEST_CODE],
+[[
+  #include <time.h>
+  /* Check that time_t can represent 2**32 - 1 correctly.  */
+  #define LARGE_TIME_T \\
+    ((time_t) (((time_t) 1 << 30) - 1 + 3 * ((time_t) 1 << 30)))
+  int verify_time_t_range[(LARGE_TIME_T / 65537 == 65535
+                           && LARGE_TIME_T % 65537 == 0)
+                          ? 1 : -1];
+]])
+
+# _AC_SYS_YEAR2038_OPTIONS
+# ------------------------
+# List of known ways to enable support for large time_t.  If you change
+# this list you probably also need to change the AS_CASE at the end of
+# _AC_SYS_YEAR2038_PROBE.
+m4_define([_AC_SYS_YEAR2038_OPTIONS], m4_normalize(
+    ["none needed"]                   dnl 64-bit and newer 32-bit Unix
+    ["-D_TIME_BITS=64"]               dnl glibc 2.34 with some 32-bit ABIs
+    ["-D__MINGW_USE_VC2005_COMPAT"]   dnl 32-bit MinGW
+    ["-U_USE_32_BIT_TIME_T -D__MINGW_USE_VC2005_COMPAT"]
+                                      dnl 32-bit MinGW (misconfiguration)
+))
+
+# _AC_SYS_YEAR2038_PROBE
+# ----------------------
+# Subroutine of AC_SYS_YEAR2038.  Probe for time_t that can represent
+# time points more than 2**31 - 1 seconds after the epoch (dates after
+# 2038-01-18, see above) and set the cache variable ac_cv_sys_year2038_opts
+# to one of the values in the _AC_SYS_YEAR2038_OPTIONS list, or to
+# "support not detected" if none of them worked.  Then, set compilation
+# options and #defines as necessary to enable large time_t support.
+#
+# Note that we do not test whether mktime, localtime, etc. handle
+# large values of time_t correctly, as that would require use of
+# AC_TRY_RUN.  Note also that some systems only support large time_t
+# together with large off_t.
+#
+# If you change this macro you may also need to change
+# _AC_SYS_YEAR2038_OPTIONS.
+AC_DEFUN([_AC_SYS_YEAR2038_PROBE],
+[AC_CACHE_CHECK([for $CC option for timestamps after 2038],
+  [ac_cv_sys_year2038_opts],
+  [ac_save_CPPFLAGS="$CPPFLAGS"
+  ac_opt_found=no
+  for ac_opt in _AC_SYS_YEAR2038_OPTIONS; do
+    AS_IF([test x"$ac_opt" != x"none needed"],
+      [CPPFLAGS="$ac_save_CPPFLAGS $ac_opt"])
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([_AC_SYS_YEAR2038_TEST_CODE])],
+      [ac_cv_sys_year2038_opts="$ac_opt"
+      ac_opt_found=yes])
+    test $ac_opt_found = no || break
+  done
+  CPPFLAGS="$ac_save_CPPFLAGS"
+  test $ac_opt_found = yes || ac_cv_sys_year2038_opts="support not detected"])
+
+ac_have_year2038=yes
+AS_CASE([$ac_cv_sys_year2038_opts],
+  ["none needed"], [],
+  ["support not detected"],
+    [ac_have_year2038=no],
+
+  ["-D_TIME_BITS=64"],
+    [AC_DEFINE([_TIME_BITS], [64],
+      [Number of bits in time_t, on hosts where this is settable.])],
+
+  ["-D__MINGW_USE_VC2005_COMPAT"],
+    [AC_DEFINE([__MINGW_USE_VC2005_COMPAT], [1],
+      [Define to 1 on platforms where this makes time_t a 64-bit type.])],
+
+  ["-U_USE_32_BIT_TIME_T"*],
+    [AC_MSG_FAILURE(m4_text_wrap(
+      [the 'time_t' type is currently forced to be 32-bit.
+       It will stop working after mid-January 2038.
+       Remove _USE_32BIT_TIME_T from the compiler flags.],
+      [], [], [55]))],
+
+  [AC_MSG_ERROR(
+    [internal error: bad value for \$ac_cv_sys_year2038_opts])])
 ])
 
-# Work around a problem in Autoconf through at least 2.71 on glibc 2.34+
-# with _TIME_BITS.  Also, work around a problem in autoconf <= 2.69:
-# AC_SYS_LARGEFILE does not configure for large inodes on Mac OS X 10.5,
-# or configures them incorrectly in some cases.
-m4_version_prereq([2.70], [], [
+# _AC_SYS_YEAR2038_ENABLE
+# -----------------------
+# Depending on which of the YEAR2038 macros was used, add either an
+# --enable-year2038 or a --disable-year2038 to
+# the configure script.  This is expanded very late and
+# therefore there cannot be any code in the AC_ARG_ENABLE.  The
+# default value for 'enable_year2038' is emitted unconditionally
+# because the generated code always looks at this variable.
+m4_define([_AC_SYS_YEAR2038_ENABLE],
+[m4_divert_text([DEFAULTS],
+  m4_provide_if([AC_SYS_YEAR2038],
+    [enable_year2038=yes],
+    [enable_year2038=no]))]dnl
+[AC_ARG_ENABLE([year2038],
+  m4_provide_if([AC_SYS_YEAR2038],
+    [AS_HELP_STRING([--disable-year2038],
+      [don't support timestamps after 2038])],
+    [AS_HELP_STRING([--enable-year2038],
+      [support timestamps after 2038])]))])
 
-# _AC_SYS_LARGEFILE_TEST_INCLUDES
-# -------------------------------
-m4_define([_AC_SYS_LARGEFILE_TEST_INCLUDES],
-[#include <sys/types.h>
+# AC_SYS_YEAR2038
+# ---------------
+# Attempt to detect and activate support for large time_t.
+# On systems where time_t is not always 64 bits, this probe can be
+# skipped by passing the --disable-year2038 option to configure.
+AC_DEFUN([AC_SYS_YEAR2038],
+[AC_REQUIRE([AC_SYS_LARGEFILE])dnl
+AS_IF([test "$enable_year2038,$ac_have_year2038,$cross_compiling" = yes,no,no],
+ [# If we're not cross compiling and 'touch' works with a large
+  # timestamp, then we can presume the system supports wider time_t
+  # *somehow* and we just weren't able to detect it.  One common
+  # case that we deliberately *don't* probe for is a system that
+  # supports both 32- and 64-bit ABIs but only the 64-bit ABI offers
+  # wide time_t.  (It would be inappropriate for us to override an
+  # intentional use of -m32.)  Error out, demanding use of
+  # --disable-year2038 if this is intentional.
+  AS_IF([TZ=UTC0 touch -t 210602070628.15 conftest.time 2>/dev/null],
+    [AS_CASE([`TZ=UTC0 LC_ALL=C ls -l conftest.time 2>/dev/null`],
+       [*'Feb  7  2106'* | *'Feb  7 17:10'*],
+       [AC_MSG_FAILURE(m4_text_wrap(
+         [this system appears to support timestamps after mid-January 2038,
+          but no mechanism for enabling wide 'time_t' was detected.
+          Did you mean to build a 64-bit binary? (E.g., 'CC="${CC} -m64"'.)
+          To proceed with 32-bit time_t, configure with '--disable-year2038'.],
+         [], [], [55]))])])])])
+
+# AC_SYS_YEAR2038_RECOMMENDED
+# ---------------------------
+# Same as AC_SYS_YEAR2038, but recommend support for large time_t.
+# If we cannot find any way to make time_t capable of representing
+# values larger than 2**31 - 1, error out unless --disable-year2038 is given.
+AC_DEFUN([AC_SYS_YEAR2038_RECOMMENDED],
+[AC_REQUIRE([AC_SYS_YEAR2038])dnl
+AS_IF([test "$enable_year2038,$ac_have_year2038" = yes,no],
+   [AC_MSG_FAILURE(m4_text_wrap(
+      [could not enable timestamps after mid-January 2038.
+       This package recommends support for these later timestamps.
+       However, to proceed with signed 32-bit time_t even though it
+       will fail then, configure with '--disable-year2038'.],
+      [], [], [55]))])])
+
+# _AC_SYS_LARGEFILE_TEST_CODE
+# ---------------------------
+# C code used to probe for large file support.
+m4_define([_AC_SYS_LARGEFILE_TEST_CODE],
+[@%:@include <sys/types.h>
  /* Check that off_t can represent 2**63 - 1 correctly.
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
+@%:@define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
   int off_t_is_large[[(LARGE_OFF_T % 2147483629 == 721
-                       && LARGE_OFF_T % 2147483647 == 1)
-                      ? 1 : -1]];[]dnl
+                      && LARGE_OFF_T % 2147483647 == 1)
+                     ? 1 : -1]];[]dnl
 ])
-])# m4_version_prereq 2.70
-
-
-# _AC_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, VALUE,
-#                               CACHE-VAR,
-#                               DESCRIPTION,
-#                               PROLOGUE, [FUNCTION-BODY])
-# --------------------------------------------------------
-m4_define([_AC_SYS_LARGEFILE_MACRO_VALUE],
-[AC_CACHE_CHECK([for $1 value needed for large files], [$3],
-[while :; do
-  m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])(
-    [AC_LANG_PROGRAM([$5], [$6])],
-    [$3=no; break])
-  m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])(
-    [AC_LANG_PROGRAM([#undef $1
-#define $1 $2
-$5], [$6])],
-    [$3=$2; break])
-  $3=unknown
-  break
-done])
-case $$3 in #(
-  no | unknown) ;;
-  *) AC_DEFINE_UNQUOTED([$1], [$$3], [$4]);;
-esac
-rm -rf conftest*[]dnl
-])# _AC_SYS_LARGEFILE_MACRO_VALUE
+# Defined by Autoconf 2.71 and circa 2022 Gnulib unwisely depended on it.
+m4_define([_AC_SYS_LARGEFILE_TEST_INCLUDES], [_AC_SYS_LARGEFILE_TEST_CODE])
+
+# _AC_SYS_LARGEFILE_OPTIONS
+# -------------------------
+# List of known ways to enable support for large files.  If you change
+# this list you probably also need to change the AS_CASE at the end of
+# _AC_SYS_LARGEFILE_PROBE.
+m4_define([_AC_SYS_LARGEFILE_OPTIONS], m4_normalize(
+    ["none needed"]                   dnl Most current systems
+    ["-D_FILE_OFFSET_BITS=64"]        dnl X/Open LFS spec
+    ["-D_LARGE_FILES=1"]              dnl 32-bit AIX 4.2.1+, 32-bit z/OS
+    ["-n32"]                          dnl 32-bit IRIX 6, SGI cc (obsolete)
+))
+
+# _AC_SYS_LARGEFILE_PROBE
+# -----------------------
+# Subroutine of AC_SYS_LARGEFILE. Probe for large file support and set
+# the cache variable ac_cv_sys_largefile_opts to one of the values in
+# the _AC_SYS_LARGEFILE_OPTIONS list, or to "support not detected" if
+# none of the options in that list worked.  Then, set compilation
+# options and #defines as necessary to enable large file support.
+#
+# If large file support is not detected, the behavior depends on which of
+# the top-level AC_SYS_LARGEFILE macros was used (see below).
+#
+# If you change this macro you may also need to change
+# _AC_SYS_LARGEFILE_OPTIONS.
+AC_DEFUN([_AC_SYS_LARGEFILE_PROBE],
+[AC_CACHE_CHECK([for $CC option to enable large file support],
+  [ac_cv_sys_largefile_opts],
+  [ac_save_CC="$CC"
+  ac_opt_found=no
+  for ac_opt in _AC_SYS_LARGEFILE_OPTIONS; do
+    AS_IF([test x"$ac_opt" != x"none needed"],
+      [CC="$ac_save_CC $ac_opt"])
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([_AC_SYS_LARGEFILE_TEST_CODE])],
+      [ac_cv_sys_largefile_opts="$ac_opt"
+      ac_opt_found=yes])
+    test $ac_opt_found = no || break
+  done
+  CC="$ac_save_CC"
+  dnl Gnulib implements large file support for native Windows, based on the
+  dnl variables WINDOWS_64_BIT_OFF_T, WINDOWS_64_BIT_ST_SIZE.
+  m4_ifdef([gl_LARGEFILE], [
+    AC_REQUIRE([AC_CANONICAL_HOST])
+    if test $ac_opt_found != yes; then
+      AS_CASE([$host_os],
+        [mingw*],
+          [ac_cv_sys_largefile_opts="supported through gnulib"
+           ac_opt_found=yes]
+      )
+    fi
+  ])
+  test $ac_opt_found = yes || ac_cv_sys_largefile_opts="support not detected"])
+
+ac_have_largefile=yes
+AS_CASE([$ac_cv_sys_largefile_opts],
+  ["none needed"], [],
+  ["supported through gnulib"], [],
+  ["support not detected"],
+    [ac_have_largefile=no],
+
+  ["-D_FILE_OFFSET_BITS=64"],
+    [AC_DEFINE([_FILE_OFFSET_BITS], [64],
+      [Number of bits in a file offset, on hosts where this is settable.])],
+
+  ["-D_LARGE_FILES=1"],
+    [AC_DEFINE([_LARGE_FILES], [1],
+      [Define to 1 on platforms where this makes off_t a 64-bit type.])],
+
+  ["-n32"],
+    [CC="$CC -n32"],
+
+  [AC_MSG_ERROR(
+    [internal error: bad value for \$ac_cv_sys_largefile_opts])])
 
+AS_IF([test "$enable_year2038" != no],
+  [_AC_SYS_YEAR2038_PROBE])
+AC_CONFIG_COMMANDS_PRE([_AC_SYS_YEAR2038_ENABLE])])
 
 # AC_SYS_LARGEFILE
 # ----------------
@@ -81,43 +281,12 @@ rm -rf conftest*[]dnl
 # to have a 64-bit inode number cannot be accessed by 32-bit applications on
 # Linux x86/x86_64.  This can occur with file systems such as XFS and NFS.
 AC_DEFUN([AC_SYS_LARGEFILE],
-[AC_ARG_ENABLE(largefile,
-               [  --disable-largefile     omit support for large files])
-AS_IF([test "$enable_largefile" != no],
- [AC_CACHE_CHECK([for special C compiler options needed for large files],
-    ac_cv_sys_largefile_CC,
-    [ac_cv_sys_largefile_CC=no
-     if test "$GCC" != yes; then
-       ac_save_CC=$CC
-       while :; do
-         # IRIX 6.2 and later do not support large files by default,
-         # so use the C compiler's -n32 option if that helps.
-         AC_LANG_CONFTEST([AC_LANG_PROGRAM([_AC_SYS_LARGEFILE_TEST_INCLUDES])])
-         AC_COMPILE_IFELSE([], [break])
-         CC="$CC -n32"
-         AC_COMPILE_IFELSE([], [ac_cv_sys_largefile_CC=' -n32'; break])
-         break
-       done
-       CC=$ac_save_CC
-       rm -f conftest.$ac_ext
-    fi])
-  if test "$ac_cv_sys_largefile_CC" != no; then
-    CC=$CC$ac_cv_sys_largefile_CC
-  fi
-
-  _AC_SYS_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS, 64,
-    ac_cv_sys_file_offset_bits,
-    [Number of bits in a file offset, on hosts where this is settable.],
-    [_AC_SYS_LARGEFILE_TEST_INCLUDES])
-  AS_CASE([$ac_cv_sys_file_offset_bits],
-    [unknown],
-      [_AC_SYS_LARGEFILE_MACRO_VALUE([_LARGE_FILES], [1],
-         [ac_cv_sys_large_files],
-         [Define for large files, on AIX-style hosts.],
-         [_AC_SYS_LARGEFILE_TEST_INCLUDES])],
-    [64],
-      [gl_YEAR2038_BODY([])])])
-])# AC_SYS_LARGEFILE
+[AC_ARG_ENABLE([largefile],
+   [AS_HELP_STRING([--disable-largefile],
+      [omit support for large files])])dnl
+AS_IF([test "$enable_largefile,$enable_year2038" != no,no],
+  [_AC_SYS_LARGEFILE_PROBE])])
+])# m4_ifndef AC_SYS_YEAR2038_RECOMMENDED
 
 # Enable large files on systems where this is implemented by Gnulib, not by the
 # system headers.
index 076358d..acc6127 100644 (file)
@@ -1,5 +1,5 @@
-# lib-ld.m4 serial 10
-dnl Copyright (C) 1996-2003, 2009-2021 Free Software Foundation, Inc.
+# lib-ld.m4 serial 11
+dnl Copyright (C) 1996-2003, 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -29,7 +29,7 @@ AC_DEFUN([AC_LIB_PROG_LD],
 AC_REQUIRE([AC_CANONICAL_HOST])dnl
 
 AC_ARG_WITH([gnu-ld],
-    [AS_HELP_STRING([--with-gnu-ld],
+    [AS_HELP_STRING([[--with-gnu-ld]],
         [assume the C compiler uses GNU ld [default=no]])],
     [test "$withval" = no || with_gnu_ld=yes],
     [with_gnu_ld=no])dnl
index 787efab..653e34f 100644 (file)
@@ -1,5 +1,5 @@
-# lib-link.m4 serial 32
-dnl Copyright (C) 2001-2021 Free Software Foundation, Inc.
+# lib-link.m4 serial 33
+dnl Copyright (C) 2001-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -196,8 +196,8 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
     eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\"
   ])
   AC_ARG_WITH(PACK[-prefix],
-[[  --with-]]PACK[[-prefix[=DIR]  search for ]PACKLIBS[ in DIR/include and DIR/lib
-  --without-]]PACK[[-prefix     don't search for ]PACKLIBS[ in includedir and libdir]],
+[[  --with-]]PACK[[-prefix[=DIR]  search for ]]PACKLIBS[[ in DIR/include and DIR/lib
+  --without-]]PACK[[-prefix     don't search for ]]PACKLIBS[[ in includedir and libdir]],
 [
     if test "X$withval" = "Xno"; then
       use_additional=no
index 3c94db0..aefe7f7 100644 (file)
@@ -1,5 +1,5 @@
-# lib-prefix.m4 serial 19
-dnl Copyright (C) 2001-2005, 2008-2021 Free Software Foundation, Inc.
+# lib-prefix.m4 serial 20
+dnl Copyright (C) 2001-2005, 2008-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -174,7 +174,7 @@ AC_DEFUN([AC_LIB_PREPARE_MULTILIB],
 
   AC_CACHE_CHECK([for ELF binary format], [gl_cv_elf],
     [AC_EGREP_CPP([Extensible Linking Format],
-       [#ifdef __ELF__
+       [#if defined __ELF__ || (defined __linux__ && defined __EDG__)
         Extensible Linking Format
         #endif
        ],
index 3255235..2819a4d 100644 (file)
@@ -1,5 +1,5 @@
 # libsigsegv.m4 serial 4
-dnl Copyright (C) 2002-2003, 2008-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2003, 2008-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 657bc0d..6dd184a 100644 (file)
@@ -1,5 +1,5 @@
-# libunistring-base.m4 serial 5
-dnl Copyright (C) 2010-2021 Free Software Foundation, Inc.
+# libunistring-base.m4 serial 8
+dnl Copyright (C) 2010-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -18,16 +18,47 @@ dnl You have to bump the VERSION argument to the next projected version
 dnl number each time you make a change that affects the behaviour of the
 dnl functions defined in Module (even if the sources of Module itself do not
 dnl change).
+dnl
+dnl This macro invocation must not occur in macros that are AC_REQUIREd.
 
 AC_DEFUN([gl_LIBUNISTRING_MODULE],
 [
   AC_REQUIRE([gl_LIBUNISTRING_LIB_PREPARE])
   dnl Use the variables HAVE_LIBUNISTRING, LIBUNISTRING_VERSION from
   dnl gl_LIBUNISTRING_CORE if that macro has been run.
-  AM_CONDITIONAL(AS_TR_CPP([LIBUNISTRING_COMPILE_$2]),
+  gl_CONDITIONAL(AS_TR_CPP([LIBUNISTRING_COMPILE_$2]),
     [gl_LIBUNISTRING_VERSION_CMP([$1])])
 ])
 
+dnl gl_LIBUNISTRING_MODULE_WITH_VARIABLE([VERSION], [Module])
+dnl is like gl_LIBUNISTRING_MODULE([VERSION], [Module]), except that it also
+dnl defines an AC_SUBSTed autoconf variable GNULIB_$MODULE_DLL_VARIABLE.
+dnl What's the expansion of this autoconf variable?
+dnl   - When building libunistring, it expands to LIBUNISTRING_DLL_VARIABLE.
+dnl     (This is necessary because this token must be present in the .h files
+dnl     when the .h files get installed.)
+dnl   - When building gnulib or application code it expands to
+dnl       - LIBUNISTRING_DLL_VARIABLE by default,
+dnl       - empty if the automake conditional LIBUNISTRING_COMPILE_$MODULE
+dnl         evaluates to true.
+dnl     (This is necessary because when the conditional evaluates to false,
+dnl     the application code expects to use the declared variable from the
+dnl     installed libunistring; it's in this case that the
+dnl     LIBUNISTRING_DLL_VARIABLE macro from the installed
+dnl     <unistring/woe32dll.h> must be used.)
+dnl
+dnl This macro invocation must not occur in macros that are AC_REQUIREd.
+
+AC_DEFUN([gl_LIBUNISTRING_MODULE_WITH_VARIABLE],
+[
+  gl_LIBUNISTRING_MODULE([$1], [$2])
+  m4_ifndef([gl_IN_LIBUNISTRING],
+    [if test -z "${AS_TR_CPP([LIBUNISTRING_COMPILE_$2])_TRUE}"; then
+       GL_MODULE_INDICATOR_PREFIX[]_GNULIB_[]AS_TR_CPP([$2_DLL_VARIABLE])=
+     fi
+    ])
+])
+
 dnl gl_LIBUNISTRING_LIBHEADER([VERSION], [HeaderFile])
 dnl Declares that HeaderFile should be created, unless we are linking
 dnl with libunistring and its version is >= the given VERSION.
@@ -51,7 +82,11 @@ AC_DEFUN([gl_LIBUNISTRING_LIBHEADER],
   dnl Use the variables HAVE_LIBUNISTRING, LIBUNISTRING_VERSION from
   dnl gl_LIBUNISTRING_CORE if that macro has been run.
   if gl_LIBUNISTRING_VERSION_CMP([$1]); then
-    LIBUNISTRING_[]AS_TR_CPP([$2])='$2'
+    dnl It is OK to use a .h file in lib/ from within tests/, but not vice
+    dnl versa.
+    if test -z "$LIBUNISTRING_[]AS_TR_CPP([$2])"; then
+      LIBUNISTRING_[]AS_TR_CPP([$2])="${gl_source_base_prefix}$2"
+    fi
   else
     LIBUNISTRING_[]AS_TR_CPP([$2])=
   fi
@@ -91,6 +126,26 @@ changequote([,])
     LIBUNISTRING_VERSION_MINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_minor"`
     LIBUNISTRING_VERSION_SUBMINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_subminor"`
   fi
+
+  dnl Determine whether <unistring/woe32dll.h> from an installed libunistring
+  dnl is available.
+  m4_ifdef([gl_IN_LIBUNISTRING],
+    [dnl In libunistring, all .h files that declare variables need to
+     dnl #include <unistring/woe32dll.h>.  This references the file
+     dnl unistring/woe32dll.h in libunistring.
+     HAVE_UNISTRING_WOE32DLL_H=1
+    ],
+    [dnl In gnulib or in applications, we need a #include <unistring/woe32dll.h>
+     dnl if and only if an installed libunistring is available.
+     if test "$HAVE_LIBUNISTRING" = yes; then
+       AC_CHECK_HEADERS([unistring/woe32dll.h],
+         [HAVE_UNISTRING_WOE32DLL_H=1],
+         [HAVE_UNISTRING_WOE32DLL_H=0])
+     else
+       HAVE_UNISTRING_WOE32DLL_H=0
+     fi
+    ])
+  AC_SUBST([HAVE_UNISTRING_WOE32DLL_H])
 ])
 
 dnl gl_LIBUNISTRING_VERSION_CMP([VERSION])
index 00c9fe9..6a5983e 100644 (file)
@@ -1,6 +1,6 @@
 dnl Check whether limits.h has needed features.
 
-dnl Copyright 2016-2021 Free Software Foundation, Inc.
+dnl Copyright 2016-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -23,22 +23,32 @@ AC_DEFUN_ONCE([gl_LIMITS_H],
             int wb = WORD_BIT;
             int ullw = ULLONG_WIDTH;
             int bw = BOOL_WIDTH;
+            int bm = BOOL_MAX;
+            int mblm = MB_LEN_MAX;
           ]])],
        [gl_cv_header_limits_width=yes],
        [gl_cv_header_limits_width=no])])
-  if test "$gl_cv_header_limits_width" = yes; then
-    LIMITS_H=
-  else
-    LIMITS_H=limits.h
-  fi
-  AC_SUBST([LIMITS_H])
-  AM_CONDITIONAL([GL_GENERATE_LIMITS_H], [test -n "$LIMITS_H"])
+  GL_GENERATE_LIMITS_H=true
+  AS_IF([test "$gl_cv_header_limits_width" = yes],
+    [AC_CACHE_CHECK([whether limits.h has SSIZE_MAX],
+       [gl_cv_header_limits_ssize_max],
+       [AC_COMPILE_IFELSE(
+          [AC_LANG_SOURCE(
+             [[#include <limits.h>
+               #ifndef SSIZE_MAX
+                 #error "SSIZE_MAX is not defined"
+               #endif
+             ]])],
+          [gl_cv_header_limits_ssize_max=yes],
+          [gl_cv_header_limits_ssize_max=no])])
+     if test "$gl_cv_header_limits_ssize_max" = yes; then
+       GL_GENERATE_LIMITS_H=false
+     fi])
 ])
 
 dnl Unconditionally enables the replacement of <limits.h>.
 AC_DEFUN([gl_REPLACE_LIMITS_H],
 [
   AC_REQUIRE([gl_LIMITS_H])
-  LIMITS_H='limits.h'
-  AM_CONDITIONAL([GL_GENERATE_LIMITS_H], [test -n "$LIMITS_H"])
+  GL_GENERATE_LIMITS_H=true
 ])
index 04389fc..15b6b2a 100644 (file)
@@ -1,5 +1,5 @@
 # localcharset.m4 serial 8
-dnl Copyright (C) 2002, 2004, 2006, 2009-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2004, 2006, 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index b61df7e..5e13f39 100644 (file)
@@ -1,5 +1,5 @@
-# locale-fr.m4 serial 20
-dnl Copyright (C) 2003, 2005-2021 Free Software Foundation, Inc.
+# locale-fr.m4 serial 21
+dnl Copyright (C) 2003, 2005-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -7,7 +7,7 @@ dnl with or without modifications, as long as this notice is preserved.
 dnl From Bruno Haible.
 
 dnl Determine the name of a french locale with traditional encoding.
-AC_DEFUN([gt_LOCALE_FR],
+AC_DEFUN_ONCE([gt_LOCALE_FR],
 [
   AC_REQUIRE([AC_CANONICAL_HOST])
   AC_REQUIRE([AM_LANGINFO_CODESET])
@@ -137,7 +137,7 @@ int main () {
 ])
 
 dnl Determine the name of a french locale with UTF-8 encoding.
-AC_DEFUN([gt_LOCALE_FR_UTF8],
+AC_DEFUN_ONCE([gt_LOCALE_FR_UTF8],
 [
   AC_REQUIRE([AM_LANGINFO_CODESET])
   AC_CACHE_CHECK([for a french Unicode locale], [gt_cv_locale_fr_utf8], [
index cd94288..f6ca327 100644 (file)
@@ -1,5 +1,5 @@
-# locale-ja.m4 serial 15
-dnl Copyright (C) 2003, 2005-2021 Free Software Foundation, Inc.
+# locale-ja.m4 serial 16
+dnl Copyright (C) 2003, 2005-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -7,7 +7,7 @@ dnl with or without modifications, as long as this notice is preserved.
 dnl From Bruno Haible.
 
 dnl Determine the name of a japanese locale with EUC-JP encoding.
-AC_DEFUN([gt_LOCALE_JA],
+AC_DEFUN_ONCE([gt_LOCALE_JA],
 [
   AC_REQUIRE([AC_CANONICAL_HOST])
   AC_REQUIRE([AM_LANGINFO_CODESET])
index ecb8b60..d34df05 100644 (file)
@@ -1,5 +1,5 @@
-# locale-tr.m4 serial 13
-dnl Copyright (C) 2003, 2005-2021 Free Software Foundation, Inc.
+# locale-tr.m4 serial 14
+dnl Copyright (C) 2003, 2005-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -7,7 +7,7 @@ dnl with or without modifications, as long as this notice is preserved.
 dnl From Bruno Haible.
 
 dnl Determine the name of a turkish locale with UTF-8 encoding.
-AC_DEFUN([gt_LOCALE_TR_UTF8],
+AC_DEFUN_ONCE([gt_LOCALE_TR_UTF8],
 [
   AC_REQUIRE([AC_CANONICAL_HOST])
   AC_REQUIRE([AM_LANGINFO_CODESET])
index 1228be8..94c5459 100644 (file)
@@ -1,5 +1,5 @@
-# locale-zh.m4 serial 15
-dnl Copyright (C) 2003, 2005-2021 Free Software Foundation, Inc.
+# locale-zh.m4 serial 16
+dnl Copyright (C) 2003, 2005-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -7,7 +7,7 @@ dnl with or without modifications, as long as this notice is preserved.
 dnl From Bruno Haible.
 
 dnl Determine the name of a chinese locale with GB18030 encoding.
-AC_DEFUN([gt_LOCALE_ZH_CN],
+AC_DEFUN_ONCE([gt_LOCALE_ZH_CN],
 [
   AC_REQUIRE([AC_CANONICAL_HOST])
   AC_REQUIRE([AM_LANGINFO_CODESET])
index 444a381..a33a0a4 100644 (file)
@@ -1,5 +1,5 @@
 # locale_h.m4 serial 28
-dnl Copyright (C) 2007, 2009-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index e29c7c3..374dcbf 100644 (file)
@@ -1,5 +1,5 @@
-# localeconv.m4 serial 1
-dnl Copyright (C) 2012-2021 Free Software Foundation, Inc.
+# localeconv.m4 serial 2
+dnl Copyright (C) 2012-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -8,10 +8,45 @@ AC_DEFUN([gl_FUNC_LOCALECONV],
 [
   AC_REQUIRE([gl_LOCALE_H_DEFAULTS])
   AC_REQUIRE([gl_LOCALE_H])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
 
   if test $REPLACE_STRUCT_LCONV = 1; then
     REPLACE_LOCALECONV=1
   fi
+  if test $REPLACE_LOCALECONV = 0; then
+    dnl Test whether fields of type 'char' are filled correctly.
+    dnl This test fails on mingw 5.0.3.
+    AC_CACHE_CHECK([whether localeconv works],
+      [gl_cv_func_localeconv_works],
+      [AC_RUN_IFELSE(
+         [AC_LANG_SOURCE([[
+            #include <locale.h>
+            #include <limits.h>
+            int main ()
+            {
+              struct lconv *l = localeconv ();
+              return l->frac_digits != CHAR_MAX && l->frac_digits < 0;
+            }
+         ]])],
+         [gl_cv_func_localeconv_works=yes],
+         [gl_cv_func_localeconv_works=no],
+         [case "$host_os" in
+                                # Guess yes on glibc systems.
+            *-gnu* | gnu*)      gl_cv_func_localeconv_works="guessing yes" ;;
+                                # Guess yes on musl systems.
+            *-musl* | midipix*) gl_cv_func_localeconv_works="guessing yes" ;;
+                                # Guess no on native Windows.
+            mingw*)             gl_cv_func_localeconv_works="guessing no" ;;
+                                # If we don't know, obey --enable-cross-guesses.
+            *)                  gl_cv_func_localeconv_works="$gl_cross_guess_normal" ;;
+          esac
+         ])
+      ])
+    case "$gl_cv_func_localeconv_works" in
+      *yes) ;;
+      *) REPLACE_LOCALECONV=1 ;;
+    esac
+  fi
 ])
 
 # Prerequisites of lib/localeconv.c.
@@ -19,4 +54,6 @@ AC_DEFUN([gl_PREREQ_LOCALECONV],
 [
   AC_CHECK_MEMBERS([struct lconv.decimal_point], [], [],
     [[#include <locale.h>]])
+  AC_CHECK_MEMBERS([struct lconv.int_p_cs_precedes], [], [],
+    [[#include <locale.h>]])
 ])
index d68c12d..88cf557 100644 (file)
@@ -1,5 +1,5 @@
 # lock.m4 serial 14
-dnl Copyright (C) 2005-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2005-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 62e9db2..2bc4669 100644 (file)
@@ -1,6 +1,6 @@
-# serial 33
+# serial 34
 
-# Copyright (C) 1997-2001, 2003-2021 Free Software Foundation, Inc.
+# Copyright (C) 1997-2001, 2003-2023 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -56,6 +56,9 @@ AC_DEFUN([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK],
           linux-* | linux)
             # Guess yes on Linux systems.
             gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;;
+          midipix*)
+            # Guess yes on systems that emulate the Linux system calls.
+            gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;;
           *-gnu* | gnu*)
             # Guess yes on glibc systems.
             gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;;
index 972e808..bc58017 100644 (file)
@@ -1,5 +1,5 @@
-# malloc.m4 serial 27
-dnl Copyright (C) 2007, 2009-2021 Free Software Foundation, Inc.
+# malloc.m4 serial 29
+dnl Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -25,7 +25,7 @@ AC_DEFUN([_AC_FUNC_MALLOC_IF],
        [case "$host_os" in
           # Guess yes on platforms where we know the result.
           *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \
-          | gnu* | *-musl* | midnightbsd* \
+          | gnu* | *-musl* | midipix* | midnightbsd* \
           | hpux* | solaris* | cygwin* | mingw* | msys* )
             ac_cv_func_malloc_0_nonnull="guessing yes" ;;
           # If we don't know, obey --enable-cross-guesses.
@@ -43,8 +43,9 @@ AC_DEFUN([gl_FUNC_MALLOC_GNU],
 [
   AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
   AC_REQUIRE([gl_FUNC_MALLOC_POSIX])
-  if test $REPLACE_MALLOC = 0; then
-    _AC_FUNC_MALLOC_IF([], [REPLACE_MALLOC=1])
+  REPLACE_MALLOC_FOR_MALLOC_GNU="$REPLACE_MALLOC_FOR_MALLOC_POSIX"
+  if test $REPLACE_MALLOC_FOR_MALLOC_GNU = 0; then
+    _AC_FUNC_MALLOC_IF([], [REPLACE_MALLOC_FOR_MALLOC_GNU=1])
   fi
 ])
 
@@ -56,7 +57,7 @@ AC_DEFUN([gl_FUNC_MALLOC_PTRDIFF],
 [
   AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
   AC_REQUIRE([gl_CHECK_MALLOC_PTRDIFF])
-  test "$gl_cv_malloc_ptrdiff" = yes || REPLACE_MALLOC=1
+  test "$gl_cv_malloc_ptrdiff" = yes || REPLACE_MALLOC_FOR_MALLOC_POSIX=1
 ])
 
 # Test whether malloc, realloc, calloc refuse to create objects
@@ -109,7 +110,7 @@ AC_DEFUN([gl_FUNC_MALLOC_POSIX],
     AC_DEFINE([HAVE_MALLOC_POSIX], [1],
       [Define if malloc, realloc, and calloc set errno on allocation failure.])
   else
-    REPLACE_MALLOC=1
+    REPLACE_MALLOC_FOR_MALLOC_POSIX=1
   fi
 ])
 
index 06ed2c6..1d777eb 100644 (file)
@@ -1,5 +1,5 @@
 # malloca.m4 serial 2
-dnl Copyright (C) 2003-2004, 2006-2007, 2009-2021 Free Software Foundation,
+dnl Copyright (C) 2003-2004, 2006-2007, 2009-2023 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
index 53ab153..13db996 100644 (file)
@@ -1,5 +1,5 @@
-# manywarnings.m4 serial 21
-dnl Copyright (C) 2008-2021 Free Software Foundation, Inc.
+# manywarnings.m4 serial 23
+dnl Copyright (C) 2008-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -46,8 +46,7 @@ AC_DEFUN([gl_MANYWARN_ALL_GCC(C)],
   dnl First, check for some issues that only occur when combining multiple
   dnl gcc warning categories.
   AC_REQUIRE([AC_PROG_CC])
-  if test -n "$GCC"; then
-
+  AS_IF([test -n "$GCC"], [
     dnl Check if -Wextra -Werror -Wno-missing-field-initializers is supported
     dnl with the current $CC $CFLAGS $CPPFLAGS.
     AC_CACHE_CHECK([whether -Wno-missing-field-initializers is supported],
@@ -61,7 +60,7 @@ AC_DEFUN([gl_MANYWARN_ALL_GCC(C)],
        CFLAGS="$gl_save_CFLAGS"
       ])
 
-    if test "$gl_cv_cc_nomfi_supported" = yes; then
+    AS_IF([test "$gl_cv_cc_nomfi_supported" = yes], [
       dnl Now check whether -Wno-missing-field-initializers is needed
       dnl for the { 0, } construct.
       AC_CACHE_CHECK([whether -Wno-missing-field-initializers is needed],
@@ -82,7 +81,7 @@ AC_DEFUN([gl_MANYWARN_ALL_GCC(C)],
            [gl_cv_cc_nomfi_needed=yes])
          CFLAGS="$gl_save_CFLAGS"
         ])
-    fi
+    ])
 
     dnl Next, check if -Werror -Wuninitialized is useful with the
     dnl user's choice of $CFLAGS; some versions of gcc warn that it
@@ -97,8 +96,7 @@ AC_DEFUN([gl_MANYWARN_ALL_GCC(C)],
          [gl_cv_cc_uninitialized_supported=no])
        CFLAGS="$gl_save_CFLAGS"
       ])
-
-  fi
+  ])
 
   # List all gcc warning categories.
   # To compare this list to your installed GCC's, run this Bash command:
@@ -109,7 +107,7 @@ AC_DEFUN([gl_MANYWARN_ALL_GCC(C)],
   #  <(LC_ALL=C gcc --help=warnings | sed -n 's/^  \(-[^ ]*\) .*/\1/p' | sort)
 
   $1=
-  for gl_manywarn_item in -fanalyzer -fno-common \
+  for gl_manywarn_item in -fanalyzer -fstrict-flex-arrays \
     -Wall \
     -Warith-conversion \
     -Wbad-function-cast \
@@ -137,6 +135,7 @@ AC_DEFUN([gl_MANYWARN_ALL_GCC(C)],
     -Wpointer-arith \
     -Wshadow \
     -Wstack-protector \
+    -Wstrict-flex-arrays \
     -Wstrict-overflow \
     -Wstrict-prototypes \
     -Wsuggest-attribute=cold \
@@ -167,23 +166,30 @@ AC_DEFUN([gl_MANYWARN_ALL_GCC(C)],
   # them here so that the above 'comm' command doesn't report a false match.
   gl_AS_VAR_APPEND([$1], [' -Warray-bounds=2'])
   gl_AS_VAR_APPEND([$1], [' -Wattribute-alias=2'])
+  gl_AS_VAR_APPEND([$1], [' -Wbidi-chars=any,ucn'])
   gl_AS_VAR_APPEND([$1], [' -Wformat-overflow=2'])
   gl_AS_VAR_APPEND([$1], [' -Wformat=2'])
   gl_AS_VAR_APPEND([$1], [' -Wformat-truncation=2'])
   gl_AS_VAR_APPEND([$1], [' -Wimplicit-fallthrough=5'])
   gl_AS_VAR_APPEND([$1], [' -Wshift-overflow=2'])
+  gl_AS_VAR_APPEND([$1], [' -Wuse-after-free=3'])
   gl_AS_VAR_APPEND([$1], [' -Wunused-const-variable=2'])
   gl_AS_VAR_APPEND([$1], [' -Wvla-larger-than=4031'])
 
   # These are needed for older GCC versions.
-  if test -n "$GCC"; then
-    case `($CC --version) 2>/dev/null` in
+  if test -n "$GCC" && gl_gcc_version=`($CC --version) 2>/dev/null`; then
+    case $gl_gcc_version in
       'gcc (GCC) '[[0-3]].* | \
       'gcc (GCC) '4.[[0-7]].*)
         gl_AS_VAR_APPEND([$1], [' -fdiagnostics-show-option'])
         gl_AS_VAR_APPEND([$1], [' -funit-at-a-time'])
           ;;
     esac
+    case $gl_gcc_version in
+      'gcc (GCC) '[[0-9]].*)
+        gl_AS_VAR_APPEND([$1], [' -fno-common'])
+          ;;
+    esac
   fi
 
   # Disable specific options as needed.
@@ -195,15 +201,9 @@ AC_DEFUN([gl_MANYWARN_ALL_GCC(C)],
     gl_AS_VAR_APPEND([$1], [' -Wno-uninitialized'])
   fi
 
-  # Some warnings have too many false alarms in GCC 10.1.
-  # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93695
-  gl_AS_VAR_APPEND([$1], [' -Wno-analyzer-double-free'])
-  # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94458
+  # This warning have too many false alarms in GCC 11.2.1.
+  # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101713
   gl_AS_VAR_APPEND([$1], [' -Wno-analyzer-malloc-leak'])
-  # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94851
-  gl_AS_VAR_APPEND([$1], [' -Wno-analyzer-null-dereference'])
-  # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95758
-  gl_AS_VAR_APPEND([$1], [' -Wno-analyzer-use-after-free'])
 
   AC_LANG_POP([C])
 ])
index b6842bb..aed40a5 100644 (file)
@@ -1,5 +1,5 @@
 # mbchar.m4 serial 9
-dnl Copyright (C) 2005-2007, 2009-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2005-2007, 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 0d57379..8e879dc 100644 (file)
@@ -1,5 +1,5 @@
 # mbiter.m4 serial 7
-dnl Copyright (C) 2005, 2008-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2005, 2008-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 1d4e73d..893faff 100644 (file)
@@ -1,5 +1,5 @@
-# mbrtowc.m4 serial 38  -*- coding: utf-8 -*-
-dnl Copyright (C) 2001-2002, 2004-2005, 2008-2021 Free Software Foundation,
+# mbrtowc.m4 serial 40  -*- coding: utf-8 -*-
+dnl Copyright (C) 2001-2002, 2004-2005, 2008-2023 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,
@@ -91,20 +91,23 @@ AC_DEFUN([gl_FUNC_MBRTOWC],
   fi
   if test $REPLACE_MBSTATE_T = 1; then
     case "$host_os" in
-      mingw*) LIB_MBRTOWC= ;;
+      mingw*) MBRTOWC_LIB= ;;
       *)
         gl_WEAK_SYMBOLS
         case "$gl_cv_have_weak" in
-          *yes) LIB_MBRTOWC= ;;
-          *)    LIB_MBRTOWC="$LIBPTHREAD" ;;
+          *yes) MBRTOWC_LIB= ;;
+          *)    MBRTOWC_LIB="$LIBPTHREAD" ;;
         esac
         ;;
     esac
   else
-    LIB_MBRTOWC=
+    MBRTOWC_LIB=
   fi
-  dnl LIB_MBRTOWC is expected to be '-pthread' or '-lpthread' on AIX
+  dnl MBRTOWC_LIB is expected to be '-pthread' or '-lpthread' on AIX
   dnl with gcc or xlc, and empty otherwise.
+  AC_SUBST([MBRTOWC_LIB])
+  dnl For backward compatibility.
+  LIB_MBRTOWC="$MBRTOWC_LIB"
   AC_SUBST([LIB_MBRTOWC])
 ])
 
@@ -114,7 +117,7 @@ dnl Result is REPLACE_MBSTATE_T.
 dnl When this is set to 1, we replace both mbsinit() and mbrtowc(), in order to
 dnl avoid inconsistencies.
 
-AC_DEFUN([gl_MBSTATE_T_BROKEN],
+AC_DEFUN_ONCE([gl_MBSTATE_T_BROKEN],
 [
   AC_REQUIRE([gl_WCHAR_H_DEFAULTS])
   AC_REQUIRE([AC_CANONICAL_HOST])
@@ -709,6 +712,10 @@ dnl Test whether mbrtowc reports encoding errors in the C locale.
 dnl Although POSIX was never intended to allow this, the GNU C Library
 dnl and other implementations do it.  See:
 dnl https://sourceware.org/bugzilla/show_bug.cgi?id=19932
+dnl POSIX has now clarified it:
+dnl <https://pubs.opengroup.org/onlinepubs/9699919799/functions/mbrtowc.html>
+dnl says: "In the POSIX locale an [EILSEQ] error cannot occur since all byte
+dnl values are valid characters."
 
 AC_DEFUN([gl_MBRTOWC_C_LOCALE],
 [
index dc6e10d..c388a8b 100644 (file)
@@ -1,5 +1,5 @@
 # mbsinit.m4 serial 9
-dnl Copyright (C) 2008, 2010-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2008, 2010-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 0801fdf..a9e0ed2 100644 (file)
@@ -1,5 +1,5 @@
 # mbslen.m4 serial 3
-dnl Copyright (C) 2010-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2010-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index cf8e962..4f2e88c 100644 (file)
@@ -1,5 +1,5 @@
-# mbsrtowcs.m4 serial 14
-dnl Copyright (C) 2008-2021 Free Software Foundation, Inc.
+# mbsrtowcs.m4 serial 15
+dnl Copyright (C) 2008-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -32,6 +32,13 @@ AC_DEFUN([gl_FUNC_MBSRTOWCS],
         *yes) ;;
         *) REPLACE_MBSRTOWCS=1 ;;
       esac
+      if test $REPLACE_MBSRTOWCS = 0; then
+        gl_MBRTOWC_C_LOCALE
+        case "$gl_cv_func_mbrtowc_C_locale_sans_EILSEQ" in
+          *yes) ;;
+          *) REPLACE_MBSRTOWCS=1 ;;
+        esac
+      fi
     fi
   fi
 ])
index e7fe358..dcd66b9 100644 (file)
@@ -1,5 +1,5 @@
 # mbstate_t.m4 serial 14
-dnl Copyright (C) 2000-2002, 2008-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2000-2002, 2008-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 7fc74c9..02ed6eb 100644 (file)
@@ -1,5 +1,5 @@
-# mbtowc.m4 serial 3
-dnl Copyright (C) 2011-2021 Free Software Foundation, Inc.
+# mbtowc.m4 serial 5
+dnl Copyright (C) 2011-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -8,9 +8,12 @@ AC_DEFUN([gl_FUNC_MBTOWC],
 [
   AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
 
-  AC_CHECK_FUNCS([mbtowc])
+  gl_CHECK_FUNCS_ANDROID([mbtowc], [[#include <stdlib.h>]])
   if test $ac_cv_func_mbtowc = no; then
     HAVE_MBTOWC=0
+    case "$gl_cv_onwards_func_mbtowc" in
+      future*) REPLACE_MBTOWC=1 ;;
+    esac
   else
     if false; then
       REPLACE_MBTOWC=1
index ca08192..4f1aed0 100644 (file)
@@ -1,5 +1,5 @@
 # memchr.m4 serial 18
-dnl Copyright (C) 2002-2004, 2009-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2004, 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index f9d9ec8..612b77b 100644 (file)
@@ -1,5 +1,5 @@
-# mempcpy.m4 serial 12
-dnl Copyright (C) 2003-2004, 2006-2007, 2009-2021 Free Software Foundation,
+# mempcpy.m4 serial 14
+dnl Copyright (C) 2003-2004, 2006-2007, 2009-2023 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,
@@ -14,9 +14,12 @@ AC_DEFUN([gl_FUNC_MEMPCPY],
   AC_REQUIRE([AC_C_RESTRICT])
 
   AC_REQUIRE([gl_STRING_H_DEFAULTS])
-  AC_CHECK_FUNCS([mempcpy])
+  gl_CHECK_FUNCS_ANDROID([mempcpy], [[#include <string.h>]])
   if test $ac_cv_func_mempcpy = no; then
     HAVE_MEMPCPY=0
+    case "$gl_cv_onwards_func_mempcpy" in
+      future*) REPLACE_MEMPCPY=1 ;;
+    esac
   fi
 ])
 
index e21a687..fd09846 100644 (file)
@@ -1,5 +1,5 @@
 # minmax.m4 serial 4
-dnl Copyright (C) 2005, 2009-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2005, 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 031fd29..c2bc4da 100644 (file)
@@ -1,6 +1,6 @@
-# serial 17
+# serial 18
 
-# Copyright (C) 2001, 2003-2004, 2006, 2008-2021 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003-2004, 2006, 2008-2023 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -27,6 +27,8 @@ AC_DEFUN([gl_FUNC_MKDIR],
        [case "$host_os" in
                            # Guess yes on Linux systems.
           linux-* | linux) gl_cv_func_mkdir_trailing_slash_works="guessing yes" ;;
+                           # Guess yes on systems that emulate the Linux system calls.
+          midipix*)        gl_cv_func_mkdir_trailing_slash_works="guessing yes" ;;
                            # Guess yes on glibc systems.
           *-gnu* | gnu*)   gl_cv_func_mkdir_trailing_slash_works="guessing yes" ;;
                            # Guess yes on MSVC, no on mingw.
@@ -67,6 +69,8 @@ AC_DEFUN([gl_FUNC_MKDIR],
           *-gnu* | gnu*) gl_cv_func_mkdir_trailing_dot_works="guessing yes" ;;
                          # Guess yes on musl systems.
           *-musl*)       gl_cv_func_mkdir_trailing_dot_works="guessing yes" ;;
+                         # Guess yes on systems that emulate the Linux system calls.
+          midipix*)      gl_cv_func_mkdir_trailing_dot_works="guessing yes" ;;
                          # Guess no on native Windows.
           mingw*)        gl_cv_func_mkdir_trailing_dot_works="guessing no" ;;
                          # If we don't know, obey --enable-cross-guesses.
index 9318fa6..d4a15ea 100644 (file)
@@ -1,6 +1,6 @@
-#serial 28
+#serial 29
 
-# Copyright (C) 2001, 2003-2007, 2009-2021 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003-2007, 2009-2023 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -58,14 +58,14 @@ AC_DEFUN([gl_FUNC_MKSTEMP],
           [gl_cv_func_working_mkstemp=yes],
           [gl_cv_func_working_mkstemp=no],
           [case "$host_os" in
-                            # Guess yes on glibc systems.
-             *-gnu* | gnu*) gl_cv_func_working_mkstemp="guessing yes" ;;
-                            # Guess yes on musl systems.
-             *-musl*)       gl_cv_func_working_mkstemp="guessing yes" ;;
-                            # Guess no on native Windows.
-             mingw*)        gl_cv_func_working_mkstemp="guessing no" ;;
-                            # If we don't know, obey --enable-cross-guesses.
-             *)             gl_cv_func_working_mkstemp="$gl_cross_guess_normal" ;;
+                                 # Guess yes on glibc systems.
+             *-gnu* | gnu*)      gl_cv_func_working_mkstemp="guessing yes" ;;
+                                 # Guess yes on musl systems.
+             *-musl* | midipix*) gl_cv_func_working_mkstemp="guessing yes" ;;
+                                 # Guess no on native Windows.
+             mingw*)             gl_cv_func_working_mkstemp="guessing no" ;;
+                                 # If we don't know, obey --enable-cross-guesses.
+             *)                  gl_cv_func_working_mkstemp="$gl_cross_guess_normal" ;;
            esac
           ])
         rm -rf conftest.mkstemp
index 721189a..e9d31f3 100644 (file)
@@ -1,5 +1,5 @@
-# serial 36
-dnl Copyright (C) 2002-2003, 2005-2007, 2009-2021 Free Software Foundation,
+# serial 37
+dnl Copyright (C) 2002-2003, 2005-2007, 2009-2023 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,
@@ -82,7 +82,8 @@ spring_forward_gap ()
      instead of "TZ=America/Vancouver" in order to detect the bug even
      on systems that don't support the Olson extension, or don't have the
      full zoneinfo tables installed.  */
-  putenv ("TZ=PST8PDT,M4.1.0,M10.5.0");
+  if (putenv ("TZ=PST8PDT,M4.1.0,M10.5.0") != 0)
+    return -1;
 
   tm.tm_year = 98;
   tm.tm_mon = 3;
@@ -170,7 +171,8 @@ year_2050_test ()
      instead of "TZ=America/Vancouver" in order to detect the bug even
      on systems that don't support the Olson extension, or don't have the
      full zoneinfo tables installed.  */
-  putenv ("TZ=PST8PDT,M4.1.0,M10.5.0");
+  if (putenv ("TZ=PST8PDT,M4.1.0,M10.5.0") != 0)
+    return -1;
 
   t = mktime (&tm);
 
@@ -181,6 +183,25 @@ year_2050_test ()
           || (0 < t && answer - 120 <= t && t <= answer + 120));
 }
 
+static int
+indiana_test ()
+{
+  if (putenv ("TZ=America/Indiana/Indianapolis") != 0)
+    return -1;
+  struct tm tm;
+  tm.tm_year = 1986 - 1900; tm.tm_mon = 4 - 1; tm.tm_mday = 28;
+  tm.tm_hour = 16; tm.tm_min = 24; tm.tm_sec = 50; tm.tm_isdst = 0;
+  time_t std = mktime (&tm);
+  if (! (std == 515107490 || std == 515107503))
+    return 1;
+
+  /* This platform supports TZDB, either without or with leap seconds.
+     Return true if GNU Bug#48085 is absent.  */
+  tm.tm_isdst = 1;
+  time_t dst = mktime (&tm);
+  return std - dst == 60 * 60;
+}
+
 int
 main ()
 {
@@ -236,7 +257,7 @@ main ()
     result |= 16;
   if (! spring_forward_gap ())
     result |= 32;
-  if (! year_2050_test ())
+  if (! year_2050_test () || ! indiana_test ())
     result |= 64;
   return result;
 }]])],
index e47aa2d..d07d26e 100644 (file)
@@ -1,5 +1,5 @@
 # mmap-anon.m4 serial 12
-dnl Copyright (C) 2005, 2007, 2009-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2005, 2007, 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 3bd4b89..82197c0 100644 (file)
@@ -1,5 +1,5 @@
 # mode_t.m4 serial 2
-dnl Copyright (C) 2009-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 3ba5b4e..8d9d21b 100644 (file)
@@ -1,5 +1,5 @@
 # msvc-inval.m4 serial 1
-dnl Copyright (C) 2011-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index aae25ce..0263e49 100644 (file)
@@ -1,5 +1,5 @@
 # msvc-nothrow.m4 serial 1
-dnl Copyright (C) 2011-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index f1678d9..3ba5b0f 100644 (file)
@@ -1,5 +1,5 @@
 # multiarch.m4 serial 9
-dnl Copyright (C) 2008-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 60bd62a..e28a3fe 100644 (file)
@@ -1,5 +1,5 @@
-# musl.m4 serial 3
-dnl Copyright (C) 2019-2021 Free Software Foundation, Inc.
+# musl.m4 serial 4
+dnl Copyright (C) 2019-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -13,6 +13,8 @@ AC_DEFUN_ONCE([gl_MUSL_LIBC],
 [
   AC_REQUIRE([AC_CANONICAL_HOST])
   case "$host_os" in
-    *-musl*) AC_DEFINE([MUSL_LIBC], [1], [Define to 1 on musl libc.]) ;;
+    *-musl* | midipix*)
+      AC_DEFINE([MUSL_LIBC], [1], [Define to 1 on musl libc.])
+      ;;
   esac
 ])
index baebe88..e21a3e3 100644 (file)
@@ -1,11 +1,11 @@
-# serial 40
+# serial 43
 
 dnl From Jim Meyering.
 dnl Check for the nanosleep function.
 dnl If not found, use the supplied replacement.
 dnl
 
-# Copyright (C) 1999-2001, 2003-2021 Free Software Foundation, Inc.
+# Copyright (C) 1999-2001, 2003-2023 Free Software Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -19,20 +19,17 @@ AC_DEFUN([gl_FUNC_NANOSLEEP],
  dnl Persuade glibc and Solaris <time.h> to declare nanosleep.
  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
 
- AC_CHECK_HEADERS_ONCE([sys/time.h])
- AC_REQUIRE([gl_FUNC_SELECT])
-
  AC_CHECK_DECLS_ONCE([alarm])
 
  nanosleep_save_libs=$LIBS
 
  # Solaris 2.5.1 needs -lposix4 to get the nanosleep function.
  # Solaris 7 prefers the library name -lrt to the obsolescent name -lposix4.
LIB_NANOSLEEP=
- AC_SUBST([LIB_NANOSLEEP])
NANOSLEEP_LIB=
+ AC_SUBST([NANOSLEEP_LIB])
  AC_SEARCH_LIBS([nanosleep], [rt posix4],
                 [test "$ac_cv_search_nanosleep" = "none required" ||
-                 LIB_NANOSLEEP=$ac_cv_search_nanosleep])
+                 NANOSLEEP_LIB=$ac_cv_search_nanosleep])
  if test "x$ac_cv_search_nanosleep" != xno; then
    dnl The system has a nanosleep function.
 
@@ -53,9 +50,6 @@ AC_DEFUN([gl_FUNC_NANOSLEEP],
           #include <errno.h>
           #include <limits.h>
           #include <signal.h>
-          #if HAVE_SYS_TIME_H
-           #include <sys/time.h>
-          #endif
           #include <time.h>
           #include <unistd.h>
           #define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
@@ -106,15 +100,22 @@ AC_DEFUN([gl_FUNC_NANOSLEEP],
             #else /* A simpler test for native Windows.  */
             if (nanosleep (&ts_sleep, &ts_remaining) < 0)
               return 3;
+            /* Test for 32-bit mingw bug: negative nanosecond values do not
+               cause failure.  */
+            ts_sleep.tv_sec = 1;
+            ts_sleep.tv_nsec = -1;
+            if (nanosleep (&ts_sleep, &ts_remaining) != -1)
+              return 7;
             #endif
             return 0;
           }]])],
        [gl_cv_func_nanosleep=yes],
-       [case $? in dnl (
-        4|5|6) gl_cv_func_nanosleep='no (mishandles large arguments)';; dnl (
-        *)   gl_cv_func_nanosleep=no;;
+       [case $? in
+        4|5|6) gl_cv_func_nanosleep='no (mishandles large arguments)' ;;
+        7)     gl_cv_func_nanosleep='no (mishandles negative tv_nsec)' ;;
+        *)     gl_cv_func_nanosleep=no ;;
         esac],
-       [case "$host_os" in dnl ((
+       [case "$host_os" in
           linux*) # Guess it halfway works when the kernel is Linux.
             gl_cv_func_nanosleep='guessing no (mishandles large arguments)' ;;
           mingw*) # Guess no on native Windows.
@@ -135,15 +136,6 @@ AC_DEFUN([gl_FUNC_NANOSLEEP],
            AC_DEFINE([HAVE_BUG_BIG_NANOSLEEP], [1],
              [Define to 1 if nanosleep mishandles large arguments.])
            ;;
-         *)
-           # The replacement uses select(). Add $LIBSOCKET to $LIB_NANOSLEEP.
-           for ac_lib in $LIBSOCKET; do
-             case " $LIB_NANOSLEEP " in
-               *" $ac_lib "*) ;;
-               *) LIB_NANOSLEEP="$LIB_NANOSLEEP $ac_lib";;
-             esac
-           done
-           ;;
        esac
        ;;
    esac
@@ -151,11 +143,8 @@ AC_DEFUN([gl_FUNC_NANOSLEEP],
    HAVE_NANOSLEEP=0
  fi
  LIBS=$nanosleep_save_libs
-])
 
-# Prerequisites of lib/nanosleep.c.
-AC_DEFUN([gl_PREREQ_NANOSLEEP],
-[
-  AC_CHECK_HEADERS_ONCE([sys/select.h])
-  gl_PREREQ_SIG_HANDLER_H
+ # For backward compatibility.
+ LIB_NANOSLEEP="$NANOSLEEP_LIB"
+ AC_SUBST([LIB_NANOSLEEP])
 ])
index c555596..7115419 100644 (file)
@@ -1,5 +1,5 @@
-# netinet_in_h.m4 serial 5
-dnl Copyright (C) 2006-2021 Free Software Foundation, Inc.
+# netinet_in_h.m4 serial 6
+dnl Copyright (C) 2006-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -14,9 +14,9 @@ AC_DEFUN([gl_HEADER_NETINET_IN],
         [gl_cv_header_netinet_in_h_selfcontained=no])
     ])
   if test $gl_cv_header_netinet_in_h_selfcontained = yes; then
-    NETINET_IN_H=''
+    GL_GENERATE_NETINET_IN_H=false
   else
-    NETINET_IN_H='netinet/in.h'
+    GL_GENERATE_NETINET_IN_H=true
     AC_CHECK_HEADERS([netinet/in.h])
     gl_CHECK_NEXT_HEADERS([netinet/in.h])
     if test $ac_cv_header_netinet_in_h = yes; then
@@ -26,6 +26,4 @@ AC_DEFUN([gl_HEADER_NETINET_IN],
     fi
     AC_SUBST([HAVE_NETINET_IN_H])
   fi
-  AC_SUBST([NETINET_IN_H])
-  AM_CONDITIONAL([GL_GENERATE_NETINET_IN_H], [test -n "$NETINET_IN_H"])
 ])
index 6ad32c8..7648d52 100644 (file)
@@ -1,5 +1,5 @@
-# nl_langinfo.m4 serial 8
-dnl Copyright (C) 2009-2021 Free Software Foundation, Inc.
+# nl_langinfo.m4 serial 11
+dnl Copyright (C) 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -8,7 +8,7 @@ AC_DEFUN([gl_FUNC_NL_LANGINFO],
 [
   AC_REQUIRE([gl_LANGINFO_H_DEFAULTS])
   AC_REQUIRE([gl_LANGINFO_H])
-  AC_CHECK_FUNCS_ONCE([nl_langinfo])
+  gl_CHECK_FUNCS_ANDROID([nl_langinfo], [[#include <langinfo.h>]])
   AC_REQUIRE([AC_CANONICAL_HOST])
   AC_REQUIRE([gl_FUNC_SETLOCALE_NULL])
   AC_REQUIRE([gl_PTHREADLIB])
@@ -60,9 +60,12 @@ AC_DEFUN([gl_FUNC_NL_LANGINFO],
     fi
   else
     HAVE_NL_LANGINFO=0
+    case "$gl_cv_onwards_func_nl_langinfo" in
+      future*) REPLACE_NL_LANGINFO=1 ;;
+    esac
   fi
   if test $HAVE_NL_LANGINFO = 0 || test $HAVE_LANGINFO_CODESET = 0; then
-    LIB_NL_LANGINFO="$LIB_SETLOCALE_NULL"
+    LIB_NL_LANGINFO="$SETLOCALE_NULL_LIB"
   else
     LIB_NL_LANGINFO=
   fi
index 27412cd..6a76638 100644 (file)
@@ -1,5 +1,5 @@
 # nocrash.m4 serial 5
-dnl Copyright (C) 2005, 2009-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2005, 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index b510554..04c0b63 100644 (file)
@@ -1,6 +1,6 @@
 # serial 37
 
-# Copyright (C) 1996-1997, 1999-2007, 2009-2021 Free Software Foundation, Inc.
+# Copyright (C) 1996-1997, 1999-2007, 2009-2023 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff --git a/m4/nullptr.m4 b/m4/nullptr.m4
new file mode 100644 (file)
index 0000000..1f8ab51
--- /dev/null
@@ -0,0 +1,62 @@
+# Check for nullptr that conforms to C23 and C++11.
+
+dnl Copyright 2023 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_NULLPTR],
+[
+  m4_provide_if([AC_PROG_CC],
+    [AC_LANG_PUSH([C])
+     AC_CACHE_CHECK([for C nullptr], [gl_cv_c_nullptr],
+       [AC_COMPILE_IFELSE(
+          [AC_LANG_SOURCE([[int *p = nullptr;]])],
+          [gl_cv_c_nullptr=yes],
+          [gl_cv_c_nullptr=no])])
+      gl_c_nullptr=$gl_cv_c_nullptr
+      AC_LANG_POP([C])],
+     [gl_c_nullptr=no])
+  if test "$gl_c_nullptr" = yes; then
+    AC_DEFINE([HAVE_C_NULLPTR], [1],
+      [Define to 1 if C nullptr is known to work.])
+  fi
+
+  m4_provide_if([AC_PROG_CXX],
+    [AC_LANG_PUSH([C++])
+     AC_CACHE_CHECK([for C++ nullptr], [gl_cv_cxx_nullptr],
+       [AC_COMPILE_IFELSE(
+          [AC_LANG_SOURCE([[int *p = nullptr;]])],
+          [gl_cv_cxx_nullptr=yes],
+          [AC_COMPILE_IFELSE(
+             [AC_LANG_SOURCE([[#include <stddef.h>
+                               int *p = nullptr;]])],
+             [gl_cv_cxx_nullptr="yes, but it is a <stddef.h> macro"],
+             [gl_cv_cxx_nullptr=no])])])
+     AS_CASE([$gl_cv_cxx_nullptr],
+       [yes],  [gl_have_cxx_nullptr=1],
+       [yes*], [gl_have_cxx_nullptr="(-1)"],
+               [gl_have_cxx_nullptr=0])
+     AC_DEFINE_UNQUOTED([HAVE_CXX_NULLPTR], [$gl_have_cxx_nullptr],
+                        [Define to 1 if C++ nullptr works, 0 if not,
+                         (-1) if it is a <stddef.h> macro.])
+     AC_LANG_POP([C++])])
+])
+
+  AH_VERBATIM([zznullptr],
+[#if defined __cplusplus && HAVE_CXX_NULLPTR < 0
+# include <stddef.h>
+# undef/**/nullptr
+#endif
+#ifndef nullptr
+# if !defined __cplusplus && !defined HAVE_C_NULLPTR
+#  define nullptr ((void *) 0)
+# elif defined __cplusplus && HAVE_CXX_NULLPTR <= 0
+#  if 3 <= __GNUG__
+#   define nullptr __null
+#  else
+#   define nullptr 0L
+#  endif
+# endif
+#endif])
+])
index bdec43c..880f347 100644 (file)
@@ -1,5 +1,5 @@
 # off_t.m4 serial 1
-dnl Copyright (C) 2012-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2012-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 542a90f..fd572fc 100644 (file)
@@ -1,6 +1,6 @@
 # Test whether O_CLOEXEC is defined.
 
-dnl Copyright 2017-2021 Free Software Foundation, Inc.
+dnl Copyright 2017-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index e619039..1f731f8 100644 (file)
@@ -1,5 +1,5 @@
 # open-slash.m4 serial 2
-dnl Copyright (C) 2007-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index c634386..94fa2bb 100644 (file)
@@ -1,5 +1,5 @@
 # open.m4 serial 15
-dnl Copyright (C) 2007-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index e67c656..6d47d2c 100644 (file)
@@ -1,5 +1,5 @@
 # pathmax.m4 serial 11
-dnl Copyright (C) 2002-2003, 2005-2006, 2009-2021 Free Software Foundation,
+dnl Copyright (C) 2002-2003, 2005-2006, 2009-2023 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/m4/perl.m4 b/m4/perl.m4
new file mode 100644 (file)
index 0000000..d9ff790
--- /dev/null
@@ -0,0 +1,53 @@
+# serial 11
+
+dnl From Jim Meyering.
+dnl Find a new-enough version of Perl.
+
+# Copyright (C) 1998-2001, 2003-2004, 2007, 2009-2023 Free Software Foundation,
+# Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_PERL],
+[
+  dnl FIXME: don't hard-code 5.005
+AC_CACHE_CHECK([for Perl 5.005 or newer],
+ [gl_cv_prog_perl],
+ [
+  if test "${PERL+set}" = set; then
+    # 'PERL' is set in the user's environment.
+    candidate_perl_names="$PERL"
+    perl_specified=yes
+  else
+    candidate_perl_names='perl perl5'
+    perl_specified=no
+  fi
+
+  gl_cv_prog_perl=no
+  for perl in $candidate_perl_names; do
+    # Run test in a subshell; some versions of sh will print an error if
+    # an executable is not found, even if stderr is redirected.
+    if ( $perl -e 'require 5.005; use File::Compare; use warnings;' ) > /dev/null 2>&1; then
+      gl_cv_prog_perl=$perl
+      break
+    fi
+  done
+ ])
+
+if test "$gl_cv_prog_perl" != no; then
+  PERL=$gl_cv_prog_perl
+else
+  PERL="$am_missing_run perl"
+  AC_MSG_WARN([
+WARNING: You don't seem to have perl5.005 or newer installed, or you lack
+         a usable version of the Perl File::Compare module.  As a result,
+         you may be unable to run a few tests or to regenerate certain
+         files if you modify the sources from which they are derived.
+] )
+fi
+
+AC_SUBST([PERL])
+
+])
index 9f2ac2d..9842b24 100644 (file)
@@ -1,5 +1,5 @@
-# perror.m4 serial 9
-dnl Copyright (C) 2008-2021 Free Software Foundation, Inc.
+# perror.m4 serial 12
+dnl Copyright (C) 2008-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -10,12 +10,12 @@ AC_DEFUN([gl_FUNC_PERROR],
   AC_REQUIRE([gl_HEADER_ERRNO_H])
   AC_REQUIRE([gl_FUNC_STRERROR_R])
   AC_REQUIRE([gl_FUNC_STRERROR_0])
-  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+  AC_REQUIRE([AC_CANONICAL_HOST])
   dnl We intentionally do not check for the broader REPLACE_STRERROR_R,
   dnl since on glibc systems, strerror_r is replaced only for signature
   dnl issues, and perror is just fine.  Rather, we only want to
   dnl replace perror if strerror_r was replaced for a content fix.
-  if test "$ERRNO_H:$REPLACE_STRERROR_0" != :0; then
+  if test "$GL_GENERATE_ERRNO_H:$REPLACE_STRERROR_0" != false:0; then
     dnl The system's perror() cannot know about the new errno values we add
     dnl to <errno.h>, or any fix for strerror(0). Replace it.
     REPLACE_PERROR=1
@@ -48,12 +48,12 @@ AC_DEFUN([gl_FUNC_PERROR],
             rm -rf conftest.txt1 conftest.txt2],
            [gl_cv_func_perror_works=no],
            [case "$host_os" in
-                       # Guess yes on musl systems.
-              *-musl*) gl_cv_func_perror_works="guessing yes" ;;
-                       # Guess yes on native Windows.
-              mingw*)  gl_cv_func_perror_works="guessing yes" ;;
-                       # Otherwise obey --enable-cross-guesses.
-              *)       gl_cv_func_perror_works="$gl_cross_guess_normal" ;;
+                                  # Guess yes on musl systems.
+              *-musl* | midipix*) gl_cv_func_perror_works="guessing yes" ;;
+                                  # Guess yes on native Windows.
+              mingw*)             gl_cv_func_perror_works="guessing yes" ;;
+                                  # Otherwise obey --enable-cross-guesses.
+              *)                  gl_cv_func_perror_works="$gl_cross_guess_normal" ;;
             esac
            ])
         ])
@@ -68,4 +68,9 @@ AC_DEFUN([gl_FUNC_PERROR],
       REPLACE_PERROR=1
       ;;
   esac
+  dnl Does perror clobber the strerror buffer?
+  case "$host_os" in
+                     # Yes on Android 11.
+    linux*-android*) REPLACE_PERROR=1 ;;
+  esac
 ])
index 89d666d..1ad6688 100644 (file)
@@ -1,5 +1,5 @@
 # pipe.m4 serial 2
-dnl Copyright (C) 2010-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2010-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 284c7c5..efb85a5 100644 (file)
@@ -1,5 +1,5 @@
-# printf.m4 serial 73
-dnl Copyright (C) 2003, 2007-2021 Free Software Foundation, Inc.
+# printf.m4 serial 82
+dnl Copyright (C) 2003, 2007-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -63,7 +63,7 @@ changequote(,)dnl
                                  # Guess yes on glibc systems.
            *-gnu* | gnu*)        gl_cv_func_printf_sizes_c99="guessing yes";;
                                  # Guess yes on musl systems.
-           *-musl*)              gl_cv_func_printf_sizes_c99="guessing yes";;
+           *-musl* | midipix*)   gl_cv_func_printf_sizes_c99="guessing yes";;
                                  # Guess yes on FreeBSD >= 5.
            freebsd[1-4].*)       gl_cv_func_printf_sizes_c99="guessing no";;
            freebsd* | kfreebsd*) gl_cv_func_printf_sizes_c99="guessing yes";;
@@ -101,6 +101,92 @@ changequote([,])dnl
     ])
 ])
 
+dnl Test whether the *printf family of functions supports the 'w8', 'w16',
+dnl 'w32', 'w64', 'wf8', 'wf16', 'wf32', 'wf64' size specifiers. (ISO C23)
+dnl Result is gl_cv_func_printf_sizes_c23.
+
+AC_DEFUN([gl_PRINTF_SIZES_C23],
+[
+  AC_REQUIRE([AC_PROG_CC])
+  AC_REQUIRE([gl_AC_HEADER_STDINT_H])
+  AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+  AC_CACHE_CHECK([whether printf supports size specifiers as in C23],
+    [gl_cv_func_printf_sizes_c23],
+    [
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
+#include <stddef.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/types.h>
+#if HAVE_STDINT_H_WITH_UINTMAX
+# include <stdint.h>
+#endif
+#if HAVE_INTTYPES_H_WITH_UINTMAX
+# include <inttypes.h>
+#endif
+static char buf[100];
+int main ()
+{
+  int result = 0;
+  buf[0] = '\0';
+  if (sprintf (buf, "%w8u %d", (uint8_t) 123, 33, 44, 55) < 0
+      || strcmp (buf, "123 33") != 0)
+    result |= 1;
+  buf[0] = '\0';
+  if (sprintf (buf, "%wf8u %d", (uint_fast8_t) 123, 33, 44, 55) < 0
+      || strcmp (buf, "123 33") != 0)
+    result |= 1;
+  buf[0] = '\0';
+  if (sprintf (buf, "%w16u %d", (uint16_t) 12345, 33, 44, 55) < 0
+      || strcmp (buf, "12345 33") != 0)
+    result |= 2;
+  buf[0] = '\0';
+  if (sprintf (buf, "%wf16u %d", (uint_fast16_t) 12345, 33, 44, 55) < 0
+      || strcmp (buf, "12345 33") != 0)
+    result |= 2;
+  buf[0] = '\0';
+  if (sprintf (buf, "%w32u %d", (uint32_t) 12345671, 33, 44, 55) < 0
+      || strcmp (buf, "12345671 33") != 0)
+    result |= 4;
+  buf[0] = '\0';
+  if (sprintf (buf, "%wf32u %d", (uint_fast32_t) 12345671, 33, 44, 55) < 0
+      || strcmp (buf, "12345671 33") != 0)
+    result |= 4;
+#if HAVE_STDINT_H_WITH_UINTMAX || HAVE_INTTYPES_H_WITH_UINTMAX
+  buf[0] = '\0';
+  if (sprintf (buf, "%w64u %d", (uint64_t) 12345671, 33, 44, 55) < 0
+      || strcmp (buf, "12345671 33") != 0)
+    result |= 8;
+  buf[0] = '\0';
+  if (sprintf (buf, "%wf64u %d", (uint_fast64_t) 12345671, 33, 44, 55) < 0
+      || strcmp (buf, "12345671 33") != 0)
+    result |= 8;
+#else
+  result |= 8;
+#endif
+  return result;
+}]])],
+        [gl_cv_func_printf_sizes_c23=yes],
+        [gl_cv_func_printf_sizes_c23=no],
+        [
+         case "$host_os" in
+                               # Guess no on glibc systems.
+           *-gnu* | gnu*)      gl_cv_func_printf_sizes_c23="guessing no";;
+                               # Guess no on musl systems.
+           *-musl* | midipix*) gl_cv_func_printf_sizes_c23="guessing no";;
+                               # Guess no on Android.
+           linux*-android*)    gl_cv_func_printf_sizes_c23="guessing no";;
+                               # Guess no on native Windows.
+           mingw*)             gl_cv_func_printf_sizes_c23="guessing no";;
+                               # If we don't know, obey --enable-cross-guesses.
+           *)                  gl_cv_func_printf_sizes_c23="$gl_cross_guess_normal";;
+         esac
+        ])
+    ])
+])
+
 dnl Test whether the *printf family of functions supports 'long double'
 dnl arguments together with the 'L' size specifier. (ISO C99, POSIX:2001)
 dnl Result is gl_cv_func_printf_long_double.
@@ -244,7 +330,7 @@ changequote(,)dnl
                                  # Guess yes on glibc systems.
            *-gnu* | gnu*)        gl_cv_func_printf_infinite="guessing yes";;
                                  # Guess yes on musl systems.
-           *-musl*)              gl_cv_func_printf_infinite="guessing yes";;
+           *-musl* | midipix*)   gl_cv_func_printf_infinite="guessing yes";;
                                  # Guess yes on FreeBSD >= 6.
            freebsd[1-5].*)       gl_cv_func_printf_infinite="guessing no";;
            freebsd* | kfreebsd*) gl_cv_func_printf_infinite="guessing yes";;
@@ -467,7 +553,7 @@ changequote(,)dnl
                                          # Guess yes on glibc systems.
                    *-gnu* | gnu*)        gl_cv_func_printf_infinite_long_double="guessing yes";;
                                          # Guess yes on musl systems.
-                   *-musl*)              gl_cv_func_printf_infinite_long_double="guessing yes";;
+                   *-musl* | midipix*)   gl_cv_func_printf_infinite_long_double="guessing yes";;
                                          # Guess yes on FreeBSD >= 6.
                    freebsd[1-5].*)       gl_cv_func_printf_infinite_long_double="guessing no";;
                    freebsd* | kfreebsd*) gl_cv_func_printf_infinite_long_double="guessing yes";;
@@ -591,7 +677,7 @@ int main ()
                [gl_cv_func_printf_directive_a="guessing no"])
              ;;
                                  # Guess yes on musl systems.
-           *-musl*)              gl_cv_func_printf_directive_a="guessing yes";;
+           *-musl* | midipix*)   gl_cv_func_printf_directive_a="guessing yes";;
                                  # Guess no on Android.
            linux*-android*)      gl_cv_func_printf_directive_a="guessing no";;
                                  # Guess no on native Windows.
@@ -603,6 +689,116 @@ int main ()
     ])
 ])
 
+dnl Test whether the *printf family of functions supports the 'b' conversion
+dnl specifier for binary output of integers.
+dnl (ISO C23)
+dnl Result is gl_cv_func_printf_directive_b.
+
+AC_DEFUN([gl_PRINTF_DIRECTIVE_B],
+[
+  AC_REQUIRE([AC_PROG_CC])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+  AC_CACHE_CHECK([whether printf supports the 'b' directive],
+    [gl_cv_func_printf_directive_b],
+    [
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
+#include <stdio.h>
+#include <string.h>
+static char buf[100];
+int main ()
+{
+  int result = 0;
+  if (sprintf (buf, "%b %d", 12345, 33, 44, 55) < 0
+      || strcmp (buf, "11000000111001 33") != 0)
+    result |= 1;
+  return result;
+}]])],
+        [gl_cv_func_printf_directive_b=yes],
+        [gl_cv_func_printf_directive_b=no],
+        [
+         case "$host_os" in
+                               # Guess yes on glibc >= 2.35 systems.
+           *-gnu* | gnu*)
+             AC_EGREP_CPP([Lucky], [
+               #include <features.h>
+               #ifdef __GNU_LIBRARY__
+                #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 35) || (__GLIBC__ > 2)
+                 Lucky user
+                #endif
+               #endif
+               ],
+               [gl_cv_func_printf_directive_uppercase_b="guessing yes"],
+               [gl_cv_func_printf_directive_uppercase_b="guessing no"])
+             ;;
+                               # Guess no on musl systems.
+           *-musl* | midipix*) gl_cv_func_printf_directive_b="guessing no";;
+                               # Guess no on Android.
+           linux*-android*)    gl_cv_func_printf_directive_b="guessing no";;
+                               # Guess no on native Windows.
+           mingw*)             gl_cv_func_printf_directive_b="guessing no";;
+                               # If we don't know, obey --enable-cross-guesses.
+           *)                  gl_cv_func_printf_directive_b="$gl_cross_guess_normal";;
+         esac
+        ])
+    ])
+])
+
+dnl Test whether the *printf family of functions supports the 'B' conversion
+dnl specifier for binary output of integers.
+dnl (GNU, encouraged by ISO C23 § 7.23.6.1)
+dnl Result is gl_cv_func_printf_directive_uppercase_b.
+
+AC_DEFUN([gl_PRINTF_DIRECTIVE_UPPERCASE_B],
+[
+  AC_REQUIRE([AC_PROG_CC])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+  AC_CACHE_CHECK([whether printf supports the 'B' directive],
+    [gl_cv_func_printf_directive_uppercase_b],
+    [
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
+#include <stdio.h>
+#include <string.h>
+static char buf[100];
+int main ()
+{
+  int result = 0;
+  if (sprintf (buf, "%#B %d", 12345, 33, 44, 55) < 0
+      || strcmp (buf, "0B11000000111001 33") != 0)
+    result |= 1;
+  return result;
+}]])],
+        [gl_cv_func_printf_directive_uppercase_b=yes],
+        [gl_cv_func_printf_directive_uppercase_b=no],
+        [
+         case "$host_os" in
+                               # Guess yes on glibc >= 2.35 systems.
+           *-gnu* | gnu*)
+             AC_EGREP_CPP([Lucky], [
+               #include <features.h>
+               #ifdef __GNU_LIBRARY__
+                #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 35) || (__GLIBC__ > 2)
+                 Lucky user
+                #endif
+               #endif
+               ],
+               [gl_cv_func_printf_directive_uppercase_b="guessing yes"],
+               [gl_cv_func_printf_directive_uppercase_b="guessing no"])
+             ;;
+                               # Guess no on musl systems.
+           *-musl* | midipix*) gl_cv_func_printf_directive_uppercase_b="guessing no";;
+                               # Guess no on Android.
+           linux*-android*)    gl_cv_func_printf_directive_uppercase_b="guessing no";;
+                               # Guess no on native Windows.
+           mingw*)             gl_cv_func_printf_directive_uppercase_b="guessing no";;
+                               # If we don't know, obey --enable-cross-guesses.
+           *)                  gl_cv_func_printf_directive_uppercase_b="$gl_cross_guess_normal";;
+         esac
+        ])
+    ])
+])
+
 dnl Test whether the *printf family of functions supports the %F format
 dnl directive. (ISO C99, POSIX:2001)
 dnl Result is gl_cv_func_printf_directive_f.
@@ -643,7 +839,7 @@ changequote(,)dnl
                                  # Guess yes on glibc systems.
            *-gnu* | gnu*)        gl_cv_func_printf_directive_f="guessing yes";;
                                  # Guess yes on musl systems.
-           *-musl*)              gl_cv_func_printf_directive_f="guessing yes";;
+           *-musl* | midipix*)   gl_cv_func_printf_directive_f="guessing yes";;
                                  # Guess yes on FreeBSD >= 6.
            freebsd[1-5].*)       gl_cv_func_printf_directive_f="guessing no";;
            freebsd* | kfreebsd*) gl_cv_func_printf_directive_f="guessing yes";;
@@ -829,11 +1025,58 @@ changequote([,])dnl
     ])
 ])
 
+dnl Test whether the *printf family of functions supports the %lc format
+dnl directive and in particular, when the argument is a null wide character,
+dnl whether the functions don't produce a NUL byte.
+dnl Result is gl_cv_func_printf_directive_lc.
+
+AC_DEFUN([gl_PRINTF_DIRECTIVE_LC],
+[
+  AC_REQUIRE([AC_PROG_CC])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+  AC_CACHE_CHECK([whether printf supports the 'lc' directive correctly],
+    [gl_cv_func_printf_directive_lc],
+    [
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
+#include <stdio.h>
+#include <wchar.h>
+#include <string.h>
+int main ()
+{
+  int result = 0;
+  char buf[100];
+  /* This test fails on glibc 2.35, FreeBSD 13.1, NetBSD 9.0, OpenBSD 7.2,
+     macOS 12.5, AIX 7.2, Solaris 11.4.
+     glibc 2.35 bug: <https://sourceware.org/bugzilla/show_bug.cgi?id=30257>  */
+  {
+    buf[0] = '\0';
+    if (sprintf (buf, "%lc%lc%lc", (wint_t) 'a', (wint_t) 0, (wint_t) 'z') < 0
+        || strcmp (buf, "az") != 0)
+      result |= 1;
+  }
+  return result;
+}]])],
+        [gl_cv_func_printf_directive_lc=yes],
+        [gl_cv_func_printf_directive_lc=no],
+        [
+changequote(,)dnl
+         case "$host_os" in
+                               # Guess yes on musl libc.
+           *-musl* | midipix*) gl_cv_func_printf_directive_lc="guessing yes";;
+                               # Guess no otherwise.
+           *)                  gl_cv_func_printf_directive_lc="guessing no";;
+         esac
+changequote([,])dnl
+        ])
+    ])
+])
+
 dnl Test whether the *printf family of functions supports POSIX/XSI format
 dnl strings with positions. (POSIX:2001)
 dnl Result is gl_cv_func_printf_positions.
 
-AC_DEFUN([gl_PRINTF_POSITIONS],
+AC_DEFUN_ONCE([gl_PRINTF_POSITIONS],
 [
   AC_REQUIRE([AC_PROG_CC])
   AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
@@ -990,18 +1233,18 @@ int main ()
         [
 changequote(,)dnl
          case "$host_os" in
-                            # Guess yes on glibc systems.
-           *-gnu* | gnu*)   gl_cv_func_printf_flag_zero="guessing yes";;
-                            # Guess yes on musl systems.
-           *-musl*)         gl_cv_func_printf_flag_zero="guessing yes";;
-                            # Guess yes on BeOS.
-           beos*)           gl_cv_func_printf_flag_zero="guessing yes";;
-                            # Guess no on Android.
-           linux*-android*) gl_cv_func_printf_flag_zero="guessing no";;
-                            # Guess no on native Windows.
-           mingw*)          gl_cv_func_printf_flag_zero="guessing no";;
-                            # If we don't know, obey --enable-cross-guesses.
-           *)               gl_cv_func_printf_flag_zero="$gl_cross_guess_normal";;
+                               # Guess yes on glibc systems.
+           *-gnu* | gnu*)      gl_cv_func_printf_flag_zero="guessing yes";;
+                               # Guess yes on musl systems.
+           *-musl* | midipix*) gl_cv_func_printf_flag_zero="guessing yes";;
+                               # Guess yes on BeOS.
+           beos*)              gl_cv_func_printf_flag_zero="guessing yes";;
+                               # Guess no on Android.
+           linux*-android*)    gl_cv_func_printf_flag_zero="guessing no";;
+                               # Guess no on native Windows.
+           mingw*)             gl_cv_func_printf_flag_zero="guessing no";;
+                               # If we don't know, obey --enable-cross-guesses.
+           *)                  gl_cv_func_printf_flag_zero="$gl_cross_guess_normal";;
          esac
 changequote([,])dnl
         ])
@@ -1239,7 +1482,7 @@ changequote(,)dnl
                                  # Guess yes on glibc systems.
            *-gnu* | gnu*)        gl_cv_func_snprintf_truncation_c99="guessing yes";;
                                  # Guess yes on musl systems.
-           *-musl*)              gl_cv_func_snprintf_truncation_c99="guessing yes";;
+           *-musl* | midipix*)   gl_cv_func_snprintf_truncation_c99="guessing yes";;
                                  # Guess yes on FreeBSD >= 5.
            freebsd[1-4].*)       gl_cv_func_snprintf_truncation_c99="guessing no";;
            freebsd* | kfreebsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
@@ -1344,7 +1587,7 @@ changequote(,)dnl
                                  # Guess yes on glibc systems.
            *-gnu* | gnu*)        gl_cv_func_snprintf_retval_c99="guessing yes";;
                                  # Guess yes on musl systems.
-           *-musl*)              gl_cv_func_snprintf_retval_c99="guessing yes";;
+           *-musl* | midipix*)   gl_cv_func_snprintf_retval_c99="guessing yes";;
                                  # Guess yes on FreeBSD >= 5.
            freebsd[1-4].*)       gl_cv_func_snprintf_retval_c99="guessing no";;
            freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
@@ -1447,7 +1690,7 @@ int main ()
                                  ;;
 changequote(,)dnl
                                  # Guess yes on musl systems.
-           *-musl*)              gl_cv_func_snprintf_directive_n="guessing yes";;
+           *-musl* | midipix*)   gl_cv_func_snprintf_directive_n="guessing yes";;
                                  # Guess yes on FreeBSD >= 5.
            freebsd[1-4].*)       gl_cv_func_snprintf_directive_n="guessing no";;
            freebsd* | kfreebsd*) gl_cv_func_snprintf_directive_n="guessing yes";;
@@ -1604,7 +1847,7 @@ changequote(,)dnl
                                  # Guess yes on glibc systems.
            *-gnu* | gnu*)        gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
                                  # Guess yes on musl systems.
-           *-musl*)              gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
+           *-musl* | midipix*)   gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
                                  # Guess yes on FreeBSD >= 5.
            freebsd[1-4].*)       gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
            freebsd* | kfreebsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
@@ -1641,88 +1884,227 @@ changequote([,])dnl
     ])
 ])
 
+dnl Test whether the swprintf function works correctly when it produces output
+dnl that contains null wide characters.
+dnl Result is gl_cv_func_swprintf_works.
+
+AC_DEFUN([gl_SWPRINTF_WORKS],
+[
+  AC_REQUIRE([AC_PROG_CC])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+  AC_CHECK_FUNCS_ONCE([swprintf])
+  AC_CACHE_CHECK([whether swprintf works],
+    [gl_cv_func_swprintf_works],
+    [
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
+#ifndef __USE_MINGW_ANSI_STDIO
+# define __USE_MINGW_ANSI_STDIO 1
+#endif
+#include <stdio.h>
+#include <wchar.h>
+int main()
+{
+  int result = 0;
+  { /* This test fails on musl, FreeBSD, NetBSD, OpenBSD, macOS, AIX.  */
+    wchar_t buf[5] = { 0xBEEF, 0xBEEF, 0xBEEF, 0xBEEF, 0xBEEF };
+    int ret = swprintf (buf, 4, L"%cz", '\0');
+    /* Expected result:
+         ret = 2, buf[0] = 0x0, buf[1] = 0x7a, buf[2] = 0x0, buf[3] = 0xbeef
+       musl libc 1.2.3:
+         ret = 2, buf[0] = 0x0, buf[1] = 0x0, buf[2] = 0x0, buf[3] = 0x0
+         Reported at <https://www.openwall.com/lists/musl/2023/03/22/9>.
+       FreeBSD 13.1, NetBSD 9.0, OpenBSD 7.2, macOS 12.5, AIX 7.2:
+         ret = 2, buf[0] = 0x0, buf[1] = 0xbeef, buf[2] = 0xbeef, buf[3] = 0xbeef
+     */
+    if (ret < 0 || buf[1] != 'z')
+      result |= 1;
+  }
+  { /* This test fails on mingw.  */
+    wchar_t buf[2];
+    int ret = swprintf (buf, 2, L"%lc", (wint_t)0);
+    /* Expected: ret = 1
+       mingw:    ret = 0
+     */
+    if (ret != 1)
+      result |= 2;
+  }
+  return result;
+}]])],
+        [gl_cv_func_swprintf_works=yes],
+        [gl_cv_func_swprintf_works=no],
+        [case "$host_os" in
+                               # Guess yes on glibc systems.
+           *-gnu* | gnu*)      gl_cv_func_swprintf_works="guessing yes";;
+                               # Guess no on musl systems.
+           *-musl* | midipix*) gl_cv_func_swprintf_works="guessing yes";;
+                               # Guess no on FreeBSD, NetBSD, OpenBSD, macOS, AIX.
+           freebsd* | midnightbsd* | netbsd* | openbsd* | darwin* | aix*)
+                               gl_cv_func_swprintf_works="guessing no";;
+                               # Guess no on native Windows.
+           mingw* | pw*)       gl_cv_func_swprintf_works="guessing no";;
+                               # If we don't know, obey --enable-cross-guesses.
+           *)                  gl_cv_func_swprintf_works="$gl_cross_guess_normal";;
+         esac
+        ])
+    ])
+])
+
+dnl Test whether the *wprintf family of functions supports the 'a' and 'A'
+dnl conversion specifier for hexadecimal output of 'long double' numbers.
+dnl (ISO C99, POSIX:2001)
+dnl Result is gl_cv_func_swprintf_directive_la.
+
+AC_DEFUN([gl_SWPRINTF_DIRECTIVE_LA],
+[
+  AC_REQUIRE([AC_PROG_CC])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+  AC_CACHE_CHECK([whether swprintf supports the 'La' and 'LA' directives],
+    [gl_cv_func_swprintf_directive_la],
+    [
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
+#include <stdio.h>
+#include <wchar.h>
+static wchar_t buf[100];
+int main ()
+{
+  int result = 0;
+  /* This catches a glibc 2.15 and Haiku 2022 bug.  */
+  if (swprintf (buf, sizeof (buf) / sizeof (wchar_t),
+                L"%La %d", 3.1416015625L, 33, 44, 55) < 0
+      || (wcscmp (buf, L"0x1.922p+1 33") != 0
+          && wcscmp (buf, L"0x3.244p+0 33") != 0
+          && wcscmp (buf, L"0x6.488p-1 33") != 0
+          && wcscmp (buf, L"0xc.91p-2 33") != 0))
+    result |= 1;
+  return result;
+}]])],
+        [gl_cv_func_swprintf_directive_la=yes],
+        [gl_cv_func_swprintf_directive_la=no],
+        [case "$host_os" in
+                                 # Guess yes on glibc >= 2.17 systems.
+           *-gnu* | gnu*)
+             AC_EGREP_CPP([Unlucky], [
+               #include <features.h>
+               #ifdef __GNU_LIBRARY__
+                #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 16) || (__GLIBC__ > 2)) && !defined __UCLIBC__
+                 Unlucky
+                #endif
+               #endif
+               ],
+               [gl_cv_func_swprintf_directive_la="guessing yes"],
+               [gl_cv_func_swprintf_directive_la="guessing no"])
+             ;;
+                                 # Guess yes on musl systems.
+           *-musl* | midipix*)   gl_cv_func_swprintf_directive_la="guessing yes";;
+                                 # Guess yes on Android.
+           linux*-android*)      gl_cv_func_swprintf_directive_la="guessing no";;
+                                 # Guess yes on native Windows.
+           mingw*)               gl_cv_func_swprintf_directive_la="guessing no";;
+                                 # If we don't know, obey --enable-cross-guesses.
+           *)                    gl_cv_func_swprintf_directive_la="$gl_cross_guess_normal";;
+         esac
+        ])
+    ])
+])
+
 dnl The results of these tests on various platforms are:
 dnl
 dnl 1 = gl_PRINTF_SIZES_C99
-dnl 2 = gl_PRINTF_LONG_DOUBLE
-dnl 3 = gl_PRINTF_INFINITE
-dnl 4 = gl_PRINTF_INFINITE_LONG_DOUBLE
-dnl 5 = gl_PRINTF_DIRECTIVE_A
-dnl 6 = gl_PRINTF_DIRECTIVE_F
-dnl 7 = gl_PRINTF_DIRECTIVE_N
-dnl 8 = gl_PRINTF_DIRECTIVE_LS
-dnl 9 = gl_PRINTF_POSITIONS
-dnl 10 = gl_PRINTF_FLAG_GROUPING
-dnl 11 = gl_PRINTF_FLAG_LEFTADJUST
-dnl 12 = gl_PRINTF_FLAG_ZERO
-dnl 13 = gl_PRINTF_PRECISION
-dnl 14 = gl_PRINTF_ENOMEM
-dnl 15 = gl_SNPRINTF_PRESENCE
-dnl 16 = gl_SNPRINTF_TRUNCATION_C99
-dnl 17 = gl_SNPRINTF_RETVAL_C99
-dnl 18 = gl_SNPRINTF_DIRECTIVE_N
-dnl 19 = gl_SNPRINTF_SIZE1
-dnl 20 = gl_VSNPRINTF_ZEROSIZE_C99
+dnl 2 = gl_PRINTF_SIZES_C23
+dnl 3 = gl_PRINTF_LONG_DOUBLE
+dnl 4 = gl_PRINTF_INFINITE
+dnl 5 = gl_PRINTF_INFINITE_LONG_DOUBLE
+dnl 6 = gl_PRINTF_DIRECTIVE_A
+dnl 7 = gl_PRINTF_DIRECTIVE_B
+dnl 8 = gl_PRINTF_DIRECTIVE_UPPERCASE_B
+dnl 9 = gl_PRINTF_DIRECTIVE_F
+dnl 10 = gl_PRINTF_DIRECTIVE_N
+dnl 11 = gl_PRINTF_DIRECTIVE_LS
+dnl 12 = gl_PRINTF_DIRECTIVE_LC
+dnl 13 = gl_PRINTF_POSITIONS
+dnl 14 = gl_PRINTF_FLAG_GROUPING
+dnl 15 = gl_PRINTF_FLAG_LEFTADJUST
+dnl 16 = gl_PRINTF_FLAG_ZERO
+dnl 17 = gl_PRINTF_PRECISION
+dnl 18 = gl_PRINTF_ENOMEM
+dnl 19 = gl_SNPRINTF_PRESENCE
+dnl 20 = gl_SNPRINTF_TRUNCATION_C99
+dnl 21 = gl_SNPRINTF_RETVAL_C99
+dnl 22 = gl_SNPRINTF_DIRECTIVE_N
+dnl 23 = gl_SNPRINTF_SIZE1
+dnl 24 = gl_VSNPRINTF_ZEROSIZE_C99
+dnl 25 = gl_SWPRINTF_WORKS
+dnl 26 = gl_SWPRINTF_DIRECTIVE_LA
 dnl
 dnl 1 = checking whether printf supports size specifiers as in C99...
-dnl 2 = checking whether printf supports 'long double' arguments...
-dnl 3 = checking whether printf supports infinite 'double' arguments...
-dnl 4 = checking whether printf supports infinite 'long double' arguments...
-dnl 5 = checking whether printf supports the 'a' and 'A' directives...
-dnl 6 = checking whether printf supports the 'F' directive...
-dnl 7 = checking whether printf supports the 'n' directive...
-dnl 8 = checking whether printf supports the 'ls' directive...
-dnl 9 = checking whether printf supports POSIX/XSI format strings with positions...
-dnl 10 = checking whether printf supports the grouping flag...
-dnl 11 = checking whether printf supports the left-adjust flag correctly...
-dnl 12 = checking whether printf supports the zero flag correctly...
-dnl 13 = checking whether printf supports large precisions...
-dnl 14 = checking whether printf survives out-of-memory conditions...
-dnl 15 = checking for snprintf...
-dnl 16 = checking whether snprintf truncates the result as in C99...
-dnl 17 = checking whether snprintf returns a byte count as in C99...
-dnl 18 = checking whether snprintf fully supports the 'n' directive...
-dnl 19 = checking whether snprintf respects a size of 1...
-dnl 20 = checking whether vsnprintf respects a zero size as in C99...
+dnl 2 = checking whether printf supports size specifiers as in C23...
+dnl 3 = checking whether printf supports 'long double' arguments...
+dnl 4 = checking whether printf supports infinite 'double' arguments...
+dnl 5 = checking whether printf supports infinite 'long double' arguments...
+dnl 6 = checking whether printf supports the 'a' and 'A' directives...
+dnl 7 = checking whether printf supports the 'b' directive...
+dnl 8 = checking whether printf supports the 'B' directive...
+dnl 9 = checking whether printf supports the 'F' directive...
+dnl 10 = checking whether printf supports the 'n' directive...
+dnl 11 = checking whether printf supports the 'ls' directive...
+dnl 12 = checking whether printf supports the 'lc' directive correctly...
+dnl 13 = checking whether printf supports POSIX/XSI format strings with positions...
+dnl 14 = checking whether printf supports the grouping flag...
+dnl 15 = checking whether printf supports the left-adjust flag correctly...
+dnl 16 = checking whether printf supports the zero flag correctly...
+dnl 17 = checking whether printf supports large precisions...
+dnl 18 = checking whether printf survives out-of-memory conditions...
+dnl 19 = checking for snprintf...
+dnl 20 = checking whether snprintf truncates the result as in C99...
+dnl 21 = checking whether snprintf returns a byte count as in C99...
+dnl 22 = checking whether snprintf fully supports the 'n' directive...
+dnl 23 = checking whether snprintf respects a size of 1...
+dnl 24 = checking whether vsnprintf respects a zero size as in C99...
+dnl 25 = checking whether swprintf works...
+dnl 26 = checking whether swprintf supports the 'La' and 'LA' directives...
 dnl
 dnl . = yes, # = no.
 dnl
-dnl                                  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20
-dnl   glibc 2.5                      .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
-dnl   glibc 2.3.6                    .  .  .  .  #  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
-dnl   FreeBSD 13.0                   .  .  .  .  #  .  .  .  .  .  .  .  .  #  .  .  .  .  .  .
-dnl   FreeBSD 5.4, 6.1               .  .  .  .  #  .  .  .  .  .  .  #  .  #  .  .  .  .  .  .
-dnl   Mac OS X 10.13.5               .  .  .  #  #  .  #  .  .  .  .  .  .  .  .  .  .  #  .  .
-dnl   Mac OS X 10.5.8                .  .  .  #  #  .  .  .  .  .  .  #  .  .  .  .  .  .  .  .
-dnl   Mac OS X 10.3.9                .  .  .  .  #  .  .  .  .  .  .  #  .  #  .  .  .  .  .  .
-dnl   OpenBSD 6.0, 6.7               .  .  .  .  #  .  .  .  .  .  .  .  .  #  .  .  .  .  .  .
-dnl   OpenBSD 3.9, 4.0               .  .  #  #  #  #  .  #  .  #  .  #  .  #  .  .  .  .  .  .
-dnl   Cygwin 1.7.0 (2009)            .  .  .  #  .  .  .  ?  .  .  .  .  .  ?  .  .  .  .  .  .
-dnl   Cygwin 1.5.25 (2008)           .  .  .  #  #  .  .  #  .  .  .  .  .  #  .  .  .  .  .  .
-dnl   Cygwin 1.5.19 (2006)           #  .  .  #  #  #  .  #  .  #  .  #  #  #  .  .  .  .  .  .
-dnl   Solaris 11.4                   .  .  #  #  #  .  .  #  .  .  .  #  .  .  .  .  .  .  .  .
-dnl   Solaris 11.3                   .  .  .  .  #  .  .  #  .  .  .  .  .  .  .  .  .  .  .  .
-dnl   Solaris 11.0                   .  .  #  #  #  .  .  #  .  .  .  #  .  .  .  .  .  .  .  .
-dnl   Solaris 10                     .  .  #  #  #  .  .  #  .  .  .  #  #  .  .  .  .  .  .  .
-dnl   Solaris 2.6 ... 9              #  .  #  #  #  #  .  #  .  .  .  #  #  .  .  .  #  .  .  .
-dnl   Solaris 2.5.1                  #  .  #  #  #  #  .  #  .  .  .  #  .  .  #  #  #  #  #  #
-dnl   AIX 7.1                        .  .  #  #  #  .  .  .  .  .  .  #  #  .  .  .  .  .  .  .
-dnl   AIX 5.2                        .  .  #  #  #  .  .  .  .  .  .  #  .  .  .  .  .  .  .  .
-dnl   AIX 4.3.2, 5.1                 #  .  #  #  #  #  .  .  .  .  .  #  .  .  .  .  #  .  .  .
-dnl   HP-UX 11.31                    .  .  .  .  #  .  .  .  .  .  .  #  .  .  .  .  #  #  .  .
-dnl   HP-UX 11.{00,11,23}            #  .  .  .  #  #  .  .  .  .  .  #  .  .  .  .  #  #  .  #
-dnl   HP-UX 10.20                    #  .  #  .  #  #  .  ?  .  .  #  #  .  .  .  .  #  #  ?  #
-dnl   IRIX 6.5                       #  .  #  #  #  #  .  #  .  .  .  #  .  .  .  .  #  .  .  .
-dnl   OSF/1 5.1                      #  .  #  #  #  #  .  .  .  .  .  #  .  .  .  .  #  .  .  #
-dnl   OSF/1 4.0d                     #  .  #  #  #  #  .  .  .  .  .  #  .  .  #  #  #  #  #  #
-dnl   NetBSD 9.0                     .  .  .  .  #  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
-dnl   NetBSD 5.0                     .  .  .  #  #  .  .  .  .  .  .  #  .  #  .  .  .  .  .  .
-dnl   NetBSD 4.0                     .  ?  ?  ?  ?  ?  .  ?  .  ?  ?  ?  ?  ?  .  .  .  ?  ?  ?
-dnl   NetBSD 3.0                     .  .  .  .  #  #  .  ?  #  #  ?  #  .  #  .  .  .  .  .  .
-dnl   Haiku                          .  .  .  #  #  #  .  #  .  .  .  .  .  ?  .  .  ?  .  .  .
-dnl   BeOS                           #  #  .  #  #  #  .  ?  #  .  ?  .  #  ?  .  .  ?  .  .  .
-dnl   Android 4.3                    .  .  #  #  #  #  #  #  .  #  .  #  .  #  .  .  .  #  .  .
-dnl   old mingw / msvcrt             #  #  #  #  #  #  .  .  #  #  .  #  #  ?  .  #  #  #  .  .
-dnl   MSVC 9                         #  #  #  #  #  #  #  .  #  #  .  #  #  ?  #  #  #  #  .  .
-dnl   mingw 2009-2011                .  #  .  #  .  .  .  .  #  #  .  .  .  ?  .  .  .  .  .  .
-dnl   mingw-w64 2011                 #  #  #  #  #  #  .  .  #  #  .  #  #  ?  .  #  #  #  .  .
+dnl                                  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
+dnl   musl libc 1.2.3                .  #  .  .  .  .  #  #  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  #  .
+dnl   glibc 2.35                     .  #  .  .  .  .  .  .  .  .  .  #  .  .  .  .  .  .  .  .  .  .  .  .  .  .
+dnl   glibc 2.5                      .  #  .  .  .  .  #  #  .  .  .  #  .  .  .  .  .  .  .  .  .  .  .  .  .  #
+dnl   glibc 2.3.6                    .  #  .  .  .  #  #  #  .  .  .  #  .  .  .  .  .  .  .  .  .  .  .  .  .  #
+dnl   FreeBSD 13.0                   .  #  .  .  .  #  #  #  .  .  .  #  .  .  .  .  .  #  .  .  .  .  .  .  #  .
+dnl   FreeBSD 5.4, 6.1               .  #  .  .  .  #  #  #  .  .  .  #  .  .  .  #  .  #  .  .  .  .  .  .  #  ?
+dnl   Mac OS X 10.13.5               .  #  .  .  #  #  #  #  .  #  .  #  .  .  .  .  .  .  .  .  .  #  .  .  #  ?
+dnl   Mac OS X 10.5.8                .  #  .  .  #  #  #  #  .  .  .  #  .  .  .  #  .  .  .  .  .  .  .  .  #  ?
+dnl   Mac OS X 10.3.9                .  #  .  .  .  #  #  #  .  .  .  #  .  .  .  #  .  #  .  .  .  .  .  .  #  ?
+dnl   OpenBSD 6.0, 6.7               .  #  .  .  .  #  #  #  .  .  .  #  .  .  .  .  .  #  .  .  .  .  .  .  #  .
+dnl   OpenBSD 3.9, 4.0               .  #  .  #  #  #  #  #  #  .  #  #  .  #  .  #  .  #  .  .  .  .  .  .  #  ?
+dnl   Cygwin 1.7.0 (2009)            .  #  .  .  #  .  #  #  .  .  ?  ?  .  .  .  .  .  ?  .  .  .  .  .  .  ?  ?
+dnl   Cygwin 1.5.25 (2008)           .  #  .  .  #  #  #  #  .  .  #  ?  .  .  .  .  .  #  .  .  .  .  .  .  ?  ?
+dnl   Cygwin 1.5.19 (2006)           #  #  .  .  #  #  #  #  #  .  #  ?  .  #  .  #  #  #  .  .  .  .  .  .  ?  ?
+dnl   Solaris 11.4                   .  #  .  #  #  #  #  #  .  .  #  #  .  .  .  #  .  .  .  .  .  .  .  .  .  ?
+dnl   Solaris 11.3                   .  #  .  .  .  #  #  #  .  .  #  #  .  .  .  .  .  .  .  .  .  .  .  .  .  ?
+dnl   Solaris 11.0                   .  #  .  #  #  #  #  #  .  .  #  #  .  .  .  #  .  .  .  .  .  .  .  .  ?  ?
+dnl   Solaris 10                     .  #  .  #  #  #  #  #  .  .  #  #  .  .  .  #  #  .  .  .  .  .  .  .  ?  ?
+dnl   Solaris 2.6 ... 9              #  #  .  #  #  #  #  #  #  .  #  #  .  .  .  #  #  .  .  .  #  .  .  .  ?  ?
+dnl   Solaris 2.5.1                  #  #  .  #  #  #  #  #  #  .  #  #  .  .  .  #  .  .  #  #  #  #  #  #  ?  ?
+dnl   AIX 7.1                        .  #  .  #  #  #  #  #  .  .  .  #  .  .  .  #  #  .  .  .  .  .  .  .  #  .
+dnl   AIX 5.2                        .  #  .  #  #  #  #  #  .  .  .  #  .  .  .  #  .  .  .  .  .  .  .  .  #  ?
+dnl   AIX 4.3.2, 5.1                 #  #  .  #  #  #  #  #  #  .  .  #  .  .  .  #  .  .  .  .  #  .  .  .  #  ?
+dnl   HP-UX 11.31                    .  #  .  .  .  #  #  #  .  .  .  ?  .  .  .  #  .  .  .  .  #  #  .  .  ?  ?
+dnl   HP-UX 11.{00,11,23}            #  #  .  .  .  #  #  #  #  .  .  ?  .  .  .  #  .  .  .  .  #  #  .  #  ?  ?
+dnl   HP-UX 10.20                    #  #  .  #  .  #  #  #  #  .  ?  ?  .  .  #  #  .  .  .  .  #  #  ?  #  ?  ?
+dnl   IRIX 6.5                       #  #  .  #  #  #  #  #  #  .  #  #  .  .  .  #  .  .  .  .  #  .  .  .  #  ?
+dnl   OSF/1 5.1                      #  #  .  #  #  #  #  #  #  .  .  ?  .  .  .  #  .  .  .  .  #  .  .  #  ?  ?
+dnl   OSF/1 4.0d                     #  #  .  #  #  #  #  #  #  .  .  ?  .  .  .  #  .  .  #  #  #  #  #  #  ?  ?
+dnl   NetBSD 9.0                     .  #  .  .  .  #  #  #  .  .  .  #  .  .  .  .  .  .  .  .  .  .  .  .  #  .
+dnl   NetBSD 5.0                     .  #  .  .  #  #  #  #  .  .  .  #  .  .  .  #  .  #  .  .  .  .  .  .  #  ?
+dnl   NetBSD 4.0                     .  #  ?  ?  ?  ?  #  #  ?  .  ?  #  .  ?  ?  ?  ?  ?  .  .  .  ?  ?  ?  #  ?
+dnl   NetBSD 3.0                     .  #  .  .  .  #  #  #  #  .  ?  #  #  #  ?  #  .  #  .  .  .  .  .  .  #  ?
+dnl   Haiku                          .  #  .  .  #  #  #  #  #  .  #  ?  .  .  .  .  .  ?  .  .  ?  .  .  .  .  #
+dnl   BeOS                           #  #  #  .  #  #  #  #  #  .  ?  ?  #  .  ?  .  #  ?  .  .  ?  .  .  .  ?  ?
+dnl   Android 4.3                    .  #  .  #  #  #  #  #  #  #  #  ?  .  #  .  #  .  #  .  .  .  #  .  .  ?  ?
+dnl   old mingw / msvcrt             #  #  #  #  #  #  #  #  #  .  .  ?  #  #  .  #  #  ?  .  #  #  #  .  .  #  ?
+dnl   MSVC 9                         #  #  #  #  #  #  #  #  #  #  .  ?  #  #  .  #  #  ?  #  #  #  #  .  .  #  ?
+dnl   mingw 2009-2011                .  #  #  .  #  .  #  #  .  .  .  ?  #  #  .  .  .  ?  .  .  .  .  .  .  #  ?
+dnl   mingw-w64 2011                 #  #  #  #  #  #  #  #  #  .  .  ?  #  #  .  #  #  ?  .  #  #  #  .  .  #  ?
diff --git a/m4/pselect.m4 b/m4/pselect.m4
new file mode 100644 (file)
index 0000000..6c3d1b8
--- /dev/null
@@ -0,0 +1,75 @@
+# pselect.m4 serial 11
+dnl Copyright (C) 2011-2023 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_PSELECT],
+[
+  AC_REQUIRE([gl_SYS_SELECT_H])
+  AC_REQUIRE([AC_C_RESTRICT])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+  AC_CHECK_FUNCS_ONCE([pselect])
+
+  if test $ac_cv_func_pselect = yes; then
+    AC_CACHE_CHECK([whether signature of pselect conforms to POSIX],
+      [gl_cv_sig_pselect],
+      [AC_LINK_IFELSE(
+         [AC_LANG_PROGRAM(
+              [[#include <sys/select.h>
+                ]],
+              [[int (*p) (int, fd_set *, fd_set *, fd_set *restrict,
+                          struct timespec const *restrict,
+                          sigset_t const *restrict) = pselect;
+                return !p;]])],
+         [gl_cv_sig_pselect=yes],
+         [gl_cv_sig_pselect=no])])
+
+    dnl On FreeBSD 8.2, pselect() doesn't always reject bad fds.
+    AC_CACHE_CHECK([whether pselect detects invalid fds],
+      [gl_cv_func_pselect_detects_ebadf],
+      [
+        AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+#include <sys/types.h>
+#include <sys/time.h>
+#if HAVE_SYS_SELECT_H
+# include <sys/select.h>
+#endif
+#include <unistd.h>
+#include <errno.h>
+]GL_MDA_DEFINES],
+[[
+  fd_set set;
+  dup2(0, 16);
+  FD_ZERO(&set);
+  FD_SET(16, &set);
+  close(16);
+  struct timespec timeout;
+  timeout.tv_sec = 0;
+  timeout.tv_nsec = 5000;
+  return pselect (17, &set, NULL, NULL, &timeout, NULL) != -1 || errno != EBADF;
+]])], [gl_cv_func_pselect_detects_ebadf=yes],
+      [gl_cv_func_pselect_detects_ebadf=no],
+          [
+           case "$host_os" in
+                             # Guess yes on Linux systems.
+            linux-* | linux) gl_cv_func_pselect_detects_ebadf="guessing yes" ;;
+                             # Guess yes on systems that emulate the Linux system calls.
+            midipix*)        gl_cv_func_pselect_detects_ebadf="guessing yes" ;;
+                             # Guess yes on glibc systems.
+            *-gnu* | gnu*)   gl_cv_func_pselect_detects_ebadf="guessing yes" ;;
+                             # If we don't know, obey --enable-cross-guesses.
+            *)               gl_cv_func_pselect_detects_ebadf="$gl_cross_guess_normal" ;;
+           esac
+          ])
+      ])
+    case $gl_cv_func_pselect_detects_ebadf in
+      *yes) ;;
+      *) REPLACE_PSELECT=1 ;;
+    esac
+  fi
+
+  if test $ac_cv_func_pselect = no || test $gl_cv_sig_pselect = no; then
+    REPLACE_PSELECT=1
+  fi
+])
index 949186d..aafd979 100644 (file)
@@ -1,5 +1,5 @@
 # pthread-thread.m4 serial 2
-dnl Copyright (C) 2019-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2019-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 62a6ca8..0d536fc 100644 (file)
@@ -1,5 +1,5 @@
 # pthread_h.m4 serial 8
-dnl Copyright (C) 2009-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index a5fbead..66b29f8 100644 (file)
@@ -1,5 +1,5 @@
-# pthread_rwlock_rdlock.m4 serial 4
-dnl Copyright (C) 2017-2021 Free Software Foundation, Inc.
+# pthread_rwlock_rdlock.m4 serial 5
+dnl Copyright (C) 2017-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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,22 +156,22 @@ main ()
        [gl_cv_pthread_rwlock_rdlock_prefer_writer=yes],
        [gl_cv_pthread_rwlock_rdlock_prefer_writer=no],
        [case "$host_os" in
-                         # Guess no on glibc systems.
-          *-gnu* | gnu*) gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no" ;;
-                         # Guess no on musl systems.
-          *-musl*)       gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no" ;;
-                         # Guess no on bionic systems.
-          *-android*)    gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no" ;;
-                         # Guess yes on native Windows with the mingw-w64 winpthreads library.
-                         # Guess no on native Windows with the gnulib windows-rwlock module.
-          mingw*)        if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then
-                           gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing yes"
-                         else
-                           gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no"
-                         fi
-                         ;;
-                         # If we don't know, obey --enable-cross-guesses.
-          *)             gl_cv_pthread_rwlock_rdlock_prefer_writer="$gl_cross_guess_normal" ;;
+                              # Guess no on glibc systems.
+          *-gnu* | gnu*)      gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no" ;;
+                              # Guess no on musl systems.
+          *-musl* | midipix*) gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no" ;;
+                              # Guess no on bionic systems.
+          *-android*)         gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no" ;;
+                              # Guess yes on native Windows with the mingw-w64 winpthreads library.
+                              # Guess no on native Windows with the gnulib windows-rwlock module.
+          mingw*)             if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then
+                                gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing yes"
+                              else
+                                gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no"
+                              fi
+                              ;;
+                              # If we don't know, obey --enable-cross-guesses.
+          *)                  gl_cv_pthread_rwlock_rdlock_prefer_writer="$gl_cross_guess_normal" ;;
          esac
        ])
      LIBS="$save_LIBS"
index ff7fa96..2779528 100644 (file)
@@ -1,5 +1,5 @@
-# pthread_sigmask.m4 serial 21
-dnl Copyright (C) 2011-2021 Free Software Foundation, Inc.
+# pthread_sigmask.m4 serial 22
+dnl Copyright (C) 2011-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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([gl_FUNC_PTHREAD_SIGMASK],
        [gl_cv_func_pthread_sigmask_macro=no])
     ])
 
-  LIB_PTHREAD_SIGMASK=
+  PTHREAD_SIGMASK_LIB=
 
   if test $gl_cv_func_pthread_sigmask_macro = yes; then
     dnl pthread_sigmask is a dummy macro.
@@ -62,7 +62,7 @@ AC_DEFUN([gl_FUNC_PTHREAD_SIGMASK],
               ])
             if test $gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD = yes; then
               dnl pthread_sigmask is available with -pthread or -lpthread.
-              LIB_PTHREAD_SIGMASK="$LIBMULTITHREAD"
+              PTHREAD_SIGMASK_LIB="$LIBMULTITHREAD"
             else
               dnl pthread_sigmask is not available at all.
               HAVE_PTHREAD_SIGMASK=0
@@ -101,6 +101,9 @@ AC_DEFUN([gl_FUNC_PTHREAD_SIGMASK],
     ])
   fi
 
+  AC_SUBST([PTHREAD_SIGMASK_LIB])
+  dnl For backward compatibility.
+  LIB_PTHREAD_SIGMASK="$PTHREAD_SIGMASK_LIB"
   AC_SUBST([LIB_PTHREAD_SIGMASK])
   dnl We don't need a variable LTLIB_PTHREAD_SIGMASK, because when
   dnl "$gl_threads_api" = posix, $LTLIBMULTITHREAD and $LIBMULTITHREAD are the
@@ -114,7 +117,7 @@ AC_DEFUN([gl_FUNC_PTHREAD_SIGMASK],
     dnl On FreeBSD 13.0, MidnightBSD 1.1, HP-UX 11.31, Solaris 9, in programs
     dnl that are not linked with -lpthread, the pthread_sigmask() function
     dnl always returns 0 and has no effect.
-    if test -z "$LIB_PTHREAD_SIGMASK"; then
+    if test -z "$PTHREAD_SIGMASK_LIB"; then
       case " $LIBS " in
         *' -pthread '*) ;;
         *' -lpthread '*) ;;
@@ -162,7 +165,7 @@ AC_DEFUN([gl_FUNC_PTHREAD_SIGMASK],
       [gl_cv_func_pthread_sigmask_return_works],
       [
         gl_save_LIBS="$LIBS"
-        LIBS="$LIBS $LIB_PTHREAD_SIGMASK"
+        LIBS="$LIBS $PTHREAD_SIGMASK_LIB"
         AC_RUN_IFELSE(
           [AC_LANG_SOURCE([[
 #include <pthread.h>
@@ -208,13 +211,14 @@ int main ()
             gl_cv_func_pthread_sigmask_unblock_works="guessing yes";;
         esac
         m4_ifdef([gl_][THREADLIB],
-          [dnl Link against $LIBMULTITHREAD, not only $LIB_PTHREAD_SIGMASK.
+          [dnl Link against $LIBMULTITHREAD, not only $PTHREAD_SIGMASK_LIB.
            dnl Otherwise we get a false positive on those platforms where
            dnl $gl_cv_func_pthread_sigmask_in_libc_works is "no".
            gl_save_LIBS=$LIBS
            LIBS="$LIBS $LIBMULTITHREAD"])
         AC_RUN_IFELSE(
           [AC_LANG_SOURCE([[
+#include <limits.h>
 #include <pthread.h>
 #include <signal.h>
 #include <stdio.h>
@@ -230,14 +234,16 @@ sigint_handler (int sig)
 int main ()
 {
   sigset_t set;
-  int pid = getpid ();
+  pid_t pid = getpid ();
   char command[80];
+  if (LONG_MAX < pid)
+    return 6;
   signal (SIGINT, sigint_handler);
   sigemptyset (&set);
   sigaddset (&set, SIGINT);
   if (!(pthread_sigmask (SIG_BLOCK, &set, NULL) == 0))
     return 1;
-  sprintf (command, "sh -c 'sleep 1; kill -%d %d' &", SIGINT, pid);
+  sprintf (command, "sh -c 'sleep 1; kill -INT %ld' &", (long) pid);
   if (!(system (command) == 0))
     return 2;
   sleep (2);
index 919984d..d37a602 100644 (file)
@@ -1,5 +1,5 @@
-# putenv.m4 serial 25
-dnl Copyright (C) 2002-2021 Free Software Foundation, Inc.
+# putenv.m4 serial 26
+dnl Copyright (C) 2002-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -38,14 +38,14 @@ AC_DEFUN([gl_FUNC_PUTENV],
        [gl_cv_func_svid_putenv=no],
        [dnl When crosscompiling, assume putenv is broken.
         case "$host_os" in
-                         # Guess yes on glibc systems.
-          *-gnu* | gnu*) gl_cv_func_svid_putenv="guessing yes" ;;
-                         # Guess yes on musl systems.
-          *-musl*)       gl_cv_func_svid_putenv="guessing yes" ;;
-                         # Guess no on native Windows.
-          mingw*)        gl_cv_func_svid_putenv="guessing no" ;;
-                         # If we don't know, obey --enable-cross-guesses.
-          *)             gl_cv_func_svid_putenv="$gl_cross_guess_normal" ;;
+                              # Guess yes on glibc systems.
+          *-gnu* | gnu*)      gl_cv_func_svid_putenv="guessing yes" ;;
+                              # Guess yes on musl systems.
+          *-musl* | midipix*) gl_cv_func_svid_putenv="guessing yes" ;;
+                              # Guess no on native Windows.
+          mingw*)             gl_cv_func_svid_putenv="guessing no" ;;
+                              # If we don't know, obey --enable-cross-guesses.
+          *)                  gl_cv_func_svid_putenv="$gl_cross_guess_normal" ;;
         esac
        ])
     ])
index be205c0..551437f 100644 (file)
@@ -1,5 +1,5 @@
 # quote.m4 serial 6
-dnl Copyright (C) 2002-2003, 2005-2006, 2009-2021 Free Software Foundation,
+dnl Copyright (C) 2002-2003, 2005-2006, 2009-2023 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
index 19067f5..15e4aa6 100644 (file)
@@ -1,5 +1,5 @@
 # quotearg.m4 serial 10
-dnl Copyright (C) 2002, 2004-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2004-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 4bf0ca9..f20c439 100644 (file)
@@ -1,5 +1,5 @@
 # raise.m4 serial 4
-dnl Copyright (C) 2011-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 452fab1..a48d829 100644 (file)
@@ -1,5 +1,5 @@
 # rawmemchr.m4 serial 3
-dnl Copyright (C) 2003, 2007-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2007-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 352788c..f1d41d2 100644 (file)
@@ -1,5 +1,5 @@
-# readlink.m4 serial 16
-dnl Copyright (C) 2003, 2007, 2009-2021 Free Software Foundation, Inc.
+# readlink.m4 serial 17
+dnl Copyright (C) 2003, 2007, 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -38,6 +38,9 @@ AC_DEFUN([gl_FUNC_READLINK],
             # Guess yes on Linux or glibc systems.
             linux-* | linux | *-gnu* | gnu*)
               gl_cv_func_readlink_trailing_slash="guessing yes" ;;
+            # Guess yes on systems that emulate the Linux system calls.
+            midipix*)
+              gl_cv_func_readlink_trailing_slash="guessing yes" ;;
             # Guess no on AIX or HP-UX.
             aix* | hpux*)
               gl_cv_func_readlink_trailing_slash="guessing no" ;;
@@ -75,6 +78,9 @@ AC_DEFUN([gl_FUNC_READLINK],
             # Guess yes on Linux or glibc systems.
             linux-* | linux | *-gnu* | gnu*)
               gl_cv_func_readlink_truncate="guessing yes" ;;
+            # Guess yes on systems that emulate the Linux system calls.
+            midipix*)
+              gl_cv_func_readlink_truncate="guessing yes" ;;
             # Guess no on AIX or HP-UX.
             aix* | hpux*)
               gl_cv_func_readlink_truncate="guessing no" ;;
index 0abc418..2605391 100644 (file)
@@ -1,5 +1,5 @@
-# realloc.m4 serial 24
-dnl Copyright (C) 2007, 2009-2021 Free Software Foundation, Inc.
+# realloc.m4 serial 27
+dnl Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -25,7 +25,7 @@ AC_DEFUN([_AC_FUNC_REALLOC_IF],
        [case "$host_os" in
           # Guess yes on platforms where we know the result.
           *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \
-          | gnu* | *-musl* | midnightbsd* \
+          | gnu* | *-musl* | midipix* | midnightbsd* \
           | hpux* | solaris* | cygwin* | mingw* | msys* )
             ac_cv_func_realloc_0_nonnull="guessing yes" ;;
           # If we don't know, obey --enable-cross-guesses.
@@ -43,8 +43,8 @@ AC_DEFUN([gl_FUNC_REALLOC_GNU],
 [
   AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
   AC_REQUIRE([gl_FUNC_REALLOC_POSIX])
-  if test $REPLACE_REALLOC = 0; then
-    _AC_FUNC_REALLOC_IF([], [REPLACE_REALLOC=1])
+  if test $REPLACE_REALLOC_FOR_REALLOC_GNU = 0; then
+    _AC_FUNC_REALLOC_IF([], [REPLACE_REALLOC_FOR_REALLOC_GNU=1])
   fi
 ])# gl_FUNC_REALLOC_GNU
 
@@ -57,7 +57,7 @@ AC_DEFUN([gl_FUNC_REALLOC_POSIX],
 [
   AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
   AC_REQUIRE([gl_FUNC_MALLOC_POSIX])
-  if test $REPLACE_MALLOC = 1; then
-    REPLACE_REALLOC=1
+  if test $REPLACE_MALLOC_FOR_MALLOC_POSIX = 1; then
+    REPLACE_REALLOC_FOR_REALLOC_POSIX=1
   fi
 ])
index 9d8a626..6a5b5ab 100644 (file)
@@ -1,5 +1,5 @@
-# reallocarray.m4 serial 3
-dnl Copyright (C) 2017-2021 Free Software Foundation, Inc.
+# reallocarray.m4 serial 5
+dnl Copyright (C) 2017-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -11,9 +11,12 @@ AC_DEFUN([gl_FUNC_REALLOCARRAY],
 
   AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
   AC_REQUIRE([gl_CHECK_MALLOC_PTRDIFF])
-  AC_CHECK_FUNCS([reallocarray])
+  gl_CHECK_FUNCS_ANDROID([reallocarray], [[#include <stdlib.h>]])
   if test "$ac_cv_func_reallocarray" = no; then
     HAVE_REALLOCARRAY=0
+    case "$gl_cv_onwards_func_reallocarray" in
+      future*) REPLACE_REALLOCARRAY=1 ;;
+    esac
   elif test "$gl_cv_malloc_ptrdiff" = no; then
     REPLACE_REALLOCARRAY=1
   fi
index 1c7e562..7acadc4 100644 (file)
@@ -1,6 +1,6 @@
-# serial 73
+# serial 74
 
-# Copyright (C) 1996-2001, 2003-2021 Free Software Foundation, Inc.
+# Copyright (C) 1996-2001, 2003-2023 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,7 @@ AC_DEFUN([gl_REGEX],
 [
   AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
   AC_ARG_WITH([included-regex],
-    [AS_HELP_STRING([--without-included-regex],
+    [AS_HELP_STRING([[--without-included-regex]],
                     [don't compile regex; this is the default on systems
                      with recent-enough versions of the GNU C Library
                      (use with caution on other systems).])])
index a840e3d..980d256 100644 (file)
@@ -1,5 +1,5 @@
 # sched_h.m4 serial 15
-dnl Copyright (C) 2008-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 72c068f..88861af 100644 (file)
@@ -1,5 +1,5 @@
-# select.m4 serial 13
-dnl Copyright (C) 2009-2021 Free Software Foundation, Inc.
+# select.m4 serial 15
+dnl Copyright (C) 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -77,6 +77,8 @@ changequote([,])dnl
            case "$host_os" in
                              # Guess yes on Linux systems.
             linux-* | linux) gl_cv_func_select_detects_ebadf="guessing yes" ;;
+                             # Guess yes on systems that emulate the Linux system calls.
+            midipix*)        gl_cv_func_select_detects_ebadf="guessing yes" ;;
                              # Guess yes on glibc systems.
             *-gnu* | gnu*)   gl_cv_func_select_detects_ebadf="guessing yes" ;;
                              # If we don't know, obey --enable-cross-guesses.
@@ -91,7 +93,7 @@ changequote([,])dnl
   fi
 
   dnl Determine the needed libraries.
-  LIB_SELECT="$LIBSOCKET"
+  SELECT_LIB="$LIBSOCKET"
   if test $REPLACE_SELECT = 1; then
     case "$host_os" in
       mingw*)
@@ -109,9 +111,12 @@ main ()
   return 0;
 }]])],
           [],
-          [LIB_SELECT="$LIB_SELECT -luser32"])
+          [SELECT_LIB="$SELECT_LIB -luser32"])
         ;;
     esac
   fi
+  AC_SUBST([SELECT_LIB])
+  dnl For backward compatibility.
+  LIB_SELECT="$LIB_SELECT"
   AC_SUBST([LIB_SELECT])
 ])
index f79a278..ef068ad 100644 (file)
@@ -1,5 +1,5 @@
-# setenv.m4 serial 30
-dnl Copyright (C) 2001-2004, 2006-2021 Free Software Foundation, Inc.
+# setenv.m4 serial 32
+dnl Copyright (C) 2001-2004, 2006-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -35,12 +35,12 @@ AC_DEFUN([gl_FUNC_SETENV],
       ]])],
       [gl_cv_func_setenv_works=yes], [gl_cv_func_setenv_works=no],
       [case "$host_os" in
-                        # Guess yes on glibc systems.
-         *-gnu* | gnu*) gl_cv_func_setenv_works="guessing yes" ;;
-                        # Guess yes on musl systems.
-         *-musl*)       gl_cv_func_setenv_works="guessing yes" ;;
-                        # If we don't know, obey --enable-cross-guesses.
-         *)             gl_cv_func_setenv_works="$gl_cross_guess_normal" ;;
+                             # Guess yes on glibc systems.
+         *-gnu* | gnu*)      gl_cv_func_setenv_works="guessing yes" ;;
+                             # Guess yes on musl systems.
+         *-musl* | midipix*) gl_cv_func_setenv_works="guessing yes" ;;
+                             # If we don't know, obey --enable-cross-guesses.
+         *)                  gl_cv_func_setenv_works="$gl_cross_guess_normal" ;;
        esac
       ])])
     case "$gl_cv_func_setenv_works" in
@@ -155,7 +155,7 @@ AC_DEFUN([gl_PREREQ_SETENV],
   AC_REQUIRE([gl_ENVIRON])
   AC_CHECK_HEADERS_ONCE([unistd.h])
   AC_CHECK_HEADERS([search.h])
-  AC_CHECK_FUNCS([tsearch])
+  gl_CHECK_FUNCS_ANDROID([tsearch], [[#include <search.h>]])
 ])
 
 # Prerequisites of lib/unsetenv.c.
index 2c958ed..1105d69 100644 (file)
@@ -1,5 +1,5 @@
-# setlocale_null.m4 serial 5
-dnl Copyright (C) 2019-2021 Free Software Foundation, Inc.
+# setlocale_null.m4 serial 8
+dnl Copyright (C) 2019-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -13,9 +13,23 @@ AC_DEFUN([gl_FUNC_SETLOCALE_NULL],
   AC_CACHE_CHECK([whether setlocale (LC_ALL, NULL) is multithread-safe],
     [gl_cv_func_setlocale_null_all_mtsafe],
     [case "$host_os" in
-       # Guess no on musl libc, macOS, FreeBSD, NetBSD, OpenBSD, AIX, Haiku, Cygwin.
-       *-musl* | darwin* | freebsd* | midnightbsd* | netbsd* | openbsd* | aix* | haiku* | cygwin*)
+       # Guess no on musl libc, macOS, FreeBSD, NetBSD, OpenBSD, AIX, Haiku.
+       *-musl* | midipix* | darwin* | freebsd* | midnightbsd* | netbsd* | openbsd* | aix* | haiku*)
          gl_cv_func_setlocale_null_all_mtsafe=no ;;
+       # Guess no on Cygwin < 3.4.6.
+       cygwin*)
+         AC_EGREP_CPP([Lucky user],
+           [
+#if defined __CYGWIN__
+ #include <cygwin/version.h>
+ #if CYGWIN_VERSION_DLL_COMBINED >= CYGWIN_VERSION_DLL_MAKE_COMBINED (3004, 6)
+  Lucky user
+ #endif
+#endif
+          ],
+          [gl_cv_func_setlocale_null_all_mtsafe=yes],
+          [gl_cv_func_setlocale_null_all_mtsafe=no])
+        ;;
        # Guess yes on glibc, HP-UX, IRIX, Solaris, native Windows.
        *-gnu* | gnu* | hpux* | irix* | solaris* | mingw*)
          gl_cv_func_setlocale_null_all_mtsafe=yes ;;
@@ -48,7 +62,7 @@ AC_DEFUN([gl_FUNC_SETLOCALE_NULL],
        openbsd* | aix*)
          gl_cv_func_setlocale_null_one_mtsafe=no ;;
        # Guess yes on glibc, musl libc, macOS, FreeBSD, NetBSD, HP-UX, IRIX, Solaris, Haiku, Cygwin, native Windows.
-       *-gnu* | gnu* | *-musl* | darwin* | freebsd* | midnightbsd* | netbsd* | hpux* | irix* | solaris* | haiku* | cygwin* | mingw*)
+       *-gnu* | gnu* | *-musl* | midipix* | darwin* | freebsd* | midnightbsd* | netbsd* | hpux* | irix* | solaris* | haiku* | cygwin* | mingw*)
          gl_cv_func_setlocale_null_one_mtsafe=yes ;;
        # If we don't know, obey --enable-cross-guesses.
        *)
@@ -74,20 +88,23 @@ AC_DEFUN([gl_FUNC_SETLOCALE_NULL],
   dnl Determine link dependencies of lib/setlocale_null.c and lib/setlocale-lock.c.
   if test $SETLOCALE_NULL_ALL_MTSAFE = 0 || test $SETLOCALE_NULL_ONE_MTSAFE = 0; then
     case "$host_os" in
-      mingw*) LIB_SETLOCALE_NULL= ;;
+      mingw*) SETLOCALE_NULL_LIB= ;;
       *)
         gl_WEAK_SYMBOLS
         case "$gl_cv_have_weak" in
-          *yes) LIB_SETLOCALE_NULL= ;;
-          *)    LIB_SETLOCALE_NULL="$LIBPTHREAD" ;;
+          *yes) SETLOCALE_NULL_LIB= ;;
+          *)    SETLOCALE_NULL_LIB="$LIBPTHREAD" ;;
         esac
         ;;
     esac
   else
-    LIB_SETLOCALE_NULL=
+    SETLOCALE_NULL_LIB=
   fi
-  dnl LIB_SETLOCALE_NULL is expected to be '-pthread' or '-lpthread' on AIX
+  dnl SETLOCALE_NULL_LIB is expected to be '-pthread' or '-lpthread' on AIX
   dnl with gcc or xlc, and empty otherwise.
+  AC_SUBST([SETLOCALE_NULL_LIB])
+  dnl For backward compatibility.
+  LIB_SETLOCALE_NULL="$SETLOCALE_NULL_LIB"
   AC_SUBST([LIB_SETLOCALE_NULL])
 ])
 
diff --git a/m4/sigaction.m4 b/m4/sigaction.m4
deleted file mode 100644 (file)
index a8c1d15..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-# sigaction.m4 serial 7
-dnl Copyright (C) 2008-2021 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-# Determine if sigaction interface is present.
-AC_DEFUN([gl_SIGACTION],
-[
-  AC_REQUIRE([gl_SIGNAL_H_DEFAULTS])
-  AC_CHECK_FUNCS_ONCE([sigaction])
-  if test $ac_cv_func_sigaction = yes; then
-    AC_CHECK_MEMBERS([struct sigaction.sa_sigaction], , ,
-                     [[#include <signal.h>]])
-    if test $ac_cv_member_struct_sigaction_sa_sigaction = no; then
-      HAVE_STRUCT_SIGACTION_SA_SIGACTION=0
-    fi
-  else
-    HAVE_SIGACTION=0
-  fi
-])
-
-# Prerequisites of the part of lib/signal.in.h and of lib/sigaction.c.
-AC_DEFUN([gl_PREREQ_SIGACTION],
-[
-  AC_REQUIRE([gl_SIGNAL_H_DEFAULTS])
-  AC_REQUIRE([AC_C_RESTRICT])
-  AC_REQUIRE([AC_TYPE_UID_T])
-  AC_REQUIRE([gl_PREREQ_SIG_HANDLER_H])
-  AC_CHECK_FUNCS_ONCE([sigaltstack siginterrupt])
-  AC_CHECK_TYPES([siginfo_t], [], [], [[
-#include <signal.h>
-  ]])
-  if test $ac_cv_type_siginfo_t = no; then
-    HAVE_SIGINFO_T=0
-  fi
-])
-
-# Prerequisites of lib/sig-handler.h.
-AC_DEFUN([gl_PREREQ_SIG_HANDLER_H], [:])
index 6dbd677..03180fc 100644 (file)
@@ -1,5 +1,5 @@
 # sigaltstack.m4 serial 15
-dnl Copyright (C) 2002-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2023 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
index 8b93880..cdd6812 100644 (file)
@@ -1,5 +1,5 @@
 # signal_h.m4 serial 22
-dnl Copyright (C) 2007-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index bfd76b7..81cc91a 100644 (file)
@@ -1,5 +1,5 @@
 # signalblocking.m4 serial 17
-dnl Copyright (C) 2001-2002, 2006-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-2002, 2006-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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/m4/sigsegv.m4 b/m4/sigsegv.m4
new file mode 100644 (file)
index 0000000..b576bb0
--- /dev/null
@@ -0,0 +1,20 @@
+# sigsegv.m4 serial 2
+dnl Copyright (C) 2021-2023 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+
+AC_DEFUN_ONCE([gl_SIGSEGV],
+[
+  AC_ARG_WITH([libsigsegv],
+    [AS_HELP_STRING([[--with-libsigsegv]],
+       [use the GNU libsigsegv library, when present, instead of the gnulib module 'sigsegv'])])
+  if test "$with_libsigsegv" = yes; then
+    gl_LIBSIGSEGV
+    gl_sigsegv_uses_libsigsegv="$gl_cv_lib_sigsegv"
+  else
+    gl_sigsegv_uses_libsigsegv=no
+  fi
+])
index 1d41ce9..0763366 100644 (file)
@@ -1,5 +1,5 @@
 # size_max.m4 serial 12
-dnl Copyright (C) 2003, 2005-2006, 2008-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2005-2006, 2008-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 49a2dcb..269b73b 100644 (file)
@@ -1,5 +1,5 @@
-# sleep.m4 serial 11
-dnl Copyright (C) 2007-2021 Free Software Foundation, Inc.
+# sleep.m4 serial 12
+dnl Copyright (C) 2007-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -50,6 +50,8 @@ handle_alarm (int sig)
          *-gnu* | gnu*) gl_cv_func_sleep_works="guessing yes" ;;
                         # Guess yes on musl systems.
          *-musl*)       gl_cv_func_sleep_works="guessing yes" ;;
+                        # Guess yes on systems that emulate the Linux system calls.
+         midipix*)      gl_cv_func_sleep_works="guessing yes" ;;
                         # Guess no on native Windows.
          mingw*)        gl_cv_func_sleep_works="guessing no" ;;
                         # If we don't know, obey --enable-cross-guesses.
index 8520994..4b5fbdb 100644 (file)
@@ -1,5 +1,5 @@
 # snprintf.m4 serial 7
-dnl Copyright (C) 2002-2004, 2007-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2004, 2007-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 0f8a082..a556af1 100644 (file)
@@ -1,5 +1,5 @@
 # socketlib.m4 serial 3
-dnl Copyright (C) 2008-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 02b43b6..ed9cb87 100644 (file)
@@ -1,5 +1,5 @@
 # sockets.m4 serial 7
-dnl Copyright (C) 2008-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index eca1d1b..1c63a85 100644 (file)
@@ -1,5 +1,5 @@
 # socklen.m4 serial 11
-dnl Copyright (C) 2005-2007, 2009-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2005-2007, 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 17e14c7..6c6dc2f 100644 (file)
@@ -1,5 +1,5 @@
 # sockpfaf.m4 serial 10
-dnl Copyright (C) 2004, 2006, 2009-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2004, 2006, 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index f0ed509..1c12c33 100644 (file)
@@ -1,5 +1,5 @@
 # ssize_t.m4 serial 5 (gettext-0.18.2)
-dnl Copyright (C) 2001-2003, 2006, 2010-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-2003, 2006, 2010-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 9328725..7378d68 100644 (file)
@@ -1,5 +1,5 @@
-# stack-direction.m4 serial 7
-dnl Copyright (C) 2002-2021 Free Software Foundation, Inc.
+# stack-direction.m4 serial 11
+dnl Copyright (C) 2002-2023 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
@@ -18,42 +18,62 @@ AC_DEFUN([SV_STACK_DIRECTION],
       a29k | \
       aarch64* | \
       alpha* | \
-      arc | \
+      arc | arceb | arc32 | arc64 | \
       arm* | strongarm* | xscale* | \
       avr | avr32 | \
       bfin | \
       c1 | c2 | c32 | c34 | c38 | \
       clipper | \
+      cr16 | \
       cris | \
+      csky | \
       d30v | \
+      epiphany | \
       elxsi | \
       fr30 | \
+      frv | \
+      ft32 | \
       h8300 | \
       i?86 | x86_64 | \
       i860 | \
       ia64 | \
+      iq2000 | \
+      lm32 | \
+      loongarch* | \
+      m32c | \
       m32r | \
       m68* | \
       m88k | \
       mcore | \
-      microblaze | \
+      microblaze* | \
       mips* | \
       mmix | \
       mn10200 | \
       mn10300 | \
-      nios2 | \
+      moxie | \
+      msp430 | \
       nds32* | \
+      nios2 | nios2eb | nios2el | \
       ns32k | \
+      nvptx | \
+      or1k | \
       pdp11 | \
       pj* | \
       powerpc* | rs6000 | \
+      pru | \
       riscv* | \
+      rl78 | \
       romp | \
+      rx | \
       s390* | \
       sh* | \
       sparc* | \
+      tic6x | \
+      tilegx | \
+      tilepro | \
       v850 | \
       vax | \
+      visium | \
       xtensa)
         sv_cv_stack_direction=-1 ;;
       c4x | \
@@ -78,7 +98,7 @@ find_stack_direction (int *addr, int depth)
   return dir + dummy;
 }
 int
-main (int argc, char *argv[])
+main (int argc, char *argv[[]])
 {
   printf ("%d\n", find_stack_direction (NULL, argc + 20));
   return 0;
index df1c2a7..40993d5 100644 (file)
@@ -1,6 +1,6 @@
 # Checks for stat-related time functions.
 
-# Copyright (C) 1998-1999, 2001, 2003, 2005-2007, 2009-2021 Free Software
+# Copyright (C) 1998-1999, 2001, 2003, 2005-2007, 2009-2023 Free Software
 # Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
index 9bcdb72..6d1628c 100644 (file)
@@ -1,6 +1,6 @@
-# serial 18
+# serial 19
 
-# Copyright (C) 2009-2021 Free Software Foundation, Inc.
+# Copyright (C) 2009-2023 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -45,6 +45,8 @@ AC_DEFUN([gl_FUNC_STAT],
            [case "$host_os" in
                                # Guess yes on Linux systems.
               linux-* | linux) gl_cv_func_stat_file_slash="guessing yes" ;;
+                               # Guess yes on systems that emulate the Linux system calls.
+              midipix*)        gl_cv_func_stat_file_slash="guessing yes" ;;
                                # Guess yes on glibc systems.
               *-gnu* | gnu*)   gl_cv_func_stat_file_slash="guessing yes" ;;
                                # If we don't know, obey --enable-cross-guesses.
index e22d7f7..1a236d6 100644 (file)
@@ -1,20 +1,28 @@
-# Check for stdalign.h that conforms to C11.
+# Check for alignas and alignof that conform to C23.
 
-dnl Copyright 2011-2021 Free Software Foundation, Inc.
+dnl Copyright 2011-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 
+dnl Written by Paul Eggert and Bruno Haible.
+
 # Prepare for substituting <stdalign.h> if it is not supported.
 
-AC_DEFUN([gl_STDALIGN_H],
+AC_DEFUN([gl_ALIGNASOF],
 [
-  AC_CACHE_CHECK([for working stdalign.h],
+  AC_CACHE_CHECK([for alignas and alignof],
     [gl_cv_header_working_stdalign_h],
-    [AC_COMPILE_IFELSE(
+    [gl_save_CFLAGS=$CFLAGS
+     for gl_working in "yes, keywords" "yes, <stdalign.h> macros"; do
+      AS_CASE([$gl_working],
+        [*stdalign.h*], [CFLAGS="$gl_save_CFLAGS -DINCLUDE_STDALIGN_H"])
+      AC_COMPILE_IFELSE(
        [AC_LANG_PROGRAM(
           [[#include <stdint.h>
-            #include <stdalign.h>
+            #ifdef INCLUDE_STDALIGN_H
+             #include <stdalign.h>
+            #endif
             #include <stddef.h>
 
             /* Test that alignof yields a result consistent with offsetof.
@@ -30,7 +38,7 @@ AC_DEFUN([gl_STDALIGN_H],
             char test_long[ao (long int) % _Alignof (long int) == 0 ? 1 : -1];
             char test_alignof[alignof (double) == _Alignof (double) ? 1 : -1];
 
-            /* Test _Alignas only on platforms where gnulib can help.  */
+            /* Test alignas only on platforms where gnulib can help.  */
             #if \
                 ((defined __cplusplus && 201103 <= __cplusplus) \
                  || (__TINYC__ && defined __attribute__) \
@@ -45,15 +53,148 @@ AC_DEFUN([gl_STDALIGN_H],
                                 ? 1 : -1];
             #endif
           ]])],
-       [gl_cv_header_working_stdalign_h=yes],
-       [gl_cv_header_working_stdalign_h=no])])
+       [gl_cv_header_working_stdalign_h=$gl_working],
+       [gl_cv_header_working_stdalign_h=no])
+
+      CFLAGS=$gl_save_CFLAGS
+      test "$gl_cv_header_working_stdalign_h" != no && break
+     done])
+
+  AS_CASE([$gl_cv_header_working_stdalign_h],
+    [yes*keyword*],
+      [AC_DEFINE([HAVE_C_ALIGNASOF], [1],
+         [Define to 1 if the alignas and alignof keywords work.])])
+
+  dnl The "zz" puts this toward config.h's end, to avoid potential
+  dnl collisions with other definitions.
+  AH_VERBATIM([zzalignas],
+[#if !defined HAVE_C_ALIGNASOF && __cplusplus < 201103 && !defined alignof
+# if HAVE_STDALIGN_H
+#  include <stdalign.h>
+# endif
+
+/* ISO C23 alignas and alignof for platforms that lack it.
+
+   References:
+   ISO C23 (latest free draft
+   <http://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.pdf>)
+   sections 6.5.3.4, 6.7.5, 7.15.
+   C++11 (latest free draft
+   <http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf>)
+   section 18.10. */
+
+/* alignof (TYPE), also known as _Alignof (TYPE), yields the alignment
+   requirement of a structure member (i.e., slot or field) that is of
+   type TYPE, as an integer constant expression.
+
+   This differs from GCC's and clang's __alignof__ operator, which can
+   yield a better-performing alignment for an object of that type.  For
+   example, on x86 with GCC and on Linux/x86 with clang,
+   __alignof__ (double) and __alignof__ (long long) are 8, whereas
+   alignof (double) and alignof (long long) are 4 unless the option
+   '-malign-double' is used.
+
+   The result cannot be used as a value for an 'enum' constant, if you
+   want to be portable to HP-UX 10.20 cc and AIX 3.2.5 xlc.  */
+
+/* GCC releases before GCC 4.9 had a bug in _Alignof.  See GCC bug 52023
+   <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023>.
+   clang versions < 8.0.0 have the same bug.  */
+#  if (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 \
+       || (defined __GNUC__ && __GNUC__ < 4 + (__GNUC_MINOR__ < 9) \
+           && !defined __clang__) \
+       || (defined __clang__ && __clang_major__ < 8))
+#   undef/**/_Alignof
+#   ifdef __cplusplus
+#    if (201103 <= __cplusplus || defined _MSC_VER)
+#     define _Alignof(type) alignof (type)
+#    else
+      template <class __t> struct __alignof_helper { char __a; __t __b; };
+#     define _Alignof(type) offsetof (__alignof_helper<type>, __b)
+#     define _GL_STDALIGN_NEEDS_STDDEF 1
+#    endif
+#   else
+#    if (defined __GNUC__ && 4 <= __GNUC__) || defined __clang__
+#     define _Alignof(type) __builtin_offsetof (struct { char __a; type __b; }, __b)
+#    else
+#     define _Alignof(type) offsetof (struct { char __a; type __b; }, __b)
+#     define _GL_STDALIGN_NEEDS_STDDEF 1
+#    endif
+#   endif
+#  endif
+#  if ! (defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER))
+#   undef/**/alignof
+#   define alignof _Alignof
+#  endif
+
+/* alignas (A), also known as _Alignas (A), aligns a variable or type
+   to the alignment A, where A is an integer constant expression.  For
+   example:
 
-  if test $gl_cv_header_working_stdalign_h = yes; then
-    STDALIGN_H=''
+      int alignas (8) foo;
+      struct s { int a; int alignas (8) bar; };
+
+   aligns the address of FOO and the offset of BAR to be multiples of 8.
+
+   A should be a power of two that is at least the type's alignment
+   and at most the implementation's alignment limit.  This limit is
+   2**28 on typical GNUish hosts, and 2**13 on MSVC.  To be portable
+   to MSVC through at least version 10.0, A should be an integer
+   constant, as MSVC does not support expressions such as 1 << 3.
+   To be portable to Sun C 5.11, do not align auto variables to
+   anything stricter than their default alignment.
+
+   The following C23 requirements are not supported here:
+
+     - If A is zero, alignas has no effect.
+     - alignas can be used multiple times; the strictest one wins.
+     - alignas (TYPE) is equivalent to alignas (alignof (TYPE)).
+
+   */
+# if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112
+#  if defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER)
+#   define _Alignas(a) alignas (a)
+#  elif (!defined __attribute__ \
+         && ((defined __APPLE__ && defined __MACH__ \
+              ? 4 < __GNUC__ + (1 <= __GNUC_MINOR__) \
+              : __GNUC__ && !defined __ibmxl__) \
+             || (4 <= __clang_major__) \
+             || (__ia64 && (61200 <= __HP_cc || 61200 <= __HP_aCC)) \
+             || __ICC || 0x590 <= __SUNPRO_C || 0x0600 <= __xlC__))
+#   define _Alignas(a) __attribute__ ((__aligned__ (a)))
+#  elif 1300 <= _MSC_VER
+#   define _Alignas(a) __declspec (align (a))
+#  endif
+# endif
+# if !HAVE_STDALIGN_H
+#  if ((defined _Alignas \
+        && !(defined __cplusplus \
+             && (201103 <= __cplusplus || defined _MSC_VER))) \
+       || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__))
+#   define alignas _Alignas
+#  endif
+# endif
+
+# if _GL_STDALIGN_NEEDS_STDDEF
+#  include <stddef.h>
+# endif
+#endif])
+])
+
+AC_DEFUN([gl_STDALIGN_H],
+[
+  AC_REQUIRE([gl_ALIGNASOF])
+  if test "$gl_cv_header_working_stdalign_h" = no; then
+    GL_GENERATE_STDALIGN_H=true
   else
-    STDALIGN_H='stdalign.h'
+    GL_GENERATE_STDALIGN_H=false
   fi
 
-  AC_SUBST([STDALIGN_H])
-  AM_CONDITIONAL([GL_GENERATE_STDALIGN_H], [test -n "$STDALIGN_H"])
+  gl_CHECK_NEXT_HEADERS([stdalign.h])
+  if test $ac_cv_header_stdalign_h = yes; then
+    HAVE_STDALIGN_H=1
+  else
+    HAVE_STDALIGN_H=0
+  fi
+  AC_SUBST([HAVE_STDALIGN_H])
 ])
index 0b5fb63..94787cc 100644 (file)
@@ -1,5 +1,5 @@
-# stdarg.m4 serial 7
-dnl Copyright (C) 2006, 2008-2021 Free Software Foundation, Inc.
+# stdarg.m4 serial 8
+dnl Copyright (C) 2006, 2008-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -9,7 +9,7 @@ dnl Provide a working va_copy in combination with <stdarg.h>.
 
 AC_DEFUN([gl_STDARG_H],
 [
-  STDARG_H=''
+  GL_GENERATE_STDARG_H=false
   NEXT_STDARG_H='<stdarg.h>'
   AC_CACHE_CHECK([for va_copy],
     [gl_cv_func_va_copy],
@@ -40,7 +40,7 @@ void (*func) (va_list, va_list) = va_copy;
       ], [gl_aixcc=yes], [gl_aixcc=no])
     if test $gl_aixcc = yes; then
       dnl Provide a substitute <stdarg.h> file.
-      STDARG_H=stdarg.h
+      GL_GENERATE_STDARG_H=true
       gl_NEXT_HEADERS([stdarg.h])
       dnl Fallback for the case when <stdarg.h> contains only macro definitions.
       if test "$gl_cv_next_stdarg_h" = '""'; then
@@ -72,7 +72,5 @@ error, bail out
       fi
     fi
   fi
-  AC_SUBST([STDARG_H])
-  AM_CONDITIONAL([GL_GENERATE_STDARG_H], [test -n "$STDARG_H"])
   AC_SUBST([NEXT_STDARG_H])
 ])
diff --git a/m4/stdbool.m4 b/m4/stdbool.m4
deleted file mode 100644 (file)
index 3169779..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-# Check for stdbool.h that conforms to C99.
-
-dnl Copyright (C) 2002-2006, 2009-2021 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-#serial 8
-
-# Prepare for substituting <stdbool.h> if it is not supported.
-
-AC_DEFUN([AM_STDBOOL_H],
-[
-  AC_REQUIRE([AC_CHECK_HEADER_STDBOOL])
-  AC_REQUIRE([AC_CANONICAL_HOST])
-
-  dnl On some platforms, <stdbool.h> does not exist or does not conform to C99.
-  dnl On Solaris 10 with CC=cc CXX=CC, <stdbool.h> exists but is not usable
-  dnl in C++ mode (and no <cstdbool> exists). In this case, we use our
-  dnl replacement, also in C mode (for binary compatibility between C and C++).
-  if test "$ac_cv_header_stdbool_h" = yes; then
-    case "$host_os" in
-      solaris*)
-        if test -z "$GCC"; then
-          STDBOOL_H='stdbool.h'
-        else
-          STDBOOL_H=''
-        fi
-        ;;
-      *)
-        STDBOOL_H=''
-        ;;
-    esac
-  else
-    STDBOOL_H='stdbool.h'
-  fi
-  AC_SUBST([STDBOOL_H])
-  AM_CONDITIONAL([GL_GENERATE_STDBOOL_H], [test -n "$STDBOOL_H"])
-
-  if test "$ac_cv_type__Bool" = yes; then
-    HAVE__BOOL=1
-  else
-    HAVE__BOOL=0
-  fi
-  AC_SUBST([HAVE__BOOL])
-])
-
-# AM_STDBOOL_H will be renamed to gl_STDBOOL_H in the future.
-AC_DEFUN([gl_STDBOOL_H], [AM_STDBOOL_H])
-
-# This version of the macro is needed in autoconf <= 2.68.
-
-AC_DEFUN([AC_CHECK_HEADER_STDBOOL],
-  [AC_CACHE_CHECK([for stdbool.h that conforms to C99],
-     [ac_cv_header_stdbool_h],
-     [AC_COMPILE_IFELSE(
-        [AC_LANG_PROGRAM(
-           [[
-             #include <stdbool.h>
-
-             #ifdef __cplusplus
-              typedef bool Bool;
-             #else
-              typedef _Bool Bool;
-              #ifndef bool
-               "error: bool is not defined"
-              #endif
-              #ifndef false
-               "error: false is not defined"
-              #endif
-              #if false
-               "error: false is not 0"
-              #endif
-              #ifndef true
-               "error: true is not defined"
-              #endif
-              #if true != 1
-               "error: true is not 1"
-              #endif
-             #endif
-
-             #ifndef __bool_true_false_are_defined
-              "error: __bool_true_false_are_defined is not defined"
-             #endif
-
-             struct s { Bool s: 1; Bool t; bool u: 1; bool v; } s;
-
-             char a[true == 1 ? 1 : -1];
-             char b[false == 0 ? 1 : -1];
-             char c[__bool_true_false_are_defined == 1 ? 1 : -1];
-             char d[(bool) 0.5 == true ? 1 : -1];
-             /* See body of main program for 'e'.  */
-             char f[(Bool) 0.0 == false ? 1 : -1];
-             char g[true];
-             char h[sizeof (Bool)];
-             char i[sizeof s.t];
-             enum { j = false, k = true, l = false * true, m = true * 256 };
-             /* The following fails for
-                HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */
-             Bool n[m];
-             char o[sizeof n == m * sizeof n[0] ? 1 : -1];
-             char p[-1 - (Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1];
-             /* Catch a bug in an HP-UX C compiler.  See
-                https://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
-                https://lists.gnu.org/r/bug-coreutils/2005-11/msg00161.html
-              */
-             Bool q = true;
-             Bool *pq = &q;
-             bool *qq = &q;
-           ]],
-           [[
-             bool e = &s;
-             *pq |= q; *pq |= ! q;
-             *qq |= q; *qq |= ! q;
-             /* Refer to every declared value, to avoid compiler optimizations.  */
-             return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l
-                     + !m + !n + !o + !p + !q + !pq + !qq);
-           ]])],
-        [ac_cv_header_stdbool_h=yes],
-        [ac_cv_header_stdbool_h=no])])
-   AC_CHECK_TYPES([_Bool])
-])
index 1303d2e..aa01221 100644 (file)
@@ -1,5 +1,5 @@
-# stddef_h.m4 serial 11
-dnl Copyright (C) 2009-2021 Free Software Foundation, Inc.
+# stddef_h.m4 serial 14
+dnl Copyright (C) 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -14,7 +14,7 @@ AC_DEFUN_ONCE([gl_STDDEF_H],
   dnl Persuade OpenBSD <stddef.h> to declare max_align_t.
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
 
-  STDDEF_H=
+  GL_GENERATE_STDDEF_H=false
 
   dnl Test whether the type max_align_t exists and whether its alignment
   dnl "is as great as is supported by the implementation in all contexts".
@@ -22,7 +22,14 @@ AC_DEFUN_ONCE([gl_STDDEF_H],
     [gl_cv_type_max_align_t],
     [AC_COMPILE_IFELSE(
        [AC_LANG_PROGRAM(
-          [[#include <stddef.h>
+          [[/* On FreeBSD 12.0/x86, max_align_t defined by <stddef.h> has
+               the correct alignment with the default (wrong) definition of
+               _Alignof, but a wrong alignment as soon as we activate an
+               ISO C compliant _Alignof definition.  */
+            #if ((defined __GNUC__ && 4 <= __GNUC__) || defined __clang__) && !defined __cplusplus
+             #define _Alignof(type) __builtin_offsetof (struct { char __a; type __b; }, __b)
+            #endif
+            #include <stddef.h>
             unsigned int s = sizeof (max_align_t);
             #if defined __GNUC__ || defined __clang__ || defined __IBM__ALIGNOF__
             int check1[2 * (__alignof__ (double) <= __alignof__ (max_align_t)) - 1];
@@ -41,12 +48,12 @@ AC_DEFUN_ONCE([gl_STDDEF_H],
     ])
   if test $gl_cv_type_max_align_t = no; then
     HAVE_MAX_ALIGN_T=0
-    STDDEF_H=stddef.h
+    GL_GENERATE_STDDEF_H=true
   fi
 
   if test $gt_cv_c_wchar_t = no; then
     HAVE_WCHAR_T=0
-    STDDEF_H=stddef.h
+    GL_GENERATE_STDDEF_H=true
   fi
 
   AC_CACHE_CHECK([whether NULL can be used in arbitrary expressions],
@@ -58,12 +65,25 @@ AC_DEFUN_ONCE([gl_STDDEF_H],
       [gl_cv_decl_null_works=no])])
   if test $gl_cv_decl_null_works = no; then
     REPLACE_NULL=1
-    STDDEF_H=stddef.h
+    GL_GENERATE_STDDEF_H=true
+  fi
+
+  AC_CACHE_CHECK([for unreachable],
+    [gl_cv_func_unreachable],
+    [AC_LINK_IFELSE(
+       [AC_LANG_PROGRAM(
+          [[#include <stddef.h>
+          ]],
+          [[unreachable ();
+          ]])],
+       [gl_cv_func_unreachable=yes],
+       [gl_cv_func_unreachable=no])
+    ])
+  if test $gl_cv_func_unreachable = no; then
+    GL_GENERATE_STDDEF_H=true
   fi
 
-  AC_SUBST([STDDEF_H])
-  AM_CONDITIONAL([GL_GENERATE_STDDEF_H], [test -n "$STDDEF_H"])
-  if test -n "$STDDEF_H"; then
+  if $GL_GENERATE_STDDEF_H; then
     gl_NEXT_HEADERS([stddef.h])
   fi
 ])
index 2eb1652..d6961b0 100644 (file)
@@ -1,5 +1,5 @@
-# stdint.m4 serial 60
-dnl Copyright (C) 2001-2021 Free Software Foundation, Inc.
+# stdint.m4 serial 61
+dnl Copyright (C) 2001-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -296,7 +296,7 @@ static const char *macro_values[] =
   HAVE_C99_STDINT_H=0
   HAVE_SYS_BITYPES_H=0
   HAVE_SYS_INTTYPES_H=0
-  STDINT_H=stdint.h
+  GL_GENERATE_STDINT_H=true
   case "$gl_cv_header_working_stdint_h" in
     *yes)
       HAVE_C99_STDINT_H=1
@@ -341,7 +341,7 @@ int32_t i32 = INT32_C (0x7fffffff);
               ]])],
            [gl_cv_header_stdint_width=yes])])
       if test "$gl_cv_header_stdint_width" = yes; then
-        STDINT_H=
+        GL_GENERATE_STDINT_H=false
       fi
       ;;
     *)
@@ -364,8 +364,6 @@ int32_t i32 = INT32_C (0x7fffffff);
   AC_SUBST([HAVE_C99_STDINT_H])
   AC_SUBST([HAVE_SYS_BITYPES_H])
   AC_SUBST([HAVE_SYS_INTTYPES_H])
-  AC_SUBST([STDINT_H])
-  AM_CONDITIONAL([GL_GENERATE_STDINT_H], [test -n "$STDINT_H"])
 ])
 
 dnl gl_STDINT_BITSIZEOF(TYPES, INCLUDES)
index 18aa50a..70349f6 100644 (file)
@@ -1,5 +1,5 @@
 # stdint_h.m4 serial 9
-dnl Copyright (C) 1997-2004, 2006, 2008-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 1997-2004, 2006, 2008-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index e704383..dbfa0d5 100644 (file)
@@ -1,12 +1,22 @@
-# stdio_h.m4 serial 56
-dnl Copyright (C) 2007-2021 Free Software Foundation, Inc.
+# stdio_h.m4 serial 63
+dnl Copyright (C) 2007-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 
-AC_DEFUN_ONCE([gl_STDIO_H],
+AC_DEFUN([gl_STDIO_H_EARLY],
 [
-  AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+  dnl Defining __USE_MINGW_ANSI_STDIO to 1 must be done early, because
+  dnl the results of several configure tests depend on it: The tests
+  dnl   - checking whether snprintf returns a byte count as in C99...
+  dnl   - checking whether snprintf truncates the result as in C99...
+  dnl   - checking whether printf supports the 'F' directive...
+  dnl   - checking whether printf supports the grouping flag...
+  dnl   - checking whether printf supports the zero flag correctly...
+  dnl   - checking whether printf supports infinite 'double' arguments...
+  dnl   - checking whether printf supports large precisions...
+  dnl report 'yes' if __USE_MINGW_ANSI_STDIO is 1 but 'no' if
+  dnl __USE_MINGW_ANSI_STDIO is not set.
   AH_VERBATIM([MINGW_ANSI_STDIO],
 [/* Use GNU style printf and scanf.  */
 #ifndef __USE_MINGW_ANSI_STDIO
@@ -14,6 +24,11 @@ AC_DEFUN_ONCE([gl_STDIO_H],
 #endif
 ])
   AC_DEFINE([__USE_MINGW_ANSI_STDIO])
+])
+
+AC_DEFUN_ONCE([gl_STDIO_H],
+[
+  AC_REQUIRE([gl_STDIO_H_DEFAULTS])
   gl_NEXT_HEADERS([stdio.h])
 
   dnl Determine whether __USE_MINGW_ANSI_STDIO makes printf and
@@ -40,41 +55,35 @@ AC_DEFUN_ONCE([gl_STDIO_H],
        attribute "__gnu_printf__" instead of "__printf__"])
   fi
 
-  dnl This ifdef is necessary to avoid an error "missing file lib/stdio-read.c"
-  dnl "expected source file, required through AC_LIBSOURCES, not found". It is
-  dnl also an optimization, to avoid performing a configure check whose result
-  dnl is not used. But it does not make the test of GNULIB_STDIO_H_NONBLOCKING
-  dnl or GNULIB_NONBLOCKING redundant.
+  dnl For defining _PRINTF_NAN_LEN_MAX.
+  gl_MUSL_LIBC
+
+  dnl This ifdef is an optimization, to avoid performing a configure check whose
+  dnl result is not used. But it does not make the test of
+  dnl GNULIB_STDIO_H_NONBLOCKING or GNULIB_NONBLOCKING redundant.
   m4_ifdef([gl_NONBLOCKING_IO], [
     gl_NONBLOCKING_IO
     if test $gl_cv_have_nonblocking != yes; then
       REPLACE_STDIO_READ_FUNCS=1
-      AC_LIBOBJ([stdio-read])
     fi
   ])
 
-  dnl This ifdef is necessary to avoid an error "missing file lib/stdio-write.c"
-  dnl "expected source file, required through AC_LIBSOURCES, not found". It is
-  dnl also an optimization, to avoid performing a configure check whose result
-  dnl is not used. But it does not make the test of GNULIB_STDIO_H_SIGPIPE or
-  dnl GNULIB_SIGPIPE redundant.
+  dnl This ifdef is an optimization, to avoid performing a configure check whose
+  dnl result is not used. But it does not make the test of
+  dnl GNULIB_STDIO_H_SIGPIPE or GNULIB_SIGPIPE redundant.
   m4_ifdef([gl_SIGNAL_SIGPIPE], [
     gl_SIGNAL_SIGPIPE
     if test $gl_cv_header_signal_h_SIGPIPE != yes; then
       REPLACE_STDIO_WRITE_FUNCS=1
-      AC_LIBOBJ([stdio-write])
     fi
   ])
-  dnl This ifdef is necessary to avoid an error "missing file lib/stdio-write.c"
-  dnl "expected source file, required through AC_LIBSOURCES, not found". It is
-  dnl also an optimization, to avoid performing a configure check whose result
-  dnl is not used. But it does not make the test of GNULIB_STDIO_H_NONBLOCKING
-  dnl or GNULIB_NONBLOCKING redundant.
+  dnl This ifdef is an optimization, to avoid performing a configure check whose
+  dnl result is not used. But it does not make the test of
+  dnl GNULIB_STDIO_H_NONBLOCKING or GNULIB_NONBLOCKING redundant.
   m4_ifdef([gl_NONBLOCKING_IO], [
     gl_NONBLOCKING_IO
     if test $gl_cv_have_nonblocking != yes; then
       REPLACE_STDIO_WRITE_FUNCS=1
-      AC_LIBOBJ([stdio-write])
     fi
   ])
 
@@ -91,6 +100,16 @@ AC_DEFUN_ONCE([gl_STDIO_H],
   if test $ac_cv_have_decl_fcloseall = no; then
     HAVE_DECL_FCLOSEALL=0
   fi
+
+  AC_CHECK_DECLS_ONCE([getw])
+  if test $ac_cv_have_decl_getw = no; then
+    HAVE_DECL_GETW=0
+  fi
+
+  AC_CHECK_DECLS_ONCE([putw])
+  if test $ac_cv_have_decl_putw = no; then
+    HAVE_DECL_PUTW=0
+  fi
 ])
 
 # gl_STDIO_MODULE_INDICATOR([modulename])
@@ -119,6 +138,7 @@ AC_DEFUN([gl_STDIO_H_REQUIRE_DEFAULTS],
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FGETC])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FGETS])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FOPEN])
+    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FOPEN_GNU])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FPRINTF])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FPRINTF_POSIX])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FPURGE])
@@ -186,7 +206,9 @@ AC_DEFUN([gl_STDIO_H_DEFAULTS],
   HAVE_DECL_FTELLO=1;            AC_SUBST([HAVE_DECL_FTELLO])
   HAVE_DECL_GETDELIM=1;          AC_SUBST([HAVE_DECL_GETDELIM])
   HAVE_DECL_GETLINE=1;           AC_SUBST([HAVE_DECL_GETLINE])
+  HAVE_DECL_GETW=1;              AC_SUBST([HAVE_DECL_GETW])
   HAVE_DECL_OBSTACK_PRINTF=1;    AC_SUBST([HAVE_DECL_OBSTACK_PRINTF])
+  HAVE_DECL_PUTW=1;              AC_SUBST([HAVE_DECL_PUTW])
   HAVE_DECL_SNPRINTF=1;          AC_SUBST([HAVE_DECL_SNPRINTF])
   HAVE_DECL_VSNPRINTF=1;         AC_SUBST([HAVE_DECL_VSNPRINTF])
   HAVE_DPRINTF=1;                AC_SUBST([HAVE_DPRINTF])
@@ -202,6 +224,7 @@ AC_DEFUN([gl_STDIO_H_DEFAULTS],
   REPLACE_FDOPEN=0;              AC_SUBST([REPLACE_FDOPEN])
   REPLACE_FFLUSH=0;              AC_SUBST([REPLACE_FFLUSH])
   REPLACE_FOPEN=0;               AC_SUBST([REPLACE_FOPEN])
+  REPLACE_FOPEN_FOR_FOPEN_GNU=0; AC_SUBST([REPLACE_FOPEN_FOR_FOPEN_GNU])
   REPLACE_FPRINTF=0;             AC_SUBST([REPLACE_FPRINTF])
   REPLACE_FPURGE=0;              AC_SUBST([REPLACE_FPURGE])
   REPLACE_FREOPEN=0;             AC_SUBST([REPLACE_FREOPEN])
index 9c1d1c7..f47c1eb 100644 (file)
@@ -1,5 +1,5 @@
-# stdlib_h.m4 serial 63
-dnl Copyright (C) 2007-2021 Free Software Foundation, Inc.
+# stdlib_h.m4 serial 75
+dnl Copyright (C) 2007-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -23,15 +23,58 @@ AC_DEFUN_ONCE([gl_STDLIB_H],
 # include <random.h>
 #endif
     ]], [_Exit aligned_alloc atoll canonicalize_file_name free
-    getloadavg getsubopt grantpt
-    initstate initstate_r mbtowc mkdtemp mkostemp mkostemps mkstemp mkstemps
-    posix_memalign posix_openpt ptsname ptsname_r qsort_r
+    getloadavg getprogname getsubopt grantpt
+    initstate initstate_r mbstowcs mbtowc mkdtemp mkostemp mkostemps mkstemp
+    mkstemps posix_memalign posix_openpt ptsname ptsname_r qsort_r
     random random_r reallocarray realpath rpmatch secure_getenv setenv
     setstate setstate_r srandom srandom_r
     strtod strtol strtold strtoll strtoul strtoull unlockpt unsetenv])
 
   AC_REQUIRE([AC_C_RESTRICT])
 
+  dnl Test whether MB_CUR_MAX needs to be overridden.
+  dnl On Solaris 10, in UTF-8 locales, its value is 3 but needs to be 4.
+  dnl Fortunately, we can do this because on this platform MB_LEN_MAX is 5.
+  AC_REQUIRE([AC_CANONICAL_HOST])
+  AC_REQUIRE([gt_LOCALE_FR_UTF8])
+  AC_CACHE_CHECK([whether MB_CUR_MAX is correct],
+    [gl_cv_macro_MB_CUR_MAX_good],
+    [
+      dnl Initial guess, used when cross-compiling or when no suitable locale
+      dnl is present.
+changequote(,)dnl
+      case "$host_os" in
+                  # Guess no on Solaris.
+        solaris*) gl_cv_macro_MB_CUR_MAX_good="guessing no" ;;
+                  # Guess yes otherwise.
+        *)        gl_cv_macro_MB_CUR_MAX_good="guessing yes" ;;
+      esac
+changequote([,])dnl
+      if test $LOCALE_FR_UTF8 != none; then
+        AC_RUN_IFELSE(
+          [AC_LANG_SOURCE([[
+#include <locale.h>
+#include <stdlib.h>
+int main ()
+{
+  int result = 0;
+  if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
+    {
+      if (MB_CUR_MAX < 4)
+        result |= 1;
+    }
+  return result;
+}]])],
+          [gl_cv_macro_MB_CUR_MAX_good=yes],
+          [gl_cv_macro_MB_CUR_MAX_good=no],
+          [:])
+      fi
+    ])
+  case "$gl_cv_macro_MB_CUR_MAX_good" in
+    *yes) ;;
+    *) REPLACE_MB_CUR_MAX=1 ;;
+  esac
+
   AC_CHECK_DECLS_ONCE([ecvt])
   if test $ac_cv_have_decl_ecvt = no; then
     HAVE_DECL_ECVT=0
@@ -68,13 +111,17 @@ AC_DEFUN([gl_STDLIB_H_REQUIRE_DEFAULTS],
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB__EXIT])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ALIGNED_ALLOC])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ATOLL])
+    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CALLOC_GNU])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CALLOC_POSIX])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CANONICALIZE_FILE_NAME])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FREE_POSIX])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETLOADAVG])
+    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETPROGNAME])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETSUBOPT])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GRANTPT])
+    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MALLOC_GNU])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MALLOC_POSIX])
+    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSTOWCS])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBTOWC])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKDTEMP])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKOSTEMP])
@@ -90,6 +137,7 @@ AC_DEFUN([gl_STDLIB_H_REQUIRE_DEFAULTS],
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RANDOM])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RANDOM_R])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALLOCARRAY])
+    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALLOC_GNU])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALLOC_POSIX])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALPATH])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RPMATCH])
@@ -127,6 +175,8 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS],
   HAVE_DECL_FCVT=1;          AC_SUBST([HAVE_DECL_FCVT])
   HAVE_DECL_GCVT=1;          AC_SUBST([HAVE_DECL_GCVT])
   HAVE_DECL_GETLOADAVG=1;    AC_SUBST([HAVE_DECL_GETLOADAVG])
+  HAVE_DECL_PROGRAM_INVOCATION_NAME=1; AC_SUBST([HAVE_DECL_PROGRAM_INVOCATION_NAME])
+  HAVE_GETPROGNAME=1;        AC_SUBST([HAVE_GETPROGNAME])
   HAVE_GETSUBOPT=1;          AC_SUBST([HAVE_GETSUBOPT])
   HAVE_GRANTPT=1;            AC_SUBST([HAVE_GRANTPT])
   HAVE_INITSTATE=1;          AC_SUBST([HAVE_INITSTATE])
@@ -163,22 +213,34 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS],
   HAVE_SYS_LOADAVG_H=0;      AC_SUBST([HAVE_SYS_LOADAVG_H])
   HAVE_UNLOCKPT=1;           AC_SUBST([HAVE_UNLOCKPT])
   HAVE_DECL_UNSETENV=1;      AC_SUBST([HAVE_DECL_UNSETENV])
+  REPLACE__EXIT=0;           AC_SUBST([REPLACE__EXIT])
   REPLACE_ALIGNED_ALLOC=0;   AC_SUBST([REPLACE_ALIGNED_ALLOC])
-  REPLACE_CALLOC=0;          AC_SUBST([REPLACE_CALLOC])
+  REPLACE_CALLOC_FOR_CALLOC_GNU=0;    AC_SUBST([REPLACE_CALLOC_FOR_CALLOC_GNU])
+  REPLACE_CALLOC_FOR_CALLOC_POSIX=0;  AC_SUBST([REPLACE_CALLOC_FOR_CALLOC_POSIX])
   REPLACE_CANONICALIZE_FILE_NAME=0;  AC_SUBST([REPLACE_CANONICALIZE_FILE_NAME])
   REPLACE_FREE=0;            AC_SUBST([REPLACE_FREE])
+  REPLACE_GETLOADAVG=0;      AC_SUBST([REPLACE_GETLOADAVG])
+  REPLACE_GETPROGNAME=0;     AC_SUBST([REPLACE_GETPROGNAME])
+  REPLACE_GETSUBOPT=0;       AC_SUBST([REPLACE_GETSUBOPT])
   REPLACE_INITSTATE=0;       AC_SUBST([REPLACE_INITSTATE])
-  REPLACE_MALLOC=0;          AC_SUBST([REPLACE_MALLOC])
+  REPLACE_MALLOC_FOR_MALLOC_GNU=0;    AC_SUBST([REPLACE_MALLOC_FOR_MALLOC_GNU])
+  REPLACE_MALLOC_FOR_MALLOC_POSIX=0;  AC_SUBST([REPLACE_MALLOC_FOR_MALLOC_POSIX])
+  REPLACE_MB_CUR_MAX=0;      AC_SUBST([REPLACE_MB_CUR_MAX])
+  REPLACE_MBSTOWCS=0;        AC_SUBST([REPLACE_MBSTOWCS])
   REPLACE_MBTOWC=0;          AC_SUBST([REPLACE_MBTOWC])
+  REPLACE_MKOSTEMP=0;        AC_SUBST([REPLACE_MKOSTEMP])
+  REPLACE_MKOSTEMPS=0;       AC_SUBST([REPLACE_MKOSTEMPS])
   REPLACE_MKSTEMP=0;         AC_SUBST([REPLACE_MKSTEMP])
   REPLACE_POSIX_MEMALIGN=0;  AC_SUBST([REPLACE_POSIX_MEMALIGN])
+  REPLACE_POSIX_OPENPT=0;    AC_SUBST([REPLACE_POSIX_OPENPT])
   REPLACE_PTSNAME=0;         AC_SUBST([REPLACE_PTSNAME])
   REPLACE_PTSNAME_R=0;       AC_SUBST([REPLACE_PTSNAME_R])
   REPLACE_PUTENV=0;          AC_SUBST([REPLACE_PUTENV])
   REPLACE_QSORT_R=0;         AC_SUBST([REPLACE_QSORT_R])
   REPLACE_RANDOM=0;          AC_SUBST([REPLACE_RANDOM])
   REPLACE_RANDOM_R=0;        AC_SUBST([REPLACE_RANDOM_R])
-  REPLACE_REALLOC=0;         AC_SUBST([REPLACE_REALLOC])
+  REPLACE_REALLOC_FOR_REALLOC_GNU=0;    AC_SUBST([REPLACE_REALLOC_FOR_REALLOC_GNU])
+  REPLACE_REALLOC_FOR_REALLOC_POSIX=0;  AC_SUBST([REPLACE_REALLOC_FOR_REALLOC_POSIX])
   REPLACE_REALLOCARRAY=0;    AC_SUBST([REPLACE_REALLOCARRAY])
   REPLACE_REALPATH=0;        AC_SUBST([REPLACE_REALPATH])
   REPLACE_SETENV=0;          AC_SUBST([REPLACE_SETENV])
diff --git a/m4/stpcpy.m4 b/m4/stpcpy.m4
new file mode 100644 (file)
index 0000000..f3acbee
--- /dev/null
@@ -0,0 +1,28 @@
+# stpcpy.m4 serial 11
+dnl Copyright (C) 2002, 2007, 2009-2023 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_STPCPY],
+[
+  dnl Persuade glibc <string.h> to declare stpcpy().
+  AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+  dnl The stpcpy() declaration in lib/string.in.h uses 'restrict'.
+  AC_REQUIRE([AC_C_RESTRICT])
+
+  AC_REQUIRE([gl_STRING_H_DEFAULTS])
+  gl_CHECK_FUNCS_ANDROID([stpcpy], [[#include <string.h>]])
+  if test $ac_cv_func_stpcpy = no; then
+    HAVE_STPCPY=0
+    case "$gl_cv_onwards_func_stpcpy" in
+      future*) REPLACE_STPCPY=1 ;;
+    esac
+  fi
+])
+
+# Prerequisites of lib/stpcpy.c.
+AC_DEFUN([gl_PREREQ_STPCPY], [
+  :
+])
index ea88283..3cf740d 100644 (file)
@@ -1,5 +1,5 @@
 # strcase.m4 serial 12
-dnl Copyright (C) 2002, 2005-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2005-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 438ba92..9f1dddd 100644 (file)
@@ -1,5 +1,5 @@
-# strerror.m4 serial 22
-dnl Copyright (C) 2002, 2007-2021 Free Software Foundation, Inc.
+# strerror.m4 serial 24
+dnl Copyright (C) 2002, 2007-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -13,7 +13,7 @@ AC_DEFUN([gl_FUNC_STRERROR],
   m4_ifdef([gl_FUNC_STRERROR_R_WORKS], [
     AC_REQUIRE([gl_FUNC_STRERROR_R_WORKS])
   ])
-  if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then
+  if test "$GL_GENERATE_ERRNO_H:$REPLACE_STRERROR_0" = false:0; then
     AC_CACHE_CHECK([for working strerror function],
      [gl_cv_func_working_strerror],
      [AC_RUN_IFELSE(
@@ -24,12 +24,12 @@ AC_DEFUN([gl_FUNC_STRERROR],
         [gl_cv_func_working_strerror=yes],
         [gl_cv_func_working_strerror=no],
         [case "$host_os" in
-                          # Guess yes on glibc systems.
-           *-gnu* | gnu*) gl_cv_func_working_strerror="guessing yes" ;;
-                          # Guess yes on musl systems.
-           *-musl*)       gl_cv_func_working_strerror="guessing yes" ;;
-                          # If we don't know, obey --enable-cross-guesses.
-           *)             gl_cv_func_working_strerror="$gl_cross_guess_normal" ;;
+                               # Guess yes on glibc systems.
+           *-gnu* | gnu*)      gl_cv_func_working_strerror="guessing yes" ;;
+                               # Guess yes on musl systems.
+           *-musl* | midipix*) gl_cv_func_working_strerror="guessing yes" ;;
+                               # If we don't know, obey --enable-cross-guesses.
+           *)                  gl_cv_func_working_strerror="$gl_cross_guess_normal" ;;
          esac
         ])
     ])
@@ -80,14 +80,14 @@ AC_DEFUN([gl_FUNC_STRERROR_0],
       [gl_cv_func_strerror_0_works=yes],
       [gl_cv_func_strerror_0_works=no],
       [case "$host_os" in
-                        # Guess yes on glibc systems.
-         *-gnu* | gnu*) gl_cv_func_strerror_0_works="guessing yes" ;;
-                        # Guess yes on musl systems.
-         *-musl*)       gl_cv_func_strerror_0_works="guessing yes" ;;
-                        # Guess yes on native Windows.
-         mingw*)        gl_cv_func_strerror_0_works="guessing yes" ;;
-                        # If we don't know, obey --enable-cross-guesses.
-         *)             gl_cv_func_strerror_0_works="$gl_cross_guess_normal" ;;
+                             # Guess yes on glibc systems.
+         *-gnu* | gnu*)      gl_cv_func_strerror_0_works="guessing yes" ;;
+                             # Guess yes on musl systems.
+         *-musl* | midipix*) gl_cv_func_strerror_0_works="guessing yes" ;;
+                             # Guess yes on native Windows.
+         mingw*)             gl_cv_func_strerror_0_works="guessing yes" ;;
+                             # If we don't know, obey --enable-cross-guesses.
+         *)                  gl_cv_func_strerror_0_works="$gl_cross_guess_normal" ;;
        esac
       ])
   ])
index 0689e46..d790ba8 100644 (file)
@@ -1,5 +1,5 @@
-# strerror_r.m4 serial 21
-dnl Copyright (C) 2002, 2007-2021 Free Software Foundation, Inc.
+# strerror_r.m4 serial 26
+dnl Copyright (C) 2002, 2007-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -9,9 +9,6 @@ AC_DEFUN([gl_FUNC_STRERROR_R],
   AC_REQUIRE([gl_STRING_H_DEFAULTS])
   AC_REQUIRE([gl_FUNC_STRERROR_R_WORKS])
 
-  dnl Persuade Solaris <string.h> to declare strerror_r().
-  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
-
   dnl Some systems don't declare strerror_r() if _THREAD_SAFE and _REENTRANT
   dnl are not defined.
   AC_CHECK_DECLS_ONCE([strerror_r])
@@ -20,7 +17,7 @@ AC_DEFUN([gl_FUNC_STRERROR_R],
   fi
 
   if test $ac_cv_func_strerror_r = yes; then
-    if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then
+    if test "$GL_GENERATE_ERRNO_H:$REPLACE_STRERROR_0" = false:0; then
       if test $gl_cv_func_strerror_r_posix_signature = yes; then
         case "$gl_cv_func_strerror_r_works" in
           dnl The system's strerror_r has bugs.  Replace it.
@@ -40,9 +37,10 @@ AC_DEFUN([gl_FUNC_STRERROR_R],
 
 # Prerequisites of lib/strerror_r.c.
 AC_DEFUN([gl_PREREQ_STRERROR_R], [
+  AC_REQUIRE([AC_FUNC_STRERROR_R])
   dnl glibc >= 2.3.4 and cygwin 1.7.9 have a function __xpg_strerror_r.
   AC_CHECK_FUNCS_ONCE([__xpg_strerror_r])
-  AC_CHECK_FUNCS_ONCE([catgets])
+  gl_CHECK_FUNCS_ANDROID([catgets], [[#include <nl_types.h>]])
   AC_CHECK_FUNCS_ONCE([snprintf])
 ])
 
@@ -52,11 +50,16 @@ AC_DEFUN([gl_FUNC_STRERROR_R_WORKS],
 [
   AC_REQUIRE([gl_HEADER_ERRNO_H])
   AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+
+  dnl Persuade Android <string.h> to use the GNU strerror_r API,
+  dnl and Solaris <string.h> to declare strerror_r.
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
   AC_REQUIRE([gl_FUNC_STRERROR_0])
 
-  AC_CHECK_FUNCS_ONCE([strerror_r])
+  gl_CHECK_FUNCS_ANDROID([strerror_r], [[#include <string.h>]])
   if test $ac_cv_func_strerror_r = yes; then
-    if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then
+    if test "$GL_GENERATE_ERRNO_H:$REPLACE_STRERROR_0" = false:0; then
       dnl The POSIX prototype is:  int strerror_r (int, char *, size_t);
       dnl glibc, Cygwin:           char *strerror_r (int, char *, size_t);
       dnl AIX 5.1, OSF/1 5.1:      int strerror_r (int, char *, int);
@@ -169,5 +172,9 @@ changequote([,])dnl
         fi
       fi
     fi
+  else
+    case "$gl_cv_onwards_func_strerror_r" in
+      future*) REPLACE_STRERROR_R=1 ;;
+    esac
   fi
 ])
index 80d1e58..7f51391 100644 (file)
@@ -1,11 +1,11 @@
 # Configure a GNU-like replacement for <string.h>.
 
-# Copyright (C) 2007-2021 Free Software Foundation, Inc.
+# Copyright (C) 2007-2023 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 32
+# serial 37
 
 # Written by Paul Eggert.
 
@@ -21,7 +21,8 @@ AC_DEFUN_ONCE([gl_STRING_H],
   dnl guaranteed by C89.
   gl_WARN_ON_USE_PREPARE([[#include <string.h>
     ]],
-    [ffsl ffsll memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul
+    [explicit_bzero ffsl ffsll memmem mempcpy memrchr memset_explicit
+     rawmemchr stpcpy stpncpy strchrnul
      strdup strncat strndup strnlen strpbrk strsep strcasestr strtok_r
      strerror_r strerrorname_np sigabbrev_np sigdescr_np strsignal strverscmp])
 
@@ -54,6 +55,7 @@ AC_DEFUN([gl_STRING_H_REQUIRE_DEFAULTS],
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MEMMEM])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MEMPCPY])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MEMRCHR])
+    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MEMSET_EXPLICIT])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RAWMEMCHR])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STPCPY])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STPNCPY])
@@ -93,6 +95,8 @@ AC_DEFUN([gl_STRING_H_REQUIRE_DEFAULTS],
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_STRDUP], [1])
   ])
   m4_require(GL_MODULE_INDICATOR_PREFIX[_STRING_H_MODULE_INDICATOR_DEFAULTS])
+  dnl Make sure the shell variable for GNULIB_FREE_POSIX is initialized.
+  gl_STDLIB_H_REQUIRE_DEFAULTS
   AC_REQUIRE([gl_STRING_H_DEFAULTS])
 ])
 
@@ -105,6 +109,7 @@ AC_DEFUN([gl_STRING_H_DEFAULTS],
   HAVE_FFSLL=1;                 AC_SUBST([HAVE_FFSLL])
   HAVE_DECL_MEMMEM=1;           AC_SUBST([HAVE_DECL_MEMMEM])
   HAVE_MEMPCPY=1;               AC_SUBST([HAVE_MEMPCPY])
+  HAVE_MEMSET_EXPLICIT=1;       AC_SUBST([HAVE_MEMSET_EXPLICIT])
   HAVE_DECL_MEMRCHR=1;          AC_SUBST([HAVE_DECL_MEMRCHR])
   HAVE_RAWMEMCHR=1;             AC_SUBST([HAVE_RAWMEMCHR])
   HAVE_STPCPY=1;                AC_SUBST([HAVE_STPCPY])
@@ -126,6 +131,8 @@ AC_DEFUN([gl_STRING_H_DEFAULTS],
   REPLACE_FFSLL=0;              AC_SUBST([REPLACE_FFSLL])
   REPLACE_MEMCHR=0;             AC_SUBST([REPLACE_MEMCHR])
   REPLACE_MEMMEM=0;             AC_SUBST([REPLACE_MEMMEM])
+  REPLACE_MEMPCPY=0;            AC_SUBST([REPLACE_MEMPCPY])
+  REPLACE_STPCPY=0;             AC_SUBST([REPLACE_STPCPY])
   REPLACE_STPNCPY=0;            AC_SUBST([REPLACE_STPNCPY])
   REPLACE_STRCHRNUL=0;          AC_SUBST([REPLACE_STRCHRNUL])
   REPLACE_STRDUP=0;             AC_SUBST([REPLACE_STRDUP])
index 69de32a..4c41221 100644 (file)
@@ -1,7 +1,7 @@
 # Configure a replacement for <strings.h>.
 # serial 9
 
-# Copyright (C) 2007, 2009-2021 Free Software Foundation, Inc.
+# Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
index 1d4f106..d2cac59 100644 (file)
@@ -1,5 +1,5 @@
 # strnlen.m4 serial 14
-dnl Copyright (C) 2002-2003, 2005-2007, 2009-2021 Free Software Foundation,
+dnl Copyright (C) 2002-2003, 2005-2007, 2009-2023 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
index 982fec8..e5d995e 100644 (file)
@@ -1,5 +1,5 @@
 # strptime.m4 serial 8
-dnl Copyright (C) 2007, 2009-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index d767d57..db5cfb7 100644 (file)
@@ -1,5 +1,5 @@
 # strtoimax.m4 serial 16
-dnl Copyright (C) 2002-2004, 2006, 2009-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2004, 2006, 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 14455dc..ec09609 100644 (file)
@@ -1,5 +1,5 @@
-# strtoll.m4 serial 9
-dnl Copyright (C) 2002, 2004, 2006, 2008-2021 Free Software Foundation, Inc.
+# strtoll.m4 serial 10
+dnl Copyright (C) 2002, 2004, 2006, 2008-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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,15 +24,26 @@ AC_DEFUN([gl_FUNC_STRTOLL],
                 if (term != input + 1)
                   result |= 1;
               }
+              /* This test fails on pre-C23 platforms.  */
+              {
+                const char input[] = "0b1";
+                (void) strtoll (input, &term, 2);
+                if (term != input + 3)
+                  result |= 2;
+              }
               return result;
             ]])
          ],
          [gl_cv_func_strtoll_works=yes],
          [gl_cv_func_strtoll_works=no],
          [case "$host_os" in
-                    # Guess no on native Windows.
-            mingw*) gl_cv_func_strtoll_works="guessing no" ;;
-            *)      gl_cv_func_strtoll_works="$gl_cross_guess_normal" ;;
+                                # Guess no on native Windows.
+            mingw*)             gl_cv_func_strtoll_works="guessing no" ;;
+                                # Guess no on glibc systems.
+            *-gnu* | gnu*)      gl_cv_func_strtoll_works="guessing no" ;;
+                                # Guess no on musl systems.
+            *-musl* | midipix*) gl_cv_func_strtoll_works="guessing no" ;;
+            *)                  gl_cv_func_strtoll_works="$gl_cross_guess_normal" ;;
           esac
          ])
     ])
index 209dece..52d6c11 100644 (file)
@@ -1,7 +1,7 @@
-# serial 9
+# serial 10
 # See if we need to provide symlink replacement.
 
-dnl Copyright (C) 2009-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -38,6 +38,8 @@ AC_DEFUN([gl_FUNC_SYMLINK],
          [case "$host_os" in
                              # Guess yes on Linux systems.
             linux-* | linux) gl_cv_func_symlink_works="guessing yes" ;;
+                             # Guess yes on systems that emulate the Linux system calls.
+            midipix*)        gl_cv_func_symlink_works="guessing yes" ;;
                              # Guess yes on glibc systems.
             *-gnu* | gnu*)   gl_cv_func_symlink_works="guessing yes" ;;
                              # If we don't know, obey --enable-cross-guesses.
index cd00410..80f0510 100644 (file)
@@ -1,5 +1,5 @@
 # sys_ioctl_h.m4 serial 15
-dnl Copyright (C) 2008-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 37bc316..01d5fee 100644 (file)
@@ -1,5 +1,5 @@
 # sys_random_h.m4 serial 8
-dnl Copyright (C) 2020-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2020-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 2e7d140..4ec5ed7 100644 (file)
@@ -1,5 +1,5 @@
 # sys_select_h.m4 serial 23
-dnl Copyright (C) 2006-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 5676a0d..98a1041 100644 (file)
@@ -1,5 +1,5 @@
-# sys_socket_h.m4 serial 28
-dnl Copyright (C) 2005-2021 Free Software Foundation, Inc.
+# sys_socket_h.m4 serial 29
+dnl Copyright (C) 2005-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -22,6 +22,7 @@ AC_DEFUN_ONCE([gl_SYS_SOCKET_H],
       ;;
   esac
 
+  GL_GENERATE_SYS_SOCKET_H=false
   AC_CACHE_CHECK([whether <sys/socket.h> is self-contained],
     [gl_cv_header_sys_socket_h_selfcontained],
     [
@@ -44,7 +45,7 @@ AC_DEFUN_ONCE([gl_SYS_SOCKET_H],
             [gl_cv_header_sys_socket_h_shut=no])
         ])
       if test $gl_cv_header_sys_socket_h_shut = no; then
-        SYS_SOCKET_H='sys/socket.h'
+        GL_GENERATE_SYS_SOCKET_H=true
       fi
     fi
   fi
@@ -83,7 +84,7 @@ AC_DEFUN_ONCE([gl_SYS_SOCKET_H],
   fi
   if test $HAVE_STRUCT_SOCKADDR_STORAGE = 0 || test $HAVE_SA_FAMILY_T = 0 \
      || test $HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = 0; then
-    SYS_SOCKET_H='sys/socket.h'
+    GL_GENERATE_SYS_SOCKET_H=true
   fi
   gl_PREREQ_SYS_H_WINSOCK2
 
index ac91d42..ca57398 100644 (file)
@@ -1,5 +1,5 @@
-# sys_stat_h.m4 serial 41   -*- Autoconf -*-
-dnl Copyright (C) 2006-2021 Free Software Foundation, Inc.
+# sys_stat_h.m4 serial 42   -*- Autoconf -*-
+dnl Copyright (C) 2006-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -46,7 +46,7 @@ AC_DEFUN_ONCE([gl_SYS_STAT_H],
   dnl Check for declarations of anything we want to poison if the
   dnl corresponding gnulib module is not in use.
   gl_WARN_ON_USE_PREPARE([[#include <sys/stat.h>
-    ]], [fchmodat fstat fstatat futimens getumask lchmod lstat
+    ]], [chmod fchmodat fstat fstatat futimens getumask lchmod lstat
     mkdirat mkfifo mkfifoat mknod mknodat stat utimensat])
 
   AC_REQUIRE([AC_C_RESTRICT])
@@ -72,6 +72,7 @@ AC_DEFUN([gl_SYS_STAT_H_REQUIRE_DEFAULTS],
 [
   m4_defun(GL_MODULE_INDICATOR_PREFIX[_SYS_STAT_H_MODULE_INDICATOR_DEFAULTS], [
     gl_UNISTD_H_REQUIRE_DEFAULTS dnl for REPLACE_FCHDIR
+    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CHMOD])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FCHMODAT])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FSTAT])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FSTATAT])
@@ -112,6 +113,7 @@ AC_DEFUN([gl_SYS_STAT_H_DEFAULTS],
   HAVE_MKNOD=1;         AC_SUBST([HAVE_MKNOD])
   HAVE_MKNODAT=1;       AC_SUBST([HAVE_MKNODAT])
   HAVE_UTIMENSAT=1;     AC_SUBST([HAVE_UTIMENSAT])
+  REPLACE_CHMOD=0;      AC_SUBST([REPLACE_CHMOD])
   REPLACE_FCHMODAT=0;   AC_SUBST([REPLACE_FCHMODAT])
   REPLACE_FSTAT=0;      AC_SUBST([REPLACE_FSTAT])
   REPLACE_FSTATAT=0;    AC_SUBST([REPLACE_FSTATAT])
index c425a96..45a1f8b 100644 (file)
@@ -1,7 +1,7 @@
 # Configure a replacement for <sys/time.h>.
 # serial 12
 
-# Copyright (C) 2007, 2009-2021 Free Software Foundation, Inc.
+# Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
index 6dd6fee..627671f 100644 (file)
@@ -1,5 +1,5 @@
 # sys_types_h.m4 serial 13
-dnl Copyright (C) 2011-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index fa176e0..93a65d2 100644 (file)
@@ -1,5 +1,5 @@
 # sys_uio_h.m4 serial 3
-dnl Copyright (C) 2011-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index d7c412a..36b4293 100644 (file)
@@ -1,5 +1,5 @@
 # sys_wait_h.m4 serial 9
-dnl Copyright (C) 2008-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 14c796d..abed799 100644 (file)
@@ -1,6 +1,6 @@
 #serial 5
 
-# Copyright (C) 2006-2007, 2009-2021 Free Software Foundation, Inc.
+# Copyright (C) 2006-2007, 2009-2023 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
index 8ec9cc3..9c63df3 100644 (file)
@@ -1,5 +1,5 @@
-# thread.m4 serial 3
-dnl Copyright (C) 2008-2021 Free Software Foundation, Inc.
+# thread.m4 serial 4
+dnl Copyright (C) 2008-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -11,7 +11,7 @@ AC_DEFUN([gl_THREAD],
   if test $gl_threads_api = posix; then
     gl_save_LIBS="$LIBS"
     LIBS="$LIBS $LIBMULTITHREAD"
-    AC_CHECK_FUNCS([pthread_atfork])
+    gl_CHECK_FUNCS_ANDROID([pthread_atfork], [[#include <pthread.h>]])
     LIBS="$gl_save_LIBS"
   fi
 ])
index 37b797c..1fc5777 100644 (file)
@@ -1,5 +1,5 @@
-# threadlib.m4 serial 31
-dnl Copyright (C) 2005-2021 Free Software Foundation, Inc.
+# threadlib.m4 serial 38
+dnl Copyright (C) 2005-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -84,38 +84,49 @@ AC_DEFUN([gl_WEAK_SYMBOLS],
   AC_REQUIRE([AC_CANONICAL_HOST])
   AC_CACHE_CHECK([whether imported symbols can be declared weak],
     [gl_cv_have_weak],
-    [gl_cv_have_weak=no
-     dnl First, test whether the compiler accepts it syntactically.
-     AC_LINK_IFELSE(
-       [AC_LANG_PROGRAM(
-          [[extern void xyzzy ();
+    [case "$host_os" in
+       cygwin* | mingw*)
+         dnl On Cygwin 3.2.0 with gcc 10.2, and likewise on mingw 10.0.0 with
+         dnl gcc 11.3, the test below would succeed, but programs that use
+         dnl pthread_in_use() with weak symbol references crash miserably at
+         dnl runtime.
+         gl_cv_have_weak="guessing no"
+         ;;
+       *)
+         gl_cv_have_weak=no
+         dnl First, test whether the compiler accepts it syntactically.
+         AC_LINK_IFELSE(
+           [AC_LANG_PROGRAM(
+              [[extern void xyzzy ();
 #pragma weak xyzzy]],
-          [[xyzzy();]])],
-       [gl_cv_have_weak=maybe])
-     if test $gl_cv_have_weak = maybe; then
-       dnl Second, test whether it actually works. On Cygwin 1.7.2, with
-       dnl gcc 4.3, symbols declared weak always evaluate to the address 0.
-       AC_RUN_IFELSE(
-         [AC_LANG_SOURCE([[
+              [[xyzzy();]])],
+           [gl_cv_have_weak=maybe])
+         if test $gl_cv_have_weak = maybe; then
+           dnl Second, test whether it actually works. On Cygwin 1.7.2, with
+           dnl gcc 4.3, symbols declared weak always evaluate to the address 0.
+           AC_RUN_IFELSE(
+             [AC_LANG_SOURCE([[
 #include <stdio.h>
 #pragma weak fputs
 int main ()
 {
   return (fputs == NULL);
 }]])],
-         [gl_cv_have_weak=yes],
-         [gl_cv_have_weak=no],
-         [dnl When cross-compiling, assume that only ELF platforms support
-          dnl weak symbols.
-          AC_EGREP_CPP([Extensible Linking Format],
-            [#ifdef __ELF__
-             Extensible Linking Format
-             #endif
-            ],
-            [gl_cv_have_weak="guessing yes"],
-            [gl_cv_have_weak="guessing no"])
-         ])
-     fi
+             [gl_cv_have_weak=yes],
+             [gl_cv_have_weak=no],
+             [dnl When cross-compiling, assume that only ELF platforms support
+              dnl weak symbols.
+              AC_EGREP_CPP([Extensible Linking Format],
+                [#ifdef __ELF__
+                 Extensible Linking Format
+                 #endif
+                ],
+                [gl_cv_have_weak="guessing yes"],
+                [gl_cv_have_weak="guessing no"])
+             ])
+         fi
+         ;;
+     esac
      dnl But when linking statically, weak symbols don't work.
      case " $LDFLAGS " in
        *" -static "*) gl_cv_have_weak=no ;;
@@ -164,7 +175,7 @@ dnl Sets the variable LIBPMULTITHREAD, for programs that really need
 dnl multithread functionality. The difference between LIBPTHREAD and
 dnl LIBPMULTITHREAD is that on platforms supporting weak symbols, typically
 dnl LIBPTHREAD is empty whereas LIBPMULTITHREAD is not.
-dnl Sets the variable LIB_SCHED_YIELD to the linker options needed to use the
+dnl Sets the variable SCHED_YIELD_LIB to the linker options needed to use the
 dnl sched_yield() function.
 dnl Adds to CPPFLAGS the flag -D_REENTRANT or -D_THREAD_SAFE if needed for
 dnl multithread-safe programs.
@@ -251,7 +262,9 @@ AC_DEFUN([gl_PTHREADLIB_BODY],
              # On Solaris 10 or newer, this test is no longer needed, because
              # libc contains the fully functional pthread functions.
              case "$host_os" in
+changequote(,)dnl
                solaris | solaris2.[1-9] | solaris2.[1-9].* | hpux*)
+changequote([,])dnl
                  AC_DEFINE([PTHREAD_IN_USE_DETECTION_HARD], [1],
                    [Define if the pthread_in_use() detection is hard.])
              esac
@@ -287,13 +300,16 @@ AC_DEFUN([gl_PTHREADLIB_BODY],
       [AC_LANG_PROGRAM(
          [[#include <sched.h>]],
          [[sched_yield ();]])],
-      [LIB_SCHED_YIELD=
+      [SCHED_YIELD_LIB=
       ],
       [dnl Solaris 7...10 has sched_yield in librt, not in libpthread or libc.
-       AC_CHECK_LIB([rt], [sched_yield], [LIB_SCHED_YIELD=-lrt],
+       AC_CHECK_LIB([rt], [sched_yield], [SCHED_YIELD_LIB=-lrt],
          [dnl Solaris 2.5.1, 2.6 has sched_yield in libposix4, not librt.
-          AC_CHECK_LIB([posix4], [sched_yield], [LIB_SCHED_YIELD=-lposix4])])
+          AC_CHECK_LIB([posix4], [sched_yield], [SCHED_YIELD_LIB=-lposix4])])
       ])
+    AC_SUBST([SCHED_YIELD_LIB])
+    dnl For backward compatibility.
+    LIB_SCHED_YIELD="$SCHED_YIELD_LIB"
     AC_SUBST([LIB_SCHED_YIELD])
 
     gl_pthreadlib_body_done=done
@@ -339,7 +355,7 @@ AC_DEFUN([gl_STDTHREADLIB_BODY],
           dnl on libpthread (for the symbol 'pthread_mutexattr_gettype').
           dnl glibc >= 2.34, AIX >= 7.1, and Solaris >= 11.4 have thrd_create in
           dnl libc.
-          AC_CHECK_FUNCS([thrd_create])
+          gl_CHECK_FUNCS_ANDROID([thrd_create], [[#include <threads.h>]])
           if test $ac_cv_func_thrd_create = yes; then
             LIBSTDTHREAD=
           else
@@ -352,7 +368,7 @@ AC_DEFUN([gl_STDTHREADLIB_BODY],
           fi
         else
           dnl Libraries needed by thrd.c, mtx.c, cnd.c, tss.c.
-          LIBSTDTHREAD="$LIBPMULTITHREAD $LIB_SCHED_YIELD"
+          LIBSTDTHREAD="$LIBPMULTITHREAD $SCHED_YIELD_LIB"
         fi
         ;;
     esac
@@ -423,10 +439,12 @@ AC_DEFUN([gl_THREADLIB_EARLY_BODY],
   m4_ifdef([gl_THREADLIB_DEFAULT_NO],
     [m4_divert_text([DEFAULTS], [gl_use_threads_default=no])],
     [m4_divert_text([DEFAULTS], [gl_use_threads_default=])])
-  m4_divert_text([DEFAULTS], [gl_use_winpthreads_default=])
+  dnl gl_use_winpthreads_default defaults to 'no', because in mingw 10, like
+  dnl in mingw 5, the use of libwinpthread still makes test-pthread-tss crash.
+  m4_divert_text([DEFAULTS], [gl_use_winpthreads_default=no])
   AC_ARG_ENABLE([threads],
-AS_HELP_STRING([--enable-threads={isoc|posix|isoc+posix|windows}], [specify multithreading API])m4_ifdef([gl_THREADLIB_DEFAULT_NO], [], [
-AS_HELP_STRING([--disable-threads], [build without multithread safety])]),
+AS_HELP_STRING([[--enable-threads={isoc|posix|isoc+posix|windows}]], [specify multithreading API])m4_ifdef([gl_THREADLIB_DEFAULT_NO], [], [
+AS_HELP_STRING([[--disable-threads]], [build without multithread safety])]),
     [gl_use_threads=$enableval],
     [if test -n "$gl_use_threads_default"; then
        gl_use_threads="$gl_use_threads_default"
@@ -589,7 +607,8 @@ dnl -------------------
 dnl Sets the gl_THREADLIB default so that on mingw, a dependency to the
 dnl libwinpthread DLL (mingw-w64 winpthreads library) is avoided.
 dnl The user can still override it at installation time, by using the
-dnl configure option '--enable-threads'.
+dnl configure option '--enable-threads=posix'.
+dnl As of 2023, this is now the default.
 
 AC_DEFUN([gl_AVOID_WINPTHREAD], [
   m4_divert_text([INIT_PREPARE], [gl_use_winpthreads_default=no])
diff --git a/m4/time.m4 b/m4/time.m4
new file mode 100644 (file)
index 0000000..4c4e411
--- /dev/null
@@ -0,0 +1,48 @@
+# time.m4 serial 3
+dnl Copyright (C) 2023 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+
+AC_DEFUN([gl_FUNC_TIME],
+[
+  AC_REQUIRE([AC_CANONICAL_HOST])
+  dnl glibc has the bug https://sourceware.org/bugzilla/show_bug.cgi?id=30200 .
+  AC_CACHE_CHECK([whether time() works],
+    [gl_cv_func_time_works],
+    [dnl Guess that it works except on
+     dnl   - glibc >= 2.31 with Linux. And binaries produced on glibc < 2.31
+     dnl     need to run fine on newer glibc versions as well; therefore ignore
+     dnl     __GLIBC_MINOR__.
+     dnl   - AIX,
+     dnl   - native Windows.
+     case "$host_os" in
+       linux*-gnu*)
+         AC_EGREP_CPP([Unlucky], [
+           #include <features.h>
+           #ifdef __GNU_LIBRARY__
+            #if __GLIBC__ == 2
+             Unlucky GNU user
+            #endif
+           #endif
+           ],
+           [gl_cv_func_time_works="guessing no"],
+           [gl_cv_func_time_works="guessing yes"])
+         ;;
+       aix*)   gl_cv_func_time_works="guessing no";;
+       mingw*) gl_cv_func_time_works="guessing no";;
+       *) gl_cv_func_time_works="guessing yes";;
+     esac
+    ])
+  case "$gl_cv_func_time_works" in
+    *no) REPLACE_TIME=1 ;;
+  esac
+])
+
+# Prerequisites of lib/time.c.
+AC_DEFUN([gl_PREREQ_TIME],
+[
+  :
+])
index b57474b..51d553a 100644 (file)
@@ -1,8 +1,8 @@
 # Configure a more-standard replacement for <time.h>.
 
-# Copyright (C) 2000-2001, 2003-2007, 2009-2021 Free Software Foundation, Inc.
+# Copyright (C) 2000-2001, 2003-2007, 2009-2023 Free Software Foundation, Inc.
 
-# serial 18
+# serial 22
 
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -19,6 +19,12 @@ AC_DEFUN_ONCE([gl_TIME_H],
   gl_NEXT_HEADERS([time.h])
   AC_REQUIRE([gl_CHECK_TYPE_STRUCT_TIMESPEC])
 
+  dnl Check for declarations of anything we want to poison if the
+  dnl corresponding gnulib module is not in use.
+  gl_WARN_ON_USE_PREPARE([[
+#include <time.h>
+    ]], [asctime_r ctime_r])
+
   AC_REQUIRE([AC_C_RESTRICT])
 
   AC_CACHE_CHECK([for TIME_UTC in <time.h>],
@@ -131,8 +137,10 @@ AC_DEFUN([gl_TIME_H_REQUIRE_DEFAULTS],
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_NANOSLEEP])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRFTIME])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRPTIME])
+    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TIME])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TIMEGM])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TIMESPEC_GET])
+    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TIMESPEC_GETRES])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TIME_R])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TIME_RZ])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TZSET])
@@ -151,6 +159,7 @@ AC_DEFUN([gl_TIME_H_DEFAULTS],
   HAVE_STRPTIME=1;                       AC_SUBST([HAVE_STRPTIME])
   HAVE_TIMEGM=1;                         AC_SUBST([HAVE_TIMEGM])
   HAVE_TIMESPEC_GET=1;                   AC_SUBST([HAVE_TIMESPEC_GET])
+  HAVE_TIMESPEC_GETRES=1;                AC_SUBST([HAVE_TIMESPEC_GETRES])
   dnl Even GNU libc does not have timezone_t yet.
   HAVE_TIMEZONE_T=0;                     AC_SUBST([HAVE_TIMEZONE_T])
   dnl If another module says to replace or to not replace, do that.
@@ -161,7 +170,9 @@ AC_DEFUN([gl_TIME_H_DEFAULTS],
   REPLACE_MKTIME=GNULIB_PORTCHECK;       AC_SUBST([REPLACE_MKTIME])
   REPLACE_NANOSLEEP=GNULIB_PORTCHECK;    AC_SUBST([REPLACE_NANOSLEEP])
   REPLACE_STRFTIME=GNULIB_PORTCHECK;     AC_SUBST([REPLACE_STRFTIME])
+  REPLACE_TIME=0;                        AC_SUBST([REPLACE_TIME])
   REPLACE_TIMEGM=GNULIB_PORTCHECK;       AC_SUBST([REPLACE_TIMEGM])
+  REPLACE_TIMESPEC_GET=GNULIB_PORTCHECK; AC_SUBST([REPLACE_TIMESPEC_GET])
   REPLACE_TZSET=GNULIB_PORTCHECK;        AC_SUBST([REPLACE_TZSET])
 
   dnl Hack so that the time module doesn't depend on the sys_time module.
index 2d49b64..adce438 100644 (file)
@@ -1,6 +1,6 @@
 dnl Reentrant time functions: localtime_r, gmtime_r.
 
-dnl Copyright (C) 2003, 2006-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2006-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index c5e85dc..d13bc06 100644 (file)
@@ -1,6 +1,6 @@
 dnl Time zone functions: tzalloc, localtime_rz, etc.
 
-dnl Copyright (C) 2015-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2015-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 58123be..8ab265e 100644 (file)
@@ -1,5 +1,5 @@
-# timegm.m4 serial 13
-dnl Copyright (C) 2003, 2007, 2009-2021 Free Software Foundation, Inc.
+# timegm.m4 serial 15
+dnl Copyright (C) 2003, 2007, 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -9,7 +9,7 @@ AC_DEFUN([gl_FUNC_TIMEGM],
   AC_REQUIRE([gl_TIME_H_DEFAULTS])
   AC_REQUIRE([gl_FUNC_MKTIME_WORKS])
   REPLACE_TIMEGM=0
-  AC_CHECK_FUNCS_ONCE([timegm])
+  gl_CHECK_FUNCS_ANDROID([timegm], [[#include <time.h>]])
   if test $ac_cv_func_timegm = yes; then
     if test "$gl_cv_func_working_mktime" != yes; then
       # Assume that timegm is buggy if mktime is.
@@ -17,6 +17,9 @@ AC_DEFUN([gl_FUNC_TIMEGM],
     fi
   else
     HAVE_TIMEGM=0
+    case "$gl_cv_onwards_func_timegm" in
+      future*) REPLACE_TIMEGM=1 ;;
+    esac
   fi
 ])
 
index 40307d4..95f475f 100644 (file)
@@ -1,6 +1,6 @@
 #serial 15
 
-# Copyright (C) 2000-2001, 2003-2007, 2009-2021 Free Software Foundation, Inc.
+# Copyright (C) 2000-2001, 2003-2007, 2009-2023 Free Software Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
index 2743999..bc41de3 100644 (file)
@@ -1,5 +1,5 @@
 # tm_gmtoff.m4 serial 3
-dnl Copyright (C) 2002, 2009-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 8a4f285..72e935f 100644 (file)
@@ -1,6 +1,6 @@
 # serial 16
 
-# Copyright (C) 2003, 2007, 2009-2021 Free Software Foundation, Inc.
+# Copyright (C) 2003, 2007, 2009-2023 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
index 0ce4ea4..1c96158 100644 (file)
@@ -1,5 +1,5 @@
-# unistd_h.m4 serial 89
-dnl Copyright (C) 2006-2021 Free Software Foundation, Inc.
+# unistd_h.m4 serial 94
+dnl Copyright (C) 2006-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -112,6 +112,7 @@ AC_DEFUN([gl_UNISTD_H_REQUIRE_DEFAULTS],
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETOPT_POSIX])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETPAGESIZE])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETPASS])
+    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETPASS_GNU])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETUSERSHELL])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GROUP_MEMBER])
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISATTY])
@@ -170,98 +171,105 @@ AC_DEFUN([gl_UNISTD_H_REQUIRE_DEFAULTS],
 AC_DEFUN([gl_UNISTD_H_DEFAULTS],
 [
   dnl Assume proper GNU behavior unless another module says otherwise.
-  HAVE_CHOWN=1;           AC_SUBST([HAVE_CHOWN])
-  HAVE_COPY_FILE_RANGE=1; AC_SUBST([HAVE_COPY_FILE_RANGE])
-  HAVE_DUP3=1;            AC_SUBST([HAVE_DUP3])
-  HAVE_EUIDACCESS=1;      AC_SUBST([HAVE_EUIDACCESS])
-  HAVE_EXECVPE=1;         AC_SUBST([HAVE_EXECVPE])
-  HAVE_FACCESSAT=1;       AC_SUBST([HAVE_FACCESSAT])
-  HAVE_FCHDIR=1;          AC_SUBST([HAVE_FCHDIR])
-  HAVE_FCHOWNAT=1;        AC_SUBST([HAVE_FCHOWNAT])
-  HAVE_FDATASYNC=1;       AC_SUBST([HAVE_FDATASYNC])
-  HAVE_FSYNC=1;           AC_SUBST([HAVE_FSYNC])
-  HAVE_FTRUNCATE=1;       AC_SUBST([HAVE_FTRUNCATE])
-  HAVE_GETDTABLESIZE=1;   AC_SUBST([HAVE_GETDTABLESIZE])
-  HAVE_GETENTROPY=1;      AC_SUBST([HAVE_GETENTROPY])
-  HAVE_GETGROUPS=1;       AC_SUBST([HAVE_GETGROUPS])
-  HAVE_GETHOSTNAME=1;     AC_SUBST([HAVE_GETHOSTNAME])
-  HAVE_GETLOGIN=1;        AC_SUBST([HAVE_GETLOGIN])
-  HAVE_GETPAGESIZE=1;     AC_SUBST([HAVE_GETPAGESIZE])
-  HAVE_GETPASS=1;         AC_SUBST([HAVE_GETPASS])
-  HAVE_GROUP_MEMBER=1;    AC_SUBST([HAVE_GROUP_MEMBER])
-  HAVE_LCHOWN=1;          AC_SUBST([HAVE_LCHOWN])
-  HAVE_LINK=1;            AC_SUBST([HAVE_LINK])
-  HAVE_LINKAT=1;          AC_SUBST([HAVE_LINKAT])
-  HAVE_PIPE=1;            AC_SUBST([HAVE_PIPE])
-  HAVE_PIPE2=1;           AC_SUBST([HAVE_PIPE2])
-  HAVE_PREAD=1;           AC_SUBST([HAVE_PREAD])
-  HAVE_PWRITE=1;          AC_SUBST([HAVE_PWRITE])
-  HAVE_READLINK=1;        AC_SUBST([HAVE_READLINK])
-  HAVE_READLINKAT=1;      AC_SUBST([HAVE_READLINKAT])
-  HAVE_SETHOSTNAME=1;     AC_SUBST([HAVE_SETHOSTNAME])
-  HAVE_SLEEP=1;           AC_SUBST([HAVE_SLEEP])
-  HAVE_SYMLINK=1;         AC_SUBST([HAVE_SYMLINK])
-  HAVE_SYMLINKAT=1;       AC_SUBST([HAVE_SYMLINKAT])
-  HAVE_UNLINKAT=1;        AC_SUBST([HAVE_UNLINKAT])
-  HAVE_USLEEP=1;          AC_SUBST([HAVE_USLEEP])
-  HAVE_DECL_ENVIRON=1;    AC_SUBST([HAVE_DECL_ENVIRON])
-  HAVE_DECL_EXECVPE=1;    AC_SUBST([HAVE_DECL_EXECVPE])
-  HAVE_DECL_FCHDIR=1;     AC_SUBST([HAVE_DECL_FCHDIR])
-  HAVE_DECL_FDATASYNC=1;  AC_SUBST([HAVE_DECL_FDATASYNC])
-  HAVE_DECL_GETDOMAINNAME=1; AC_SUBST([HAVE_DECL_GETDOMAINNAME])
-  HAVE_DECL_GETLOGIN=1;   AC_SUBST([HAVE_DECL_GETLOGIN])
-  HAVE_DECL_GETLOGIN_R=1; AC_SUBST([HAVE_DECL_GETLOGIN_R])
-  HAVE_DECL_GETPAGESIZE=1; AC_SUBST([HAVE_DECL_GETPAGESIZE])
-  HAVE_DECL_GETUSERSHELL=1; AC_SUBST([HAVE_DECL_GETUSERSHELL])
-  HAVE_DECL_SETHOSTNAME=1; AC_SUBST([HAVE_DECL_SETHOSTNAME])
-  HAVE_DECL_TRUNCATE=1;   AC_SUBST([HAVE_DECL_TRUNCATE])
-  HAVE_DECL_TTYNAME_R=1;  AC_SUBST([HAVE_DECL_TTYNAME_R])
-  HAVE_OS_H=0;            AC_SUBST([HAVE_OS_H])
-  HAVE_SYS_PARAM_H=0;     AC_SUBST([HAVE_SYS_PARAM_H])
-  REPLACE_ACCESS=0;       AC_SUBST([REPLACE_ACCESS])
-  REPLACE_CHOWN=0;        AC_SUBST([REPLACE_CHOWN])
-  REPLACE_CLOSE=0;        AC_SUBST([REPLACE_CLOSE])
-  REPLACE_DUP=0;          AC_SUBST([REPLACE_DUP])
-  REPLACE_DUP2=0;         AC_SUBST([REPLACE_DUP2])
-  REPLACE_EXECL=0;        AC_SUBST([REPLACE_EXECL])
-  REPLACE_EXECLE=0;       AC_SUBST([REPLACE_EXECLE])
-  REPLACE_EXECLP=0;       AC_SUBST([REPLACE_EXECLP])
-  REPLACE_EXECV=0;        AC_SUBST([REPLACE_EXECV])
-  REPLACE_EXECVE=0;       AC_SUBST([REPLACE_EXECVE])
-  REPLACE_EXECVP=0;       AC_SUBST([REPLACE_EXECVP])
-  REPLACE_EXECVPE=0;      AC_SUBST([REPLACE_EXECVPE])
-  REPLACE_FACCESSAT=0;    AC_SUBST([REPLACE_FACCESSAT])
-  REPLACE_FCHOWNAT=0;     AC_SUBST([REPLACE_FCHOWNAT])
-  REPLACE_FTRUNCATE=0;    AC_SUBST([REPLACE_FTRUNCATE])
-  REPLACE_GETCWD=0;       AC_SUBST([REPLACE_GETCWD])
-  REPLACE_GETDOMAINNAME=0; AC_SUBST([REPLACE_GETDOMAINNAME])
-  REPLACE_GETDTABLESIZE=0; AC_SUBST([REPLACE_GETDTABLESIZE])
-  REPLACE_GETLOGIN_R=0;   AC_SUBST([REPLACE_GETLOGIN_R])
-  REPLACE_GETGROUPS=0;    AC_SUBST([REPLACE_GETGROUPS])
-  REPLACE_GETPAGESIZE=0;  AC_SUBST([REPLACE_GETPAGESIZE])
-  REPLACE_GETPASS=0;      AC_SUBST([REPLACE_GETPASS])
-  REPLACE_ISATTY=0;       AC_SUBST([REPLACE_ISATTY])
-  REPLACE_LCHOWN=0;       AC_SUBST([REPLACE_LCHOWN])
-  REPLACE_LINK=0;         AC_SUBST([REPLACE_LINK])
-  REPLACE_LINKAT=0;       AC_SUBST([REPLACE_LINKAT])
-  REPLACE_LSEEK=0;        AC_SUBST([REPLACE_LSEEK])
-  REPLACE_PREAD=0;        AC_SUBST([REPLACE_PREAD])
-  REPLACE_PWRITE=0;       AC_SUBST([REPLACE_PWRITE])
-  REPLACE_READ=0;         AC_SUBST([REPLACE_READ])
-  REPLACE_READLINK=0;     AC_SUBST([REPLACE_READLINK])
-  REPLACE_READLINKAT=0;   AC_SUBST([REPLACE_READLINKAT])
-  REPLACE_RMDIR=0;        AC_SUBST([REPLACE_RMDIR])
-  REPLACE_SLEEP=0;        AC_SUBST([REPLACE_SLEEP])
-  REPLACE_SYMLINK=0;      AC_SUBST([REPLACE_SYMLINK])
-  REPLACE_SYMLINKAT=0;    AC_SUBST([REPLACE_SYMLINKAT])
-  REPLACE_TRUNCATE=0;     AC_SUBST([REPLACE_TRUNCATE])
-  REPLACE_TTYNAME_R=0;    AC_SUBST([REPLACE_TTYNAME_R])
-  REPLACE_UNLINK=0;       AC_SUBST([REPLACE_UNLINK])
-  REPLACE_UNLINKAT=0;     AC_SUBST([REPLACE_UNLINKAT])
-  REPLACE_USLEEP=0;       AC_SUBST([REPLACE_USLEEP])
-  REPLACE_WRITE=0;        AC_SUBST([REPLACE_WRITE])
-  UNISTD_H_HAVE_SYS_RANDOM_H=0; AC_SUBST([UNISTD_H_HAVE_SYS_RANDOM_H])
-  UNISTD_H_HAVE_WINSOCK2_H=0; AC_SUBST([UNISTD_H_HAVE_WINSOCK2_H])
+  HAVE_CHOWN=1;                      AC_SUBST([HAVE_CHOWN])
+  HAVE_COPY_FILE_RANGE=1;            AC_SUBST([HAVE_COPY_FILE_RANGE])
+  HAVE_DUP3=1;                       AC_SUBST([HAVE_DUP3])
+  HAVE_EUIDACCESS=1;                 AC_SUBST([HAVE_EUIDACCESS])
+  HAVE_EXECVPE=1;                    AC_SUBST([HAVE_EXECVPE])
+  HAVE_FACCESSAT=1;                  AC_SUBST([HAVE_FACCESSAT])
+  HAVE_FCHDIR=1;                     AC_SUBST([HAVE_FCHDIR])
+  HAVE_FCHOWNAT=1;                   AC_SUBST([HAVE_FCHOWNAT])
+  HAVE_FDATASYNC=1;                  AC_SUBST([HAVE_FDATASYNC])
+  HAVE_FSYNC=1;                      AC_SUBST([HAVE_FSYNC])
+  HAVE_FTRUNCATE=1;                  AC_SUBST([HAVE_FTRUNCATE])
+  HAVE_GETDTABLESIZE=1;              AC_SUBST([HAVE_GETDTABLESIZE])
+  HAVE_GETENTROPY=1;                 AC_SUBST([HAVE_GETENTROPY])
+  HAVE_GETGROUPS=1;                  AC_SUBST([HAVE_GETGROUPS])
+  HAVE_GETHOSTNAME=1;                AC_SUBST([HAVE_GETHOSTNAME])
+  HAVE_GETLOGIN=1;                   AC_SUBST([HAVE_GETLOGIN])
+  HAVE_GETPAGESIZE=1;                AC_SUBST([HAVE_GETPAGESIZE])
+  HAVE_GETPASS=1;                    AC_SUBST([HAVE_GETPASS])
+  HAVE_GROUP_MEMBER=1;               AC_SUBST([HAVE_GROUP_MEMBER])
+  HAVE_LCHOWN=1;                     AC_SUBST([HAVE_LCHOWN])
+  HAVE_LINK=1;                       AC_SUBST([HAVE_LINK])
+  HAVE_LINKAT=1;                     AC_SUBST([HAVE_LINKAT])
+  HAVE_PIPE=1;                       AC_SUBST([HAVE_PIPE])
+  HAVE_PIPE2=1;                      AC_SUBST([HAVE_PIPE2])
+  HAVE_PREAD=1;                      AC_SUBST([HAVE_PREAD])
+  HAVE_PWRITE=1;                     AC_SUBST([HAVE_PWRITE])
+  HAVE_READLINK=1;                   AC_SUBST([HAVE_READLINK])
+  HAVE_READLINKAT=1;                 AC_SUBST([HAVE_READLINKAT])
+  HAVE_SETHOSTNAME=1;                AC_SUBST([HAVE_SETHOSTNAME])
+  HAVE_SLEEP=1;                      AC_SUBST([HAVE_SLEEP])
+  HAVE_SYMLINK=1;                    AC_SUBST([HAVE_SYMLINK])
+  HAVE_SYMLINKAT=1;                  AC_SUBST([HAVE_SYMLINKAT])
+  HAVE_UNLINKAT=1;                   AC_SUBST([HAVE_UNLINKAT])
+  HAVE_USLEEP=1;                     AC_SUBST([HAVE_USLEEP])
+  HAVE_DECL_ENVIRON=1;               AC_SUBST([HAVE_DECL_ENVIRON])
+  HAVE_DECL_EXECVPE=1;               AC_SUBST([HAVE_DECL_EXECVPE])
+  HAVE_DECL_FCHDIR=1;                AC_SUBST([HAVE_DECL_FCHDIR])
+  HAVE_DECL_FDATASYNC=1;             AC_SUBST([HAVE_DECL_FDATASYNC])
+  HAVE_DECL_GETDOMAINNAME=1;         AC_SUBST([HAVE_DECL_GETDOMAINNAME])
+  HAVE_DECL_GETLOGIN=1;              AC_SUBST([HAVE_DECL_GETLOGIN])
+  HAVE_DECL_GETLOGIN_R=1;            AC_SUBST([HAVE_DECL_GETLOGIN_R])
+  HAVE_DECL_GETPAGESIZE=1;           AC_SUBST([HAVE_DECL_GETPAGESIZE])
+  HAVE_DECL_GETUSERSHELL=1;          AC_SUBST([HAVE_DECL_GETUSERSHELL])
+  HAVE_DECL_SETHOSTNAME=1;           AC_SUBST([HAVE_DECL_SETHOSTNAME])
+  HAVE_DECL_TRUNCATE=1;              AC_SUBST([HAVE_DECL_TRUNCATE])
+  HAVE_DECL_TTYNAME_R=1;             AC_SUBST([HAVE_DECL_TTYNAME_R])
+  HAVE_OS_H=0;                       AC_SUBST([HAVE_OS_H])
+  HAVE_SYS_PARAM_H=0;                AC_SUBST([HAVE_SYS_PARAM_H])
+  REPLACE_ACCESS=0;                  AC_SUBST([REPLACE_ACCESS])
+  REPLACE_CHOWN=0;                   AC_SUBST([REPLACE_CHOWN])
+  REPLACE_CLOSE=0;                   AC_SUBST([REPLACE_CLOSE])
+  REPLACE_COPY_FILE_RANGE=0;         AC_SUBST([REPLACE_COPY_FILE_RANGE])
+  REPLACE_DUP=0;                     AC_SUBST([REPLACE_DUP])
+  REPLACE_DUP2=0;                    AC_SUBST([REPLACE_DUP2])
+  REPLACE_DUP3=0;                    AC_SUBST([REPLACE_DUP3])
+  REPLACE_EXECL=0;                   AC_SUBST([REPLACE_EXECL])
+  REPLACE_EXECLE=0;                  AC_SUBST([REPLACE_EXECLE])
+  REPLACE_EXECLP=0;                  AC_SUBST([REPLACE_EXECLP])
+  REPLACE_EXECV=0;                   AC_SUBST([REPLACE_EXECV])
+  REPLACE_EXECVE=0;                  AC_SUBST([REPLACE_EXECVE])
+  REPLACE_EXECVP=0;                  AC_SUBST([REPLACE_EXECVP])
+  REPLACE_EXECVPE=0;                 AC_SUBST([REPLACE_EXECVPE])
+  REPLACE_FACCESSAT=0;               AC_SUBST([REPLACE_FACCESSAT])
+  REPLACE_FCHOWNAT=0;                AC_SUBST([REPLACE_FCHOWNAT])
+  REPLACE_FDATASYNC=0;               AC_SUBST([REPLACE_FDATASYNC])
+  REPLACE_FTRUNCATE=0;               AC_SUBST([REPLACE_FTRUNCATE])
+  REPLACE_GETCWD=0;                  AC_SUBST([REPLACE_GETCWD])
+  REPLACE_GETDOMAINNAME=0;           AC_SUBST([REPLACE_GETDOMAINNAME])
+  REPLACE_GETDTABLESIZE=0;           AC_SUBST([REPLACE_GETDTABLESIZE])
+  REPLACE_GETENTROPY=0;              AC_SUBST([REPLACE_GETENTROPY])
+  REPLACE_GETLOGIN_R=0;              AC_SUBST([REPLACE_GETLOGIN_R])
+  REPLACE_GETGROUPS=0;               AC_SUBST([REPLACE_GETGROUPS])
+  REPLACE_GETPAGESIZE=0;             AC_SUBST([REPLACE_GETPAGESIZE])
+  REPLACE_GETPASS=0;                 AC_SUBST([REPLACE_GETPASS])
+  REPLACE_GETPASS_FOR_GETPASS_GNU=0; AC_SUBST([REPLACE_GETPASS_FOR_GETPASS_GNU])
+  REPLACE_ISATTY=0;                  AC_SUBST([REPLACE_ISATTY])
+  REPLACE_LCHOWN=0;                  AC_SUBST([REPLACE_LCHOWN])
+  REPLACE_LINK=0;                    AC_SUBST([REPLACE_LINK])
+  REPLACE_LINKAT=0;                  AC_SUBST([REPLACE_LINKAT])
+  REPLACE_LSEEK=0;                   AC_SUBST([REPLACE_LSEEK])
+  REPLACE_PIPE2=0;                   AC_SUBST([REPLACE_PIPE2])
+  REPLACE_PREAD=0;                   AC_SUBST([REPLACE_PREAD])
+  REPLACE_PWRITE=0;                  AC_SUBST([REPLACE_PWRITE])
+  REPLACE_READ=0;                    AC_SUBST([REPLACE_READ])
+  REPLACE_READLINK=0;                AC_SUBST([REPLACE_READLINK])
+  REPLACE_READLINKAT=0;              AC_SUBST([REPLACE_READLINKAT])
+  REPLACE_RMDIR=0;                   AC_SUBST([REPLACE_RMDIR])
+  REPLACE_SETHOSTNAME=0;             AC_SUBST([REPLACE_SETHOSTNAME])
+  REPLACE_SLEEP=0;                   AC_SUBST([REPLACE_SLEEP])
+  REPLACE_SYMLINK=0;                 AC_SUBST([REPLACE_SYMLINK])
+  REPLACE_SYMLINKAT=0;               AC_SUBST([REPLACE_SYMLINKAT])
+  REPLACE_TRUNCATE=0;                AC_SUBST([REPLACE_TRUNCATE])
+  REPLACE_TTYNAME_R=0;               AC_SUBST([REPLACE_TTYNAME_R])
+  REPLACE_UNLINK=0;                  AC_SUBST([REPLACE_UNLINK])
+  REPLACE_UNLINKAT=0;                AC_SUBST([REPLACE_UNLINKAT])
+  REPLACE_USLEEP=0;                  AC_SUBST([REPLACE_USLEEP])
+  REPLACE_WRITE=0;                   AC_SUBST([REPLACE_WRITE])
+  UNISTD_H_HAVE_SYS_RANDOM_H=0;      AC_SUBST([UNISTD_H_HAVE_SYS_RANDOM_H])
+  UNISTD_H_HAVE_WINSOCK2_H=0;        AC_SUBST([UNISTD_H_HAVE_WINSOCK2_H])
   UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0;
                            AC_SUBST([UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS])
 ])
index b689020..407c0ba 100644 (file)
@@ -1,6 +1,6 @@
 # unlocked-io.m4 serial 16
 
-# Copyright (C) 1998-2006, 2009-2021 Free Software Foundation, Inc.
+# Copyright (C) 1998-2006, 2009-2023 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
index 483bba9..639b29a 100644 (file)
@@ -1,5 +1,5 @@
-# vasnprintf.m4 serial 38
-dnl Copyright (C) 2002-2004, 2006-2021 Free Software Foundation, Inc.
+# vasnprintf.m4 serial 49
+dnl Copyright (C) 2002-2004, 2006-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -29,6 +29,15 @@ AC_DEFUN([gl_REPLACE_VASNPRINTF],
   gl_PREREQ_ASNPRINTF
 ])
 
+AC_DEFUN([gl_FUNC_VASNWPRINTF],
+[
+  AC_LIBOBJ([printf-args])
+  gl_PREREQ_PRINTF_ARGS
+  gl_PREREQ_PRINTF_PARSE
+  gl_PREREQ_VASNWPRINTF
+  gl_PREREQ_ASNPRINTF
+])
+
 # Prerequisites of lib/printf-args.h, lib/printf-args.c.
 AC_DEFUN([gl_PREREQ_PRINTF_ARGS],
 [
@@ -37,6 +46,7 @@ AC_DEFUN([gl_PREREQ_PRINTF_ARGS],
 ])
 
 # Prerequisites of lib/printf-parse.h, lib/printf-parse.c.
+# Prerequisites of lib/wprintf-parse.h, lib/wprintf-parse.c.
 AC_DEFUN([gl_PREREQ_PRINTF_PARSE],
 [
   AC_REQUIRE([gl_FEATURES_H])
@@ -50,19 +60,13 @@ AC_DEFUN([gl_PREREQ_PRINTF_PARSE],
   AC_REQUIRE([gt_AC_TYPE_INTMAX_T])
 ])
 
-# Prerequisites of lib/vasnprintf.c.
+# Prerequisites of lib/vasnprintf.c if !WIDE_CHAR_VERSION.
 AC_DEFUN_ONCE([gl_PREREQ_VASNPRINTF],
 [
-  AC_REQUIRE([AC_FUNC_ALLOCA])
-  AC_REQUIRE([gt_TYPE_WCHAR_T])
-  AC_REQUIRE([gt_TYPE_WINT_T])
-  AC_CHECK_FUNCS([snprintf strnlen wcslen wcsnlen mbrtowc wcrtomb])
+  AC_CHECK_FUNCS([snprintf strnlen wcrtomb])
   dnl Use the _snprintf function only if it is declared (because on NetBSD it
   dnl is defined as a weak alias of snprintf; we prefer to use the latter).
   AC_CHECK_DECLS([_snprintf], , , [[#include <stdio.h>]])
-  dnl Knowing DBL_EXPBIT0_WORD and DBL_EXPBIT0_BIT enables an optimization
-  dnl in the code for NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE.
-  AC_REQUIRE([gl_DOUBLE_EXPONENT_LOCATION])
   dnl We can avoid a lot of code by assuming that snprintf's return value
   dnl conforms to ISO C99. So check that.
   AC_REQUIRE([gl_SNPRINTF_RETVAL_C99])
@@ -84,6 +88,55 @@ AC_DEFUN_ONCE([gl_PREREQ_VASNPRINTF],
          terminated.])
       ;;
   esac
+  gl_PREREQ_VASNXPRINTF
+])
+
+# Prerequisites of lib/vasnwprintf.c.
+AC_DEFUN_ONCE([gl_PREREQ_VASNWPRINTF],
+[
+  AC_CHECK_FUNCS_ONCE([swprintf wcsnlen mbrtowc])
+  AC_CHECK_DECLS([_snwprintf], , , [[#include <stdio.h>]])
+  AC_CHECK_DECLS([wcsnlen], , , [[#include <wchar.h>]])
+  gl_SWPRINTF_WORKS
+  case "$gl_cv_func_swprintf_works" in
+    *yes)
+      AC_DEFINE([HAVE_WORKING_SWPRINTF], [1],
+        [Define if the swprintf function works correctly when it produces output
+         that contains null wide characters.])
+      ;;
+  esac
+  gl_MBRTOWC_C_LOCALE
+  case "$gl_cv_func_mbrtowc_C_locale_sans_EILSEQ" in
+    *yes) ;;
+    *)
+      AC_DEFINE([NEED_WPRINTF_DIRECTIVE_C], [1],
+        [Define if the vasnwprintf implementation needs special code for
+         the 'c' directive.])
+      ;;
+  esac
+  gl_SWPRINTF_DIRECTIVE_LA
+  case "$gl_cv_func_swprintf_directive_la" in
+    *yes) ;;
+    *)
+      AC_DEFINE([NEED_WPRINTF_DIRECTIVE_LA], [1],
+        [Define if the vasnwprintf implementation needs special code for
+         the 'a' directive with 'long double' arguments.])
+      ;;
+  esac
+  gl_MUSL_LIBC
+  gl_PREREQ_VASNXPRINTF
+])
+
+# Common prerequisites of lib/vasnprintf.c and lib/vasnwprintf.c.
+AC_DEFUN_ONCE([gl_PREREQ_VASNXPRINTF],
+[
+  AC_REQUIRE([AC_FUNC_ALLOCA])
+  AC_REQUIRE([gt_TYPE_WCHAR_T])
+  AC_REQUIRE([gt_TYPE_WINT_T])
+  AC_CHECK_FUNCS([wcslen])
+  dnl Knowing DBL_EXPBIT0_WORD and DBL_EXPBIT0_BIT enables an optimization
+  dnl in the code for NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE.
+  AC_REQUIRE([gl_DOUBLE_EXPONENT_LOCATION])
 ])
 
 # Extra prerequisites of lib/vasnprintf.c for supporting 'long double'
@@ -152,7 +205,22 @@ AC_DEFUN([gl_PREREQ_VASNPRINTF_DIRECTIVE_A],
       AC_DEFINE([NEED_PRINTF_DIRECTIVE_A], [1],
         [Define if the vasnprintf implementation needs special code for
          the 'a' and 'A' directives.])
-      AC_CHECK_FUNCS([nl_langinfo])
+      gl_CHECK_FUNCS_ANDROID([nl_langinfo], [[#include <langinfo.h>]])
+      ;;
+  esac
+])
+
+# Extra prerequisites of lib/vasnprintf.c for supporting the 'b' directive.
+AC_DEFUN([gl_PREREQ_VASNPRINTF_DIRECTIVE_B],
+[
+  AC_REQUIRE([gl_PRINTF_DIRECTIVE_B])
+  case "$gl_cv_func_printf_directive_b" in
+    *yes)
+      ;;
+    *)
+      AC_DEFINE([NEED_PRINTF_DIRECTIVE_B], [1],
+        [Define if the vasnprintf implementation needs special code for
+         the 'b' directive.])
       ;;
   esac
 ])
@@ -187,6 +255,21 @@ AC_DEFUN([gl_PREREQ_VASNPRINTF_DIRECTIVE_LS],
   esac
 ])
 
+# Extra prerequisites of lib/vasnprintf.c for supporting the 'lc' directive.
+AC_DEFUN([gl_PREREQ_VASNPRINTF_DIRECTIVE_LC],
+[
+  AC_REQUIRE([gl_PRINTF_DIRECTIVE_LC])
+  case "$gl_cv_func_printf_directive_lc" in
+    *yes)
+      ;;
+    *)
+      AC_DEFINE([NEED_PRINTF_DIRECTIVE_LC], [1],
+        [Define if the vasnprintf implementation needs special code for
+         the 'lc' directive.])
+      ;;
+  esac
+])
+
 # Extra prerequisites of lib/vasnprintf.c for supporting the ' flag.
 AC_DEFUN([gl_PREREQ_VASNPRINTF_FLAG_GROUPING],
 [
@@ -276,15 +359,17 @@ AC_DEFUN([gl_PREREQ_VASNPRINTF_ENOMEM],
 ])
 
 # Prerequisites of lib/vasnprintf.c including all extras for POSIX compliance.
-AC_DEFUN([gl_PREREQ_VASNPRINTF_WITH_EXTRAS],
+AC_DEFUN([gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS],
 [
   AC_REQUIRE([gl_PREREQ_VASNPRINTF])
   gl_PREREQ_VASNPRINTF_LONG_DOUBLE
   gl_PREREQ_VASNPRINTF_INFINITE_DOUBLE
   gl_PREREQ_VASNPRINTF_INFINITE_LONG_DOUBLE
   gl_PREREQ_VASNPRINTF_DIRECTIVE_A
+  gl_PREREQ_VASNPRINTF_DIRECTIVE_B
   gl_PREREQ_VASNPRINTF_DIRECTIVE_F
   gl_PREREQ_VASNPRINTF_DIRECTIVE_LS
+  gl_PREREQ_VASNPRINTF_DIRECTIVE_LC
   gl_PREREQ_VASNPRINTF_FLAG_GROUPING
   gl_PREREQ_VASNPRINTF_FLAG_LEFTADJUST
   gl_PREREQ_VASNPRINTF_FLAG_ZERO
@@ -292,7 +377,34 @@ AC_DEFUN([gl_PREREQ_VASNPRINTF_WITH_EXTRAS],
   gl_PREREQ_VASNPRINTF_ENOMEM
 ])
 
+# Extra prerequisites of lib/vasnprintf.c for supporting the 'B' directive.
+AC_DEFUN([gl_PREREQ_VASNPRINTF_DIRECTIVE_UPPERCASE_B],
+[
+  AC_REQUIRE([gl_PRINTF_DIRECTIVE_UPPERCASE_B])
+  case "$gl_cv_func_printf_directive_uppercase_b" in
+    *yes)
+      ;;
+    *)
+      AC_DEFINE([NEED_PRINTF_DIRECTIVE_UPPERCASE_B], [1],
+        [Define if the vasnprintf implementation needs special code for
+         the 'B' directive.])
+      ;;
+  esac
+])
+
+# Prerequisites of lib/vasnprintf.c including all extras for POSIX compliance
+# and GNU compatibility.
+AC_DEFUN([gl_PREREQ_VASNPRINTF_WITH_GNU_EXTRAS],
+[
+  gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS
+  AC_DEFINE([SUPPORT_GNU_PRINTF_DIRECTIVES], [1],
+    [Define if the vasnprintf implementation should support GNU compatible
+     printf directives.])
+  gl_PREREQ_VASNPRINTF_DIRECTIVE_UPPERCASE_B
+])
+
 # Prerequisites of lib/asnprintf.c.
+# Prerequisites of lib/asnwprintf.c.
 AC_DEFUN([gl_PREREQ_ASNPRINTF],
 [
 ])
diff --git a/m4/vasprintf.m4 b/m4/vasprintf.m4
deleted file mode 100644 (file)
index a26de84..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-# vasprintf.m4 serial 6
-dnl Copyright (C) 2002-2003, 2006-2007, 2009-2021 Free Software Foundation,
-dnl Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-AC_DEFUN([gl_FUNC_VASPRINTF],
-[
-  AC_CHECK_FUNCS([vasprintf])
-  if test $ac_cv_func_vasprintf = no; then
-    gl_REPLACE_VASPRINTF
-  fi
-])
-
-AC_DEFUN([gl_REPLACE_VASPRINTF],
-[
-  AC_LIBOBJ([vasprintf])
-  AC_LIBOBJ([asprintf])
-  AC_REQUIRE([gl_STDIO_H_DEFAULTS])
-  if test $ac_cv_func_vasprintf = yes; then
-    REPLACE_VASPRINTF=1
-  else
-    HAVE_VASPRINTF=0
-  fi
-  gl_PREREQ_VASPRINTF_H
-  gl_PREREQ_VASPRINTF
-  gl_PREREQ_ASPRINTF
-])
-
-# Prerequisites of the vasprintf portion of lib/stdio.h.
-AC_DEFUN([gl_PREREQ_VASPRINTF_H],
-[
-  dnl Persuade glibc <stdio.h> to declare asprintf() and vasprintf().
-  AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
-])
-
-# Prerequisites of lib/vasprintf.c.
-AC_DEFUN([gl_PREREQ_VASPRINTF],
-[
-])
-
-# Prerequisites of lib/asprintf.c.
-AC_DEFUN([gl_PREREQ_ASPRINTF],
-[
-])
index ca7fd24..a948ef6 100644 (file)
@@ -1,5 +1,5 @@
-# version-etc.m4 serial 1
-# Copyright (C) 2009-2021 Free Software Foundation, Inc.
+# version-etc.m4 serial 2
+# Copyright (C) 2009-2023 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -8,7 +8,7 @@ dnl $1 - configure flag and define name
 dnl $2 - human readable description
 m4_define([gl_VERSION_ETC_FLAG],
 [dnl
-  AC_ARG_WITH([$1], [AS_HELP_STRING([--with-$1], [$2])],
+  AC_ARG_WITH([$1], [AS_HELP_STRING([[--with-]$1], [$2])],
     [dnl
       case $withval in
         yes|no) ;;
index d161bd7..f0468e8 100644 (file)
@@ -1,5 +1,5 @@
 # visibility.m4 serial 8
-dnl Copyright (C) 2005, 2008, 2010-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2005, 2008, 2010-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 04edfe8..10649c5 100644 (file)
@@ -1,5 +1,5 @@
-# warn-on-use.m4 serial 9
-dnl Copyright (C) 2010-2021 Free Software Foundation, Inc.
+# warn-on-use.m4 serial 10
+dnl Copyright (C) 2010-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -32,17 +32,30 @@ AC_DEFUN([gl_WARN_ON_USE_PREPARE],
           undefining macros.])])dnl
      for gl_func in m4_flatten([$2]); do
        AS_VAR_PUSHDEF([gl_Symbol], [gl_cv_have_raw_decl_$gl_func])dnl
+       dnl As a workaround to implicit built-in function declarations in
+       dnl clang (e.g. strndup), reference ac_compile_for_check_decl instead
+       dnl of ac_compile.  If, for whatever reason, the override of AC_PROG_CC
+       dnl in zzgnulib.m4 is inactive, use the original ac_compile.
+       ac_save_ac_compile="$ac_compile"
+       if test -n "$ac_compile_for_check_decl"; then
+         ac_compile="$ac_compile_for_check_decl"
+       fi
        AC_CACHE_CHECK([whether $gl_func is declared without a macro],
          [gl_Symbol],
          [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([$1],
 [[#undef $gl_func
   (void) $gl_func;]])],
            [AS_VAR_SET([gl_Symbol], [yes])], [AS_VAR_SET([gl_Symbol], [no])])])
+       ac_compile="$ac_save_ac_compile"
        AS_VAR_IF([gl_Symbol], [yes],
          [AC_DEFINE_UNQUOTED(AS_TR_CPP([HAVE_RAW_DECL_$gl_func]), [1])
-          dnl shortcut - if the raw declaration exists, then set a cache
-          dnl variable to allow skipping any later AC_CHECK_DECL efforts
-          eval ac_cv_have_decl_$gl_func=yes])
+          dnl Shortcut for an AC_CHECK_DECL invocation that may come later:
+          dnl If the raw declaration exists with the given includes, then
+          dnl AC_CHECK_DECL with its many includes would see it as well.
+          dnl So, set a cache variable to allow skipping any later
+          dnl AC_CHECK_DECL invocation for $gl_func.
+          eval "ac_cv_have_decl_$gl_func=yes"
+         ])
        AS_VAR_POPDEF([gl_Symbol])dnl
      done
     ])
index 9e24d89..063bc5c 100644 (file)
@@ -1,5 +1,5 @@
 # warnings.m4 serial 16
-dnl Copyright (C) 2008-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 818b319..442932b 100644 (file)
@@ -1,13 +1,13 @@
 dnl A placeholder for ISO C99 <wchar.h>, for platforms that have issues.
 
-dnl Copyright (C) 2007-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 
 dnl Written by Eric Blake.
 
-# wchar_h.m4 serial 53
+# wchar_h.m4 serial 60
 
 AC_DEFUN_ONCE([gl_WCHAR_H],
 [
@@ -189,6 +189,8 @@ AC_DEFUN([gl_WCHAR_H_REQUIRE_DEFAULTS],
     gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_WCSDUP], [1])
   ])
   m4_require(GL_MODULE_INDICATOR_PREFIX[_WCHAR_H_MODULE_INDICATOR_DEFAULTS])
+  dnl Make sure the shell variable for GNULIB_FREE_POSIX is initialized.
+  gl_STDLIB_H_REQUIRE_DEFAULTS
   AC_REQUIRE([gl_WCHAR_H_DEFAULTS])
 ])
 
@@ -251,5 +253,10 @@ AC_DEFUN([gl_WCHAR_H_DEFAULTS],
   REPLACE_WCWIDTH=0;    AC_SUBST([REPLACE_WCWIDTH])
   REPLACE_WCSWIDTH=0;   AC_SUBST([REPLACE_WCSWIDTH])
   REPLACE_WCSFTIME=0;   AC_SUBST([REPLACE_WCSFTIME])
+  REPLACE_WCSCMP=0;     AC_SUBST([REPLACE_WCSCMP])
+  REPLACE_WCSNCMP=0;    AC_SUBST([REPLACE_WCSNCMP])
+  REPLACE_WCSSTR=0;     AC_SUBST([REPLACE_WCSSTR])
   REPLACE_WCSTOK=0;     AC_SUBST([REPLACE_WCSTOK])
+  REPLACE_WMEMCMP=0;    AC_SUBST([REPLACE_WMEMCMP])
+  REPLACE_WMEMPCPY=0;   AC_SUBST([REPLACE_WMEMPCPY])
 ])
index 34db10e..50bde08 100644 (file)
@@ -1,5 +1,5 @@
 # wchar_t.m4 serial 4 (gettext-0.18.2)
-dnl Copyright (C) 2002-2003, 2008-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2003, 2008-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index cd96f11..d51b36e 100644 (file)
@@ -1,5 +1,5 @@
 # wcrtomb.m4 serial 17
-dnl Copyright (C) 2008-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 159b609..90042a5 100644 (file)
@@ -1,5 +1,5 @@
 # wctob.m4 serial 13
-dnl Copyright (C) 2008-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 2da8b26..2e22310 100644 (file)
@@ -1,5 +1,5 @@
 # wctomb.m4 serial 2
-dnl Copyright (C) 2011-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 7d74212..6856a73 100644 (file)
@@ -2,7 +2,7 @@
 
 dnl A placeholder for ISO C99 <wctype.h>, for platforms that lack it.
 
-dnl Copyright (C) 2006-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 2ac2a51..e7829e9 100644 (file)
@@ -1,5 +1,5 @@
-# wcwidth.m4 serial 34
-dnl Copyright (C) 2006-2021 Free Software Foundation, Inc.
+# wcwidth.m4 serial 36
+dnl Copyright (C) 2006-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -41,9 +41,9 @@ AC_DEFUN([gl_FUNC_WCWIDTH],
   if test $ac_cv_func_wcwidth = yes || test $gl_cv_func_wcwidth_macro = yes; then
     HAVE_WCWIDTH=1
     dnl On Mac OS X 10.3, wcwidth(0x0301) (COMBINING ACUTE ACCENT) returns 1.
-    dnl On NetBSD 9.0, OpenBSD 5.0, MidnightBSD 1.1,
+    dnl On macOS 12.5, NetBSD 9.0, OpenBSD 5.0, MidnightBSD 1.1,
     dnl wcwidth(0x05B0) (HEBREW POINT SHEVA) returns 1.
-    dnl On NetBSD 9.0, MidnightBSD 1.1, OSF/1 5.1,
+    dnl On macOS 12.5, NetBSD 9.0, MidnightBSD 1.1, OSF/1 5.1,
     dnl wcwidth(0x200B) (ZERO WIDTH SPACE) returns 1.
     dnl On OpenBSD 5.8, wcwidth(0xFF1A) (FULLWIDTH COLON) returns 0.
     dnl This leads to bugs in 'ls' (coreutils).
@@ -86,13 +86,13 @@ int main ()
           [
 changequote(,)dnl
            case "$host_os" in
-                            # Guess yes on glibc systems.
-             *-gnu* | gnu*) gl_cv_func_wcwidth_works="guessing yes";;
-                            # Guess yes on musl systems.
-             *-musl*)       gl_cv_func_wcwidth_works="guessing yes";;
-                            # Guess yes on AIX 7 systems.
-             aix[7-9]*)     gl_cv_func_wcwidth_works="guessing yes";;
-             *)             gl_cv_func_wcwidth_works="$gl_cross_guess_normal";;
+                                 # Guess yes on glibc systems.
+             *-gnu* | gnu*)      gl_cv_func_wcwidth_works="guessing yes";;
+                                 # Guess yes on musl systems.
+             *-musl* | midipix*) gl_cv_func_wcwidth_works="guessing yes";;
+                                 # Guess yes on AIX 7 systems.
+             aix[7-9]*)          gl_cv_func_wcwidth_works="guessing yes";;
+             *)                  gl_cv_func_wcwidth_works="$gl_cross_guess_normal";;
            esac
 changequote([,])dnl
           ])
index a49c508..dfd743b 100644 (file)
@@ -1,5 +1,5 @@
 # wint_t.m4 serial 11
-dnl Copyright (C) 2003, 2007-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2007-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index a5b4eb7..ac414fb 100644 (file)
@@ -1,5 +1,5 @@
 # wmemchr.m4 serial 5
-dnl Copyright (C) 2011-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 9d774ae..abf1df3 100644 (file)
@@ -1,5 +1,5 @@
-# wmempcpy.m4 serial 1
-dnl Copyright (C) 2020-2021 Free Software Foundation, Inc.
+# wmempcpy.m4 serial 3
+dnl Copyright (C) 2020-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -14,8 +14,11 @@ AC_DEFUN([gl_FUNC_WMEMPCPY],
   dnl The wmempcpy() declaration in lib/wchar.in.h uses 'restrict'.
   AC_REQUIRE([AC_C_RESTRICT])
 
-  AC_CHECK_FUNCS_ONCE([wmempcpy])
+  gl_CHECK_FUNCS_ANDROID([wmempcpy], [[#include <wchar.h>]])
   if test $ac_cv_func_wmempcpy = no; then
     HAVE_WMEMPCPY=0
+    case "$gl_cv_onwards_func_wmempcpy" in
+      future*) REPLACE_WMEMPCPY=1 ;;
+    esac
   fi
 ])
index 8fabf1c..fc56f59 100644 (file)
@@ -1,5 +1,5 @@
 # xalloc.m4 serial 18
-dnl Copyright (C) 2002-2006, 2009-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2006, 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 64e8a4f..649db9c 100644 (file)
@@ -1,5 +1,5 @@
 # xsize.m4 serial 5
-dnl Copyright (C) 2003-2004, 2008-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2003-2004, 2008-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index e6cdef5..dc41261 100644 (file)
@@ -1,5 +1,5 @@
 #serial 11
-dnl Copyright (C) 2002-2007, 2009-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2007, 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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/m4/xvasprintf.m4 b/m4/xvasprintf.m4
deleted file mode 100644 (file)
index 20a1a06..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-# xvasprintf.m4 serial 2
-dnl Copyright (C) 2006, 2009-2021 Free Software Foundation, Inc.
-dnl This file is free software; the Free 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 Prerequisites of lib/xvasprintf.c.
-AC_DEFUN([gl_XVASPRINTF], [:])
diff --git a/m4/year2038.m4 b/m4/year2038.m4
deleted file mode 100644 (file)
index ad7f303..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-# year2038.m4 serial 5
-dnl Copyright (C) 2017-2021 Free Software Foundation, Inc.
-dnl This file is free software; the Free 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 Attempt to ensure that 'time_t' is a 64-bit type
-dnl and that the functions time(), stat(), etc. return 64-bit times.
-
-AC_DEFUN([gl_YEAR2038_EARLY],
-[
-  AC_REQUIRE([AC_CANONICAL_HOST])
-  case "$host_os" in
-    mingw*)
-      AC_DEFINE([__MINGW_USE_VC2005_COMPAT], [1],
-        [For 64-bit time_t on 32-bit mingw.])
-      ;;
-  esac
-])
-
-# gl_YEAR2038_TEST_INCLUDES
-# -------------------------
-AC_DEFUN([gl_YEAR2038_TEST_INCLUDES],
-[[
-  #include <time.h>
-  /* Check that time_t can represent 2**63 - 1 correctly.
-     We can't simply define LARGE_TIME_T to be 9223372036854775807,
-     since some C++ compilers masquerading as C compilers
-     incorrectly reject 9223372036854775807.  */
-  #define LARGE_TIME_T (((time_t) 1 << 31 << 31) - 1 + ((time_t) 1 << 31 << 31))
-  int verify_time_t_range[(LARGE_TIME_T % 2147483629 == 721
-                           && LARGE_TIME_T % 2147483647 == 1)
-                          ? 1 : -1];
-]])
-
-# gl_YEAR2038_BODY(REQUIRE-64-BIT)
-----------------------------------
-AC_DEFUN([gl_YEAR2038_BODY],
-[
- AC_ARG_ENABLE([year2038],
-   [  --disable-year2038      omit support for timestamps past the year 2038])
- AS_IF([test "$enable_year2038" != no],
- [
-  dnl On many systems, time_t is already a 64-bit type.
-  dnl On those systems where time_t is still 32-bit, it requires kernel
-  dnl and libc support to make it 64-bit. For glibc 2.34 and later on Linux,
-  dnl defining _TIME_BITS=64 and _FILE_OFFSET_BITS=64 is needed on x86 and ARM.
-  dnl
-  dnl On native Windows, the system include files define types __time32_t
-  dnl and __time64_t. By default, time_t is an alias of
-  dnl   - __time32_t on 32-bit mingw,
-  dnl   - __time64_t on 64-bit mingw and on MSVC (since MSVC 8).
-  dnl But when compiling with -D__MINGW_USE_VC2005_COMPAT, time_t is an
-  dnl alias of __time64_t.
-  dnl And when compiling with -D_USE_32BIT_TIME_T, time_t is an alias of
-  dnl __time32_t.
-  AC_CACHE_CHECK([for 64-bit time_t], [gl_cv_type_time_t_64],
-    [AC_COMPILE_IFELSE(
-       [AC_LANG_SOURCE([gl_YEAR2038_TEST_INCLUDES])],
-       [gl_cv_type_time_t_64=yes], [gl_cv_type_time_t_64=no])
-    ])
-  if test "$gl_cv_type_time_t_64" = no; then
-    AC_CACHE_CHECK([for 64-bit time_t with _TIME_BITS=64],
-      [gl_cv_type_time_t_bits_macro],
-      [AC_COMPILE_IFELSE(
-         [AC_LANG_SOURCE([[#define _TIME_BITS 64
-                           #define _FILE_OFFSET_BITS 64
-                           ]gl_YEAR2038_TEST_INCLUDES])],
-         [gl_cv_type_time_t_bits_macro=yes],
-         [gl_cv_type_time_t_bits_macro=no])
-      ])
-    if test "$gl_cv_type_time_t_bits_macro" = yes; then
-      AC_DEFINE([_TIME_BITS], [64],
-        [Number of bits in a timestamp, on hosts where this is settable.])
-      dnl AC_SYS_LARGFILE also defines this; it's OK if we do too.
-      AC_DEFINE([_FILE_OFFSET_BITS], [64],
-        [Number of bits in a file offset, on hosts where this is settable.])
-      gl_cv_type_time_t_64=yes
-    fi
-  fi
-  if test $gl_cv_type_time_t_64 = no; then
-    AC_COMPILE_IFELSE(
-      [AC_LANG_SOURCE(
-         [[#ifdef _USE_32BIT_TIME_T
-             int ok;
-           #else
-             error fail
-           #endif
-         ]])],
-      [AC_MSG_FAILURE([This package requires a 64-bit 'time_t' type. Remove _USE_32BIT_TIME_T from the compiler flags.])],
-      [# If not cross-compiling and $1 says we should check,
-       # and 'touch' works with a large timestamp, then evidently 64-bit time_t
-       # is desired and supported, so fail and ask the builder to fix the
-       # problem.  Otherwise, just warn the builder.
-       m4_ifval([$1],
-         [if test $cross_compiling = no \
-             && TZ=UTC0 touch -t 210602070628.16 conftest.time 2>/dev/null; then
-            rm -f conftest.time
-            AC_MSG_FAILURE([This package requires a 64-bit 'time_t' type, which your system appears to support. You might try configuring with 'CPPFLAGS="-m64" LDFLAGS="-m64"'. To build with a 32-bit time_t anyway (not recommended), configure with '--disable-year2038'.])
-          fi])
-       if test "$gl_warned_about_64_bit_time_t" != yes; then
-         AC_MSG_WARN([This package requires a 64-bit 'time_t' type if there is any way to access timestamps outside the year range 1901-2038 on your platform. Perhaps you should configure with 'CPPFLAGS="-m64" LDFLAGS="-m64"'?])
-         gl_warned_about_64_bit_time_t=yes
-       fi
-      ])
-  fi])
-])
-
-AC_DEFUN([gl_YEAR2038],
-[
-  gl_YEAR2038_BODY([require-64-bit])
-])
index b953384..362102b 100644 (file)
@@ -1,5 +1,5 @@
 # zzgnulib.m4 serial 1
-dnl Copyright (C) 2020-2021 Free Software Foundation, Inc.
+dnl Copyright (C) 2020-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 044254b..44f3db9 100644 (file)
--- a/maint.mk
+++ b/maint.mk
@@ -2,7 +2,7 @@
 # This Makefile fragment tries to be general-purpose enough to be
 # used by many projects via the gnulib maintainer-makefile module.
 
-## Copyright (C) 2001-2021 Free Software Foundation, Inc.
+## Copyright (C) 2001-2023 Free Software Foundation, Inc.
 ##
 ## This program is free software: you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -64,10 +64,10 @@ VC_LIST = $(srcdir)/$(_build-aux)/vc-list-files -C $(srcdir)
 
 # You can override this variable in cfg.mk if your gnulib submodule lives
 # in a different location.
-gnulib_dir ?= $(shell if test -d $(srcdir)/gnulib; then \
-                       echo $(srcdir)/gnulib; \
+gnulib_dir ?= $(shell if test -n "$(GNULIB_SRCDIR)" && test -f "$(GNULIB_SRCDIR)/gnulib-tool"; then \
+                       echo "$(GNULIB_SRCDIR)"; \
                else \
-                       echo ${GNULIB_SRCDIR}; \
+                       echo $(srcdir)/gnulib; \
                fi)
 
 # You can override this variable in cfg.mk to set your own regexp
@@ -473,7 +473,7 @@ sc_error_message_uppercase:
        @$(VC_LIST_EXCEPT)                                              \
          | xargs $(GREP) -nEA2 '[^rp]error *\(' /dev/null              \
          | $(GREP) -E '"[A-Z]'                                         \
-         | $(GREP) -vE '"FATAL|"WARNING|"Java|"C#|PRIuMAX'             \
+         | $(GREP) -vE '"FATAL|"WARNING|"Java|"C#|"PRI'                \
          && { echo '$(ME): found capitalized error message' 1>&2;      \
               exit 1; }                                                \
          || :
@@ -622,9 +622,9 @@ sc_prohibit_xalloc_without_use:
          $(_sc_header_without_use)
 
 # Extract function names:
-# perl -lne '/^(?:extern )?(?:void|char) \*?(\w+) *\(/ and print $1' lib/hash.h
+# perl -lne '/^(?:extern )?(?:void|char|Hash_table) \*?(\w+) *\(/ and print $1' lib/hash.h
 _hash_re = \
-clear|delete|free|get_(first|next)|insert|lookup|print_statistics|reset_tuning
+hash_(re(set_tuning|move)|xin(itialize|sert)|in(itialize|sert)|get_(firs|nex)t|print_statistics|(delet|fre)e|lookup|clear)
 _hash_fn = \<($(_hash_re)) *\(
 _hash_struct = (struct )?\<[Hh]ash_(table|tuning)\>
 sc_prohibit_hash_without_use:
@@ -765,7 +765,7 @@ sc_prohibit_dirent_without_use:
 # Prohibit the inclusion of verify.h without an actual use.
 sc_prohibit_verify_without_use:
        @h='verify.h'                                                   \
-       re='\<(verify(true|expr)?|assume|static_assert) *\('            \
+       re='\<(verify(_expr)?|assume) *\('                              \
          $(_sc_header_without_use)
 
 # Don't include xfreopen.h unless you use one of its functions.
@@ -823,7 +823,7 @@ sc_trailing_blank:
 # Match lines like the following, but where there is only one space
 # between the options and the description:
 #   -D, --all-repeated[=delimit-method]  print all duplicate lines\n
-longopt_re = --[a-z][0-9A-Za-z-]*(\[?=[0-9A-Za-z-]*\]?)?
+longopt_re = --[a-z][0-9A-Za-z-]*(\[?=[0-9A-Za-z-]*]?)?
 sc_two_space_separator_in_usage:
        @prohibit='^   *(-[A-Za-z],)? $(longopt_re) [^ ].*\\$$'         \
        halt='help2man requires at least two spaces between an option and its description'\
@@ -1031,7 +1031,7 @@ perl_filename_lineno_text_ =                                              \
     -e '  }'
 
 prohibit_doubled_words_ = \
-    the then in an on if is it but for or at and do to
+    the then in an on if is it but for or at and do to can
 # expand the regex before running the check to avoid using expensive captures
 prohibit_doubled_word_expanded_ = \
     $(join $(prohibit_doubled_words_),$(addprefix \s+,$(prohibit_doubled_words_)))
@@ -1256,6 +1256,12 @@ sc_makefile_path_separator_check:
        halt=$(msg)                                                     \
          $(_sc_search_regexp)
 
+sc_makefile_DISTCHECK_CONFIGURE_FLAGS:
+       @prohibit='^DISTCHECK_CONFIGURE_FLAGS'                          \
+       in_vc_files='akefile|\.mk$$'                                    \
+       halt="use AM_DISTCHECK_CONFIGURE_FLAGS"                         \
+         $(_sc_search_regexp)
+
 # Check that 'make alpha' will not fail at the end of the process,
 # i.e., when pkg-M.N.tar.xz already exists (either in "." or in ../release)
 # and is read-only.
@@ -1286,7 +1292,7 @@ sc_copyright_check:
        in_vc_files=$(sample-test)                                      \
        halt='out of date copyright in $(sample-test); update it'       \
          $(_sc_search_regexp)
-       @require='Copyright @copyright\{\} .*'$$(date +%Y)              \
+       @require='Copyright @copyright\{} .*'$$(date +%Y)               \
        in_vc_files=$(texi)                                             \
        halt='out of date copyright in $(texi); update it'              \
          $(_sc_search_regexp)
@@ -1367,6 +1373,10 @@ sc_vulnerable_makefile_CVE-2012-3386:
          '  see https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2012-3386 for details') \
          $(_sc_search_regexp)
 
+sc_unportable_grep_q:
+       @prohibit='grep -q' halt="unportable 'grep -q', use >/dev/null instead" \
+         $(_sc_search_regexp)
+
 vc-diff-check:
        $(AM_V_GEN)(unset CDPATH; cd $(srcdir) && $(VC) diff) > vc-diffs || :
        $(AM_V_at)if test -s vc-diffs; then                     \
@@ -1390,7 +1400,12 @@ gpg_key_ID ?=                                                            \
   $$(cd $(srcdir)                                                      \
      && git cat-file tag v$(VERSION)                                   \
         | $(gpgv) --status-fd 1 --keyring /dev/null - - 2>/dev/null    \
-        | $(AWK) '/^\[GNUPG:\] ERRSIG / {print $$3; exit}')
+        | $(AWK) '/^\[GNUPG:] ERRSIG / {print $$3; exit}')
+gpg_key_email ?=                                                       \
+  $$(gpg --list-key --with-colons $(gpg_key_ID) 2>/dev/null            \
+       | $(AWK) -F: '/^uid/ {print $$10; exit}'                        \
+       | $(SED) -n 's/.*<\(.*\)>/\1/p')
+gpg_keyring_url ?= https://savannah.gnu.org/project/release-gpgkeys.php?group=$(PACKAGE)&download=1
 
 translation_project_ ?= coordinator@translationproject.org
 
@@ -1421,12 +1436,15 @@ announcement: NEWS ChangeLog $(rel-files)
            --prev=$(PREV_VERSION)                                      \
            --curr=$(VERSION)                                           \
            --gpg-key-id=$(gpg_key_ID)                                  \
+           $$(test -n "$(gpg_key_email)" &&                            \
+              echo --gpg-key-email="$(gpg_key_email)")                 \
+           $$(test -n "$(gpg_keyring_url)" &&                          \
+              echo --gpg-keyring-url="$(gpg_keyring_url)")             \
            --srcdir=$(srcdir)                                          \
            --news=$(srcdir)/NEWS                                       \
            --bootstrap-tools=$(bootstrap-tools)                        \
            $$(case ,$(bootstrap-tools), in (*,gnulib,*)                \
               echo --gnulib-version=$(gnulib-version);; esac)          \
-           --no-print-checksums                                        \
            $(addprefix --url-dir=, $(url_dir_list))
 
 .PHONY: release-commit
@@ -1523,7 +1541,7 @@ alpha beta stable: $(local-check) writable-files $(submodule-checks)
 
 release:
        $(AM_V_GEN)$(MAKE) _version
-       $(AM_V_GEN)$(MAKE) $(release-type)
+       $(AM_V_at)$(MAKE) $(release-type)
 
 # Override this in cfg.mk if you follow different procedures.
 release-prep-hook ?= release-prep
@@ -1632,12 +1650,32 @@ refresh-po:
        ls $(PODIR)/*.po | $(SED) 's/\.po//;s,$(PODIR)/,,' | \
          sort >> $(PODIR)/LINGUAS
 
- # Running indent once is not idempotent, but running it twice is.
+# Indentation
+
+indent_args ?= -ppi 1
+C_SOURCES ?= $$($(VC_LIST_EXCEPT) | grep '\.[ch]\(.in\)\?$$')
 INDENT_SOURCES ?= $(C_SOURCES)
+exclude_file_name_regexp--indent ?= $(exclude_file_name_regexp--sc_indent)
+
 .PHONY: indent
-indent:
-       indent $(INDENT_SOURCES)
-       indent $(INDENT_SOURCES)
+indent: # Running indent once is not idempotent, but running it twice is.
+       $(AM_V_GEN)indent $(indent_args) $(INDENT_SOURCES) && \
+       indent $(indent_args) $(INDENT_SOURCES)
+
+sc_indent:
+       @if ! indent --version 2> /dev/null | grep 'GNU indent' > /dev/null; then \
+           echo 1>&2 '$(ME): sc_indent: GNU indent is missing';        \
+       else                                                            \
+         fail=0; files="$(INDENT_SOURCES)";                            \
+         for f in $$files; do                                          \
+           indent $(indent_args) -st $$f                               \
+               | indent $(indent_args) -st -                           \
+               | diff -u $$f - || fail=1;                              \
+         done;                                                         \
+         test $$fail = 1 &&                                            \
+           { echo 1>&2 '$(ME): code format error, try "make indent"';  \
+             exit 1; } || :;                                           \
+       fi
 
 # If you want to set UPDATE_COPYRIGHT_* environment variables,
 # put the assignments in this variable.
@@ -1683,9 +1721,8 @@ sc_tight_scope: tight-scope.mk
        exit $$fail
 
 tight-scope.mk: $(ME)
-       @rm -f $@ $@-t
        @perl -ne '/^# TS-start/.../^# TS-end/ and print' $(srcdir)/$(ME) > $@-t
-       @chmod a=r $@-t && mv $@-t $@
+       @mv $@-t $@
 
 ifeq (a,b)
 # TS-start
@@ -1716,8 +1753,8 @@ _gl_TS_unmarked_extern_vars ?=
 # a macro like this: GLOBAL(type, var_name, initializer), then you
 # can override this definition to automatically extract those names:
 # export _gl_TS_var_match = \
-#   /^(?:$(_gl_TS_extern)) .*?\**(\w+)(\[.*?\])?;/ || /\bGLOBAL\(.*?,\s*(.*?),/
-_gl_TS_var_match ?= /^(?:$(_gl_TS_extern)) .*?(\w+)(\[.*?\])?;/
+#   /^(?:$(_gl_TS_extern)) .*?\**(\w+)(\[.*?])?;/ || /\bGLOBAL\(.*?,\s*(.*?),/
+_gl_TS_var_match ?= /^(?:$(_gl_TS_extern)) .*?(\w+)(\[.*?])?;/
 
 # The names of object files in (or relative to) $(_gl_TS_dir).
 _gl_TS_obj_files ?= *.$(OBJEXT)
index 73073d8..26e0f82 100644 (file)
@@ -1,6 +1,6 @@
 # Automakefile for GNU diffutils man pages
 
-# Copyright (C) 2002, 2009-2013, 2015-2021 Free Software Foundation, Inc.
+# Copyright (C) 2002, 2009-2013, 2015-2023 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
index 6968f6a..9b5c84b 100644 (file)
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.16d from Makefile.am.
+# Makefile.in generated by automake 1.16i from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2021 Free Software Foundation, Inc.
+# Copyright (C) 1994-2023 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,7 @@
 
 # Automakefile for GNU diffutils man pages
 
-# Copyright (C) 2002, 2009-2013, 2015-2021 Free Software Foundation, Inc.
+# Copyright (C) 2002, 2009-2013, 2015-2023 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -86,6 +86,8 @@ am__make_running_with_option = \
   test $$has_opt = yes
 am__make_dryrun = (target_option=n; $(am__make_running_with_option))
 am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+am__rm_f = rm -f $(am__rm_f_notfound)
+am__rm_rf = rm -rf $(am__rm_f_notfound)
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -110,19 +112,22 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/__inline.m4 \
        $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \
        $(top_srcdir)/m4/arpa_inet_h.m4 \
-       $(top_srcdir)/m4/asm-underscore.m4 $(top_srcdir)/m4/atoll.m4 \
+       $(top_srcdir)/m4/asm-underscore.m4 \
+       $(top_srcdir)/m4/assert_h.m4 $(top_srcdir)/m4/atoll.m4 \
        $(top_srcdir)/m4/btowc.m4 $(top_srcdir)/m4/builtin-expect.m4 \
-       $(top_srcdir)/m4/c-stack.m4 $(top_srcdir)/m4/calloc.m4 \
-       $(top_srcdir)/m4/clock_time.m4 $(top_srcdir)/m4/close.m4 \
-       $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
-       $(top_srcdir)/m4/ctype_h.m4 \
+       $(top_srcdir)/m4/c-bool.m4 $(top_srcdir)/m4/c-stack.m4 \
+       $(top_srcdir)/m4/calloc.m4 $(top_srcdir)/m4/clock_time.m4 \
+       $(top_srcdir)/m4/close.m4 $(top_srcdir)/m4/codeset.m4 \
+       $(top_srcdir)/m4/config-h.m4 $(top_srcdir)/m4/ctype_h.m4 \
        $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \
        $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \
        $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \
-       $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \
-       $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \
-       $(top_srcdir)/m4/fcntl.m4 $(top_srcdir)/m4/fcntl_h.m4 \
-       $(top_srcdir)/m4/fdopen.m4 $(top_srcdir)/m4/filenamecat.m4 \
+       $(top_srcdir)/m4/error_h.m4 $(top_srcdir)/m4/exponentd.m4 \
+       $(top_srcdir)/m4/extensions.m4 \
+       $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fclose.m4 \
+       $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \
+       $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopen.m4 \
+       $(top_srcdir)/m4/fflush.m4 $(top_srcdir)/m4/filenamecat.m4 \
        $(top_srcdir)/m4/flexmember.m4 $(top_srcdir)/m4/float_h.m4 \
        $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fnmatch_h.m4 \
        $(top_srcdir)/m4/fopen.m4 $(top_srcdir)/m4/fpieee.m4 \
@@ -138,15 +143,16 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \
        $(top_srcdir)/m4/iconv_h.m4 $(top_srcdir)/m4/iconv_open.m4 \
        $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inet_pton.m4 \
-       $(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/intlmacosx.m4 \
-       $(top_srcdir)/m4/intmax_t.m4 $(top_srcdir)/m4/inttostr.m4 \
-       $(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-       $(top_srcdir)/m4/ioctl.m4 $(top_srcdir)/m4/isblank.m4 \
-       $(top_srcdir)/m4/iswblank.m4 $(top_srcdir)/m4/iswdigit.m4 \
-       $(top_srcdir)/m4/iswxdigit.m4 $(top_srcdir)/m4/langinfo_h.m4 \
-       $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lib-ld.m4 \
-       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-       $(top_srcdir)/m4/libsigsegv.m4 \
+       $(top_srcdir)/m4/inline.m4 \
+       $(top_srcdir)/m4/intl-thread-locale.m4 \
+       $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \
+       $(top_srcdir)/m4/inttostr.m4 $(top_srcdir)/m4/inttypes.m4 \
+       $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/ioctl.m4 \
+       $(top_srcdir)/m4/isblank.m4 $(top_srcdir)/m4/iswblank.m4 \
+       $(top_srcdir)/m4/iswdigit.m4 $(top_srcdir)/m4/iswxdigit.m4 \
+       $(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/largefile.m4 \
+       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libsigsegv.m4 \
        $(top_srcdir)/m4/libunistring-base.m4 \
        $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/localcharset.m4 \
        $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \
@@ -168,11 +174,13 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/netinet_in_h.m4 \
        $(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \
        $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/nstrftime.m4 \
-       $(top_srcdir)/m4/off_t.m4 $(top_srcdir)/m4/open-cloexec.m4 \
+       $(top_srcdir)/m4/nullptr.m4 $(top_srcdir)/m4/off_t.m4 \
+       $(top_srcdir)/m4/open-cloexec.m4 \
        $(top_srcdir)/m4/open-slash.m4 $(top_srcdir)/m4/open.m4 \
-       $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/perror.m4 \
-       $(top_srcdir)/m4/pipe.m4 $(top_srcdir)/m4/po.m4 \
-       $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \
+       $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/perl.m4 \
+       $(top_srcdir)/m4/perror.m4 $(top_srcdir)/m4/pipe.m4 \
+       $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf.m4 \
+       $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/pselect.m4 \
        $(top_srcdir)/m4/pthread-thread.m4 \
        $(top_srcdir)/m4/pthread_h.m4 \
        $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \
@@ -183,9 +191,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/reallocarray.m4 $(top_srcdir)/m4/regex.m4 \
        $(top_srcdir)/m4/sched_h.m4 $(top_srcdir)/m4/select.m4 \
        $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/setlocale_null.m4 \
-       $(top_srcdir)/m4/sigaction.m4 $(top_srcdir)/m4/sigaltstack.m4 \
-       $(top_srcdir)/m4/signal_h.m4 \
-       $(top_srcdir)/m4/signalblocking.m4 \
+       $(top_srcdir)/m4/sigaltstack.m4 $(top_srcdir)/m4/signal_h.m4 \
+       $(top_srcdir)/m4/signalblocking.m4 $(top_srcdir)/m4/sigsegv.m4 \
        $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \
        $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \
        $(top_srcdir)/m4/sockets.m4 $(top_srcdir)/m4/socklen.m4 \
@@ -193,9 +200,9 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/stack-direction.m4 \
        $(top_srcdir)/m4/stat-time.m4 $(top_srcdir)/m4/stat.m4 \
        $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdarg.m4 \
-       $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \
-       $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \
-       $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \
+       $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \
+       $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \
+       $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/stpcpy.m4 \
        $(top_srcdir)/m4/strcase.m4 $(top_srcdir)/m4/strerror.m4 \
        $(top_srcdir)/m4/strerror_r.m4 $(top_srcdir)/m4/string_h.m4 \
        $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strnlen.m4 \
@@ -209,12 +216,12 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/sys_uio_h.m4 \
        $(top_srcdir)/m4/sys_wait_h.m4 $(top_srcdir)/m4/tempname.m4 \
        $(top_srcdir)/m4/thread.m4 $(top_srcdir)/m4/threadlib.m4 \
-       $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/time_r.m4 \
-       $(top_srcdir)/m4/time_rz.m4 $(top_srcdir)/m4/timegm.m4 \
-       $(top_srcdir)/m4/timespec.m4 $(top_srcdir)/m4/tm_gmtoff.m4 \
-       $(top_srcdir)/m4/tzset.m4 $(top_srcdir)/m4/unistd_h.m4 \
-       $(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/vasnprintf.m4 \
-       $(top_srcdir)/m4/vasprintf.m4 $(top_srcdir)/m4/version-etc.m4 \
+       $(top_srcdir)/m4/time.m4 $(top_srcdir)/m4/time_h.m4 \
+       $(top_srcdir)/m4/time_r.m4 $(top_srcdir)/m4/time_rz.m4 \
+       $(top_srcdir)/m4/timegm.m4 $(top_srcdir)/m4/timespec.m4 \
+       $(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/tzset.m4 \
+       $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/unlocked-io.m4 \
+       $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/version-etc.m4 \
        $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/warn-on-use.m4 \
        $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/m4/wchar_h.m4 \
        $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wcrtomb.m4 \
@@ -223,7 +230,6 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/wmemchr.m4 \
        $(top_srcdir)/m4/wmempcpy.m4 $(top_srcdir)/m4/xalloc.m4 \
        $(top_srcdir)/m4/xsize.m4 $(top_srcdir)/m4/xstrtol.m4 \
-       $(top_srcdir)/m4/xvasprintf.m4 $(top_srcdir)/m4/year2038.m4 \
        $(top_srcdir)/m4/zzgnulib.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
@@ -273,10 +279,9 @@ am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 am__uninstall_files_from_dir = { \
-  test -z "$$files" \
-    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
-    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
-         $(am__cd) "$$dir" && rm -f $$files; }; \
+  { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+  || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+       $(am__cd) "$$dir" && echo $$files | $(am__xargs_n) 40 $(am__rm_f); }; \
   }
 man1dir = $(mandir)/man1
 am__installdirs = "$(DESTDIR)$(man1dir)"
@@ -293,6 +298,7 @@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
 AR = @AR@
 ARFLAGS = @ARFLAGS@
+ASSERT_H = @ASSERT_H@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -306,6 +312,7 @@ CC = @CC@
 CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
 CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
+CLOCK_TIME_LIB = @CLOCK_TIME_LIB@
 CONFIG_INCLUDE = @CONFIG_INCLUDE@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
@@ -317,7 +324,6 @@ DEPDIR = @DEPDIR@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-EGREP = @EGREP@
 EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@
 EMULTIHOP_VALUE = @EMULTIHOP_VALUE@
 ENOLINK_HIDDEN = @ENOLINK_HIDDEN@
@@ -325,14 +331,17 @@ ENOLINK_VALUE = @ENOLINK_VALUE@
 EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@
 EOVERFLOW_VALUE = @EOVERFLOW_VALUE@
 ERRNO_H = @ERRNO_H@
+ERROR_H = @ERROR_H@
 ETAGS = @ETAGS@
 EXEEXT = @EXEEXT@
 FLOAT_H = @FLOAT_H@
 FNMATCH_H = @FNMATCH_H@
 GETOPT_CDEFS_H = @GETOPT_CDEFS_H@
 GETOPT_H = @GETOPT_H@
+GETRANDOM_LIB = @GETRANDOM_LIB@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@
+GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@
 GL_CXXFLAG_ALLOW_WARNINGS = @GL_CXXFLAG_ALLOW_WARNINGS@
 GL_GNULIB_ACCEPT = @GL_GNULIB_ACCEPT@
 GL_GNULIB_ACCEPT4 = @GL_GNULIB_ACCEPT4@
@@ -341,9 +350,11 @@ GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@
 GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@
 GL_GNULIB_BIND = @GL_GNULIB_BIND@
 GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@
+GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@
 GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@
 GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@
 GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@
+GL_GNULIB_CHMOD = @GL_GNULIB_CHMOD@
 GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@
 GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@
 GL_GNULIB_CONNECT = @GL_GNULIB_CONNECT@
@@ -381,6 +392,7 @@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@
 GL_GNULIB_FGETS = @GL_GNULIB_FGETS@
 GL_GNULIB_FNMATCH = @GL_GNULIB_FNMATCH@
 GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@
+GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@
 GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@
 GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@
 GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@
@@ -416,7 +428,9 @@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@
 GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@
 GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@
 GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@
+GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@
 GL_GNULIB_GETPEERNAME = @GL_GNULIB_GETPEERNAME@
+GL_GNULIB_GETPROGNAME = @GL_GNULIB_GETPROGNAME@
 GL_GNULIB_GETRANDOM = @GL_GNULIB_GETRANDOM@
 GL_GNULIB_GETSOCKNAME = @GL_GNULIB_GETSOCKNAME@
 GL_GNULIB_GETSOCKOPT = @GL_GNULIB_GETSOCKOPT@
@@ -448,6 +462,7 @@ GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@
 GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@
 GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@
 GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@
+GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@
 GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@
 GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@
 GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@
@@ -468,6 +483,7 @@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@
 GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@
 GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@
 GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@
+GL_GNULIB_MBSTOWCS = @GL_GNULIB_MBSTOWCS@
 GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@
 GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@
 GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@
@@ -514,6 +530,7 @@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@
 GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@
 GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@
 GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@
+GL_GNULIB_MEMSET_EXPLICIT = @GL_GNULIB_MEMSET_EXPLICIT@
 GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@
 GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@
 GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@
@@ -570,6 +587,7 @@ GL_GNULIB_READ = @GL_GNULIB_READ@
 GL_GNULIB_READLINK = @GL_GNULIB_READLINK@
 GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@
 GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@
+GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@
 GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@
 GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@
 GL_GNULIB_RECV = @GL_GNULIB_RECV@
@@ -633,8 +651,10 @@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@
 GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@
 GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@
 GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@
+GL_GNULIB_TIME = @GL_GNULIB_TIME@
 GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@
 GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@
+GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@
 GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@
 GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@
 GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@
@@ -708,6 +728,7 @@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@
 GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
 GNULIB_WARN_CFLAGS = @GNULIB_WARN_CFLAGS@
 GREP = @GREP@
+HARD_LOCALE_LIB = @HARD_LOCALE_LIB@
 HAVE_ACCEPT4 = @HAVE_ACCEPT4@
 HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@
 HAVE_ALLOCA_H = @HAVE_ALLOCA_H@
@@ -738,6 +759,7 @@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@
 HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
 HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
 HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
+HAVE_DECL_GETW = @HAVE_DECL_GETW@
 HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
 HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
 HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@
@@ -747,6 +769,8 @@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@
 HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
 HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
 HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@
+HAVE_DECL_PROGRAM_INVOCATION_NAME = @HAVE_DECL_PROGRAM_INVOCATION_NAME@
+HAVE_DECL_PUTW = @HAVE_DECL_PUTW@
 HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
 HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
 HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@
@@ -770,6 +794,9 @@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
 HAVE_DPRINTF = @HAVE_DPRINTF@
 HAVE_DUP3 = @HAVE_DUP3@
 HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
+HAVE_ERROR = @HAVE_ERROR@
+HAVE_ERROR_AT_LINE = @HAVE_ERROR_AT_LINE@
+HAVE_ERROR_H = @HAVE_ERROR_H@
 HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
 HAVE_EXECVPE = @HAVE_EXECVPE@
 HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@
@@ -800,12 +827,15 @@ HAVE_GETLOGIN = @HAVE_GETLOGIN@
 HAVE_GETOPT_H = @HAVE_GETOPT_H@
 HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
 HAVE_GETPASS = @HAVE_GETPASS@
+HAVE_GETPROGNAME = @HAVE_GETPROGNAME@
 HAVE_GETRANDOM = @HAVE_GETRANDOM@
 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
 HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@
 HAVE_GETUMASK = @HAVE_GETUMASK@
 HAVE_GRANTPT = @HAVE_GRANTPT@
 HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
+HAVE_IMAXABS = @HAVE_IMAXABS@
+HAVE_IMAXDIV = @HAVE_IMAXDIV@
 HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@
 HAVE_INITSTATE = @HAVE_INITSTATE@
 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
@@ -833,6 +863,7 @@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
 HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
 HAVE_MBTOWC = @HAVE_MBTOWC@
 HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MEMSET_EXPLICIT = @HAVE_MEMSET_EXPLICIT@
 HAVE_MKDIRAT = @HAVE_MKDIRAT@
 HAVE_MKDTEMP = @HAVE_MKDTEMP@
 HAVE_MKFIFO = @HAVE_MKFIFO@
@@ -990,9 +1021,11 @@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
 HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@
 HAVE_TIMEGM = @HAVE_TIMEGM@
 HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@
+HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@
 HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@
 HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
 HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNISTRING_WOE32DLL_H = @HAVE_UNISTRING_WOE32DLL_H@
 HAVE_UNLINKAT = @HAVE_UNLINKAT@
 HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
 HAVE_USLEEP = @HAVE_USLEEP@
@@ -1042,7 +1075,6 @@ HAVE_WMEMPCPY = @HAVE_WMEMPCPY@
 HAVE_WMEMSET = @HAVE_WMEMSET@
 HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@
 HAVE_XLOCALE_H = @HAVE_XLOCALE_H@
-HAVE__BOOL = @HAVE__BOOL@
 HAVE__EXIT = @HAVE__EXIT@
 HELP2MAN = @HELP2MAN@
 HOST_CPU = @HOST_CPU@
@@ -1108,15 +1140,20 @@ LTLIBOBJS = @LTLIBOBJS@
 LTLIBSIGSEGV = @LTLIBSIGSEGV@
 LTLIBTHREAD = @LTLIBTHREAD@
 MAKEINFO = @MAKEINFO@
+MBRTOWC_LIB = @MBRTOWC_LIB@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
+NANOSLEEP_LIB = @NANOSLEEP_LIB@
 NETINET_IN_H = @NETINET_IN_H@
 NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@
+NEXT_ASSERT_H = @NEXT_ASSERT_H@
 NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@
+NEXT_AS_FIRST_DIRECTIVE_ASSERT_H = @NEXT_AS_FIRST_DIRECTIVE_ASSERT_H@
 NEXT_AS_FIRST_DIRECTIVE_CTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_CTYPE_H@
 NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@
+NEXT_AS_FIRST_DIRECTIVE_ERROR_H = @NEXT_AS_FIRST_DIRECTIVE_ERROR_H@
 NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@
 NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@
 NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H = @NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H@
@@ -1152,6 +1189,7 @@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@
 NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@
 NEXT_CTYPE_H = @NEXT_CTYPE_H@
 NEXT_ERRNO_H = @NEXT_ERRNO_H@
+NEXT_ERROR_H = @NEXT_ERROR_H@
 NEXT_FCNTL_H = @NEXT_FCNTL_H@
 NEXT_FLOAT_H = @NEXT_FLOAT_H@
 NEXT_FNMATCH_H = @NEXT_FNMATCH_H@
@@ -1194,27 +1232,35 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
 PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
 POSUB = @POSUB@
 PRAGMA_COLUMNS = @PRAGMA_COLUMNS@
 PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
 PRIPTR_PREFIX = @PRIPTR_PREFIX@
 PR_PROGRAM = @PR_PROGRAM@
 PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@
+PTHREAD_SIGMASK_LIB = @PTHREAD_SIGMASK_LIB@
 PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
 RANLIB = @RANLIB@
 REPLACE_ACCESS = @REPLACE_ACCESS@
 REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@
 REPLACE_BTOWC = @REPLACE_BTOWC@
-REPLACE_CALLOC = @REPLACE_CALLOC@
+REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@
+REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@
 REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@
+REPLACE_CHMOD = @REPLACE_CHMOD@
 REPLACE_CHOWN = @REPLACE_CHOWN@
 REPLACE_CLOSE = @REPLACE_CLOSE@
+REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@
 REPLACE_CREAT = @REPLACE_CREAT@
 REPLACE_CTIME = @REPLACE_CTIME@
 REPLACE_DPRINTF = @REPLACE_DPRINTF@
 REPLACE_DUP = @REPLACE_DUP@
 REPLACE_DUP2 = @REPLACE_DUP2@
+REPLACE_DUP3 = @REPLACE_DUP3@
 REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
+REPLACE_ERROR = @REPLACE_ERROR@
+REPLACE_ERROR_AT_LINE = @REPLACE_ERROR_AT_LINE@
 REPLACE_EXECL = @REPLACE_EXECL@
 REPLACE_EXECLE = @REPLACE_EXECLE@
 REPLACE_EXECLP = @REPLACE_EXECLP@
@@ -1227,11 +1273,13 @@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@
 REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
 REPLACE_FCLOSE = @REPLACE_FCLOSE@
 REPLACE_FCNTL = @REPLACE_FCNTL@
+REPLACE_FDATASYNC = @REPLACE_FDATASYNC@
 REPLACE_FDOPEN = @REPLACE_FDOPEN@
 REPLACE_FFLUSH = @REPLACE_FFLUSH@
 REPLACE_FFSLL = @REPLACE_FFSLL@
 REPLACE_FNMATCH = @REPLACE_FNMATCH@
 REPLACE_FOPEN = @REPLACE_FOPEN@
+REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@
 REPLACE_FPRINTF = @REPLACE_FPRINTF@
 REPLACE_FPURGE = @REPLACE_FPURGE@
 REPLACE_FREE = @REPLACE_FREE@
@@ -1249,17 +1297,24 @@ REPLACE_GETCWD = @REPLACE_GETCWD@
 REPLACE_GETDELIM = @REPLACE_GETDELIM@
 REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
 REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@
+REPLACE_GETENTROPY = @REPLACE_GETENTROPY@
 REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
 REPLACE_GETLINE = @REPLACE_GETLINE@
+REPLACE_GETLOADAVG = @REPLACE_GETLOADAVG@
 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
 REPLACE_GETPASS = @REPLACE_GETPASS@
+REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@
+REPLACE_GETPROGNAME = @REPLACE_GETPROGNAME@
 REPLACE_GETRANDOM = @REPLACE_GETRANDOM@
+REPLACE_GETSUBOPT = @REPLACE_GETSUBOPT@
 REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
 REPLACE_GMTIME = @REPLACE_GMTIME@
 REPLACE_ICONV = @REPLACE_ICONV@
 REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@
 REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@
+REPLACE_IMAXABS = @REPLACE_IMAXABS@
+REPLACE_IMAXDIV = @REPLACE_IMAXDIV@
 REPLACE_INET_NTOP = @REPLACE_INET_NTOP@
 REPLACE_INET_PTON = @REPLACE_INET_PTON@
 REPLACE_INITSTATE = @REPLACE_INITSTATE@
@@ -1278,21 +1333,27 @@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@
 REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
 REPLACE_LSEEK = @REPLACE_LSEEK@
 REPLACE_LSTAT = @REPLACE_LSTAT@
-REPLACE_MALLOC = @REPLACE_MALLOC@
+REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@
+REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@
 REPLACE_MBRLEN = @REPLACE_MBRLEN@
 REPLACE_MBRTOWC = @REPLACE_MBRTOWC@
 REPLACE_MBSINIT = @REPLACE_MBSINIT@
 REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@
 REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@
 REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@
+REPLACE_MBSTOWCS = @REPLACE_MBSTOWCS@
 REPLACE_MBTOWC = @REPLACE_MBTOWC@
+REPLACE_MB_CUR_MAX = @REPLACE_MB_CUR_MAX@
 REPLACE_MEMCHR = @REPLACE_MEMCHR@
 REPLACE_MEMMEM = @REPLACE_MEMMEM@
+REPLACE_MEMPCPY = @REPLACE_MEMPCPY@
 REPLACE_MKDIR = @REPLACE_MKDIR@
 REPLACE_MKFIFO = @REPLACE_MKFIFO@
 REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@
 REPLACE_MKNOD = @REPLACE_MKNOD@
 REPLACE_MKNODAT = @REPLACE_MKNODAT@
+REPLACE_MKOSTEMP = @REPLACE_MKOSTEMP@
+REPLACE_MKOSTEMPS = @REPLACE_MKOSTEMPS@
 REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
 REPLACE_MKTIME = @REPLACE_MKTIME@
 REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
@@ -1303,8 +1364,10 @@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
 REPLACE_OPEN = @REPLACE_OPEN@
 REPLACE_OPENAT = @REPLACE_OPENAT@
 REPLACE_PERROR = @REPLACE_PERROR@
+REPLACE_PIPE2 = @REPLACE_PIPE2@
 REPLACE_POPEN = @REPLACE_POPEN@
 REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@
+REPLACE_POSIX_OPENPT = @REPLACE_POSIX_OPENPT@
 REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
@@ -1371,8 +1434,9 @@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
 REPLACE_READ = @REPLACE_READ@
 REPLACE_READLINK = @REPLACE_READLINK@
 REPLACE_READLINKAT = @REPLACE_READLINKAT@
-REPLACE_REALLOC = @REPLACE_REALLOC@
 REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@
+REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@
+REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@
 REPLACE_REALPATH = @REPLACE_REALPATH@
 REPLACE_REMOVE = @REPLACE_REMOVE@
 REPLACE_RENAME = @REPLACE_RENAME@
@@ -1381,6 +1445,7 @@ REPLACE_RMDIR = @REPLACE_RMDIR@
 REPLACE_SCHED_YIELD = @REPLACE_SCHED_YIELD@
 REPLACE_SELECT = @REPLACE_SELECT@
 REPLACE_SETENV = @REPLACE_SETENV@
+REPLACE_SETHOSTNAME = @REPLACE_SETHOSTNAME@
 REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
 REPLACE_SETSTATE = @REPLACE_SETSTATE@
 REPLACE_SLEEP = @REPLACE_SLEEP@
@@ -1389,6 +1454,7 @@ REPLACE_SPRINTF = @REPLACE_SPRINTF@
 REPLACE_STAT = @REPLACE_STAT@
 REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@
 REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
+REPLACE_STPCPY = @REPLACE_STPCPY@
 REPLACE_STPNCPY = @REPLACE_STPNCPY@
 REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
 REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@
@@ -1415,7 +1481,9 @@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
 REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@
 REPLACE_SYMLINK = @REPLACE_SYMLINK@
 REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
+REPLACE_TIME = @REPLACE_TIME@
 REPLACE_TIMEGM = @REPLACE_TIMEGM@
+REPLACE_TIMESPEC_GET = @REPLACE_TIMESPEC_GET@
 REPLACE_TMPFILE = @REPLACE_TMPFILE@
 REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
 REPLACE_TRUNCATE = @REPLACE_TRUNCATE@
@@ -1433,25 +1501,33 @@ REPLACE_VPRINTF = @REPLACE_VPRINTF@
 REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@
 REPLACE_VSPRINTF = @REPLACE_VSPRINTF@
 REPLACE_WCRTOMB = @REPLACE_WCRTOMB@
+REPLACE_WCSCMP = @REPLACE_WCSCMP@
 REPLACE_WCSFTIME = @REPLACE_WCSFTIME@
+REPLACE_WCSNCMP = @REPLACE_WCSNCMP@
 REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@
 REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@
+REPLACE_WCSSTR = @REPLACE_WCSSTR@
 REPLACE_WCSTOK = @REPLACE_WCSTOK@
 REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@
 REPLACE_WCTOB = @REPLACE_WCTOB@
 REPLACE_WCTOMB = @REPLACE_WCTOMB@
 REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
+REPLACE_WMEMCMP = @REPLACE_WMEMCMP@
+REPLACE_WMEMPCPY = @REPLACE_WMEMPCPY@
 REPLACE_WRITE = @REPLACE_WRITE@
+REPLACE__EXIT = @REPLACE__EXIT@
+SCHED_YIELD_LIB = @SCHED_YIELD_LIB@
 SED = @SED@
+SELECT_LIB = @SELECT_LIB@
+SETLOCALE_NULL_LIB = @SETLOCALE_NULL_LIB@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIGSEGV_H = @SIGSEGV_H@
 SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
 SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
 SRC_VERSION_C = @SRC_VERSION_C@
-STDALIGN_H = @STDALIGN_H@
 STDARG_H = @STDARG_H@
-STDBOOL_H = @STDBOOL_H@
+STDCKDINT_H = @STDCKDINT_H@
 STDDEF_H = @STDDEF_H@
 STDINT_H = @STDINT_H@
 STRIP = @STRIP@
@@ -1489,8 +1565,10 @@ ac_ct_CC = @ac_ct_CC@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
+am__rm_f_notfound = @am__rm_f_notfound@
 am__tar = @am__tar@
 am__untar = @am__untar@
+am__xargs_n = @am__xargs_n@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
@@ -1503,8 +1581,10 @@ datarootdir = @datarootdir@
 docdir = @docdir@
 dvidir = @dvidir@
 exec_prefix = @exec_prefix@
+gl_LIBOBJDEPS = @gl_LIBOBJDEPS@
 gl_LIBOBJS = @gl_LIBOBJS@
 gl_LTLIBOBJS = @gl_LTLIBOBJS@
+gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@
 gltests_LIBOBJS = @gltests_LIBOBJS@
 gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
 gltests_WITNESS = @gltests_WITNESS@
@@ -1688,13 +1768,13 @@ mostlyclean-generic:
 clean-generic:
 
 distclean-generic:
-       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+       -$(am__rm_f) $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || $(am__rm_f) $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
        @echo "This command is intended for maintainers to use"
        @echo "it deletes files that may require special tools to rebuild."
-       -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+       -$(am__rm_f) $(MAINTAINERCLEANFILES)
 clean: clean-am
 
 clean-am: clean-generic mostlyclean-am
index 2f364d7..a9ea06a 100644 (file)
--- a/man/cmp.1
+++ b/man/cmp.1
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.40.4.
-.TH CMP "1" "August 2021" "diffutils 3.8" "User Commands"
+.TH CMP "1" "May 2023" "diffutils 3.10" "User Commands"
 .SH NAME
 cmp \- compare two files byte by byte
 .SH SYNOPSIS
@@ -53,13 +53,15 @@ GNU diffutils home page: <https://www.gnu.org/software/diffutils/>
 .br
 General help using GNU software: <https://www.gnu.org/gethelp/>
 .SH COPYRIGHT
-Copyright \(co 2021 Free Software Foundation, Inc.
+Copyright \(co 2023 Free Software Foundation, Inc.
 License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
 .br
 This is free software: you are free to change and redistribute it.
 There is NO WARRANTY, to the extent permitted by law.
 .SH "SEE ALSO"
-diff(1), diff3(1), sdiff(1)
+.BR diff (1),
+.BR diff3 (1),
+.BR sdiff (1)
 .PP
 The full documentation for
 .B cmp
index 5c9ef82..a50d33c 100644 (file)
--- a/man/cmp.x
+++ b/man/cmp.x
@@ -1,2 +1,4 @@
 [SEE ALSO]
-diff(1), diff3(1), sdiff(1)
+.BR diff (1),
+.BR diff3 (1),
+.BR sdiff (1)
index 5fbf246..c32cbd8 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.40.4.
-.TH DIFF "1" "August 2021" "diffutils 3.8" "User Commands"
+.TH DIFF "1" "May 2023" "diffutils 3.10" "User Commands"
 .SH NAME
 diff \- compare files line by line
 .SH SYNOPSIS
@@ -245,13 +245,17 @@ GNU diffutils home page: <https://www.gnu.org/software/diffutils/>
 .br
 General help using GNU software: <https://www.gnu.org/gethelp/>
 .SH COPYRIGHT
-Copyright \(co 2021 Free Software Foundation, Inc.
+Copyright \(co 2023 Free Software Foundation, Inc.
 License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
 .br
 This is free software: you are free to change and redistribute it.
 There is NO WARRANTY, to the extent permitted by law.
 .SH "SEE ALSO"
-wdiff(1), cmp(1), diff3(1), sdiff(1), patch(1)
+.BR wdiff (1),
+.BR cmp (1),
+.BR diff3 (1),
+.BR sdiff (1),
+.BR patch (1)
 .PP
 The full documentation for
 .B diff
index fdb69d2..6efb3ab 100644 (file)
@@ -1,2 +1,6 @@
 [SEE ALSO]
-wdiff(1), cmp(1), diff3(1), sdiff(1), patch(1)
+.BR wdiff (1),
+.BR cmp (1),
+.BR diff3 (1),
+.BR sdiff (1),
+.BR patch (1)
index 6522b94..9bd8342 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.40.4.
-.TH DIFF3 "1" "August 2021" "diffutils 3.8" "User Commands"
+.TH DIFF3 "1" "May 2023" "diffutils 3.10" "User Commands"
 .SH NAME
 diff3 \- compare three files line by line
 .SH SYNOPSIS
@@ -79,13 +79,15 @@ GNU diffutils home page: <https://www.gnu.org/software/diffutils/>
 .br
 General help using GNU software: <https://www.gnu.org/gethelp/>
 .SH COPYRIGHT
-Copyright \(co 2021 Free Software Foundation, Inc.
+Copyright \(co 2023 Free Software Foundation, Inc.
 License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
 .br
 This is free software: you are free to change and redistribute it.
 There is NO WARRANTY, to the extent permitted by law.
 .SH "SEE ALSO"
-cmp(1), diff(1), sdiff(1)
+.BR cmp (1),
+.BR diff (1),
+.BR sdiff (1)
 .PP
 The full documentation for
 .B diff3
index 0751208..e748e64 100644 (file)
@@ -1,2 +1,4 @@
 [SEE ALSO]
-cmp(1), diff(1), sdiff(1)
+.BR cmp (1),
+.BR diff (1),
+.BR sdiff (1)
index 49a76e5..7f83481 100755 (executable)
@@ -1,7 +1,7 @@
 #!/usr/bin/perl -w
 
 # Generate a short man page from --help and --version output.
-# Copyright (C) 1997-2005, 2009-2011, 2013, 2015-2021 Free Software Foundation,
+# Copyright (C) 1997-2005, 2009-2011, 2013, 2015-2023 Free Software Foundation,
 # Inc.
 
 # This program is free software; you can redistribute it and/or modify
index 5a83d6b..c349f6f 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.40.4.
-.TH SDIFF "1" "August 2021" "diffutils 3.8" "User Commands"
+.TH SDIFF "1" "May 2023" "diffutils 3.10" "User Commands"
 .SH NAME
 sdiff \- side-by-side merge of file differences
 .SH SYNOPSIS
@@ -81,13 +81,15 @@ GNU diffutils home page: <https://www.gnu.org/software/diffutils/>
 .br
 General help using GNU software: <https://www.gnu.org/gethelp/>
 .SH COPYRIGHT
-Copyright \(co 2021 Free Software Foundation, Inc.
+Copyright \(co 2023 Free Software Foundation, Inc.
 License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
 .br
 This is free software: you are free to change and redistribute it.
 There is NO WARRANTY, to the extent permitted by law.
 .SH "SEE ALSO"
-cmp(1), diff(1), diff3(1)
+.BR cmp (1),
+.BR diff (1),
+.BR diff3 (1)
 .PP
 The full documentation for
 .B sdiff
index fdc9c3e..e2b5482 100644 (file)
@@ -1,2 +1,4 @@
 [SEE ALSO]
-cmp(1), diff(1), diff3(1)
+.BR cmp (1),
+.BR diff (1),
+.BR diff3 (1)
index c69cf8d..3a9a3b9 100644 (file)
@@ -16,6 +16,8 @@ hu
 id
 it
 ja
+ka
+ko
 lv
 ms
 nb
index 80c7cf4..6ff6607 100644 (file)
@@ -9,7 +9,7 @@ top_builddir = ..
 
 # These options get passed to xgettext.
 XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ \
-          \
+            \
  --flag=_:1:pass-c-format\
  --flag=N_:1:pass-c-format\
  --flag=error:3:c-format --flag=error_at_line:5:c-format\
@@ -18,7 +18,6 @@ XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ \
  --flag=asprintf:2:c-format\
  --from-code=UTF-8\
  --flag=message:1:c-format\
- --flag=message5:1:c-format\
  --flag=try_help:1:c-format\
  --flag=vasprintf:2:c-format\
  --flag=vasnprintf:3:c-format\
index b4f8ef8..ccb9a85 100644 (file)
@@ -1,6 +1,6 @@
 # List of files that contain translatable strings.
 
-# Copyright (C) 2001-2002, 2009-2013, 2015-2021 Free Software Foundation, Inc.
+# Copyright (C) 2001-2002, 2009-2013, 2015-2023 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
index 5c7607f..200fa29 100644 (file)
--- a/po/bg.po
+++ b/po/bg.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: diffutils 3.7.41\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2021-08-01 18:56-0700\n"
+"POT-Creation-Date: 2023-05-21 01:51-0700\n"
 "PO-Revision-Date: 2021-07-20 18:17+0200\n"
 "Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
 "Language-Team: Bulgarian <dict@ludost.net>\n"
@@ -18,29 +18,29 @@ msgstr ""
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: lib/argmatch.c:132
+#: lib/argmatch.c:145
 #, c-format
 msgid "invalid argument %s for %s"
 msgstr "аргументът „%s“ на опцията „%s“ е неправилен"
 
-#: lib/argmatch.c:133
+#: lib/argmatch.c:146
 #, c-format
 msgid "ambiguous argument %s for %s"
 msgstr "аргументът „%s“ на опцията „%s“ не е еднозначен"
 
-#: lib/argmatch.c:152 lib/argmatch.h:223
+#: lib/argmatch.c:165 lib/argmatch.h:242
 msgid "Valid arguments are:"
 msgstr "Възможните аргументи са:"
 
-#: lib/c-stack.c:187
+#: lib/c-stack.c:186
 msgid "program error"
 msgstr "програмна грешка"
 
-#: lib/c-stack.c:188
+#: lib/c-stack.c:187
 msgid "stack overflow"
 msgstr "препълване на стека"
 
-#: lib/error.c:195
+#: lib/error.c:193
 msgid "Unknown system error"
 msgstr "Неизвестна системна грешка"
 
@@ -196,83 +196,83 @@ msgstr "%s: опцията изисква аргумент — „%c“\n"
 #. If you don't know what to put here, please see
 #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:355
+#: lib/quotearg.c:354
 msgid "`"
 msgstr "„"
 
-#: lib/quotearg.c:356
+#: lib/quotearg.c:355
 msgid "'"
 msgstr "“"
 
-#: lib/regcomp.c:135
+#: lib/regcomp.c:122
 msgid "Success"
 msgstr "Успех"
 
-#: lib/regcomp.c:138
+#: lib/regcomp.c:125
 msgid "No match"
 msgstr "Няма съвпадения"
 
-#: lib/regcomp.c:141
+#: lib/regcomp.c:128
 msgid "Invalid regular expression"
 msgstr "Неправилен регулярен израз"
 
-#: lib/regcomp.c:144
+#: lib/regcomp.c:131
 msgid "Invalid collation character"
 msgstr "Неправилен знак за подредба"
 
-#: lib/regcomp.c:147
+#: lib/regcomp.c:134
 msgid "Invalid character class name"
 msgstr "Неправилно име на клас знаци"
 
-#: lib/regcomp.c:150
+#: lib/regcomp.c:137
 msgid "Trailing backslash"
 msgstr "Самотна „\\“ накрая"
 
-#: lib/regcomp.c:153
+#: lib/regcomp.c:140
 msgid "Invalid back reference"
 msgstr "Неправилна препратка към съвпадение"
 
-#: lib/regcomp.c:156
+#: lib/regcomp.c:143
 msgid "Unmatched [, [^, [:, [., or [="
 msgstr "„[“, „[^“, „[:“, „[.“ или „[=“ без еш"
 
-#: lib/regcomp.c:159
+#: lib/regcomp.c:146
 msgid "Unmatched ( or \\("
 msgstr "„(“ или „\\(“ без еш"
 
-#: lib/regcomp.c:162
+#: lib/regcomp.c:149
 msgid "Unmatched \\{"
 msgstr "„\\{“ без еш"
 
-#: lib/regcomp.c:165
+#: lib/regcomp.c:152
 msgid "Invalid content of \\{\\}"
 msgstr "Неправилно съдържание в „\\{\\}“"
 
-#: lib/regcomp.c:168
+#: lib/regcomp.c:155
 msgid "Invalid range end"
 msgstr "Неправилен край на диапазон"
 
-#: lib/regcomp.c:171
+#: lib/regcomp.c:158
 msgid "Memory exhausted"
 msgstr "Паметта свърши"
 
-#: lib/regcomp.c:174
+#: lib/regcomp.c:161
 msgid "Invalid preceding regular expression"
 msgstr "Предхождащият регулярен израз е неправилен"
 
-#: lib/regcomp.c:177
+#: lib/regcomp.c:164
 msgid "Premature end of regular expression"
 msgstr "Ранен край на регулярен израз"
 
-#: lib/regcomp.c:180
+#: lib/regcomp.c:167
 msgid "Regular expression too big"
 msgstr "Регулярният израз е прекалено голям"
 
-#: lib/regcomp.c:183
+#: lib/regcomp.c:170
 msgid "Unmatched ) or \\)"
 msgstr "„)“ или „\\)“ без еш"
 
-#: lib/regcomp.c:676
+#: lib/regcomp.c:650
 msgid "No previous regular expression"
 msgstr "Няма предхождащ регулярен израз"
 
@@ -469,17 +469,17 @@ msgstr "Уеб страница на „%s“: <%s>\n"
 msgid "General help using GNU software: <%s>\n"
 msgstr "Обща помощ за програмите на GNU: <%s>\n"
 
-#: src/analyze.c:454 src/diff.c:1406
+#: src/analyze.c:455 src/diff.c:1478
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Файловете „%s“ и „%s“ се различават\n"
 
-#: src/analyze.c:455
+#: src/analyze.c:456
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "Двоичните файлове „%s“ и „%s“ се различават\n"
 
-#: src/analyze.c:706 src/diff3.c:1470 src/util.c:1254
+#: src/analyze.c:707 src/diff3.c:1457 src/util.c:1354
 msgid "No newline at end of file"
 msgstr "Липсва нов ред в края на файла"
 
@@ -493,42 +493,43 @@ msgstr "Torbjorn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:120 src/diff.c:879 src/diff3.c:467 src/sdiff.c:160
+#: src/cmp.c:124 src/diff.c:939 src/diff3.c:465 src/sdiff.c:159
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Вижте „%s --help“ за повече информация."
 
-#: src/cmp.c:138
+#: src/cmp.c:142
 #, c-format
 msgid "invalid --ignore-initial value '%s'"
 msgstr "неправилна стойност „%s“ за опцията „--ignore-initial“"
 
-#: src/cmp.c:148
+#: src/cmp.c:152
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr "опциите „-l“ и „-s“ са несъвместими"
 
-#: src/cmp.c:156 src/diff.c:887 src/diff3.c:474 src/sdiff.c:168 src/sdiff.c:316
-#: src/sdiff.c:323 src/sdiff.c:876 src/util.c:852 src/util.c:952 src/util.c:959
+#: src/cmp.c:160 src/diff.c:947 src/diff3.c:472 src/sdiff.c:167 src/sdiff.c:314
+#: src/sdiff.c:321 src/sdiff.c:873 src/util.c:952 src/util.c:1052
+#: src/util.c:1059
 msgid "write failed"
 msgstr "неуспешен запис"
 
-#: src/cmp.c:158 src/diff.c:889 src/diff.c:1471 src/diff3.c:476 src/sdiff.c:170
+#: src/cmp.c:162 src/diff.c:949 src/diff.c:1543 src/diff3.c:474 src/sdiff.c:169
 msgid "standard output"
 msgstr "стандартен изход"
 
-#: src/cmp.c:162
+#: src/cmp.c:166
 msgid "-b, --print-bytes          print differing bytes"
 msgstr "-b, --print-bytes          извеждане на различаващите се байтове"
 
-#: src/cmp.c:163
+#: src/cmp.c:167
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
 msgstr ""
 "-i, --ignore-initial=ПРЕСКАЧАНЕ\n"
 "                             ПРЕСКАЧАНЕ на този брой байтове и от двата\n"
 "                             входа"
 
-#: src/cmp.c:164
+#: src/cmp.c:168
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
@@ -537,7 +538,7 @@ msgstr ""
 "                             прескачане на съответния брой байтове —\n"
 "                             ПРЕСКАЧАНЕ_1 от ФАЙЛ_1, ПРЕСКАЧАНЕ_2 от ФАЙЛ_2"
 
-#: src/cmp.c:166
+#: src/cmp.c:170
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
 msgstr ""
@@ -545,32 +546,32 @@ msgstr ""
 "различните\n"
 "                             байтове"
 
-#: src/cmp.c:167
+#: src/cmp.c:171
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
 msgstr "-n, --bytes=БРОЙ           сравняване на максимум този БРОЙ байтове"
 
-#: src/cmp.c:168
+#: src/cmp.c:172
 msgid "-s, --quiet, --silent      suppress all normal output"
 msgstr "-s, --quiet, --silent      без извеждане на обичайната информация"
 
-#: src/cmp.c:169
+#: src/cmp.c:173
 msgid "    --help                 display this help and exit"
 msgstr "    --help                 извеждане на тази помощ и изход"
 
-#: src/cmp.c:170
+#: src/cmp.c:174
 msgid "-v, --version              output version information and exit"
 msgstr "-v, --version              извеждане на версията и изход"
 
-#: src/cmp.c:179
+#: src/cmp.c:183
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
 msgstr "Употреба: %s [ОПЦИЯ]… ФАЙЛ_1 [ФАЙЛ_1 [ПРЕСКАЧАНЕ_1 [ПРЕСКАЧАНЕ_2]]]\n"
 
-#: src/cmp.c:181
+#: src/cmp.c:185
 msgid "Compare two files byte by byte."
 msgstr "Побайтово сравнение на два файла"
 
-#: src/cmp.c:183
+#: src/cmp.c:187
 msgid ""
 "The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
 "at the beginning of each file (zero by default)."
@@ -579,7 +580,7 @@ msgstr ""
 "байтове,\n"
 "които да се прескочат от началото на всеки файл (броенето почва от 0)."
 
-#: src/cmp.c:186 src/diff.c:999 src/diff3.c:514 src/sdiff.c:211
+#: src/cmp.c:190 src/diff.c:1059 src/diff3.c:512 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
@@ -587,7 +588,7 @@ msgstr ""
 "късите\n"
 "варианти.\n"
 
-#: src/cmp.c:192
+#: src/cmp.c:196
 msgid ""
 "SKIP values may be followed by the following multiplicative suffixes:\n"
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
@@ -598,144 +599,144 @@ msgstr ""
 "kB: 1000, K: 1024, MB: 1 000 000, M: 1 048 576,\n"
 "GB: 1 000 000 000, G: 1 073 741 824 и т.н. за „T“, „P“, „E“, „Z“ и „Y“."
 
-#: src/cmp.c:195
+#: src/cmp.c:199
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "Ако името на ФАЙЛ е „-“ или липсва, се чете от стандартния вход."
 
-#: src/cmp.c:196 src/diff.c:987 src/sdiff.c:221
+#: src/cmp.c:200 src/diff.c:1047 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr "Изходният код е 0 при еднаквост, 1 при разлика и 2 при грешка."
 
-#: src/cmp.c:243
+#: src/cmp.c:247
 #, c-format
 msgid "invalid --bytes value '%s'"
 msgstr "неправилен аргумент „%s“ за опцията „--bytes“"
 
-#: src/cmp.c:269 src/diff.c:797 src/diff3.c:361 src/sdiff.c:567
+#: src/cmp.c:273 src/diff.c:857 src/diff3.c:368 src/sdiff.c:564
 #, c-format
 msgid "missing operand after '%s'"
 msgstr "липсва операнд след „%s“"
 
-#: src/cmp.c:281 src/diff.c:799 src/diff3.c:363 src/sdiff.c:569
+#: src/cmp.c:285 src/diff.c:859 src/diff3.c:370 src/sdiff.c:566
 #, c-format
 msgid "extra operand '%s'"
 msgstr "излишен операнд след „%s“"
 
-#: src/cmp.c:507
+#: src/cmp.c:521
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "„%s“ и „%s“ се различават: байт %s, ред  %s\n"
 
-#: src/cmp.c:523
+#: src/cmp.c:537
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
 msgstr "„%s“ и „%s“ се различават: байт %s, ред  %s е %3o %s %3o %s\n"
 
-#: src/cmp.c:580
+#: src/cmp.c:594
 #, c-format
 msgid "cmp: EOF on %s which is empty\n"
 msgstr "cmp: „EOF“ в празния „%s“\n"
 
-#: src/cmp.c:594
+#: src/cmp.c:608
 #, c-format
 msgid "cmp: EOF on %s after byte %s, line %s\n"
 msgstr "cmp: „EOF“ в „%s“ след байт %s, ред %s\n"
 
-#: src/cmp.c:595
+#: src/cmp.c:609
 #, c-format
 msgid "cmp: EOF on %s after byte %s, in line %s\n"
 msgstr "cmp: „EOF“ в „%s“ след байт %s, на ред %s\n"
 
-#: src/cmp.c:601
+#: src/cmp.c:615
 #, c-format
 msgid "cmp: EOF on %s after byte %s\n"
 msgstr "cmp: „EOF“ в „%s“ след байт %s\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:51
+#: src/diff.c:50
 msgid "Paul Eggert"
 msgstr "Paul Eggert"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:52
+#: src/diff.c:51
 msgid "Mike Haertel"
 msgstr "Mike Haertel"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:53
+#: src/diff.c:52
 msgid "David Hayes"
 msgstr "David Hayes"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:54
+#: src/diff.c:53
 msgid "Richard Stallman"
 msgstr "Richard Stallman"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:55
+#: src/diff.c:54
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:355
+#: src/diff.c:365
 #, c-format
 msgid "invalid context length '%s'"
 msgstr "неправилен размер на контекста „%s“"
 
-#: src/diff.c:438
+#: src/diff.c:487
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "страницирането не се поддържа на този компютър"
 
-#: src/diff.c:453 src/diff3.c:341
+#: src/diff.c:502 src/diff3.c:348
 #, c-format
 msgid "too many file label options"
 msgstr "прекалено много операции за етикети на файл"
 
-#: src/diff.c:530
+#: src/diff.c:579
 #, c-format
 msgid "invalid width '%s'"
 msgstr "неправилна широчина „%s“"
 
-#: src/diff.c:534
+#: src/diff.c:583
 msgid "conflicting width options"
 msgstr "опциите за широчина са в конфликт"
 
-#: src/diff.c:559
+#: src/diff.c:608
 #, c-format
 msgid "invalid horizon length '%s'"
 msgstr "неправилен обхват на хоризонта: „%s“"
 
-#: src/diff.c:615
+#: src/diff.c:664
 #, c-format
 msgid "invalid tabsize '%s'"
 msgstr "неправилен размер на табулатора: „%s“"
 
-#: src/diff.c:619
+#: src/diff.c:668
 msgid "conflicting tabsize options"
 msgstr "противоречиви опции за размера на табулацията"
 
-#: src/diff.c:774
+#: src/diff.c:834
 msgid "--from-file and --to-file both specified"
 msgstr "указани са и двете опции „--from-file“ и „--to-file“"
 
-#: src/diff.c:893
+#: src/diff.c:953
 msgid "    --normal                  output a normal diff (the default)"
 msgstr ""
 "    --normal                  извеждане на разликите по обичайния начин\n"
 "                              (стандартно)"
 
-#: src/diff.c:894
+#: src/diff.c:954
 msgid "-q, --brief                   report only when files differ"
 msgstr ""
 "-q, --brief                   извеждане на информация само при различни "
 "файлове"
 
-#: src/diff.c:895
+#: src/diff.c:955
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr ""
 "-s, --report-identical-files  извеждане на информация при еднакви файлове"
 
-#: src/diff.c:896
+#: src/diff.c:956
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
@@ -744,7 +745,7 @@ msgstr ""
 "контекст\n"
 "                              (стандартно е 3)"
 
-#: src/diff.c:897
+#: src/diff.c:957
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
@@ -753,44 +754,44 @@ msgstr ""
 "контекст\n"
 "                              (стандартно е 3)"
 
-#: src/diff.c:898
+#: src/diff.c:958
 msgid "-e, --ed                      output an ed script"
 msgstr "-e, --ed                      извеждане на скрипт на „ed“"
 
-#: src/diff.c:899
+#: src/diff.c:959
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n, --rcs                     разлика във формат „RCS“"
 
-#: src/diff.c:900
+#: src/diff.c:960
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side            изход в 2 колони"
 
-#: src/diff.c:901
+#: src/diff.c:961
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
 "-W, --width=БРОЙ              извеждане на максимум този БРОЙ знаци на ред\n"
 "                              (стандартно е 130)"
 
-#: src/diff.c:902
+#: src/diff.c:962
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr ""
 "    --left-column             извеждане само на лявата страна при еднакви "
 "редове"
 
-#: src/diff.c:903
+#: src/diff.c:963
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "    --suppress-common-lines   без извеждане на еднаквите редове"
 
-#: src/diff.c:905
+#: src/diff.c:965
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr ""
 "-p, --show-c-function         указване на имената на функциите на „C“, в "
 "които\n"
 "                              има промени"
 
-#: src/diff.c:906
+#: src/diff.c:966
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr ""
 "-F, --show-function-line=РЕГУЛЯРЕН_ИЗРАЗ\n"
@@ -798,7 +799,7 @@ msgstr ""
 "този\n"
 "                              РЕГУЛЯРЕН_ИЗРАЗ"
 
-#: src/diff.c:907
+#: src/diff.c:967
 msgid ""
 "    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
@@ -806,18 +807,18 @@ msgstr ""
 "    --label ЕТИКЕТ            ползване на този ЕТИКЕТ вместо име на файл и\n"
 "                              момент във времето (може да го повторите)"
 
-#: src/diff.c:910
+#: src/diff.c:970
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr ""
 "-t, --expand-tabs             заместване на табулациите с интервали в изхода"
 
-#: src/diff.c:911
+#: src/diff.c:971
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr ""
 "-T, --initial-tab             подравняване на табулациите чрез добавяне на\n"
 "                              табулация отпред"
 
-#: src/diff.c:912
+#: src/diff.c:972
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
@@ -825,33 +826,33 @@ msgstr ""
 "този\n"
 "                              брой знаци на ред"
 
-#: src/diff.c:913
+#: src/diff.c:973
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
 "    --suppress-blank-empty    без извеждане на интервал или табулация пред\n"
 "                              празни редове"
 
-#: src/diff.c:914
+#: src/diff.c:974
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr ""
 "-l, --paginate                извеждане през командата „pr“ за странициране"
 
-#: src/diff.c:916
+#: src/diff.c:976
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr "-r, --recursive               рекурсивно сравнение на директориите"
 
-#: src/diff.c:917
+#: src/diff.c:977
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr "    --no-dereference          без следване на символните връзки"
 
-#: src/diff.c:918
+#: src/diff.c:978
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr ""
 "-N, --new-file                липсващите файлове да се обработват като празни"
 
-#: src/diff.c:919
+#: src/diff.c:979
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
 "    --unidirectional-new-file   \n"
@@ -859,14 +860,14 @@ msgstr ""
 "като\n"
 "                              празни"
 
-#: src/diff.c:920
+#: src/diff.c:980
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ""
 "    --ignore-file-name-case   без разлика главни/малки при сравнение на "
 "имена\n"
 "                              на файлове"
 
-#: src/diff.c:921
+#: src/diff.c:981
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
 "    --no-ignore-file-name-case\n"
@@ -874,21 +875,21 @@ msgstr ""
 "имена\n"
 "                              на файлове"
 
-#: src/diff.c:922
+#: src/diff.c:982
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr ""
 "-x, --exclude=ШАБЛОН          прескачане на файловете с имена напасващи "
 "този\n"
 "                              ШАБЛОН"
 
-#: src/diff.c:923
+#: src/diff.c:983
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
 "-X, --exclude-from=ФАЙЛ       прескачане на файловете с имена напасващи на\n"
 "                              някой от шаблоните в този ФАЙЛ"
 
-#: src/diff.c:924
+#: src/diff.c:984
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
@@ -896,7 +897,7 @@ msgstr ""
 "този\n"
 "                              файл"
 
-#: src/diff.c:925
+#: src/diff.c:985
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
@@ -904,7 +905,7 @@ msgstr ""
 "    --from-file=ФАЙЛ_1        сравняване на ФАЙЛ_1 с всички аргументи.\n"
 "                              ФАЙЛ_1 може да е и директория"
 
-#: src/diff.c:927
+#: src/diff.c:987
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
@@ -912,7 +913,7 @@ msgstr ""
 "    --to-file=ФАЙЛ_2          сравняване на всички аргументи с ФАЙЛ_1.\n"
 "                              ФАЙЛ_2 може да е и директория"
 
-#: src/diff.c:930
+#: src/diff.c:990
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr ""
@@ -920,35 +921,35 @@ msgstr ""
 "на\n"
 "                              файловете"
 
-#: src/diff.c:931
+#: src/diff.c:991
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr ""
 "-E, --ignore-tab-expansion    без значение на замяната на табулации с\n"
 "                              интервали"
 
-#: src/diff.c:932
+#: src/diff.c:992
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr ""
 "-Z, --ignore-trailing-space   без значение на празните знаци в края на\n"
 "                              редовете"
 
-#: src/diff.c:933
+#: src/diff.c:993
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr ""
 "-b, --ignore-space-change     без значение на промяната в празните знаци"
 
-#: src/diff.c:934
+#: src/diff.c:994
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w, --ignore-all-space        без значение на всички празни знаци"
 
-#: src/diff.c:935
+#: src/diff.c:995
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr ""
 "-B, --ignore-blank-lines      без значение на промяната на празните редове"
 
-#: src/diff.c:936
+#: src/diff.c:996
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=РЕГУЛЯРЕН_ИЗРАЗ\n"
@@ -956,41 +957,41 @@ msgstr ""
 "напасващи\n"
 "                              този РЕГУЛЯРЕН_ИЗРАЗ"
 
-#: src/diff.c:938
+#: src/diff.c:998
 msgid "-a, --text                      treat all files as text"
 msgstr ""
 "-a, --text                    всички файлове да се обработят като текст"
 
-#: src/diff.c:939
+#: src/diff.c:999
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr       изтриване на последващите знаци „\\r“ на входа"
 
-#: src/diff.c:941
+#: src/diff.c:1001
 msgid "    --binary                    read and write data in binary mode"
 msgstr ""
 "    --binary                    четене и запис на данните в двоичен режим"
 
-#: src/diff.c:944
+#: src/diff.c:1004
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
 "-D, --ifdef=ИМЕ               сливане чрез ползване на директиви „#ifdef ИМЕ“"
 
-#: src/diff.c:945
+#: src/diff.c:1005
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr ""
 "    --ВИД_ГР-group-format=ФМТ_ГР\n"
 "                              форматиране на този ВИД_ГРупи на входа с този\n"
 "                              ФорМаТ_за_ГРупи"
 
-#: src/diff.c:946
+#: src/diff.c:1006
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr ""
 "    --line-format=ФМТ_РД      форматиране на всички входни редови с този\n"
 "                              ФорМаТ_за_РеДове"
 
-#: src/diff.c:947
+#: src/diff.c:1007
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr ""
 "    --ВИД_РД-line-format=ФМТ_РД\n"
@@ -998,7 +999,7 @@ msgstr ""
 "този\n"
 "                              ФорМаТ_за_РеДове"
 
-#: src/diff.c:948
+#: src/diff.c:1008
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
@@ -1006,7 +1007,7 @@ msgstr ""
 "  Тези опции дават повече контрол върху изведената информация, все едно \n"
 "  „-D/--ifdef“ на стероиди"
 
-#: src/diff.c:950
+#: src/diff.c:1010
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
 "  ВИД_РД е „old“ (стара), „new“ (нова) или „unchanged“ (непроменена).\n"
@@ -1014,7 +1015,7 @@ msgstr ""
 "„changed“\n"
 "           (променена)."
 
-#: src/diff.c:951
+#: src/diff.c:1011
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -1044,7 +1045,7 @@ msgstr ""
 "        M     L+1\n"
 "    %(A=B?T:E)  Ако A е равно на B, то T, в противен случай — E"
 
-#: src/diff.c:963
+#: src/diff.c:1023
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -1057,7 +1058,7 @@ msgstr ""
 "    %[-][ШИР][.[ТЧНС]]{doxX}n     форматиращ низ на printf за номерата на\n"
 "                                  входните редове"
 
-#: src/diff.c:967
+#: src/diff.c:1027
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1071,11 +1072,11 @@ msgstr ""
 "    %c'\\OOO'  знак с този осмичен номер\n"
 "    C         знакът „C“ (останалите знаци представляват себе си)"
 
-#: src/diff.c:973
+#: src/diff.c:1033
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr "-d, --minimal                 търсене на по-малки разлики"
 
-#: src/diff.c:974
+#: src/diff.c:1034
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr ""
 "    --horizon-lines=БРОЙ      без прескачане на този БРОЙ еднакви редове в\n"
@@ -1083,14 +1084,14 @@ msgstr ""
 "откриване\n"
 "                              на по-малки разлики"
 
-#: src/diff.c:975
+#: src/diff.c:1035
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
 "    --speed-large-files       обработване на файловете все едно са големи с\n"
 "                              множество разпръснати, малки разлики"
 
-#: src/diff.c:976
+#: src/diff.c:1036
 msgid ""
 "    --color[=WHEN]       color output; WHEN is 'never', 'always', or "
 "'auto';\n"
@@ -1102,7 +1103,7 @@ msgstr ""
 "стандартно).\n"
 "                              Без аргумент е  същото като „--color='auto'“"
 
-#: src/diff.c:978
+#: src/diff.c:1038
 msgid ""
 "    --palette=PALETTE    the colors to use when --color is active; PALETTE "
 "is\n"
@@ -1112,22 +1113,22 @@ msgstr ""
 "                              ПАЛИТРАта е списък с разделител „:“ от\n"
 "                              възможностите на „terminfo“"
 
-#: src/diff.c:981
+#: src/diff.c:1041
 msgid "    --help               display this help and exit"
 msgstr "    --help                    извеждане на тази помощ и изход"
 
-#: src/diff.c:982
+#: src/diff.c:1042
 msgid "-v, --version            output version information and exit"
 msgstr "-v, --version                 извеждане на версията и изход"
 
-#: src/diff.c:984
+#: src/diff.c:1044
 msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
 "ФАЙЛовете са „ФАЙЛ_1 ФАЙЛ_2“, „ДИРЕКТОРИЯ_1 ДИРЕКТОРИЯ_2“, „ДИРЕКТОРИЯ ФАЙЛ“ "
 "или\n"
 "„ФАЙЛ ДИРЕКТОРИЯ“."
 
-#: src/diff.c:985
+#: src/diff.c:1045
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr ""
@@ -1135,93 +1136,93 @@ msgstr ""
 "ограничения\n"
 "за ФАЙЛовете."
 
-#: src/diff.c:986 src/diff3.c:533 src/sdiff.c:220
+#: src/diff.c:1046 src/diff3.c:531 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
 msgstr "Ако за ФАЙЛ е използвано „-“, се чете от стандартния вход."
 
-#: src/diff.c:996
+#: src/diff.c:1056
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Употреба: %s [ОПЦИЯ]… ФАЙЛ…\n"
 
-#: src/diff.c:997
+#: src/diff.c:1057
 msgid "Compare FILES line by line."
 msgstr "Поредово сравнение на ФАЙЛовете"
 
-#: src/diff.c:1034
+#: src/diff.c:1094
 #, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "противоречив аргумент към опцията „%s“: „%s“"
 
-#: src/diff.c:1047
+#: src/diff.c:1107
 #, c-format
 msgid "conflicting output style options"
 msgstr "противоречащи си опции за стила на изведената информация"
 
-#: src/diff.c:1063
+#: src/diff.c:1123
 #, c-format
 msgid "invalid color '%s'"
 msgstr "неправилен цвят „%s“"
 
-#: src/diff.c:1119 src/diff.c:1329
+#: src/diff.c:1197 src/diff.c:1401
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Само в „%s“: %s\n"
 
-#: src/diff.c:1253
+#: src/diff.c:1325
 msgid "cannot compare '-' to a directory"
 msgstr "„-“ не може да се сравни с директория"
 
-#: src/diff.c:1288
+#: src/diff.c:1360
 msgid "-D option not supported with directories"
 msgstr "опцията „-D“ не се поддържа с директории"
 
-#: src/diff.c:1297
+#: src/diff.c:1369
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Общи поддиректории: „%s“ и „%s“\n"
 
-#: src/diff.c:1339 src/diff.c:1389
+#: src/diff.c:1411 src/diff.c:1461
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr "Файл „%s“ е %s, а файл „%s“ е %s\n"
 
-#: src/diff.c:1375
+#: src/diff.c:1447
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "Символните връзки „%s“ и „%s“ се различават\n"
 
-#: src/diff.c:1462
+#: src/diff.c:1534
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Файловете „%s“ и „%s“ са еднакви\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff3.c:43
+#: src/diff3.c:51
 msgid "Randy Smith"
 msgstr "Randy Smith"
 
-#: src/diff3.c:356
+#: src/diff3.c:363
 #, c-format
 msgid "incompatible options"
 msgstr "несъвместими опции"
 
-#: src/diff3.c:396
+#: src/diff3.c:403
 msgid "'-' specified for more than one input file"
 msgstr "„-“ е указан за повече от един от входните файлове"
 
-#: src/diff3.c:447 src/diff3.c:1295 src/diff3.c:1698 src/diff3.c:1753
-#: src/sdiff.c:308 src/sdiff.c:846 src/sdiff.c:857
+#: src/diff3.c:445 src/diff3.c:1284 src/diff3.c:1683 src/diff3.c:1738
+#: src/sdiff.c:306 src/sdiff.c:843 src/sdiff.c:854
 msgid "read failed"
 msgstr "неуспешно прочитане"
 
-#: src/diff3.c:480
+#: src/diff3.c:478
 msgid "-A, --show-all              output all changes, bracketing conflicts"
 msgstr ""
 "-A, --show-all              извеждане на всички промени, конфликтите се\n"
 "                              заграждат"
 
-#: src/diff3.c:482
+#: src/diff3.c:480
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
@@ -1231,11 +1232,11 @@ msgstr ""
 "                              от ПЪРВОНАЧАЛНия_ФАЙЛ спрямо ЧУЖДия_ФАЙЛ в "
 "МОЯ_ФАЙЛ"
 
-#: src/diff3.c:484
+#: src/diff3.c:482
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
 msgstr "-E, --show-overlap          като „-e“, но конфликтите се заграждат"
 
-#: src/diff3.c:485
+#: src/diff3.c:483
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
@@ -1244,7 +1245,7 @@ msgstr ""
 "не\n"
 "                              се припокриват"
 
-#: src/diff3.c:486
+#: src/diff3.c:484
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
 msgstr ""
@@ -1252,18 +1253,18 @@ msgstr ""
 "се\n"
 "                              припокриват"
 
-#: src/diff3.c:487
+#: src/diff3.c:485
 msgid "-X                          like -x, but bracket conflicts"
 msgstr "-X                          като „-x“, но конфликтите се заграждат"
 
-#: src/diff3.c:488
+#: src/diff3.c:486
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
 msgstr ""
 "-i                          добавяне на командите „w“ и „q“ към скриптовете "
 "за\n"
 "                              „ed“"
 
-#: src/diff3.c:490
+#: src/diff3.c:488
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
@@ -1272,26 +1273,26 @@ msgstr ""
 "при\n"
 "                              опцията „-A“ (ако не са зададени други опции)"
 
-#: src/diff3.c:493
+#: src/diff3.c:491
 msgid "-a, --text                  treat all files as text"
 msgstr "-a, --text                  всички файлове да се считат за текст"
 
-#: src/diff3.c:494
+#: src/diff3.c:492
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr     изтриване на последващите знаци „\\r“ на входа"
 
-#: src/diff3.c:495
+#: src/diff3.c:493
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
 msgstr ""
 "-T, --initial-tab           подравняване на табулациите чрез добавяне на\n"
 "                              табулация отпред"
 
-#: src/diff3.c:496
+#: src/diff3.c:494
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
 msgstr "    --diff-program=ПРОГРАМА сравнение на файловете с тази ПРОГРАМА"
 
-#: src/diff3.c:497
+#: src/diff3.c:495
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
@@ -1299,24 +1300,24 @@ msgstr ""
 "-L, --label=ЕТИКЕТ          ползване на този ЕТИКЕТ вместо име на файл\n"
 "                              (може да го повторите до три пъти)"
 
-#: src/diff3.c:500
+#: src/diff3.c:498
 msgid "    --help                  display this help and exit"
 msgstr "    --help                  извеждане на тази помощ и изход"
 
-#: src/diff3.c:501
+#: src/diff3.c:499
 msgid "-v, --version               output version information and exit"
 msgstr "-v, --version               извеждане не версията и изход"
 
-#: src/diff3.c:510
+#: src/diff3.c:508
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
 msgstr "Употреба: %s [ОПЦИЯ]… МОЙ_ФАЙЛ ПЪРВОНАЧАЛЕН_ФАЙЛ ЧУЖД_ФАЙЛ\n"
 
-#: src/diff3.c:512
+#: src/diff3.c:510
 msgid "Compare three files line by line."
 msgstr "Поредово сравняване на три файла"
 
-#: src/diff3.c:522
+#: src/diff3.c:520
 msgid ""
 "\n"
 "The default output format is a somewhat human-readable representation of\n"
@@ -1339,54 +1340,54 @@ msgstr ""
 "се извежда директно слетият резултат.  Когато входът е необичаен, това\n"
 "дава по-добър резултат отколкото „ed“.\n"
 
-#: src/diff3.c:534
+#: src/diff3.c:532
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
 msgstr "Изходният код е 0 при успех, 1 при конфликт и 2 при грешка."
 
-#: src/diff3.c:727
+#: src/diff3.c:725
 msgid "internal error: screwup in format of diff blocks"
 msgstr "вътрешна грешка: неправилен формат на разликите"
 
-#: src/diff3.c:1022
+#: src/diff3.c:1015
 #, c-format
 msgid "%s: diff failed: "
 msgstr "%s: неуспешно изпълнение: "
 
-#: src/diff3.c:1044
+#: src/diff3.c:1037
 msgid "internal error: invalid diff type in process_diff"
 msgstr "вътрешна грешка: неправилен вид на разликата в „process_diff“"
 
-#: src/diff3.c:1069
+#: src/diff3.c:1060
 msgid "invalid diff format; invalid change separator"
 msgstr "неправилен формат на разликата: грешен разделител на разлика"
 
-#: src/diff3.c:1305
+#: src/diff3.c:1294
 msgid "invalid diff format; incomplete last line"
 msgstr "неправилен формат на разликата: последният ред не е завършен"
 
-#: src/diff3.c:1329 src/sdiff.c:276 src/util.c:969
+#: src/diff3.c:1318 src/sdiff.c:274 src/util.c:1069
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "допълнителната програма „%s“ не може да бъде стартирана"
 
-#: src/diff3.c:1354
+#: src/diff3.c:1343
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "неправилен формат на разликата: грешни знаци в началото на реда"
 
-#: src/diff3.c:1427
+#: src/diff3.c:1416
 msgid "internal error: invalid diff type passed to output"
 msgstr "вътрешна грешка: зададен е неправилен вид на изхода"
 
-#: src/diff3.c:1700 src/diff3.c:1757
+#: src/diff3.c:1685 src/diff3.c:1742
 msgid "input file shrank"
 msgstr "входен файл се смали"
 
-#: src/dir.c:156
+#: src/dir.c:154
 #, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "файловете „%s“ и „%s“ не може да се сравнят"
 
-#: src/dir.c:225
+#: src/dir.c:223
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: зацикляне при рекурсивна обработка на директориите"
@@ -1396,46 +1397,46 @@ msgstr "%s: зацикляне при рекурсивна обработка н
 msgid "Thomas Lord"
 msgstr "Thomas Lord"
 
-#: src/sdiff.c:174
+#: src/sdiff.c:173
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
 msgstr ""
 "-o, --output=ФАЙЛ            интерактивен режим, изходът отива в този ФАЙЛ"
 
-#: src/sdiff.c:176
+#: src/sdiff.c:175
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
 msgstr "-i, --ignore-case            пренебрегване на регистъра на буквите"
 
-#: src/sdiff.c:177
+#: src/sdiff.c:176
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
 msgstr ""
 "-E, --ignore-tab-expansion   пренебрегване на промените поради заместване "
 "на\n"
 "                               табулациите с интервали"
 
-#: src/sdiff.c:178
+#: src/sdiff.c:177
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
 msgstr ""
 "-Z, --ignore-trailing-space  пренебрегване на празните знаци в края на реда"
 
-#: src/sdiff.c:179
+#: src/sdiff.c:178
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
 msgstr ""
 "-b, --ignore-space-change    пренебрегване на промените в празните знаци"
 
-#: src/sdiff.c:180
+#: src/sdiff.c:179
 msgid "-W, --ignore-all-space       ignore all white space"
 msgstr "-W, --ignore-all-space       пренебрегване на всички празни знаци"
 
-#: src/sdiff.c:181
+#: src/sdiff.c:180
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
 msgstr ""
 "-B, --ignore-blank-lines     пренебрегване на промени, които са от празни "
 "редове"
 
-#: src/sdiff.c:182
+#: src/sdiff.c:181
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=РЕГУЛЯРЕН_ИЗРАЗ\n"
@@ -1443,16 +1444,16 @@ msgstr ""
 "които\n"
 "                               напасват на този РЕГУЛЯРЕН_ИЗРАЗ"
 
-#: src/sdiff.c:183
+#: src/sdiff.c:182
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr      махане на последващите знаци „\\r“ на входа"
 
-#: src/sdiff.c:184
+#: src/sdiff.c:183
 msgid "-a, --text                   treat all files as text"
 msgstr "-a, --text                   всички файлове да се считат за текст"
 
-#: src/sdiff.c:186
+#: src/sdiff.c:185
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
 msgstr ""
@@ -1460,23 +1461,23 @@ msgstr ""
 "ред\n"
 "                               (стандартно е 130)"
 
-#: src/sdiff.c:187
+#: src/sdiff.c:186
 msgid ""
 "-l, --left-column            output only the left column of common lines"
 msgstr ""
 "-l, --left-column            извеждане само на лявата колона от еднаквите "
 "редове"
 
-#: src/sdiff.c:188
+#: src/sdiff.c:187
 msgid "-s, --suppress-common-lines  do not output common lines"
 msgstr "-s, --suppress-common-lines  без извеждане на еднаквите редове"
 
-#: src/sdiff.c:190
+#: src/sdiff.c:189
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
 msgstr ""
 "-t, --expand-tabs            табулациите да се заменят с интервали на изхода"
 
-#: src/sdiff.c:191
+#: src/sdiff.c:190
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
 msgstr ""
@@ -1484,11 +1485,11 @@ msgstr ""
 "знаци\n"
 "                               (стандартно е 8)"
 
-#: src/sdiff.c:193
+#: src/sdiff.c:192
 msgid "-d, --minimal                try hard to find a smaller set of changes"
 msgstr "-d, --minimal                опит промените да се сведат до по-малки"
 
-#: src/sdiff.c:194
+#: src/sdiff.c:193
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
 msgstr ""
@@ -1496,36 +1497,36 @@ msgstr ""
 "малки\n"
 "                               промени"
 
-#: src/sdiff.c:195
+#: src/sdiff.c:194
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
 msgstr "    --diff-program=ПРОГРАМА  сравнение на файловете с тази ПРОГРАМА"
 
-#: src/sdiff.c:197
+#: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
 msgstr "    --help                   извеждане на тази помощ и изход"
 
-#: src/sdiff.c:198
+#: src/sdiff.c:197
 msgid "-v, --version                output version information and exit"
 msgstr "-v, --version                извеждане на версията и изход"
 
-#: src/sdiff.c:207
+#: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
 msgstr "Употреба: %s [ОПЦИЯ]… ФАЙЛ_1 ФАЙЛ_2\n"
 
-#: src/sdiff.c:209
+#: src/sdiff.c:208
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
 msgstr "Успоредно сливане на разликите във ФАЙЛ_1 и ФАЙЛ_2"
 
-#: src/sdiff.c:330
+#: src/sdiff.c:328
 msgid "cannot interactively merge standard input"
 msgstr "стандартният вход не може да се слива интерактивно"
 
-#: src/sdiff.c:597
+#: src/sdiff.c:594
 msgid "both files to be compared are directories"
 msgstr "и двата подадени файла са директории"
 
-#: src/sdiff.c:820
+#: src/sdiff.c:817
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
 "eb:\tEdit then use both versions.\n"
@@ -1549,12 +1550,12 @@ msgstr ""
 "v:          Включване на общите редове и допълнителни подробности\n"
 "q:          Изход от програмата\n"
 
-#: src/util.c:662
+#: src/util.c:755
 #, c-format
 msgid "unrecognized prefix: %s"
 msgstr "непознат префикс: %s"
 
-#: src/util.c:692
+#: src/util.c:785
 #, c-format
 msgid "unparsable value for --palette"
 msgstr "непознат аргумент към опцията „--palette“"
index 837c027..ab50f2f 100644 (file)
--- a/po/ca.po
+++ b/po/ca.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: diffutils 2.8.7\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2021-08-01 18:56-0700\n"
+"POT-Creation-Date: 2023-05-21 01:51-0700\n"
 "PO-Revision-Date: 2004-04-21 13:33+0200\n"
 "Last-Translator: Ernest Adrogué Calveras <eadrogue@gmx.net>\n"
 "Language-Team: Catalan <ca@dodds.net>\n"
@@ -17,29 +17,29 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 
-#: lib/argmatch.c:132
+#: lib/argmatch.c:145
 #, c-format
 msgid "invalid argument %s for %s"
 msgstr ""
 
-#: lib/argmatch.c:133
+#: lib/argmatch.c:146
 #, c-format
 msgid "ambiguous argument %s for %s"
 msgstr ""
 
-#: lib/argmatch.c:152 lib/argmatch.h:223
+#: lib/argmatch.c:165 lib/argmatch.h:242
 msgid "Valid arguments are:"
 msgstr ""
 
-#: lib/c-stack.c:187
+#: lib/c-stack.c:186
 msgid "program error"
 msgstr "error del programa"
 
-#: lib/c-stack.c:188
+#: lib/c-stack.c:187
 msgid "stack overflow"
 msgstr "desbordament de pila"
 
-#: lib/error.c:195
+#: lib/error.c:193
 msgid "Unknown system error"
 msgstr "Error no identificat del sistema"
 
@@ -199,85 +199,85 @@ msgstr "%s: l'opci
 #. If you don't know what to put here, please see
 #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:355
+#: lib/quotearg.c:354
 msgid "`"
 msgstr ""
 
-#: lib/quotearg.c:356
+#: lib/quotearg.c:355
 msgid "'"
 msgstr ""
 
-#: lib/regcomp.c:135
+#: lib/regcomp.c:122
 msgid "Success"
 msgstr "Succés"
 
-#: lib/regcomp.c:138
+#: lib/regcomp.c:125
 msgid "No match"
 msgstr "Cap resultat"
 
-#: lib/regcomp.c:141
+#: lib/regcomp.c:128
 msgid "Invalid regular expression"
 msgstr "L'expressió regular no és vàlida"
 
-#: lib/regcomp.c:144
+#: lib/regcomp.c:131
 msgid "Invalid collation character"
 msgstr "El caràcter de col·lació no és vàlid"
 
-#: lib/regcomp.c:147
+#: lib/regcomp.c:134
 msgid "Invalid character class name"
 msgstr "El nom de la classe de caràcter no és vàlid"
 
 # al final o al principi? eac
-#: lib/regcomp.c:150
+#: lib/regcomp.c:137
 msgid "Trailing backslash"
 msgstr "Hi ha una barra invertida al final"
 
-#: lib/regcomp.c:153
+#: lib/regcomp.c:140
 msgid "Invalid back reference"
 msgstr "Hi ha una referència cap enrera no vàlida"
 
-#: lib/regcomp.c:156
+#: lib/regcomp.c:143
 #, fuzzy
 msgid "Unmatched [, [^, [:, [., or [="
 msgstr "Hi ha un signe [ o ^[ desaparellat"
 
-#: lib/regcomp.c:159
+#: lib/regcomp.c:146
 msgid "Unmatched ( or \\("
 msgstr "Hi ha un signe ( o \\( desaparellat"
 
-#: lib/regcomp.c:162
+#: lib/regcomp.c:149
 msgid "Unmatched \\{"
 msgstr "Hi ha un signe \\{ desaparellat"
 
-#: lib/regcomp.c:165
+#: lib/regcomp.c:152
 msgid "Invalid content of \\{\\}"
 msgstr "El contingut de \\{\\} no és vàlid"
 
-#: lib/regcomp.c:168
+#: lib/regcomp.c:155
 msgid "Invalid range end"
 msgstr "El límit superior de l'interval no vàlid"
 
-#: lib/regcomp.c:171
+#: lib/regcomp.c:158
 msgid "Memory exhausted"
 msgstr "Memòria exhaurida"
 
-#: lib/regcomp.c:174
+#: lib/regcomp.c:161
 msgid "Invalid preceding regular expression"
 msgstr "L'expressió regular precedent no és vàlida"
 
-#: lib/regcomp.c:177
+#: lib/regcomp.c:164
 msgid "Premature end of regular expression"
 msgstr "Final prematur de l'expressió regular"
 
-#: lib/regcomp.c:180
+#: lib/regcomp.c:167
 msgid "Regular expression too big"
 msgstr "L'expressió regular és massa gran"
 
-#: lib/regcomp.c:183
+#: lib/regcomp.c:170
 msgid "Unmatched ) or \\)"
 msgstr "Hi ha un signe ) o \\) desaparellat"
 
-#: lib/regcomp.c:676
+#: lib/regcomp.c:650
 msgid "No previous regular expression"
 msgstr "No hi ha cap expressió regular prèvia"
 
@@ -470,17 +470,17 @@ msgstr ""
 msgid "General help using GNU software: <%s>\n"
 msgstr ""
 
-#: src/analyze.c:454 src/diff.c:1406
+#: src/analyze.c:455 src/diff.c:1478
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Els fitxers %s i %s difereixen\n"
 
-#: src/analyze.c:455
+#: src/analyze.c:456
 #, fuzzy, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "Els fitxers %s i %s difereixen\n"
 
-#: src/analyze.c:706 src/diff3.c:1470 src/util.c:1254
+#: src/analyze.c:707 src/diff3.c:1457 src/util.c:1354
 msgid "No newline at end of file"
 msgstr "No hi ha cap caràcter de salt de línia al final del fitxer"
 
@@ -494,41 +494,42 @@ msgstr "Torbjorn Granlund"
 msgid "David MacKenzie"
 msgstr ""
 
-#: src/cmp.c:120 src/diff.c:879 src/diff3.c:467 src/sdiff.c:160
+#: src/cmp.c:124 src/diff.c:939 src/diff3.c:465 src/sdiff.c:159
 #, fuzzy, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Proveu «%s --help» per obtenir més informació."
 
-#: src/cmp.c:138
+#: src/cmp.c:142
 #, fuzzy, c-format
 msgid "invalid --ignore-initial value '%s'"
 msgstr "el valor «%s» per l'opció --ignore-initial no és vàlid"
 
-#: src/cmp.c:148
+#: src/cmp.c:152
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr "les opcions -l i -s són incompatibles"
 
-#: src/cmp.c:156 src/diff.c:887 src/diff3.c:474 src/sdiff.c:168 src/sdiff.c:316
-#: src/sdiff.c:323 src/sdiff.c:876 src/util.c:852 src/util.c:952 src/util.c:959
+#: src/cmp.c:160 src/diff.c:947 src/diff3.c:472 src/sdiff.c:167 src/sdiff.c:314
+#: src/sdiff.c:321 src/sdiff.c:873 src/util.c:952 src/util.c:1052
+#: src/util.c:1059
 msgid "write failed"
 msgstr "error d'escriptura"
 
-#: src/cmp.c:158 src/diff.c:889 src/diff.c:1471 src/diff3.c:476 src/sdiff.c:170
+#: src/cmp.c:162 src/diff.c:949 src/diff.c:1543 src/diff3.c:474 src/sdiff.c:169
 msgid "standard output"
 msgstr "sortida estàndard"
 
-#: src/cmp.c:162
+#: src/cmp.c:166
 #, fuzzy
 msgid "-b, --print-bytes          print differing bytes"
 msgstr "-b  --print-bytes  Mostra els octets que difereixen."
 
-#: src/cmp.c:163
+#: src/cmp.c:167
 #, fuzzy
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
 msgstr "-i SALT  --ignore-initial=SALT  Ignora els primers SALT octets."
 
-#: src/cmp.c:164
+#: src/cmp.c:168
 #, fuzzy
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
@@ -536,40 +537,40 @@ msgid ""
 msgstr ""
 "  Ignora els primers SALT1 octets de FITXER1 i els primers SALT2 de FITXER2."
 
-#: src/cmp.c:166
+#: src/cmp.c:170
 #, fuzzy
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
 msgstr "-l  --verbose  Mostra la posició i valor dels octets que difereixen."
 
-#: src/cmp.c:167
+#: src/cmp.c:171
 #, fuzzy
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
 msgstr "-n LÍMIT  --bytes=LÍMIT  Compara com a màxim LÍMIT octets."
 
-#: src/cmp.c:168
+#: src/cmp.c:172
 msgid "-s, --quiet, --silent      suppress all normal output"
 msgstr ""
 
-#: src/cmp.c:169
+#: src/cmp.c:173
 msgid "    --help                 display this help and exit"
 msgstr ""
 
-#: src/cmp.c:170
+#: src/cmp.c:174
 #, fuzzy
 msgid "-v, --version              output version information and exit"
 msgstr "-v  --version  Mostra la versió del programa."
 
-#: src/cmp.c:179
+#: src/cmp.c:183
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
 msgstr "Mode d'ús: %s [OPCIÓ]... FITXER1 [FITXER2 [SALT1 [SALT2]]]\n"
 
-#: src/cmp.c:181
+#: src/cmp.c:185
 msgid "Compare two files byte by byte."
 msgstr "Compara dos fitxers octet a octet."
 
-#: src/cmp.c:183
+#: src/cmp.c:187
 #, fuzzy
 msgid ""
 "The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
@@ -577,12 +578,12 @@ msgid ""
 msgstr ""
 "SALT1 i SALT2 són el nombre d'octets que es passen per alt de cada fitxer."
 
-#: src/cmp.c:186 src/diff.c:999 src/diff3.c:514 src/sdiff.c:211
+#: src/cmp.c:190 src/diff.c:1059 src/diff3.c:512 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
 
-#: src/cmp.c:192
+#: src/cmp.c:196
 msgid ""
 "SKIP values may be followed by the following multiplicative suffixes:\n"
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
@@ -592,218 +593,218 @@ msgstr ""
 "kB per 1000, K per 1024, MB per 1.000.000, M per 1.048.576, GB per\n"
 "1.000.000.000, G per 1.073.741.824, i així amb T, P, E, Z i Y."
 
-#: src/cmp.c:195
+#: src/cmp.c:199
 #, fuzzy
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "Si un FITXER és «-» o falta, llegeix l'entrada estàndard."
 
-#: src/cmp.c:196 src/diff.c:987 src/sdiff.c:221
+#: src/cmp.c:200 src/diff.c:1047 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr ""
 "L'estat de sortida és 0 si les entrades són iguals, 1 si són diferents\n"
 "i 2 en cas d'error."
 
-#: src/cmp.c:243
+#: src/cmp.c:247
 #, fuzzy, c-format
 msgid "invalid --bytes value '%s'"
 msgstr "el valor «%s» per l'opció --bytes no és vàlid"
 
-#: src/cmp.c:269 src/diff.c:797 src/diff3.c:361 src/sdiff.c:567
+#: src/cmp.c:273 src/diff.c:857 src/diff3.c:368 src/sdiff.c:564
 #, fuzzy, c-format
 msgid "missing operand after '%s'"
 msgstr "falta un operand després de «%s»"
 
-#: src/cmp.c:281 src/diff.c:799 src/diff3.c:363 src/sdiff.c:569
+#: src/cmp.c:285 src/diff.c:859 src/diff3.c:370 src/sdiff.c:566
 #, fuzzy, c-format
 msgid "extra operand '%s'"
 msgstr "sobra l'operand «%s»"
 
 # mirar el comentari del codi font
-#: src/cmp.c:507
+#: src/cmp.c:521
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s i %s difereixen: octet %s, línia %s\n"
 
-#: src/cmp.c:523
+#: src/cmp.c:537
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
 msgstr "%s i %s difereixen: l'octet %s, línia %s, és %3o %s %3o %s\n"
 
-#: src/cmp.c:580
+#: src/cmp.c:594
 #, fuzzy, c-format
 msgid "cmp: EOF on %s which is empty\n"
 msgstr "cmp: final de fitxer a %s\n"
 
 # mirar el comentari del codi font
-#: src/cmp.c:594
+#: src/cmp.c:608
 #, fuzzy, c-format
 msgid "cmp: EOF on %s after byte %s, line %s\n"
 msgstr "%s i %s difereixen: octet %s, línia %s\n"
 
 # mirar el comentari del codi font
-#: src/cmp.c:595
+#: src/cmp.c:609
 #, fuzzy, c-format
 msgid "cmp: EOF on %s after byte %s, in line %s\n"
 msgstr "%s i %s difereixen: octet %s, línia %s\n"
 
-#: src/cmp.c:601
+#: src/cmp.c:615
 #, fuzzy, c-format
 msgid "cmp: EOF on %s after byte %s\n"
 msgstr "cmp: final de fitxer a %s\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:51
+#: src/diff.c:50
 msgid "Paul Eggert"
 msgstr ""
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:52
+#: src/diff.c:51
 msgid "Mike Haertel"
 msgstr ""
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:53
+#: src/diff.c:52
 msgid "David Hayes"
 msgstr ""
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:54
+#: src/diff.c:53
 msgid "Richard Stallman"
 msgstr ""
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:55
+#: src/diff.c:54
 msgid "Len Tower"
 msgstr ""
 
-#: src/diff.c:355
+#: src/diff.c:365
 #, fuzzy, c-format
 msgid "invalid context length '%s'"
 msgstr "el nombre de línies de context «%s» no és vàlid"
 
-#: src/diff.c:438
+#: src/diff.c:487
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "aquest sistema no suporta paginació"
 
-#: src/diff.c:453 src/diff3.c:341
+#: src/diff.c:502 src/diff3.c:348
 #, c-format
 msgid "too many file label options"
 msgstr "massa opcions d'etiqueta de fitxer"
 
-#: src/diff.c:530
+#: src/diff.c:579
 #, fuzzy, c-format
 msgid "invalid width '%s'"
 msgstr "l'amplada «%s» no és vàlida"
 
-#: src/diff.c:534
+#: src/diff.c:583
 msgid "conflicting width options"
 msgstr "opcions d'amplada incompatibles"
 
-#: src/diff.c:559
+#: src/diff.c:608
 #, fuzzy, c-format
 msgid "invalid horizon length '%s'"
 msgstr "el nombre de línies d'horitzó «%s» no és vàlid"
 
-#: src/diff.c:615
+#: src/diff.c:664
 #, fuzzy, c-format
 msgid "invalid tabsize '%s'"
 msgstr "la distància de tabulació «%s» no és vàlida"
 
-#: src/diff.c:619
+#: src/diff.c:668
 msgid "conflicting tabsize options"
 msgstr "opcions de distància de tabulació incompatibles"
 
-#: src/diff.c:774
+#: src/diff.c:834
 msgid "--from-file and --to-file both specified"
 msgstr "heu especificat les opcions --from-file i --to-file al mateix temps"
 
-#: src/diff.c:893
+#: src/diff.c:953
 #, fuzzy
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "--normal  Genera un diff normal."
 
-#: src/diff.c:894
+#: src/diff.c:954
 #, fuzzy
 msgid "-q, --brief                   report only when files differ"
 msgstr "-q  --brief  Indica només si els fitxers difereixen o no."
 
-#: src/diff.c:895
+#: src/diff.c:955
 #, fuzzy
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr "-s  --report-identical-files  Avisa quan dos fitxers són idèntics."
 
-#: src/diff.c:896
+#: src/diff.c:956
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
 
-#: src/diff.c:897
+#: src/diff.c:957
 #, fuzzy
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
 "-w NÚM  --width=NÚM  No més de NÚM (130 per omissió) caràcters per línia."
 
-#: src/diff.c:898
+#: src/diff.c:958
 #, fuzzy
 msgid "-e, --ed                      output an ed script"
 msgstr "-e  --ed  Genera un script ed."
 
-#: src/diff.c:899
+#: src/diff.c:959
 #, fuzzy
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n  --rcs  Genera un diff en format RCS."
 
-#: src/diff.c:900
+#: src/diff.c:960
 msgid "-y, --side-by-side            output in two columns"
 msgstr ""
 
-#: src/diff.c:901
+#: src/diff.c:961
 #, fuzzy
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
 "-w NÚM  --width=NÚM  No més de NÚM (130 per omissió) caràcters per línia."
 
-#: src/diff.c:902
+#: src/diff.c:962
 #, fuzzy
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr ""
 "-l  --left-column  Només escriu les línies en comú a la columna esquerra."
 
-#: src/diff.c:903
+#: src/diff.c:963
 #, fuzzy
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "-s  --suppress-common-lines  No mostra les línies en comú."
 
-#: src/diff.c:905
+#: src/diff.c:965
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr ""
 
-#: src/diff.c:906
+#: src/diff.c:966
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr ""
 
-#: src/diff.c:907
+#: src/diff.c:967
 msgid ""
 "    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
 msgstr ""
 
-#: src/diff.c:910
+#: src/diff.c:970
 #, fuzzy
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr "-t  --expand-tabs  Expandeix les tabulacions de la sortida a espais."
 
-#: src/diff.c:911
+#: src/diff.c:971
 #, fuzzy
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr ""
 "-T  --initial-tab  Alinea el text de cada línia amb un caràcter de tabulació."
 
-#: src/diff.c:912
+#: src/diff.c:972
 #, fuzzy
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
@@ -811,40 +812,40 @@ msgstr ""
 "--tabsize=NÚM  Estableix la distància de tabulació en NÚM (8 per omissió)\n"
 "               caràcters."
 
-#: src/diff.c:913
+#: src/diff.c:973
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
 
-#: src/diff.c:914
+#: src/diff.c:974
 #, fuzzy
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr "-l  --paginate  Pagina la sortida amb el programa «pr»."
 
-#: src/diff.c:916
+#: src/diff.c:976
 #, fuzzy
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr ""
 "-r  --recursive  Compara recursivament qualsevol subdirectori existent."
 
-#: src/diff.c:917
+#: src/diff.c:977
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr ""
 
-#: src/diff.c:918
+#: src/diff.c:978
 #, fuzzy
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr "-N  --new-file  Considera els fitxers inexistents com si fóssin buits."
 
-#: src/diff.c:919
+#: src/diff.c:979
 #, fuzzy
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
 "--unidirectional-new-file  Tracta els fitxers primers inexistents com si\n"
 "                           fóssin buits."
 
-#: src/diff.c:920
+#: src/diff.c:980
 #, fuzzy
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ""
@@ -852,19 +853,19 @@ msgstr ""
 "en\n"
 "                         els noms dels fitxers."
 
-#: src/diff.c:921
+#: src/diff.c:981
 #, fuzzy
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
 "--no-ignore-file-name-case  Té en compte diferències entre majúscules i\n"
 "                            minúscules en comparar noms de fitxers."
 
-#: src/diff.c:922
+#: src/diff.c:982
 #, fuzzy
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr "-x PAT  --exclude=PAT  Exclou fitxers que coincideixen amb PAT."
 
-#: src/diff.c:923
+#: src/diff.c:983
 #, fuzzy
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
@@ -872,7 +873,7 @@ msgstr ""
 "-X FITXER  --exclude-from=FITXER  Exclou fitxers que coincideixen amb\n"
 "                                  qualsevol patró de FITXER."
 
-#: src/diff.c:924
+#: src/diff.c:984
 #, fuzzy
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
@@ -880,7 +881,7 @@ msgstr ""
 "-S FITXER  --starting-file=FITXER  Comença per FITXER quan es comparen\n"
 "                                   directoris."
 
-#: src/diff.c:925
+#: src/diff.c:985
 #, fuzzy
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
@@ -889,7 +890,7 @@ msgstr ""
 "--from-file=FITXER1  Compara FITXER1 amb tots els operands. FITXER1 pot ser\n"
 "                     un directori."
 
-#: src/diff.c:927
+#: src/diff.c:987
 #, fuzzy
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
@@ -898,66 +899,66 @@ msgstr ""
 "--to-file=FITXER1  Compara tots els operands amb FITXER2. FITXER2 pot ser\n"
 "                   un directori."
 
-#: src/diff.c:930
+#: src/diff.c:990
 #, fuzzy
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr "-i  --ignore-case  Ignora diferències entre majúscules i minúscules."
 
-#: src/diff.c:931
+#: src/diff.c:991
 #, fuzzy
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr ""
 "-E  --ignore-tab-expansion  Ignora canvis provocats per la distància de\n"
 "                            tabulació."
 
-#: src/diff.c:932
+#: src/diff.c:992
 #, fuzzy
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr "-w  --ignore-all-space  Ignora tot l'espai en blanc."
 
-#: src/diff.c:933
+#: src/diff.c:993
 #, fuzzy
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr ""
 "-b  --ignore-space-change  Ignora canvis en la quantitat d'espai en blanc."
 
-#: src/diff.c:934
+#: src/diff.c:994
 #, fuzzy
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w  --ignore-all-space  Ignora tot l'espai en blanc."
 
-#: src/diff.c:935
+#: src/diff.c:995
 #, fuzzy
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr "-B  --ignore-blank-lines  Ignora canvis en línies que estan en blanc."
 
-#: src/diff.c:936
+#: src/diff.c:996
 #, fuzzy
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
 "-I ER  --ignore-matching-lines=ER  Ignora canvis en línies que continguin ER."
 
-#: src/diff.c:938
+#: src/diff.c:998
 #, fuzzy
 msgid "-a, --text                      treat all files as text"
 msgstr "-a  --text  Tracta tots els fitxers com a text."
 
-#: src/diff.c:939
+#: src/diff.c:999
 #, fuzzy
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr ""
 "--strip-trailing-cr  Treu els caràcters finals de retorn de carro de "
 "l'entrada."
 
-#: src/diff.c:941
+#: src/diff.c:1001
 #, fuzzy
 msgid "    --binary                    read and write data in binary mode"
 msgstr "--binary  Escriu i llegeix dades en mode binari."
 
-#: src/diff.c:944
+#: src/diff.c:1004
 #, fuzzy
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
@@ -966,30 +967,30 @@ msgstr ""
 "                      amb directives `#ifdef NOM'."
 
 # `grups' o `grups de línies' (no queda prou clar)
-#: src/diff.c:945
+#: src/diff.c:1005
 #, fuzzy
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr ""
 "--TIPUSG-group-format=FMTG  Similar, però formata els grups TIPUSG amb FMTG."
 
-#: src/diff.c:946
+#: src/diff.c:1006
 #, fuzzy
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr "--line-format=FMTL  Similar, però formata totes les línies amb FMTL."
 
-#: src/diff.c:947
+#: src/diff.c:1007
 #, fuzzy
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr ""
 "--TIPUSL-line-format=FMTL  Similar, però formata les línies TIPUSL amb FMTL."
 
-#: src/diff.c:948
+#: src/diff.c:1008
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
 msgstr ""
 
-#: src/diff.c:950
+#: src/diff.c:1010
 #, fuzzy
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
@@ -997,7 +998,7 @@ msgstr ""
 "«unchanged» (inalterades).\n"
 "  TIPUSG pot ser qualsevol TIPUSL o bé «changed» (alterades)."
 
-#: src/diff.c:951
+#: src/diff.c:1011
 #, fuzzy
 msgid ""
 "  GFMT (only) may contain:\n"
@@ -1027,7 +1028,7 @@ msgstr ""
 "        E  F-1\n"
 "        M  L+1"
 
-#: src/diff.c:963
+#: src/diff.c:1023
 #, fuzzy
 msgid ""
 "  LFMT (only) may contain:\n"
@@ -1041,7 +1042,7 @@ msgstr ""
 "    %[-][AMPLADA][.[PRECISIÓ]]{doxX}n  espec. estil printf pel nombre de "
 "línia"
 
-#: src/diff.c:967
+#: src/diff.c:1027
 #, fuzzy
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
@@ -1055,17 +1056,17 @@ msgstr ""
 "    %c'C'  el caràcter C\n"
 "    %c'\\OOO'  el caràcter de codi octal OOO"
 
-#: src/diff.c:973
+#: src/diff.c:1033
 #, fuzzy
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr "-d  --minimal  Intenta trobar canvis mínims."
 
-#: src/diff.c:974
+#: src/diff.c:1034
 #, fuzzy
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr "--horizon-lines=NÚM  No descarta NÚM línies amb prefix i sufix comú."
 
-#: src/diff.c:975
+#: src/diff.c:1035
 #, fuzzy
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
@@ -1073,135 +1074,135 @@ msgstr ""
 "-H  --speed-large-files  Assumeix fitxers grans i molts canvis petits "
 "dispersos."
 
-#: src/diff.c:976
+#: src/diff.c:1036
 msgid ""
 "    --color[=WHEN]       color output; WHEN is 'never', 'always', or "
 "'auto';\n"
 "                           plain --color means --color='auto'"
 msgstr ""
 
-#: src/diff.c:978
+#: src/diff.c:1038
 msgid ""
 "    --palette=PALETTE    the colors to use when --color is active; PALETTE "
 "is\n"
 "                           a colon-separated list of terminfo capabilities"
 msgstr ""
 
-#: src/diff.c:981
+#: src/diff.c:1041
 msgid "    --help               display this help and exit"
 msgstr ""
 
-#: src/diff.c:982
+#: src/diff.c:1042
 #, fuzzy
 msgid "-v, --version            output version information and exit"
 msgstr "-v  --version  Mostra la versió del programa."
 
-#: src/diff.c:984
+#: src/diff.c:1044
 #, fuzzy
 msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
 "FITXERS és «FITXER1 FITXER2» o «DIR1 DIR2» o «DIR FITXER...» o «FITXER... "
 "DIR»."
 
-#: src/diff.c:985
+#: src/diff.c:1045
 #, fuzzy
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr ""
 "Amb les opcions --from-file o --to-file no hi ha restriccions de FITXERS."
 
-#: src/diff.c:986 src/diff3.c:533 src/sdiff.c:220
+#: src/diff.c:1046 src/diff3.c:531 src/sdiff.c:219
 #, fuzzy
 msgid "If a FILE is '-', read standard input."
 msgstr "Si FITXER és «-», llegeix l'entrada estàndard."
 
-#: src/diff.c:996
+#: src/diff.c:1056
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Mode d'ús: %s [OPCIÓ]... FITXERS\n"
 
-#: src/diff.c:997
+#: src/diff.c:1057
 #, fuzzy
 msgid "Compare FILES line by line."
 msgstr "Compara fitxers línia per línia."
 
-#: src/diff.c:1034
+#: src/diff.c:1094
 #, fuzzy, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "el valor «%s» per l'opció %s és conflictiu"
 
-#: src/diff.c:1047
+#: src/diff.c:1107
 #, c-format
 msgid "conflicting output style options"
 msgstr "opcions d'estil de sortida conflictives"
 
-#: src/diff.c:1063
+#: src/diff.c:1123
 #, fuzzy, c-format
 msgid "invalid color '%s'"
 msgstr "el nombre de línies de context «%s» no és vàlid"
 
-#: src/diff.c:1119 src/diff.c:1329
+#: src/diff.c:1197 src/diff.c:1401
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Només a %s: %s\n"
 
-#: src/diff.c:1253
+#: src/diff.c:1325
 #, fuzzy
 msgid "cannot compare '-' to a directory"
 msgstr "no es pot comparar «-» amb un directori"
 
-#: src/diff.c:1288
+#: src/diff.c:1360
 msgid "-D option not supported with directories"
 msgstr "l'opció -D no funciona amb directoris"
 
-#: src/diff.c:1297
+#: src/diff.c:1369
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Subdirectoris comuns: %s i %s\n"
 
-#: src/diff.c:1339 src/diff.c:1389
+#: src/diff.c:1411 src/diff.c:1461
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr "El fitxer %s és un %s mentre que el fitxer %s és un %s\n"
 
-#: src/diff.c:1375
+#: src/diff.c:1447
 #, fuzzy, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "Els fitxers %s i %s difereixen\n"
 
-#: src/diff.c:1462
+#: src/diff.c:1534
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Els fitxers %s i %s són idèntics\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff3.c:43
+#: src/diff3.c:51
 msgid "Randy Smith"
 msgstr ""
 
-#: src/diff3.c:356
+#: src/diff3.c:363
 #, c-format
 msgid "incompatible options"
 msgstr "opcions incompatibles"
 
-#: src/diff3.c:396
+#: src/diff3.c:403
 #, fuzzy
 msgid "'-' specified for more than one input file"
 msgstr "heu especificat «-» per més d'un fitxer d'entrada"
 
-#: src/diff3.c:447 src/diff3.c:1295 src/diff3.c:1698 src/diff3.c:1753
-#: src/sdiff.c:308 src/sdiff.c:846 src/sdiff.c:857
+#: src/diff3.c:445 src/diff3.c:1284 src/diff3.c:1683 src/diff3.c:1738
+#: src/sdiff.c:306 src/sdiff.c:843 src/sdiff.c:854
 msgid "read failed"
 msgstr "lectura fallida"
 
-#: src/diff3.c:480
+#: src/diff3.c:478
 #, fuzzy
 msgid "-A, --show-all              output all changes, bracketing conflicts"
 msgstr ""
 "-A  --show-all  Mostra tots els canvis, senyalant els conflictes amb "
 "separadors."
 
-#: src/diff3.c:482
+#: src/diff3.c:480
 #, fuzzy
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
@@ -1209,7 +1210,7 @@ msgid ""
 msgstr ""
 "-e  --ed  Mostra els canvis no comuns de FITXER-VELL a FITXER2 en FITXER1."
 
-#: src/diff3.c:484
+#: src/diff3.c:482
 #, fuzzy
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
 msgstr ""
@@ -1217,82 +1218,82 @@ msgstr ""
 "amb\n"
 "                    separadors."
 
-#: src/diff3.c:485
+#: src/diff3.c:483
 #, fuzzy
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
 msgstr "-3  --easy-only  Mostra els canvis no comuns i no solapats."
 
-#: src/diff3.c:486
+#: src/diff3.c:484
 #, fuzzy
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
 msgstr "-x  --overlap-only  Mostra els canvis solapats."
 
-#: src/diff3.c:487
+#: src/diff3.c:485
 msgid "-X                          like -x, but bracket conflicts"
 msgstr ""
 
-#: src/diff3.c:488
+#: src/diff3.c:486
 #, fuzzy
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
 msgstr "-i  Afegeix les instruccions «w» i «q» a l'script ed."
 
-#: src/diff3.c:490
+#: src/diff3.c:488
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
 msgstr ""
 
-#: src/diff3.c:493
+#: src/diff3.c:491
 #, fuzzy
 msgid "-a, --text                  treat all files as text"
 msgstr "-a  --text  Tracta tots els fitxers com a text."
 
-#: src/diff3.c:494
+#: src/diff3.c:492
 #, fuzzy
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
 msgstr ""
 "--strip-trailing-cr  Treu els caràcters finals de retorn de carro de "
 "l'entrada."
 
-#: src/diff3.c:495
+#: src/diff3.c:493
 #, fuzzy
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
 msgstr ""
 "-T  --initial-tab  Alinea el text de cada línia amb un caràcter de tabulació."
 
-#: src/diff3.c:496
+#: src/diff3.c:494
 #, fuzzy
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
 msgstr "--diff-program=PROGRAMA  Usa PROGRAMA per comparar fitxers."
 
-#: src/diff3.c:497
+#: src/diff3.c:495
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
 msgstr ""
 
-#: src/diff3.c:500
+#: src/diff3.c:498
 msgid "    --help                  display this help and exit"
 msgstr ""
 
-#: src/diff3.c:501
+#: src/diff3.c:499
 #, fuzzy
 msgid "-v, --version               output version information and exit"
 msgstr "-v  --version  Mostra la versió del programa."
 
-#: src/diff3.c:510
+#: src/diff3.c:508
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
 msgstr "Mode d'ús: %s [OPCIÓ]... FITXER1 FITXER-VELL FITXER2\n"
 
-#: src/diff3.c:512
+#: src/diff3.c:510
 msgid "Compare three files line by line."
 msgstr "Compara tres fitxers línia per línia."
 
-#: src/diff3.c:522
+#: src/diff3.c:520
 msgid ""
 "\n"
 "The default output format is a somewhat human-readable representation of\n"
@@ -1306,56 +1307,56 @@ msgid ""
 "robust than using ed.\n"
 msgstr ""
 
-#: src/diff3.c:534
+#: src/diff3.c:532
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
 msgstr ""
 "L'estat de sortida és 0 si s'acaba amb èxit, 1 si hi ha conflictes\n"
 "i 2 en cas d'error."
 
-#: src/diff3.c:727
+#: src/diff3.c:725
 msgid "internal error: screwup in format of diff blocks"
 msgstr "error intern: format dels blocs diff desmanegat"
 
-#: src/diff3.c:1022
+#: src/diff3.c:1015
 #, c-format
 msgid "%s: diff failed: "
 msgstr "%s: diff ha fallat: "
 
-#: src/diff3.c:1044
+#: src/diff3.c:1037
 msgid "internal error: invalid diff type in process_diff"
 msgstr "error intern: tipus de diff invàlid en process_diff"
 
-#: src/diff3.c:1069
+#: src/diff3.c:1060
 msgid "invalid diff format; invalid change separator"
 msgstr "el format diff no és vàlid: el separador de canvis no és vàlid"
 
-#: src/diff3.c:1305
+#: src/diff3.c:1294
 msgid "invalid diff format; incomplete last line"
 msgstr "el format diff no és vàlid: l'última línia està incompleta"
 
-#: src/diff3.c:1329 src/sdiff.c:276 src/util.c:969
+#: src/diff3.c:1318 src/sdiff.c:274 src/util.c:1069
 #, fuzzy, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "no s'ha pogut invocar el programa subsidiari «%s»"
 
-#: src/diff3.c:1354
+#: src/diff3.c:1343
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "el format diff no és vàlid: caràcters invàlids al principi de línia"
 
-#: src/diff3.c:1427
+#: src/diff3.c:1416
 msgid "internal error: invalid diff type passed to output"
 msgstr "error intern: tipus de diff no vàlid passat a la sortida"
 
-#: src/diff3.c:1700 src/diff3.c:1757
+#: src/diff3.c:1685 src/diff3.c:1742
 msgid "input file shrank"
 msgstr "el fitxer d'entrada s'ha encongit"
 
-#: src/dir.c:156
+#: src/dir.c:154
 #, fuzzy, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "no es poden comparar els noms de fitxer «%s» i «%s»"
 
-#: src/dir.c:225
+#: src/dir.c:223
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr ""
@@ -1365,7 +1366,7 @@ msgstr ""
 msgid "Thomas Lord"
 msgstr ""
 
-#: src/sdiff.c:174
+#: src/sdiff.c:173
 #, fuzzy
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
@@ -1373,84 +1374,84 @@ msgstr ""
 "-o FITXER  --output=FITXER  Opera interactivament, i envia la sortida a "
 "FITXER."
 
-#: src/sdiff.c:176
+#: src/sdiff.c:175
 #, fuzzy
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
 msgstr "-i  --ignore-case  No distingeix entre majúscules i minúscules."
 
-#: src/sdiff.c:177
+#: src/sdiff.c:176
 #, fuzzy
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
 msgstr ""
 "-E  --ignore-tab-expansion  Ignora canvis provocats per la distància de\n"
 "                            tabulació."
 
-#: src/sdiff.c:178
+#: src/sdiff.c:177
 #, fuzzy
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
 msgstr "-w  --ignore-all-space  Ignora tot l'espai en blanc."
 
-#: src/sdiff.c:179
+#: src/sdiff.c:178
 #, fuzzy
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
 msgstr ""
 "-b  --ignore-space-change  Ignora canvis en la quantitat d'espai en blanc."
 
-#: src/sdiff.c:180
+#: src/sdiff.c:179
 #, fuzzy
 msgid "-W, --ignore-all-space       ignore all white space"
 msgstr "-W  --ignore-all-space  Ignora tot l'espai en blanc."
 
-#: src/sdiff.c:181
+#: src/sdiff.c:180
 #, fuzzy
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
 msgstr "-B  --ignore-blank-lines  Ignora canvis en línies que estan en blanc."
 
-#: src/sdiff.c:182
+#: src/sdiff.c:181
 #, fuzzy
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
 "-I ER  --ignore-matching-lines=ER  Ignora canvis en línies que continguin ER."
 
-#: src/sdiff.c:183
+#: src/sdiff.c:182
 #, fuzzy
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
 msgstr ""
 "--strip-trailing-cr  Treu els caràcters finals de retorn de carro de "
 "l'entrada."
 
-#: src/sdiff.c:184
+#: src/sdiff.c:183
 #, fuzzy
 msgid "-a, --text                   treat all files as text"
 msgstr "-a  --text  Tracta tots els fitxers com a text."
 
-#: src/sdiff.c:186
+#: src/sdiff.c:185
 #, fuzzy
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
 msgstr ""
 "-w NÚM  --width=NÚM  No més de NÚM (130 per omissió) caràcters per línia."
 
-#: src/sdiff.c:187
+#: src/sdiff.c:186
 #, fuzzy
 msgid ""
 "-l, --left-column            output only the left column of common lines"
 msgstr ""
 "-l  --left-column  Només escriu les línies en comú a la columna esquerra."
 
-#: src/sdiff.c:188
+#: src/sdiff.c:187
 #, fuzzy
 msgid "-s, --suppress-common-lines  do not output common lines"
 msgstr "-s  --suppress-common-lines  No mostra les línies en comú."
 
-#: src/sdiff.c:190
+#: src/sdiff.c:189
 #, fuzzy
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
 msgstr "-t  --expand-tabs  Expandeix les tabulacions de la sortida a espais."
 
-#: src/sdiff.c:191
+#: src/sdiff.c:190
 #, fuzzy
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
@@ -1458,12 +1459,12 @@ msgstr ""
 "--tabsize=NÚM  Estableix la distància de tabulació en NÚM (8 per omissió)\n"
 "               caràcters."
 
-#: src/sdiff.c:193
+#: src/sdiff.c:192
 #, fuzzy
 msgid "-d, --minimal                try hard to find a smaller set of changes"
 msgstr "-d  --minimal  Intenta trobar canvis mínims."
 
-#: src/sdiff.c:194
+#: src/sdiff.c:193
 #, fuzzy
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
@@ -1471,39 +1472,39 @@ msgstr ""
 "-H  --speed-large-files  Assumeix fitxers grans i molts canvis petits "
 "dispersos."
 
-#: src/sdiff.c:195
+#: src/sdiff.c:194
 #, fuzzy
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
 msgstr "--diff-program=PROGRAMA  Usa PROGRAMA per comparar fitxers."
 
-#: src/sdiff.c:197
+#: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
 msgstr ""
 
-#: src/sdiff.c:198
+#: src/sdiff.c:197
 #, fuzzy
 msgid "-v, --version                output version information and exit"
 msgstr "-v  --version  Mostra la versió del programa."
 
-#: src/sdiff.c:207
+#: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
 msgstr "Mode d'ús: %s [OPCIÓ]... FITXER1 FITXER2\n"
 
-#: src/sdiff.c:209
+#: src/sdiff.c:208
 #, fuzzy
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
 msgstr "Combina diferències entre fitxers en dues columnes"
 
-#: src/sdiff.c:330
+#: src/sdiff.c:328
 msgid "cannot interactively merge standard input"
 msgstr "no es pot combinar interactivament l'entrada estàndard"
 
-#: src/sdiff.c:597
+#: src/sdiff.c:594
 msgid "both files to be compared are directories"
 msgstr "ambdós fitxers són directoris"
 
-#: src/sdiff.c:820
+#: src/sdiff.c:817
 #, fuzzy
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
@@ -1528,12 +1529,12 @@ msgstr ""
 "v:\tInclou les línies comunes i informa amb loquacitat\n"
 "q:\tSurt.\n"
 
-#: src/util.c:662
+#: src/util.c:755
 #, fuzzy, c-format
 msgid "unrecognized prefix: %s"
 msgstr "%s: opció no reconeguda «--%s»\n"
 
-#: src/util.c:692
+#: src/util.c:785
 #, c-format
 msgid "unparsable value for --palette"
 msgstr ""
index 774c62e..e980513 100644 (file)
--- a/po/cs.po
+++ b/po/cs.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: diffutils 3.7.41\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2021-08-01 18:56-0700\n"
+"POT-Creation-Date: 2023-05-21 01:51-0700\n"
 "PO-Revision-Date: 2021-07-20 18:23+02:00\n"
 "Last-Translator: Petr Pisar <petr.pisar@atlas.cz>\n"
 "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
@@ -18,29 +18,29 @@ msgstr ""
 "Content-Transfer-Encoding: 8-bit\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 
-#: lib/argmatch.c:132
+#: lib/argmatch.c:145
 #, c-format
 msgid "invalid argument %s for %s"
 msgstr "neplatný argument „%s“ pro %s"
 
-#: lib/argmatch.c:133
+#: lib/argmatch.c:146
 #, c-format
 msgid "ambiguous argument %s for %s"
 msgstr "nejednoznačný argument %s pro %s"
 
-#: lib/argmatch.c:152 lib/argmatch.h:223
+#: lib/argmatch.c:165 lib/argmatch.h:242
 msgid "Valid arguments are:"
 msgstr "Platné argumenty jsou:"
 
-#: lib/c-stack.c:187
+#: lib/c-stack.c:186
 msgid "program error"
 msgstr "chyba programu"
 
-#: lib/c-stack.c:188
+#: lib/c-stack.c:187
 msgid "stack overflow"
 msgstr "přetečení zásobníku"
 
-#: lib/error.c:195
+#: lib/error.c:193
 msgid "Unknown system error"
 msgstr "Neznámá chyba systému"
 
@@ -196,83 +196,83 @@ msgstr "%s: přepínač vyžaduje argument – „%c“\n"
 #. If you don't know what to put here, please see
 #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:355
+#: lib/quotearg.c:354
 msgid "`"
 msgstr "„"
 
-#: lib/quotearg.c:356
+#: lib/quotearg.c:355
 msgid "'"
 msgstr "“"
 
-#: lib/regcomp.c:135
+#: lib/regcomp.c:122
 msgid "Success"
 msgstr "Hotovo"
 
-#: lib/regcomp.c:138
+#: lib/regcomp.c:125
 msgid "No match"
 msgstr "Žádná shoda"
 
-#: lib/regcomp.c:141
+#: lib/regcomp.c:128
 msgid "Invalid regular expression"
 msgstr "Neplatný regulární výraz"
 
-#: lib/regcomp.c:144
+#: lib/regcomp.c:131
 msgid "Invalid collation character"
 msgstr "Neplatný znak porovnání"
 
-#: lib/regcomp.c:147
+#: lib/regcomp.c:134
 msgid "Invalid character class name"
 msgstr "Neplatné jméno třídy znaků"
 
-#: lib/regcomp.c:150
+#: lib/regcomp.c:137
 msgid "Trailing backslash"
 msgstr "Koncové zpětné lomítko"
 
-#: lib/regcomp.c:153
+#: lib/regcomp.c:140
 msgid "Invalid back reference"
 msgstr "Neplatný zpětný odkaz"
 
-#: lib/regcomp.c:156
+#: lib/regcomp.c:143
 msgid "Unmatched [, [^, [:, [., or [="
 msgstr "Nepárová [, [^, [:, [. nebo [="
 
-#: lib/regcomp.c:159
+#: lib/regcomp.c:146
 msgid "Unmatched ( or \\("
 msgstr "Nepárová ( nebo \\("
 
-#: lib/regcomp.c:162
+#: lib/regcomp.c:149
 msgid "Unmatched \\{"
 msgstr "Nepárová \\{"
 
-#: lib/regcomp.c:165
+#: lib/regcomp.c:152
 msgid "Invalid content of \\{\\}"
 msgstr "Neplatný obsah \\{\\}"
 
-#: lib/regcomp.c:168
+#: lib/regcomp.c:155
 msgid "Invalid range end"
 msgstr "Neplatný konec rozsahu"
 
-#: lib/regcomp.c:171
+#: lib/regcomp.c:158
 msgid "Memory exhausted"
 msgstr "Paměť vyčerpána"
 
-#: lib/regcomp.c:174
+#: lib/regcomp.c:161
 msgid "Invalid preceding regular expression"
 msgstr "Neplatný předchozí regulární výraz"
 
-#: lib/regcomp.c:177
+#: lib/regcomp.c:164
 msgid "Premature end of regular expression"
 msgstr "Předčasný konec regulárního výrazu"
 
-#: lib/regcomp.c:180
+#: lib/regcomp.c:167
 msgid "Regular expression too big"
 msgstr "Regulární výraz je příliš dlouhý"
 
-#: lib/regcomp.c:183
+#: lib/regcomp.c:170
 msgid "Unmatched ) or \\)"
 msgstr "Nepárová ) nebo \\)"
 
-#: lib/regcomp.c:676
+#: lib/regcomp.c:650
 msgid "No previous regular expression"
 msgstr "Předchozí regulární výraz neexistuje"
 
@@ -474,17 +474,17 @@ msgstr "Domovská stránka %s: <%s>\n"
 msgid "General help using GNU software: <%s>\n"
 msgstr "Obecná pomoc při používání softwaru GNU: <%s>\n"
 
-#: src/analyze.c:454 src/diff.c:1406
+#: src/analyze.c:455 src/diff.c:1478
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Soubory %s a %s jsou různé\n"
 
-#: src/analyze.c:455
+#: src/analyze.c:456
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "Binární soubory %s a %s jsou rozdílné\n"
 
-#: src/analyze.c:706 src/diff3.c:1470 src/util.c:1254
+#: src/analyze.c:707 src/diff3.c:1457 src/util.c:1354
 msgid "No newline at end of file"
 msgstr "Chybí znak konce řádku na konci souboru"
 
@@ -498,39 +498,40 @@ msgstr "Torbjorn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:120 src/diff.c:879 src/diff3.c:467 src/sdiff.c:160
+#: src/cmp.c:124 src/diff.c:939 src/diff3.c:465 src/sdiff.c:159
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Více informací získáte příkazem „%s --help“."
 
-#: src/cmp.c:138
+#: src/cmp.c:142
 #, c-format
 msgid "invalid --ignore-initial value '%s'"
 msgstr "neplatná hodnota --ignore-inital „%s“"
 
-#: src/cmp.c:148
+#: src/cmp.c:152
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr "přepínače -l a -s nejsou kompatibilní"
 
-#: src/cmp.c:156 src/diff.c:887 src/diff3.c:474 src/sdiff.c:168 src/sdiff.c:316
-#: src/sdiff.c:323 src/sdiff.c:876 src/util.c:852 src/util.c:952 src/util.c:959
+#: src/cmp.c:160 src/diff.c:947 src/diff3.c:472 src/sdiff.c:167 src/sdiff.c:314
+#: src/sdiff.c:321 src/sdiff.c:873 src/util.c:952 src/util.c:1052
+#: src/util.c:1059
 msgid "write failed"
 msgstr "zápis selhal"
 
-#: src/cmp.c:158 src/diff.c:889 src/diff.c:1471 src/diff3.c:476 src/sdiff.c:170
+#: src/cmp.c:162 src/diff.c:949 src/diff.c:1543 src/diff3.c:474 src/sdiff.c:169
 msgid "standard output"
 msgstr "standardní výstup"
 
-#: src/cmp.c:162
+#: src/cmp.c:166
 msgid "-b, --print-bytes          print differing bytes"
 msgstr "-b  --print-bytes          vypíše rozdílné bajty"
 
-#: src/cmp.c:163
+#: src/cmp.c:167
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
 msgstr "-i, --ignore-initial=N     přeskočí prvních N bajtů obou vstupů"
 
-#: src/cmp.c:164
+#: src/cmp.c:168
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
@@ -538,37 +539,37 @@ msgstr ""
 "-i, --ignore-initial=N1:N2 přeskočí prvních N1 bajtů SOUBORU1 a\n"
 "                             prvních N2 bajtů SOUBORU2"
 
-#: src/cmp.c:166
+#: src/cmp.c:170
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
 msgstr "-l  --verbose              vypíše pozice a hodnoty rozdílných bajtů"
 
-#: src/cmp.c:167
+#: src/cmp.c:171
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
 msgstr "-n, --bytes=LIMIT          porovná nejvýše LIMIT bajtů"
 
-#: src/cmp.c:168
+#: src/cmp.c:172
 msgid "-s, --quiet, --silent      suppress all normal output"
 msgstr "-s, --quiet, --silent      potlačí veškerý běžný výstup"
 
-#: src/cmp.c:169
+#: src/cmp.c:173
 msgid "    --help                 display this help and exit"
 msgstr "    --help                 zobrazí tuto nápovědu a skončí"
 
-#: src/cmp.c:170
+#: src/cmp.c:174
 msgid "-v, --version              output version information and exit"
 msgstr "-v  --version              vypíše údaje o verzi a skončí"
 
-#: src/cmp.c:179
+#: src/cmp.c:183
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
 msgstr "Použití: %s [PŘEPÍNAČ]… SOUBOR1 [SOUBOR2 [N1 [N2]]]\n"
 
-#: src/cmp.c:181
+#: src/cmp.c:185
 msgid "Compare two files byte by byte."
 msgstr "Porovnává dva soubory bajt po bajtu."
 
-#: src/cmp.c:183
+#: src/cmp.c:187
 msgid ""
 "The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
 "at the beginning of each file (zero by default)."
@@ -576,13 +577,13 @@ msgstr ""
 "Volitelné argumenty N1 a N2 udávají počet bajtů, které budou přeskočeny\n"
 "na začátku každého souboru (výchozí je nula)."
 
-#: src/cmp.c:186 src/diff.c:999 src/diff3.c:514 src/sdiff.c:211
+#: src/cmp.c:190 src/diff.c:1059 src/diff3.c:512 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
 "Povinné argumenty dlouhých přepínačů jsou též povinné u krátkých forem.\n"
 
-#: src/cmp.c:192
+#: src/cmp.c:196
 msgid ""
 "SKIP values may be followed by the following multiplicative suffixes:\n"
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
@@ -592,141 +593,141 @@ msgstr ""
 "kB 1000, K 1024, MB 1 000 000, M 1 048 576,\n"
 "GB 1 000 000 000, G 1 073 741 824  a stejně tak i pro T, P, E, Z, Y."
 
-#: src/cmp.c:195
+#: src/cmp.c:199
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "Pokud SOUBOR je „-“ nebo nebo chybí, bude čten standardní vstup."
 
-#: src/cmp.c:196 src/diff.c:987 src/sdiff.c:221
+#: src/cmp.c:200 src/diff.c:1047 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr ""
 "Návratový kód je roven 0 pokud jsou vstupy shodné, 1 pokud se liší a 2 při "
 "chybě."
 
-#: src/cmp.c:243
+#: src/cmp.c:247
 #, c-format
 msgid "invalid --bytes value '%s'"
 msgstr "neplatná hodnota přepínače --bytes „%s“"
 
-#: src/cmp.c:269 src/diff.c:797 src/diff3.c:361 src/sdiff.c:567
+#: src/cmp.c:273 src/diff.c:857 src/diff3.c:368 src/sdiff.c:564
 #, c-format
 msgid "missing operand after '%s'"
 msgstr "po „%s“ chybí operand"
 
-#: src/cmp.c:281 src/diff.c:799 src/diff3.c:363 src/sdiff.c:569
+#: src/cmp.c:285 src/diff.c:859 src/diff3.c:370 src/sdiff.c:566
 #, c-format
 msgid "extra operand '%s'"
 msgstr "operand „%s“ je nadbytečný"
 
-#: src/cmp.c:507
+#: src/cmp.c:521
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s se liší: bajt %s, řádek %s\n"
 
-#: src/cmp.c:523
+#: src/cmp.c:537
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
 msgstr "%s %s se liší: bajt %s, řádek %s je %3o %s %3o %s\n"
 
-#: src/cmp.c:580
+#: src/cmp.c:594
 #, c-format
 msgid "cmp: EOF on %s which is empty\n"
 msgstr "cmp: konec souboru v %s, který je prázdný\n"
 
-#: src/cmp.c:594
+#: src/cmp.c:608
 #, c-format
 msgid "cmp: EOF on %s after byte %s, line %s\n"
 msgstr "cmp: konec souboru v %s po bajtu %s, řádek %s\n"
 
-#: src/cmp.c:595
+#: src/cmp.c:609
 #, c-format
 msgid "cmp: EOF on %s after byte %s, in line %s\n"
 msgstr "cmp: konec souboru v %s po bajtu %s na řádku %s\n"
 
-#: src/cmp.c:601
+#: src/cmp.c:615
 #, c-format
 msgid "cmp: EOF on %s after byte %s\n"
 msgstr "cmp: konec souboru v %s po bajtu %s\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:51
+#: src/diff.c:50
 msgid "Paul Eggert"
 msgstr "Paul Eggert"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:52
+#: src/diff.c:51
 msgid "Mike Haertel"
 msgstr "Mike Haertel"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:53
+#: src/diff.c:52
 msgid "David Hayes"
 msgstr "David Hayes"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:54
+#: src/diff.c:53
 msgid "Richard Stallman"
 msgstr "Richard Stallman"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:55
+#: src/diff.c:54
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:355
+#: src/diff.c:365
 #, c-format
 msgid "invalid context length '%s'"
 msgstr "neplatná délka kontextu „%s“"
 
-#: src/diff.c:438
+#: src/diff.c:487
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "přestránkování není na tomto počítači podporováno"
 
-#: src/diff.c:453 src/diff3.c:341
+#: src/diff.c:502 src/diff3.c:348
 #, c-format
 msgid "too many file label options"
 msgstr "příliš mnoho přepínačů popisu souboru"
 
-#: src/diff.c:530
+#: src/diff.c:579
 #, c-format
 msgid "invalid width '%s'"
 msgstr "nesprávná délka „%s“"
 
-#: src/diff.c:534
+#: src/diff.c:583
 msgid "conflicting width options"
 msgstr "konfliktní volby šířky výstupu"
 
-#: src/diff.c:559
+#: src/diff.c:608
 #, c-format
 msgid "invalid horizon length '%s'"
 msgstr "neplatná výška obzoru „%s“"
 
-#: src/diff.c:615
+#: src/diff.c:664
 #, c-format
 msgid "invalid tabsize '%s'"
 msgstr "nesprávná hodnota --tabsize „%s“"
 
-#: src/diff.c:619
+#: src/diff.c:668
 msgid "conflicting tabsize options"
 msgstr "konfliktní přepínače tabsize"
 
-#: src/diff.c:774
+#: src/diff.c:834
 msgid "--from-file and --to-file both specified"
 msgstr "parametry --from-file i to-file použity najednou"
 
-#: src/diff.c:893
+#: src/diff.c:953
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "    --normal                  normálním formát výstupu diff (výchozí)"
 
-#: src/diff.c:894
+#: src/diff.c:954
 msgid "-q, --brief                   report only when files differ"
 msgstr "-q  --brief                   výstup pouze při rozdílných souborech"
 
-#: src/diff.c:895
+#: src/diff.c:955
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr "-s  --report-identical-files  hlásí shodné soubory"
 
-#: src/diff.c:896
+#: src/diff.c:956
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
@@ -734,7 +735,7 @@ msgstr ""
 "                              vypíše POČET (výchozí je 3) řádků\n"
 "                              kopírovaného kontextu"
 
-#: src/diff.c:897
+#: src/diff.c:957
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
@@ -742,45 +743,45 @@ msgstr ""
 "                              vypíše POČET (výchozí je 3) řádků\n"
 "                              unifikovaného kontextu"
 
-#: src/diff.c:898
+#: src/diff.c:958
 msgid "-e, --ed                      output an ed script"
 msgstr "-e  --ed                      vypíše skript pro ed"
 
-#: src/diff.c:899
+#: src/diff.c:959
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n  --rcs                     vypíše rozdíl ve formátu RCS"
 
-#: src/diff.c:900
+#: src/diff.c:960
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side            vypíše ve dvou sloupcích"
 
-#: src/diff.c:901
+#: src/diff.c:961
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
 "-W, --width=POČET             vypíše nejvýše POČET (výchozí je 130)\n"
 "                              tiskových sloupců"
 
-#: src/diff.c:902
+#: src/diff.c:962
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr ""
 "    --left-column             vypíše pouze levý sloupec společných řádků"
 
-#: src/diff.c:903
+#: src/diff.c:963
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "    --suppress-common-lines   nevypisuje shodné řádky"
 
-#: src/diff.c:905
+#: src/diff.c:965
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr ""
 "-p, --show-c-function         ukáže, ve které funkci C se změna nachází"
 
-#: src/diff.c:906
+#: src/diff.c:966
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr "-F, --show-function-line=RV   ukáže poslední řádek odpovídající RV"
 
-#: src/diff.c:907
+#: src/diff.c:967
 msgid ""
 "    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
@@ -789,84 +790,84 @@ msgstr ""
 "údaje\n"
 "                              (lze opakovat)"
 
-#: src/diff.c:910
+#: src/diff.c:970
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr "-t,  --expand-tabs             ve výstupu převede tabulátory na mezery"
 
-#: src/diff.c:911
+#: src/diff.c:971
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr "-T,  --initial-tab             na začátek řádků se vloží tabulátor"
 
-#: src/diff.c:912
+#: src/diff.c:972
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=POČET           tabulátor zastavuje každých POČET\n"
 "                              (výchozí je 8) tiskových sloupců"
 
-#: src/diff.c:913
+#: src/diff.c:973
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
 "    --suppress-blank-empty    potlačí mezeru nebo tabulátor před prázdnými\n"
 "                              řádky výstupu"
 
-#: src/diff.c:914
+#: src/diff.c:974
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr ""
 "-l,  --paginate                výstup projde přes „pr“ pro přestránkování"
 
-#: src/diff.c:916
+#: src/diff.c:976
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr ""
 "-r  --recursive                 rekurzivně porovná všechny nalezené "
 "podadresáře"
 
-#: src/diff.c:917
+#: src/diff.c:977
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr "    --no-dereference            nenásleduje symbolické odkazy"
 
-#: src/diff.c:918
+#: src/diff.c:978
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr ""
 "-N, --new-file                  neexistující soubory považuje za prázdné"
 
-#: src/diff.c:919
+#: src/diff.c:979
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
 "    --unidirectional-new-file   neexistující soubory z prvního adresáře\n"
 "                                považuje za prázdné"
 
-#: src/diff.c:920
+#: src/diff.c:980
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ""
 "    --ignore-file-name-case     ignoruje velikost písmen v názvech souborů"
 
-#: src/diff.c:921
+#: src/diff.c:981
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
 "    --no-ignore-file-name-case  bere v potaz velikost písmen v názvech "
 "souborů"
 
-#: src/diff.c:922
+#: src/diff.c:982
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr "-x, --exclude=VZOR              vynechá soubory odpovídající VZORU"
 
-#: src/diff.c:923
+#: src/diff.c:983
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
 "-X, --exclude-from=SOUBOR       vynechá soubory, které odpovídají\n"
 "                                libovolnému vzoru ze SOUBORU"
 
-#: src/diff.c:924
+#: src/diff.c:984
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
 "-S, --starting-file=SOUBOR      při porovnávání adresářů začne SOUBOREM"
 
-#: src/diff.c:925
+#: src/diff.c:985
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
@@ -874,7 +875,7 @@ msgstr ""
 "    --from-file=SOUBOR1         porovná SOUBOR1 se všemi operandy,\n"
 "                                SOUBOR1 může být adresář"
 
-#: src/diff.c:927
+#: src/diff.c:987
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
@@ -882,77 +883,77 @@ msgstr ""
 "    --to-file=SOUBOR2           porovná všechny operandy se SOUBOREM2,\n"
 "                                SOUBOR2 může být adresář"
 
-#: src/diff.c:930
+#: src/diff.c:990
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr ""
 "-i, --ignore-case               ignoruje velikost písmen v obsahu souborů"
 
-#: src/diff.c:931
+#: src/diff.c:991
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr "-E, --ignore-tab-expansion      ignoruje změny v odsazení tabulátorem"
 
-#: src/diff.c:932
+#: src/diff.c:992
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr "-Z, --ignore-trailing-space     ignoruje bílá místa na konci řádku"
 
-#: src/diff.c:933
+#: src/diff.c:993
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr "-b, --ignore-space-change       ignoruje změny v počtu bílých míst"
 
-#: src/diff.c:934
+#: src/diff.c:994
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w, --ignore-all-space          ignoruje všechna bílá místa"
 
-#: src/diff.c:935
+#: src/diff.c:995
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr ""
 "-B, --ignore-blank-lines        ignoruje změny v případě prázdných řádků"
 
-#: src/diff.c:936
+#: src/diff.c:996
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=RV  ignoruje změny na všech řádcích\n"
 "                                odpovídajících RV"
 
-#: src/diff.c:938
+#: src/diff.c:998
 msgid "-a, --text                      treat all files as text"
 msgstr "-a, --text                      pokládá všechny soubory za text"
 
-#: src/diff.c:939
+#: src/diff.c:999
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr "    --strip-trailing-cr         odstraní ukončovací znak CR na vstupu"
 
-#: src/diff.c:941
+#: src/diff.c:1001
 msgid "    --binary                    read and write data in binary mode"
 msgstr ""
 "    --binary                    data čte a zapisuje data v binárním režimu"
 
-#: src/diff.c:944
+#: src/diff.c:1004
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
 "-D, --ifdef=NÁZEV               vypíše sloučený soubor s rozdíly „#ifdef "
 "NÁZEV“"
 
-#: src/diff.c:945
+#: src/diff.c:1005
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr ""
 "    --GTYPE-group-format=GFMT   formátuje vstupní skupiny GTYPE podle FMTS"
 
-#: src/diff.c:946
+#: src/diff.c:1006
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr ""
 "    --line-format=LFMT          formátuje všechny vstupní řádky podle LFMT"
 
-#: src/diff.c:947
+#: src/diff.c:1007
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr ""
 "    --LTYPE-line-format=LFMT    formátuje vstupní řádky LTYPE podle LFMT"
 
-#: src/diff.c:948
+#: src/diff.c:1008
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
@@ -960,13 +961,13 @@ msgstr ""
 "  Tyto formátovací přepínače poskytují jemnou kontrolu nad výstupem diffu\n"
 "  a zobecňují -D/--ifdef."
 
-#: src/diff.c:950
+#: src/diff.c:1010
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
 "  LTYPE je „old“ (starý), „new“ (nový) nebo „unchanged“ (nezměněn). GTYPE\n"
 "  je LTYPE nebo „changed“ (změněn)."
 
-#: src/diff.c:951
+#: src/diff.c:1011
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -994,7 +995,7 @@ msgstr ""
 "        M  L+1\n"
 "    %(A=B?T:E)  pokud A se rovná B, tak T, jinak E"
 
-#: src/diff.c:963
+#: src/diff.c:1023
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -1008,7 +1009,7 @@ msgstr ""
 "vstupního\n"
 "        řádku"
 
-#: src/diff.c:967
+#: src/diff.c:1027
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1022,24 +1023,24 @@ msgstr ""
 "    %c'\\000'  znak s osmičkovým kódem 000\n"
 "    C    znak C (ostatní znaky zastupují samy sebe)"
 
-#: src/diff.c:973
+#: src/diff.c:1033
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr "-d, --minimal            pokusí se nalézt nejmenší sadu změn"
 
-#: src/diff.c:974
+#: src/diff.c:1034
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr ""
 "    --horizon-lines=POČET\n"
 "                        ponechá POČET shodných řádků předpony a přípony"
 
-#: src/diff.c:975
+#: src/diff.c:1035
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
 "    --speed-large-files  předpokládá velké soubory a mnoho rozptýlených\n"
 "                         drobných změn"
 
-#: src/diff.c:976
+#: src/diff.c:1036
 msgid ""
 "    --color[=WHEN]       color output; WHEN is 'never', 'always', or "
 "'auto';\n"
@@ -1050,7 +1051,7 @@ msgstr ""
 "                         nebo „auto“ (výchozí); samotné --color znamená\n"
 "                         --color=auto"
 
-#: src/diff.c:978
+#: src/diff.c:1038
 msgid ""
 "    --palette=PALETTE    the colors to use when --color is active; PALETTE "
 "is\n"
@@ -1060,113 +1061,113 @@ msgstr ""
 "PALETA\n"
 "                         je dvojtečkou oddělený seznam schopností terminfa"
 
-#: src/diff.c:981
+#: src/diff.c:1041
 msgid "    --help               display this help and exit"
 msgstr "    --help               zobrazí tuto nápovědu a skončí"
 
-#: src/diff.c:982
+#: src/diff.c:1042
 msgid "-v, --version            output version information and exit"
 msgstr "-v, --version            vypíše údaje o verzi a skončí"
 
-#: src/diff.c:984
+#: src/diff.c:1044
 msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
 "SOUBORY jsou „SOUBOR1 SOUBOR2“ nebo „ADRESÁŘ1 ADRESÁŘ2' nebo\n"
 "„ADRESÁŘ SOUBOR“ nebo „SOUBOR ADRESÁŘ“."
 
-#: src/diff.c:985
+#: src/diff.c:1045
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr ""
 "Pokud je uveden --from-file nebo --to-file, pak nejsou u SOUBORŮ žádná "
 "omezení."
 
-#: src/diff.c:986 src/diff3.c:533 src/sdiff.c:220
+#: src/diff.c:1046 src/diff3.c:531 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
 msgstr "Pokud SOUBOR bude „-“, bude čten standardní vstup."
 
-#: src/diff.c:996
+#: src/diff.c:1056
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Použití: %s [PŘEPÍNAČ]… SOUBORY\n"
 
-#: src/diff.c:997
+#: src/diff.c:1057
 msgid "Compare FILES line by line."
 msgstr "Porovnává SOUBORY řádek po řádku."
 
-#: src/diff.c:1034
+#: src/diff.c:1094
 #, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "konfliktní hodnota „%2$s“ přepínače „%1$s“"
 
-#: src/diff.c:1047
+#: src/diff.c:1107
 #, c-format
 msgid "conflicting output style options"
 msgstr "konfliktní přepínače pro styl výstupu"
 
-#: src/diff.c:1063
+#: src/diff.c:1123
 #, c-format
 msgid "invalid color '%s'"
 msgstr "neplatná barva „%s“"
 
-#: src/diff.c:1119 src/diff.c:1329
+#: src/diff.c:1197 src/diff.c:1401
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Pouze v %s: %s\n"
 
-#: src/diff.c:1253
+#: src/diff.c:1325
 msgid "cannot compare '-' to a directory"
 msgstr "„-“ s adresářem nelze porovnat"
 
-#: src/diff.c:1288
+#: src/diff.c:1360
 msgid "-D option not supported with directories"
 msgstr "-D přepínač nepodporuje práci s adresáři"
 
-#: src/diff.c:1297
+#: src/diff.c:1369
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Společné podadresáře: %s a %s\n"
 
-#: src/diff.c:1339 src/diff.c:1389
+#: src/diff.c:1411 src/diff.c:1461
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr "Soubor %s je %s zatímco soubor %s je %s\n"
 
-#: src/diff.c:1375
+#: src/diff.c:1447
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "Symbolické odkazy %s a %s se liší\n"
 
-#: src/diff.c:1462
+#: src/diff.c:1534
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Soubory %s a %s jsou identické\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff3.c:43
+#: src/diff3.c:51
 msgid "Randy Smith"
 msgstr "Randy Smith"
 
-#: src/diff3.c:356
+#: src/diff3.c:363
 #, c-format
 msgid "incompatible options"
 msgstr "nekompatibilní přepínače"
 
-#: src/diff3.c:396
+#: src/diff3.c:403
 msgid "'-' specified for more than one input file"
 msgstr "„-“ zadáno pro více než jeden vstupní soubor"
 
-#: src/diff3.c:447 src/diff3.c:1295 src/diff3.c:1698 src/diff3.c:1753
-#: src/sdiff.c:308 src/sdiff.c:846 src/sdiff.c:857
+#: src/diff3.c:445 src/diff3.c:1284 src/diff3.c:1683 src/diff3.c:1738
+#: src/sdiff.c:306 src/sdiff.c:843 src/sdiff.c:854
 msgid "read failed"
 msgstr "čtení selhalo"
 
-#: src/diff3.c:480
+#: src/diff3.c:478
 msgid "-A, --show-all              output all changes, bracketing conflicts"
 msgstr ""
 "-A, --show-all              vypíše všechny rozdíly, konflikty v závorkách"
 
-#: src/diff3.c:482
+#: src/diff3.c:480
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
@@ -1174,32 +1175,32 @@ msgstr ""
 "-e, --ed                    vypíše ed skript zahrnující změny mezi\n"
 "                            STARÝM_SOUBOREM a VAŠÍM_SOUBOREM do MÉHO_SOUBORU"
 
-#: src/diff3.c:484
+#: src/diff3.c:482
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
 msgstr "-E, --show-overlap          jako -e, ale konflikty umístí do závorek"
 
-#: src/diff3.c:485
+#: src/diff3.c:483
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
 msgstr ""
 "-3, --easy-only             jako -e, ale zahrne jen nepřekrývající se změny"
 
-#: src/diff3.c:486
+#: src/diff3.c:484
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
 msgstr ""
 "-x, --overlap-only          jako -e, ale zahrne jen překrývající se změny"
 
-#: src/diff3.c:487
+#: src/diff3.c:485
 msgid "-X                          like -x, but bracket conflicts"
 msgstr "-X                          jako -x, ale konflikty umístí do závorek"
 
-#: src/diff3.c:488
+#: src/diff3.c:486
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
 msgstr "-i                          přidá příkazy „w“ a „q“ do skriptů pro ed"
 
-#: src/diff3.c:490
+#: src/diff3.c:488
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
@@ -1208,23 +1209,23 @@ msgstr ""
 "li\n"
 "                            uvedeny další přepínače"
 
-#: src/diff3.c:493
+#: src/diff3.c:491
 msgid "-a, --text                  treat all files as text"
 msgstr "-a, --text                  pokládá všechny soubory za text"
 
-#: src/diff3.c:494
+#: src/diff3.c:492
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
 msgstr "    --strip-trailing-cr     odstraní ukončovací znak CR na vstupu"
 
-#: src/diff3.c:495
+#: src/diff3.c:493
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
 msgstr "-T, --initial-tab           na začátek řádků se vloží tabulátor"
 
-#: src/diff3.c:496
+#: src/diff3.c:494
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
 msgstr "    --diff-program=PROGRAM  použije PROGRAM k porovnání souborů"
 
-#: src/diff3.c:497
+#: src/diff3.c:495
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
@@ -1232,24 +1233,24 @@ msgstr ""
 "-L, --label=NÁZEV           použije NÁZEV namísto názvu souboru\n"
 "                            (lze opakovat až třikrát)"
 
-#: src/diff3.c:500
+#: src/diff3.c:498
 msgid "    --help                  display this help and exit"
 msgstr "    --help                  zobrazí tuto nápovědu a skončí"
 
-#: src/diff3.c:501
+#: src/diff3.c:499
 msgid "-v, --version               output version information and exit"
 msgstr "-v, --version               vypíše údaje o verzi a skončí"
 
-#: src/diff3.c:510
+#: src/diff3.c:508
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
 msgstr "Použití: %s [PŘEPÍNAČ]… MŮJ_SOUBOR STARÝ_SOUBOR VÁŠ_SOUBOR\n"
 
-#: src/diff3.c:512
+#: src/diff3.c:510
 msgid "Compare three files line by line."
 msgstr "Porovnání tří souborů řádek po řádku."
 
-#: src/diff3.c:522
+#: src/diff3.c:520
 msgid ""
 "\n"
 "The default output format is a somewhat human-readable representation of\n"
@@ -1273,54 +1274,54 @@ msgstr ""
 "vlastní spojený soubor. V případě neobvyklého vstupu, je toto spolehlivější\n"
 "způsob než použití programu ed.\n"
 
-#: src/diff3.c:534
+#: src/diff3.c:532
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
 msgstr "Návratová hodnota je 0 při úspěchu, 1 při konfliktu a 2 při chybě."
 
-#: src/diff3.c:727
+#: src/diff3.c:725
 msgid "internal error: screwup in format of diff blocks"
 msgstr "vnitřní chyba: chyba ve formátu diff bloků"
 
-#: src/diff3.c:1022
+#: src/diff3.c:1015
 #, c-format
 msgid "%s: diff failed: "
 msgstr "%s: diff selhal: "
 
-#: src/diff3.c:1044
+#: src/diff3.c:1037
 msgid "internal error: invalid diff type in process_diff"
 msgstr "vnitřní chyba: nesprávný typ diffu v process_diff"
 
-#: src/diff3.c:1069
+#: src/diff3.c:1060
 msgid "invalid diff format; invalid change separator"
 msgstr "neplatný formát diff souboru; neplatný oddělovač změny"
 
-#: src/diff3.c:1305
+#: src/diff3.c:1294
 msgid "invalid diff format; incomplete last line"
 msgstr "neplatný formát diff souboru; nekompletní poslední řádek"
 
-#: src/diff3.c:1329 src/sdiff.c:276 src/util.c:969
+#: src/diff3.c:1318 src/sdiff.c:274 src/util.c:1069
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "pomocný program „%s“ nebylo možné zavolat"
 
-#: src/diff3.c:1354
+#: src/diff3.c:1343
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "neplatný formát diff souboru; nesprávné úvodní znaky na řádku"
 
-#: src/diff3.c:1427
+#: src/diff3.c:1416
 msgid "internal error: invalid diff type passed to output"
 msgstr "vnitřní chyba: nesprávný typ diffu pro výstup"
 
-#: src/diff3.c:1700 src/diff3.c:1757
+#: src/diff3.c:1685 src/diff3.c:1742
 msgid "input file shrank"
 msgstr "vstupní soubor se zmenšil"
 
-#: src/dir.c:156
+#: src/dir.c:154
 #, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "nelze porovnat názvy souborů „%s“ a „%s“"
 
-#: src/dir.c:225
+#: src/dir.c:223
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: smyčka v rekurzi adresářů"
@@ -1330,54 +1331,54 @@ msgstr "%s: smyčka v rekurzi adresářů"
 msgid "Thomas Lord"
 msgstr "Thomas Lord"
 
-#: src/sdiff.c:174
+#: src/sdiff.c:173
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
 msgstr ""
 "-o, --output=SOUBOR          interaktivní režim, výstup půjde do SOUBORU"
 
-#: src/sdiff.c:176
+#: src/sdiff.c:175
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
 msgstr "-i, --ignore-case            nerozlišuje velká a malá písmena"
 
-#: src/sdiff.c:177
+#: src/sdiff.c:176
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
 msgstr "-E, --ignore-tab-expansion   ignoruje změny v odsazení tabulátorem"
 
-#: src/sdiff.c:178
+#: src/sdiff.c:177
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
 msgstr ""
 "-Z, --ignore-trailing-space  ignoruje všechny bílé znaky na konci řádku"
 
-#: src/sdiff.c:179
+#: src/sdiff.c:178
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
 msgstr "-b, --ignore-space-change    ignoruje změny v počtu bílých znaků"
 
-#: src/sdiff.c:180
+#: src/sdiff.c:179
 msgid "-W, --ignore-all-space       ignore all white space"
 msgstr "-W, --ignore-all-space       ignoruje všechny bílé znaky"
 
-#: src/sdiff.c:181
+#: src/sdiff.c:180
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
 msgstr "-B, --ignore-blank-lines     ignoruje změny v případě prázdných řádků"
 
-#: src/sdiff.c:182
+#: src/sdiff.c:181
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=RV  ignoruje změny na všech řádcích\n"
 "                                odpovídajících RV"
 
-#: src/sdiff.c:183
+#: src/sdiff.c:182
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
 msgstr "    --strip-trailing-cr      odstraní ukončovací znak CR na vstupu"
 
-#: src/sdiff.c:184
+#: src/sdiff.c:183
 msgid "-a, --text                   treat all files as text"
 msgstr "-a,  --text                  pokládá všechny soubory za text"
 
-#: src/sdiff.c:186
+#: src/sdiff.c:185
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
 msgstr ""
@@ -1385,21 +1386,21 @@ msgstr ""
 "tiskových\n"
 "                             sloupců"
 
-#: src/sdiff.c:187
+#: src/sdiff.c:186
 msgid ""
 "-l, --left-column            output only the left column of common lines"
 msgstr ""
 "-l, --left-column            vypíše pouze levý sloupec společných řádků"
 
-#: src/sdiff.c:188
+#: src/sdiff.c:187
 msgid "-s, --suppress-common-lines  do not output common lines"
 msgstr "-s, --suppress-common-lines  nevypisuje společné řádky"
 
-#: src/sdiff.c:190
+#: src/sdiff.c:189
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
 msgstr "-t, --expand-tabs            ve výstupu převede tabulátory na mezery"
 
-#: src/sdiff.c:191
+#: src/sdiff.c:190
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
 msgstr ""
@@ -1407,47 +1408,47 @@ msgstr ""
 "8)\n"
 "                            tiskových sloupců"
 
-#: src/sdiff.c:193
+#: src/sdiff.c:192
 msgid "-d, --minimal                try hard to find a smaller set of changes"
 msgstr "-d, --minimal                pokusí se nalézt nejmenší sadu změn"
 
-#: src/sdiff.c:194
+#: src/sdiff.c:193
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
 msgstr ""
 "-H, --speed-large-files      předpokládá velké soubory a mnoho rozptýlených\n"
 "                             drobných změn"
 
-#: src/sdiff.c:195
+#: src/sdiff.c:194
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
 msgstr "    --diff-program=PROGRAM   použije PROGRAM k porovnání souborů"
 
-#: src/sdiff.c:197
+#: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
 msgstr "    --help                   zobrazí tuto nápovědu a skončí"
 
-#: src/sdiff.c:198
+#: src/sdiff.c:197
 msgid "-v, --version                output version information and exit"
 msgstr "-v, --version                vypíše údaje o verzi a skončí"
 
-#: src/sdiff.c:207
+#: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
 msgstr "Použití: %s [PŘEPÍNAČ]… SOUBOR1 SOUBOR2\n"
 
-#: src/sdiff.c:209
+#: src/sdiff.c:208
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
 msgstr "Spojí změny mezi SOUBOREM1 a SOUBOREM2 v režimu „vedle sebe“."
 
-#: src/sdiff.c:330
+#: src/sdiff.c:328
 msgid "cannot interactively merge standard input"
 msgstr "interaktivně nelze standardní vstup sloučit"
 
-#: src/sdiff.c:597
+#: src/sdiff.c:594
 msgid "both files to be compared are directories"
 msgstr "oba soubory k porovnání jsou adresáři"
 
-#: src/sdiff.c:820
+#: src/sdiff.c:817
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
 "eb:\tEdit then use both versions.\n"
@@ -1471,12 +1472,12 @@ msgstr ""
 "v:\tUpozorní na vložení společných řádků.\n"
 "q:\tUkončení.\n"
 
-#: src/util.c:662
+#: src/util.c:755
 #, c-format
 msgid "unrecognized prefix: %s"
 msgstr "nerozpoznaná předpona: %s"
 
-#: src/util.c:692
+#: src/util.c:785
 #, c-format
 msgid "unparsable value for --palette"
 msgstr "nerozebratelná hodnota pro přepínač --pellete"
index 6dcf725..1c5a211 100644 (file)
--- a/po/da.po
+++ b/po/da.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: diffutils-3.5.25\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2021-08-01 18:56-0700\n"
+"POT-Creation-Date: 2023-05-21 01:51-0700\n"
 "PO-Revision-Date: 2017-11-14 14:26+0100\n"
 "Last-Translator: Ask Hjorth Larsen <asklarsen@gmail.com>\n"
 "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
@@ -20,29 +20,29 @@ msgstr ""
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 "X-Generator: KBabel 0.9.5\n"
 
-#: lib/argmatch.c:132
+#: lib/argmatch.c:145
 #, c-format
 msgid "invalid argument %s for %s"
 msgstr "ugyldigt argument %s til %s"
 
-#: lib/argmatch.c:133
+#: lib/argmatch.c:146
 #, c-format
 msgid "ambiguous argument %s for %s"
 msgstr "flertydigt argument %s til %s"
 
-#: lib/argmatch.c:152 lib/argmatch.h:223
+#: lib/argmatch.c:165 lib/argmatch.h:242
 msgid "Valid arguments are:"
 msgstr "Gyldige argumenter er:"
 
-#: lib/c-stack.c:187
+#: lib/c-stack.c:186
 msgid "program error"
 msgstr "programfejl"
 
-#: lib/c-stack.c:188
+#: lib/c-stack.c:187
 msgid "stack overflow"
 msgstr "stakoverløb"
 
-#: lib/error.c:195
+#: lib/error.c:193
 msgid "Unknown system error"
 msgstr "Ukendt systemfejl"
 
@@ -199,83 +199,83 @@ msgstr "%s: tilvalg kræver et argument -- \"%c\"\n"
 #. If you don't know what to put here, please see
 #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:355
+#: lib/quotearg.c:354
 msgid "`"
 msgstr "\""
 
-#: lib/quotearg.c:356
+#: lib/quotearg.c:355
 msgid "'"
 msgstr "\""
 
-#: lib/regcomp.c:135
+#: lib/regcomp.c:122
 msgid "Success"
 msgstr "Succes"
 
-#: lib/regcomp.c:138
+#: lib/regcomp.c:125
 msgid "No match"
 msgstr "Ingen match"
 
-#: lib/regcomp.c:141
+#: lib/regcomp.c:128
 msgid "Invalid regular expression"
 msgstr "Ugyldigt regulært udtryk"
 
-#: lib/regcomp.c:144
+#: lib/regcomp.c:131
 msgid "Invalid collation character"
 msgstr "Ugyldig sammenlignings-tegn"
 
-#: lib/regcomp.c:147
+#: lib/regcomp.c:134
 msgid "Invalid character class name"
 msgstr "Ugyldigt navn på tegn-klasse"
 
-#: lib/regcomp.c:150
+#: lib/regcomp.c:137
 msgid "Trailing backslash"
 msgstr "Efterstillet backslash"
 
-#: lib/regcomp.c:153
+#: lib/regcomp.c:140
 msgid "Invalid back reference"
 msgstr "Ugyldig bagud-reference"
 
-#: lib/regcomp.c:156
+#: lib/regcomp.c:143
 msgid "Unmatched [, [^, [:, [., or [="
 msgstr "Uparret [, [^, [:, [. eller [="
 
-#: lib/regcomp.c:159
+#: lib/regcomp.c:146
 msgid "Unmatched ( or \\("
 msgstr "Uparret ( eller \\("
 
-#: lib/regcomp.c:162
+#: lib/regcomp.c:149
 msgid "Unmatched \\{"
 msgstr "Uparret \\{"
 
-#: lib/regcomp.c:165
+#: lib/regcomp.c:152
 msgid "Invalid content of \\{\\}"
 msgstr "Ugyldigt indhold af \\{\\}"
 
-#: lib/regcomp.c:168
+#: lib/regcomp.c:155
 msgid "Invalid range end"
 msgstr "Ugyldig område-afslutning"
 
-#: lib/regcomp.c:171
+#: lib/regcomp.c:158
 msgid "Memory exhausted"
 msgstr "Hukommelse opbrugt"
 
-#: lib/regcomp.c:174
+#: lib/regcomp.c:161
 msgid "Invalid preceding regular expression"
 msgstr "Ugyldigt foranstillet regulært udtryk"
 
-#: lib/regcomp.c:177
+#: lib/regcomp.c:164
 msgid "Premature end of regular expression"
 msgstr "For tidlig afslutning på regulært udtryk"
 
-#: lib/regcomp.c:180
+#: lib/regcomp.c:167
 msgid "Regular expression too big"
 msgstr "For stort regulært udtryk"
 
-#: lib/regcomp.c:183
+#: lib/regcomp.c:170
 msgid "Unmatched ) or \\)"
 msgstr "Uparret ) eller \\)"
 
-#: lib/regcomp.c:676
+#: lib/regcomp.c:650
 msgid "No previous regular expression"
 msgstr "Intet foranstillet regulært udtryk"
 
@@ -476,17 +476,17 @@ msgstr "Hjemmeside for %s: <%s>\n"
 msgid "General help using GNU software: <%s>\n"
 msgstr "Generel hjælp til GNU-programmer: <http://www.gnu.org/gethelp/>\n"
 
-#: src/analyze.c:454 src/diff.c:1406
+#: src/analyze.c:455 src/diff.c:1478
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Filerne %s og %s er forskellige\n"
 
-#: src/analyze.c:455
+#: src/analyze.c:456
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "Binære filer %s og %s er forskellige\n"
 
-#: src/analyze.c:706 src/diff3.c:1470 src/util.c:1254
+#: src/analyze.c:707 src/diff3.c:1457 src/util.c:1354
 msgid "No newline at end of file"
 msgstr "Intet linjeskift ved filafslutning"
 
@@ -500,41 +500,42 @@ msgstr "Torbjörn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:120 src/diff.c:879 src/diff3.c:467 src/sdiff.c:160
+#: src/cmp.c:124 src/diff.c:939 src/diff3.c:465 src/sdiff.c:159
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Prøv \"%s --help\" for mere information."
 
-#: src/cmp.c:138
+#: src/cmp.c:142
 #, c-format
 msgid "invalid --ignore-initial value '%s'"
 msgstr "ugyldig værdi \"%s\" for --ignore-initial"
 
-#: src/cmp.c:148
+#: src/cmp.c:152
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr "tilvalgene -l og -s er inkompatible"
 
-#: src/cmp.c:156 src/diff.c:887 src/diff3.c:474 src/sdiff.c:168 src/sdiff.c:316
-#: src/sdiff.c:323 src/sdiff.c:876 src/util.c:852 src/util.c:952 src/util.c:959
+#: src/cmp.c:160 src/diff.c:947 src/diff3.c:472 src/sdiff.c:167 src/sdiff.c:314
+#: src/sdiff.c:321 src/sdiff.c:873 src/util.c:952 src/util.c:1052
+#: src/util.c:1059
 msgid "write failed"
 msgstr "skrivning mislykkedes"
 
-#: src/cmp.c:158 src/diff.c:889 src/diff.c:1471 src/diff3.c:476 src/sdiff.c:170
+#: src/cmp.c:162 src/diff.c:949 src/diff.c:1543 src/diff3.c:474 src/sdiff.c:169
 msgid "standard output"
 msgstr "standard-ud"
 
-#: src/cmp.c:162
+#: src/cmp.c:166
 msgid "-b, --print-bytes          print differing bytes"
 msgstr "-b, --print-bytes          vis afvigende byte"
 
-#: src/cmp.c:163
+#: src/cmp.c:167
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
 msgstr ""
 "-i, --ignore-initial=SPRING       spring de første SPRING byte over i begge\n"
 "                                    input"
 
-#: src/cmp.c:164
+#: src/cmp.c:168
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
@@ -543,39 +544,39 @@ msgstr ""
 "og\n"
 "                                        SPRING2 byte af FIL2 over"
 
-#: src/cmp.c:166
+#: src/cmp.c:170
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
 msgstr ""
 "-l, --verbose              vis numre og værdier for de byte, der er "
 "forskellige"
 
-#: src/cmp.c:167
+#: src/cmp.c:171
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
 msgstr "-n, --bytes=GRÆNSE         sammenlign højst GRÆNSE byte"
 
-#: src/cmp.c:168
+#: src/cmp.c:172
 msgid "-s, --quiet, --silent      suppress all normal output"
 msgstr "-s, --quiet, --silent      undertryk al normal udskrift"
 
-#: src/cmp.c:169
+#: src/cmp.c:173
 msgid "    --help                 display this help and exit"
 msgstr "    --help                 vis denne hjælpetekst og afslut"
 
-#: src/cmp.c:170
+#: src/cmp.c:174
 msgid "-v, --version              output version information and exit"
 msgstr "-v, --version              vis versionsoplysninger og afslut"
 
-#: src/cmp.c:179
+#: src/cmp.c:183
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
 msgstr "Brug: %s [TILVALG]... FIL1 [FIL2 [SPRING1 [SPRING2]]]\n"
 
-#: src/cmp.c:181
+#: src/cmp.c:185
 msgid "Compare two files byte by byte."
 msgstr "Sammenlign to filer byte for byte."
 
-#: src/cmp.c:183
+#: src/cmp.c:187
 msgid ""
 "The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
 "at the beginning of each file (zero by default)."
@@ -583,14 +584,14 @@ msgstr ""
 "De valgfri SPRING1 og SPRING2 angiver antallet af byte, der skal springes\n"
 "over ved begyndelsen af hver fil (normalt 0)."
 
-#: src/cmp.c:186 src/diff.c:999 src/diff3.c:514 src/sdiff.c:211
+#: src/cmp.c:190 src/diff.c:1059 src/diff3.c:512 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
 "Obligatoriske argumenter til lange tilvalg er også obligatoriske til de "
 "korte.\n"
 
-#: src/cmp.c:192
+#: src/cmp.c:196
 msgid ""
 "SKIP values may be followed by the following multiplicative suffixes:\n"
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
@@ -600,140 +601,140 @@ msgstr ""
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
 "GB 1,000,000,000, G 1,073,741,824, og så videre for T, P, E, Z, Y."
 
-#: src/cmp.c:195
+#: src/cmp.c:199
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "Såfremt en FIL er \"-\" eller mangler, læses fra standard-ind."
 
-#: src/cmp.c:196 src/diff.c:987 src/sdiff.c:221
+#: src/cmp.c:200 src/diff.c:1047 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr ""
 "Slutstatus er 0 hvis inddata er ens, 1 hvis ikke, og 2 hvis der er problemer."
 
-#: src/cmp.c:243
+#: src/cmp.c:247
 #, c-format
 msgid "invalid --bytes value '%s'"
 msgstr "ugyldig værdi \"%s\" for --bytes"
 
-#: src/cmp.c:269 src/diff.c:797 src/diff3.c:361 src/sdiff.c:567
+#: src/cmp.c:273 src/diff.c:857 src/diff3.c:368 src/sdiff.c:564
 #, c-format
 msgid "missing operand after '%s'"
 msgstr "manglende operand efter \"%s\""
 
-#: src/cmp.c:281 src/diff.c:799 src/diff3.c:363 src/sdiff.c:569
+#: src/cmp.c:285 src/diff.c:859 src/diff3.c:370 src/sdiff.c:566
 #, c-format
 msgid "extra operand '%s'"
 msgstr "ekstra operand \"%s\""
 
-#: src/cmp.c:507
+#: src/cmp.c:521
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s afviger: byte %s, linje %s\n"
 
-#: src/cmp.c:523
+#: src/cmp.c:537
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
 msgstr "%s %s afviger: tegn %s, linje %s er %3o %s %3o %s\n"
 
-#: src/cmp.c:580
+#: src/cmp.c:594
 #, c-format
 msgid "cmp: EOF on %s which is empty\n"
 msgstr "cmp: filafslutning på %s som er tom\n"
 
-#: src/cmp.c:594
+#: src/cmp.c:608
 #, c-format
 msgid "cmp: EOF on %s after byte %s, line %s\n"
 msgstr "cmp: filafslutning på %s efter byte %s, linje %s\n"
 
-#: src/cmp.c:595
+#: src/cmp.c:609
 #, c-format
 msgid "cmp: EOF on %s after byte %s, in line %s\n"
 msgstr "cmp: filafslutning på %s efter byte %s i linje %s\n"
 
-#: src/cmp.c:601
+#: src/cmp.c:615
 #, c-format
 msgid "cmp: EOF on %s after byte %s\n"
 msgstr "cmp: filafslutning på %s efter byte %s\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:51
+#: src/diff.c:50
 msgid "Paul Eggert"
 msgstr "Paul Eggert"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:52
+#: src/diff.c:51
 msgid "Mike Haertel"
 msgstr "Mike Haertel"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:53
+#: src/diff.c:52
 msgid "David Hayes"
 msgstr "David Hayes"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:54
+#: src/diff.c:53
 msgid "Richard Stallman"
 msgstr "Richard Stallman"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:55
+#: src/diff.c:54
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:355
+#: src/diff.c:365
 #, c-format
 msgid "invalid context length '%s'"
 msgstr "ugyldig kontekstlængde \"%s\""
 
-#: src/diff.c:438
+#: src/diff.c:487
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "paginering understøttes ikke af denne vært"
 
-#: src/diff.c:453 src/diff3.c:341
+#: src/diff.c:502 src/diff3.c:348
 #, c-format
 msgid "too many file label options"
 msgstr "for mange fil-mærke tilvalg"
 
-#: src/diff.c:530
+#: src/diff.c:579
 #, c-format
 msgid "invalid width '%s'"
 msgstr "ugyldig bredde \"%s\""
 
-#: src/diff.c:534
+#: src/diff.c:583
 msgid "conflicting width options"
 msgstr "modstridende breddeangivelser"
 
-#: src/diff.c:559
+#: src/diff.c:608
 #, c-format
 msgid "invalid horizon length '%s'"
 msgstr "ugyldig horisontlængde \"%s\""
 
-#: src/diff.c:615
+#: src/diff.c:664
 #, c-format
 msgid "invalid tabsize '%s'"
 msgstr "ugyldig tabulatorbredde \"%s\""
 
-#: src/diff.c:619
+#: src/diff.c:668
 msgid "conflicting tabsize options"
 msgstr "modstridende angivelser af tabulatorbredde"
 
-#: src/diff.c:774
+#: src/diff.c:834
 msgid "--from-file and --to-file both specified"
 msgstr "både --from-file og --to-file er angivet"
 
-#: src/diff.c:893
+#: src/diff.c:953
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "    --normal                  udskriv en almindelig diff (forvalg)"
 
-#: src/diff.c:894
+#: src/diff.c:954
 msgid "-q, --brief                   report only when files differ"
 msgstr "-q, --brief                   angiv kun når filerne er forskellige"
 
-#: src/diff.c:895
+#: src/diff.c:955
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr "-s, --report-identical-files  rapportér hvis to filer er ens"
 
-#: src/diff.c:896
+#: src/diff.c:956
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
@@ -741,50 +742,50 @@ msgstr ""
 "kopieret\n"
 "                                   kontekst"
 
-#: src/diff.c:897
+#: src/diff.c:957
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
 "-u, -U ANTAL, --unified[=ANTAL]  Udskriv højst ANTAL (normalt 3) linjer\n"
 "                                   forenet kontekst"
 
-#: src/diff.c:898
+#: src/diff.c:958
 msgid "-e, --ed                      output an ed script"
 msgstr "-e, --ed                      udskriv et ed-script"
 
-#: src/diff.c:899
+#: src/diff.c:959
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n, --rcs                     udskriv en diff i RCS-format"
 
-#: src/diff.c:900
+#: src/diff.c:960
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side            udskriv i to kolonner"
 
-#: src/diff.c:901
+#: src/diff.c:961
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
 "-W, --width=ANTAL             udskriv højst ANTAL (normalt 130) kolonner"
 
-#: src/diff.c:902
+#: src/diff.c:962
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr ""
 "    --left-column             udskriv kun venstre kolonne i fælles linjer"
 
-#: src/diff.c:903
+#: src/diff.c:963
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "    --suppress-common-lines   udskriv ikke fælles linjer"
 
-#: src/diff.c:905
+#: src/diff.c:965
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr "-p, --show-c-function         vis hvilken C-funktion hver ændring er i"
 
-#: src/diff.c:906
+#: src/diff.c:966
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr "-F, --show-function-line=RE   vis den seneste linje der matcher RE"
 
-#: src/diff.c:907
+#: src/diff.c:967
 msgid ""
 "    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
@@ -792,88 +793,88 @@ msgstr ""
 "    --label MÆRKAT            brug MÆRKAT frem for filnavn og tidsstempel\n"
 "                                (kan gentages)"
 
-#: src/diff.c:910
+#: src/diff.c:970
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr ""
 "-t, --expand-tabs             lav tabulatorer om til mellemrum i udskrift"
 
-#: src/diff.c:911
+#: src/diff.c:971
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr ""
 "-T, --initial-tab             få tabulatorer på linje ved at forudstille en\n"
 "                                tabulator"
 
-#: src/diff.c:912
+#: src/diff.c:972
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=ANTAL           tabulatorstop for hver ANTAL (normalt 8) "
 "kolonner"
 
-#: src/diff.c:913
+#: src/diff.c:973
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
 "    --suppress-blank-empty    intet mellemrum eller tabulator før tomme\n"
 "                                ud-linjer"
 
-#: src/diff.c:914
+#: src/diff.c:974
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr ""
 "-l, --paginate                led uddata gennem \"pr\" for at sideinddele det"
 
-#: src/diff.c:916
+#: src/diff.c:976
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr ""
 "-r, --recursive                 sammenlign alle fundne underkataloger "
 "rekursivt"
 
-#: src/diff.c:917
+#: src/diff.c:977
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr "    --no-dereference            følg ikke symbolske lænker"
 
-#: src/diff.c:918
+#: src/diff.c:978
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr ""
 "-N, --new-file                  behandl manglende filer som var de tomme"
 
-#: src/diff.c:919
+#: src/diff.c:979
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
 "    --unidirectional-new-file   behandl manglende førstefiler som var de "
 "tomme"
 
-#: src/diff.c:920
+#: src/diff.c:980
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ""
 "    --ignore-file-name-case     ingen forskel på store og små bogstaver ved\n"
 "                                  sammenligning af filnavne"
 
-#: src/diff.c:921
+#: src/diff.c:981
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
 "    --no-ignore-file-name-case  skeln mellem store og små bogstaver ved\n"
 "                                  sammenligning af filnavne"
 
-#: src/diff.c:922
+#: src/diff.c:982
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr "-x, --exclude=MØNSTER           udelad filer, det matcher MØNSTER"
 
-#: src/diff.c:923
+#: src/diff.c:983
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
 "-X, --exclude-from=FIL          udelad filer, der matcher ethvert mønster i "
 "FIL"
 
-#: src/diff.c:924
+#: src/diff.c:984
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
 "-S, --starting-file=FIL         start med FIL, når der sammenlignes kataloger"
 
-#: src/diff.c:925
+#: src/diff.c:985
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
@@ -881,7 +882,7 @@ msgstr ""
 "    --from-file=FIL1            sammenlign FIL1 med alle operander; FIL1 må\n"
 "                                  godt være et katalog"
 
-#: src/diff.c:927
+#: src/diff.c:987
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
@@ -890,75 +891,75 @@ msgstr ""
 "må\n"
 "                                  godt være et katalog"
 
-#: src/diff.c:930
+#: src/diff.c:990
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr "-i, --ignore-case               ignorér versalforskelle i filindhold"
 
-#: src/diff.c:931
+#: src/diff.c:991
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr ""
 "-E, --ignore-tab-expansion      ignorér ændringer der skyldes\n"
 "                                  tabulatoromsætning"
 
-#: src/diff.c:932
+#: src/diff.c:992
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr ""
 "-Z, --ignore-trailing-space     ignorér blanke tegn ved linjens afslutning"
 
-#: src/diff.c:933
+#: src/diff.c:993
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr ""
 "-b, --ignore-space-change       ignorér ændringer i mængden af blanke tegn"
 
-#: src/diff.c:934
+#: src/diff.c:994
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w, --ignore-all-space          ignorér alle blanke tegn"
 
-#: src/diff.c:935
+#: src/diff.c:995
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr "-B, --ignore-blank-lines        ignorér ændringer med kun tomme linjer"
 
-#: src/diff.c:936
+#: src/diff.c:996
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=MØNSTER  ignorér ændringer, hvis linjer alle\n"
 "                                       matcher MØNSTER"
 
-#: src/diff.c:938
+#: src/diff.c:998
 msgid "-a, --text                      treat all files as text"
 msgstr "-a, --text                      behandl alle filer som tekst"
 
-#: src/diff.c:939
+#: src/diff.c:999
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr "    --strip-trailing-cr         fjern afsluttende vognretur i inddata"
 
-#: src/diff.c:941
+#: src/diff.c:1001
 msgid "    --binary                    read and write data in binary mode"
 msgstr "    --binary                    læs og skriv data binært"
 
-#: src/diff.c:944
+#: src/diff.c:1004
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
 "-D, --ifdef=NAVN                udskriv flettet fil med \"#ifdef NAVN\"-"
 "differ"
 
-#: src/diff.c:945
+#: src/diff.c:1005
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr "    --GTYPE-group-format=GFMT    formatér GTYPE-inputgrupper med GFMT"
 
-#: src/diff.c:946
+#: src/diff.c:1006
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr "    --line-format=LFMT          formatér alle inputlinjer med LFMT"
 
-#: src/diff.c:947
+#: src/diff.c:1007
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr "    --LTYPE-line-format=LFMT    formatér LTYPE-inputlinjer med LFMT"
 
-#: src/diff.c:948
+#: src/diff.c:1008
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
@@ -966,7 +967,7 @@ msgstr ""
 "  Disse formattilvalg giver finkontrol over udskriften af diff, og\n"
 "    generaliserer -D/--ifdef."
 
-#: src/diff.c:950
+#: src/diff.c:1010
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
 "  LTYPE er \"old\" (gammel), \"new\" (ny) eller \"unchanged\" (uændret).\n"
@@ -974,7 +975,7 @@ msgstr ""
 
 # hvad er PREC?  Det står ingen steder i filen.  PRÆC blev brugt i tidligere
 # oversættelse, så beholder. -Ask
-#: src/diff.c:951
+#: src/diff.c:1011
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -1004,7 +1005,7 @@ msgstr ""
 "        M  L+1\n"
 "    %(A=B?T:E)  hvis A lig med B så T, ellers E"
 
-#: src/diff.c:963
+#: src/diff.c:1023
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -1016,7 +1017,7 @@ msgstr ""
 "    %l  indhold af linje, undtagen eventuelt følgende linjeskift\n"
 "    %[-][BREDDE][.[PRÆC]]{doxX}n  printf-angivelse for inputlinjenummer"
 
-#: src/diff.c:967
+#: src/diff.c:1027
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1030,24 +1031,24 @@ msgstr ""
 "    %c'\\OOO'  tegnet med oktalkode OOO\n"
 "    C    tegnet C (andre tegn repræsenterer sig selv)"
 
-#: src/diff.c:973
+#: src/diff.c:1033
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr ""
 "-d, --minimal            grundigt forsøg på at finde et mindre antal "
 "ændringer"
 
-#: src/diff.c:974
+#: src/diff.c:1034
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr ""
 "    --horizon-lines=ANTAL  behold ANTAL linjer af fælles præfiks og suffiks"
 
-#: src/diff.c:975
+#: src/diff.c:1035
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
 "    --speed-large-files  antag store filer og mange spredte, små ændringer"
 
-#: src/diff.c:976
+#: src/diff.c:1036
 #, fuzzy
 msgid ""
 "    --color[=WHEN]       color output; WHEN is 'never', 'always', or "
@@ -1058,7 +1059,7 @@ msgstr ""
 "\"always\"\n"
 "                           eller \"auto\" (standard)"
 
-#: src/diff.c:978
+#: src/diff.c:1038
 msgid ""
 "    --palette=PALETTE    the colors to use when --color is active; PALETTE "
 "is\n"
@@ -1068,114 +1069,114 @@ msgstr ""
 "er\n"
 "                           en kolon-adskilt liste af terminfo-egenskaber"
 
-#: src/diff.c:981
+#: src/diff.c:1041
 msgid "    --help               display this help and exit"
 msgstr "    --help               vis denne hjælpetekst og afslut"
 
-#: src/diff.c:982
+#: src/diff.c:1042
 msgid "-v, --version            output version information and exit"
 msgstr "-v, --version            vis versionsoplysninger og afslut"
 
-#: src/diff.c:984
+#: src/diff.c:1044
 msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
 "FILER er \"FIL1 FIL2\" eller \"KATALOG1 KATALOG2\" eller \"KATALOG FIL\" "
 "eller \"FIL KATALOG\"."
 
-#: src/diff.c:985
+#: src/diff.c:1045
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr ""
 "Hvis --from-file eller --to-file er givet, er der ingen restriktioner på "
 "FILer."
 
-#: src/diff.c:986 src/diff3.c:533 src/sdiff.c:220
+#: src/diff.c:1046 src/diff3.c:531 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
 msgstr "Såfremt en FIL er \"-\", læses fra standard-ind."
 
-#: src/diff.c:996
+#: src/diff.c:1056
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Brug: %s [TILVALG]... FILER\n"
 
-#: src/diff.c:997
+#: src/diff.c:1057
 msgid "Compare FILES line by line."
 msgstr "Sammenlign filer linjevis."
 
-#: src/diff.c:1034
+#: src/diff.c:1094
 #, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "modstridende værdi for %s-tilvalget: \"%s\""
 
-#: src/diff.c:1047
+#: src/diff.c:1107
 #, c-format
 msgid "conflicting output style options"
 msgstr "modstridende valg af uddata-stil"
 
-#: src/diff.c:1063
+#: src/diff.c:1123
 #, c-format
 msgid "invalid color '%s'"
 msgstr "ugyldig farve \"%s\""
 
-#: src/diff.c:1119 src/diff.c:1329
+#: src/diff.c:1197 src/diff.c:1401
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Kun i %s: %s\n"
 
-#: src/diff.c:1253
+#: src/diff.c:1325
 msgid "cannot compare '-' to a directory"
 msgstr "kan ikke sammenligne \"-\" med et katalog"
 
-#: src/diff.c:1288
+#: src/diff.c:1360
 msgid "-D option not supported with directories"
 msgstr "-D tilvalg understøttes ikke for kataloger"
 
-#: src/diff.c:1297
+#: src/diff.c:1369
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Identiske underkataloger: %s og %s\n"
 
-#: src/diff.c:1339 src/diff.c:1389
+#: src/diff.c:1411 src/diff.c:1461
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr "Filen %s er en %s mens filen %s er en %s\n"
 
-#: src/diff.c:1375
+#: src/diff.c:1447
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "De symbolske lænker %s og %s er forskellige\n"
 
-#: src/diff.c:1462
+#: src/diff.c:1534
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Filerne %s og %s er identiske\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff3.c:43
+#: src/diff3.c:51
 msgid "Randy Smith"
 msgstr "Randy Smith"
 
-#: src/diff3.c:356
+#: src/diff3.c:363
 #, c-format
 msgid "incompatible options"
 msgstr "inkompatible tilvalg"
 
-#: src/diff3.c:396
+#: src/diff3.c:403
 msgid "'-' specified for more than one input file"
 msgstr "\"-\" angivet for mere end én ind-fil"
 
-#: src/diff3.c:447 src/diff3.c:1295 src/diff3.c:1698 src/diff3.c:1753
-#: src/sdiff.c:308 src/sdiff.c:846 src/sdiff.c:857
+#: src/diff3.c:445 src/diff3.c:1284 src/diff3.c:1683 src/diff3.c:1738
+#: src/sdiff.c:306 src/sdiff.c:843 src/sdiff.c:854
 msgid "read failed"
 msgstr "læsning mislykkedes"
 
-#: src/diff3.c:480
+#: src/diff3.c:478
 msgid "-A, --show-all              output all changes, bracketing conflicts"
 msgstr ""
 "-A, --show-all              udskriv alle ændringer, med konflikter i "
 "parenteser"
 
-#: src/diff3.c:482
+#: src/diff3.c:480
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
@@ -1183,11 +1184,11 @@ msgstr ""
 "-e, --ed                    udskriv et ed-script som udfører ændringerne\n"
 "                                fra GAMMELFIL til DINFIL ind i MINFIL"
 
-#: src/diff3.c:484
+#: src/diff3.c:482
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
 msgstr "-E, --show-overlap          som -e, men sæt konflikter i parentes"
 
-#: src/diff3.c:485
+#: src/diff3.c:483
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
@@ -1195,22 +1196,22 @@ msgstr ""
 "-3, --easy-only             som -e, men inkludér kun ikke-overlappende "
 "ændringer"
 
-#: src/diff3.c:486
+#: src/diff3.c:484
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
 msgstr ""
 "-x, --overlap-only          som -e, men inkludér kun overlappende ændringer"
 
-#: src/diff3.c:487
+#: src/diff3.c:485
 msgid "-X                          like -x, but bracket conflicts"
 msgstr "-X                          som -x, men sæt konflikter i parenteser"
 
-#: src/diff3.c:488
+#: src/diff3.c:486
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
 msgstr ""
 "-i                          tilføj \"w\" og \"q\"-kommandoer til ed-script"
 
-#: src/diff3.c:490
+#: src/diff3.c:488
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
@@ -1218,25 +1219,25 @@ msgstr ""
 "-m, --merge                 udskriv faktisk flettet fil ifølge -A\n"
 "                                hvis ingen andre tilvalg er givet"
 
-#: src/diff3.c:493
+#: src/diff3.c:491
 msgid "-a, --text                  treat all files as text"
 msgstr "-a, --text                  behandl alle filer som tekst"
 
-#: src/diff3.c:494
+#: src/diff3.c:492
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
 msgstr "    --strip-trailing-cr     fjern afsluttende vognretur i inddata"
 
-#: src/diff3.c:495
+#: src/diff3.c:493
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
 msgstr ""
 "-T, --initial-tab           få tabulatorer på linje ved at forudstille\n"
 "                              en tabulator"
 
-#: src/diff3.c:496
+#: src/diff3.c:494
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
 msgstr "    --diff-program=PROGRAM  brug PROGRAM til at sammenligne filerne"
 
-#: src/diff3.c:497
+#: src/diff3.c:495
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
@@ -1244,24 +1245,24 @@ msgstr ""
 "-L, --label=MÆRKAT          brug MÆRKAT frem for filnavn\n"
 "                                (kan gentages op til tre gange)"
 
-#: src/diff3.c:500
+#: src/diff3.c:498
 msgid "    --help                  display this help and exit"
 msgstr "    --help                  vis denne hjælpetekst og afslut"
 
-#: src/diff3.c:501
+#: src/diff3.c:499
 msgid "-v, --version               output version information and exit"
 msgstr "-v, --version               vis versionsoplysninger og afslut"
 
-#: src/diff3.c:510
+#: src/diff3.c:508
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
 msgstr "Brug: %s [TILVALG]... MINFIL GAMMELFIL DINFIL\n"
 
-#: src/diff3.c:512
+#: src/diff3.c:510
 msgid "Compare three files line by line."
 msgstr "Sammenlign tre filer linje for linje."
 
-#: src/diff3.c:522
+#: src/diff3.c:520
 msgid ""
 "\n"
 "The default output format is a somewhat human-readable representation of\n"
@@ -1287,56 +1288,56 @@ msgstr ""
 "end\n"
 "med ed.\n"
 
-#: src/diff3.c:534
+#: src/diff3.c:532
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
 msgstr ""
 "Slutstatus er 0 hvis succes, 1 hvis der er konflikter, 2 hvis der er "
 "problemer."
 
-#: src/diff3.c:727
+#: src/diff3.c:725
 msgid "internal error: screwup in format of diff blocks"
 msgstr "intern fejl: rod i formatet på diff blokke"
 
-#: src/diff3.c:1022
+#: src/diff3.c:1015
 #, c-format
 msgid "%s: diff failed: "
 msgstr "%s: diff fejlede: "
 
-#: src/diff3.c:1044
+#: src/diff3.c:1037
 msgid "internal error: invalid diff type in process_diff"
 msgstr "intern fejl: ugyldig diff type i process_diff"
 
-#: src/diff3.c:1069
+#: src/diff3.c:1060
 msgid "invalid diff format; invalid change separator"
 msgstr "ugyldigt diff format; ugyldig ændrings-separator"
 
-#: src/diff3.c:1305
+#: src/diff3.c:1294
 msgid "invalid diff format; incomplete last line"
 msgstr "ugyldigt diff format; uafsluttet sidste linje"
 
-#: src/diff3.c:1329 src/sdiff.c:276 src/util.c:969
+#: src/diff3.c:1318 src/sdiff.c:274 src/util.c:1069
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "hjælpeprogrammet \"%s\" kunne ikke køres"
 
-#: src/diff3.c:1354
+#: src/diff3.c:1343
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "ugyldigt diff format; forkerte linje-begyndelses-tegn"
 
-#: src/diff3.c:1427
+#: src/diff3.c:1416
 msgid "internal error: invalid diff type passed to output"
 msgstr "intern fejl: ugyldig diff type sendt til uddata"
 
-#: src/diff3.c:1700 src/diff3.c:1757
+#: src/diff3.c:1685 src/diff3.c:1742
 msgid "input file shrank"
 msgstr "ind-fil formindskedes"
 
-#: src/dir.c:156
+#: src/dir.c:154
 #, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "kan ikke sammenligne filnavnene \"%s\" og \"%s\""
 
-#: src/dir.c:225
+#: src/dir.c:223
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: rekursiv katalogløkke"
@@ -1346,126 +1347,126 @@ msgstr "%s: rekursiv katalogløkke"
 msgid "Thomas Lord"
 msgstr "Thomas Lord"
 
-#: src/sdiff.c:174
+#: src/sdiff.c:173
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
 msgstr ""
 "-o, --output=FIL             arbejd interaktivt, og send uddata til FIL"
 
-#: src/sdiff.c:176
+#: src/sdiff.c:175
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
 msgstr ""
 "-i, --ignore-case            anse store og små bogstaver for at være ens"
 
-#: src/sdiff.c:177
+#: src/sdiff.c:176
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
 msgstr ""
 "-E, --ignore-tab-expansion   ignorér ændringer, der skyldes "
 "tabulatoromsætning"
 
-#: src/sdiff.c:178
+#: src/sdiff.c:177
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
 msgstr ""
 "-Z, --ignore-trailing-space  ignorér blanke tegn ved linjens afslutning"
 
-#: src/sdiff.c:179
+#: src/sdiff.c:178
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
 msgstr ""
 "-b, --ignore-space-change    ignorér ændringer i mængden af blanke tegn"
 
-#: src/sdiff.c:180
+#: src/sdiff.c:179
 msgid "-W, --ignore-all-space       ignore all white space"
 msgstr "-W, --ignore-all-space       ignorér alle blanke tegn"
 
-#: src/sdiff.c:181
+#: src/sdiff.c:180
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
 msgstr ""
 "-B, --ignore-blank-lines     ignorér ændringer med udelukkende blanke linjer"
 
-#: src/sdiff.c:182
+#: src/sdiff.c:181
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=MØNSTER  ignorér ændringer, hvis linjer alle\n"
 "                                       matcher MØNSTER"
 
-#: src/sdiff.c:183
+#: src/sdiff.c:182
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
 msgstr "    --strip-trailing-cr      fjern afsluttende vognretur i inddata"
 
-#: src/sdiff.c:184
+#: src/sdiff.c:183
 msgid "-a, --text                   treat all files as text"
 msgstr "-a, --text                   behandl alle filer som tekst"
 
-#: src/sdiff.c:186
+#: src/sdiff.c:185
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
 msgstr "-w, --width=ANTAL            udskriv højst ANTAL (normalt 130) søjler"
 
-#: src/sdiff.c:187
+#: src/sdiff.c:186
 msgid ""
 "-l, --left-column            output only the left column of common lines"
 msgstr "-l, --left-column            vis kun venstre kolonne af fælles linjer"
 
-#: src/sdiff.c:188
+#: src/sdiff.c:187
 msgid "-s, --suppress-common-lines  do not output common lines"
 msgstr "-s, --suppress-common-lines  vis ingen fælles linjer"
 
-#: src/sdiff.c:190
+#: src/sdiff.c:189
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
 msgstr "-t, --expand-tabs            lav tabulatorer om til mellemrum i output"
 
-#: src/sdiff.c:191
+#: src/sdiff.c:190
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=ANTAL          tabulatorstop for hver ANTAL (normalt 8) "
 "kolonner"
 
-#: src/sdiff.c:193
+#: src/sdiff.c:192
 msgid "-d, --minimal                try hard to find a smaller set of changes"
 msgstr ""
 "-d, --minimal                forsøg ihærdigt at finde et mindre antal "
 "ændringer"
 
-#: src/sdiff.c:194
+#: src/sdiff.c:193
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
 msgstr ""
 "-H, --speed-large-files      antag store filer og mange spredte, små "
 "ændringer"
 
-#: src/sdiff.c:195
+#: src/sdiff.c:194
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
 msgstr "    --diff-program=PROGRAM   brug PROGRAM til at sammenligne filerne"
 
-#: src/sdiff.c:197
+#: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
 msgstr "    --help                   vis denne hjælpetekst og afslut"
 
-#: src/sdiff.c:198
+#: src/sdiff.c:197
 msgid "-v, --version                output version information and exit"
 msgstr "-v, --version                vis versionsoplysninger og afslut"
 
-#: src/sdiff.c:207
+#: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
 msgstr "Brug: %s [TILVALG]... FIL1 FIL2\n"
 
-#: src/sdiff.c:209
+#: src/sdiff.c:208
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
 msgstr "Side om side-fletning af forskelle mellem FIL1 og FIL2."
 
-#: src/sdiff.c:330
+#: src/sdiff.c:328
 msgid "cannot interactively merge standard input"
 msgstr "kan ikke indflette standard input interaktivt"
 
-#: src/sdiff.c:597
+#: src/sdiff.c:594
 msgid "both files to be compared are directories"
 msgstr "begge filer der sammenlignes er kataloger"
 
-#: src/sdiff.c:820
+#: src/sdiff.c:817
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
 "eb:\tEdit then use both versions.\n"
@@ -1489,12 +1490,12 @@ msgstr ""
 "v:\tMedtag og vis fælles linjer.\n"
 "q:\tAfslut.\n"
 
-#: src/util.c:662
+#: src/util.c:755
 #, c-format
 msgid "unrecognized prefix: %s"
 msgstr "ukendt præfiks: %s"
 
-#: src/util.c:692
+#: src/util.c:785
 #, c-format
 msgid "unparsable value for --palette"
 msgstr "værdi for --palette kan ikke fortolkes"
index 879edbb..016d33b 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNU diffutils 3.7.41\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2021-08-01 18:56-0700\n"
+"POT-Creation-Date: 2023-05-21 01:51-0700\n"
 "PO-Revision-Date: 2021-07-22 11:18+0200\n"
 "Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
@@ -23,29 +23,29 @@ msgstr ""
 "X-Generator: Lokalize 21.04.3\n"
 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
 
-#: lib/argmatch.c:132
+#: lib/argmatch.c:145
 #, c-format
 msgid "invalid argument %s for %s"
 msgstr "ungültiges Argument %s für %s"
 
-#: lib/argmatch.c:133
+#: lib/argmatch.c:146
 #, c-format
 msgid "ambiguous argument %s for %s"
 msgstr "Argument %s für %s ist mehrdeutig"
 
-#: lib/argmatch.c:152 lib/argmatch.h:223
+#: lib/argmatch.c:165 lib/argmatch.h:242
 msgid "Valid arguments are:"
 msgstr "Gültige Argumente sind:"
 
-#: lib/c-stack.c:187
+#: lib/c-stack.c:186
 msgid "program error"
 msgstr "Programmfehler"
 
-#: lib/c-stack.c:188
+#: lib/c-stack.c:187
 msgid "stack overflow"
 msgstr "Stacküberlauf"
 
-#: lib/error.c:195
+#: lib/error.c:193
 msgid "Unknown system error"
 msgstr "Unbekannter Systemfehler"
 
@@ -201,83 +201,83 @@ msgstr "%s: Option verlangt ein Argument -- »%c«\n"
 #. If you don't know what to put here, please see
 #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:355
+#: lib/quotearg.c:354
 msgid "`"
 msgstr "»"
 
-#: lib/quotearg.c:356
+#: lib/quotearg.c:355
 msgid "'"
 msgstr "«"
 
-#: lib/regcomp.c:135
+#: lib/regcomp.c:122
 msgid "Success"
 msgstr "Erfolg."
 
-#: lib/regcomp.c:138
+#: lib/regcomp.c:125
 msgid "No match"
 msgstr "Keine Übereinstimmung."
 
-#: lib/regcomp.c:141
+#: lib/regcomp.c:128
 msgid "Invalid regular expression"
 msgstr "Ungültiger regulärer Ausdruck."
 
-#: lib/regcomp.c:144
+#: lib/regcomp.c:131
 msgid "Invalid collation character"
 msgstr "Ungültiges Sortierzeichen."
 
-#: lib/regcomp.c:147
+#: lib/regcomp.c:134
 msgid "Invalid character class name"
 msgstr "Ungültiger Name für Zeichenklasse."
 
-#: lib/regcomp.c:150
+#: lib/regcomp.c:137
 msgid "Trailing backslash"
 msgstr "Extra Backslash am Ende."
 
-#: lib/regcomp.c:153
+#: lib/regcomp.c:140
 msgid "Invalid back reference"
 msgstr "Ungültige Rückreferenz."
 
-#: lib/regcomp.c:156
+#: lib/regcomp.c:143
 msgid "Unmatched [, [^, [:, [., or [="
 msgstr "Öffnende [, [^, [:, [. oder [= ohne schließende."
 
-#: lib/regcomp.c:159
+#: lib/regcomp.c:146
 msgid "Unmatched ( or \\("
 msgstr "Öffnende ( oder \\( ohne schließende."
 
-#: lib/regcomp.c:162
+#: lib/regcomp.c:149
 msgid "Unmatched \\{"
 msgstr "Öffnende \\{ ohne schließende."
 
-#: lib/regcomp.c:165
+#: lib/regcomp.c:152
 msgid "Invalid content of \\{\\}"
 msgstr "Ungültiger Inhalt von \\{\\}."
 
-#: lib/regcomp.c:168
+#: lib/regcomp.c:155
 msgid "Invalid range end"
 msgstr "Ungültiges Bereichsende."
 
-#: lib/regcomp.c:171
+#: lib/regcomp.c:158
 msgid "Memory exhausted"
 msgstr "Speicher verbraucht."
 
-#: lib/regcomp.c:174
+#: lib/regcomp.c:161
 msgid "Invalid preceding regular expression"
 msgstr "Ungültiger vorhergehender regulärer Ausdruck."
 
-#: lib/regcomp.c:177
+#: lib/regcomp.c:164
 msgid "Premature end of regular expression"
 msgstr "Vorzeitiges Ende des regulären Ausdrucks."
 
-#: lib/regcomp.c:180
+#: lib/regcomp.c:167
 msgid "Regular expression too big"
 msgstr "Regulärer Ausdruck ist zu groß."
 
-#: lib/regcomp.c:183
+#: lib/regcomp.c:170
 msgid "Unmatched ) or \\)"
 msgstr "Schließende ) oder \\) ohne öffnende."
 
-#: lib/regcomp.c:676
+#: lib/regcomp.c:650
 msgid "No previous regular expression"
 msgstr "Kein vorhergehender regulärer Ausdruck."
 
@@ -475,17 +475,17 @@ msgstr "Homepage von %s: <%s>.\n"
 msgid "General help using GNU software: <%s>\n"
 msgstr "Allgemeine Hilfe zur Benutzung von GNU-Software: <%s>\n"
 
-#: src/analyze.c:454 src/diff.c:1406
+#: src/analyze.c:455 src/diff.c:1478
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Dateien %s und %s sind verschieden.\n"
 
-#: src/analyze.c:455
+#: src/analyze.c:456
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "Binärdateien %s und %s sind verschieden.\n"
 
-#: src/analyze.c:706 src/diff3.c:1470 src/util.c:1254
+#: src/analyze.c:707 src/diff3.c:1457 src/util.c:1354
 msgid "No newline at end of file"
 msgstr "Kein Zeilenumbruch am Dateiende."
 
@@ -499,41 +499,42 @@ msgstr "Torbjörn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:120 src/diff.c:879 src/diff3.c:467 src/sdiff.c:160
+#: src/cmp.c:124 src/diff.c:939 src/diff3.c:465 src/sdiff.c:159
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr "»%s --help« gibt Ihnen mehr Informationen."
 
-#: src/cmp.c:138
+#: src/cmp.c:142
 #, c-format
 msgid "invalid --ignore-initial value '%s'"
 msgstr "ungültiger --ignore-initial-Wert »%s«."
 
-#: src/cmp.c:148
+#: src/cmp.c:152
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr "Die Optionen -l und -s sind inkompatibel."
 
-#: src/cmp.c:156 src/diff.c:887 src/diff3.c:474 src/sdiff.c:168 src/sdiff.c:316
-#: src/sdiff.c:323 src/sdiff.c:876 src/util.c:852 src/util.c:952 src/util.c:959
+#: src/cmp.c:160 src/diff.c:947 src/diff3.c:472 src/sdiff.c:167 src/sdiff.c:314
+#: src/sdiff.c:321 src/sdiff.c:873 src/util.c:952 src/util.c:1052
+#: src/util.c:1059
 msgid "write failed"
 msgstr "Schreibfehler."
 
-#: src/cmp.c:158 src/diff.c:889 src/diff.c:1471 src/diff3.c:476 src/sdiff.c:170
+#: src/cmp.c:162 src/diff.c:949 src/diff.c:1543 src/diff3.c:474 src/sdiff.c:169
 msgid "standard output"
 msgstr "Standardausgabe"
 
-#: src/cmp.c:162
+#: src/cmp.c:166
 msgid "-b, --print-bytes          print differing bytes"
 msgstr "-b, --print-bytes      Unterschiedliche Bytes ausgeben."
 
-#: src/cmp.c:163
+#: src/cmp.c:167
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
 msgstr ""
 "-i, --ignore-initial=SKIP\n"
 "                         Die ersten SKIP Bytes der Eingabe überspringen."
 
-#: src/cmp.c:164
+#: src/cmp.c:168
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
@@ -542,39 +543,39 @@ msgstr ""
 "                         Die ersten SKIP1 Bytes von DATEI1 und die\n"
 "                         ersten SKIP2 Bytes von DATEI2 überspringen."
 
-#: src/cmp.c:166
+#: src/cmp.c:170
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
 msgstr ""
 "-l, --verbose          Bytenummern und Werte aller unterschiedlichen\n"
 "                         Bytes ausgeben."
 
-#: src/cmp.c:167
+#: src/cmp.c:171
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
 msgstr "-n, --bytes=LIMIT      Höchstens LIMIT Bytes vergleichen."
 
-#: src/cmp.c:168
+#: src/cmp.c:172
 msgid "-s, --quiet, --silent      suppress all normal output"
 msgstr "-s, --quiet, --silent  Alle normalen Ausgaben unterdrücken."
 
-#: src/cmp.c:169
+#: src/cmp.c:173
 msgid "    --help                 display this help and exit"
 msgstr "    --help             Diese Hilfe anzeigen und beenden."
 
-#: src/cmp.c:170
+#: src/cmp.c:174
 msgid "-v, --version              output version information and exit"
 msgstr "-v, -version           Versionsinformation ausgeben und beenden."
 
-#: src/cmp.c:179
+#: src/cmp.c:183
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
 msgstr "Aufruf: %s [OPTION]... DATEI1 [DATEI2 [SKIP1 [SKIP2]]]\n"
 
-#: src/cmp.c:181
+#: src/cmp.c:185
 msgid "Compare two files byte by byte."
 msgstr "Zwei Dateien Byte für Byte vergleichen."
 
-#: src/cmp.c:183
+#: src/cmp.c:187
 msgid ""
 "The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
 "at the beginning of each file (zero by default)."
@@ -582,13 +583,13 @@ msgstr ""
 "Die optionalen Argumente SKIP1 und SKIP2 geben die Zahl der Bytes an,\n"
 "die in jeder Datei übersprungen werden (standardmäßig null)."
 
-#: src/cmp.c:186 src/diff.c:999 src/diff3.c:514 src/sdiff.c:211
+#: src/cmp.c:190 src/diff.c:1059 src/diff3.c:512 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
 "Nötige Argumente für lange Optionen sind auch für kurze Optionen nötig.\n"
 
-#: src/cmp.c:192
+#: src/cmp.c:196
 msgid ""
 "SKIP values may be followed by the following multiplicative suffixes:\n"
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
@@ -598,170 +599,170 @@ msgstr ""
 "kB 1000, K 1024, MB 1.000.000, M 1.048.576,\n"
 "GB 1.000.000.000, G 1.073.741.824, und so weiter für T, P, E, Z, Y."
 
-#: src/cmp.c:195
+#: src/cmp.c:199
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "Wenn DATEI »-« ist oder fehlt, wird von der Standardeingabe gelesen."
 
-#: src/cmp.c:196 src/diff.c:987 src/sdiff.c:221
+#: src/cmp.c:200 src/diff.c:1047 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr ""
 "Der Rückgabewert des Programms ist 0, falls die Eingaben identisch\n"
 "sind, 1 falls sie verschieden sind und 2, falls es Probleme gab."
 
-#: src/cmp.c:243
+#: src/cmp.c:247
 #, c-format
 msgid "invalid --bytes value '%s'"
 msgstr "ungültiger --bytes-Wert »%s«"
 
-#: src/cmp.c:269 src/diff.c:797 src/diff3.c:361 src/sdiff.c:567
+#: src/cmp.c:273 src/diff.c:857 src/diff3.c:368 src/sdiff.c:564
 #, c-format
 msgid "missing operand after '%s'"
 msgstr "fehlender Operand nach »%s«"
 
-#: src/cmp.c:281 src/diff.c:799 src/diff3.c:363 src/sdiff.c:569
+#: src/cmp.c:285 src/diff.c:859 src/diff3.c:370 src/sdiff.c:566
 #, c-format
 msgid "extra operand '%s'"
 msgstr "extra Operand »%s«."
 
-#: src/cmp.c:507
+#: src/cmp.c:521
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s sind verschieden: Byte %s, Zeile %s\n"
 
-#: src/cmp.c:523
+#: src/cmp.c:537
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
 msgstr "%s %s sind verschieden: Zeichen %s, Zeile %s ist %3o %s %3o %s\n"
 
-#: src/cmp.c:580
+#: src/cmp.c:594
 #, c-format
 msgid "cmp: EOF on %s which is empty\n"
 msgstr "cmp: Dateiende in %s, welche leer ist.\n"
 
-#: src/cmp.c:594
+#: src/cmp.c:608
 #, c-format
 msgid "cmp: EOF on %s after byte %s, line %s\n"
 msgstr "cmp: Dateiende in %s nach Byte %s, Zeile %s\n"
 
-#: src/cmp.c:595
+#: src/cmp.c:609
 #, c-format
 msgid "cmp: EOF on %s after byte %s, in line %s\n"
 msgstr "cmp: Dateiende in %s nach Byte %s, Zeile %s\n"
 
-#: src/cmp.c:601
+#: src/cmp.c:615
 #, c-format
 msgid "cmp: EOF on %s after byte %s\n"
 msgstr "cmp: Dateiende in %s nach Byte %s\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:51
+#: src/diff.c:50
 msgid "Paul Eggert"
 msgstr "Paul Eggert"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:52
+#: src/diff.c:51
 msgid "Mike Haertel"
 msgstr "Mike Haertel"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:53
+#: src/diff.c:52
 msgid "David Hayes"
 msgstr "David Hayes"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:54
+#: src/diff.c:53
 msgid "Richard Stallman"
 msgstr "Richard Stallman"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:55
+#: src/diff.c:54
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:355
+#: src/diff.c:365
 #, c-format
 msgid "invalid context length '%s'"
 msgstr "ungültige Kontextlänge »%s«."
 
-#: src/diff.c:438
+#: src/diff.c:487
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "Seitenumbruch wird auf diesem System nicht unterstützt."
 
-#: src/diff.c:453 src/diff3.c:341
+#: src/diff.c:502 src/diff3.c:348
 #, c-format
 msgid "too many file label options"
 msgstr "Zu viele Datei-Label-Optionen wurden angegeben."
 
-#: src/diff.c:530
+#: src/diff.c:579
 #, c-format
 msgid "invalid width '%s'"
 msgstr "ungültige Breite »%s«."
 
-#: src/diff.c:534
+#: src/diff.c:583
 msgid "conflicting width options"
 msgstr "widersprüchliche Breitenoptionen"
 
-#: src/diff.c:559
+#: src/diff.c:608
 #, c-format
 msgid "invalid horizon length '%s'"
 msgstr "ungültige Horizontlänge »%s«."
 
-#: src/diff.c:615
+#: src/diff.c:664
 #, c-format
 msgid "invalid tabsize '%s'"
 msgstr "ungültige Tabulatorbreite »%s«."
 
-#: src/diff.c:619
+#: src/diff.c:668
 msgid "conflicting tabsize options"
 msgstr "widersprüchliche Tabulatorbreitenoptionen."
 
-#: src/diff.c:774
+#: src/diff.c:834
 msgid "--from-file and --to-file both specified"
 msgstr "--from-file und --to-file sind beide angegeben."
 
-#: src/diff.c:893
+#: src/diff.c:953
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "    --normal                    Ein normales Diff ausgeben (Vorgabe)."
 
-#: src/diff.c:894
+#: src/diff.c:954
 msgid "-q, --brief                   report only when files differ"
 msgstr ""
 "-q, --brief                     Nur ausgeben, ob die Dateien verschieden "
 "sind."
 
-#: src/diff.c:895
+#: src/diff.c:955
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr ""
 "-s, --report-identical-files    Zurückgeben, ob zwei Dateien gleich sind."
 
-#: src/diff.c:896
+#: src/diff.c:956
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
 "-c, -C ZAHL, --context[=ZAHL]   ZAHL Zeilen des kopierten Kontexts ausgeben\n"
 "                                  (Vorgabe: 3)."
 
-#: src/diff.c:897
+#: src/diff.c:957
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
 "-u, -U ZAHL, --unified[=ZAHL]   ZAHL Zeilen des vereinheitlichten Kontexts\n"
 "                                  ausgeben (Vorgabe: 3)."
 
-#: src/diff.c:898
+#: src/diff.c:958
 msgid "-e, --ed                      output an ed script"
 msgstr "-e, --ed                        Ein ed-Skript ausgeben."
 
-#: src/diff.c:899
+#: src/diff.c:959
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n, --rcs                       Im RCS-Format ausgeben."
 
-#: src/diff.c:900
+#: src/diff.c:960
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side              In zwei Spalten ausgeben."
 
-#: src/diff.c:901
+#: src/diff.c:961
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
@@ -769,31 +770,31 @@ msgstr ""
 "ausgeben\n"
 "                                  (Vorgabe: 130)."
 
-#: src/diff.c:902
+#: src/diff.c:962
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr ""
 "    --left-column               Nur linke Spalte der gemeinsamen Zeilen\n"
 "                                  ausgeben."
 
-#: src/diff.c:903
+#: src/diff.c:963
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "    --suppress-common-lines     Keine gemeinsamen Zeilen ausgeben."
 
-#: src/diff.c:905
+#: src/diff.c:965
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr ""
 "-p, --show-c-function           Für jede Änderung zeigen, in welcher\n"
 "                                  C-Funktion sie ist."
 
-#: src/diff.c:906
+#: src/diff.c:966
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr ""
 "-F, --show-function-line=RE     Die vorangehende Zeile zeigen, die dem "
 "Muster\n"
 "                                  RE entspricht."
 
-#: src/diff.c:907
+#: src/diff.c:967
 msgid ""
 "    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
@@ -802,89 +803,89 @@ msgstr ""
 "Zeitstempels\n"
 "                                  benutzen (kann wiederholt werden)."
 
-#: src/diff.c:910
+#: src/diff.c:970
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr ""
 "-t, -expand-tabs                Tabulatoren in der Ausgabe zu Leerzeichen\n"
 "                                  ausdehnen."
 
-#: src/diff.c:911
+#: src/diff.c:971
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr ""
 "-T, --initial-tab               Einrückungen durch vorangestellte "
 "Tabulatoren\n"
 "                                  erzeugen."
 
-#: src/diff.c:912
+#: src/diff.c:972
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=ZAHL              Tabulatorstopps sind alle ZAHL Spalten\n"
 "                                  (Vorgabe: 8)."
 
-#: src/diff.c:913
+#: src/diff.c:973
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
 "    --suppress-blank-empty      Leerzeichen oder Tabulator vor leeren\n"
 "                                  Ausgabezeilen verhindern."
 
-#: src/diff.c:914
+#: src/diff.c:974
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr ""
 "-l, --paginate                  Ausgabe an »pr« zum Seitenumbruch übergeben."
 
-#: src/diff.c:916
+#: src/diff.c:976
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr ""
 "-r, --recursive                 Rekursiv alle Unterverzeichnisse vergleichen."
 
-#: src/diff.c:917
+#: src/diff.c:977
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr ""
 "    --no-dereference            Symbolischen Verknüpfungen nicht folgen."
 
-#: src/diff.c:918
+#: src/diff.c:978
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr "-N, --new-file                  Fehlende Dateien als leer betrachten."
 
-#: src/diff.c:919
+#: src/diff.c:979
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
 "    --unidirectional-new-file   Fehlende erste Dateien als leer betrachten."
 
-#: src/diff.c:920
+#: src/diff.c:980
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ""
 "    --ignore-file-name-case     Unterschiede der Groß-/Kleinschreibung von\n"
 "                                  Dateinamen ignorieren."
 
-#: src/diff.c:921
+#: src/diff.c:981
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
 "    --no-ignore-file-name-case  Unterschiede der Groß-/Kleinschreibung von\n"
 "                                  Dateinamen beachten."
 
-#: src/diff.c:922
+#: src/diff.c:982
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr ""
 "-x, --exclude=MUSTER            Dateien ausschließen, die auf MUSTER passen."
 
-#: src/diff.c:923
+#: src/diff.c:983
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
 "-X, --exclude-from=DATEI        Dateien ausschließen, die auf eines der\n"
 "                                  Muster in DATEI passen."
 
-#: src/diff.c:924
+#: src/diff.c:984
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
 "-S, --starting-file=DATEI       Beim Verzeichnisvergleich mit DATEI beginnen."
 
-#: src/diff.c:925
+#: src/diff.c:985
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
@@ -892,7 +893,7 @@ msgstr ""
 "    --from-file=DATEI1          DATEI1 mit allen Operanden vergleichen.\n"
 "                                  DATEI1 kann ein Verzeichnis sein."
 
-#: src/diff.c:927
+#: src/diff.c:987
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
@@ -900,33 +901,33 @@ msgstr ""
 "    --to-file=DATEI2            Alle Operanden mit DATEI2 vergleichen.\n"
 "                                  DATEI2 kann ein Verzeichnis sein."
 
-#: src/diff.c:930
+#: src/diff.c:990
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr ""
 "-i, --ignore-case               Unterschiede der Groß-/Kleinschreibung\n"
 "                                  im Dateiinhalt ignorieren."
 
-#: src/diff.c:931
+#: src/diff.c:991
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr ""
 "-E, --ignore-tab-expansion      Änderungen aufgrund von Tabausdehnungen\n"
 "                                  ignorieren."
 
-#: src/diff.c:932
+#: src/diff.c:992
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr "-Z, --ignore-trailing-space     Leerraum am Zeilenende ignorieren."
 
-#: src/diff.c:933
+#: src/diff.c:993
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr "-b, --ignore-space-change       Änderungen im Leerraum ignorieren."
 
-#: src/diff.c:934
+#: src/diff.c:994
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w, --ignore-all-space          Leerraum ignorieren."
 
-#: src/diff.c:935
+#: src/diff.c:995
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr ""
@@ -934,49 +935,49 @@ msgstr ""
 "Zeilen\n"
 "                                  leer sind."
 
-#: src/diff.c:936
+#: src/diff.c:996
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=RE  Änderungen ignorieren, bei denen alle "
 "Zeilen\n"
 "                                  auf das Muster RE passen."
 
-#: src/diff.c:938
+#: src/diff.c:998
 msgid "-a, --text                      treat all files as text"
 msgstr "-a, --text                      Alle Dateien als Text behandeln."
 
-#: src/diff.c:939
+#: src/diff.c:999
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr         Wagenrücklauf (CR) am Zeilenende beim\n"
 "                                  Einlesen entfernen."
 
-#: src/diff.c:941
+#: src/diff.c:1001
 msgid "    --binary                    read and write data in binary mode"
 msgstr ""
 "    --binary                    Daten im Binärmodus lesen und schreiben."
 
-#: src/diff.c:944
+#: src/diff.c:1004
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
 "-D, --ifdef=NAME                Zusammengefügte Datei mit »#ifdef NAME« in\n"
 "                                  die Ausgabe mischen."
 
-#: src/diff.c:945
+#: src/diff.c:1005
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr "    --GTYPE-group-format=GFMT   GTYPE-Eingabe mit GFMT formatieren."
 
-#: src/diff.c:946
+#: src/diff.c:1006
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr ""
 "    --line-format=LFMT          Alle Eingabe-Zeilen mit LFMT formatieren."
 
-#: src/diff.c:947
+#: src/diff.c:1007
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr "    --LTYPE-line-format=LFMT    LTYPE-Eingabe mit LFMT formatieren."
 
-#: src/diff.c:948
+#: src/diff.c:1008
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
@@ -984,13 +985,13 @@ msgstr ""
 "  Diese Formatoptionen stellen haargenaue Kontrolle über die Eingabe\n"
 "  von diff bereit, indem -D/--ifdef verallgemeinert wird."
 
-#: src/diff.c:950
+#: src/diff.c:1010
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
 "  LTYPE kann »old«, »new« oder »unchanged« sein.\n"
 "  GTYPE ist LTYPE oder »changed«."
 
-#: src/diff.c:951
+#: src/diff.c:1011
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -1020,7 +1021,7 @@ msgstr ""
 "        M  L+1.\n"
 "    %(A=B?T:E)  Falls A gleich B, dann T, sonst E."
 
-#: src/diff.c:963
+#: src/diff.c:1023
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -1032,7 +1033,7 @@ msgstr ""
 "    %l  Inhalt der Zeile, ohne Zeilenumbruch am Ende.\n"
 "    %[-][BREITE][.[PRÄZ]]{doxX}n  Zeilennummer im printf-Stil."
 
-#: src/diff.c:967
+#: src/diff.c:1027
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1046,27 +1047,27 @@ msgstr ""
 "    %c'\\OOO'  das Zeichen mit dem Oktalcode OOO\n"
 "    C    Das Zeichen C (andere Zeichen stellen sich selbst dar)"
 
-#: src/diff.c:973
+#: src/diff.c:1033
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr ""
 "-d, --minimal             Intensiv nach einer kleineren Menge von "
 "Änderungen\n"
 "                            suchen."
 
-#: src/diff.c:974
+#: src/diff.c:1034
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr ""
 "    --horizon-lines=ZAHL  ZAHL Zeilen mit gemeinsamem Präfix und Suffix\n"
 "                            behalten."
 
-#: src/diff.c:975
+#: src/diff.c:1035
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
 "    --speed-large-files   Es werden große Dateien mit vielen verstreuten,\n"
 "                            kleinen Änderungen vermutet."
 
-#: src/diff.c:976
+#: src/diff.c:1036
 msgid ""
 "    --color[=WHEN]       color output; WHEN is 'never', 'always', or "
 "'auto';\n"
@@ -1078,7 +1079,7 @@ msgstr ""
 "ohne\n"
 "                            weitere Angaben bedeutet »--color='auto'«"
 
-#: src/diff.c:978
+#: src/diff.c:1038
 msgid ""
 "    --palette=PALETTE    the colors to use when --color is active; PALETTE "
 "is\n"
@@ -1089,113 +1090,113 @@ msgstr ""
 "                           PALETTE ist eine durch Doppelpunkte getrennte\n"
 "                           Liste aus terminfo-Capabilities."
 
-#: src/diff.c:981
+#: src/diff.c:1041
 msgid "    --help               display this help and exit"
 msgstr "    --help                Diese Hilfe anzeigen und beenden."
 
-#: src/diff.c:982
+#: src/diff.c:1042
 msgid "-v, --version            output version information and exit"
 msgstr "-v, -version              Versionsinformation ausgeben und beenden."
 
-#: src/diff.c:984
+#: src/diff.c:1044
 msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
 "DATEIEN sind »DATEI1 DATEI2« oder »VERZ1 VERZ2« oder »VERZ DATEI«\n"
 "  oder »DATEI VERZ«."
 
-#: src/diff.c:985
+#: src/diff.c:1045
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr ""
 "Wenn --from-file oder --to-file angegeben werden, gibt es keine\n"
 "  Einschränkungen für DATEI(EN)."
 
-#: src/diff.c:986 src/diff3.c:533 src/sdiff.c:220
+#: src/diff.c:1046 src/diff3.c:531 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
 msgstr "Wenn DATEI »-« ist, von der Standardeingabe lesen."
 
-#: src/diff.c:996
+#: src/diff.c:1056
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Aufruf: %s [OPTION]... DATEIEN\n"
 
-#: src/diff.c:997
+#: src/diff.c:1057
 msgid "Compare FILES line by line."
 msgstr "DATEIEN Zeile für Zeile vergleichen."
 
-#: src/diff.c:1034
+#: src/diff.c:1094
 #, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "Widersprüchlicher %s-Optionswert »%s«."
 
-#: src/diff.c:1047
+#: src/diff.c:1107
 #, c-format
 msgid "conflicting output style options"
 msgstr "Widersprüchliche Optionen für den Ausgabestil."
 
-#: src/diff.c:1063
+#: src/diff.c:1123
 #, c-format
 msgid "invalid color '%s'"
 msgstr "Ungültige Farbe »%s«."
 
-#: src/diff.c:1119 src/diff.c:1329
+#: src/diff.c:1197 src/diff.c:1401
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Nur in %s: %s.\n"
 
-#: src/diff.c:1253
+#: src/diff.c:1325
 msgid "cannot compare '-' to a directory"
 msgstr "»-« kann nicht mit Verzeichnis verglichen werden."
 
-#: src/diff.c:1288
+#: src/diff.c:1360
 msgid "-D option not supported with directories"
 msgstr "Option -D nicht unterstützt bei Verzeichnissen"
 
-#: src/diff.c:1297
+#: src/diff.c:1369
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Gemeinsame Unterverzeichnisse: %s und %s.\n"
 
-#: src/diff.c:1339 src/diff.c:1389
+#: src/diff.c:1411 src/diff.c:1461
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr "Datei %s ist ein %s, während Datei %s ein %s ist.\n"
 
-#: src/diff.c:1375
+#: src/diff.c:1447
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "Symbolische Verknüpfungen %s und %s sind verschieden.\n"
 
-#: src/diff.c:1462
+#: src/diff.c:1534
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Dateien %s und %s sind identisch.\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff3.c:43
+#: src/diff3.c:51
 msgid "Randy Smith"
 msgstr "Randy Smith"
 
-#: src/diff3.c:356
+#: src/diff3.c:363
 #, c-format
 msgid "incompatible options"
 msgstr "Inkompatible Optionen."
 
-#: src/diff3.c:396
+#: src/diff3.c:403
 msgid "'-' specified for more than one input file"
 msgstr "»-« für mehr als eine Eingabedatei angegeben."
 
-#: src/diff3.c:447 src/diff3.c:1295 src/diff3.c:1698 src/diff3.c:1753
-#: src/sdiff.c:308 src/sdiff.c:846 src/sdiff.c:857
+#: src/diff3.c:445 src/diff3.c:1284 src/diff3.c:1683 src/diff3.c:1738
+#: src/sdiff.c:306 src/sdiff.c:843 src/sdiff.c:854
 msgid "read failed"
 msgstr "Lesefehler."
 
-#: src/diff3.c:480
+#: src/diff3.c:478
 msgid "-A, --show-all              output all changes, bracketing conflicts"
 msgstr ""
 "-A, --show-all               Alle Änderungen ausgeben, Konflikte in Klammern."
 
-#: src/diff3.c:482
+#: src/diff3.c:480
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
@@ -1204,11 +1205,11 @@ msgstr ""
 "                                 von ALTEDATEI hin zu DEINEDATEI in\n"
 "                                 MEINEDATEI integriert."
 
-#: src/diff3.c:484
+#: src/diff3.c:482
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
 msgstr "-E  --show-overlap           Wie -e, aber Konflikte in Klammern."
 
-#: src/diff3.c:485
+#: src/diff3.c:483
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
@@ -1216,23 +1217,23 @@ msgstr ""
 "-3, --easy-only              Wie -e, aber nur nichtüberlappende Änderungen\n"
 "                                 integrieren."
 
-#: src/diff3.c:486
+#: src/diff3.c:484
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
 msgstr ""
 "-x, --overlap-only           Wie -e, aber nur überlappende Änderungen\n"
 "                               integrieren."
 
-#: src/diff3.c:487
+#: src/diff3.c:485
 msgid "-X                          like -x, but bracket conflicts"
 msgstr "-X                           Wie -x, aber Konflikte in Klammern."
 
-#: src/diff3.c:488
+#: src/diff3.c:486
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
 msgstr ""
 "-i                           An ed-Skripte »w«- und »q«-Befehle anhängen."
 
-#: src/diff3.c:490
+#: src/diff3.c:488
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
@@ -1241,28 +1242,28 @@ msgstr ""
 "                                 falls keine anderen Optionen übergeben "
 "wurden."
 
-#: src/diff3.c:493
+#: src/diff3.c:491
 msgid "-a, --text                  treat all files as text"
 msgstr "-a, --text                   Alle Dateien als Text behandeln."
 
-#: src/diff3.c:494
+#: src/diff3.c:492
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr      Wagenrücklauf (CR) am Zeilenende beim Einlesen\n"
 "                                 entfernen."
 
-#: src/diff3.c:495
+#: src/diff3.c:493
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
 msgstr ""
 "-T, --initial-tab            Einrückungen durch vorangestellte Tabulatoren\n"
 "                                 erzeugen."
 
-#: src/diff3.c:496
+#: src/diff3.c:494
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
 msgstr ""
 "    --diff-program=PROGRAMM  PROGRAMM zum Vergleichen von Dateien verwenden."
 
-#: src/diff3.c:497
+#: src/diff3.c:495
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
@@ -1270,24 +1271,24 @@ msgstr ""
 "-L, --label=LABEL            LABEL statt des Dateinamens benutzen\n"
 "                                 (kann bis zu dreimal wiederholt werden)"
 
-#: src/diff3.c:500
+#: src/diff3.c:498
 msgid "    --help                  display this help and exit"
 msgstr "    --help                   Diese Hilfe anzeigen und beenden."
 
-#: src/diff3.c:501
+#: src/diff3.c:499
 msgid "-v, --version               output version information and exit"
 msgstr "-v, --version                Versionsinformation ausgeben und beenden."
 
-#: src/diff3.c:510
+#: src/diff3.c:508
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
 msgstr "Aufruf: %s [OPTION]... MEINEDATEI ALTEDATEI DEINEDATEI\n"
 
-#: src/diff3.c:512
+#: src/diff3.c:510
 msgid "Compare three files line by line."
 msgstr "Drei Dateien Zeile für Zeile vergleichen."
 
-#: src/diff3.c:522
+#: src/diff3.c:520
 msgid ""
 "\n"
 "The default output format is a somewhat human-readable representation of\n"
@@ -1311,56 +1312,56 @@ msgstr ""
 "intern zusammenführt und die eigentliche, zusammengeführte Datei ausgegeben\n"
 "wird. Für ungewöhnliche Eingaben ist dies robuster, als ed zu benutzen.\n"
 
-#: src/diff3.c:534
+#: src/diff3.c:532
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
 msgstr ""
 "Der Rückgabewert des Programms ist 0, falls es erfolgreich ist, 1 falls\n"
 "es Konflikte gibt und 2 falls Probleme auftreten."
 
-#: src/diff3.c:727
+#: src/diff3.c:725
 msgid "internal error: screwup in format of diff blocks"
 msgstr "Interner Fehler: Format für diff-Blöcke ist durcheinander."
 
-#: src/diff3.c:1022
+#: src/diff3.c:1015
 #, c-format
 msgid "%s: diff failed: "
 msgstr "%s: »diff« ist gescheitert: "
 
-#: src/diff3.c:1044
+#: src/diff3.c:1037
 msgid "internal error: invalid diff type in process_diff"
 msgstr "Interner Fehler: Ungültiger diff-Typ in process_diff."
 
-#: src/diff3.c:1069
+#: src/diff3.c:1060
 msgid "invalid diff format; invalid change separator"
 msgstr "Ungültiges Diff-Format; ungültiger Änderungstrenner."
 
-#: src/diff3.c:1305
+#: src/diff3.c:1294
 msgid "invalid diff format; incomplete last line"
 msgstr "Ungültiges Diff-Format; unvollständige letzte Zeile."
 
-#: src/diff3.c:1329 src/sdiff.c:276 src/util.c:969
+#: src/diff3.c:1318 src/sdiff.c:274 src/util.c:1069
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "Unterprogramm »%s« konnte nicht aufgerufen werden."
 
-#: src/diff3.c:1354
+#: src/diff3.c:1343
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "Ungültiges Diff-Format; inkorrektes führendes Zeichen in Zeile."
 
-#: src/diff3.c:1427
+#: src/diff3.c:1416
 msgid "internal error: invalid diff type passed to output"
 msgstr "Interner Fehler: Ungültiger diff-Typ an Ausgabe übergeben."
 
-#: src/diff3.c:1700 src/diff3.c:1757
+#: src/diff3.c:1685 src/diff3.c:1742
 msgid "input file shrank"
 msgstr "Eingabedatei ist überraschend geschrumpft."
 
-#: src/dir.c:156
+#: src/dir.c:154
 #, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "Die Dateinamen »%s« und »%s« können nicht verglichen werden."
 
-#: src/dir.c:225
+#: src/dir.c:223
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: Rekursive Verzeichnisschleife"
@@ -1370,101 +1371,101 @@ msgstr "%s: Rekursive Verzeichnisschleife"
 msgid "Thomas Lord"
 msgstr "Thomas Lord"
 
-#: src/sdiff.c:174
+#: src/sdiff.c:173
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
 msgstr ""
 "-o, --output=DATEI           Interaktiv arbeiten, Ausgabe in DATEI speichern."
 
-#: src/sdiff.c:176
+#: src/sdiff.c:175
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
 msgstr ""
 "-i, --ignore-case            Nicht zwischen Groß- und Kleinschreibung "
 "unterscheiden."
 
-#: src/sdiff.c:177
+#: src/sdiff.c:176
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
 msgstr ""
 "-E, --ignore-tab-expansion   Änderungen aufgrund von Tabausdehnungen "
 "ignorieren."
 
-#: src/sdiff.c:178
+#: src/sdiff.c:177
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
 msgstr "-Z, --ignore-trailing-space  Leerraum am Zeilenende ignorieren."
 
-#: src/sdiff.c:179
+#: src/sdiff.c:178
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
 msgstr ""
 "-b, --ignore-space-change    Änderungen an der Größe des Leerraums "
 "ignorieren."
 
-#: src/sdiff.c:180
+#: src/sdiff.c:179
 msgid "-W, --ignore-all-space       ignore all white space"
 msgstr "-W, --ignore-all-space       Leerraum ignorieren."
 
-#: src/sdiff.c:181
+#: src/sdiff.c:180
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
 msgstr ""
 "-B, --ignore-blank-lines     Änderungen ignorieren, bei denen alle Zeilen "
 "leer sind."
 
-#: src/sdiff.c:182
+#: src/sdiff.c:181
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=RE  Änderungen ignorieren, bei denen alle "
 "Zeilen\n"
 "                                  auf das Muster RE passen."
 
-#: src/sdiff.c:183
+#: src/sdiff.c:182
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr      Wagenrücklauf (CR) am Zeilenende beim Einlesen "
 "entfernen."
 
-#: src/sdiff.c:184
+#: src/sdiff.c:183
 msgid "-a, --text                   treat all files as text"
 msgstr "-a, --text                   Alle Dateien als Text betrachten."
 
-#: src/sdiff.c:186
+#: src/sdiff.c:185
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
 msgstr ""
 "-w, --width=ZAHL             Maximale ZAHL Druckspalten pro Zeile (Vorgabe: "
 "130)."
 
-#: src/sdiff.c:187
+#: src/sdiff.c:186
 msgid ""
 "-l, --left-column            output only the left column of common lines"
 msgstr ""
 "-l, --left-column            Nur linke Spalte der gemeinsamen Zeilen "
 "ausgeben."
 
-#: src/sdiff.c:188
+#: src/sdiff.c:187
 msgid "-s, --suppress-common-lines  do not output common lines"
 msgstr "-s,  --suppress-common-lines  Keine gemeinsamen Zeilen ausgeben."
 
-#: src/sdiff.c:190
+#: src/sdiff.c:189
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
 msgstr ""
 "-t, --expand-tabs            Tabulatoren in der Ausgabe zu Leerzeichen "
 "ausdehnen."
 
-#: src/sdiff.c:191
+#: src/sdiff.c:190
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=ZAHL           Tabulatorstopps sind alle ZAHL Spalten "
 "(Vorgabe: 8)."
 
-#: src/sdiff.c:193
+#: src/sdiff.c:192
 msgid "-d, --minimal                try hard to find a smaller set of changes"
 msgstr ""
 "-d, --minimal                Intensiv nach einer kleineren Menge von "
 "Änderungen suchen."
 
-#: src/sdiff.c:194
+#: src/sdiff.c:193
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
 msgstr ""
@@ -1472,39 +1473,39 @@ msgstr ""
 "verstreuten,\n"
 "                               kleinen Änderungen vermutet."
 
-#: src/sdiff.c:195
+#: src/sdiff.c:194
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
 msgstr ""
 "    --diff-program=PROGRAMM  PROGRAMM zum Vergleichen von Dateien verwenden."
 
-#: src/sdiff.c:197
+#: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
 msgstr "    --help                   Diese Hilfe anzeigen und beenden."
 
-#: src/sdiff.c:198
+#: src/sdiff.c:197
 msgid "-v, --version                output version information and exit"
 msgstr "-v, -version                 Versionsinformation ausgeben und beenden."
 
-#: src/sdiff.c:207
+#: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
 msgstr "Aufruf: %s [OPTION]... DATEI1 DATEI2\n"
 
-#: src/sdiff.c:209
+#: src/sdiff.c:208
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
 msgstr ""
 "Nebeneinanderstehendes Zusammenbringen der Unterschiede zwischen\n"
 "DATEI1 und DATEI2."
 
-#: src/sdiff.c:330
+#: src/sdiff.c:328
 msgid "cannot interactively merge standard input"
 msgstr "Die Standardeingabe kann nicht interaktiv zusammengebracht werden."
 
-#: src/sdiff.c:597
+#: src/sdiff.c:594
 msgid "both files to be compared are directories"
 msgstr "Beide zu vergleichende Dateien sind Verzeichnisse."
 
-#: src/sdiff.c:820
+#: src/sdiff.c:817
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
 "eb:\tEdit then use both versions.\n"
@@ -1529,12 +1530,12 @@ msgstr ""
 "v:\tAusführlich gemeinsame Zeilen übernehmen.\n"
 "q:\tBeenden.\n"
 
-#: src/util.c:662
+#: src/util.c:755
 #, c-format
 msgid "unrecognized prefix: %s"
 msgstr "Unbekanntes Präfix: %s"
 
-#: src/util.c:692
+#: src/util.c:785
 #, c-format
 msgid "unparsable value for --palette"
 msgstr "Wert für --palette ist nicht auswertbar"
index 6d4a7f2..1e3831e 100644 (file)
@@ -6,9 +6,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: GNU diffutils 3.8\n"
+"Project-Id-Version: GNU diffutils 3.10\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2021-08-01 18:56-0700\n"
+"POT-Creation-Date: 2023-05-21 01:51-0700\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,29 +17,29 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: lib/argmatch.c:132
+#: lib/argmatch.c:145
 #, c-format
 msgid "invalid argument %s for %s"
 msgstr ""
 
-#: lib/argmatch.c:133
+#: lib/argmatch.c:146
 #, c-format
 msgid "ambiguous argument %s for %s"
 msgstr ""
 
-#: lib/argmatch.c:152 lib/argmatch.h:223
+#: lib/argmatch.c:165 lib/argmatch.h:242
 msgid "Valid arguments are:"
 msgstr ""
 
-#: lib/c-stack.c:187
+#: lib/c-stack.c:186
 msgid "program error"
 msgstr ""
 
-#: lib/c-stack.c:188
+#: lib/c-stack.c:187
 msgid "stack overflow"
 msgstr ""
 
-#: lib/error.c:195
+#: lib/error.c:193
 msgid "Unknown system error"
 msgstr ""
 
@@ -195,83 +195,83 @@ msgstr ""
 #. If you don't know what to put here, please see
 #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:355
+#: lib/quotearg.c:354
 msgid "`"
 msgstr ""
 
-#: lib/quotearg.c:356
+#: lib/quotearg.c:355
 msgid "'"
 msgstr ""
 
-#: lib/regcomp.c:135
+#: lib/regcomp.c:122
 msgid "Success"
 msgstr ""
 
-#: lib/regcomp.c:138
+#: lib/regcomp.c:125
 msgid "No match"
 msgstr ""
 
-#: lib/regcomp.c:141
+#: lib/regcomp.c:128
 msgid "Invalid regular expression"
 msgstr ""
 
-#: lib/regcomp.c:144
+#: lib/regcomp.c:131
 msgid "Invalid collation character"
 msgstr ""
 
-#: lib/regcomp.c:147
+#: lib/regcomp.c:134
 msgid "Invalid character class name"
 msgstr ""
 
-#: lib/regcomp.c:150
+#: lib/regcomp.c:137
 msgid "Trailing backslash"
 msgstr ""
 
-#: lib/regcomp.c:153
+#: lib/regcomp.c:140
 msgid "Invalid back reference"
 msgstr ""
 
-#: lib/regcomp.c:156
+#: lib/regcomp.c:143
 msgid "Unmatched [, [^, [:, [., or [="
 msgstr ""
 
-#: lib/regcomp.c:159
+#: lib/regcomp.c:146
 msgid "Unmatched ( or \\("
 msgstr ""
 
-#: lib/regcomp.c:162
+#: lib/regcomp.c:149
 msgid "Unmatched \\{"
 msgstr ""
 
-#: lib/regcomp.c:165
+#: lib/regcomp.c:152
 msgid "Invalid content of \\{\\}"
 msgstr ""
 
-#: lib/regcomp.c:168
+#: lib/regcomp.c:155
 msgid "Invalid range end"
 msgstr ""
 
-#: lib/regcomp.c:171
+#: lib/regcomp.c:158
 msgid "Memory exhausted"
 msgstr ""
 
-#: lib/regcomp.c:174
+#: lib/regcomp.c:161
 msgid "Invalid preceding regular expression"
 msgstr ""
 
-#: lib/regcomp.c:177
+#: lib/regcomp.c:164
 msgid "Premature end of regular expression"
 msgstr ""
 
-#: lib/regcomp.c:180
+#: lib/regcomp.c:167
 msgid "Regular expression too big"
 msgstr ""
 
-#: lib/regcomp.c:183
+#: lib/regcomp.c:170
 msgid "Unmatched ) or \\)"
 msgstr ""
 
-#: lib/regcomp.c:676
+#: lib/regcomp.c:650
 msgid "No previous regular expression"
 msgstr ""
 
@@ -446,17 +446,17 @@ msgstr ""
 msgid "General help using GNU software: <%s>\n"
 msgstr ""
 
-#: src/analyze.c:454 src/diff.c:1406
+#: src/analyze.c:455 src/diff.c:1478
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr ""
 
-#: src/analyze.c:455
+#: src/analyze.c:456
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr ""
 
-#: src/analyze.c:706 src/diff3.c:1470 src/util.c:1254
+#: src/analyze.c:707 src/diff3.c:1457 src/util.c:1354
 msgid "No newline at end of file"
 msgstr ""
 
@@ -470,418 +470,419 @@ msgstr ""
 msgid "David MacKenzie"
 msgstr ""
 
-#: src/cmp.c:120 src/diff.c:879 src/diff3.c:467 src/sdiff.c:160
+#: src/cmp.c:124 src/diff.c:939 src/diff3.c:465 src/sdiff.c:159
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr ""
 
-#: src/cmp.c:138
+#: src/cmp.c:142
 #, c-format
 msgid "invalid --ignore-initial value '%s'"
 msgstr ""
 
-#: src/cmp.c:148
+#: src/cmp.c:152
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr ""
 
-#: src/cmp.c:156 src/diff.c:887 src/diff3.c:474 src/sdiff.c:168 src/sdiff.c:316
-#: src/sdiff.c:323 src/sdiff.c:876 src/util.c:852 src/util.c:952 src/util.c:959
+#: src/cmp.c:160 src/diff.c:947 src/diff3.c:472 src/sdiff.c:167 src/sdiff.c:314
+#: src/sdiff.c:321 src/sdiff.c:873 src/util.c:952 src/util.c:1052
+#: src/util.c:1059
 msgid "write failed"
 msgstr ""
 
-#: src/cmp.c:158 src/diff.c:889 src/diff.c:1471 src/diff3.c:476 src/sdiff.c:170
+#: src/cmp.c:162 src/diff.c:949 src/diff.c:1543 src/diff3.c:474 src/sdiff.c:169
 msgid "standard output"
 msgstr ""
 
-#: src/cmp.c:162
+#: src/cmp.c:166
 msgid "-b, --print-bytes          print differing bytes"
 msgstr ""
 
-#: src/cmp.c:163
+#: src/cmp.c:167
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
 msgstr ""
 
-#: src/cmp.c:164
+#: src/cmp.c:168
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
 msgstr ""
 
-#: src/cmp.c:166
+#: src/cmp.c:170
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
 msgstr ""
 
-#: src/cmp.c:167
+#: src/cmp.c:171
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
 msgstr ""
 
-#: src/cmp.c:168
+#: src/cmp.c:172
 msgid "-s, --quiet, --silent      suppress all normal output"
 msgstr ""
 
-#: src/cmp.c:169
+#: src/cmp.c:173
 msgid "    --help                 display this help and exit"
 msgstr ""
 
-#: src/cmp.c:170
+#: src/cmp.c:174
 msgid "-v, --version              output version information and exit"
 msgstr ""
 
-#: src/cmp.c:179
+#: src/cmp.c:183
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
 msgstr ""
 
-#: src/cmp.c:181
+#: src/cmp.c:185
 msgid "Compare two files byte by byte."
 msgstr ""
 
-#: src/cmp.c:183
+#: src/cmp.c:187
 msgid ""
 "The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
 "at the beginning of each file (zero by default)."
 msgstr ""
 
-#: src/cmp.c:186 src/diff.c:999 src/diff3.c:514 src/sdiff.c:211
+#: src/cmp.c:190 src/diff.c:1059 src/diff3.c:512 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
 
-#: src/cmp.c:192
+#: src/cmp.c:196
 msgid ""
 "SKIP values may be followed by the following multiplicative suffixes:\n"
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
 "GB 1,000,000,000, G 1,073,741,824, and so on for T, P, E, Z, Y."
 msgstr ""
 
-#: src/cmp.c:195
+#: src/cmp.c:199
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr ""
 
-#: src/cmp.c:196 src/diff.c:987 src/sdiff.c:221
+#: src/cmp.c:200 src/diff.c:1047 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr ""
 
-#: src/cmp.c:243
+#: src/cmp.c:247
 #, c-format
 msgid "invalid --bytes value '%s'"
 msgstr ""
 
-#: src/cmp.c:269 src/diff.c:797 src/diff3.c:361 src/sdiff.c:567
+#: src/cmp.c:273 src/diff.c:857 src/diff3.c:368 src/sdiff.c:564
 #, c-format
 msgid "missing operand after '%s'"
 msgstr ""
 
-#: src/cmp.c:281 src/diff.c:799 src/diff3.c:363 src/sdiff.c:569
+#: src/cmp.c:285 src/diff.c:859 src/diff3.c:370 src/sdiff.c:566
 #, c-format
 msgid "extra operand '%s'"
 msgstr ""
 
-#: src/cmp.c:507
+#: src/cmp.c:521
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr ""
 
-#: src/cmp.c:523
+#: src/cmp.c:537
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
 msgstr ""
 
-#: src/cmp.c:580
+#: src/cmp.c:594
 #, c-format
 msgid "cmp: EOF on %s which is empty\n"
 msgstr ""
 
-#: src/cmp.c:594
+#: src/cmp.c:608
 #, c-format
 msgid "cmp: EOF on %s after byte %s, line %s\n"
 msgstr ""
 
-#: src/cmp.c:595
+#: src/cmp.c:609
 #, c-format
 msgid "cmp: EOF on %s after byte %s, in line %s\n"
 msgstr ""
 
-#: src/cmp.c:601
+#: src/cmp.c:615
 #, c-format
 msgid "cmp: EOF on %s after byte %s\n"
 msgstr ""
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:51
+#: src/diff.c:50
 msgid "Paul Eggert"
 msgstr ""
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:52
+#: src/diff.c:51
 msgid "Mike Haertel"
 msgstr ""
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:53
+#: src/diff.c:52
 msgid "David Hayes"
 msgstr ""
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:54
+#: src/diff.c:53
 msgid "Richard Stallman"
 msgstr ""
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:55
+#: src/diff.c:54
 msgid "Len Tower"
 msgstr ""
 
-#: src/diff.c:355
+#: src/diff.c:365
 #, c-format
 msgid "invalid context length '%s'"
 msgstr ""
 
-#: src/diff.c:438
+#: src/diff.c:487
 #, c-format
 msgid "pagination not supported on this host"
 msgstr ""
 
-#: src/diff.c:453 src/diff3.c:341
+#: src/diff.c:502 src/diff3.c:348
 #, c-format
 msgid "too many file label options"
 msgstr ""
 
-#: src/diff.c:530
+#: src/diff.c:579
 #, c-format
 msgid "invalid width '%s'"
 msgstr ""
 
-#: src/diff.c:534
+#: src/diff.c:583
 msgid "conflicting width options"
 msgstr ""
 
-#: src/diff.c:559
+#: src/diff.c:608
 #, c-format
 msgid "invalid horizon length '%s'"
 msgstr ""
 
-#: src/diff.c:615
+#: src/diff.c:664
 #, c-format
 msgid "invalid tabsize '%s'"
 msgstr ""
 
-#: src/diff.c:619
+#: src/diff.c:668
 msgid "conflicting tabsize options"
 msgstr ""
 
-#: src/diff.c:774
+#: src/diff.c:834
 msgid "--from-file and --to-file both specified"
 msgstr ""
 
-#: src/diff.c:893
+#: src/diff.c:953
 msgid "    --normal                  output a normal diff (the default)"
 msgstr ""
 
-#: src/diff.c:894
+#: src/diff.c:954
 msgid "-q, --brief                   report only when files differ"
 msgstr ""
 
-#: src/diff.c:895
+#: src/diff.c:955
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr ""
 
-#: src/diff.c:896
+#: src/diff.c:956
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
 
-#: src/diff.c:897
+#: src/diff.c:957
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
 
-#: src/diff.c:898
+#: src/diff.c:958
 msgid "-e, --ed                      output an ed script"
 msgstr ""
 
-#: src/diff.c:899
+#: src/diff.c:959
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr ""
 
-#: src/diff.c:900
+#: src/diff.c:960
 msgid "-y, --side-by-side            output in two columns"
 msgstr ""
 
-#: src/diff.c:901
+#: src/diff.c:961
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
 
-#: src/diff.c:902
+#: src/diff.c:962
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr ""
 
-#: src/diff.c:903
+#: src/diff.c:963
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr ""
 
-#: src/diff.c:905
+#: src/diff.c:965
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr ""
 
-#: src/diff.c:906
+#: src/diff.c:966
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr ""
 
-#: src/diff.c:907
+#: src/diff.c:967
 msgid ""
 "    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
 msgstr ""
 
-#: src/diff.c:910
+#: src/diff.c:970
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr ""
 
-#: src/diff.c:911
+#: src/diff.c:971
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr ""
 
-#: src/diff.c:912
+#: src/diff.c:972
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
 
-#: src/diff.c:913
+#: src/diff.c:973
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
 
-#: src/diff.c:914
+#: src/diff.c:974
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr ""
 
-#: src/diff.c:916
+#: src/diff.c:976
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr ""
 
-#: src/diff.c:917
+#: src/diff.c:977
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr ""
 
-#: src/diff.c:918
+#: src/diff.c:978
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr ""
 
-#: src/diff.c:919
+#: src/diff.c:979
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
 
-#: src/diff.c:920
+#: src/diff.c:980
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ""
 
-#: src/diff.c:921
+#: src/diff.c:981
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
 
-#: src/diff.c:922
+#: src/diff.c:982
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr ""
 
-#: src/diff.c:923
+#: src/diff.c:983
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
 
-#: src/diff.c:924
+#: src/diff.c:984
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
 
-#: src/diff.c:925
+#: src/diff.c:985
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
 msgstr ""
 
-#: src/diff.c:927
+#: src/diff.c:987
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
 msgstr ""
 
-#: src/diff.c:930
+#: src/diff.c:990
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr ""
 
-#: src/diff.c:931
+#: src/diff.c:991
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr ""
 
-#: src/diff.c:932
+#: src/diff.c:992
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr ""
 
-#: src/diff.c:933
+#: src/diff.c:993
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr ""
 
-#: src/diff.c:934
+#: src/diff.c:994
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr ""
 
-#: src/diff.c:935
+#: src/diff.c:995
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr ""
 
-#: src/diff.c:936
+#: src/diff.c:996
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
 
-#: src/diff.c:938
+#: src/diff.c:998
 msgid "-a, --text                      treat all files as text"
 msgstr ""
 
-#: src/diff.c:939
+#: src/diff.c:999
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr ""
 
-#: src/diff.c:941
+#: src/diff.c:1001
 msgid "    --binary                    read and write data in binary mode"
 msgstr ""
 
-#: src/diff.c:944
+#: src/diff.c:1004
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
 
-#: src/diff.c:945
+#: src/diff.c:1005
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr ""
 
-#: src/diff.c:946
+#: src/diff.c:1006
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr ""
 
-#: src/diff.c:947
+#: src/diff.c:1007
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr ""
 
-#: src/diff.c:948
+#: src/diff.c:1008
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
 msgstr ""
 
-#: src/diff.c:950
+#: src/diff.c:1010
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
 
-#: src/diff.c:951
+#: src/diff.c:1011
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -897,7 +898,7 @@ msgid ""
 "    %(A=B?T:E)  if A equals B then T else E"
 msgstr ""
 
-#: src/diff.c:963
+#: src/diff.c:1023
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -905,7 +906,7 @@ msgid ""
 "    %[-][WIDTH][.[PREC]]{doxX}n  printf-style spec for input line number"
 msgstr ""
 
-#: src/diff.c:967
+#: src/diff.c:1027
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -914,209 +915,209 @@ msgid ""
 "    C    the character C (other characters represent themselves)"
 msgstr ""
 
-#: src/diff.c:973
+#: src/diff.c:1033
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr ""
 
-#: src/diff.c:974
+#: src/diff.c:1034
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr ""
 
-#: src/diff.c:975
+#: src/diff.c:1035
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
 
-#: src/diff.c:976
+#: src/diff.c:1036
 msgid ""
 "    --color[=WHEN]       color output; WHEN is 'never', 'always', or "
 "'auto';\n"
 "                           plain --color means --color='auto'"
 msgstr ""
 
-#: src/diff.c:978
+#: src/diff.c:1038
 msgid ""
 "    --palette=PALETTE    the colors to use when --color is active; PALETTE "
 "is\n"
 "                           a colon-separated list of terminfo capabilities"
 msgstr ""
 
-#: src/diff.c:981
+#: src/diff.c:1041
 msgid "    --help               display this help and exit"
 msgstr ""
 
-#: src/diff.c:982
+#: src/diff.c:1042
 msgid "-v, --version            output version information and exit"
 msgstr ""
 
-#: src/diff.c:984
+#: src/diff.c:1044
 msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
 
-#: src/diff.c:985
+#: src/diff.c:1045
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr ""
 
-#: src/diff.c:986 src/diff3.c:533 src/sdiff.c:220
+#: src/diff.c:1046 src/diff3.c:531 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
 msgstr ""
 
-#: src/diff.c:996
+#: src/diff.c:1056
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr ""
 
-#: src/diff.c:997
+#: src/diff.c:1057
 msgid "Compare FILES line by line."
 msgstr ""
 
-#: src/diff.c:1034
+#: src/diff.c:1094
 #, c-format
 msgid "conflicting %s option value '%s'"
 msgstr ""
 
-#: src/diff.c:1047
+#: src/diff.c:1107
 #, c-format
 msgid "conflicting output style options"
 msgstr ""
 
-#: src/diff.c:1063
+#: src/diff.c:1123
 #, c-format
 msgid "invalid color '%s'"
 msgstr ""
 
-#: src/diff.c:1119 src/diff.c:1329
+#: src/diff.c:1197 src/diff.c:1401
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr ""
 
-#: src/diff.c:1253
+#: src/diff.c:1325
 msgid "cannot compare '-' to a directory"
 msgstr ""
 
-#: src/diff.c:1288
+#: src/diff.c:1360
 msgid "-D option not supported with directories"
 msgstr ""
 
-#: src/diff.c:1297
+#: src/diff.c:1369
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr ""
 
-#: src/diff.c:1339 src/diff.c:1389
+#: src/diff.c:1411 src/diff.c:1461
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr ""
 
-#: src/diff.c:1375
+#: src/diff.c:1447
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr ""
 
-#: src/diff.c:1462
+#: src/diff.c:1534
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr ""
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff3.c:43
+#: src/diff3.c:51
 msgid "Randy Smith"
 msgstr ""
 
-#: src/diff3.c:356
+#: src/diff3.c:363
 #, c-format
 msgid "incompatible options"
 msgstr ""
 
-#: src/diff3.c:396
+#: src/diff3.c:403
 msgid "'-' specified for more than one input file"
 msgstr ""
 
-#: src/diff3.c:447 src/diff3.c:1295 src/diff3.c:1698 src/diff3.c:1753
-#: src/sdiff.c:308 src/sdiff.c:846 src/sdiff.c:857
+#: src/diff3.c:445 src/diff3.c:1284 src/diff3.c:1683 src/diff3.c:1738
+#: src/sdiff.c:306 src/sdiff.c:843 src/sdiff.c:854
 msgid "read failed"
 msgstr ""
 
-#: src/diff3.c:480
+#: src/diff3.c:478
 msgid "-A, --show-all              output all changes, bracketing conflicts"
 msgstr ""
 
-#: src/diff3.c:482
+#: src/diff3.c:480
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
 msgstr ""
 
-#: src/diff3.c:484
+#: src/diff3.c:482
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
 msgstr ""
 
-#: src/diff3.c:485
+#: src/diff3.c:483
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
 msgstr ""
 
-#: src/diff3.c:486
+#: src/diff3.c:484
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
 msgstr ""
 
-#: src/diff3.c:487
+#: src/diff3.c:485
 msgid "-X                          like -x, but bracket conflicts"
 msgstr ""
 
-#: src/diff3.c:488
+#: src/diff3.c:486
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
 msgstr ""
 
-#: src/diff3.c:490
+#: src/diff3.c:488
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
 msgstr ""
 
-#: src/diff3.c:493
+#: src/diff3.c:491
 msgid "-a, --text                  treat all files as text"
 msgstr ""
 
-#: src/diff3.c:494
+#: src/diff3.c:492
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
 msgstr ""
 
-#: src/diff3.c:495
+#: src/diff3.c:493
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
 msgstr ""
 
-#: src/diff3.c:496
+#: src/diff3.c:494
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
 msgstr ""
 
-#: src/diff3.c:497
+#: src/diff3.c:495
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
 msgstr ""
 
-#: src/diff3.c:500
+#: src/diff3.c:498
 msgid "    --help                  display this help and exit"
 msgstr ""
 
-#: src/diff3.c:501
+#: src/diff3.c:499
 msgid "-v, --version               output version information and exit"
 msgstr ""
 
-#: src/diff3.c:510
+#: src/diff3.c:508
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
 msgstr ""
 
-#: src/diff3.c:512
+#: src/diff3.c:510
 msgid "Compare three files line by line."
 msgstr ""
 
-#: src/diff3.c:522
+#: src/diff3.c:520
 msgid ""
 "\n"
 "The default output format is a somewhat human-readable representation of\n"
@@ -1130,54 +1131,54 @@ msgid ""
 "robust than using ed.\n"
 msgstr ""
 
-#: src/diff3.c:534
+#: src/diff3.c:532
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
 msgstr ""
 
-#: src/diff3.c:727
+#: src/diff3.c:725
 msgid "internal error: screwup in format of diff blocks"
 msgstr ""
 
-#: src/diff3.c:1022
+#: src/diff3.c:1015
 #, c-format
 msgid "%s: diff failed: "
 msgstr ""
 
-#: src/diff3.c:1044
+#: src/diff3.c:1037
 msgid "internal error: invalid diff type in process_diff"
 msgstr ""
 
-#: src/diff3.c:1069
+#: src/diff3.c:1060
 msgid "invalid diff format; invalid change separator"
 msgstr ""
 
-#: src/diff3.c:1305
+#: src/diff3.c:1294
 msgid "invalid diff format; incomplete last line"
 msgstr ""
 
-#: src/diff3.c:1329 src/sdiff.c:276 src/util.c:969
+#: src/diff3.c:1318 src/sdiff.c:274 src/util.c:1069
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr ""
 
-#: src/diff3.c:1354
+#: src/diff3.c:1343
 msgid "invalid diff format; incorrect leading line chars"
 msgstr ""
 
-#: src/diff3.c:1427
+#: src/diff3.c:1416
 msgid "internal error: invalid diff type passed to output"
 msgstr ""
 
-#: src/diff3.c:1700 src/diff3.c:1757
+#: src/diff3.c:1685 src/diff3.c:1742
 msgid "input file shrank"
 msgstr ""
 
-#: src/dir.c:156
+#: src/dir.c:154
 #, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr ""
 
-#: src/dir.c:225
+#: src/dir.c:223
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr ""
@@ -1187,111 +1188,111 @@ msgstr ""
 msgid "Thomas Lord"
 msgstr ""
 
-#: src/sdiff.c:174
+#: src/sdiff.c:173
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
 msgstr ""
 
-#: src/sdiff.c:176
+#: src/sdiff.c:175
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
 msgstr ""
 
-#: src/sdiff.c:177
+#: src/sdiff.c:176
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
 msgstr ""
 
-#: src/sdiff.c:178
+#: src/sdiff.c:177
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
 msgstr ""
 
-#: src/sdiff.c:179
+#: src/sdiff.c:178
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
 msgstr ""
 
-#: src/sdiff.c:180
+#: src/sdiff.c:179
 msgid "-W, --ignore-all-space       ignore all white space"
 msgstr ""
 
-#: src/sdiff.c:181
+#: src/sdiff.c:180
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
 msgstr ""
 
-#: src/sdiff.c:182
+#: src/sdiff.c:181
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
 
-#: src/sdiff.c:183
+#: src/sdiff.c:182
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
 msgstr ""
 
-#: src/sdiff.c:184
+#: src/sdiff.c:183
 msgid "-a, --text                   treat all files as text"
 msgstr ""
 
-#: src/sdiff.c:186
+#: src/sdiff.c:185
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
 msgstr ""
 
-#: src/sdiff.c:187
+#: src/sdiff.c:186
 msgid ""
 "-l, --left-column            output only the left column of common lines"
 msgstr ""
 
-#: src/sdiff.c:188
+#: src/sdiff.c:187
 msgid "-s, --suppress-common-lines  do not output common lines"
 msgstr ""
 
-#: src/sdiff.c:190
+#: src/sdiff.c:189
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
 msgstr ""
 
-#: src/sdiff.c:191
+#: src/sdiff.c:190
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
 msgstr ""
 
-#: src/sdiff.c:193
+#: src/sdiff.c:192
 msgid "-d, --minimal                try hard to find a smaller set of changes"
 msgstr ""
 
-#: src/sdiff.c:194
+#: src/sdiff.c:193
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
 msgstr ""
 
-#: src/sdiff.c:195
+#: src/sdiff.c:194
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
 msgstr ""
 
-#: src/sdiff.c:197
+#: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
 msgstr ""
 
-#: src/sdiff.c:198
+#: src/sdiff.c:197
 msgid "-v, --version                output version information and exit"
 msgstr ""
 
-#: src/sdiff.c:207
+#: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
 msgstr ""
 
-#: src/sdiff.c:209
+#: src/sdiff.c:208
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
 msgstr ""
 
-#: src/sdiff.c:330
+#: src/sdiff.c:328
 msgid "cannot interactively merge standard input"
 msgstr ""
 
-#: src/sdiff.c:597
+#: src/sdiff.c:594
 msgid "both files to be compared are directories"
 msgstr ""
 
-#: src/sdiff.c:820
+#: src/sdiff.c:817
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
 "eb:\tEdit then use both versions.\n"
@@ -1305,12 +1306,12 @@ msgid ""
 "q:\tQuit.\n"
 msgstr ""
 
-#: src/util.c:662
+#: src/util.c:755
 #, c-format
 msgid "unrecognized prefix: %s"
 msgstr ""
 
-#: src/util.c:692
+#: src/util.c:785
 #, c-format
 msgid "unparsable value for --palette"
 msgstr ""
index 9e74012..b3a1afa 100644 (file)
Binary files a/po/el.gmo and b/po/el.gmo differ
index 6bb6aa4..69bca2e 100644 (file)
--- a/po/el.po
+++ b/po/el.po
@@ -2,13 +2,13 @@
 # Copyright (C) 2004 Free Software Foundation, Inc.
 # This file is distributed under the same license as the diffutils package.
 # Lefteris Dimitroulakis <edimitro@tee.gr>, 2004.
-# Lefteris Dimitroulakis <ledimitro@gmail.com>, 2013, 2014, 2017, 2019.
+# Lefteris Dimitroulakis <ledimitro@gmail.com>, 2013, 2014, 2017, 2019, 2022.
 msgid ""
 msgstr ""
-"Project-Id-Version: diffutils-3.6.17\n"
+"Project-Id-Version: diffutils-3.7.41\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2021-08-01 18:56-0700\n"
-"PO-Revision-Date: 2021-01-10 22:24+0200\n"
+"POT-Creation-Date: 2023-05-21 01:51-0700\n"
+"PO-Revision-Date: 2022-01-06 23:20+0200\n"
 "Last-Translator: Lefteris Dimitroulakis <ledimitro@gmail.com>\n"
 "Language-Team: Greek <team@lists.gnome.gr>\n"
 "Language: el\n"
@@ -16,32 +16,32 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
-"X-Generator: Poedit 2.4.2\n"
+"X-Generator: Poedit 2.3\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: lib/argmatch.c:132
+#: lib/argmatch.c:145
 #, c-format
 msgid "invalid argument %s for %s"
 msgstr "μη έγκυρο όρισμα %s για %s"
 
-#: lib/argmatch.c:133
+#: lib/argmatch.c:146
 #, c-format
 msgid "ambiguous argument %s for %s"
 msgstr "ασαφές όρισμα %s για %s"
 
-#: lib/argmatch.c:152 lib/argmatch.h:223
+#: lib/argmatch.c:165 lib/argmatch.h:242
 msgid "Valid arguments are:"
 msgstr "Έγκυρο ορίσματα είναι:"
 
-#: lib/c-stack.c:187
+#: lib/c-stack.c:186
 msgid "program error"
 msgstr "σφάλμα προγράμματος"
 
-#: lib/c-stack.c:188
+#: lib/c-stack.c:187
 msgid "stack overflow"
 msgstr "υπερχείλιση στοίβας"
 
-#: lib/error.c:195
+#: lib/error.c:193
 msgid "Unknown system error"
 msgstr "Άγνωστο σφάλμα συστήματος"
 
@@ -197,83 +197,83 @@ msgstr "%s: η επιλογή απαιτεί όρισμα -- «%c»\n"
 #. If you don't know what to put here, please see
 #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:355
+#: lib/quotearg.c:354
 msgid "`"
 msgstr "«"
 
-#: lib/quotearg.c:356
+#: lib/quotearg.c:355
 msgid "'"
 msgstr "»"
 
-#: lib/regcomp.c:135
+#: lib/regcomp.c:122
 msgid "Success"
 msgstr "Επιτυχία"
 
-#: lib/regcomp.c:138
+#: lib/regcomp.c:125
 msgid "No match"
 msgstr "Δεν υπάρχει ταίριασμα"
 
-#: lib/regcomp.c:141
+#: lib/regcomp.c:128
 msgid "Invalid regular expression"
 msgstr "Μη έγκυρη κανονική έκφραση"
 
-#: lib/regcomp.c:144
+#: lib/regcomp.c:131
 msgid "Invalid collation character"
 msgstr "Μη έγκυρος χαρακτήρας διαταξινόμησης"
 
-#: lib/regcomp.c:147
+#: lib/regcomp.c:134
 msgid "Invalid character class name"
 msgstr "Μη έγκυρο όνομα κλάσεως χαρακτήρων"
 
-#: lib/regcomp.c:150
+#: lib/regcomp.c:137
 msgid "Trailing backslash"
 msgstr "Αντιπλαγία στο τέλος"
 
-#: lib/regcomp.c:153
+#: lib/regcomp.c:140
 msgid "Invalid back reference"
 msgstr "Άκυρη πίσω παραπομπή"
 
-#: lib/regcomp.c:156
+#: lib/regcomp.c:143
 msgid "Unmatched [, [^, [:, [., or [="
 msgstr "Δεν βρέθηκε [, [^, [:, [., or [="
 
-#: lib/regcomp.c:159
+#: lib/regcomp.c:146
 msgid "Unmatched ( or \\("
 msgstr "Δε βρέθηκε ( ή \\("
 
-#: lib/regcomp.c:162
+#: lib/regcomp.c:149
 msgid "Unmatched \\{"
 msgstr "Δε βρέθηκε \\{"
 
-#: lib/regcomp.c:165
+#: lib/regcomp.c:152
 msgid "Invalid content of \\{\\}"
 msgstr "Το περιεχόμενο του \\{\\} είναι μη έγκυρο"
 
-#: lib/regcomp.c:168
+#: lib/regcomp.c:155
 msgid "Invalid range end"
 msgstr "Μη έγκυρο πέρας διαστήματος"
 
-#: lib/regcomp.c:171
+#: lib/regcomp.c:158
 msgid "Memory exhausted"
 msgstr "Η μνήμη εξαντλήθηκε"
 
-#: lib/regcomp.c:174
+#: lib/regcomp.c:161
 msgid "Invalid preceding regular expression"
 msgstr "Η προηγούμενη κανονική έκφραση είναι άκυρη"
 
-#: lib/regcomp.c:177
+#: lib/regcomp.c:164
 msgid "Premature end of regular expression"
 msgstr "Πρόωρο τέλος κανονικής έκφρασης"
 
-#: lib/regcomp.c:180
+#: lib/regcomp.c:167
 msgid "Regular expression too big"
 msgstr "Πολύ μεγάλη κανονική έκφραση"
 
-#: lib/regcomp.c:183
+#: lib/regcomp.c:170
 msgid "Unmatched ) or \\)"
 msgstr "Δε βρέθηκε ) ή \\)"
 
-#: lib/regcomp.c:676
+#: lib/regcomp.c:650
 msgid "No previous regular expression"
 msgstr "Δεν προηγήθηκε κανονική έκφραση"
 
@@ -305,7 +305,7 @@ msgstr "αποτυχία ξανανοίγματος %s σε κατάσταση %
 #: lib/xstdopen.c:34
 #, c-format
 msgid "standard file descriptors"
-msgstr ""
+msgstr "standard file descriptors"
 
 #: lib/version-etc.c:73
 #, c-format
@@ -326,18 +326,15 @@ msgstr "(C)"
 
 #. TRANSLATORS: The %s placeholder is the web address of the GPL license.
 #: lib/version-etc.c:88
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "License GPLv3+: GNU GPL version 3 or later <%s>.\n"
 "This is free software: you are free to change and redistribute it.\n"
 "There is NO WARRANTY, to the extent permitted by law.\n"
 msgstr ""
-"\n"
-"License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl."
-"html>.\n"
+"License GPLv3+: GNU GPL version 3 or later <%s>.\n"
 "This is free software: you are free to change and redistribute it.\n"
 "There is NO WARRANTY, to the extent permitted by law.\n"
-"\n"
 
 #. TRANSLATORS: %s denotes an author name.
 #: lib/version-etc.c:105
@@ -452,11 +449,9 @@ msgstr ""
 #. "Report translation bugs to <...>\n" with the address for translation
 #. bugs (typically your translation team's web or email address).
 #: lib/version-etc.c:249
-#, fuzzy, c-format
+#, c-format
 msgid "Report bugs to: %s\n"
-msgstr ""
-"\n"
-"Report bugs to: %s\n"
+msgstr "Report bugs to: %s\n"
 
 #: lib/version-etc.c:251
 #, c-format
@@ -469,21 +464,21 @@ msgid "%s home page: <%s>\n"
 msgstr "%s home page: <%s>\n"
 
 #: lib/version-etc.c:260
-#, fuzzy, c-format
+#, c-format
 msgid "General help using GNU software: <%s>\n"
-msgstr "General help using GNU software: <https://www.gnu.org/gethelp/>\n"
+msgstr "General help using GNU software: <%s>\n"
 
-#: src/analyze.c:454 src/diff.c:1406
+#: src/analyze.c:455 src/diff.c:1478
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Τα αρχεία %s και %s διαφέρουν\n"
 
-#: src/analyze.c:455
+#: src/analyze.c:456
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "Τα δυαδικά αρχεία %s και %s διαφέρουν\n"
 
-#: src/analyze.c:706 src/diff3.c:1470 src/util.c:1254
+#: src/analyze.c:707 src/diff3.c:1457 src/util.c:1354
 msgid "No newline at end of file"
 msgstr "Δεν υπάρχει χαρακτήρας νέας γραμμής στο τέλος του αρχείου"
 
@@ -497,41 +492,42 @@ msgstr "Torbjorn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:120 src/diff.c:879 src/diff3.c:467 src/sdiff.c:160
+#: src/cmp.c:124 src/diff.c:939 src/diff3.c:465 src/sdiff.c:159
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Δοκιμάστε «%s --help» για περισσότερες πληροφορίες."
 
-#: src/cmp.c:138
+#: src/cmp.c:142
 #, c-format
 msgid "invalid --ignore-initial value '%s'"
 msgstr "άκυρη τιμή --ignore-initial «%s»"
 
-#: src/cmp.c:148
+#: src/cmp.c:152
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr "οι επιλογές -l και -s είναι ασύμβατες"
 
-#: src/cmp.c:156 src/diff.c:887 src/diff3.c:474 src/sdiff.c:168 src/sdiff.c:316
-#: src/sdiff.c:323 src/sdiff.c:876 src/util.c:852 src/util.c:952 src/util.c:959
+#: src/cmp.c:160 src/diff.c:947 src/diff3.c:472 src/sdiff.c:167 src/sdiff.c:314
+#: src/sdiff.c:321 src/sdiff.c:873 src/util.c:952 src/util.c:1052
+#: src/util.c:1059
 msgid "write failed"
 msgstr "η εγγραφή απέτυχε"
 
-#: src/cmp.c:158 src/diff.c:889 src/diff.c:1471 src/diff3.c:476 src/sdiff.c:170
+#: src/cmp.c:162 src/diff.c:949 src/diff.c:1543 src/diff3.c:474 src/sdiff.c:169
 msgid "standard output"
 msgstr "κανονική έξοδος"
 
-#: src/cmp.c:162
+#: src/cmp.c:166
 msgid "-b, --print-bytes          print differing bytes"
 msgstr "-b,  --print-bytes  Εμφανίζει bytes που διαφέρουν"
 
-#: src/cmp.c:163
+#: src/cmp.c:167
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
 msgstr ""
 "-i, --ignore-initial=SKIP  Παράβλεψη των πρώτων SKIP bytes και των δύο "
 "εισόδων"
 
-#: src/cmp.c:164
+#: src/cmp.c:168
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
@@ -539,37 +535,37 @@ msgstr ""
 "-i, --ignore-initial=SKIP1:SKIP2  παράβλεψη των πρώτων SKIP1 bytes του "
 "αρχείου FILE1 και των πρώτων SKIP2 bytes του αρχείου FILE2"
 
-#: src/cmp.c:166
+#: src/cmp.c:170
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
 msgstr "-l  --verbose  Έξοδος αριθμού και τιμής όλων των bytes που διαφέρουν"
 
-#: src/cmp.c:167
+#: src/cmp.c:171
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
 msgstr "-n,  --bytes=ΟΡΙΟ  Σύγκριση το πολύ ΟΡΙΟ bytes"
 
-#: src/cmp.c:168
+#: src/cmp.c:172
 msgid "-s, --quiet, --silent      suppress all normal output"
 msgstr "-s, --quiet, --silent      απάλειψη κανονικής εξόδου"
 
-#: src/cmp.c:169
+#: src/cmp.c:173
 msgid "    --help                 display this help and exit"
 msgstr "    --help                 εμφάνιση αυτής εδώ της βοήθειας κι έξοδος"
 
-#: src/cmp.c:170
+#: src/cmp.c:174
 msgid "-v, --version              output version information and exit"
 msgstr "-v,  --version  εμφάνιση πληροφοριών έκδοσης κι έξοδος"
 
-#: src/cmp.c:179
+#: src/cmp.c:183
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
 msgstr "Χρήση: %s [ΕΠΙΛΟΓΗ]... ΑΡΧΕΙΟ1 [ΑΡΧΕΙΟ2 [SKIP1 [SKIP2]]]\n"
 
-#: src/cmp.c:181
+#: src/cmp.c:185
 msgid "Compare two files byte by byte."
 msgstr "Σύγκριση δύο αρχείων byte προς byte."
 
-#: src/cmp.c:183
+#: src/cmp.c:187
 msgid ""
 "The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
 "at the beginning of each file (zero by default)."
@@ -577,14 +573,14 @@ msgstr ""
 "Οι προαιρετικές παράμετροι SKIP1 και SKIP2 καθορίζουν τον αριθμό των bytes\n"
 "προς παράβλεψη στην αρχή κάθε αρχείου (η προεπιλογή είναι μηδέν)."
 
-#: src/cmp.c:186 src/diff.c:999 src/diff3.c:514 src/sdiff.c:211
+#: src/cmp.c:190 src/diff.c:1059 src/diff3.c:512 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
 "Υποχρεωτικά ορίσματα στις μακρές επιλογές είναι υποχρεωτικά και στις "
 "κοντέςεπιλογές επίσης.\n"
 
-#: src/cmp.c:192
+#: src/cmp.c:196
 msgid ""
 "SKIP values may be followed by the following multiplicative suffixes:\n"
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
@@ -595,194 +591,194 @@ msgstr ""
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
 "GB 1,000,000,000, G 1,073,741,824, κτλ γιά T, P, E, Z, Y."
 
-#: src/cmp.c:195
+#: src/cmp.c:199
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "Αν ένα ΑΡΧΕΙΟ είναι «-» ή απών, τότε ανάγνωση από την κανονική είσοδο."
 
-#: src/cmp.c:196 src/diff.c:987 src/sdiff.c:221
+#: src/cmp.c:200 src/diff.c:1047 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr ""
 "Η έξοδος είναι 0 αν τα δεδομένα αρχεία είναι ίδια, 1 αν είναι διαφορετικά,\n"
 "2 αν υπάρχει πρόβλημα."
 
-#: src/cmp.c:243
+#: src/cmp.c:247
 #, c-format
 msgid "invalid --bytes value '%s'"
 msgstr "άκυρη τιμή «%s» για την επιλογή --bytes"
 
-#: src/cmp.c:269 src/diff.c:797 src/diff3.c:361 src/sdiff.c:567
+#: src/cmp.c:273 src/diff.c:857 src/diff3.c:368 src/sdiff.c:564
 #, c-format
 msgid "missing operand after '%s'"
 msgstr "απών τελεστέος μετά από «%s»"
 
-#: src/cmp.c:281 src/diff.c:799 src/diff3.c:363 src/sdiff.c:569
+#: src/cmp.c:285 src/diff.c:859 src/diff3.c:370 src/sdiff.c:566
 #, c-format
 msgid "extra operand '%s'"
 msgstr "συμπληρωματικός τελεστέος «%s»"
 
-#: src/cmp.c:507
+#: src/cmp.c:521
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s διαφέρουν: byte %s, γραμμή %s\n"
 
-#: src/cmp.c:523
+#: src/cmp.c:537
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
 msgstr "%s %s διαφέρουν: byte %s, γραμμή %s είναι %3o %s %3o %s\n"
 
-#: src/cmp.c:580
+#: src/cmp.c:594
 #, c-format
 msgid "cmp: EOF on %s which is empty\n"
 msgstr "cmp: EOF στο %s που είναι κενό\n"
 
-#: src/cmp.c:594
+#: src/cmp.c:608
 #, c-format
 msgid "cmp: EOF on %s after byte %s, line %s\n"
 msgstr "cmp: EOF στο %s μετά το byte %s, γραμμή %s\n"
 
-#: src/cmp.c:595
+#: src/cmp.c:609
 #, c-format
 msgid "cmp: EOF on %s after byte %s, in line %s\n"
 msgstr "cmp: EOF στο %s μετά το byte %s, στη γραμμή %s\n"
 
-#: src/cmp.c:601
+#: src/cmp.c:615
 #, c-format
 msgid "cmp: EOF on %s after byte %s\n"
 msgstr "cmp: EOF στο %s μετά το byte %s\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:51
+#: src/diff.c:50
 msgid "Paul Eggert"
 msgstr "Paul Eggert"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:52
+#: src/diff.c:51
 msgid "Mike Haertel"
 msgstr "Mike Haertel"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:53
+#: src/diff.c:52
 msgid "David Hayes"
 msgstr "David Hayes"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:54
+#: src/diff.c:53
 msgid "Richard Stallman"
 msgstr "Richard Stallman"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:55
+#: src/diff.c:54
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:355
+#: src/diff.c:365
 #, c-format
 msgid "invalid context length '%s'"
 msgstr "μη έγκυρο μήκος συμφραζομένων «%s»"
 
-#: src/diff.c:438
+#: src/diff.c:487
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "η αρίθμηση σελίδων δεν υποστηρίζεται σ' αυτόν τον υπολογιστή"
 
-#: src/diff.c:453 src/diff3.c:341
+#: src/diff.c:502 src/diff3.c:348
 #, c-format
 msgid "too many file label options"
 msgstr "πάρα πολλές επιλογές ετικέττας αρχείου"
 
-#: src/diff.c:530
+#: src/diff.c:579
 #, c-format
 msgid "invalid width '%s'"
 msgstr "μη έγκυρο πλάτος «%s»"
 
-#: src/diff.c:534
+#: src/diff.c:583
 msgid "conflicting width options"
 msgstr "αντικρουόμενες επιλογές πλάτους"
 
-#: src/diff.c:559
+#: src/diff.c:608
 #, c-format
 msgid "invalid horizon length '%s'"
 msgstr "μη έγκυρο μήκος ορίζοντα «%s»"
 
-#: src/diff.c:615
+#: src/diff.c:664
 #, c-format
 msgid "invalid tabsize '%s'"
 msgstr "μη έγκυρο μήκος στηλοθέτησης `%s'"
 
-#: src/diff.c:619
+#: src/diff.c:668
 msgid "conflicting tabsize options"
 msgstr "αντικρουόμενες επιλογές μήκους στηλοθέτησης"
 
-#: src/diff.c:774
+#: src/diff.c:834
 msgid "--from-file and --to-file both specified"
 msgstr "--from-file και --to-file έχουν οριστεί αμφότερα"
 
-#: src/diff.c:893
+#: src/diff.c:953
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "  --normal  Δημιουργία ενός κανονικού `diff' (προεπιλογή)"
 
-#: src/diff.c:894
+#: src/diff.c:954
 msgid "-q, --brief                   report only when files differ"
 msgstr "-q  --brief  αποτέλεσμα στην έξοδο μόνο αν τ' αρχεία διαφέρουν"
 
-#: src/diff.c:895
+#: src/diff.c:955
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr "-s,  --report-identical-files  Ειδοποιεί όταν δύο αρχεία είναι ίδια"
 
-#: src/diff.c:896
+#: src/diff.c:956
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
 "-c, -C NUM, --context[=NUM]   έξοδος NUM (προεπιλογή 3) γραμμές of copied "
 "context"
 
-#: src/diff.c:897
+#: src/diff.c:957
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
 "-u, -U NUM, --unified[=NUM]   έξοδος NUM (προεπιλογή 3) γραμμές of unified "
 "context"
 
-#: src/diff.c:898
+#: src/diff.c:958
 msgid "-e, --ed                      output an ed script"
 msgstr "-e, --ed   εμφανίζει ένα ed script"
 
-#: src/diff.c:899
+#: src/diff.c:959
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n  --rcs  Δημιουργία αρχείου «diff» σε μορφή RCS"
 
-#: src/diff.c:900
+#: src/diff.c:960
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side            έξοδος σε δυο στήλες"
 
-#: src/diff.c:901
+#: src/diff.c:961
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 
-#: src/diff.c:902
+#: src/diff.c:962
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr ""
 "    --left-column  Εμφάνιση μόνο της αριστερής στήλης των ταυτόσημων γραμμών"
 
-#: src/diff.c:903
+#: src/diff.c:963
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "    --suppress-common-lines  Οι ταυτόσημες γραμμές δεν εμφανίζονται"
 
-#: src/diff.c:905
+#: src/diff.c:965
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr ""
 "-p, --show-c-function    εμφάνιση σε ποιά συνάρτηση C βρίσκεται κάθε αλλαγή"
 
-#: src/diff.c:906
+#: src/diff.c:966
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr ""
 "-F, --show-function-line=RE   εμφάνιση του πιο πρόσφατου ταιριάσματος "
 "γραμμής RE"
 
-#: src/diff.c:907
+#: src/diff.c:967
 msgid ""
 "    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
@@ -790,181 +786,180 @@ msgstr ""
 "    --label=LABEL           χρήση LABEL αντί ονόματος αρχείου και timestamp\n"
 "                                (μπορεί να επαναληφθεί)"
 
-#: src/diff.c:910
+#: src/diff.c:970
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr "-t,  --expand-tabs  Μετατροπή στηλοθετών σε διαστήματα στην έξοδο"
 
-#: src/diff.c:911
+#: src/diff.c:971
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr ""
 "-T,  --initial-tab  Στοίχιση των στηλοθετών με την επιπρόσθεση ενός στην αρχή"
 
-#: src/diff.c:912
+#: src/diff.c:972
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=NUM  Ο αριθμός διαστημάτων του στηλοθέτη είναι NUM (προεπιλογή "
 "8) στήλες"
 
-#: src/diff.c:913
+#: src/diff.c:973
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
 "    --suppress-blank-empty  απάλειψη διαστήματος ή στ/θέτη πριν από κενές "
 "γραμμές στην έξοδο"
 
-#: src/diff.c:914
+#: src/diff.c:974
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr "-l,  --paginate       Έξοδος δια μέσου του «pr» για αρίθμηση"
 
-#: src/diff.c:916
+#: src/diff.c:976
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr "-r,  --recursive  Αναδρομική σύγκριση όσων υποκαταλόγων βρεθούν"
 
-#: src/diff.c:917
+#: src/diff.c:977
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr " --no-dereference            μην ακολουθείς συμβολικούς συνδέσμους"
 
-#: src/diff.c:918
+#: src/diff.c:978
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr "-N,  --new-file  Θεωρεί τα απόντα αρχεία ως κενά"
 
-#: src/diff.c:919
+#: src/diff.c:979
 msgid "    --unidirectional-new-file   treat absent first files as empty"
-msgstr "--unidirectional-new-file  Θεωρεί τα απόντα πρώτα αρχεία ως κενά"
+msgstr " --unidirectional-new-file  Θεωρεί τα απόντα πρώτα αρχεία ως κενά"
 
-#: src/diff.c:920
+#: src/diff.c:980
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ""
-"--ignore-file-name-case  αγνοεί τις διαφορές λόγω πεζών-κεφαλαίων\n"
-"κατά τη σύγκριση ονομάτων αρχείων."
+" --ignore-file-name-case  αγνοεί τις διαφορές λόγω πεζών-κεφαλαίων\n"
+"κατά τη σύγκριση ονομάτων αρχείων"
 
-#: src/diff.c:921
+#: src/diff.c:981
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
 "     --no-ignore-file-name-case  λαμβάνει υπ' όψιν τις διαφορές λόγω\n"
 "                      πεζών-κεφαλαίων κατά τη σύγκριση ονομάτων αρχείων"
 
-#: src/diff.c:922
+#: src/diff.c:982
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr "-x,  --exclude=PAT    εξαίρεση αρχείων με όνομα που ταιριάζει με PAT"
 
-#: src/diff.c:923
+#: src/diff.c:983
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
 "-X,  --exclude-from=ΑΡΧΕΙΟ    Εξαίρεση αρχείων με όνομα που ταιράζει\n"
 "                                  με τα ονόματα που βρίσκονται στο ΑΡΧΕΙΟ"
 
-#: src/diff.c:924
+#: src/diff.c:984
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
 "-S,  --starting-file=ΑΡΧΕΙΟ  Εκκίνηση σύγκρισης καταλόγων από το ΑΡΧΕΙΟ"
 
-#: src/diff.c:925
+#: src/diff.c:985
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
 msgstr ""
-"--from-file=ΑΡΧΕΙΟ1      Σύγκριση ΑΡΧΕΙΟ1 με όλους τους τελεστέους·\n"
+" --from-file=ΑΡΧΕΙΟ1      Σύγκριση ΑΡΧΕΙΟ1 με όλους τους τελεστέους·\n"
 "                                        ΑΡΧΕΙΟ1 μπορεί να είναι κατάλογος"
 
-#: src/diff.c:927
+#: src/diff.c:987
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
 msgstr ""
-"--to-file=ΑΡΧΕΙΟ2   Σύγκριση όλων των τελεστέων στο ΑΡΧΕΙΟ2·\n"
+" --to-file=ΑΡΧΕΙΟ2   Σύγκριση όλων των τελεστέων στο ΑΡΧΕΙΟ2·\n"
 "                                        ΑΡΧΕΙΟ2 μπορεί να είναι κατάλογος"
 
-#: src/diff.c:930
+#: src/diff.c:990
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr ""
 "-i,  --ignore-case  Αγνοεί τις διαφορές λόγω πεζών-κεφαλαίων στα περιεχόμενα "
 "των αρχείων"
 
-#: src/diff.c:931
+#: src/diff.c:991
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr ""
 "-E,  --ignore-tab-expansion  Αγνοεί αλλαγές οφειλόμενες στη στηλοθέτηση"
 
-#: src/diff.c:932
+#: src/diff.c:992
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr ""
 "-Z, --ignore-trailing-space     αγνοεί λευκά διαστήματα στο τέλος γραμμής"
 
-#: src/diff.c:933
+#: src/diff.c:993
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr ""
 "-b,  --ignore-space-change  Αγνοεί αλλαγές οφειλόμενες στον αριθμό λευκών "
-"διαστημάτων."
+"διαστημάτων"
 
-#: src/diff.c:934
+#: src/diff.c:994
 msgid "-w, --ignore-all-space          ignore all white space"
-msgstr "-w,  --ignore-all-space  Αγνοεί όλα τα λευκά διαστήματα."
+msgstr "-w,  --ignore-all-space  Αγνοεί όλα τα λευκά διαστήματα"
 
-#: src/diff.c:935
+#: src/diff.c:995
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr ""
 "-B,  --ignore-blank-lines    Αγνοεί αλλαγές οφειλόμενες στις λευκές γραμμές"
 
-#: src/diff.c:936
+#: src/diff.c:996
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
 "-I,  --ignore-matching-lines=RE  Αγνοεί αλλαγές που οι γραμμές τους \n"
-" ταιριάζουν με RE."
+" ταιριάζουν με RE"
 
-#: src/diff.c:938
+#: src/diff.c:998
 msgid "-a, --text                      treat all files as text"
-msgstr "-a,  --text  Θεωρεί όλα τα αρχεία ως κείμενο."
+msgstr "-a,  --text  Θεωρεί όλα τα αρχεία ως κείμενο"
 
-#: src/diff.c:939
+#: src/diff.c:999
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
-msgstr "--strip-trailing-cr  Απαλειφή του χαρακτήρα επιστροφής στην είσοδο."
+msgstr " --strip-trailing-cr  Απαλειφή του χαρακτήρα επιστροφής στην είσοδο"
 
-#: src/diff.c:941
+#: src/diff.c:1001
 msgid "    --binary                    read and write data in binary mode"
-msgstr "--binary  Ανάγνωση και εγγραφή πληροφορίας σε δυαδική μορφή."
+msgstr " --binary  Ανάγνωση και εγγραφή πληροφορίας σε δυαδική μορφή"
 
-#: src/diff.c:944
+#: src/diff.c:1004
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
-"-D, --ifdef=ΟΝΟΜΑ  Έξοδος συγχωνευμένου αρχείου με τις διαφορές «#ifdef "
-"NAME»."
+"-D, --ifdef=ΟΝΟΜΑ  Έξοδος συγχωνευμένου αρχείου με τις διαφορές «#ifdef NAME»"
 
-#: src/diff.c:945
+#: src/diff.c:1005
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
-msgstr "--GTYPE-group-format=GFMT  μορφοποίηση ομάδων εισόδου GTYPE με GFMT."
+msgstr " --GTYPE-group-format=GFMT  μορφοποίηση ομάδων εισόδου GTYPE με GFMT"
 
-#: src/diff.c:946
+#: src/diff.c:1006
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr ""
-"--line-format=LFMT           μορφοποίηση όλων των γραμμών εισόδου με LFMT"
+" --line-format=LFMT           μορφοποίηση όλων των γραμμών εισόδου με LFMT"
 
-#: src/diff.c:947
+#: src/diff.c:1007
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
-msgstr "--LTYPE-line-format=LFMT  μορφοποίηση γραμμών εισόδου LTYPE με LFMT."
+msgstr " --LTYPE-line-format=LFMT  μορφοποίηση γραμμών εισόδου LTYPE με LFMT"
 
-#: src/diff.c:948
+#: src/diff.c:1008
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
 msgstr ""
-"Αυτές οι επιλογές μορφής παρέχουν λεπτομερή έλεγχο πάνω στην έξοδο\n"
+" Αυτές οι επιλογές μορφής παρέχουν λεπτομερή έλεγχο πάνω στην έξοδο\n"
 "    του diff, γενικεύοντας -D/--ifdef."
 
-#: src/diff.c:950
+#: src/diff.c:1010
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
-"LTYPE είναι «old», «new», ή «unchanged».  GTYPE είναι LTYPE ή «changed»."
+" LTYPE είναι «old», «new», ή «unchanged».  GTYPE είναι LTYPE ή «changed»."
 
-#: src/diff.c:951
+#: src/diff.c:1011
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -979,7 +974,7 @@ msgid ""
 "        M  L+1\n"
 "    %(A=B?T:E)  if A equals B then T else E"
 msgstr ""
-"GFMT (μόνο) μπορεί να περιέχει:\n"
+" GFMT (μόνο) μπορεί να περιέχει:\n"
 "    %<  για να δηλώνει γραμμές από το ΑΡΧΕΙΟ1\n"
 "    %>  για να δηλώνει γραμμές από το ΑΡΧΕΙΟ2\n"
 "    %=  για να δηλώνει ταυτόσημες γραμμές μεταξύ των ΑΡΧΕΙΟ1 και ΑΡΧΕΙΟ2\n"
@@ -993,7 +988,7 @@ msgstr ""
 "        M  L+1\n"
 "      %(A=B?T:E)  αν A ίσον B τότε T αλλιώς E"
 
-#: src/diff.c:963
+#: src/diff.c:1023
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -1006,7 +1001,7 @@ msgstr ""
 "    %[-][ΠΛΑΤΟΣ][.[PREC]]{doxX}n  την προδιαγραφή του αριθμού γραμμής\n"
 "                                  εισόδου κατά τη μορφή της printf()"
 
-#: src/diff.c:967
+#: src/diff.c:1027
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1020,32 +1015,32 @@ msgstr ""
 "    %c'\\OOO'  το χαρακτήρα με οκταδικό κωδικό OOO\n"
 "    C    το χαρακτήρα C (οι άλλοι χαρακτήρες αναπαριστούν τον εαυτόν τους)"
 
-#: src/diff.c:973
+#: src/diff.c:1033
 msgid "-d, --minimal            try hard to find a smaller set of changes"
-msgstr "-d  --minimal  προσπάθεια εύρεσης μικρότερου συνόλου διαφορών."
+msgstr "-d  --minimal  προσπάθεια εύρεσης μικρότερου συνόλου διαφορών"
 
-#: src/diff.c:974
+#: src/diff.c:1034
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr ""
-"--horizon-lines=ΑΡ  Διατηρεί ΑΡ γραμμές με ταυτόσημα προθέματα κι επιθέματα."
+" --horizon-lines=ΑΡ  Διατηρεί ΑΡ γραμμές με ταυτόσημα προθέματα κι επιθέματα"
 
-#: src/diff.c:975
+#: src/diff.c:1035
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
-"--speed-large-files  Υποθέτει μεγάλα αρχεία με πολλές σκόρπιες μικροαλλαγές."
+" --speed-large-files  Υποθέτει μεγάλα αρχεία με πολλές σκόρπιες μικροαλλαγές"
 
-#: src/diff.c:976
-#, fuzzy
+#: src/diff.c:1036
 msgid ""
 "    --color[=WHEN]       color output; WHEN is 'never', 'always', or "
 "'auto';\n"
 "                           plain --color means --color='auto'"
 msgstr ""
-"    --color[=WHEN]       χρωματίζει την έξοδο, WHEN μπορεί να είναι «ποτέ»,\n"
-" «πάντα», ή «αυτόματο» (προεπιλογή)"
+"    --color[=WHEN]       color output; WHEN is 'never', 'always', or "
+"'auto';\n"
+"                           plain --color means --color='auto'"
 
-#: src/diff.c:978
+#: src/diff.c:1038
 msgid ""
 "    --palette=PALETTE    the colors to use when --color is active; PALETTE "
 "is\n"
@@ -1057,124 +1052,124 @@ msgstr ""
 "        μια λίστα ικανοτήτων terminfo capabilities που χωρίζονται από "
 "δίστιγμα"
 
-#: src/diff.c:981
+#: src/diff.c:1041
 msgid "    --help               display this help and exit"
 msgstr "    --help               εμφάνιση αυτής εδώ της βοήθειας κι έξοδος"
 
-#: src/diff.c:982
+#: src/diff.c:1042
 msgid "-v, --version            output version information and exit"
 msgstr "-v  --version  Εμφάνιση πληροφοριών έκδοσης κι έξοδος"
 
-#: src/diff.c:984
+#: src/diff.c:1044
 msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
 "ΑΡΧΕΙΑ είναι «ΑΡΧΕΙΟ1 ΑΡΧΕΙΟ2» ή «ΚΑΤ1 ΚΑΤ2» ή «ΚΑΤ ΑΡΧΕΙΟ...» ή «ΑΡΧΕΙΟ..."
 "ΚΑΤ»."
 
-#: src/diff.c:985
+#: src/diff.c:1045
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr ""
 "Αν δίδεται το --from-file ή το --to-file, τότε δεν υπάρχει περιορισμός στα "
-"ΑΡΧΕΙΑ. "
+"ΑΡΧΕΙΑ."
 
-#: src/diff.c:986 src/diff3.c:533 src/sdiff.c:220
+#: src/diff.c:1046 src/diff3.c:531 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
-msgstr "Αν ένα ΑΡΧΕΙΟ είναι «-», τότε ανάγνωση από την τυπική είσοδο. "
+msgstr "Αν ένα ΑΡΧΕΙΟ είναι «-», τότε ανάγνωση από την τυπική είσοδο."
 
-#: src/diff.c:996
+#: src/diff.c:1056
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Χρήση: %s [ΕΠΙΛΟΓΗ]... ΑΡΧΕΙΑ\n"
 
-#: src/diff.c:997
+#: src/diff.c:1057
 msgid "Compare FILES line by line."
 msgstr "Σύγκριση αρχείων γραμμή προς γραμμή."
 
-#: src/diff.c:1034
+#: src/diff.c:1094
 #, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "η επιλογή %s είναι αντικρουόμενη με την τιμή «%s»"
 
-#: src/diff.c:1047
+#: src/diff.c:1107
 #, c-format
 msgid "conflicting output style options"
 msgstr "αντικρουόμενες επιλογές για τη μορφή εξόδου"
 
-#: src/diff.c:1063
+#: src/diff.c:1123
 #, c-format
 msgid "invalid color '%s'"
 msgstr "μη έγκυρο χρώμα «%s»"
 
-#: src/diff.c:1119 src/diff.c:1329
+#: src/diff.c:1197 src/diff.c:1401
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Μόνο στο %s: %s\n"
 
-#: src/diff.c:1253
+#: src/diff.c:1325
 msgid "cannot compare '-' to a directory"
-msgstr "Î\91δύνατη η σύγκριση του «-» με ένα κατάλογο"
+msgstr "αδύνατη η σύγκριση του «-» με ένα κατάλογο"
 
-#: src/diff.c:1288
+#: src/diff.c:1360
 msgid "-D option not supported with directories"
 msgstr "Η επιλογή -D δεν υποστηρίζεται για καταλόγους"
 
-#: src/diff.c:1297
+#: src/diff.c:1369
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Οι υποκατάλογοι %s και %s είναι ταυτόσημοι\n"
 
-#: src/diff.c:1339 src/diff.c:1389
+#: src/diff.c:1411 src/diff.c:1461
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr "Το αρχείο %s είναι %s ενώ το αρχείο %s είναι %s\n"
 
-#: src/diff.c:1375
+#: src/diff.c:1447
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "Οι συμβολικοί σύνδεσμοι %s και %s διαφέρουν\n"
 
-#: src/diff.c:1462
+#: src/diff.c:1534
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Τα αρχεία %s καί %s είναι πανομοιότυπα\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff3.c:43
+#: src/diff3.c:51
 msgid "Randy Smith"
 msgstr "Randy Smith"
 
-#: src/diff3.c:356
+#: src/diff3.c:363
 #, c-format
 msgid "incompatible options"
 msgstr "ασύμβατες επιλογές"
 
-#: src/diff3.c:396
+#: src/diff3.c:403
 msgid "'-' specified for more than one input file"
 msgstr "«-» ορίστηκε για περισσότερα από ένα αρχεία εισόδου"
 
-#: src/diff3.c:447 src/diff3.c:1295 src/diff3.c:1698 src/diff3.c:1753
-#: src/sdiff.c:308 src/sdiff.c:846 src/sdiff.c:857
+#: src/diff3.c:445 src/diff3.c:1284 src/diff3.c:1683 src/diff3.c:1738
+#: src/sdiff.c:306 src/sdiff.c:843 src/sdiff.c:854
 msgid "read failed"
 msgstr "αποτυχία ανάγνωσης"
 
-#: src/diff3.c:480
+#: src/diff3.c:478
 msgid "-A, --show-all              output all changes, bracketing conflicts"
-msgstr "-A  --show-all  Έξοδος όλων των διαφορών σε αγκύλες."
+msgstr "-A  --show-all  Έξοδος όλων των διαφορών σε αγκύλες"
 
-#: src/diff3.c:482
+#: src/diff3.c:480
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
 msgstr ""
 "-e, --ed  έξοδος ενός ed script που περιλαμβάνει τις αλλαγές\n"
-"από OLDFILE σε YOURFILE στο MYFILE "
+"από OLDFILE σε YOURFILE στο MYFILE"
 
-#: src/diff3.c:484
+#: src/diff3.c:482
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
 msgstr "-E, --show-overlap          όπως -e, αλλά οι διαφορές σε αγκύλες"
 
-#: src/diff3.c:485
+#: src/diff3.c:483
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
@@ -1182,22 +1177,22 @@ msgstr ""
 "-3, --easy-only    όπως -e, αλλά περιλαμβάνει μόνο τις μη "
 "αλληλοεπικαλυπτόμενες αλλαγές"
 
-#: src/diff3.c:486
+#: src/diff3.c:484
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
 msgstr ""
 "-x, --overlap-only    όπως -e, αλλά περιλαμβάνει μόνο τις αλληλοκαλυπτόμενες "
 "αλλαγές"
 
-#: src/diff3.c:487
+#: src/diff3.c:485
 msgid "-X                          like -x, but bracket conflicts"
 msgstr "-X                          like -x, but bracket conflicts"
 
-#: src/diff3.c:488
+#: src/diff3.c:486
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
 msgstr "-i         προσάρτηση των εντολών «w» και «q» στα σενάρια του «ed»"
 
-#: src/diff3.c:490
+#: src/diff3.c:488
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
@@ -1205,50 +1200,49 @@ msgstr ""
 "-m, --merge                 έξοδος του συγχωνευμένου αρχείου σύμφωνα με την\n"
 "                                  -A αν δεν δίνεται άλλη επιλογή"
 
-#: src/diff3.c:493
+#: src/diff3.c:491
 msgid "-a, --text                  treat all files as text"
-msgstr "-a,  --text  Θεωρεί όλα τα αρχεία ως κείμενο."
+msgstr "-a,  --text  Θεωρεί όλα τα αρχεία ως κείμενο"
 
-#: src/diff3.c:494
+#: src/diff3.c:492
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
-msgstr "--strip-trailing-cr  Απαλειφή του χαρακτήρα επιστροφής στην είσοδο."
+msgstr " --strip-trailing-cr  Απαλειφή του χαρακτήρα επιστροφής στην είσοδο"
 
-#: src/diff3.c:495
+#: src/diff3.c:493
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
 msgstr ""
-"-T,  --initial-tab  στοίχιση των στηλοθετών με την επιπρόσθεση ενός στην "
-"αρχή."
+"-T,  --initial-tab  στοίχιση των στηλοθετών με την επιπρόσθεση ενός στην αρχή"
 
-#: src/diff3.c:496
+#: src/diff3.c:494
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
-msgstr "--diff-program=ΠΡΟΓΡ  Χρήση του ΠΡΟΓΡάμματος στη σύγκριση αρχείων."
+msgstr " --diff-program=ΠΡΟΓΡ  Χρήση του ΠΡΟΓΡάμματος στη σύγκριση αρχείων"
 
-#: src/diff3.c:497
+#: src/diff3.c:495
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
 msgstr ""
 "-L, --label=LABEL           χρήση LABEL αντί ονόματος αρχείου\n"
-"                                (μπορεί να επαναληφθεί μέχρι τρεις φορές) "
+"                                (μπορεί να επαναληφθεί μέχρι τρεις φορές)"
 
-#: src/diff3.c:500
+#: src/diff3.c:498
 msgid "    --help                  display this help and exit"
-msgstr "    --help                  εμφάνιση αυτής εδώ της βοήθειας κι έξοδος "
+msgstr "    --help                  εμφάνιση αυτής εδώ της βοήθειας κι έξοδος"
 
-#: src/diff3.c:501
+#: src/diff3.c:499
 msgid "-v, --version               output version information and exit"
 msgstr "-v,  --version  εμφάνιση πληροφοριών έκδοσης κι έξοδος"
 
-#: src/diff3.c:510
+#: src/diff3.c:508
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
 msgstr "Χρήση: %s [ΕΠΙΛΟΓΗ]... MYFILE OLDFILE YOURFILE\n"
 
-#: src/diff3.c:512
+#: src/diff3.c:510
 msgid "Compare three files line by line."
 msgstr "Σύγκριση τριών αρχείων γραμμή προς γραμμή."
 
-#: src/diff3.c:522
+#: src/diff3.c:520
 msgid ""
 "\n"
 "The default output format is a somewhat human-readable representation of\n"
@@ -1275,54 +1269,54 @@ msgstr ""
 "είσοδο, αυτό είναι\n"
 "σταθερότερο απο την χρήση του ed.\n"
 
-#: src/diff3.c:534
+#: src/diff3.c:532
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
 msgstr "Σε επιτυχία η έξοδος είναι 0, σε σύγκρουση 1 και σε πρόβλημα 2."
 
-#: src/diff3.c:727
+#: src/diff3.c:725
 msgid "internal error: screwup in format of diff blocks"
 msgstr "εσωτερικό σφάλμα: μπέρδεμα στις μορφές των μπλοκ diff"
 
-#: src/diff3.c:1022
+#: src/diff3.c:1015
 #, c-format
 msgid "%s: diff failed: "
 msgstr "%s: αποτυχία του diff: "
 
-#: src/diff3.c:1044
+#: src/diff3.c:1037
 msgid "internal error: invalid diff type in process_diff"
 msgstr "εσωτερικό σφάλμα: μη έγκυρος τύπος diff στο process_diff"
 
-#: src/diff3.c:1069
+#: src/diff3.c:1060
 msgid "invalid diff format; invalid change separator"
 msgstr "άκυρη μορφή diff· μη έγκυρος οριοθέτης αλλαγής"
 
-#: src/diff3.c:1305
+#: src/diff3.c:1294
 msgid "invalid diff format; incomplete last line"
 msgstr "άκυρη μορφή diff· ασυμπλήρωτη τελευταία γραμμή"
 
-#: src/diff3.c:1329 src/sdiff.c:276 src/util.c:969
+#: src/diff3.c:1318 src/sdiff.c:274 src/util.c:1069
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "το υποπρόγραμμα «%s» δεν ήταν δυνατόν να κληθεί"
 
-#: src/diff3.c:1354
+#: src/diff3.c:1343
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "άκυρη μορφή diff· λάθος χαρακτήρες στη γραμμή αποτελεσμάτων"
 
-#: src/diff3.c:1427
+#: src/diff3.c:1416
 msgid "internal error: invalid diff type passed to output"
 msgstr "εσωτερικό σφάλμα: μη έγκυρος τύπος diff πέρασε στην έξοδο"
 
-#: src/diff3.c:1700 src/diff3.c:1757
+#: src/diff3.c:1685 src/diff3.c:1742
 msgid "input file shrank"
-msgstr "Το αρχείο εισόδου συρρικνώθηκε"
+msgstr "το αρχείο εισόδου συρρικνώθηκε"
 
-#: src/dir.c:156
+#: src/dir.c:154
 #, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "αδύνατη η σύγκριση των ονομάτων αρχείων «%s» και «%s»"
 
-#: src/dir.c:225
+#: src/dir.c:223
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: αναδρομικός βρόχος στον κατάλογο"
@@ -1332,125 +1326,125 @@ msgstr "%s: αναδρομικός βρόχος στον κατάλογο"
 msgid "Thomas Lord"
 msgstr "Thomas Lord"
 
-#: src/sdiff.c:174
+#: src/sdiff.c:173
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
 msgstr ""
 "-o,  --output=ΑΡΧΕΙΟ  Αλληλεπιδραστική λειτουργία με αποστολή εξόδου στο "
-"ΑΡΧΕΙΟ."
+"ΑΡΧΕΙΟ"
 
-#: src/sdiff.c:176
+#: src/sdiff.c:175
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
 msgstr "-i,  --ignore-case  Θεωρεί πεζά-κεφαλαία ίδια"
 
-#: src/sdiff.c:177
+#: src/sdiff.c:176
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
 msgstr ""
 "-E,  --ignore-tab-expansion  Αγνοεί αλλαγές οφειλόμενες στη στηλοθέτηση"
 
-#: src/sdiff.c:178
+#: src/sdiff.c:177
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
 msgstr ""
 "-Z, --ignore-trailing-space  αγνοεί το λευκό διάστημα στο τέλος γραμμής"
 
-#: src/sdiff.c:179
+#: src/sdiff.c:178
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
 msgstr ""
 "-b  --ignore-space-change  αγνοεί αλλαγές οφειλόμενες στον αριθμό λευκών "
 "διαστημάτων"
 
-#: src/sdiff.c:180
+#: src/sdiff.c:179
 msgid "-W, --ignore-all-space       ignore all white space"
-msgstr "-W,  --ignore-all-space  Αγνοεί όλα τα λευκά διαστήματα."
+msgstr "-W,  --ignore-all-space  Αγνοεί όλα τα λευκά διαστήματα"
 
-#: src/sdiff.c:181
+#: src/sdiff.c:180
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
 msgstr ""
 "-B,  --ignore-blank-lines  Αγνοεί αλλαγές οφειλόμενες στις λευκές γραμμές"
 
-#: src/sdiff.c:182
+#: src/sdiff.c:181
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=RE  αγνοεί αλλαγές που οι γραμμές τους "
 "ταιριάζουν με RE"
 
-#: src/sdiff.c:183
+#: src/sdiff.c:182
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
-msgstr "--strip-trailing-cr  Απαλειφή του χαρακτήρα επιστροφής στην είσοδο"
+msgstr " --strip-trailing-cr  Απαλειφή του χαρακτήρα επιστροφής στην είσοδο"
 
-#: src/sdiff.c:184
+#: src/sdiff.c:183
 msgid "-a, --text                   treat all files as text"
 msgstr "-a  --text  Θεωρεί όλα τα αρχεία ως κείμενο"
 
-#: src/sdiff.c:186
+#: src/sdiff.c:185
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
 msgstr ""
-"-w,  --width=ΑΡ  Έξοδος με το πολύ ΑΡ στήλες εκτύπωσης (προεπιλογή 130)."
+"-w,  --width=ΑΡ  Έξοδος με το πολύ ΑΡ στήλες εκτύπωσης (προεπιλογή 130)"
 
-#: src/sdiff.c:187
+#: src/sdiff.c:186
 msgid ""
 "-l, --left-column            output only the left column of common lines"
 msgstr "-l,  --left-column  Εμφάνιση στην αριστερή στήλη των κοινών γραμμών"
 
-#: src/sdiff.c:188
+#: src/sdiff.c:187
 msgid "-s, --suppress-common-lines  do not output common lines"
 msgstr "-s,  --suppress-common-lines  Οι ταυτόσημες γραμμές δεν εμφανίζονται"
 
-#: src/sdiff.c:190
+#: src/sdiff.c:189
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
 msgstr "-t,  --expand-tabs  Μετατροπή στηλοθετών σε διαστήματα στην έξοδο"
 
-#: src/sdiff.c:191
+#: src/sdiff.c:190
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
 msgstr ""
 "  --tabsize=ΑΡ  Ο αριθμός διαστημάτων του στηλοθέτη είναι ΑΡ (προεπιλογή 8) "
 "στήλες"
 
-#: src/sdiff.c:193
+#: src/sdiff.c:192
 msgid "-d, --minimal                try hard to find a smaller set of changes"
 msgstr "-d, --minimal   προσπάθεια εύρεσης μικρότερου συνόλου αλλαγών"
 
-#: src/sdiff.c:194
+#: src/sdiff.c:193
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
 msgstr ""
 "-H,  --speed-large-files  Υποθέτει μεγάλα αρχεία με πολλές σκόρπιες "
 "μικροδιαφορές"
 
-#: src/sdiff.c:195
+#: src/sdiff.c:194
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
-msgstr "--diff-program=ΠΡΟΓΡ  Χρήση του ΠΡΟΓΡάμματος στη σύγκριση αρχείων"
+msgstr " --diff-program=ΠΡΟΓΡ  Χρήση του ΠΡΟΓΡάμματος στη σύγκριση αρχείων"
 
-#: src/sdiff.c:197
+#: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
-msgstr "    --help    εμφάνιση αυτής εδώ της βοήθειας κι έξοδος "
+msgstr "    --help    εμφάνιση αυτής εδώ της βοήθειας κι έξοδος"
 
-#: src/sdiff.c:198
+#: src/sdiff.c:197
 msgid "-v, --version                output version information and exit"
 msgstr "-v  --version  ονόμα, έκδοση κι έξοδος"
 
-#: src/sdiff.c:207
+#: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
 msgstr "Χρήση: %s [ΕΠΙΛΟΓΗ]... ΑΡΧΕΙΟ1 ΑΡΧΕΙΟ2\n"
 
-#: src/sdiff.c:209
+#: src/sdiff.c:208
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
 msgstr "Συγχώνευση δίπλα-δίπλα των διαφορών των ΑΡΧΕΙΟ1 και ΑΡΧΕΙΟ2."
 
-#: src/sdiff.c:330
+#: src/sdiff.c:328
 msgid "cannot interactively merge standard input"
-msgstr "αδυνατώ να συγχωνεύσω αλληλεπιδραστικά την πρότυπη είσοδο."
+msgstr "αδυνατώ να συγχωνεύσω αλληλεπιδραστικά την πρότυπη είσοδο"
 
-#: src/sdiff.c:597
+#: src/sdiff.c:594
 msgid "both files to be compared are directories"
 msgstr "και τα δύο προς σύγκριση αρχεία είναι κατάλογοι"
 
-#: src/sdiff.c:820
+#: src/sdiff.c:817
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
 "eb:\tEdit then use both versions.\n"
@@ -1475,28 +1469,12 @@ msgstr ""
 "v:\tΣυμπεριλαμβάνει τις ταυτόσημες γραμμές και το επισημαίνει.\n"
 "q:\tΈξοδος.\n"
 
-#: src/util.c:662
+#: src/util.c:755
 #, c-format
 msgid "unrecognized prefix: %s"
 msgstr "άγνωστο πρόθεμα: %s"
 
-#: src/util.c:692
+#: src/util.c:785
 #, c-format
 msgid "unparsable value for --palette"
-msgstr "unparsable τιμή για --palette "
-
-#, c-format
-#~ msgid "invalid %s%s argument '%s'"
-#~ msgstr "μη έγκυρο %s%s όρισμα «%s»"
-
-#, c-format
-#~ msgid "invalid suffix in %s%s argument '%s'"
-#~ msgstr "μη έγκυρη κατάληξη «%s» στο όρισμα %s%s"
-
-#, c-format
-#~ msgid "%s%s argument '%s' too large"
-#~ msgstr "%s%s όρισμα «%s» πολύ μεγάλο"
-
-#, c-format
-#~ msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
-#~ msgstr "%s home page: <https://www.gnu.org/software/%s/>\n"
+msgstr "unparsable τιμή για --palette"
index 80d03ba..3f31ad0 100644 (file)
Binary files a/po/eo.gmo and b/po/eo.gmo differ
index 345d61c..8b97a24 100644 (file)
--- a/po/eo.po
+++ b/po/eo.po
@@ -2,14 +2,14 @@
 # Copyright (C) 1996, 2001, 2002, 2004, 2013, 2018, 2019 Free Software Foundation, Inc.
 # This file is distributed under the same license as the diffutils package.
 # Edmund GRIMLEY EVANS <edmundo@rano.org>, 2001, 2002, 2003, 2004.
-# Felipe Castro <fefcas@gmail.com>, 2013, 2018, 2019.
+# Felipe Castro <fefcas@gmail.com>, 2013, 2018, 2019, 2021.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: GNU diffutils 3.6.17\n"
+"Project-Id-Version: GNU diffutils 3.7.41\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2021-08-01 18:56-0700\n"
-"PO-Revision-Date: 2019-01-27 18:19+0100\n"
+"POT-Creation-Date: 2023-05-21 01:51-0700\n"
+"PO-Revision-Date: 2021-08-10 21:48-0300\n"
 "Last-Translator: Felipe Castro <fefcas@gmail.com>\n"
 "Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
 "Language: eo\n"
@@ -17,31 +17,31 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
-"X-Generator: Poedit 2.0.7\n"
+"X-Generator: Poedit 2.4.2\n"
 
-#: lib/argmatch.c:132
+#: lib/argmatch.c:145
 #, c-format
 msgid "invalid argument %s for %s"
 msgstr "malvalida argumento %s por %s"
 
-#: lib/argmatch.c:133
+#: lib/argmatch.c:146
 #, c-format
 msgid "ambiguous argument %s for %s"
 msgstr "plursenca argumento %s por %s"
 
-#: lib/argmatch.c:152 lib/argmatch.h:223
+#: lib/argmatch.c:165 lib/argmatch.h:242
 msgid "Valid arguments are:"
 msgstr "Validaj argumentoj estas:"
 
-#: lib/c-stack.c:187
+#: lib/c-stack.c:186
 msgid "program error"
 msgstr "program-eraro"
 
-#: lib/c-stack.c:188
+#: lib/c-stack.c:187
 msgid "stack overflow"
 msgstr "stako tro granda"
 
-#: lib/error.c:195
+#: lib/error.c:193
 msgid "Unknown system error"
 msgstr "Nekonata sistemeraro"
 
@@ -197,83 +197,83 @@ msgstr "%s: la modifilo postulas argumenton -- '%c'\n"
 #. If you don't know what to put here, please see
 #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:355
+#: lib/quotearg.c:354
 msgid "`"
 msgstr "‘"
 
-#: lib/quotearg.c:356
+#: lib/quotearg.c:355
 msgid "'"
 msgstr "’"
 
-#: lib/regcomp.c:135
+#: lib/regcomp.c:122
 msgid "Success"
 msgstr "Sukceso"
 
-#: lib/regcomp.c:138
+#: lib/regcomp.c:125
 msgid "No match"
 msgstr "Nenia trafo"
 
-#: lib/regcomp.c:141
+#: lib/regcomp.c:128
 msgid "Invalid regular expression"
 msgstr "Malvalida regulesprimo"
 
-#: lib/regcomp.c:144
+#: lib/regcomp.c:131
 msgid "Invalid collation character"
 msgstr "Malvalida ordiga signo"
 
-#: lib/regcomp.c:147
+#: lib/regcomp.c:134
 msgid "Invalid character class name"
 msgstr "Malvalida nomo de signoklaso"
 
-#: lib/regcomp.c:150
+#: lib/regcomp.c:137
 msgid "Trailing backslash"
 msgstr "Vosta retroklino"
 
-#: lib/regcomp.c:153
+#: lib/regcomp.c:140
 msgid "Invalid back reference"
 msgstr "Malvalida retroreferenco"
 
-#: lib/regcomp.c:156
+#: lib/regcomp.c:143
 msgid "Unmatched [, [^, [:, [., or [="
 msgstr "Neparigita [, [^, [:, [., aŭ [="
 
-#: lib/regcomp.c:159
+#: lib/regcomp.c:146
 msgid "Unmatched ( or \\("
 msgstr "Neparigita ( aŭ \\("
 
-#: lib/regcomp.c:162
+#: lib/regcomp.c:149
 msgid "Unmatched \\{"
 msgstr "Neparigita \\{"
 
-#: lib/regcomp.c:165
+#: lib/regcomp.c:152
 msgid "Invalid content of \\{\\}"
 msgstr "Malvalida kunteksto de \\{\\}"
 
-#: lib/regcomp.c:168
+#: lib/regcomp.c:155
 msgid "Invalid range end"
 msgstr "Malvalida intervalo-fino"
 
-#: lib/regcomp.c:171
+#: lib/regcomp.c:158
 msgid "Memory exhausted"
 msgstr "Memoro estas elĉerpita"
 
-#: lib/regcomp.c:174
+#: lib/regcomp.c:161
 msgid "Invalid preceding regular expression"
 msgstr "Malvalida antaŭa regulesprimo"
 
-#: lib/regcomp.c:177
+#: lib/regcomp.c:164
 msgid "Premature end of regular expression"
 msgstr "Neatendita fino de regulesprimo"
 
-#: lib/regcomp.c:180
+#: lib/regcomp.c:167
 msgid "Regular expression too big"
 msgstr "Regula esprimo tro grandas"
 
-#: lib/regcomp.c:183
+#: lib/regcomp.c:170
 msgid "Unmatched ) or \\)"
 msgstr "Neparigita ) aŭ \\)"
 
-#: lib/regcomp.c:676
+#: lib/regcomp.c:650
 msgid "No previous regular expression"
 msgstr "Mankas antaŭa regulesprimo"
 
@@ -305,7 +305,7 @@ msgstr "malsukcesis remalfermi %s per reĝimo %s"
 #: lib/xstdopen.c:34
 #, c-format
 msgid "standard file descriptors"
-msgstr ""
+msgstr "normaj dosiernumeroj"
 
 #: lib/version-etc.c:73
 #, c-format
@@ -326,19 +326,16 @@ msgstr "©"
 
 #. TRANSLATORS: The %s placeholder is the web address of the GPL license.
 #: lib/version-etc.c:88
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "License GPLv3+: GNU GPL version 3 or later <%s>.\n"
 "This is free software: you are free to change and redistribute it.\n"
 "There is NO WARRANTY, to the extent permitted by law.\n"
 msgstr ""
-"\n"
-"Permeso GPLv3+: GNU GPL versio 3 aŭ posta <https://gnu.org/licenses/gpl."
-"html>.\n"
+"Permeso GPLv3+: GNU GPL versio 3 aŭ posta <%s>.\n"
 "Tio ĉi estas libera programaro: vi estas libera por ŝanĝi kaj redisdoni "
 "ĝin.\n"
 "Ekzistas NENIU GARANTIO, laŭ plej amplekse permesate de la leĝoj.\n"
-"\n"
 
 #. TRANSLATORS: %s denotes an author name.
 #: lib/version-etc.c:105
@@ -453,12 +450,10 @@ msgstr ""
 #. "Report translation bugs to <...>\n" with the address for translation
 #. bugs (typically your translation team's web or email address).
 #: lib/version-etc.c:249
-#, fuzzy, c-format
+#, c-format
 msgid "Report bugs to: %s\n"
 msgstr ""
-"\n"
 "Raportu program-misojn al: %s\n"
-"\n"
 "Raportu tradukajn misojn al: <translation-team-eo@lists.sourceforge.net>\n"
 
 #: lib/version-etc.c:251
@@ -472,22 +467,21 @@ msgid "%s home page: <%s>\n"
 msgstr "%s hejm-paĝo: <%s>\n"
 
 #: lib/version-etc.c:260
-#, fuzzy, c-format
+#, c-format
 msgid "General help using GNU software: <%s>\n"
-msgstr ""
-"Ĝenerala helpo por uzi programaron GNU: <https://www.gnu.org/gethelp/>\n"
+msgstr "Ĝenerala helpo por uzi programaron GNU: <%s>\n"
 
-#: src/analyze.c:454 src/diff.c:1406
+#: src/analyze.c:455 src/diff.c:1478
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Dosieroj %s kaj %s estas malsamaj\n"
 
-#: src/analyze.c:455
+#: src/analyze.c:456
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "Ciferecaj dosieroj %s kaj %s estas malsamaj\n"
 
-#: src/analyze.c:706 src/diff3.c:1470 src/util.c:1254
+#: src/analyze.c:707 src/diff3.c:1457 src/util.c:1354
 msgid "No newline at end of file"
 msgstr "Mankas linifino ĉe fino de dosiero"
 
@@ -501,41 +495,42 @@ msgstr "Torbjorn GRANLUND"
 msgid "David MacKenzie"
 msgstr "David MACKENZIE"
 
-#: src/cmp.c:120 src/diff.c:879 src/diff3.c:467 src/sdiff.c:160
+#: src/cmp.c:124 src/diff.c:939 src/diff3.c:465 src/sdiff.c:159
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Provu '%s --help' por pli da informoj."
 
-#: src/cmp.c:138
+#: src/cmp.c:142
 #, c-format
 msgid "invalid --ignore-initial value '%s'"
 msgstr "malvalida valoro '%s' de --ignore-initial"
 
-#: src/cmp.c:148
+#: src/cmp.c:152
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr "modifiloj -l kaj -s malakordas"
 
-#: src/cmp.c:156 src/diff.c:887 src/diff3.c:474 src/sdiff.c:168 src/sdiff.c:316
-#: src/sdiff.c:323 src/sdiff.c:876 src/util.c:852 src/util.c:952 src/util.c:959
+#: src/cmp.c:160 src/diff.c:947 src/diff3.c:472 src/sdiff.c:167 src/sdiff.c:314
+#: src/sdiff.c:321 src/sdiff.c:873 src/util.c:952 src/util.c:1052
+#: src/util.c:1059
 msgid "write failed"
 msgstr "skriberaro"
 
-#: src/cmp.c:158 src/diff.c:889 src/diff.c:1471 src/diff3.c:476 src/sdiff.c:170
+#: src/cmp.c:162 src/diff.c:949 src/diff.c:1543 src/diff3.c:474 src/sdiff.c:169
 msgid "standard output"
 msgstr "normala eligo"
 
-#: src/cmp.c:162
+#: src/cmp.c:166
 msgid "-b, --print-bytes          print differing bytes"
 msgstr "-b, --print-bytes          eligi malsamajn bajtojn"
 
-#: src/cmp.c:163
+#: src/cmp.c:167
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
 msgstr ""
 "-i N  --ignore-initial=SALTO     preterpasi la unuajn SALTO bajtojn de ambaŭ "
 "enigoj"
 
-#: src/cmp.c:164
+#: src/cmp.c:168
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
@@ -544,39 +539,39 @@ msgstr ""
 "                                      DOSIERO1 kaj la unuajn SALT2 bajtojn\n"
 "                                      de DOSIERO2"
 
-#: src/cmp.c:166
+#: src/cmp.c:170
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
 msgstr ""
 "-l, --verbose              montri numerojn kaj valorojn de ĉiuj malsamaj "
 "bajtoj"
 
-#: src/cmp.c:167
+#: src/cmp.c:171
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
 msgstr "-n, --bytes=LIMO           kompari maksimume LIMO bajtojn"
 
-#: src/cmp.c:168
+#: src/cmp.c:172
 msgid "-s, --quiet, --silent      suppress all normal output"
 msgstr "-s, --quiet, --silent      forkaŝi ĉiun normalan eligon"
 
-#: src/cmp.c:169
+#: src/cmp.c:173
 msgid "    --help                 display this help and exit"
 msgstr "    --help                 montri ĉi tiun helpon kaj eliri"
 
-#: src/cmp.c:170
+#: src/cmp.c:174
 msgid "-v, --version              output version information and exit"
 msgstr "-v, --version              eligi informon pri versio kaj eliri"
 
-#: src/cmp.c:179
+#: src/cmp.c:183
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
 msgstr "Uzmaniero: %s [MODIFILO]... DOSIERO1 [DOSIERO2 [SALT1 [SALT2]]]\n"
 
-#: src/cmp.c:181
+#: src/cmp.c:185
 msgid "Compare two files byte by byte."
 msgstr "Kompari du dosierojn bajton post bajto."
 
-#: src/cmp.c:183
+#: src/cmp.c:187
 msgid ""
 "The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
 "at the beginning of each file (zero by default)."
@@ -584,13 +579,13 @@ msgstr ""
 "La nedevigaj SALT1 kaj SALT2 indikas la nombron da bajtoj por salti\n"
 "en la komenco de ĉiu dosiero (aprioras nulo)."
 
-#: src/cmp.c:186 src/diff.c:999 src/diff3.c:514 src/sdiff.c:211
+#: src/cmp.c:190 src/diff.c:1059 src/diff3.c:512 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
 "Nepraj argumentoj por longaj modifiloj ankaŭ nepras por la mallongaj.\n"
 
-#: src/cmp.c:192
+#: src/cmp.c:196
 msgid ""
 "SKIP values may be followed by the following multiplicative suffixes:\n"
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
@@ -600,192 +595,192 @@ msgstr ""
 "kB 1000, K 1024, MB 1 000 000, M 1 048 576,\n"
 "GB 1 000 000 000, G 1 073 741 824, kaj tiel plu por T, P, E, Z, Y."
 
-#: src/cmp.c:195
+#: src/cmp.c:199
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "Se DOSIERO estas '-' aŭ mankas, legi la normalan enigon."
 
-#: src/cmp.c:196 src/diff.c:987 src/sdiff.c:221
+#: src/cmp.c:200 src/diff.c:1047 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr ""
 "Elig-valoro estas 0 se enigoj estas samaj, 1 se malsamaj, 2 se problemaj."
 
-#: src/cmp.c:243
+#: src/cmp.c:247
 #, c-format
 msgid "invalid --bytes value '%s'"
 msgstr "malvalida valoro '%s' de --bytes"
 
-#: src/cmp.c:269 src/diff.c:797 src/diff3.c:361 src/sdiff.c:567
+#: src/cmp.c:273 src/diff.c:857 src/diff3.c:368 src/sdiff.c:564
 #, c-format
 msgid "missing operand after '%s'"
 msgstr "mankas argumento post '%s'"
 
-#: src/cmp.c:281 src/diff.c:799 src/diff3.c:363 src/sdiff.c:569
+#: src/cmp.c:285 src/diff.c:859 src/diff3.c:370 src/sdiff.c:566
 #, c-format
 msgid "extra operand '%s'"
 msgstr "superflua argumento '%s'"
 
-#: src/cmp.c:507
+#: src/cmp.c:521
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s malsamas: bajto %s, linio %s\n"
 
-#: src/cmp.c:523
+#: src/cmp.c:537
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
 msgstr "%s %s malsamas: bajto %s, linio %s estas %3o %s %3o %s\n"
 
-#: src/cmp.c:580
+#: src/cmp.c:594
 #, c-format
 msgid "cmp: EOF on %s which is empty\n"
 msgstr "cmp: EOF ĉe %s, kiu malplenas\n"
 
-#: src/cmp.c:594
+#: src/cmp.c:608
 #, c-format
 msgid "cmp: EOF on %s after byte %s, line %s\n"
 msgstr "cmp: EOF ĉe %s post bajto %s, linio %s\n"
 
-#: src/cmp.c:595
+#: src/cmp.c:609
 #, c-format
 msgid "cmp: EOF on %s after byte %s, in line %s\n"
 msgstr "cmp: EOF ĉe %s post bajto %s, en linio %s\n"
 
-#: src/cmp.c:601
+#: src/cmp.c:615
 #, c-format
 msgid "cmp: EOF on %s after byte %s\n"
 msgstr "cmp: EOF ĉe %s post bajto %s\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:51
+#: src/diff.c:50
 msgid "Paul Eggert"
 msgstr "Paul EGGERT"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:52
+#: src/diff.c:51
 msgid "Mike Haertel"
 msgstr "Mike HAERTEL"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:53
+#: src/diff.c:52
 msgid "David Hayes"
 msgstr "David HAYES"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:54
+#: src/diff.c:53
 msgid "Richard Stallman"
 msgstr "Richard STALLMANN"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:55
+#: src/diff.c:54
 msgid "Len Tower"
 msgstr "Len TOWER"
 
-#: src/diff.c:355
+#: src/diff.c:365
 #, c-format
 msgid "invalid context length '%s'"
 msgstr "malvalida longo '%s' de kunteksto"
 
-#: src/diff.c:438
+#: src/diff.c:487
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "dispaĝigo ne eblas kun ĉi tiu sistemo"
 
-#: src/diff.c:453 src/diff3.c:341
+#: src/diff.c:502 src/diff3.c:348
 #, c-format
 msgid "too many file label options"
 msgstr "tro multe da dosier-etikedaj modifiloj"
 
-#: src/diff.c:530
+#: src/diff.c:579
 #, c-format
 msgid "invalid width '%s'"
 msgstr "malvalida larĝo '%s'"
 
-#: src/diff.c:534
+#: src/diff.c:583
 msgid "conflicting width options"
 msgstr "malakordaj modifiloj pri larĝo"
 
-#: src/diff.c:559
+#: src/diff.c:608
 #, c-format
 msgid "invalid horizon length '%s'"
 msgstr "malvalida horizonta longo '%s'"
 
-#: src/diff.c:615
+#: src/diff.c:664
 #, c-format
 msgid "invalid tabsize '%s'"
 msgstr "malvalida TAB-larĝo '%s'"
 
-#: src/diff.c:619
+#: src/diff.c:668
 msgid "conflicting tabsize options"
 msgstr "malkongruaj modifiloj pri TAB-larĝo"
 
-#: src/diff.c:774
+#: src/diff.c:834
 msgid "--from-file and --to-file both specified"
 msgstr "--from-file kaj --to-file ambaŭ specifitaj"
 
-#: src/diff.c:893
+#: src/diff.c:953
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "    --normal                  montri normalan malsamon (aprioras)"
 
-#: src/diff.c:894
+#: src/diff.c:954
 msgid "-q, --brief                   report only when files differ"
 msgstr "-q, --brief                   montri nur kiam la dosieroj malsamas"
 
-#: src/diff.c:895
+#: src/diff.c:955
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr "-s, --report-identical-files  montri kiam du dosieroj samas"
 
-#: src/diff.c:896
+#: src/diff.c:956
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
 "-c, -C NUM, --context[=NUM]   montri NUM (aprioras 3) liniojn da kopiita "
 "kunteksto"
 
-#: src/diff.c:897
+#: src/diff.c:957
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
 "-u, -U NUM, --unified[=NUM]   montri NUM (aprioras 3) liniojn da unuigita "
 "kunteksto"
 
-#: src/diff.c:898
+#: src/diff.c:958
 msgid "-e, --ed                      output an ed script"
 msgstr "-e, --ed                      montri ed-skripton"
 
-#: src/diff.c:899
+#: src/diff.c:959
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n, --rcs                     montri malsamon laŭ RCS-formo"
 
-#: src/diff.c:900
+#: src/diff.c:960
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side            montri en du kolumnoj"
 
-#: src/diff.c:901
+#: src/diff.c:961
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
 "-W, --width=NUM               montri maksimume NUM (aprioras 130) kolumnojn"
 
-#: src/diff.c:902
+#: src/diff.c:962
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr ""
 "    --left-column             montri nur la maldekstran kolumnon de komunaj "
 "linioj"
 
-#: src/diff.c:903
+#: src/diff.c:963
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "    --suppress-common-lines   ne montri komunajn liniojn"
 
-#: src/diff.c:905
+#: src/diff.c:965
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr "-p, --show-c-function         montri en kiu C-funkcio ĉiu ŝanĝo estas"
 
-#: src/diff.c:906
+#: src/diff.c:966
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr ""
 "-F, --show-function-line=RE   montri la plej freŝa linio kongruanta al RE"
 
-#: src/diff.c:907
+#: src/diff.c:967
 msgid ""
 "    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
@@ -794,84 +789,84 @@ msgstr ""
 "tempindiko\n"
 "                                (povas esti ripetata)"
 
-#: src/diff.c:910
+#: src/diff.c:970
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr "-t, --expand-tabs             etendigi tabojn al spacoj en la eligo"
 
-#: src/diff.c:911
+#: src/diff.c:971
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr "-T, --initial-tab             ĝustigi tabojn per antaŭmeto de tabo"
 
-#: src/diff.c:912
+#: src/diff.c:972
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=NUM             tab-lokoj estas post ĉiuj NUM (aprioras 8) "
 "kolumnoj"
 
-#: src/diff.c:913
+#: src/diff.c:973
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
 "    --suppress-blank-empty    forkaŝi spacon aŭ tabon antaŭ malplenaj "
 "eligitaj linioj"
 
-#: src/diff.c:914
+#: src/diff.c:974
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr ""
 "-l, --paginate                pasigi la eligon tra 'pr' por enpaĝigi ĝin"
 
-#: src/diff.c:916
+#: src/diff.c:976
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr ""
 "-r, --recursive                 rikure kompari trovitajn subdosierujojn"
 
-#: src/diff.c:917
+#: src/diff.c:977
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr "    --no-dereference            ne sekvi simbolajn ligojn"
 
-#: src/diff.c:918
+#: src/diff.c:978
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr ""
 "-N, --new-file                  trakti mankantajn dosierojn kiel malplenajn"
 
-#: src/diff.c:919
+#: src/diff.c:979
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
 "    --unidirectional-new-file   trakti mankantajn unuajn dosierojn kiel "
 "malplenajn"
 
-#: src/diff.c:920
+#: src/diff.c:980
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ""
 "    --ignore-file-name-case     preteratenti usklecon dum komparo de "
 "dosiernomoj"
 
-#: src/diff.c:921
+#: src/diff.c:981
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
 "    --no-ignore-file-name-case  konsideri usklecon dum komparo de dosiernomoj"
 
-#: src/diff.c:922
+#: src/diff.c:982
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr ""
 "-x, --exclude=ŜABLONO           forigi dosierojn, kiuj kongruas kun ŜABLONO"
 
-#: src/diff.c:923
+#: src/diff.c:983
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
 "-X, --exclude-from=DOSIERO      forigi dosierojn, kiuj kongruas kun iu "
 "ŝablono en DOSIERO"
 
-#: src/diff.c:924
+#: src/diff.c:984
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
 "-S, --starting-file=DOSIERO     komenci per DOSIERO, komparante dosierujojn"
 
-#: src/diff.c:925
+#: src/diff.c:985
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
@@ -879,7 +874,7 @@ msgstr ""
 "    --from-file=DOSIERO1        kompari DOSIERO1 kun ĉiuj argumentoj;\n"
 "                                  DOSIERO1 povas esti dosierujo"
 
-#: src/diff.c:927
+#: src/diff.c:987
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
@@ -887,78 +882,78 @@ msgstr ""
 "    --to-file=DOSIERO2          kompari ĉiujn argumentojn kun DOSIERO2;\n"
 "                                  DOSIERO2 povas esti dosierujo"
 
-#: src/diff.c:930
+#: src/diff.c:990
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr ""
 "-i, --ignore-case               preteratenti malsamojn en uskleco en "
 "dosierenhavo"
 
-#: src/diff.c:931
+#: src/diff.c:991
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr ""
 "-E, --ignore-tab-expansion      preteratenti ŝanĝojn kaŭzatajn de tab-"
 "etendigo"
 
-#: src/diff.c:932
+#: src/diff.c:992
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr "-Z, --ignore-trailing-space     preteratenti blank-spacon ĉe linifino"
 
-#: src/diff.c:933
+#: src/diff.c:993
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr ""
 "-b, --ignore-space-change       preteratenti ŝanĝojn en kvanto da blank-spaco"
 
-#: src/diff.c:934
+#: src/diff.c:994
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w, --ignore-all-space          preteratenti ĉiun blankan spacon"
 
-#: src/diff.c:935
+#: src/diff.c:995
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr ""
 "-B, --ignore-blank-lines         preteratenti ŝanĝojn, kie linioj estas ĉiuj "
 "malplenaj"
 
-#: src/diff.c:936
+#: src/diff.c:996
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=RE  preteratenti ŝanĝojn, kie ĉiuj linioj "
 "kongruas al RE"
 
-#: src/diff.c:938
+#: src/diff.c:998
 msgid "-a, --text                      treat all files as text"
 msgstr "-a, --text                     trakti ĉiujn dosierojn kiel tekstajn"
 
-#: src/diff.c:939
+#: src/diff.c:999
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr "    --strip-trailing-cr         forigi linifinan CR ĉe enigo"
 
-#: src/diff.c:941
+#: src/diff.c:1001
 msgid "    --binary                    read and write data in binary mode"
 msgstr "    --binary                    legi kaj skribi datumaron ciferece"
 
-#: src/diff.c:944
+#: src/diff.c:1004
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
 "-D, --ifdef=NOMO                montri kunfanditan dosieron kun malsamoj "
 "'#ifdef NOMO'"
 
-#: src/diff.c:945
+#: src/diff.c:1005
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr "    --GTYPE-group-format=GFMT   enformigi enig-grupojn GTYPE per GFMT"
 
-#: src/diff.c:946
+#: src/diff.c:1006
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr "    --line-format=LFMT          enformigi ĉiujn enigliniojn per LFMT"
 
-#: src/diff.c:947
+#: src/diff.c:1007
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr "    --LTYPE-line-format=LFMT    enformigi enig-grupojn LTYPE per LFMT"
 
-#: src/diff.c:948
+#: src/diff.c:1008
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
@@ -966,12 +961,12 @@ msgstr ""
 "  Tiuj enformigaj modifiloj provizas rafinitan regadon pri la eligo\n"
 "    de diff, ĝeneraliganta -D/--ifdef."
 
-#: src/diff.c:950
+#: src/diff.c:1010
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
 "  LTYPE estas 'old', 'new' aŭ 'unchanged'.  GTYPE estas LTYPE aŭ 'changed'."
 
-#: src/diff.c:951
+#: src/diff.c:1011
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -999,7 +994,7 @@ msgstr ""
 "       M  L+1\n"
 "    %(A=B?T:E)  se A egalas al B, do T, male E"
 
-#: src/diff.c:963
+#: src/diff.c:1023
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -1011,7 +1006,7 @@ msgstr ""
 "    %l  enhavo linio, sen eventuala linifino\n"
 "    %[-][LARĜO][.[PREC]]{doxX}n  printf-stila indiko de lininumero"
 
-#: src/diff.c:967
+#: src/diff.c:1027
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1025,34 +1020,33 @@ msgstr ""
 "    %c'\\000'  la signo kun okuma kodo OOO\n"
 "    C    la signo C (aliaj signoj reprezentas ili mem)"
 
-#: src/diff.c:973
+#: src/diff.c:1033
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr "-d, --minimal            strebe serĉi pli etan aron da ŝanĝoj"
 
-#: src/diff.c:974
+#: src/diff.c:1034
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr ""
 "    --horizon-lines=NUM  teni NUM liniojn de la komuna prefikso kaj sufikso"
 
-#: src/diff.c:975
+#: src/diff.c:1035
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
 "    --speed-large-files  atendi grandajn dosierojn kaj multajn disajn "
 "ŝanĝetojn"
 
-#: src/diff.c:976
-#, fuzzy
+#: src/diff.c:1036
 msgid ""
 "    --color[=WHEN]       color output; WHEN is 'never', 'always', or "
 "'auto';\n"
 "                           plain --color means --color='auto'"
 msgstr ""
-"    --color[=KIAM]       kolorigi la eligon; KIAM povas esti 'never', "
-"'always',\n"
-"                           aŭ 'auto' (aprioras)"
+"    --color[=KIAM]       kolora eligo; KIAM estu 'never', 'always' aŭ "
+"'auto';\n"
+"                           simpla --color signifas --color='auto'"
 
-#: src/diff.c:978
+#: src/diff.c:1038
 msgid ""
 "    --palette=PALETTE    the colors to use when --color is active; PALETTE "
 "is\n"
@@ -1062,113 +1056,113 @@ msgstr ""
 "PALETRO\n"
 "                           estas kom-apartita listo de kapabloj de terminfo"
 
-#: src/diff.c:981
+#: src/diff.c:1041
 msgid "    --help               display this help and exit"
 msgstr "    --help               montri ĉi tiun helpon kaj eliri"
 
-#: src/diff.c:982
+#: src/diff.c:1042
 msgid "-v, --version            output version information and exit"
 msgstr "-v, --version            montri informon pri versio kaj eliri"
 
-#: src/diff.c:984
+#: src/diff.c:1044
 msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
 "DOSIEROJ estas 'DOSIERO1 DOSIERO2' aŭ 'UJO1 UJO2' aŭ 'UJA DOSIERO' aŭ "
 "'DOSIERA UJO'."
 
-#: src/diff.c:985
+#: src/diff.c:1045
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr ""
 "Se --from-file aŭ --to-file estas donita, ne estas limigoj por DOSIERO(j)."
 
-#: src/diff.c:986 src/diff3.c:533 src/sdiff.c:220
+#: src/diff.c:1046 src/diff3.c:531 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
 msgstr "Se DOSIERO estas '-', legi la ĉefenigujon."
 
-#: src/diff.c:996
+#: src/diff.c:1056
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Uzmaniero: %s [MODIFILO]... DOSIEROJ\n"
 
-#: src/diff.c:997
+#: src/diff.c:1057
 msgid "Compare FILES line by line."
 msgstr "Kompari DOSIEROJn linion post linio."
 
-#: src/diff.c:1034
+#: src/diff.c:1094
 #, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "malakorda valoro de opcio %s: '%s'"
 
-#: src/diff.c:1047
+#: src/diff.c:1107
 #, c-format
 msgid "conflicting output style options"
 msgstr "malakordaj modifiloj pri elig-stilo"
 
-#: src/diff.c:1063
+#: src/diff.c:1123
 #, c-format
 msgid "invalid color '%s'"
 msgstr "malvalida koloro '%s'"
 
-#: src/diff.c:1119 src/diff.c:1329
+#: src/diff.c:1197 src/diff.c:1401
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Nur en %s: %s\n"
 
-#: src/diff.c:1253
+#: src/diff.c:1325
 msgid "cannot compare '-' to a directory"
 msgstr "ne eblas kompari '-' al dosierujo"
 
-#: src/diff.c:1288
+#: src/diff.c:1360
 msgid "-D option not supported with directories"
 msgstr "modifilo -D ne estas subtenata kun dosierujoj"
 
-#: src/diff.c:1297
+#: src/diff.c:1369
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Komunaj subdosierujoj: %s kaj %s\n"
 
-#: src/diff.c:1339 src/diff.c:1389
+#: src/diff.c:1411 src/diff.c:1461
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr "Dosiero %s estas %s, dum dosiero %s estas %s\n"
 
-#: src/diff.c:1375
+#: src/diff.c:1447
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "Simbolaj ligoj %s kaj %s malsamas\n"
 
-#: src/diff.c:1462
+#: src/diff.c:1534
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Dosieroj %s kaj %s samas\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff3.c:43
+#: src/diff3.c:51
 msgid "Randy Smith"
 msgstr "Randy SMITH"
 
-#: src/diff3.c:356
+#: src/diff3.c:363
 #, c-format
 msgid "incompatible options"
 msgstr "malkongruaj modifiloj"
 
-#: src/diff3.c:396
+#: src/diff3.c:403
 msgid "'-' specified for more than one input file"
 msgstr "'-' indikita por pli ol unu enigdosiero"
 
-#: src/diff3.c:447 src/diff3.c:1295 src/diff3.c:1698 src/diff3.c:1753
-#: src/sdiff.c:308 src/sdiff.c:846 src/sdiff.c:857
+#: src/diff3.c:445 src/diff3.c:1284 src/diff3.c:1683 src/diff3.c:1738
+#: src/sdiff.c:306 src/sdiff.c:843 src/sdiff.c:854
 msgid "read failed"
 msgstr "lego fiaskis"
 
-#: src/diff3.c:480
+#: src/diff3.c:478
 msgid "-A, --show-all              output all changes, bracketing conflicts"
 msgstr ""
 "-A, --show-all              montri ĉiujn ŝanĝojn, kun konfliktoj inter "
 "krampoj"
 
-#: src/diff3.c:482
+#: src/diff3.c:480
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
@@ -1176,11 +1170,11 @@ msgstr ""
 "-e, --ed                    montri ed-skripton enkorpigantan ŝanĝojn\n"
 "                                de PRADOSIERO al VIADOSIERO en MIADOSIEROn"
 
-#: src/diff3.c:484
+#: src/diff3.c:482
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
 msgstr "-E, --show-overlap          kiel -e, sed kun konfliktoj inter krampoj"
 
-#: src/diff3.c:485
+#: src/diff3.c:483
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
@@ -1188,23 +1182,23 @@ msgstr ""
 "-3, --easy-only             kiel -e, sed enkorpigi nur ne-interkovriĝantajn "
 "ŝanĝojn"
 
-#: src/diff3.c:486
+#: src/diff3.c:484
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
 msgstr ""
 "-x, --overlap-only          kiel -e, sed enkorpigi nur interkovriĝantajn "
 "ŝanĝojn"
 
-#: src/diff3.c:487
+#: src/diff3.c:485
 msgid "-X                          like -x, but bracket conflicts"
 msgstr "-X                          kiel -x, sed kun konfliktoj inter krampoj"
 
-#: src/diff3.c:488
+#: src/diff3.c:486
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
 msgstr ""
 "-i                          aldoni la komandojn 'w' kaj 'q' al ed-skriptoj"
 
-#: src/diff3.c:490
+#: src/diff3.c:488
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
@@ -1212,23 +1206,23 @@ msgstr ""
 "-m, --merge                 montri veran kunfanditan dosieron, akorde al\n"
 "                                -A se neniu alia modifilo ĉeestas"
 
-#: src/diff3.c:493
+#: src/diff3.c:491
 msgid "-a, --text                  treat all files as text"
 msgstr "-a, --text                  trakti ĉiujn dosierojn kiel tekstajn"
 
-#: src/diff3.c:494
+#: src/diff3.c:492
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
 msgstr "    --strip-trailing-cr     forigi linifinan CR ĉe enigo"
 
-#: src/diff3.c:495
+#: src/diff3.c:493
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
 msgstr "-T, --initial-tab           ĝustigi tabojn per antaŭmeto de tabo"
 
-#: src/diff3.c:496
+#: src/diff3.c:494
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
 msgstr "    --diff-program=PROGRAMO uzi PROGRAMOn por kompari dosierojn"
 
-#: src/diff3.c:497
+#: src/diff3.c:495
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
@@ -1236,24 +1230,24 @@ msgstr ""
 "-L, --label=ETIKEDO          uzi ETIKEDOn anstataŭ dosiernomo\n"
 "                                (povas esti ripetata ĝis 3 fojoj)"
 
-#: src/diff3.c:500
+#: src/diff3.c:498
 msgid "    --help                  display this help and exit"
 msgstr "    --help                  montri ĉi tiun helpon kaj eliri"
 
-#: src/diff3.c:501
+#: src/diff3.c:499
 msgid "-v, --version               output version information and exit"
 msgstr "-v, --version               eligi informon pri versio kaj eliri"
 
-#: src/diff3.c:510
+#: src/diff3.c:508
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
 msgstr "Uzmaniero: %s [MODIFILO]... MIADOSIERO PRADOSIERO VIADOSIERO\n"
 
-#: src/diff3.c:512
+#: src/diff3.c:510
 msgid "Compare three files line by line."
 msgstr "Kompari tri dosierojn linion post linio."
 
-#: src/diff3.c:522
+#: src/diff3.c:520
 msgid ""
 "\n"
 "The default output format is a somewhat human-readable representation of\n"
@@ -1277,54 +1271,54 @@ msgstr ""
 "eligu la veran kunfanditan dosieron.  Por ne-ordinara enigo, tio ĉi estas\n"
 "pli fortika ol la uzo de ed.\n"
 
-#: src/diff3.c:534
+#: src/diff3.c:532
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
 msgstr "Elig-valoro estas 0 por sukceso, 1 por konfliktoj, 2 por problemo."
 
-#: src/diff3.c:727
+#: src/diff3.c:725
 msgid "internal error: screwup in format of diff blocks"
 msgstr "interna eraro: fuŝo en formato de diff-blokoj"
 
-#: src/diff3.c:1022
+#: src/diff3.c:1015
 #, c-format
 msgid "%s: diff failed: "
 msgstr "%s: diff malsukcesis: "
 
-#: src/diff3.c:1044
+#: src/diff3.c:1037
 msgid "internal error: invalid diff type in process_diff"
 msgstr "interna eraro: malvalida diff-speco en process_diff"
 
-#: src/diff3.c:1069
+#: src/diff3.c:1060
 msgid "invalid diff format; invalid change separator"
 msgstr "malvalida diff-formato; malvalida ŝanĝ-apartigilo"
 
-#: src/diff3.c:1305
+#: src/diff3.c:1294
 msgid "invalid diff format; incomplete last line"
 msgstr "malvalida diff-formato; malkompleta lasta linio"
 
-#: src/diff3.c:1329 src/sdiff.c:276 src/util.c:969
+#: src/diff3.c:1318 src/sdiff.c:274 src/util.c:1069
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "ne eblis alvoki la subprogramon '%s'"
 
-#: src/diff3.c:1354
+#: src/diff3.c:1343
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "malvalida diff-formato; malĝusta signo en antaŭa linio"
 
-#: src/diff3.c:1427
+#: src/diff3.c:1416
 msgid "internal error: invalid diff type passed to output"
 msgstr "interna eraro: malvalida diff-speco donita al eligo"
 
-#: src/diff3.c:1700 src/diff3.c:1757
+#: src/diff3.c:1685 src/diff3.c:1742
 msgid "input file shrank"
 msgstr "enigdosiero ŝrumpis"
 
-#: src/dir.c:156
+#: src/dir.c:154
 #, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "ne eblas kompari dosiernomojn '%s' kaj '%s'"
 
-#: src/dir.c:225
+#: src/dir.c:223
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: rikura dosieruja ciklo"
@@ -1334,128 +1328,128 @@ msgstr "%s: rikura dosieruja ciklo"
 msgid "Thomas Lord"
 msgstr "Thomas LORD"
 
-#: src/sdiff.c:174
+#: src/sdiff.c:173
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
 msgstr ""
 "-o, --output=DOSIERO         funkcii interage, sendante eligon al DOSIERO"
 
-#: src/sdiff.c:176
+#: src/sdiff.c:175
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
 msgstr ""
 "-i, --ignore-case            konsideri majusklojn kaj minusklojn kiel samajn"
 
-#: src/sdiff.c:177
+#: src/sdiff.c:176
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
 msgstr ""
 "-E, --ignore-tab-expansion   preteratenti ŝanĝojn kaŭzatajn de tab-etendigo"
 
-#: src/sdiff.c:178
+#: src/sdiff.c:177
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
 msgstr ""
 "-Z, --ignore-trailing-space  preteratenti ĉiun blank-spacon ĉe linifino"
 
-#: src/sdiff.c:179
+#: src/sdiff.c:178
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
 msgstr ""
 "-b, --ignore-space-change     preteratenti ŝanĝojn en la kvanto da blank-"
 "spaco"
 
-#: src/sdiff.c:180
+#: src/sdiff.c:179
 msgid "-W, --ignore-all-space       ignore all white space"
 msgstr "-W, --ignore-all-space       preteratenti ĉiun blank-spacon"
 
-#: src/sdiff.c:181
+#: src/sdiff.c:180
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
 msgstr ""
 "-B, --ignore-blank-lines     preteratenti ŝanĝojn, kie linioj estas ĉiuj "
 "malplenaj"
 
-#: src/sdiff.c:182
+#: src/sdiff.c:181
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=RE  preteratenti ŝanĝojn, kie ĉiuj linioj "
 "kongruas al RE"
 
-#: src/sdiff.c:183
+#: src/sdiff.c:182
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
 msgstr "    --strip-trailing-cr      forigi linifinan CR ĉe enigo"
 
-#: src/sdiff.c:184
+#: src/sdiff.c:183
 msgid "-a, --text                   treat all files as text"
 msgstr "-a, --text                   trakti ĉiujn dosierojn kiel tekstajn"
 
-#: src/sdiff.c:186
+#: src/sdiff.c:185
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
 msgstr ""
 "-w, --width=NUM               montri maksimume NUM (aprioras 130) kolumnojn"
 
-#: src/sdiff.c:187
+#: src/sdiff.c:186
 msgid ""
 "-l, --left-column            output only the left column of common lines"
 msgstr ""
 "-l, --left-column             montri nur la maldekstran kolumnon de komunaj "
 "linioj"
 
-#: src/sdiff.c:188
+#: src/sdiff.c:187
 msgid "-s, --suppress-common-lines  do not output common lines"
 msgstr "-s, --suppress-common-lines  ne eligi komunajn liniojn"
 
-#: src/sdiff.c:190
+#: src/sdiff.c:189
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
 msgstr "-t, --expand-tabs            etendigi tabojn al spacoj en la eligo"
 
-#: src/sdiff.c:191
+#: src/sdiff.c:190
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=NUM             tab-lokoj estas post ĉiu NUM (aprioras 8) "
 "kolumnoj"
 
-#: src/sdiff.c:193
+#: src/sdiff.c:192
 msgid "-d, --minimal                try hard to find a smaller set of changes"
 msgstr "-d, --minimal                strebe serĉi pli etan aron da ŝanĝoj"
 
-#: src/sdiff.c:194
+#: src/sdiff.c:193
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
 msgstr ""
 "-H, --speed-large-files      atendi grandajn dosierojn kaj multajn disajn "
 "ŝanĝetojn"
 
-#: src/sdiff.c:195
+#: src/sdiff.c:194
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
 msgstr "    --diff-program=PROGRAMO  uzi PROGRAMOn por kompari dosierojn"
 
-#: src/sdiff.c:197
+#: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
 msgstr "    --help                   montri ĉi tiun helpon kaj eliri"
 
-#: src/sdiff.c:198
+#: src/sdiff.c:197
 msgid "-v, --version                output version information and exit"
 msgstr "-v, --version                montri informon pri versio kaj eliri"
 
-#: src/sdiff.c:207
+#: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
 msgstr "Uzmaniero: %s [MODIFILO]... DOSIERO1 DOSIERO2\n"
 
-#: src/sdiff.c:209
+#: src/sdiff.c:208
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
 msgstr "Apuda kunfando de malsamoj inter DOSIERO1 kaj DOSIERO2."
 
-#: src/sdiff.c:330
+#: src/sdiff.c:328
 msgid "cannot interactively merge standard input"
 msgstr "ne eblas interage kunfandi la ĉefenigujon"
 
-#: src/sdiff.c:597
+#: src/sdiff.c:594
 msgid "both files to be compared are directories"
 msgstr "ambaŭ komparendaj dosieroj estas dosierujoj"
 
-#: src/sdiff.c:820
+#: src/sdiff.c:817
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
 "eb:\tEdit then use both versions.\n"
@@ -1479,12 +1473,12 @@ msgstr ""
 "v:\tlaŭte transpreni komunajn liniojn.\n"
 "q:\tĉesi.\n"
 
-#: src/util.c:662
+#: src/util.c:755
 #, c-format
 msgid "unrecognized prefix: %s"
 msgstr "nerekonata prefikso: %s"
 
-#: src/util.c:692
+#: src/util.c:785
 #, c-format
 msgid "unparsable value for --palette"
 msgstr "neanalizebla valoro por --palette"
index 948a436..df4eca0 100644 (file)
Binary files a/po/es.gmo and b/po/es.gmo differ
index 4f676c4..68b1c14 100644 (file)
--- a/po/es.po
+++ b/po/es.po
@@ -3,14 +3,15 @@
 # This file is distributed under the same license as the diffutils package.
 # Iñaky Pérez González <inaky@peloncho.fis.ucm.es>, 1996.
 # Santiago Vila Doncel <sanvila@unex.es>, 2001, 2002, 2004, 2009, 2010, 2011, 2013, 2020.
+# Alejandro Cendejas Tena <alex.cendejas@gmail.com>, 2022.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: GNU diffutils 3.6.17\n"
+"Project-Id-Version: GNU diffutils 3.7.41\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2021-08-01 18:56-0700\n"
-"PO-Revision-Date: 2020-12-31 16:55+0100\n"
-"Last-Translator: Santiago Vila Doncel <sanvila@unex.es>\n"
+"POT-Creation-Date: 2023-05-21 01:51-0700\n"
+"PO-Revision-Date: 2022-01-27 11:07-0600\n"
+"Last-Translator: Alejandro Cendejas Tena <alex.cendejas@gmail.com>\n"
 "Language-Team: Spanish <es@tp.org.es>\n"
 "Language: es\n"
 "MIME-Version: 1.0\n"
@@ -18,39 +19,47 @@ msgstr ""
 "Content-Transfer-Encoding: 8-bit\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 
-#: lib/argmatch.c:132
+# (AC): Colegas traductores al español: He cambiado 'fichero' por 'archivo' y
+#       así lo haré en todas mis traducciones. Tienen la misma longitud y el
+#       mismo género, así que no debería causar problemas de visualización.
+#       Lo hago porque en España ambos términos son correctos y de uso común,
+#       Pero en Latinoamérica es rarísimo escuchar/leer 'fichero' fuera de al-
+#       gún manual o texto "hecho en España".
+#       En España hay unos 47 millones de habitantes, pero tan solo en México
+#       hay 128 millones. Me parece aceptable usar "archivo" como estándar.
+#: lib/argmatch.c:145
 #, c-format
 msgid "invalid argument %s for %s"
 msgstr "argumento %s inválido para %s"
 
-#: lib/argmatch.c:133
+#: lib/argmatch.c:146
 #, c-format
 msgid "ambiguous argument %s for %s"
 msgstr "argumento %s ambiguo para %s"
 
-#: lib/argmatch.c:152 lib/argmatch.h:223
+#: lib/argmatch.c:165 lib/argmatch.h:242
 msgid "Valid arguments are:"
 msgstr "Los argumentos válidos son:"
 
-#: lib/c-stack.c:187
+#: lib/c-stack.c:186
 msgid "program error"
 msgstr "error del programa"
 
-#: lib/c-stack.c:188
+#: lib/c-stack.c:187
 msgid "stack overflow"
 msgstr "desbordamiento de pila"
 
-#: lib/error.c:195
+#: lib/error.c:193
 msgid "Unknown system error"
 msgstr "Error del sistema desconocido"
 
 #: lib/file-type.c:40
 msgid "regular empty file"
-msgstr "fichero regular vacío"
+msgstr "archivo regular vacío"
 
 #: lib/file-type.c:40
 msgid "regular file"
-msgstr "fichero regular"
+msgstr "archivo regular"
 
 #: lib/file-type.c:43
 msgid "directory"
@@ -72,23 +81,28 @@ msgstr "semáforo"
 msgid "shared memory object"
 msgstr "objeto de memoria compartido"
 
-# ¿Alguien sabe lo que es esto?
+# (SV): ¿Alguien sabe lo que es esto?
+# (AC): Parece que es un tipo de memoria especificado en POSIX, pero no soy
+#       técnico, así que no entiendo ni sabría como traducirlo. Lo mencionan
+#       en el manual de mmap(3posix) pero no hay traducción a español.
 #: lib/file-type.c:61
 msgid "typed memory object"
 msgstr "objeto de memoria `typed'"
 
 #: lib/file-type.c:66
 msgid "block special file"
-msgstr "fichero especial de bloques"
+msgstr "archivo especial de bloques"
 
 #: lib/file-type.c:69
 msgid "character special file"
-msgstr "fichero especial de caracteres"
+msgstr "archivo especial de caracteres"
 
 #: lib/file-type.c:72
 msgid "contiguous data"
 msgstr "datos contiguos"
 
+# (AC): ¿Debería quedarse como `fifo? Podría ser peps pero creo que fifo es
+#       más común
 #: lib/file-type.c:75
 msgid "fifo"
 msgstr "`fifo'"
@@ -99,15 +113,15 @@ msgstr "puerta"
 
 #: lib/file-type.c:81
 msgid "multiplexed block special file"
-msgstr "fichero especial de bloques multiplexado"
+msgstr "archivo especial de bloques multiplexado"
 
 #: lib/file-type.c:84
 msgid "multiplexed character special file"
-msgstr "fichero especial de caracteres multiplexado"
+msgstr "archivo especial de caracteres multiplexado"
 
 #: lib/file-type.c:87
 msgid "multiplexed file"
-msgstr "fichero multiplexado"
+msgstr "archivo multiplexado"
 
 # FIXME
 # se podría decir algo más decente para "weird" ... pero ¿qué?
@@ -116,19 +130,19 @@ msgstr "fichero multiplexado"
 # siempre podemos poner escachifollado ;) ipg
 #: lib/file-type.c:90
 msgid "named file"
-msgstr "fichero nombrado"
+msgstr "archivo nombrado"
 
 #: lib/file-type.c:93
 msgid "network special file"
-msgstr "fichero especial de red"
+msgstr "archivo especial de red"
 
 #: lib/file-type.c:96
 msgid "migrated file with data"
-msgstr "fichero migrado con datos"
+msgstr "archivo migrado con datos"
 
 #: lib/file-type.c:99
 msgid "migrated file without data"
-msgstr "fichero migrado sin datos"
+msgstr "archivo migrado sin datos"
 
 #: lib/file-type.c:102
 msgid "port"
@@ -139,7 +153,7 @@ msgid "socket"
 msgstr "`socket'"
 
 # Esto por lo visto se utiliza en un unionfs cuando la capa inferior es
-# de sólo lectura y en la capa superior se borra el fichero.
+# de sólo lectura y en la capa superior se borra el archivo.
 #: lib/file-type.c:108
 msgid "whiteout"
 msgstr "suprimido"
@@ -149,9 +163,10 @@ msgstr "suprimido"
 # ¿ no habitual ?  em
 # ¡Nchts! Prefiero extraño ... no habitual me suena muy difuso
 # siempre podemos poner escachifollado ;) ipg
+# (AC): Concuerdo con extraño.
 #: lib/file-type.c:110
 msgid "weird file"
-msgstr "fichero extraño"
+msgstr "archivo extraño"
 
 #: lib/getopt.c:278
 #, c-format
@@ -209,38 +224,43 @@ msgstr "%s: la opción requiere un argumento -- '%c'\n"
 #. If you don't know what to put here, please see
 #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:355
+#: lib/quotearg.c:354
 msgid "`"
 msgstr "«"
 
-#: lib/quotearg.c:356
+#: lib/quotearg.c:355
 msgid "'"
 msgstr "»"
 
-#: lib/regcomp.c:135
+# (AC): ¿Podría ser éxito, logrado, o algo así? Conseguido me suena muy forzado
+#: lib/regcomp.c:122
 msgid "Success"
 msgstr "Conseguido"
 
-#: lib/regcomp.c:138
+#: lib/regcomp.c:125
 msgid "No match"
 msgstr "No hay ninguna coincidencia"
 
-#: lib/regcomp.c:141
+#: lib/regcomp.c:128
 msgid "Invalid regular expression"
 msgstr "Expresión regular inválida"
 
 # Se refiere probablemente a cosas tales como que la c con la h es "ch",
 # aunque este ejemplo ya no es válido, pues la Real Academia dice
 # que para propósitos de ordenación son letras independientes.
-#: lib/regcomp.c:144
+#: lib/regcomp.c:131
 msgid "Invalid collation character"
 msgstr "Carácter de unión inválido"
 
-#: lib/regcomp.c:147
+# (AC): Por lo que veo en otros manuales (p.ej. tr(1), isalnum(3)...)
+#       esta traducción debería ser "Nombre de clase de caracteres inválido"
+#       pues se refiere a cosas como [:alnum:] donde tal vez alguien pondría
+#       [:noexiste:] y esa clase de caracteres no existe.
+#: lib/regcomp.c:134
 msgid "Invalid character class name"
-msgstr "Carácter de clase inválido"
+msgstr "Nombre de clase de caracteres inválido"
 
-#: lib/regcomp.c:150
+#: lib/regcomp.c:137
 msgid "Trailing backslash"
 msgstr "Barra invertida al final"
 
@@ -286,51 +306,53 @@ msgstr "Barra invertida al final"
 # no estoy dispuesto a matar por ello... sv
 # :) Gracias, pero por ahora dejaré retro-referencia, me parece más clara
 # en cuanto al significado preciso de la frase. ipg
-#: lib/regcomp.c:153
+# (AC): Me quedaría con "referencia hacia atrás" pero veremos si alguien se
+#       queja de esto.
+#: lib/regcomp.c:140
 msgid "Invalid back reference"
 msgstr "Retro-referencia inválida"
 
-#: lib/regcomp.c:156
+#: lib/regcomp.c:143
 msgid "Unmatched [, [^, [:, [., or [="
 msgstr "[, [^, [:, [. ó [= desemparejados"
 
-#: lib/regcomp.c:159
+#: lib/regcomp.c:146
 msgid "Unmatched ( or \\("
 msgstr "( ó \\( desemparejado"
 
-#: lib/regcomp.c:162
+#: lib/regcomp.c:149
 msgid "Unmatched \\{"
 msgstr "\\{ desemparejado"
 
-#: lib/regcomp.c:165
+#: lib/regcomp.c:152
 msgid "Invalid content of \\{\\}"
 msgstr "El contenido de \\{\\} no es válido"
 
-#: lib/regcomp.c:168
+#: lib/regcomp.c:155
 msgid "Invalid range end"
 msgstr "Final de rango inválido"
 
-#: lib/regcomp.c:171
+#: lib/regcomp.c:158
 msgid "Memory exhausted"
 msgstr "Memoria agotada"
 
-#: lib/regcomp.c:174
+#: lib/regcomp.c:161
 msgid "Invalid preceding regular expression"
 msgstr "Expresión regular precedente inválida"
 
-#: lib/regcomp.c:177
+#: lib/regcomp.c:164
 msgid "Premature end of regular expression"
 msgstr "Final prematuro de la expresión regular"
 
-#: lib/regcomp.c:180
+#: lib/regcomp.c:167
 msgid "Regular expression too big"
 msgstr "La expresión regular es demasiado grande"
 
-#: lib/regcomp.c:183
+#: lib/regcomp.c:170
 msgid "Unmatched ) or \\)"
 msgstr ") ó \\) desemparejado"
 
-#: lib/regcomp.c:676
+#: lib/regcomp.c:650
 msgid "No previous regular expression"
 msgstr "No hay ninguna expresión regular previa"
 
@@ -362,7 +384,7 @@ msgstr "fallo al reabrir %s con modo %s"
 #: lib/xstdopen.c:34
 #, c-format
 msgid "standard file descriptors"
-msgstr ""
+msgstr "descriptores de archivo estándar"
 
 #: lib/version-etc.c:73
 #, c-format
@@ -383,18 +405,15 @@ msgstr "©"
 
 #. TRANSLATORS: The %s placeholder is the web address of the GPL license.
 #: lib/version-etc.c:88
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "License GPLv3+: GNU GPL version 3 or later <%s>.\n"
 "This is free software: you are free to change and redistribute it.\n"
 "There is NO WARRANTY, to the extent permitted by law.\n"
 msgstr ""
-"\n"
-"Licencia GPLv3+: GPL de GNU versión 3 o posterior <https://gnu.org/licenses/"
-"gpl.html>.\n"
+"Licencia GPLv3+: GPL de GNU versión 3 o posterior <%s>.\n"
 "Esto es software libre, usted es libre de cambiarlo y redistribuirlo.\n"
 "No hay NINGUNA GARANTÍA, hasta donde permite la ley.\n"
-"\n"
 
 #. TRANSLATORS: %s denotes an author name.
 #: lib/version-etc.c:105
@@ -509,12 +528,11 @@ msgstr ""
 #. "Report translation bugs to <...>\n" with the address for translation
 #. bugs (typically your translation team's web or email address).
 #: lib/version-etc.c:249
-#, fuzzy, c-format
+#, c-format
 msgid "Report bugs to: %s\n"
 msgstr ""
-"\n"
 "Comunicar errores en el programa a: %s\n"
-"Comunicar errores de traducción al último traductor.\n"
+"Comunicar errores de traducción a <es@tp.org.es>.\n"
 
 #: lib/version-etc.c:251
 #, c-format
@@ -527,25 +545,23 @@ msgid "%s home page: <%s>\n"
 msgstr "Página inicial de %s: <%s>\n"
 
 #: lib/version-etc.c:260
-#, fuzzy, c-format
+#, c-format
 msgid "General help using GNU software: <%s>\n"
-msgstr ""
-"Ayuda general sobre el uso de software de GNU: <https://www.gnu.org/gethelp/"
-">\n"
+msgstr "Ayuda general sobre el uso de software de GNU: <%s>\n"
 
-#: src/analyze.c:454 src/diff.c:1406
+#: src/analyze.c:455 src/diff.c:1478
 #, c-format
 msgid "Files %s and %s differ\n"
-msgstr "Los ficheros %s y %s son distintos\n"
+msgstr "Los archivos %s y %s son distintos\n"
 
-#: src/analyze.c:455
+#: src/analyze.c:456
 #, c-format
 msgid "Binary files %s and %s differ\n"
-msgstr "Los ficheros binarios %s y %s son distintos\n"
+msgstr "Los archivos binarios %s y %s son distintos\n"
 
-#: src/analyze.c:706 src/diff3.c:1470 src/util.c:1254
+#: src/analyze.c:707 src/diff3.c:1457 src/util.c:1354
 msgid "No newline at end of file"
-msgstr "No hay ningún carácter de nueva línea al final del fichero"
+msgstr "No hay ningún carácter de nueva línea al final del archivo"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/cmp.c:45
@@ -557,94 +573,95 @@ msgstr "Torbjörn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:120 src/diff.c:879 src/diff3.c:467 src/sdiff.c:160
+#: src/cmp.c:124 src/diff.c:939 src/diff3.c:465 src/sdiff.c:159
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Pruebe '%s --help' para más información."
 
-#: src/cmp.c:138
+#: src/cmp.c:142
 #, c-format
 msgid "invalid --ignore-initial value '%s'"
 msgstr "valor --ignore-initial inválido '%s'"
 
-#: src/cmp.c:148
+#: src/cmp.c:152
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr "las opciones -l y -s son incompatibles"
 
-#: src/cmp.c:156 src/diff.c:887 src/diff3.c:474 src/sdiff.c:168 src/sdiff.c:316
-#: src/sdiff.c:323 src/sdiff.c:876 src/util.c:852 src/util.c:952 src/util.c:959
+#: src/cmp.c:160 src/diff.c:947 src/diff3.c:472 src/sdiff.c:167 src/sdiff.c:314
+#: src/sdiff.c:321 src/sdiff.c:873 src/util.c:952 src/util.c:1052
+#: src/util.c:1059
 msgid "write failed"
 msgstr "la escritura falló"
 
-#: src/cmp.c:158 src/diff.c:889 src/diff.c:1471 src/diff3.c:476 src/sdiff.c:170
+#: src/cmp.c:162 src/diff.c:949 src/diff.c:1543 src/diff3.c:474 src/sdiff.c:169
 msgid "standard output"
 msgstr "salida estándar"
 
 # Muestra como caracteres los bytes que difieran
 # queda más claro, creo yo em
 # Yo no le veo diferencia (¿será por qué lo parí yo? ;) ipg
-#: src/cmp.c:162
+#: src/cmp.c:166
 msgid "-b, --print-bytes          print differing bytes"
 msgstr "-b  --print-bytes          muestra los bytes que son distintos"
 
-#: src/cmp.c:163
+#: src/cmp.c:167
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
 msgstr ""
 "-i, --ignore-initial=SALTO          salta los primeros SALTO bytes de\n"
 "                                        las dos entradas"
 
-#: src/cmp.c:164
+#: src/cmp.c:168
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
 msgstr ""
 "-i, --ignore-initial=SALTO1:SALTO2  salta los primeros SALTO1 bytes de "
-"FICHERO1\n"
+"ARCHIVO1\n"
 "                                        y los primeros SALTO2 bytes de "
-"FICHERO2"
+"ARCHIVO2"
 
-#: src/cmp.c:166
+#: src/cmp.c:170
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
 msgstr ""
 "-l, --verbose              muestra los números de byte y valores de todos\n"
 "                               los bytes que difieran"
 
-#: src/cmp.c:167
+#: src/cmp.c:171
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
 msgstr "-n, --bytes=LÍMITE         compara como máximo LÍMITE bytes"
 
-#: src/cmp.c:168
+#: src/cmp.c:172
 msgid "-s, --quiet, --silent      suppress all normal output"
 msgstr "-s, --quiet, --silent      suprime toda la salida normal"
 
-#: src/cmp.c:169
+#: src/cmp.c:173
 msgid "    --help                 display this help and exit"
 msgstr "    --help                 muestra esta ayuda y finaliza"
 
-#: src/cmp.c:170
+#: src/cmp.c:174
 msgid "-v, --version              output version information and exit"
 msgstr "-v, --version              informa de la versión y finaliza"
 
-#: src/cmp.c:179
+#: src/cmp.c:183
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
-msgstr "Modo de empleo: %s [OPCIÓN]... FICHERO1 [FICHERO2 [SALTO1 [SALTO2]]]\n"
+msgstr "Modo de empleo: %s [OPCIÓN]... ARCHIVO1 [ARCHIVO2 [SALTO1 [SALTO2]]]\n"
 
-#: src/cmp.c:181
+#: src/cmp.c:185
 msgid "Compare two files byte by byte."
-msgstr "Compara dos ficheros byte por byte."
+msgstr "Compara dos archivos byte por byte."
 
-#: src/cmp.c:183
+#: src/cmp.c:187
 msgid ""
 "The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
 "at the beginning of each file (zero by default)."
 msgstr ""
 "Los parámetros opcionales SALTO1 y SALTO2 especifican el número de\n"
-"bytes que se saltan en cada fichero (cero por omisión)."
+"bytes que se saltan en cada archivo (cero por omisión)."
 
-#: src/cmp.c:186 src/diff.c:999 src/diff3.c:514 src/sdiff.c:211
+#: src/cmp.c:190 src/diff.c:1059 src/diff3.c:512 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
@@ -652,7 +669,7 @@ msgstr ""
 "obligatorios\n"
 "para las opciones cortas.\n"
 
-#: src/cmp.c:192
+#: src/cmp.c:196
 msgid ""
 "SKIP values may be followed by the following multiplicative suffixes:\n"
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
@@ -663,92 +680,92 @@ msgstr ""
 "kB 1.000, K 1.024, MB 1.000.000, M 1.048.576,\n"
 "GB 1.000.000.000, G 1.073.741.824, y así en adelante para T, P, E, Z, Y."
 
-#: src/cmp.c:195
+#: src/cmp.c:199
 msgid "If a FILE is '-' or missing, read standard input."
-msgstr "Si un FICHERO es '-' o no se especifica, lee la entrada estándar."
+msgstr "Si un ARCHIVO es '-' o no se especifica, lee la entrada estándar."
 
-#: src/cmp.c:196 src/diff.c:987 src/sdiff.c:221
+#: src/cmp.c:200 src/diff.c:1047 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr ""
 "El estado de salida es 0 si las entradas son iguales, 1 si son diferentes,\n"
 "2 en caso de problema."
 
-#: src/cmp.c:243
+#: src/cmp.c:247
 #, c-format
 msgid "invalid --bytes value '%s'"
 msgstr "valor --bytes inválido '%s'"
 
-#: src/cmp.c:269 src/diff.c:797 src/diff3.c:361 src/sdiff.c:567
+#: src/cmp.c:273 src/diff.c:857 src/diff3.c:368 src/sdiff.c:564
 #, c-format
 msgid "missing operand after '%s'"
 msgstr "falta un operando después de '%s'"
 
-#: src/cmp.c:281 src/diff.c:799 src/diff3.c:363 src/sdiff.c:569
+#: src/cmp.c:285 src/diff.c:859 src/diff3.c:370 src/sdiff.c:566
 #, c-format
 msgid "extra operand '%s'"
 msgstr "operando extra '%s'"
 
-#: src/cmp.c:507
+#: src/cmp.c:521
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s son distintos: byte %s, línea %s\n"
 
-#: src/cmp.c:523
+#: src/cmp.c:537
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
 msgstr "%s %s son distintos: el byte %s, en la línea %s es %3o %s %3o %s\n"
 
-#: src/cmp.c:580
+#: src/cmp.c:594
 #, c-format
 msgid "cmp: EOF on %s which is empty\n"
-msgstr "cmp: fin de fichero encontrado en %s que está vacío\n"
+msgstr "cmp: fin de archivo encontrado en %s que está vacío\n"
 
-#: src/cmp.c:594
+#: src/cmp.c:608
 #, c-format
 msgid "cmp: EOF on %s after byte %s, line %s\n"
-msgstr "cmp: fin de fichero en %s después del byte %s, línea %s\n"
+msgstr "cmp: fin de archivo en %s después del byte %s, línea %s\n"
 
-#: src/cmp.c:595
+#: src/cmp.c:609
 #, c-format
 msgid "cmp: EOF on %s after byte %s, in line %s\n"
-msgstr "cmp: fin de fichero en %s después del byte %s, en la línea %s\n"
+msgstr "cmp: fin de archivo en %s después del byte %s, en la línea %s\n"
 
-#: src/cmp.c:601
+#: src/cmp.c:615
 #, c-format
 msgid "cmp: EOF on %s after byte %s\n"
-msgstr "cmp: fin de fichero encontrado en %s después del byte %s\n"
+msgstr "cmp: fin de archivo encontrado en %s después del byte %s\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:51
+#: src/diff.c:50
 msgid "Paul Eggert"
 msgstr "Paul Eggert"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:52
+#: src/diff.c:51
 msgid "Mike Haertel"
 msgstr "Mike Haertel"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:53
+#: src/diff.c:52
 msgid "David Hayes"
 msgstr "David Hayes"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:54
+#: src/diff.c:53
 msgid "Richard Stallman"
 msgstr "Richard Stallman"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:55
+#: src/diff.c:54
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:355
+#: src/diff.c:365
 #, c-format
 msgid "invalid context length '%s'"
 msgstr "longitud de contexto inválida '%s'"
 
-#: src/diff.c:438
+#: src/diff.c:487
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "este sistema no admite paginación"
@@ -759,130 +776,130 @@ msgstr "este sistema no admite paginación"
 # encontrarle un buen significado, así que pido ayuda ;)
 # Ni p... idea em
 # La opción -L LABEL puedes usarla, una o dos veces, pero no más. A eso
-# se refiere. la opción de etiqueta de fichero se ha especificado demasiadas
+# se refiere. la opción de etiqueta de archivo se ha especificado demasiadas
 # veces. O más cortito, dejarlo como está :) em+
 # Me parece que así está bien ...
-#: src/diff.c:453 src/diff3.c:341
+#: src/diff.c:502 src/diff3.c:348
 #, c-format
 msgid "too many file label options"
-msgstr "demasiadas opciones de etiqueta de fichero"
+msgstr "demasiadas opciones de etiqueta de archivo"
 
-#: src/diff.c:530
+#: src/diff.c:579
 #, c-format
 msgid "invalid width '%s'"
 msgstr "ancho inválido '%s'"
 
-#: src/diff.c:534
+#: src/diff.c:583
 msgid "conflicting width options"
 msgstr "opciones de ancho conflictivas"
 
-#: src/diff.c:559
+#: src/diff.c:608
 #, c-format
 msgid "invalid horizon length '%s'"
 msgstr "longitud del horizonte inválida '%s'"
 
-#: src/diff.c:615
+#: src/diff.c:664
 #, c-format
 msgid "invalid tabsize '%s'"
 msgstr "tamaño de tab inválido '%s'"
 
-#: src/diff.c:619
+#: src/diff.c:668
 msgid "conflicting tabsize options"
 msgstr "opciones de tamaño de tab conflictivas"
 
-#: src/diff.c:774
+#: src/diff.c:834
 msgid "--from-file and --to-file both specified"
 msgstr "se ha especificado tanto --from-file como --to-file"
 
-#: src/diff.c:893
+#: src/diff.c:953
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "    --normal                  produce un diff normal (predeterminado)"
 
-#: src/diff.c:894
+#: src/diff.c:954
 msgid "-q, --brief                   report only when files differ"
 msgstr ""
-"-q, --brief                   indica sólo si los ficheros son diferentes o no"
+"-q, --brief                   indica sólo si los archivos son diferentes o no"
 
-#: src/diff.c:895
+#: src/diff.c:955
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr ""
-"-s, --report-identical-files  notifica cuándo dos ficheros son idénticos"
+"-s, --report-identical-files  notifica cuándo dos archivos son idénticos"
 
-#: src/diff.c:896
+#: src/diff.c:956
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
 "-c, -C NÚM, --context[=NÚM]   muestra NÚM (por omisión 3) líneas de contexto"
 
-#: src/diff.c:897
+#: src/diff.c:957
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
 "-u, -U NÚM, --unified[=NÚM]   muestra NÚM (por omisión 3) línea de contexto\n"
 "                                unificado"
 
-#: src/diff.c:898
+#: src/diff.c:958
 msgid "-e, --ed                      output an ed script"
 msgstr "-e, --ed                      produce un script ed"
 
-#: src/diff.c:899
+#: src/diff.c:959
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n, --rcs                     produce un diff en formato RCS"
 
-#: src/diff.c:900
+#: src/diff.c:960
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side            muestra en dos columnas"
 
-#: src/diff.c:901
+#: src/diff.c:961
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
 "-W, --width=NÚM               muestra como mucho NÚM columnas de impresión\n"
 "                                (por omisión 130)"
 
-#: src/diff.c:902
+#: src/diff.c:962
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr ""
 "    --left-column             muestra sólo en la columna izquierda las "
 "líneas comunes"
 
-#: src/diff.c:903
+#: src/diff.c:963
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "    --suppress-common-lines   no muestra las líneas comunes"
 
-#: src/diff.c:905
+#: src/diff.c:965
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr ""
 "-p, --show-c-function         muestra en qué función C está cada cambio"
 
-#: src/diff.c:906
+#: src/diff.c:966
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr ""
 "-F, --show-function-line=ER   muestra la línea más reciente que encaje con ER"
 
-#: src/diff.c:907
+#: src/diff.c:967
 msgid ""
 "    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
 msgstr ""
 "    --label ETIQUETA          utiliza ETIQUETA en lugar del nombre del "
-"fichero y\n"
+"archivo y\n"
 "                                la marca de tiempo (se puede repetir)"
 
 # Aquí a lo mejor también: la salida -> el resultado. sv
-#: src/diff.c:910
+#: src/diff.c:970
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr ""
 "-t, --expand-tabs             expande los tabuladores a espacios en la salida"
 
-#: src/diff.c:911
+#: src/diff.c:971
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr ""
 "-T, --initial-tab             hace que los tabuladores se alineen\n"
 "                              anteponiendo uno"
 
-#: src/diff.c:912
+#: src/diff.c:972
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
@@ -890,7 +907,7 @@ msgstr ""
 "NÚM columnas\n"
 "                                de impresión (por omisión, 8)"
 
-#: src/diff.c:913
+#: src/diff.c:973
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
@@ -908,169 +925,170 @@ msgstr ""
 # Te mandaré el gettext, para que veas lo que vale un peine... sv
 # X'D ... no soy tan malo ... ipg
 # Medita de nuevo si no usas resultado em
-#: src/diff.c:914
+# (AC): De acuerdo con "la salida".
+#: src/diff.c:974
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr ""
 "-l, --paginate                pasa la salida a través de 'pr' para paginarla"
 
-#: src/diff.c:916
+#: src/diff.c:976
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr ""
 "-r, --recursive                 compara recursivamente todos los "
 "subdirectorios"
 
-#: src/diff.c:917
+#: src/diff.c:977
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr "    --no-dereference            no sigue los enlaces simbólicos"
 
-#: src/diff.c:918
+#: src/diff.c:978
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr ""
-"-N, --new-file                  trata los ficheros que no existan como vacíos"
+"-N, --new-file                  trata los archivos que no existan como vacíos"
 
-#: src/diff.c:919
+#: src/diff.c:979
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
-"    --unidirectional-new-file   trata los ficheros originales que no "
+"    --unidirectional-new-file   trata los archivos originales que no "
 "existan\n"
 "                                  como vacíos"
 
-#: src/diff.c:920
+#: src/diff.c:980
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ""
 "    --ignore-file-name-case     descarta las diferencias entre mayúsculas y\n"
 "                                  minúsculas al comparar los nombres de los "
-"ficheros"
+"archivos"
 
-#: src/diff.c:921
+#: src/diff.c:981
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
 "    --no-ignore-file-name-case  considera distintas mayúsculas y minúsculas\n"
-"                                  cuando compara los nombres de los ficheros"
+"                                  cuando compara los nombres de los archivos"
 
-#: src/diff.c:922
+#: src/diff.c:982
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr ""
-"-x, --exclude=PAT               excluye los ficheros que coincidan con PAT"
+"-x, --exclude=PAT               excluye los archivos que coincidan con PAT"
 
-#: src/diff.c:923
+#: src/diff.c:983
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
-"-X, --exclude-from=FICHERO      excluye los ficheros que coincidan con "
+"-X, --exclude-from=ARCHIVO      excluye los archivos que coincidan con "
 "alguna\n"
-"                                  expresión regular de FICHERO"
+"                                  expresión regular de ARCHIVO"
 
-#: src/diff.c:924
+#: src/diff.c:984
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
-"-S, --starting-file=FICHERO     comienza por FICHERO cuando se comparan\n"
+"-S, --starting-file=ARCHIVO     comienza por ARCHIVO cuando se comparan\n"
 "                                directorios"
 
-#: src/diff.c:925
+#: src/diff.c:985
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
 msgstr ""
-"    --from-file=FICHERO1        compara FICHERO1 con todos los operandos;\n"
-"                                  FICHERO1 puede ser un directorio"
+"    --from-file=ARCHIVO1        compara ARCHIVO1 con todos los operandos;\n"
+"                                  ARCHIVO1 puede ser un directorio"
 
-#: src/diff.c:927
+#: src/diff.c:987
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
 msgstr ""
-"    --to-file=FICHERO2          compara todos los operandos con FICHERO2;\n"
-"                                  FICHERO2 puede ser un directorio"
+"    --to-file=ARCHIVO2          compara todos los operandos con ARCHIVO2;\n"
+"                                  ARCHIVO2 puede ser un directorio"
 
-#: src/diff.c:930
+#: src/diff.c:990
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr ""
 "-i, --ignore-case               descarta las diferencias entre mayúsculas y "
 "minúsculas\n"
-"                                  en el contenido de los ficheros"
+"                                  en el contenido de los archivos"
 
-#: src/diff.c:931
+#: src/diff.c:991
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr ""
 "-E, --ignore-tab-expansion      descarta cambios debidos a expansiones de "
 "tabs"
 
-#: src/diff.c:932
+#: src/diff.c:992
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr ""
 "-Z, --ignore-trailing-space     descarta espacio en blanco al final de línea"
 
-#: src/diff.c:933
+#: src/diff.c:993
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr ""
 "-b, --ignore-space-change       descarta las diferencias en la cantidad de\n"
 "                                  espacio en blanco"
 
-#: src/diff.c:934
+#: src/diff.c:994
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w, --ignore-all-space          descarta los espacios en blanco"
 
-#: src/diff.c:935
+#: src/diff.c:995
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr ""
 "-B, --ignore-blank-lines        descarta los cambios en líneas completamente "
 "vacías"
 
-#: src/diff.c:936
+#: src/diff.c:996
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=EXPR-REG  descarta las líneas que coincidan con "
 "EXPR-REG"
 
-#: src/diff.c:938
+#: src/diff.c:998
 msgid "-a, --text                      treat all files as text"
 msgstr ""
-"-a, --text                      trata todos los ficheros como de tipo texto"
+"-a, --text                      trata todos los archivos como de tipo texto"
 
-#: src/diff.c:939
+#: src/diff.c:999
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr         elimina los retornos de carro finales en la "
 "entrada"
 
-#: src/diff.c:941
+#: src/diff.c:1001
 msgid "    --binary                    read and write data in binary mode"
 msgstr ""
 "    --binary                    lee y escribe los datos en modo binario"
 
-#: src/diff.c:944
+#: src/diff.c:1004
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
-"-D, --ifdef=NOMBRE              genera un fichero combinado que muestra las\n"
+"-D, --ifdef=NOMBRE              genera un archivo combinado que muestra las\n"
 "                                  diferencias con '#ifdef NOMBRE'"
 
 # Propongo similar -> parecida. Ver gettext. sv
 # Hmmm ... prefiero similar. Antes estaba puesto `parecida' y la verdad,
 # no quedaba tan bien. ipg
-#: src/diff.c:945
+#: src/diff.c:1005
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr ""
 "    --GTYPE-group-format=GFMT   formatea los grupos de entrada GTYPE con GFMT"
 
-#: src/diff.c:946
+#: src/diff.c:1006
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr ""
 "    --line-format=LFMT          formatea todas las líneas de entrada con LFMT"
 
 # ídem. sv
-#: src/diff.c:947
+#: src/diff.c:1007
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr ""
 "    --LTYPE-line-format=LFMT    formatea las líneas de entrada LTYPE con LFMT"
 
-#: src/diff.c:948
+#: src/diff.c:1008
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
@@ -1079,13 +1097,13 @@ msgstr ""
 "resultado\n"
 "    de diff, generalizando -D/--ifdef."
 
-#: src/diff.c:950
+#: src/diff.c:1010
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
 "  LTYPE es 'old' (antiguo), 'new' (nuevo) o 'unchanged' (sin cambios).\n"
 "  GTYPE es como LTYPE o 'changed' (cambiado)."
 
-#: src/diff.c:951
+#: src/diff.c:1011
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -1101,9 +1119,9 @@ msgid ""
 "    %(A=B?T:E)  if A equals B then T else E"
 msgstr ""
 "  GFMT (solamente) puede contener:\n"
-"    %<  líneas del FICHERO1\n"
-"    %>  líneas del FICHERO2\n"
-"    %=  líneas comunes a FICHERO1 y FICHERO2\n"
+"    %<  líneas del ARCHIVO1\n"
+"    %>  líneas del ARCHIVO2\n"
+"    %=  líneas comunes a ARCHIVO1 y ARCHIVO2\n"
 "    %[-][ANCHO][.[PRECISIÓN]]{doxX}LETRA  especificación printf para LETRA\n"
 "      Las LETRAs pueden ser como siguen para grupos nuevos (en minúsculas\n"
 "      para grupos antiguos):\n"
@@ -1114,7 +1132,7 @@ msgstr ""
 "        M  L+1\n"
 "  %(A=B?T:E)  si A es igual a B entonces T en caso contrario E"
 
-#: src/diff.c:963
+#: src/diff.c:1023
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -1128,7 +1146,7 @@ msgstr ""
 "el\n"
 "                                      número de línea de entrada"
 
-#: src/diff.c:967
+#: src/diff.c:1027
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1142,36 +1160,35 @@ msgstr ""
 "    %c'\\OOO'  el carácter con código octal OOO\n"
 "    C    el carácter C (los otros caracteres se representan a sí mismos)"
 
-#: src/diff.c:973
+#: src/diff.c:1033
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr ""
 "-d, --minimal            se esfuerza en encontrar un grupo de cambios menor"
 
-#: src/diff.c:974
+#: src/diff.c:1034
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr ""
 "    --horizon-lines=NÚM  mantiene NÚM líneas de prefijos y sufijos comunes"
 
-#: src/diff.c:975
+#: src/diff.c:1035
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
-"    --speed-large-files  supone que los ficheros son grandes y los cambios "
+"    --speed-large-files  supone que los archivos son grandes y los cambios "
 "son\n"
 "                           numerosos, pequeños y dispersos"
 
-#: src/diff.c:976
-#, fuzzy
+#: src/diff.c:1036
 msgid ""
 "    --color[=WHEN]       color output; WHEN is 'never', 'always', or "
 "'auto';\n"
 "                           plain --color means --color='auto'"
 msgstr ""
-"    --color[=CUÁNDO]     colorea la salida; CUÁNDO puede ser 'never', "
-"'always',\n"
-"                           o 'auto' (por omisión)"
+"    --color[=CUÁNDO]     colorea la salida; CUÁNDO es 'never', 'always' o "
+"'auto';\n"
+"                           --color por sí solo significa --color='auto'"
 
-#: src/diff.c:978
+#: src/diff.c:1038
 msgid ""
 "    --palette=PALETTE    the colors to use when --color is active; PALETTE "
 "is\n"
@@ -1182,108 +1199,108 @@ msgstr ""
 "                           una lista de capacidades de terminfo separadas "
 "por dos puntos"
 
-#: src/diff.c:981
+#: src/diff.c:1041
 msgid "    --help               display this help and exit"
 msgstr "    --help               muestra esta ayuda y finaliza"
 
-#: src/diff.c:982
+#: src/diff.c:1042
 msgid "-v, --version            output version information and exit"
-msgstr "-v, --version            informa de la versión y finaliza"
+msgstr "-v, --version            muestra la versión y finaliza"
 
-#: src/diff.c:984
+#: src/diff.c:1044
 msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
-"FICHEROS puede ser 'FICHERO1 FICHERO2' o 'DIRECTORIO1 DIRECTORIO2'\n"
-"  o 'DIRECTORIO FICHERO' o 'FICHERO DIRECTORIO'."
+"ARCHIVOS puede ser 'ARCHIVO1 ARCHIVO2' o 'DIRECTORIO1 DIRECTORIO2'\n"
+"  o 'DIRECTORIO ARCHIVO' o 'ARCHIVO DIRECTORIO'."
 
-#: src/diff.c:985
+#: src/diff.c:1045
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
-msgstr "Si se da --from-file o --to-file, no hay restricciones en FICHERO(s)."
+msgstr "Si se da --from-file o --to-file, no hay restricciones en ARCHIVO(s)."
 
-#: src/diff.c:986 src/diff3.c:533 src/sdiff.c:220
+#: src/diff.c:1046 src/diff3.c:531 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
-msgstr "Si un FICHERO es '-', lee la entrada estándar."
+msgstr "Si un ARCHIVO es '-', lee la entrada estándar."
 
-#: src/diff.c:996
+#: src/diff.c:1056
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
-msgstr "Modo de empleo: %s [OPCIÓN]... FICHEROS\n"
+msgstr "Modo de empleo: %s [OPCIÓN]... ARCHIVOS\n"
 
-#: src/diff.c:997
+#: src/diff.c:1057
 msgid "Compare FILES line by line."
-msgstr "Compara FICHEROS línea por línea."
+msgstr "Compara ARCHIVOS línea por línea."
 
-#: src/diff.c:1034
+#: src/diff.c:1094
 #, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "la opción %s tiene el valor conflictivo '%s'"
 
-#: src/diff.c:1047
+#: src/diff.c:1107
 #, c-format
 msgid "conflicting output style options"
 msgstr "las especificaciones del estilo de salida son conflictivas"
 
-#: src/diff.c:1063
+#: src/diff.c:1123
 #, c-format
 msgid "invalid color '%s'"
 msgstr "color inválido '%s'"
 
-#: src/diff.c:1119 src/diff.c:1329
+#: src/diff.c:1197 src/diff.c:1401
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Sólo en %s: %s\n"
 
-#: src/diff.c:1253
+#: src/diff.c:1325
 msgid "cannot compare '-' to a directory"
 msgstr "no se puede comparar '-' con un directorio"
 
-#: src/diff.c:1288
+#: src/diff.c:1360
 msgid "-D option not supported with directories"
 msgstr "la opción -D no se puede usar con directorios"
 
-#: src/diff.c:1297
+#: src/diff.c:1369
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Subdirectorios comunes: %s y %s\n"
 
-# Nota: El segundo y el cuarto `%s' son tipos de fichero.
+# Nota: El segundo y el cuarto `%s' son tipos de archivo.
 # Por ejemplo, "texto C", "texto FORTRAN", etc.
-#: src/diff.c:1339 src/diff.c:1389
+#: src/diff.c:1411 src/diff.c:1461
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
-msgstr "El fichero %s es un %s mientras que el %s es un %s\n"
+msgstr "El archivo %s es un %s mientras que el %s es un %s\n"
 
-#: src/diff.c:1375
+#: src/diff.c:1447
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "Los enlaces simbólicos %s y %s son distintos\n"
 
-#: src/diff.c:1462
+#: src/diff.c:1534
 #, c-format
 msgid "Files %s and %s are identical\n"
-msgstr "Los ficheros %s y %s son idénticos\n"
+msgstr "Los archivos %s y %s son idénticos\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff3.c:43
+#: src/diff3.c:51
 msgid "Randy Smith"
 msgstr "Randy Smith"
 
-#: src/diff3.c:356
+#: src/diff3.c:363
 #, c-format
 msgid "incompatible options"
 msgstr "opciones incompatibles"
 
-#: src/diff3.c:396
+#: src/diff3.c:403
 msgid "'-' specified for more than one input file"
-msgstr "se ha especificado '-' para más de un fichero de entrada"
+msgstr "se ha especificado '-' para más de un archivo de entrada"
 
-#: src/diff3.c:447 src/diff3.c:1295 src/diff3.c:1698 src/diff3.c:1753
-#: src/sdiff.c:308 src/sdiff.c:846 src/sdiff.c:857
+#: src/diff3.c:445 src/diff3.c:1284 src/diff3.c:1683 src/diff3.c:1738
+#: src/sdiff.c:306 src/sdiff.c:843 src/sdiff.c:854
 msgid "read failed"
 msgstr "la lectura falló"
 
-#: src/diff3.c:480
+#: src/diff3.c:478
 msgid "-A, --show-all              output all changes, bracketing conflicts"
 msgstr ""
 "-A, --show-all              muestra todos los cambios, encerrando los "
@@ -1294,27 +1311,27 @@ msgstr ""
 # Sí, eso pensé yo, pero no sé como ponerlo para que quede bien ...
 # Esto no hay quien lo entienda, piénsalo 3 minutos más si te apetece :) em+
 #
-#      OLDFILE         FICHERO-ANTIGUO
-#      YOURFILE        TU-FICHERO
-#      MYFILE          MI-FICHERO
+#      OLDFILE         ARCHIVO-ANTIGUO
+#      YOURFILE        TU-ARCHIVO
+#      MYFILE          MI-ARCHIVO
 #
 # Pongo eso por ahora, pero espero una sugerencia mejor ;)
-#: src/diff3.c:482
+#: src/diff3.c:480
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
 msgstr ""
 "-e, --ed                    muestra un `script' ed incorporando los cambios "
 "entre\n"
-"                                FICHERO-ANTIGUO y TU-FICHERO a MI-FICHERO"
+"                                ARCHIVO-ANTIGUO y TU-ARCHIVO a MI-ARCHIVO"
 
-#: src/diff3.c:484
+#: src/diff3.c:482
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
 msgstr ""
 "-E, --show-overlap          como -e, pero encerrando los conflictos\n"
 "                                entre corchetes"
 
-#: src/diff3.c:485
+#: src/diff3.c:483
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
@@ -1323,7 +1340,7 @@ msgstr ""
 "que\n"
 "                                no se superponen"
 
-#: src/diff3.c:486
+#: src/diff3.c:484
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
 msgstr ""
@@ -1331,74 +1348,74 @@ msgstr ""
 "se\n"
 "                                solapan"
 
-#: src/diff3.c:487
+#: src/diff3.c:485
 msgid "-X                          like -x, but bracket conflicts"
 msgstr ""
 "-X                          como -x, pero encierra conflictos entre corchetes"
 
-#: src/diff3.c:488
+#: src/diff3.c:486
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
 msgstr ""
 "-i                          añade las órdenes 'w' y 'q' a los scripts ed"
 
-#: src/diff3.c:490
+#: src/diff3.c:488
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
 msgstr ""
-"-m, --merge                 muestra el fichero combinado, de acuerdo con -A "
+"-m, --merge                 muestra el archivo combinado, de acuerdo con -A "
 "si\n"
 "                                no se especifica ninguna otra opción"
 
-#: src/diff3.c:493
+#: src/diff3.c:491
 msgid "-a, --text                  treat all files as text"
 msgstr ""
-"-a, --text                  trata todos los ficheros como de tipo texto"
+"-a, --text                  trata todos los archivos como de tipo texto"
 
-#: src/diff3.c:494
+#: src/diff3.c:492
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr     elimina los retornos de carro finales en la "
 "entrada"
 
-#: src/diff3.c:495
+#: src/diff3.c:493
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
 msgstr ""
 "-T, --initial-tab           hace que los tabuladores se alineen anteponiendo "
 "uno"
 
-#: src/diff3.c:496
+#: src/diff3.c:494
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
 msgstr ""
-"    --diff-program=PROGRAMA utiliza PROGRAMA para comparar los ficheros"
+"    --diff-program=PROGRAMA utiliza PROGRAMA para comparar los archivos"
 
-#: src/diff3.c:497
+#: src/diff3.c:495
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
 msgstr ""
 "-L, --label=ETIQUETA        utiliza ETIQUETA en lugar del nombre del "
-"fichero\n"
+"archivo\n"
 "                                (se puede reperir hasta tres veces)"
 
-#: src/diff3.c:500
+#: src/diff3.c:498
 msgid "    --help                  display this help and exit"
 msgstr "    --help                  muestra esta ayuda y finaliza"
 
-#: src/diff3.c:501
+#: src/diff3.c:499
 msgid "-v, --version               output version information and exit"
 msgstr "-v  --version               informa de la versión y finaliza"
 
-#: src/diff3.c:510
+#: src/diff3.c:508
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
-msgstr "Modo de empleo: %s [OPCIÓN]... MI-FICHERO FICHERO-ANTIGUO TU-FICHERO\n"
+msgstr "Modo de empleo: %s [OPCIÓN]... MI-ARCHIVO ARCHIVO-ANTIGUO TU-ARCHIVO\n"
 
-#: src/diff3.c:512
+#: src/diff3.c:510
 msgid "Compare three files line by line."
-msgstr "Compara tres ficheros línea por línea."
+msgstr "Compara tres archivos línea por línea."
 
-#: src/diff3.c:522
+#: src/diff3.c:520
 msgid ""
 "\n"
 "The default output format is a somewhat human-readable representation of\n"
@@ -1421,62 +1438,62 @@ msgstr ""
 "un `script' ed en lugar del resultado predeterminado.\n"
 "\n"
 "Finalmente, la opción -m (--merge) hace que diff3 realice la combinación\n"
-"internamente y muestra el fichero combinado.  Para ciertas entradas, esto "
+"internamente y muestra el archivo combinado.  Para ciertas entradas, esto "
 "es\n"
 "más robusto que usar ed.\n"
 
-#: src/diff3.c:534
+#: src/diff3.c:532
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
 msgstr ""
 "El estado de salida es 0 en caso de éxito, 1 si hay conflictos, 2 en caso "
 "de\n"
 "problema."
 
-#: src/diff3.c:727
+#: src/diff3.c:725
 msgid "internal error: screwup in format of diff blocks"
 msgstr "error interno: fallo en el formato de los bloques diff"
 
-#: src/diff3.c:1022
+#: src/diff3.c:1015
 #, c-format
 msgid "%s: diff failed: "
 msgstr "%s: diff falló: "
 
-#: src/diff3.c:1044
+#: src/diff3.c:1037
 msgid "internal error: invalid diff type in process_diff"
 msgstr "error interno: tipo de diff inválido en process_diff"
 
-#: src/diff3.c:1069
+#: src/diff3.c:1060
 msgid "invalid diff format; invalid change separator"
 msgstr "formato de diff inválido; separador de cambio inválido"
 
-#: src/diff3.c:1305
+#: src/diff3.c:1294
 msgid "invalid diff format; incomplete last line"
 msgstr "formato de diff inválido; línea final incompleta"
 
-#: src/diff3.c:1329 src/sdiff.c:276 src/util.c:969
+#: src/diff3.c:1318 src/sdiff.c:274 src/util.c:1069
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "no se ha podido invocar al programa subsidiario '%s'"
 
-#: src/diff3.c:1354
+#: src/diff3.c:1343
 msgid "invalid diff format; incorrect leading line chars"
 msgstr ""
 "formato de diff inválido; caracteres incorrectos al comienzo de la línea"
 
-#: src/diff3.c:1427
+#: src/diff3.c:1416
 msgid "internal error: invalid diff type passed to output"
 msgstr "error interno: tipo de diff inválido pasado a la salida"
 
-#: src/diff3.c:1700 src/diff3.c:1757
+#: src/diff3.c:1685 src/diff3.c:1742
 msgid "input file shrank"
-msgstr "el fichero de entrada ha menguado"
+msgstr "el archivo de entrada ha menguado"
 
-#: src/dir.c:156
+#: src/dir.c:154
 #, c-format
 msgid "cannot compare file names '%s' and '%s'"
-msgstr "no se pueden comparar los nombres de fichero '%s' y '%s'"
+msgstr "no se pueden comparar los nombres de archivo '%s' y '%s'"
 
-#: src/dir.c:225
+#: src/dir.c:223
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: bucle de directorio recursivo"
@@ -1486,29 +1503,29 @@ msgstr "%s: bucle de directorio recursivo"
 msgid "Thomas Lord"
 msgstr "Thomas Lord"
 
-#: src/sdiff.c:174
+#: src/sdiff.c:173
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
 msgstr ""
-"-o, --output=FICHERO         opera interactivamente, enviando el resultado\n"
-"                                 al fichero FICHERO"
+"-o, --output=ARCHIVO         opera interactivamente, enviando el resultado\n"
+"                                 al ARCHIVO"
 
-#: src/sdiff.c:176
+#: src/sdiff.c:175
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
 msgstr "-i, --ignore-case            considera iguales mayúsculas y minúsculas"
 
-#: src/sdiff.c:177
+#: src/sdiff.c:176
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
 msgstr ""
 "-E, --ignore-tab-expansion   descarta cambios debidos a expansiones de tabs"
 
-#: src/sdiff.c:178
+#: src/sdiff.c:177
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
 msgstr ""
 "-Z, --ignore-trailing-space  descarta espacio en blanco al final de línea"
 
-#: src/sdiff.c:179
+#: src/sdiff.c:178
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
 msgstr ""
@@ -1516,58 +1533,58 @@ msgstr ""
 "espacio\n"
 "                                 en blanco"
 
-#: src/sdiff.c:180
+#: src/sdiff.c:179
 msgid "-W, --ignore-all-space       ignore all white space"
 msgstr "-W, --ignore-all-space       descarta todo el espacio en blanco"
 
-#: src/sdiff.c:181
+#: src/sdiff.c:180
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
 msgstr ""
 "-B, --ignore-blank-lines     descarta los cambios cuyas líneas son todas "
 "vacías"
 
-#: src/sdiff.c:182
+#: src/sdiff.c:181
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=EXPR-REG  descarta las líneas que coincidan con "
 "EXPR-REG"
 
-#: src/sdiff.c:183
+#: src/sdiff.c:182
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr      elimina los retornos de carro finales en la "
 "entrada"
 
-#: src/sdiff.c:184
+#: src/sdiff.c:183
 msgid "-a, --text                   treat all files as text"
 msgstr ""
-"-a, --text                   trata todos los ficheros como de tipo texto"
+"-a, --text                   trata todos los archivos como de tipo texto"
 
-#: src/sdiff.c:186
+#: src/sdiff.c:185
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
 msgstr ""
 "-w, --width=NÚM              muestra como mucho NÚM columnas de impresión\n"
 "                                 (por omisión 130)"
 
-#: src/sdiff.c:187
+#: src/sdiff.c:186
 msgid ""
 "-l, --left-column            output only the left column of common lines"
 msgstr ""
 "-l, --left-column            muestra sólo la columna izquierda de líneas "
 "comunes"
 
-#: src/sdiff.c:188
+#: src/sdiff.c:187
 msgid "-s, --suppress-common-lines  do not output common lines"
 msgstr "-s, --suppress-common-lines  no muestra las líneas comunes"
 
 # Aquí a lo mejor también: la salida -> el resultado. sv
-#: src/sdiff.c:190
+#: src/sdiff.c:189
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
 msgstr ""
 "-t, --expand-tabs            expande los tabuladores a espacios en la salida"
 
-#: src/sdiff.c:191
+#: src/sdiff.c:190
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
 msgstr ""
@@ -1575,51 +1592,51 @@ msgstr ""
 "NÚM\n"
 "                                 columnas de impresión (por omisión, 8)"
 
-#: src/sdiff.c:193
+#: src/sdiff.c:192
 msgid "-d, --minimal                try hard to find a smaller set of changes"
 msgstr ""
 "-d, --minimal                se esfuerza en encontrar un grupo de cambios "
 "menor"
 
-#: src/sdiff.c:194
+#: src/sdiff.c:193
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
 msgstr ""
-"-H, --speed-large-files      supone que los ficheros son grandes y los "
+"-H, --speed-large-files      supone que los archivos son grandes y los "
 "cambios\n"
 "                                 son numerosos, pequeños y dispersos"
 
-#: src/sdiff.c:195
+#: src/sdiff.c:194
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
 msgstr ""
-"    --diff-program=PROGRAMA  utiliza PROGRAMA para comparar los ficheros"
+"    --diff-program=PROGRAMA  utiliza PROGRAMA para comparar los archivos"
 
-#: src/sdiff.c:197
+#: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
 msgstr "    --help                   muestra esta ayuda y finaliza"
 
-#: src/sdiff.c:198
+#: src/sdiff.c:197
 msgid "-v, --version                output version information and exit"
 msgstr "-v, --version                informa de la versión y finaliza"
 
-#: src/sdiff.c:207
+#: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
-msgstr "Modo de empleo: %s [OPCIÓN]... FICHERO1 FICHERO2\n"
+msgstr "Modo de empleo: %s [OPCIÓN]... ARCHIVO1 ARCHIVO2\n"
 
 # Se admiten sugerencias.
-#: src/sdiff.c:209
+#: src/sdiff.c:208
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
 msgstr ""
-"Combinación a dos columnas de las diferencias entre FICHERO1 y FICHERO2."
+"Combinación a dos columnas de las diferencias entre ARCHIVO1 y ARCHIVO2."
 
-#: src/sdiff.c:330
+#: src/sdiff.c:328
 msgid "cannot interactively merge standard input"
 msgstr "no se puede mezclar interactivamente con la entrada estándar"
 
-#: src/sdiff.c:597
+#: src/sdiff.c:594
 msgid "both files to be compared are directories"
-msgstr "los dos ficheros que hay que comparar son directorios"
+msgstr "los dos archivos que hay que comparar son directorios"
 
 # FIXME
 # ¿sugerencias para traducir mejor "verbosely"?
@@ -1662,7 +1679,7 @@ msgstr "los dos ficheros que hay que comparar son directorios"
 # ## verbosidad
 # ## I. De verbo.
 # ##    1. (sustantivo femenino). Verborrea.
-#: src/sdiff.c:820
+#: src/sdiff.c:817
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
 "eb:\tEdit then use both versions.\n"
@@ -1686,29 +1703,25 @@ msgstr ""
 "v:       Incluye líneas comunes verbosamente.\n"
 "q:       Salir.\n"
 
-#: src/util.c:662
+#: src/util.c:755
 #, c-format
 msgid "unrecognized prefix: %s"
 msgstr "prefijo no reconocido: %s"
 
-#: src/util.c:692
+#: src/util.c:785
 #, c-format
 msgid "unparsable value for --palette"
 msgstr "valor incomprensible para --palette"
 
-#, c-format
 #~ msgid "invalid %s%s argument '%s'"
 #~ msgstr "argumento de %s%s inválido '%s'"
 
-#, c-format
 #~ msgid "invalid suffix in %s%s argument '%s'"
 #~ msgstr "sufijo inválido en el argumento de %s%s '%s'"
 
-#, c-format
 #~ msgid "%s%s argument '%s' too large"
 #~ msgstr "%s%s argumento '%s' demasiado grande"
 
-#, c-format
 #~ msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
 #~ msgstr "Página inicial de %s: <https://www.gnu.org/software/%s/>\n"
 
@@ -1753,7 +1766,7 @@ msgstr "valor incomprensible para --palette"
 #~ "-u  -U NÚM  --unified[=NÚM]  Muestra NÚM (3 por omisión) líneas de "
 #~ "contexto\n"
 #~ "                             unificado.\n"
-#~ "  --label NOMBRE  Usa NOMBRE en lugar del nombre de fichero.\n"
+#~ "  --label NOMBRE  Usa NOMBRE en lugar del nombre de archivo.\n"
 #~ "  -p  --show-c-function  Muestra en qué función C se encuentra cada "
 #~ "cambio.\n"
 #~ "  -F EXPR-REG  --show-function-line=EXPR-REG  Muestra la línea más "
@@ -1777,7 +1790,7 @@ msgstr "valor incomprensible para --palette"
 #~ msgid ""
 #~ "--speed-large-files  Assume large files and many scattered small changes."
 #~ msgstr ""
-#~ "--speed-large-files  Supone que los ficheros son grandes y los cambios "
+#~ "--speed-large-files  Supone que los archivos son grandes y los cambios "
 #~ "son\n"
 #~ "                     numerosos, pequeños y dispersos."
 
@@ -1786,12 +1799,12 @@ msgstr "valor incomprensible para --palette"
 
 #~ msgid "-m  --merge  Output merged file instead of ed script (default -A)."
 #~ msgstr ""
-#~ "-m  --merge  Produce un fichero mezclado en lugar de un\n"
+#~ "-m  --merge  Produce un archivo mezclado en lugar de un\n"
 #~ "               script ed (por omisión -A)."
 
 #~ msgid "-L LABEL  --label=LABEL  Use LABEL instead of file name."
 #~ msgstr ""
-#~ "-L NOMBRE  --label=NOMBRE  Usa NOMBRE en lugar del nombre de fichero."
+#~ "-L NOMBRE  --label=NOMBRE  Usa NOMBRE en lugar del nombre de archivo."
 
 #~ msgid "%s: illegal option -- %c\n"
 #~ msgstr "%s: opción ilegal -- %c\n"
@@ -1836,7 +1849,7 @@ msgstr "valor incomprensible para --palette"
 #~ "Este programa viene sin NINGUNA GARANTÍA, hasta donde permite la ley.\n"
 #~ "Se pueden redistribuir copias de este programa bajo los términos de la\n"
 #~ "Licencia Pública General de GNU.\n"
-#~ "Para más información sobre esto, vea los ficheros llamados COPYING."
+#~ "Para más información sobre esto, vea los archivos llamados COPYING."
 
 #~ msgid "Written by Torbjorn Granlund and David MacKenzie."
 #~ msgstr "Escrito por Torbjörn Granlund y David MacKenzie."
@@ -1865,10 +1878,10 @@ msgstr "valor incomprensible para --palette"
 #~ msgstr "se han dado varias opciones `--to-file'"
 
 #~ msgid "regular empty executable file"
-#~ msgstr "fichero regular ejecutable vacío"
+#~ msgstr "archivo regular ejecutable vacío"
 
 #~ msgid "regular executable file"
-#~ msgstr "fichero regular vacío"
+#~ msgstr "archivo regular vacío"
 
 #~ msgid ": not found\n"
 #~ msgstr ": no encontrado\n"
index a1a1a8b..dd14de0 100644 (file)
--- a/po/fi.po
+++ b/po/fi.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: diffutils 3.7.41\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2021-08-01 18:56-0700\n"
+"POT-Creation-Date: 2023-05-21 01:51-0700\n"
 "PO-Revision-Date: 2021-07-20 12:40+0300\n"
 "Last-Translator: Lauri Nurmi <lanurmi@iki.fi>\n"
 "Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
@@ -19,29 +19,29 @@ msgstr ""
 "X-Generator: Poedit 3.0\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: lib/argmatch.c:132
+#: lib/argmatch.c:145
 #, c-format
 msgid "invalid argument %s for %s"
 msgstr "virheellinen argumentti %s %s:lle"
 
-#: lib/argmatch.c:133
+#: lib/argmatch.c:146
 #, c-format
 msgid "ambiguous argument %s for %s"
 msgstr "moniselitteinen argumentti %s %s:lle"
 
-#: lib/argmatch.c:152 lib/argmatch.h:223
+#: lib/argmatch.c:165 lib/argmatch.h:242
 msgid "Valid arguments are:"
 msgstr "Kelvolliset argumentit ovat:"
 
-#: lib/c-stack.c:187
+#: lib/c-stack.c:186
 msgid "program error"
 msgstr "ohjelmavirhe"
 
-#: lib/c-stack.c:188
+#: lib/c-stack.c:187
 msgid "stack overflow"
 msgstr "pinon ylivuoto"
 
-#: lib/error.c:195
+#: lib/error.c:193
 msgid "Unknown system error"
 msgstr "Tuntematon järjestelmävirhe"
 
@@ -197,83 +197,83 @@ msgstr "%s: valitsin vaatii argumentin -- ”%c”\n"
 #. If you don't know what to put here, please see
 #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:355
+#: lib/quotearg.c:354
 msgid "`"
 msgstr "”"
 
-#: lib/quotearg.c:356
+#: lib/quotearg.c:355
 msgid "'"
 msgstr "”"
 
-#: lib/regcomp.c:135
+#: lib/regcomp.c:122
 msgid "Success"
 msgstr "Onnistui"
 
-#: lib/regcomp.c:138
+#: lib/regcomp.c:125
 msgid "No match"
 msgstr "Ei täsmäävyyttä"
 
-#: lib/regcomp.c:141
+#: lib/regcomp.c:128
 msgid "Invalid regular expression"
 msgstr "Virheellinen säännöllinen lauseke"
 
-#: lib/regcomp.c:144
+#: lib/regcomp.c:131
 msgid "Invalid collation character"
 msgstr "Virheellinen vertailumerkki"
 
-#: lib/regcomp.c:147
+#: lib/regcomp.c:134
 msgid "Invalid character class name"
 msgstr "Virheellinen merkkiluokan nimi"
 
-#: lib/regcomp.c:150
+#: lib/regcomp.c:137
 msgid "Trailing backslash"
 msgstr "Kenoviiva lopussa"
 
-#: lib/regcomp.c:153
+#: lib/regcomp.c:140
 msgid "Invalid back reference"
 msgstr "Virheellinen takaisinviittaus"
 
-#: lib/regcomp.c:156
+#: lib/regcomp.c:143
 msgid "Unmatched [, [^, [:, [., or [="
 msgstr "Pariton [, [^, [:, [. tai [="
 
-#: lib/regcomp.c:159
+#: lib/regcomp.c:146
 msgid "Unmatched ( or \\("
 msgstr "Pariton ( tai \\("
 
-#: lib/regcomp.c:162
+#: lib/regcomp.c:149
 msgid "Unmatched \\{"
 msgstr "Pariton \\{"
 
-#: lib/regcomp.c:165
+#: lib/regcomp.c:152
 msgid "Invalid content of \\{\\}"
 msgstr "Virheellinen \\{\\}:n sisältö"
 
-#: lib/regcomp.c:168
+#: lib/regcomp.c:155
 msgid "Invalid range end"
 msgstr "Virheellinen välin loppu"
 
-#: lib/regcomp.c:171
+#: lib/regcomp.c:158
 msgid "Memory exhausted"
 msgstr "Muisti lopussa"
 
-#: lib/regcomp.c:174
+#: lib/regcomp.c:161
 msgid "Invalid preceding regular expression"
 msgstr "Virheellinen edeltävä säännöllinen lauseke"
 
-#: lib/regcomp.c:177
+#: lib/regcomp.c:164
 msgid "Premature end of regular expression"
 msgstr "Ennenaikainen säännöllisen lausekkeen loppu"
 
-#: lib/regcomp.c:180
+#: lib/regcomp.c:167
 msgid "Regular expression too big"
 msgstr "Liian suuri säännöllinen lauseke"
 
-#: lib/regcomp.c:183
+#: lib/regcomp.c:170
 msgid "Unmatched ) or \\)"
 msgstr "Pariton ) tai \\)"
 
-#: lib/regcomp.c:676
+#: lib/regcomp.c:650
 msgid "No previous regular expression"
 msgstr "Ei edellistä säännöllistä lauseketta"
 
@@ -469,17 +469,17 @@ msgstr "%s-kotisivu: <%s>\n"
 msgid "General help using GNU software: <%s>\n"
 msgstr "Yleisohjeita GNU-ohjelmistojen käyttöön: <%s>\n"
 
-#: src/analyze.c:454 src/diff.c:1406
+#: src/analyze.c:455 src/diff.c:1478
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Tiedostot %s ja %s eroavat\n"
 
-#: src/analyze.c:455
+#: src/analyze.c:456
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "Binääritiedostot %s ja %s eroavat\n"
 
-#: src/analyze.c:706 src/diff3.c:1470 src/util.c:1254
+#: src/analyze.c:707 src/diff3.c:1457 src/util.c:1354
 msgid "No newline at end of file"
 msgstr "Ei rivinvaihtoa tiedoston lopussa"
 
@@ -493,41 +493,42 @@ msgstr "Torbjörn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:120 src/diff.c:879 src/diff3.c:467 src/sdiff.c:160
+#: src/cmp.c:124 src/diff.c:939 src/diff3.c:465 src/sdiff.c:159
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Komento ”%s --help” antaa lisää tietoa."
 
-#: src/cmp.c:138
+#: src/cmp.c:142
 #, c-format
 msgid "invalid --ignore-initial value '%s'"
 msgstr "virheellinen arvo ”%s” valitsimelle --ignore-initial"
 
-#: src/cmp.c:148
+#: src/cmp.c:152
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr "valitsimet -l ja -s ovat yhteensopimattomat"
 
-#: src/cmp.c:156 src/diff.c:887 src/diff3.c:474 src/sdiff.c:168 src/sdiff.c:316
-#: src/sdiff.c:323 src/sdiff.c:876 src/util.c:852 src/util.c:952 src/util.c:959
+#: src/cmp.c:160 src/diff.c:947 src/diff3.c:472 src/sdiff.c:167 src/sdiff.c:314
+#: src/sdiff.c:321 src/sdiff.c:873 src/util.c:952 src/util.c:1052
+#: src/util.c:1059
 msgid "write failed"
 msgstr "kirjoitus epäonnistui"
 
-#: src/cmp.c:158 src/diff.c:889 src/diff.c:1471 src/diff3.c:476 src/sdiff.c:170
+#: src/cmp.c:162 src/diff.c:949 src/diff.c:1543 src/diff3.c:474 src/sdiff.c:169
 msgid "standard output"
 msgstr "vakiotuloste"
 
-#: src/cmp.c:162
+#: src/cmp.c:166
 msgid "-b, --print-bytes          print differing bytes"
 msgstr "-b, --print-bytes           tulosta eroavat tavut"
 
-#: src/cmp.c:163
+#: src/cmp.c:167
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
 msgstr ""
 "-i, --ignore-initial=OHITUS       ohita ensimmäiset OHITUS tavua\n"
 "                                    kummastakin syötteestä"
 
-#: src/cmp.c:164
+#: src/cmp.c:168
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
@@ -536,37 +537,37 @@ msgstr ""
 "                                      tavua ja TIEDOSTO2:n ensimmäiset "
 "OHITUS2 tavua"
 
-#: src/cmp.c:166
+#: src/cmp.c:170
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
 msgstr "-l, --verbose              tulosta tavujen sijainnit ja eroavat arvot"
 
-#: src/cmp.c:167
+#: src/cmp.c:171
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
 msgstr "-n, --bytes=RAJA           vertaa enintään RAJAn verran tavuja"
 
-#: src/cmp.c:168
+#: src/cmp.c:172
 msgid "-s, --quiet, --silent      suppress all normal output"
 msgstr "-s, --quiet, --silent      vaienna kaikki tavanomainen tuloste"
 
-#: src/cmp.c:169
+#: src/cmp.c:173
 msgid "    --help                 display this help and exit"
 msgstr "    --help                  näytä tämä ohje ja poistu"
 
-#: src/cmp.c:170
+#: src/cmp.c:174
 msgid "-v, --version              output version information and exit"
 msgstr "-v, --version              näytä versiotiedot ja poistu"
 
-#: src/cmp.c:179
+#: src/cmp.c:183
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
 msgstr "Käyttö: %s [VALITSIN]... TIEDOSTO1 [TIEDOSTO2 [OHITUS1 [OHITUS2]]]\n"
 
-#: src/cmp.c:181
+#: src/cmp.c:185
 msgid "Compare two files byte by byte."
 msgstr "Vertaa kahta tiedostoa tavu tavulta."
 
-#: src/cmp.c:183
+#: src/cmp.c:187
 msgid ""
 "The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
 "at the beginning of each file (zero by default)."
@@ -574,13 +575,13 @@ msgstr ""
 "Valinnaiset OHITUS1 ja OHITUS2 ovat kunkin tiedoston alusta\n"
 "ohitettavien tavujen määrä (oletusarvoisesti nolla)."
 
-#: src/cmp.c:186 src/diff.c:999 src/diff3.c:514 src/sdiff.c:211
+#: src/cmp.c:190 src/diff.c:1059 src/diff3.c:512 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
 "Pitkien valitsinten pakolliset argumentit ovat pakollisia myös lyhyille.\n"
 
-#: src/cmp.c:192
+#: src/cmp.c:196
 msgid ""
 "SKIP values may be followed by the following multiplicative suffixes:\n"
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
@@ -590,148 +591,148 @@ msgstr ""
 "kB 1000, K 1024, MB 1 000 000, M 1 048 576,\n"
 "GB 1 000 000 000, G 1 073 741 824 jne. myös kertoimille T, P, E, Z, Y."
 
-#: src/cmp.c:195
+#: src/cmp.c:199
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "Jos TIEDOSTOa ei ole annettu, tai se on ”-”, luetaan vakiosyötettä."
 
-#: src/cmp.c:196 src/diff.c:987 src/sdiff.c:221
+#: src/cmp.c:200 src/diff.c:1047 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr ""
 "Paluuarvo on 0, jos syötteet ovat samoja, 1 jos erilaisia, "
 "ongelmatilanteissa 2."
 
-#: src/cmp.c:243
+#: src/cmp.c:247
 #, c-format
 msgid "invalid --bytes value '%s'"
 msgstr "virheellinen arvo ”%s” valitsimelle --bytes"
 
-#: src/cmp.c:269 src/diff.c:797 src/diff3.c:361 src/sdiff.c:567
+#: src/cmp.c:273 src/diff.c:857 src/diff3.c:368 src/sdiff.c:564
 #, c-format
 msgid "missing operand after '%s'"
 msgstr "puuttuva operandi argumentin ”%s” jälkeen"
 
-#: src/cmp.c:281 src/diff.c:799 src/diff3.c:363 src/sdiff.c:569
+#: src/cmp.c:285 src/diff.c:859 src/diff3.c:370 src/sdiff.c:566
 #, c-format
 msgid "extra operand '%s'"
 msgstr "ylimääräinen operandi ”%s”"
 
-#: src/cmp.c:507
+#: src/cmp.c:521
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s eroavat: tavu %s, rivi %s\n"
 
-#: src/cmp.c:523
+#: src/cmp.c:537
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
 msgstr "%s %s eroavat: tavu %s, rivi %s on %3o %s %3o %s\n"
 
-#: src/cmp.c:580
+#: src/cmp.c:594
 #, c-format
 msgid "cmp: EOF on %s which is empty\n"
 msgstr "cmp: tyhjän tiedoston %s loppu\n"
 
-#: src/cmp.c:594
+#: src/cmp.c:608
 #, c-format
 msgid "cmp: EOF on %s after byte %s, line %s\n"
 msgstr "cmp: tiedoston %s loppu tavun %s jälkeen, rivi %s\n"
 
-#: src/cmp.c:595
+#: src/cmp.c:609
 #, c-format
 msgid "cmp: EOF on %s after byte %s, in line %s\n"
 msgstr "cmp: tiedoston %s loppu tavun %s jälkeen, rivissä %s\n"
 
-#: src/cmp.c:601
+#: src/cmp.c:615
 #, c-format
 msgid "cmp: EOF on %s after byte %s\n"
 msgstr "cmp: tiedoston %s loppu tavun %s jälkeen\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:51
+#: src/diff.c:50
 msgid "Paul Eggert"
 msgstr "Paul Eggert"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:52
+#: src/diff.c:51
 msgid "Mike Haertel"
 msgstr "Mike Haertel"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:53
+#: src/diff.c:52
 msgid "David Hayes"
 msgstr "David Hayes"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:54
+#: src/diff.c:53
 msgid "Richard Stallman"
 msgstr "Richard Stallman"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:55
+#: src/diff.c:54
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:355
+#: src/diff.c:365
 #, c-format
 msgid "invalid context length '%s'"
 msgstr "virheellinen kontekstin pituus ”%s”"
 
-#: src/diff.c:438
+#: src/diff.c:487
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "tämä kone ei tue sivunumerointia"
 
-#: src/diff.c:453 src/diff3.c:341
+#: src/diff.c:502 src/diff3.c:348
 #, c-format
 msgid "too many file label options"
 msgstr "liian monta tiedostonimiövalitsinta"
 
-#: src/diff.c:530
+#: src/diff.c:579
 #, c-format
 msgid "invalid width '%s'"
 msgstr "virheellinen leveys ”%s”"
 
-#: src/diff.c:534
+#: src/diff.c:583
 msgid "conflicting width options"
 msgstr "ristiriitaiset leveysvalinnat"
 
-#: src/diff.c:559
+#: src/diff.c:608
 #, c-format
 msgid "invalid horizon length '%s'"
 msgstr "virheellinen horisontin pituus ”%s”"
 
-#: src/diff.c:615
+#: src/diff.c:664
 #, c-format
 msgid "invalid tabsize '%s'"
 msgstr "virheellinen sarkaimen koko ”%s”"
 
-#: src/diff.c:619
+#: src/diff.c:668
 msgid "conflicting tabsize options"
 msgstr "ristiriitaiset sarkaimen kokovalinnat"
 
-#: src/diff.c:774
+#: src/diff.c:834
 msgid "--from-file and --to-file both specified"
 msgstr "sekä valitsin --from-file että --to-file on annettu"
 
-#: src/diff.c:893
+#: src/diff.c:953
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "    --normal                  tulosta normaali diff (oletus)"
 
-#: src/diff.c:894
+#: src/diff.c:954
 msgid "-q, --brief                   report only when files differ"
 msgstr "-q, --brief                   kertoo vain, eroavatko tiedostot"
 
-#: src/diff.c:895
+#: src/diff.c:955
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr "-s, --report-identical-files  ilmoita, jos kaksi tiedostoa ovat samat"
 
-#: src/diff.c:896
+#: src/diff.c:956
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
 "-c, -C MÄÄRÄ, --context[=MÄÄRÄ] tulosta MÄÄRÄ riviä (oletus 3) kopioitua "
 "kontekstia"
 
-#: src/diff.c:897
+#: src/diff.c:957
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
@@ -739,45 +740,45 @@ msgstr ""
 "yhtenäistettyä\n"
 "                                  kontekstia"
 
-#: src/diff.c:898
+#: src/diff.c:958
 msgid "-e, --ed                      output an ed script"
 msgstr "-e, --ed                      tulosta ed-skripti"
 
-#: src/diff.c:899
+#: src/diff.c:959
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n, --rcs                     tulosta RCS-muotoinen diff"
 
-#: src/diff.c:900
+#: src/diff.c:960
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side            tulosta kahdelle palstalle"
 
-#: src/diff.c:901
+#: src/diff.c:961
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
 "-W, --width=MÄÄRÄ            tulosta enintään MÄÄRÄ (oletus 130) merkkiä "
 "riville"
 
-#: src/diff.c:902
+#: src/diff.c:962
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr ""
 "    --left-column             tulosta vain yhteisten rivien vasen palsta"
 
-#: src/diff.c:903
+#: src/diff.c:963
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "    --suppress-common-lines  älä tulosta yhteisiä rivejä"
 
-#: src/diff.c:905
+#: src/diff.c:965
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr "-p, --show-c-function         näytä missä C-funktiossa kukin muutos on"
 
-#: src/diff.c:906
+#: src/diff.c:966
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr ""
 "-F, --show-function-line=SL   näytä viimeisin SL-lausekkeeseen täsmäävä rivi"
 
-#: src/diff.c:907
+#: src/diff.c:967
 msgid ""
 "    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
@@ -785,84 +786,84 @@ msgstr ""
 "    --label NIMIÖ             käytä NIMIÖtä tiedostonimen ja aikaleiman\n"
 "                                sijaan (voidaan toistaa)"
 
-#: src/diff.c:910
+#: src/diff.c:970
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr ""
 "-t, --expand-tabs             laajenna sarkaimet välilyönneiksi tulosteessa"
 
-#: src/diff.c:911
+#: src/diff.c:971
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr "-T, --initial-tab             kohdista sarkaimet lisäämällä sarkaimia"
 
-#: src/diff.c:912
+#: src/diff.c:972
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=KOKO            sarkaimet joka KOKO. merkin välein (oletus 8)"
 
-#: src/diff.c:913
+#: src/diff.c:973
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
 "    --suppress-blank-empty    vaienna välilyönti tai sarkain tyhjien\n"
 "                                tulosterivien edeltä"
 
-#: src/diff.c:914
+#: src/diff.c:974
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr ""
 "-l, --paginate                ohjaa tuloste ”pr”-ohjelman läpi\n"
 "                                sivunumerointia varten"
 
-#: src/diff.c:916
+#: src/diff.c:976
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr ""
 "-r, --recursive                 vertaa löytyneitä alihakemistoja "
 "rekursiivisesti"
 
-#: src/diff.c:917
+#: src/diff.c:977
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr "    --no-dereference            älä seuraa symbolisia linkkejä"
 
-#: src/diff.c:918
+#: src/diff.c:978
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr "-N, --new-file                  käsittele puuttuvia tiedostoja tyhjinä"
 
-#: src/diff.c:919
+#: src/diff.c:979
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
 "    --unidirectional-new-file    käsittele puuttuvia tiedostoja tyhjinä"
 
-#: src/diff.c:920
+#: src/diff.c:980
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ""
 "    --ignore-file-name-case     älä huomioi kirjainkokoa tiedostonimiä\n"
 "                                  verrattaessa"
 
-#: src/diff.c:921
+#: src/diff.c:981
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
 "    --no-ignore-file-name-case  huomioi kirjankoko tiedostonimiä verrattaessa"
 
-#: src/diff.c:922
+#: src/diff.c:982
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr ""
 "-x, --exclude=HAHMO             jätä pois tiedostot, jotka täsmäävät HAHMOon"
 
-#: src/diff.c:923
+#: src/diff.c:983
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
 "-X, --exclude-from=TIEDOSTO     jätä pois TIEDOSTOssa lueteltuihin\n"
 "                                  hahmoihin täsmäävät tiedostot"
 
-#: src/diff.c:924
+#: src/diff.c:984
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
 "-S, --starting-file=TIEDOSTO    aloita TIEDOSTOlla hakemistoja verrattaessa"
 
-#: src/diff.c:925
+#: src/diff.c:985
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
@@ -870,7 +871,7 @@ msgstr ""
 "    --from-file=TIEDOSTO1       vertaa TIEDOSTO1:tä kaikkiin operandeihin;\n"
 "                                  TIEDOSTO1 voi olla hakemisto"
 
-#: src/diff.c:927
+#: src/diff.c:987
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
@@ -878,78 +879,78 @@ msgstr ""
 "    --to-file=TIEDOSTO2         vertaa kaikkia operandeja TIEDOSTO2:een;\n"
 "                                  TIEDOSTO2 voi olla hakemisto"
 
-#: src/diff.c:930
+#: src/diff.c:990
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr ""
 "-i, --ignore-case               älä huomioi kirjainkokoa tiedostojen "
 "sisällössä"
 
-#: src/diff.c:931
+#: src/diff.c:991
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr ""
 "-E, --ignore-tab-expansion      älä huomioi sarkainten laajennuksesta\n"
 "                                  johtuvia eroja"
 
-#: src/diff.c:932
+#: src/diff.c:992
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr "-Z, --ignore-trailing-space     älä huomioi tyhjeitä rivin lopussa"
 
-#: src/diff.c:933
+#: src/diff.c:993
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr ""
 "-b, --ignore-space-change       älä huomioi tyhjemerkkien määrästä johtuvia "
 "eroja"
 
-#: src/diff.c:934
+#: src/diff.c:994
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w  --ignore-all-white-space  älä huomioi tyhjemerkkejä"
 
-#: src/diff.c:935
+#: src/diff.c:995
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr "-B  --ignore-blank-lines  älä huomioi tyhjistä riveistä johtuvia eroja"
 
-#: src/diff.c:936
+#: src/diff.c:996
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=SL  älä huomioi eroavia rivejä, jotka kaikki\n"
 "                                  täsmäävät säännölliseen lausekkeeseen SL"
 
-#: src/diff.c:938
+#: src/diff.c:998
 msgid "-a, --text                      treat all files as text"
 msgstr "-a  --text                      käsittelee kaikki tiedostot tekstinä"
 
-#: src/diff.c:939
+#: src/diff.c:999
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr "    --strip-trailing-cr         poista vaununpalautus syötteen lopusta"
 
-#: src/diff.c:941
+#: src/diff.c:1001
 msgid "    --binary                    read and write data in binary mode"
 msgstr "   --binary                     lue ja kirjoita dataa binääritilassa"
 
-#: src/diff.c:944
+#: src/diff.c:1004
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
 "-D, --ifdef=NIMI                tulosta yhdistetty tiedosto ”#ifdef NIMI” -"
 "eroin"
 
-#: src/diff.c:945
+#: src/diff.c:1005
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr ""
 "    --GTYYPPI-group-format=GMUOTO muotoile GTYYPPIset syöteryhmät GMUOTOon"
 
-#: src/diff.c:946
+#: src/diff.c:1006
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr "    --line-format=LMUOTO   muotoile kaikki syöterivit LMUOTOon"
 
-#: src/diff.c:947
+#: src/diff.c:1007
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr "    --line-format=LMUOTO        muotoile LTYYPPI-syöterivit LMUOTOon"
 
-#: src/diff.c:948
+#: src/diff.c:1008
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
@@ -957,12 +958,12 @@ msgstr ""
 "  Näillä muotoiluvalitsimilla hienosäädetään diffin tulostetta,\n"
 "    yleistäen -D/--ifdef."
 
-#: src/diff.c:950
+#: src/diff.c:1010
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
 "  LTYYPPI on ”old”, ”new” tai ”unchanged”. GTYYPPI on LTYYPPI tai ”changed”."
 
-#: src/diff.c:951
+#: src/diff.c:1011
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -992,7 +993,7 @@ msgstr ""
 "        M  L+1\n"
 "    %(A=B?T:E)  jos A yhtäkuin B niin T muuten E"
 
-#: src/diff.c:963
+#: src/diff.c:1023
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -1004,7 +1005,7 @@ msgstr ""
 "    %l  rivin sisältö, mahdollinen jälkeinen rivinvaihto poistettuna\n"
 "    %[-][LEVEYS][.[TARKK]]{doxX}n printf-tyylinen määritys rivinumerolle"
 
-#: src/diff.c:967
+#: src/diff.c:1027
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1018,24 +1019,24 @@ msgstr ""
 "    %c'\\OOO' yksittäinen merkki, jonka oktaalikoodi OOO\n"
 "    C       merkki C (loput merkit vastaavat itseään)"
 
-#: src/diff.c:973
+#: src/diff.c:1033
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr "-d, --minimal            yritä kovin löytää pienempi muutosjoukko"
 
-#: src/diff.c:974
+#: src/diff.c:1034
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr ""
 "    --horizon-lines=MÄÄRÄ  säilytä MÄÄRÄ riviä yhteisistä etu- ja "
 "jälkiliitteistä"
 
-#: src/diff.c:975
+#: src/diff.c:1035
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
 "    --speed-large-files  oleta suuret tiedostot, joissa paljon pieniä\n"
 "                           muutoksia ympäri tiedoston"
 
-#: src/diff.c:976
+#: src/diff.c:1036
 msgid ""
 "    --color[=WHEN]       color output; WHEN is 'never', 'always', or "
 "'auto';\n"
@@ -1046,7 +1047,7 @@ msgstr ""
 "                           tai ”auto”; pelkkä --color on sama kuin --"
 "color=auto"
 
-#: src/diff.c:978
+#: src/diff.c:1038
 msgid ""
 "    --palette=PALETTE    the colors to use when --color is active; PALETTE "
 "is\n"
@@ -1057,112 +1058,112 @@ msgstr ""
 "                           on kaksoispiste-eroteltu luettelo terminfo-"
 "kyvyistä"
 
-#: src/diff.c:981
+#: src/diff.c:1041
 msgid "    --help               display this help and exit"
 msgstr "    --help               näytä tämä ohje ja poistu"
 
-#: src/diff.c:982
+#: src/diff.c:1042
 msgid "-v, --version            output version information and exit"
 msgstr "-v, --version            näytä versiotiedot ja poistu"
 
-#: src/diff.c:984
+#: src/diff.c:1044
 msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
 "TIEDOSTOT ovat ”TIEDOSTO1 TIEDOSTO2” tai ”HAK1 HAK2” tai ”HAK TIEDOSTO” tai "
 "”TIEDOSTO HAK”."
 
-#: src/diff.c:985
+#: src/diff.c:1045
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr ""
 "Jos --from-file tai --to-file on annettu, TIEDOSTO(i)lle ei ole rajoitteita."
 
-#: src/diff.c:986 src/diff3.c:533 src/sdiff.c:220
+#: src/diff.c:1046 src/diff3.c:531 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
 msgstr "Jos TIEDOSTOa ei ole annettu, tai se on ”-”, luetaan vakiosyötettä."
 
-#: src/diff.c:996
+#: src/diff.c:1056
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Käyttö: %s [VALITSIN]... TIEDOSTOT\n"
 
-#: src/diff.c:997
+#: src/diff.c:1057
 msgid "Compare FILES line by line."
 msgstr "Vertaa TIEDOSTOja rivi riviltä."
 
-#: src/diff.c:1034
+#: src/diff.c:1094
 #, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "ristiriitainen arvo ”%2$s” valitsimelle ”%1$s”"
 
-#: src/diff.c:1047
+#: src/diff.c:1107
 #, c-format
 msgid "conflicting output style options"
 msgstr "ristiriitaiset tulostustyylin valinnat"
 
-#: src/diff.c:1063
+#: src/diff.c:1123
 #, c-format
 msgid "invalid color '%s'"
 msgstr "virheellinen väri ”%s”"
 
-#: src/diff.c:1119 src/diff.c:1329
+#: src/diff.c:1197 src/diff.c:1401
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Vain hakemistossa %s: %s\n"
 
-#: src/diff.c:1253
+#: src/diff.c:1325
 msgid "cannot compare '-' to a directory"
 msgstr "”-” ei ole verrattavissa hakemistoon"
 
-#: src/diff.c:1288
+#: src/diff.c:1360
 msgid "-D option not supported with directories"
 msgstr "valitsin -D ei toimi hakemistojen kanssa"
 
-#: src/diff.c:1297
+#: src/diff.c:1369
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Yhteiset alihakemistot: %s ja %s\n"
 
-#: src/diff.c:1339 src/diff.c:1389
+#: src/diff.c:1411 src/diff.c:1461
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr "Tiedosto %s on %s, kun taas tiedosto %s on %s\n"
 
-#: src/diff.c:1375
+#: src/diff.c:1447
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "Symboliset linkit %s ja %s eroavat\n"
 
-#: src/diff.c:1462
+#: src/diff.c:1534
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Tiedostot %s ja %s ovat identtiset\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff3.c:43
+#: src/diff3.c:51
 msgid "Randy Smith"
 msgstr "Randy Smith"
 
-#: src/diff3.c:356
+#: src/diff3.c:363
 #, c-format
 msgid "incompatible options"
 msgstr "yhteensopimattomat valitsimet"
 
-#: src/diff3.c:396
+#: src/diff3.c:403
 msgid "'-' specified for more than one input file"
 msgstr "”-” annettu useammaksi syötetiedostoksi"
 
-#: src/diff3.c:447 src/diff3.c:1295 src/diff3.c:1698 src/diff3.c:1753
-#: src/sdiff.c:308 src/sdiff.c:846 src/sdiff.c:857
+#: src/diff3.c:445 src/diff3.c:1284 src/diff3.c:1683 src/diff3.c:1738
+#: src/sdiff.c:306 src/sdiff.c:843 src/sdiff.c:854
 msgid "read failed"
 msgstr "lukeminen epäonnistui"
 
-#: src/diff3.c:480
+#: src/diff3.c:478
 msgid "-A, --show-all              output all changes, bracketing conflicts"
 msgstr ""
 "-A, --show-all              tulosta kaikki muutokset, ristiriidat merkiten"
 
-#: src/diff3.c:482
+#: src/diff3.c:480
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
@@ -1171,32 +1172,32 @@ msgstr ""
 "                                VANHANTIEDOSTON muutokset verrattuna "
 "TIEDOSTOOSI"
 
-#: src/diff3.c:484
+#: src/diff3.c:482
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
 msgstr "-E, --show-overlap          kuin -e, mutta ristiriidat merkiten"
 
-#: src/diff3.c:485
+#: src/diff3.c:483
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
 msgstr ""
 "-3, --easy-only             kuin -e, mutta vain ei-päällekkäiset muutokset"
 
-#: src/diff3.c:486
+#: src/diff3.c:484
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
 msgstr ""
 "-x, --overlap-only          kuin -e, mutta vain päällekkäiset muutokset"
 
-#: src/diff3.c:487
+#: src/diff3.c:485
 msgid "-X                          like -x, but bracket conflicts"
 msgstr "-X                          kuin -x, mutta ristiriidat merkiten"
 
-#: src/diff3.c:488
+#: src/diff3.c:486
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
 msgstr "-i                          lisää komennot ”w” ja ”q” ed-skripteihin"
 
-#: src/diff3.c:490
+#: src/diff3.c:488
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
@@ -1204,23 +1205,23 @@ msgstr ""
 "-m, --merge                 tulosta varsinainen yhdistetty tiedosto -A:n\n"
 "                                mukaisesti ellei muita valitsimia annettu"
 
-#: src/diff3.c:493
+#: src/diff3.c:491
 msgid "-a, --text                  treat all files as text"
 msgstr "-a, --text                  käsittele kaikki tiedostot tekstinä"
 
-#: src/diff3.c:494
+#: src/diff3.c:492
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
 msgstr "    --strip-trailing-cr     poista vaununpalautus syötteen lopusta"
 
-#: src/diff3.c:495
+#: src/diff3.c:493
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
 msgstr "-T, --initial-tab           kohdista sarkaimet lisäämällä sarkaimia"
 
-#: src/diff3.c:496
+#: src/diff3.c:494
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
 msgstr "    --diff-program=OHJELMA  käytä OHJELMAa tiedostojen vertaamiseen"
 
-#: src/diff3.c:497
+#: src/diff3.c:495
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
@@ -1228,24 +1229,24 @@ msgstr ""
 "-L, --label NIMIÖ           käytä NIMIÖtä tiedostonimen sijaan\n"
 "                                (voidaan toistaa enintään kolmesti)"
 
-#: src/diff3.c:500
+#: src/diff3.c:498
 msgid "    --help                  display this help and exit"
 msgstr "    --help                  näytä tämä ohje ja poistu"
 
-#: src/diff3.c:501
+#: src/diff3.c:499
 msgid "-v, --version               output version information and exit"
 msgstr "-v, --version              näytä versiotiedot ja poistu"
 
-#: src/diff3.c:510
+#: src/diff3.c:508
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
 msgstr "Käyttö: %s [VALITSIN]... TIEDOSTONI VANHATIEDOSTO TIEDOSTOSI\n"
 
-#: src/diff3.c:512
+#: src/diff3.c:510
 msgid "Compare three files line by line."
 msgstr "Vertaa kolmea tiedostoa rivi riviltä."
 
-#: src/diff3.c:522
+#: src/diff3.c:520
 msgid ""
 "\n"
 "The default output format is a somewhat human-readable representation of\n"
@@ -1268,55 +1269,55 @@ msgstr ""
 "ja tulostamaan varsinaisen yhdistetyn tiedoston. Epätavalliselle\n"
 "syötteelle tämä on vankempaa kuin edin käyttäminen.\n"
 
-#: src/diff3.c:534
+#: src/diff3.c:532
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
 msgstr ""
 "Paluuarvo on onnistuessa 0, ristiriitatilanteissa 1, ja ongelmatilanteissa 2."
 
-#: src/diff3.c:727
+#: src/diff3.c:725
 msgid "internal error: screwup in format of diff blocks"
 msgstr "sisäinen virhe: möhläys diff-lohkojen muodossa"
 
-#: src/diff3.c:1022
+#: src/diff3.c:1015
 #, c-format
 msgid "%s: diff failed: "
 msgstr "%s: diff epäonnistui: "
 
-#: src/diff3.c:1044
+#: src/diff3.c:1037
 msgid "internal error: invalid diff type in process_diff"
 msgstr "sisäinen virhe: virheellinen diff-tyyppi process_diff-funktiossa"
 
-#: src/diff3.c:1069
+#: src/diff3.c:1060
 msgid "invalid diff format; invalid change separator"
 msgstr "virheellinen diff-muoto; virheellinen muutoserotin"
 
-#: src/diff3.c:1305
+#: src/diff3.c:1294
 msgid "invalid diff format; incomplete last line"
 msgstr "virheellinen diff-muoto; viimeinen rivi vajaa"
 
-#: src/diff3.c:1329 src/sdiff.c:276 src/util.c:969
+#: src/diff3.c:1318 src/sdiff.c:274 src/util.c:1069
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "apuohjelmaa ”%s” ei voitu käynnistää"
 
-#: src/diff3.c:1354
+#: src/diff3.c:1343
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "virheellinen diff-muoto; väärät rivin alkumerkit"
 
-#: src/diff3.c:1427
+#: src/diff3.c:1416
 msgid "internal error: invalid diff type passed to output"
 msgstr "sisäinen virhe: virheellinen diff-muoto välitetty tulosteeseen"
 
-#: src/diff3.c:1700 src/diff3.c:1757
+#: src/diff3.c:1685 src/diff3.c:1742
 msgid "input file shrank"
 msgstr "syötetiedosto kutistui"
 
-#: src/dir.c:156
+#: src/dir.c:154
 #, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "tiedostonimiä ”%s” ja ”%s” ei voi vertailla"
 
-#: src/dir.c:225
+#: src/dir.c:223
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: rekursiivinen hakemistosilmukka"
@@ -1326,90 +1327,90 @@ msgstr "%s: rekursiivinen hakemistosilmukka"
 msgid "Thomas Lord"
 msgstr "Thomas Lord"
 
-#: src/sdiff.c:174
+#: src/sdiff.c:173
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
 msgstr ""
 "-o, --output=TIEDOSTO        toimi vuorovaikutteisesti, tuloste TIEDOSTOon"
 
-#: src/sdiff.c:176
+#: src/sdiff.c:175
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
 msgstr ""
 "-i, --ignore-case            käsittele isot ja pienet kirjaimet samoina"
 
-#: src/sdiff.c:177
+#: src/sdiff.c:176
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
 msgstr ""
 "-E, --ignore-tab-expansion   älä huomioi sarkainten laajennuksesta\n"
 "                               johtuvia eroja"
 
-#: src/sdiff.c:178
+#: src/sdiff.c:177
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
 msgstr "-Z, --ignore-trailing-space  älä huomioi tyhjeitä rivin lopussa"
 
-#: src/sdiff.c:179
+#: src/sdiff.c:178
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
 msgstr ""
 "-b, --ignore-space-change    älä huomioi tyhjemerkkien määrästä johtuvia "
 "eroja"
 
-#: src/sdiff.c:180
+#: src/sdiff.c:179
 msgid "-W, --ignore-all-space       ignore all white space"
 msgstr "-W, --ignore-all-space        älä huomioi tyhjiä merkkejä"
 
-#: src/sdiff.c:181
+#: src/sdiff.c:180
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
 msgstr ""
 "-B, --ignore-blank-lines      älä huomioi tyhjistä riveistä johtuvia eroja"
 
-#: src/sdiff.c:182
+#: src/sdiff.c:181
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=SL  älä huomioi eroavia rivejä, jotka\n"
 "                                  täsmäävät säännölliseen lausekkeeseen SL"
 
-#: src/sdiff.c:183
+#: src/sdiff.c:182
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
 msgstr "    --strip-trailing-cr       poista vaununpalautus syötteen lopusta"
 
-#: src/sdiff.c:184
+#: src/sdiff.c:183
 msgid "-a, --text                   treat all files as text"
 msgstr "-a  --text                    käsittele kaikki tiedostot tekstinä"
 
-#: src/sdiff.c:186
+#: src/sdiff.c:185
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
 msgstr ""
 "-w, --width=MÄÄRÄ            tulosta enintään MÄÄRÄ (oletus 130) merkkiä "
 "riville"
 
-#: src/sdiff.c:187
+#: src/sdiff.c:186
 msgid ""
 "-l, --left-column            output only the left column of common lines"
 msgstr ""
 "-l, --left-column            tulosta vain yhteisten rivien vasen palsta"
 
-#: src/sdiff.c:188
+#: src/sdiff.c:187
 msgid "-s, --suppress-common-lines  do not output common lines"
 msgstr "-s, --suppress-common-lines  älä tulosta yhteisiä rivejä"
 
-#: src/sdiff.c:190
+#: src/sdiff.c:189
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
 msgstr ""
 "-t, --expand-tabs            laajenna sarkaimet välilyönneiksi tulosteessa"
 
-#: src/sdiff.c:191
+#: src/sdiff.c:190
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
 msgstr "    --tabsize=KOKO           sarkaimen koko on KOKO (oletus 8) merkkiä"
 
-#: src/sdiff.c:193
+#: src/sdiff.c:192
 msgid "-d, --minimal                try hard to find a smaller set of changes"
 msgstr "-d, --minimal               yritä kovin löytää pienempi muutosjoukko"
 
-#: src/sdiff.c:194
+#: src/sdiff.c:193
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
 msgstr ""
@@ -1417,38 +1418,38 @@ msgstr ""
 "muutoksia\n"
 "                               ympäri tiedoston"
 
-#: src/sdiff.c:195
+#: src/sdiff.c:194
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
 msgstr "    --diff-program=OHJELMA  käytä OHJELMAa tiedostojen vertaamiseen"
 
-#: src/sdiff.c:197
+#: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
 msgstr "    --help                  näytä tämä ohje ja poistu"
 
-#: src/sdiff.c:198
+#: src/sdiff.c:197
 msgid "-v, --version                output version information and exit"
 msgstr "-v, --version                näytä versiotiedot ja poistu"
 
-#: src/sdiff.c:207
+#: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
 msgstr "Käyttö: %s [VALITSIN]...TIEDOSTO1 TIEDOSTO2\n"
 
-#: src/sdiff.c:209
+#: src/sdiff.c:208
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
 msgstr ""
 "Tiedostojen TIEDOSTO1 ja TIEDOSTO2 erojen yhdistäminen vierekkäisillä "
 "palstoilla."
 
-#: src/sdiff.c:330
+#: src/sdiff.c:328
 msgid "cannot interactively merge standard input"
 msgstr "vakiosyötettä ei voi yhdistää vuorovaikutteisesti"
 
-#: src/sdiff.c:597
+#: src/sdiff.c:594
 msgid "both files to be compared are directories"
 msgstr "molemmat vertailtavat tiedostot ovat hakemistoja"
 
-#: src/sdiff.c:820
+#: src/sdiff.c:817
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
 "eb:\tEdit then use both versions.\n"
@@ -1472,12 +1473,12 @@ msgstr ""
 "v:\tSisällytä yhteiset rivit automaattisesti, ilmoittaen.\n"
 "q:\tLopeta.\n"
 
-#: src/util.c:662
+#: src/util.c:755
 #, c-format
 msgid "unrecognized prefix: %s"
 msgstr "tunnistamaton etuliite: %s"
 
-#: src/util.c:692
+#: src/util.c:785
 #, c-format
 msgid "unparsable value for --palette"
 msgstr "jäsentymätön arvo valitsimelle --palette"
index 02d0c58..893bbf2 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNU diffutils 3.7.41\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2021-08-01 18:56-0700\n"
+"POT-Creation-Date: 2023-05-21 01:51-0700\n"
 "PO-Revision-Date: 2021-07-20 20:07+0200\n"
 "Last-Translator: Frédéric Marchal <fmarchal@perso.be>\n"
 "Language-Team: French <traduc@traduc.org>\n"
@@ -19,29 +19,29 @@ msgstr ""
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 "Plural-Forms: nplurals=2; plural=(n >= 2);\n"
 
-#: lib/argmatch.c:132
+#: lib/argmatch.c:145
 #, c-format
 msgid "invalid argument %s for %s"
 msgstr "argument %s pas valable pour %s"
 
-#: lib/argmatch.c:133
+#: lib/argmatch.c:146
 #, c-format
 msgid "ambiguous argument %s for %s"
 msgstr "argument %s ambigu pour %s"
 
-#: lib/argmatch.c:152 lib/argmatch.h:223
+#: lib/argmatch.c:165 lib/argmatch.h:242
 msgid "Valid arguments are:"
 msgstr "Les arguments valables sont:"
 
-#: lib/c-stack.c:187
+#: lib/c-stack.c:186
 msgid "program error"
 msgstr "erreur du programme"
 
-#: lib/c-stack.c:188
+#: lib/c-stack.c:187
 msgid "stack overflow"
 msgstr "débordement de pile"
 
-#: lib/error.c:195
+#: lib/error.c:193
 msgid "Unknown system error"
 msgstr "Erreur système inconnue"
 
@@ -198,83 +198,83 @@ msgstr "%s: l'option -- « %c » requiert un argument\n"
 #. If you don't know what to put here, please see
 #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:355
+#: lib/quotearg.c:354
 msgid "`"
 msgstr "« "
 
-#: lib/quotearg.c:356
+#: lib/quotearg.c:355
 msgid "'"
 msgstr " »"
 
-#: lib/regcomp.c:135
+#: lib/regcomp.c:122
 msgid "Success"
 msgstr "Succès"
 
-#: lib/regcomp.c:138
+#: lib/regcomp.c:125
 msgid "No match"
 msgstr "Pas de concordance"
 
-#: lib/regcomp.c:141
+#: lib/regcomp.c:128
 msgid "Invalid regular expression"
 msgstr "L'expression régulière est invalide"
 
-#: lib/regcomp.c:144
+#: lib/regcomp.c:131
 msgid "Invalid collation character"
 msgstr "Le caractère de regroupement est invalide"
 
-#: lib/regcomp.c:147
+#: lib/regcomp.c:134
 msgid "Invalid character class name"
 msgstr "Le nom d'un ensemble de caractères est invalide"
 
-#: lib/regcomp.c:150
+#: lib/regcomp.c:137
 msgid "Trailing backslash"
 msgstr "Barre oblique inverse à la fin"
 
-#: lib/regcomp.c:153
+#: lib/regcomp.c:140
 msgid "Invalid back reference"
 msgstr "La référence arrière est invalide"
 
-#: lib/regcomp.c:156
+#: lib/regcomp.c:143
 msgid "Unmatched [, [^, [:, [., or [="
 msgstr "[, [^, [:, [. ou [= sans vis-à-vis"
 
-#: lib/regcomp.c:159
+#: lib/regcomp.c:146
 msgid "Unmatched ( or \\("
 msgstr " ( ou \\( sans vis-à-vis"
 
-#: lib/regcomp.c:162
+#: lib/regcomp.c:149
 msgid "Unmatched \\{"
 msgstr "\\{ sans vis-à-vis"
 
-#: lib/regcomp.c:165
+#: lib/regcomp.c:152
 msgid "Invalid content of \\{\\}"
 msgstr "Le contenu de \\{\\} est invalide"
 
-#: lib/regcomp.c:168
+#: lib/regcomp.c:155
 msgid "Invalid range end"
 msgstr "La fin d'intervalle est invalide"
 
-#: lib/regcomp.c:171
+#: lib/regcomp.c:158
 msgid "Memory exhausted"
 msgstr "Mémoire épuisée"
 
-#: lib/regcomp.c:174
+#: lib/regcomp.c:161
 msgid "Invalid preceding regular expression"
 msgstr "L'expression régulière précédente est invalide"
 
-#: lib/regcomp.c:177
+#: lib/regcomp.c:164
 msgid "Premature end of regular expression"
 msgstr "Fin prématurée de l'expression régulière"
 
-#: lib/regcomp.c:180
+#: lib/regcomp.c:167
 msgid "Regular expression too big"
 msgstr "Expression régulière trop grande"
 
-#: lib/regcomp.c:183
+#: lib/regcomp.c:170
 msgid "Unmatched ) or \\)"
 msgstr ") or \\) sans vis-à-vis"
 
-#: lib/regcomp.c:676
+#: lib/regcomp.c:650
 msgid "No previous regular expression"
 msgstr "N'est pas précédé d'une expression régulière"
 
@@ -474,17 +474,17 @@ msgstr "site internet de %s: <%s>\n"
 msgid "General help using GNU software: <%s>\n"
 msgstr "Aide générale sur l'utilisation des logiciels GNU: <%s>\n"
 
-#: src/analyze.c:454 src/diff.c:1406
+#: src/analyze.c:455 src/diff.c:1478
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Les fichiers %s et %s sont différents\n"
 
-#: src/analyze.c:455
+#: src/analyze.c:456
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "Les fichiers binaires %s et %s sont différents\n"
 
-#: src/analyze.c:706 src/diff3.c:1470 src/util.c:1254
+#: src/analyze.c:707 src/diff3.c:1457 src/util.c:1354
 msgid "No newline at end of file"
 msgstr "Pas de fin de ligne à la fin du fichier"
 
@@ -498,40 +498,41 @@ msgstr "Torbjorn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:120 src/diff.c:879 src/diff3.c:467 src/sdiff.c:160
+#: src/cmp.c:124 src/diff.c:939 src/diff3.c:465 src/sdiff.c:159
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Utilisez « %s --help » pour en savoir d'avantage."
 
-#: src/cmp.c:138
+#: src/cmp.c:142
 #, c-format
 msgid "invalid --ignore-initial value '%s'"
 msgstr "valeur invalide pour --ignore-initial: « %s »"
 
-#: src/cmp.c:148
+#: src/cmp.c:152
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr "options -l et -s sont incompatibles"
 
-#: src/cmp.c:156 src/diff.c:887 src/diff3.c:474 src/sdiff.c:168 src/sdiff.c:316
-#: src/sdiff.c:323 src/sdiff.c:876 src/util.c:852 src/util.c:952 src/util.c:959
+#: src/cmp.c:160 src/diff.c:947 src/diff3.c:472 src/sdiff.c:167 src/sdiff.c:314
+#: src/sdiff.c:321 src/sdiff.c:873 src/util.c:952 src/util.c:1052
+#: src/util.c:1059
 msgid "write failed"
 msgstr "échec d'écriture"
 
-#: src/cmp.c:158 src/diff.c:889 src/diff.c:1471 src/diff3.c:476 src/sdiff.c:170
+#: src/cmp.c:162 src/diff.c:949 src/diff.c:1543 src/diff3.c:474 src/sdiff.c:169
 msgid "standard output"
 msgstr "sortie standard"
 
-#: src/cmp.c:162
+#: src/cmp.c:166
 msgid "-b, --print-bytes          print differing bytes"
 msgstr "-b, --print-bytes           Afficher les octets qui diffèrent"
 
-#: src/cmp.c:163
+#: src/cmp.c:167
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
 msgstr ""
 "-i, --ignore-initial=N      Escamoter les N premiers octets des entrées"
 
-#: src/cmp.c:164
+#: src/cmp.c:168
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
@@ -539,41 +540,41 @@ msgstr ""
 "-i, --ignore-initial=N1:N2  Escamoter les N1 premiers octets de FICHIER1 et "
 "les N2 premiers octets de FICHIER2."
 
-#: src/cmp.c:166
+#: src/cmp.c:170
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
 msgstr ""
 "-l, --verbose               Afficher les numéros d'octets et les valeurs de "
 "tous les octets qui diffèrent."
 
-#: src/cmp.c:167
+#: src/cmp.c:171
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
 msgstr "-n, --bytes=LIMITE          Comparer au plus LIMITE octets"
 
-#: src/cmp.c:168
+#: src/cmp.c:172
 msgid "-s, --quiet, --silent      suppress all normal output"
 msgstr "-s, --quiet, --silent       Supprimer la sortie normale"
 
-#: src/cmp.c:169
+#: src/cmp.c:173
 msgid "    --help                 display this help and exit"
 msgstr "    --help                  Afficher cette aide et terminer"
 
-#: src/cmp.c:170
+#: src/cmp.c:174
 msgid "-v, --version              output version information and exit"
 msgstr ""
 "-v, --version               Afficher le nom et la version du logiciel puis "
 "terminer"
 
-#: src/cmp.c:179
+#: src/cmp.c:183
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
 msgstr "Usage: %s [OPTION]... FICHIER1 [FICHIER2 [SAUT1 [SAUT2]]]\n"
 
-#: src/cmp.c:181
+#: src/cmp.c:185
 msgid "Compare two files byte by byte."
 msgstr "Comparer deux fichiers octet par octet."
 
-#: src/cmp.c:183
+#: src/cmp.c:187
 msgid ""
 "The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
 "at the beginning of each file (zero by default)."
@@ -582,14 +583,14 @@ msgstr ""
 "escamoter\n"
 "au début de chaque fichier (zéro par défaut)."
 
-#: src/cmp.c:186 src/diff.c:999 src/diff3.c:514 src/sdiff.c:211
+#: src/cmp.c:190 src/diff.c:1059 src/diff3.c:512 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
 "Les paramètres requis pour les options longues sont également requis pour "
 "les options courtes.\n"
 
-#: src/cmp.c:192
+#: src/cmp.c:196
 msgid ""
 "SKIP values may be followed by the following multiplicative suffixes:\n"
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
@@ -600,202 +601,202 @@ msgstr ""
 "kB 1000, K 1024, MB 1.000.000, M 1.048.576,\n"
 "GB 1.000.000.000, G 1.073.741.824, et ainsi de suite pour T, P, E, Z, Y."
 
-#: src/cmp.c:195
+#: src/cmp.c:199
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "Si un FICHIER est « - » ou manquant, lire sur l'entrée standard."
 
-#: src/cmp.c:196 src/diff.c:987 src/sdiff.c:221
+#: src/cmp.c:200 src/diff.c:1047 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr ""
 "Le statut de fin d'exécution est 0 si les entrées sont les mêmes, 1 si "
 "différentes et 2 si problématiques."
 
-#: src/cmp.c:243
+#: src/cmp.c:247
 #, c-format
 msgid "invalid --bytes value '%s'"
 msgstr "valeur invalide pour --bytes: « %s »"
 
-#: src/cmp.c:269 src/diff.c:797 src/diff3.c:361 src/sdiff.c:567
+#: src/cmp.c:273 src/diff.c:857 src/diff3.c:368 src/sdiff.c:564
 #, c-format
 msgid "missing operand after '%s'"
 msgstr "opérande manquante après « %s »"
 
-#: src/cmp.c:281 src/diff.c:799 src/diff3.c:363 src/sdiff.c:569
+#: src/cmp.c:285 src/diff.c:859 src/diff3.c:370 src/sdiff.c:566
 #, c-format
 msgid "extra operand '%s'"
 msgstr "opérande supplémentaire « %s »"
 
-#: src/cmp.c:507
+#: src/cmp.c:521
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s sont différents: octet %s, ligne %s\n"
 
-#: src/cmp.c:523
+#: src/cmp.c:537
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
 msgstr "%s %s diffèrent: octet %s, ligne %s est %3o %s %3o %s\n"
 
-#: src/cmp.c:580
+#: src/cmp.c:594
 #, c-format
 msgid "cmp: EOF on %s which is empty\n"
 msgstr "cmp: Fin-de-fichier (EOF) sur %s qui est vide\n"
 
-#: src/cmp.c:594
+#: src/cmp.c:608
 #, c-format
 msgid "cmp: EOF on %s after byte %s, line %s\n"
 msgstr "cmp: Fin-de-fichier (EOF) sur %s après l'octet %s, ligne %s\n"
 
-#: src/cmp.c:595
+#: src/cmp.c:609
 #, c-format
 msgid "cmp: EOF on %s after byte %s, in line %s\n"
 msgstr "cmp: Fin-de-fichier (EOF) sur %s après l'octet %s, ligne %s\n"
 
-#: src/cmp.c:601
+#: src/cmp.c:615
 #, c-format
 msgid "cmp: EOF on %s after byte %s\n"
 msgstr "cmp: Fin-de-fichier (EOF) sur %s après l'octet %s\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:51
+#: src/diff.c:50
 msgid "Paul Eggert"
 msgstr "Paul Eggert"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:52
+#: src/diff.c:51
 msgid "Mike Haertel"
 msgstr "Mike Haertel"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:53
+#: src/diff.c:52
 msgid "David Hayes"
 msgstr "David Hayes"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:54
+#: src/diff.c:53
 msgid "Richard Stallman"
 msgstr "Richard Stallman"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:55
+#: src/diff.c:54
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:355
+#: src/diff.c:365
 #, c-format
 msgid "invalid context length '%s'"
 msgstr "longueur du contexte invalide « %s »"
 
-#: src/diff.c:438
+#: src/diff.c:487
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "La pagination n'est pas supporté sur cette machine"
 
-#: src/diff.c:453 src/diff3.c:341
+#: src/diff.c:502 src/diff3.c:348
 #, c-format
 msgid "too many file label options"
 msgstr "Trop de noms de fichiers dans les options"
 
-#: src/diff.c:530
+#: src/diff.c:579
 #, c-format
 msgid "invalid width '%s'"
 msgstr "largeur invalide « %s »"
 
-#: src/diff.c:534
+#: src/diff.c:583
 msgid "conflicting width options"
 msgstr "options de largeur conflictuelles"
 
-#: src/diff.c:559
+#: src/diff.c:608
 #, c-format
 msgid "invalid horizon length '%s'"
 msgstr "longueur d'horizon invalide « %s »"
 
-#: src/diff.c:615
+#: src/diff.c:664
 #, c-format
 msgid "invalid tabsize '%s'"
 msgstr "taille de tabulation invalide « %s »"
 
-#: src/diff.c:619
+#: src/diff.c:668
 msgid "conflicting tabsize options"
 msgstr "options conflictuelles de taille de tabulation"
 
-#: src/diff.c:774
+#: src/diff.c:834
 msgid "--from-file and --to-file both specified"
 msgstr "--from-file et --to-file ont été spécifiés ensemble"
 
-#: src/diff.c:893
+#: src/diff.c:953
 msgid "    --normal                  output a normal diff (the default)"
 msgstr ""
 "    --normal                  Produire un « diff » en format normal (par "
 "défaut)"
 
-#: src/diff.c:894
+#: src/diff.c:954
 msgid "-q, --brief                   report only when files differ"
 msgstr ""
 "-q, --brief                   Indiquer seulement si les fichiers diffèrent"
 
-#: src/diff.c:895
+#: src/diff.c:955
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr ""
 "-s, --report-identical-files  Indiquer si les deux fichiers sont identiques"
 
-#: src/diff.c:896
+#: src/diff.c:956
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
 "-c, -C N, --context[=N]              Afficher N (3 par défaut) lignes du "
 "contexte copié"
 
-#: src/diff.c:897
+#: src/diff.c:957
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
 "-u, -U N, --unified[=N]              Afficher N (3 par défaut) lignes dans "
 "le context unifié"
 
-#: src/diff.c:898
+#: src/diff.c:958
 msgid "-e, --ed                      output an ed script"
 msgstr "-e, --ed                      Générer un script pour « ed »"
 
-#: src/diff.c:899
+#: src/diff.c:959
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr ""
 "-n, --rcs                     Générer un fichier « diff » au format RCS"
 
-#: src/diff.c:900
+#: src/diff.c:960
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side            Affichage sur deux colonnes"
 
-#: src/diff.c:901
+#: src/diff.c:961
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
 "-w, --width=N                Limiter la sortie à au plus N colonnes "
 "imprimées (130 par défaut)"
 
-#: src/diff.c:902
+#: src/diff.c:962
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr ""
 "    --left-column            Afficher les lignes identiques uniquement dans "
 "la colonne de gauche"
 
-#: src/diff.c:903
+#: src/diff.c:963
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "    --suppress-common-lines   Ne pas afficher les lignes identiques"
 
-#: src/diff.c:905
+#: src/diff.c:965
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr ""
 "-p, --show-c-function         Afficher dans quelle fonction C le changement "
 "se trouve"
 
-#: src/diff.c:906
+#: src/diff.c:966
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr ""
 "-F, --show-function-line=RE   Montrer la ligne la plus récente correspondant "
 "à RE"
 
-#: src/diff.c:907
+#: src/diff.c:967
 msgid ""
 "    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
@@ -804,93 +805,93 @@ msgstr ""
 "et de l'horodatage\n"
 "                                (peut être répété)"
 
-#: src/diff.c:910
+#: src/diff.c:970
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr ""
 "-t, --expand-tabs             Étaler les tabulateurs en espaces dans la "
 "sortie"
 
-#: src/diff.c:911
+#: src/diff.c:971
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr ""
 "-T, --initial-tab            Aligner les tabulateurs en préfixant un "
 "tabulateur"
 
-#: src/diff.c:912
+#: src/diff.c:972
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=N              Les balises de tabulation sont à chaque N (8 "
 "par défaut) colonnes"
 
-#: src/diff.c:913
+#: src/diff.c:973
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
 "    --suppress-blank-empty   Supprimer les espaces et les tabulations avant "
 "les lignes vides"
 
-#: src/diff.c:914
+#: src/diff.c:974
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr ""
 "-l, --paginate                Relayer la sortie à « pr » afin de la paginer"
 
-#: src/diff.c:916
+#: src/diff.c:976
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr ""
 "-r, --recursive               Comparer récursivement les sous-répertoires "
 "trouvés"
 
-#: src/diff.c:917
+#: src/diff.c:977
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr "    --no-dereference            Ne pas suivre les liens symboliques"
 
-#: src/diff.c:918
+#: src/diff.c:978
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr ""
 "-N, --new-file                Traiter les fichiers absents comme des "
 "fichiers vides"
 
-#: src/diff.c:919
+#: src/diff.c:979
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
 "    --unidirectional-new-file Traiter les premiers fichiers absents comme "
 "vides"
 
-#: src/diff.c:920
+#: src/diff.c:980
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ""
 "    --ignore-file-name-case   Ignorer la casse lors de la comparaison des "
 "noms de fichiers"
 
-#: src/diff.c:921
+#: src/diff.c:981
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
 "    --no-ignore-file-name-case Tenir compte de la casse lors de la "
 "comparaison des noms de fichiers"
 
-#: src/diff.c:922
+#: src/diff.c:982
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr ""
 "-x, --exclude=PAT            Exclure les fichiers dont les noms concordent "
 "avec le PATron"
 
-#: src/diff.c:923
+#: src/diff.c:983
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
 "-X, --exclude-from=FICHIER   Exclure les fichiers dont les noms\n"
 "                              concordent avec ceux contenus dans le FICHIER"
 
-#: src/diff.c:924
+#: src/diff.c:984
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
 "-S, --starting-file=FICHIER  Débuter la comparaison des répertoires par le "
 "FICHIER"
 
-#: src/diff.c:925
+#: src/diff.c:985
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
@@ -898,7 +899,7 @@ msgstr ""
 "    --from-file=FICHIER1     Comparer le FICHIER1 à toutes les opérandes.\n"
 "                                  FICHIER1 peut être un répertoire"
 
-#: src/diff.c:927
+#: src/diff.c:987
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
@@ -906,86 +907,86 @@ msgstr ""
 "    --to-file=FICHIER2       Comparer toutes les opérandes à FICHIER2.\n"
 "                                  FICHIER2 peut être un répertoire"
 
-#: src/diff.c:930
+#: src/diff.c:990
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr ""
 "-i, --ignore-case            Ignorer les différences de casses dans le "
 "contenu des fichiers"
 
-#: src/diff.c:931
+#: src/diff.c:991
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr ""
 "-E, --ignore-tab-expansion   Ignorer les changements liés à l'expansion des "
 "tabulations"
 
-#: src/diff.c:932
+#: src/diff.c:992
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr ""
 "-Z, --ignore-trailing-space       Ignorer les blancs d'espacement à la fin "
 "de la ligne"
 
-#: src/diff.c:933
+#: src/diff.c:993
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr ""
 "-b, --ignore-space-change     Ignorer les changements dans le nombre "
 "d'espaces"
 
-#: src/diff.c:934
+#: src/diff.c:994
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w, --ignore-all-space        Ignorer tout blanc d'espacement"
 
-#: src/diff.c:935
+#: src/diff.c:995
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr ""
 "-B, --ignore-blank-lines     Ignorer les changements dont toutes les lignes "
 "sont blanches"
 
-#: src/diff.c:936
+#: src/diff.c:996
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=RE Ignorer les différences dont toutes les\n"
 "                       lignes concordent avec l'expression régulière RE"
 
-#: src/diff.c:938
+#: src/diff.c:998
 msgid "-a, --text                      treat all files as text"
 msgstr ""
 "-a, --text                    Traiter tous les fichiers comme des textes"
 
-#: src/diff.c:939
+#: src/diff.c:999
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr       Éliminer les retours de chariot de l'entrée"
 
-#: src/diff.c:941
+#: src/diff.c:1001
 msgid "    --binary                    read and write data in binary mode"
 msgstr "    --binary                  Lire et écrire les données en binaire"
 
-#: src/diff.c:944
+#: src/diff.c:1004
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
 "-D, --ifdef=NOM              Afficher les fichiers fusionnés en marquant les "
 "différences par des « #ifdef NOM »"
 
-#: src/diff.c:945
+#: src/diff.c:1005
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr ""
 "    --GTYPE-group-format=GFMT Formater les groupes d'entrée GTYPE avec GFMT"
 
-#: src/diff.c:946
+#: src/diff.c:1006
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr ""
 "    --line-format=LFMT       Formater toutes les lignes d'entrée avec LFMT"
 
-#: src/diff.c:947
+#: src/diff.c:1007
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr ""
 "    --LTYPE-line-format=LFMT Formater les lignes d'entrée LTYPE avec LFMT"
 
-#: src/diff.c:948
+#: src/diff.c:1008
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
@@ -993,13 +994,13 @@ msgstr ""
 "  Ces options de formatage fournissent un contrôle fin sur la sortie\n"
 "    de diff et généralise -D/--ifdef."
 
-#: src/diff.c:950
+#: src/diff.c:1010
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
 "  LTYPE peut être soit « old », « new », ou « unchanged ».  GTYPE prend une "
 "des valeurs de LTYPE ou « changed »."
 
-#: src/diff.c:951
+#: src/diff.c:1011
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -1029,7 +1030,7 @@ msgstr ""
 "        E  F-1\n"
 "        M  L+1    %(A=B?T:E)  si A égal B alors T sinon E"
 
-#: src/diff.c:963
+#: src/diff.c:1023
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -1042,7 +1043,7 @@ msgstr ""
 "      %[-][LARGEUR][.[PREC]]{doxX}n  la spécification du numéro de ligne\n"
 "                            d'entrée selon le format de printf"
 
-#: src/diff.c:967
+#: src/diff.c:1027
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1056,26 +1057,26 @@ msgstr ""
 "    %c'\\OOO» le caractère dont le code octal est OOO    C         le "
 "caractère C (les autres caractères se représentent eux-mêmes)"
 
-#: src/diff.c:973
+#: src/diff.c:1033
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr ""
 "-d, --minimal            rechercher assidûment le plus petit ensemble de "
 "différences"
 
-#: src/diff.c:974
+#: src/diff.c:1034
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr ""
 "    --horizon-lines=N    retenir N lignes ayant des préfixes et suffixes "
 "identiques"
 
-#: src/diff.c:975
+#: src/diff.c:1035
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
 "    --speed-large-files  suppose de grands fichiers et de nombreux petits "
 "changements éparpillés"
 
-#: src/diff.c:976
+#: src/diff.c:1036
 msgid ""
 "    --color[=WHEN]       color output; WHEN is 'never', 'always', or "
 "'auto';\n"
@@ -1086,7 +1087,7 @@ msgstr ""
 "                           --color sans argument est identique à --"
 "color='auto'"
 
-#: src/diff.c:978
+#: src/diff.c:1038
 msgid ""
 "    --palette=PALETTE    the colors to use when --color is active; PALETTE "
 "is\n"
@@ -1097,116 +1098,116 @@ msgstr ""
 "                           est une liste de capacités terminfo séparées par "
 "des virgules"
 
-#: src/diff.c:981
+#: src/diff.c:1041
 msgid "    --help               display this help and exit"
 msgstr "    --help               afficher cette aide et terminer"
 
-#: src/diff.c:982
+#: src/diff.c:1042
 msgid "-v, --version            output version information and exit"
 msgstr ""
 "-v, --version            afficher le nom et la version du logiciel et "
 "terminer"
 
-#: src/diff.c:984
+#: src/diff.c:1044
 msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
 "FICHIERS sont « FICHIER1 FICHIER2 » ou « RÉP1 RÉP2 » ou « RÉP FICHIER » ou "
 "« FICHIER RÉP »."
 
-#: src/diff.c:985
+#: src/diff.c:1045
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr ""
 "Si --from-file ou --to-file sont fournis, il n'y a pas de restriction sur "
 "les FICHIERS."
 
-#: src/diff.c:986 src/diff3.c:533 src/sdiff.c:220
+#: src/diff.c:1046 src/diff3.c:531 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
 msgstr "Si un FICHIER est « - » alors lire depuis l'entrée standard."
 
-#: src/diff.c:996
+#: src/diff.c:1056
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Usage: %s [OPTION]... FICHIERS\n"
 
-#: src/diff.c:997
+#: src/diff.c:1057
 msgid "Compare FILES line by line."
 msgstr "Comparer les fichiers ligne par ligne."
 
-#: src/diff.c:1034
+#: src/diff.c:1094
 #, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "valeur conflictuelle de l'option %s: « %s »"
 
-#: src/diff.c:1047
+#: src/diff.c:1107
 #, c-format
 msgid "conflicting output style options"
 msgstr "options de style de sortie conflictuelles"
 
-#: src/diff.c:1063
+#: src/diff.c:1123
 #, c-format
 msgid "invalid color '%s'"
 msgstr "couleur « %s » invalide"
 
-#: src/diff.c:1119 src/diff.c:1329
+#: src/diff.c:1197 src/diff.c:1401
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Seulement dans %s: %s\n"
 
-#: src/diff.c:1253
+#: src/diff.c:1325
 msgid "cannot compare '-' to a directory"
 msgstr "ne peut comparer « - » avec un répertoire"
 
-#: src/diff.c:1288
+#: src/diff.c:1360
 msgid "-D option not supported with directories"
 msgstr "L'option -D ne traite pas les répertoires"
 
-#: src/diff.c:1297
+#: src/diff.c:1369
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Les sous-répertoires %s et %s sont identiques\n"
 
-#: src/diff.c:1339 src/diff.c:1389
+#: src/diff.c:1411 src/diff.c:1461
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr "Le fichier %s est un %s alors que le fichier %s est un %s\n"
 
-#: src/diff.c:1375
+#: src/diff.c:1447
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "Les liens symboliques %s et %s sont différents\n"
 
-#: src/diff.c:1462
+#: src/diff.c:1534
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Les fichiers %s et %s sont identiques\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff3.c:43
+#: src/diff3.c:51
 msgid "Randy Smith"
 msgstr "Randy Smith"
 
-#: src/diff3.c:356
+#: src/diff3.c:363
 #, c-format
 msgid "incompatible options"
 msgstr "options incompatibles"
 
-#: src/diff3.c:396
+#: src/diff3.c:403
 msgid "'-' specified for more than one input file"
 msgstr "« - » fourni pour plus d'un fichier d'entrée"
 
-#: src/diff3.c:447 src/diff3.c:1295 src/diff3.c:1698 src/diff3.c:1753
-#: src/sdiff.c:308 src/sdiff.c:846 src/sdiff.c:857
+#: src/diff3.c:445 src/diff3.c:1284 src/diff3.c:1683 src/diff3.c:1738
+#: src/sdiff.c:306 src/sdiff.c:843 src/sdiff.c:854
 msgid "read failed"
 msgstr "lecture non-réussie"
 
-#: src/diff3.c:480
+#: src/diff3.c:478
 msgid "-A, --show-all              output all changes, bracketing conflicts"
 msgstr ""
 "-A, --show-all               Afficher toutes les différences avec les "
 "conflits entre crochets"
 
-#: src/diff3.c:482
+#: src/diff3.c:480
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
@@ -1216,12 +1217,12 @@ msgstr ""
 "                             du fichier ORIGINAL vers le fichier MODIFIÉ\n"
 "                             vers le fichier de SORTIE"
 
-#: src/diff3.c:484
+#: src/diff3.c:482
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
 msgstr ""
 "-E, --show-overlap           Comme -e mais les conflits sont entre crochets"
 
-#: src/diff3.c:485
+#: src/diff3.c:483
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
@@ -1229,24 +1230,24 @@ msgstr ""
 "-3, --easy-only              Comme -e mais n'inclut que les changements qui "
 "ne se recoupent pas"
 
-#: src/diff3.c:486
+#: src/diff3.c:484
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
 msgstr ""
 "-x, --overlap-only    Comme -e mais inclut les changements qui se recoupent"
 
-#: src/diff3.c:487
+#: src/diff3.c:485
 msgid "-X                          like -x, but bracket conflicts"
 msgstr ""
 "-X                          Comme -x mais le conflits sont entre crochets"
 
-#: src/diff3.c:488
+#: src/diff3.c:486
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
 msgstr ""
 "-i                            Ajouter les commandes « w » et « q » au script "
 "« ed »"
 
-#: src/diff3.c:490
+#: src/diff3.c:488
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
@@ -1255,29 +1256,29 @@ msgstr ""
 "autre\n"
 "                                option n'est spécifiée"
 
-#: src/diff3.c:493
+#: src/diff3.c:491
 msgid "-a, --text                  treat all files as text"
 msgstr ""
 "-a, --text                    Traiter tous les fichiers comme des textes"
 
-#: src/diff3.c:494
+#: src/diff3.c:492
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr       Éliminer les retours de chariot de l'entrée"
 
-#: src/diff3.c:495
+#: src/diff3.c:493
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
 msgstr ""
 "-T, --initial-tab            Aligner les tabulateurs en préfixant un "
 "tabulateur"
 
-#: src/diff3.c:496
+#: src/diff3.c:494
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
 msgstr ""
 "    --diff-program=PROG              Utiliser le PROGramme pour comparer les "
 "fichiers"
 
-#: src/diff3.c:497
+#: src/diff3.c:495
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
@@ -1286,26 +1287,26 @@ msgstr ""
 "fichier\n"
 "                                       (peut être répété jusqu'à trois fois)"
 
-#: src/diff3.c:500
+#: src/diff3.c:498
 msgid "    --help                  display this help and exit"
 msgstr "    --help                    Afficher cette aide et terminer"
 
-#: src/diff3.c:501
+#: src/diff3.c:499
 msgid "-v, --version               output version information and exit"
 msgstr ""
 "-v, --version                 Afficher le nom et la version du logiciel et "
 "terminer"
 
-#: src/diff3.c:510
+#: src/diff3.c:508
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
 msgstr "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
 
-#: src/diff3.c:512
+#: src/diff3.c:510
 msgid "Compare three files line by line."
 msgstr "Comparer trois fichiers ligne par ligne."
 
-#: src/diff3.c:522
+#: src/diff3.c:520
 msgid ""
 "\n"
 "The default output format is a somewhat human-readable representation of\n"
@@ -1331,57 +1332,57 @@ msgstr ""
 "plus\n"
 "robuste que d'utiliser ed.\n"
 
-#: src/diff3.c:534
+#: src/diff3.c:532
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
 msgstr ""
 "Le statut de fin d'exécution est 0 si réussite, 1 si en conflit et 2 si "
 "problématique."
 
-#: src/diff3.c:727
+#: src/diff3.c:725
 msgid "internal error: screwup in format of diff blocks"
 msgstr "erreur interne: mélange dans le format des blocs « diff »"
 
-#: src/diff3.c:1022
+#: src/diff3.c:1015
 #, c-format
 msgid "%s: diff failed: "
 msgstr "%s: échec de « diff » : "
 
-#: src/diff3.c:1044
+#: src/diff3.c:1037
 msgid "internal error: invalid diff type in process_diff"
 msgstr "erreur interne: type de « diff » invalide dans process_diff"
 
-#: src/diff3.c:1069
+#: src/diff3.c:1060
 msgid "invalid diff format; invalid change separator"
 msgstr "format de « diff » invalide ; séparateur de changement invalide"
 
-#: src/diff3.c:1305
+#: src/diff3.c:1294
 msgid "invalid diff format; incomplete last line"
 msgstr "format de « diff » invalide ; dernière ligne incomplète"
 
-#: src/diff3.c:1329 src/sdiff.c:276 src/util.c:969
+#: src/diff3.c:1318 src/sdiff.c:274 src/util.c:1069
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "programme subsidiaire « %s » n'a pu être invoqué"
 
-#: src/diff3.c:1354
+#: src/diff3.c:1343
 msgid "invalid diff format; incorrect leading line chars"
 msgstr ""
 "format de « diff » invalide ; caractères incorrects au début de la ligne"
 
-#: src/diff3.c:1427
+#: src/diff3.c:1416
 msgid "internal error: invalid diff type passed to output"
 msgstr "erreur interne : type de « diff » invalide fourni en sortie"
 
-#: src/diff3.c:1700 src/diff3.c:1757
+#: src/diff3.c:1685 src/diff3.c:1742
 msgid "input file shrank"
 msgstr "le fichier d'entrée a rétréci"
 
-#: src/dir.c:156
+#: src/dir.c:154
 #, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "ne peut comparer les noms de fichier « %s » et « %s »"
 
-#: src/dir.c:225
+#: src/dir.c:223
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: boucle récursive dans le répertoire"
@@ -1391,136 +1392,136 @@ msgstr "%s: boucle récursive dans le répertoire"
 msgid "Thomas Lord"
 msgstr "Thomas Lord"
 
-#: src/sdiff.c:174
+#: src/sdiff.c:173
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
 msgstr ""
 "-o, --output=FICHIER         Agir interactivement, avec sortie sur FICHIER"
 
-#: src/sdiff.c:176
+#: src/sdiff.c:175
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
 msgstr "-i, --ignore-case            Banaliser majuscules et minuscules"
 
-#: src/sdiff.c:177
+#: src/sdiff.c:176
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
 msgstr ""
 "-E, --ignore-tab-expansion   Ignorer les changements liés à l'expansion des "
 "tabulations"
 
-#: src/sdiff.c:178
+#: src/sdiff.c:177
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
 msgstr ""
 "-Z, --ignore-trailing-space       Ignorer les blancs d'espacement à la fin "
 "de la ligne"
 
-#: src/sdiff.c:179
+#: src/sdiff.c:178
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
 msgstr "-b, --ignore-space-change    Ignorer les changements dans l'espacement"
 
-#: src/sdiff.c:180
+#: src/sdiff.c:179
 msgid "-W, --ignore-all-space       ignore all white space"
 msgstr "-W, --ignore-all-space       Ignorer tout blanc d'espacement"
 
-#: src/sdiff.c:181
+#: src/sdiff.c:180
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
 msgstr ""
 "-B, --ignore-blank-lines     Ignorer les changements dont toutes les lignes "
 "sont blanches"
 
-#: src/sdiff.c:182
+#: src/sdiff.c:181
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=RE Ignorer les différences dont toutes les\n"
 "                       lignes concordent avec l'expression régulière RE"
 
-#: src/sdiff.c:183
+#: src/sdiff.c:182
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr      Éliminer les retours de chariot de l'entrée"
 
-#: src/sdiff.c:184
+#: src/sdiff.c:183
 msgid "-a, --text                   treat all files as text"
 msgstr ""
 "-a, --text                   Traiter tous les fichiers comme des textes"
 
-#: src/sdiff.c:186
+#: src/sdiff.c:185
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
 msgstr ""
 "-w, --width=N                Limiter la sortie à au plus N colonnes "
 "imprimées (130 par défaut)"
 
-#: src/sdiff.c:187
+#: src/sdiff.c:186
 msgid ""
 "-l, --left-column            output only the left column of common lines"
 msgstr ""
 "-l, --left-column            Afficher uniquement la colonne de gauche des "
 "lignes identiques"
 
-#: src/sdiff.c:188
+#: src/sdiff.c:187
 msgid "-s, --suppress-common-lines  do not output common lines"
 msgstr "-s, --suppress-common-lines  Ne pas afficher les lignes identiques"
 
-#: src/sdiff.c:190
+#: src/sdiff.c:189
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
 msgstr ""
 "-t, --expand-tabs            Étaler les tabulateurs en espaces dans la sortie"
 
-#: src/sdiff.c:191
+#: src/sdiff.c:190
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=N              Les balises de tabulation sont à chaque N (8 "
 "par défaut) colonnes"
 
-#: src/sdiff.c:193
+#: src/sdiff.c:192
 msgid "-d, --minimal                try hard to find a smaller set of changes"
 msgstr ""
 "-d, --minimal                Rechercher assidûment le plus petit ensemble de "
 "différences"
 
-#: src/sdiff.c:194
+#: src/sdiff.c:193
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
 msgstr ""
 "-H, --speed-large-files      Suppose de grands fichiers et de nombreux "
 "petits changements éparpillés"
 
-#: src/sdiff.c:195
+#: src/sdiff.c:194
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
 msgstr ""
 "    --diff-program=PROG      Utiliser le PROGramme pour comparer les fichiers"
 
-#: src/sdiff.c:197
+#: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
 msgstr "    --help                   Afficher cette aide et terminer"
 
-#: src/sdiff.c:198
+#: src/sdiff.c:197
 msgid "-v, --version                output version information and exit"
 msgstr ""
 "-v, --version                Afficher le nom et la version du logiciel et "
 "terminer"
 
-#: src/sdiff.c:207
+#: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
 msgstr "Usage: %s [OPTION]... FICHIER1 FICHIER2\n"
 
-#: src/sdiff.c:209
+#: src/sdiff.c:208
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
 msgstr "Fusion côte à côte des différences des fichiers."
 
-#: src/sdiff.c:330
+#: src/sdiff.c:328
 msgid "cannot interactively merge standard input"
 msgstr "ne peut fusionner l'entrée standard interactivement"
 
-#: src/sdiff.c:597
+#: src/sdiff.c:594
 msgid "both files to be compared are directories"
 msgstr "les deux fichiers à comparer sont des répertoires"
 
-#: src/sdiff.c:820
+#: src/sdiff.c:817
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
 "eb:\tEdit then use both versions.\n"
@@ -1545,12 +1546,12 @@ msgstr ""
 "v:\tInclure les lignes identiques et le signaler.\n"
 "q:\tQuitter.\n"
 
-#: src/util.c:662
+#: src/util.c:755
 #, c-format
 msgid "unrecognized prefix: %s"
 msgstr "préfixe non reconnu: %s"
 
-#: src/util.c:692
+#: src/util.c:785
 #, c-format
 msgid "unparsable value for --palette"
 msgstr "valeur impossible à analyser pour --palette"
index 4ca4558..96b893c 100644 (file)
--- a/po/ga.po
+++ b/po/ga.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: diffutils 2.8.7\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2021-08-01 18:56-0700\n"
+"POT-Creation-Date: 2023-05-21 01:51-0700\n"
 "PO-Revision-Date: 2004-12-03 13:47-0500\n"
 "Last-Translator: Kevin Patrick Scannell <scannell@SLU.EDU>\n"
 "Language-Team: Irish <ga@li.org>\n"
@@ -17,29 +17,29 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 
-#: lib/argmatch.c:132
+#: lib/argmatch.c:145
 #, c-format
 msgid "invalid argument %s for %s"
 msgstr ""
 
-#: lib/argmatch.c:133
+#: lib/argmatch.c:146
 #, c-format
 msgid "ambiguous argument %s for %s"
 msgstr ""
 
-#: lib/argmatch.c:152 lib/argmatch.h:223
+#: lib/argmatch.c:165 lib/argmatch.h:242
 msgid "Valid arguments are:"
 msgstr ""
 
-#: lib/c-stack.c:187
+#: lib/c-stack.c:186
 msgid "program error"
 msgstr "earráid chláir"
 
-#: lib/c-stack.c:188
+#: lib/c-stack.c:187
 msgid "stack overflow"
 msgstr "cruach thar maoil"
 
-#: lib/error.c:195
+#: lib/error.c:193
 msgid "Unknown system error"
 msgstr "Earráid chórais anaithnid"
 
@@ -201,88 +201,88 @@ msgstr "%s: n
 #. If you don't know what to put here, please see
 #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:355
+#: lib/quotearg.c:354
 msgid "`"
 msgstr ""
 
-#: lib/quotearg.c:356
+#: lib/quotearg.c:355
 msgid "'"
 msgstr ""
 
-#: lib/regcomp.c:135
+#: lib/regcomp.c:122
 msgid "Success"
 msgstr "Bua!"
 
 # #-#-#-#-#  findutils-4.2.6.ga.po (findutils 4.2.6)  #-#-#-#-#
 # ugh.  Not clear what kind of things we're matching -- KPS
-#: lib/regcomp.c:138
+#: lib/regcomp.c:125
 msgid "No match"
 msgstr "Níl a leithéid ann"
 
-#: lib/regcomp.c:141
+#: lib/regcomp.c:128
 msgid "Invalid regular expression"
 msgstr "Slonn ionadaíochta neamhbhailí"
 
-#: lib/regcomp.c:144
+#: lib/regcomp.c:131
 msgid "Invalid collation character"
 msgstr "Carachtar cóimheasa neamhbhailí"
 
-#: lib/regcomp.c:147
+#: lib/regcomp.c:134
 msgid "Invalid character class name"
 msgstr "Aicme charachtair neamhbhailí"
 
-#: lib/regcomp.c:150
+#: lib/regcomp.c:137
 msgid "Trailing backslash"
 msgstr "Cúlslais ag deireadh"
 
 # #-#-#-#-#  sed-4.1.1.ga.po (sed 4.1.1)  #-#-#-#-#
 # coinage - KPS
-#: lib/regcomp.c:153
+#: lib/regcomp.c:140
 msgid "Invalid back reference"
 msgstr "Cúltagairt neamhbhailí"
 
-#: lib/regcomp.c:156
+#: lib/regcomp.c:143
 #, fuzzy
 msgid "Unmatched [, [^, [:, [., or [="
 msgstr "[ nó [^ corr"
 
-#: lib/regcomp.c:159
+#: lib/regcomp.c:146
 msgid "Unmatched ( or \\("
 msgstr "( nó \\( corr"
 
-#: lib/regcomp.c:162
+#: lib/regcomp.c:149
 msgid "Unmatched \\{"
 msgstr "\\{ corr"
 
-#: lib/regcomp.c:165
+#: lib/regcomp.c:152
 msgid "Invalid content of \\{\\}"
 msgstr "Ábhar neamhbhailí idir \\{\\}"
 
-#: lib/regcomp.c:168
+#: lib/regcomp.c:155
 msgid "Invalid range end"
 msgstr "Deireadh raoin neamhbhailí"
 
-#: lib/regcomp.c:171
+#: lib/regcomp.c:158
 msgid "Memory exhausted"
 msgstr "Cuimhne ídithe"
 
-#: lib/regcomp.c:174
+#: lib/regcomp.c:161
 msgid "Invalid preceding regular expression"
 msgstr "Is neamhbhailí an slonn ionadaíochta roimhe seo"
 
-#: lib/regcomp.c:177
+#: lib/regcomp.c:164
 msgid "Premature end of regular expression"
 msgstr "Deireadh le slonn ionadaíochta gan choinne"
 
-#: lib/regcomp.c:180
+#: lib/regcomp.c:167
 msgid "Regular expression too big"
 msgstr "Slonn ionadaíochta rómhór"
 
-#: lib/regcomp.c:183
+#: lib/regcomp.c:170
 msgid "Unmatched ) or \\)"
 msgstr ") nó \\) corr"
 
-#: lib/regcomp.c:676
+#: lib/regcomp.c:650
 msgid "No previous regular expression"
 msgstr "Níl aon slonn ionadaíochta roimhe seo"
 
@@ -475,17 +475,17 @@ msgstr ""
 msgid "General help using GNU software: <%s>\n"
 msgstr ""
 
-#: src/analyze.c:454 src/diff.c:1406
+#: src/analyze.c:455 src/diff.c:1478
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Tá difríocht idir na comhaid %s agus %s\n"
 
-#: src/analyze.c:455
+#: src/analyze.c:456
 #, fuzzy, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "Tá difríocht idir na comhaid %s agus %s\n"
 
-#: src/analyze.c:706 src/diff3.c:1470 src/util.c:1254
+#: src/analyze.c:707 src/diff3.c:1457 src/util.c:1354
 msgid "No newline at end of file"
 msgstr "Gan líne nua ag an chomhadchríoch"
 
@@ -499,84 +499,85 @@ msgstr "Torbjorn Granlund"
 msgid "David MacKenzie"
 msgstr ""
 
-#: src/cmp.c:120 src/diff.c:879 src/diff3.c:467 src/sdiff.c:160
+#: src/cmp.c:124 src/diff.c:939 src/diff3.c:465 src/sdiff.c:159
 #, fuzzy, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Bain triail as `%s --help' chun tuilleadh eolais a fháil."
 
-#: src/cmp.c:138
+#: src/cmp.c:142
 #, fuzzy, c-format
 msgid "invalid --ignore-initial value '%s'"
 msgstr "luach neamhbhailí --ignore-initial `%s'"
 
-#: src/cmp.c:148
+#: src/cmp.c:152
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr "Níl na roghanna -l agus -s comhoiriúnach"
 
-#: src/cmp.c:156 src/diff.c:887 src/diff3.c:474 src/sdiff.c:168 src/sdiff.c:316
-#: src/sdiff.c:323 src/sdiff.c:876 src/util.c:852 src/util.c:952 src/util.c:959
+#: src/cmp.c:160 src/diff.c:947 src/diff3.c:472 src/sdiff.c:167 src/sdiff.c:314
+#: src/sdiff.c:321 src/sdiff.c:873 src/util.c:952 src/util.c:1052
+#: src/util.c:1059
 msgid "write failed"
 msgstr "teipeadh ag scríobh"
 
-#: src/cmp.c:158 src/diff.c:889 src/diff.c:1471 src/diff3.c:476 src/sdiff.c:170
+#: src/cmp.c:162 src/diff.c:949 src/diff.c:1543 src/diff3.c:474 src/sdiff.c:169
 msgid "standard output"
 msgstr "aschur caighdeánach"
 
-#: src/cmp.c:162
+#: src/cmp.c:166
 #, fuzzy
 msgid "-b, --print-bytes          print differing bytes"
 msgstr "-b  --print-bytes  Taispeáin na bearta atá difriúla."
 
-#: src/cmp.c:163
+#: src/cmp.c:167
 #, fuzzy
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
 msgstr ""
 "-i UIMHIR  --ignore-initial=UIMHIR Gabh thar an chéad UIMHIR beart "
 "ionchurtha."
 
-#: src/cmp.c:164
+#: src/cmp.c:168
 #, fuzzy
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
 msgstr "  Gabh thar an chéad SCIP1 beart as COMHAD1 agus SCIP2 as COMHAD2."
 
-#: src/cmp.c:166
+#: src/cmp.c:170
 #, fuzzy
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
 msgstr ""
 "-l  --verbose  Taispeáin uimhreacha agus luachanna do bhearta uile difriúla."
 
-#: src/cmp.c:167
+#: src/cmp.c:171
 #, fuzzy
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
 msgstr "-n TEOR  --bytes=TEOR  Cuir TEOR beart i gcomparáid, ar a mhéad."
 
-#: src/cmp.c:168
+#: src/cmp.c:172
 msgid "-s, --quiet, --silent      suppress all normal output"
 msgstr ""
 
-#: src/cmp.c:169
+#: src/cmp.c:173
 msgid "    --help                 display this help and exit"
 msgstr ""
 
-#: src/cmp.c:170
+#: src/cmp.c:174
 #, fuzzy
 msgid "-v, --version              output version information and exit"
 msgstr "-v  --version  Taispeáin eolas faoin leagan."
 
-#: src/cmp.c:179
+#: src/cmp.c:183
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
 msgstr "Úsáid: %s [ROGHA]... COMHAD1 [COMHAD2 [SCIPEÁIL1 [SCIPEÁIL2]]]\n"
 
-#: src/cmp.c:181
+#: src/cmp.c:185
 msgid "Compare two files byte by byte."
 msgstr "Cuir dhá chomhad i gcomparáid, beart le beart."
 
-#: src/cmp.c:183
+#: src/cmp.c:187
 #, fuzzy
 msgid ""
 "The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
@@ -584,12 +585,12 @@ msgid ""
 msgstr ""
 "Is éard atá i SCIP1 agus SCIP2 ná líonta na mbeart a scipeáil i ngach comhad."
 
-#: src/cmp.c:186 src/diff.c:999 src/diff3.c:514 src/sdiff.c:211
+#: src/cmp.c:190 src/diff.c:1059 src/diff3.c:512 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
 
-#: src/cmp.c:192
+#: src/cmp.c:196
 msgid ""
 "SKIP values may be followed by the following multiplicative suffixes:\n"
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
@@ -599,268 +600,268 @@ msgstr ""
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
 "GB 1,000,000,000, G 1,073,741,824, srl. do T, P, E, Z, Y."
 
-#: src/cmp.c:195
+#: src/cmp.c:199
 #, fuzzy
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "Mura bhfuil COMHAD ann, nó más `-' é, léigh ón ionchur caighdeánach."
 
-#: src/cmp.c:196 src/diff.c:987 src/sdiff.c:221
+#: src/cmp.c:200 src/diff.c:1047 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr "Stádas scortha: 0 más ionann iad, 1 más difriúil, 2 má tá fadhb ann."
 
-#: src/cmp.c:243
+#: src/cmp.c:247
 #, fuzzy, c-format
 msgid "invalid --bytes value '%s'"
 msgstr "luach neamhbhailí --bytes `%s'"
 
-#: src/cmp.c:269 src/diff.c:797 src/diff3.c:361 src/sdiff.c:567
+#: src/cmp.c:273 src/diff.c:857 src/diff3.c:368 src/sdiff.c:564
 #, fuzzy, c-format
 msgid "missing operand after '%s'"
 msgstr "ní foláir argóint i ndiaidh `%s'"
 
-#: src/cmp.c:281 src/diff.c:799 src/diff3.c:363 src/sdiff.c:569
+#: src/cmp.c:285 src/diff.c:859 src/diff3.c:370 src/sdiff.c:566
 #, fuzzy, c-format
 msgid "extra operand '%s'"
 msgstr "oibreann breise `%s'"
 
-#: src/cmp.c:507
+#: src/cmp.c:521
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s difriúil: beart %s, líne %s\n"
 
-#: src/cmp.c:523
+#: src/cmp.c:537
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
 msgstr "%s %s difriúil: beart %s, líne %s = %3o %s %3o %s\n"
 
-#: src/cmp.c:580
+#: src/cmp.c:594
 #, fuzzy, c-format
 msgid "cmp: EOF on %s which is empty\n"
 msgstr "cmp: EOF ar %s\n"
 
-#: src/cmp.c:594
+#: src/cmp.c:608
 #, fuzzy, c-format
 msgid "cmp: EOF on %s after byte %s, line %s\n"
 msgstr "%s %s difriúil: beart %s, líne %s\n"
 
-#: src/cmp.c:595
+#: src/cmp.c:609
 #, fuzzy, c-format
 msgid "cmp: EOF on %s after byte %s, in line %s\n"
 msgstr "%s %s difriúil: beart %s, líne %s\n"
 
-#: src/cmp.c:601
+#: src/cmp.c:615
 #, fuzzy, c-format
 msgid "cmp: EOF on %s after byte %s\n"
 msgstr "cmp: EOF ar %s\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:51
+#: src/diff.c:50
 msgid "Paul Eggert"
 msgstr ""
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:52
+#: src/diff.c:51
 msgid "Mike Haertel"
 msgstr ""
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:53
+#: src/diff.c:52
 msgid "David Hayes"
 msgstr ""
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:54
+#: src/diff.c:53
 msgid "Richard Stallman"
 msgstr ""
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:55
+#: src/diff.c:54
 msgid "Len Tower"
 msgstr ""
 
-#: src/diff.c:355
+#: src/diff.c:365
 #, fuzzy, c-format
 msgid "invalid context length '%s'"
 msgstr "Fad neamhbhailí comhthéacs `%s'"
 
-#: src/diff.c:438
+#: src/diff.c:487
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "Ní thacaítear leis an uimhriú leathanach ar an óstríomhaire seo"
 
-#: src/diff.c:453 src/diff3.c:341
+#: src/diff.c:502 src/diff3.c:348
 #, c-format
 msgid "too many file label options"
 msgstr "an iomarca argóintí do lipéid chomhaid"
 
-#: src/diff.c:530
+#: src/diff.c:579
 #, fuzzy, c-format
 msgid "invalid width '%s'"
 msgstr "leithead neamhbhailí `%s'"
 
-#: src/diff.c:534
+#: src/diff.c:583
 msgid "conflicting width options"
 msgstr "roghanna leithid contrártha"
 
-#: src/diff.c:559
+#: src/diff.c:608
 #, fuzzy, c-format
 msgid "invalid horizon length '%s'"
 msgstr "fad léaslíne neamhbhailí `%s'"
 
-#: src/diff.c:615
+#: src/diff.c:664
 #, fuzzy, c-format
 msgid "invalid tabsize '%s'"
 msgstr "tá an mhéid tháib `%s' neamhbhailí"
 
-#: src/diff.c:619
+#: src/diff.c:668
 msgid "conflicting tabsize options"
 msgstr "Roghanna tábmhéid contrártha"
 
-#: src/diff.c:774
+#: src/diff.c:834
 msgid "--from-file and --to-file both specified"
 msgstr "tugadh --from-file agus --to-file lena chéile"
 
-#: src/diff.c:893
+#: src/diff.c:953
 #, fuzzy
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "--normal  Aschuir diff coitianta."
 
-#: src/diff.c:894
+#: src/diff.c:954
 #, fuzzy
 msgid "-q, --brief                   report only when files differ"
 msgstr "-q  --brief  Ná taispeáin ach difriúil nó nach ea."
 
-#: src/diff.c:895
+#: src/diff.c:955
 #, fuzzy
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr ""
 "-s  --report-identical-files  Tuairiscigh nuair atá dhá chomhad comhionanna."
 
-#: src/diff.c:896
+#: src/diff.c:956
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
 
-#: src/diff.c:897
+#: src/diff.c:957
 #, fuzzy
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
 "-w UIMH --width=UIMH  UIMH colún priontála ar a mhéad (réamhshocrú=130)."
 
-#: src/diff.c:898
+#: src/diff.c:958
 #, fuzzy
 msgid "-e, --ed                      output an ed script"
 msgstr "-e  --ed  Aschuir script `ed'."
 
-#: src/diff.c:899
+#: src/diff.c:959
 #, fuzzy
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n  --rcs  Aschuir diff i gcruth RCS."
 
-#: src/diff.c:900
+#: src/diff.c:960
 msgid "-y, --side-by-side            output in two columns"
 msgstr ""
 
-#: src/diff.c:901
+#: src/diff.c:961
 #, fuzzy
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
 "-w UIMH --width=UIMH  UIMH colún priontála ar a mhéad (réamhshocrú=130)."
 
-#: src/diff.c:902
+#: src/diff.c:962
 #, fuzzy
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr "-l  --left-column  Ná taispeáin an colún ar dheis más ionann iad."
 
-#: src/diff.c:903
+#: src/diff.c:963
 #, fuzzy
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "-s  --suppress-common-lines  Ná taispeáin línte atá i bpáirt acu."
 
-#: src/diff.c:905
+#: src/diff.c:965
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr ""
 
-#: src/diff.c:906
+#: src/diff.c:966
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr ""
 
-#: src/diff.c:907
+#: src/diff.c:967
 msgid ""
 "    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
 msgstr ""
 
-#: src/diff.c:910
+#: src/diff.c:970
 #, fuzzy
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr "-t  --expand-tabs  leathnaigh táib go spásanna san aschur."
 
-#: src/diff.c:911
+#: src/diff.c:971
 #, fuzzy
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr ""
 "-T  --initial-tab  Ailínigh táib trí tháb a chur in ionad spás tosaigh."
 
-#: src/diff.c:912
+#: src/diff.c:972
 #, fuzzy
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr "--tabsize=UIMH Tábstop gach UIMH colún (réamhshocrú=8)."
 
-#: src/diff.c:913
+#: src/diff.c:973
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
 
-#: src/diff.c:914
+#: src/diff.c:974
 #, fuzzy
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr "-l  --paginate  uimhrigh leathanaigh le `pr'."
 
-#: src/diff.c:916
+#: src/diff.c:976
 #, fuzzy
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr "-r  --recursive  Cuir fochomhadlanna i gcomparáid go hathchúrsach."
 
-#: src/diff.c:917
+#: src/diff.c:977
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr ""
 
-#: src/diff.c:918
+#: src/diff.c:978
 #, fuzzy
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr "-N  --new-file  Caith le comhad ar iarraidh mar chomhad folamh."
 
-#: src/diff.c:919
+#: src/diff.c:979
 #, fuzzy
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
 "--unidirectional-new-file  Más ar iarraidh, caith leis an chéad chomhad\n"
 "                                     mar chomhad folamh."
 
-#: src/diff.c:920
+#: src/diff.c:980
 #, fuzzy
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr "--ignore-file-name-case  Ná bí cásíogair le hainmneacha comhaid."
 
-#: src/diff.c:921
+#: src/diff.c:981
 #, fuzzy
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
 "--no-ignore-file-name-case  Bí cásíogair maidir le hainmneacha comhaid."
 
-#: src/diff.c:922
+#: src/diff.c:982
 #, fuzzy
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr ""
 "-X SLONN --exclude=SLONN Fág comhaid as má tá siad comhoiriúnacha le SLONN."
 
-#: src/diff.c:923
+#: src/diff.c:983
 #, fuzzy
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
@@ -869,7 +870,7 @@ msgstr ""
 "haon\n"
 "                                    slonn ionadaíochta as an CHOMHAD."
 
-#: src/diff.c:924
+#: src/diff.c:984
 #, fuzzy
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
@@ -877,7 +878,7 @@ msgstr ""
 "-S COMHAD --starting-file=COMHAD Tosaigh le COMHAD agus comhadlanna á "
 "gcóimheas."
 
-#: src/diff.c:925
+#: src/diff.c:985
 #, fuzzy
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
@@ -885,7 +886,7 @@ msgid ""
 msgstr ""
 "--from-file=COMHAD Cuir COMHAD (nó comhadlann) i gcomparáid le gach oibreann."
 
-#: src/diff.c:927
+#: src/diff.c:987
 #, fuzzy
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
@@ -893,41 +894,41 @@ msgid ""
 msgstr ""
 "--to-file=COMHAD Cuir gach oibreann i gcomparáid le COMHAD (nó comhadlann)."
 
-#: src/diff.c:930
+#: src/diff.c:990
 #, fuzzy
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr "-i  --ignore-case  Ná bí cásíogair le hinneachar na gcomhad."
 
-#: src/diff.c:931
+#: src/diff.c:991
 #, fuzzy
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr ""
 "-E  --ignore-tab-expansion  Déan neamhshuim ar athruithe ó leathnú na dtáib."
 
-#: src/diff.c:932
+#: src/diff.c:992
 #, fuzzy
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr "-w  --ignore-all-space  Déan neamhshuim ar spás bán go hiomlán."
 
-#: src/diff.c:933
+#: src/diff.c:993
 #, fuzzy
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr "-b  --ignore-space-change  Déan neamhshuim ar mhéid an spáis bán."
 
-#: src/diff.c:934
+#: src/diff.c:994
 #, fuzzy
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w  --ignore-all-space  Déan neamhshuim ar spás bán go hiomlán."
 
-#: src/diff.c:935
+#: src/diff.c:995
 #, fuzzy
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr "-B  --ignore-blank-lines  Déan neamhshuim ar línte folmha."
 
-#: src/diff.c:936
+#: src/diff.c:996
 #, fuzzy
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
@@ -935,23 +936,23 @@ msgstr ""
 "comhoiriúnach\n"
 "                                     leis an slonn SI."
 
-#: src/diff.c:938
+#: src/diff.c:998
 #, fuzzy
 msgid "-a, --text                      treat all files as text"
 msgstr "-a  --text  Caith le gach comhad mar théacschomhad."
 
-#: src/diff.c:939
+#: src/diff.c:999
 #, fuzzy
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr ""
 "--strip-trailing-cr  Dealaigh aisfhilleadh carráiste ó gach líne ionchurtha."
 
-#: src/diff.c:941
+#: src/diff.c:1001
 #, fuzzy
 msgid "    --binary                    read and write data in binary mode"
 msgstr "--binary  Léigh agus scríobh sonraí sa mhód dénártha."
 
-#: src/diff.c:944
+#: src/diff.c:1004
 #, fuzzy
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
@@ -959,35 +960,35 @@ msgstr ""
 "-D AINM  --ifdef=AINM  Taispeáin comhad cumaiscthe chun na diff-aí\n"
 "                                `#ifdef AINM' a léiriú"
 
-#: src/diff.c:945
+#: src/diff.c:1005
 #, fuzzy
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr ""
 "--GCINL-group-format=GFMD  Taispeáin grúpaí GCINL ionchuir de réir GFMD."
 
-#: src/diff.c:946
+#: src/diff.c:1006
 #, fuzzy
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr "--line-format=LFMD  Taispeáin gach líne ionchuir de réir LFMD."
 
-#: src/diff.c:947
+#: src/diff.c:1007
 #, fuzzy
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr ""
 "--LCINL-line-format=LFMD   Taispeáin línte LCINL ionchuir de réir LFMD."
 
-#: src/diff.c:948
+#: src/diff.c:1008
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
 msgstr ""
 
-#: src/diff.c:950
+#: src/diff.c:1010
 #, fuzzy
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr "  LCINL = `old', `new', nó `unchanged'.  GCINL = LCINL nó `changed'."
 
-#: src/diff.c:951
+#: src/diff.c:1011
 #, fuzzy
 msgid ""
 "  GFMT (only) may contain:\n"
@@ -1015,7 +1016,7 @@ msgstr ""
 "        E  F-1\n"
 "        M  L+1"
 
-#: src/diff.c:963
+#: src/diff.c:1023
 #, fuzzy
 msgid ""
 "  LFMT (only) may contain:\n"
@@ -1028,7 +1029,7 @@ msgstr ""
 "    %l  ábhar na líne, gan aon líne nua\n"
 "    %[-][LEITHEAD][.[SONRÚ]]{doxX}n  sonrú do líne-uimhir mar C `printf'"
 
-#: src/diff.c:967
+#: src/diff.c:1027
 #, fuzzy
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
@@ -1042,151 +1043,151 @@ msgstr ""
 "    %c'C'  an carachtar litriúil C\n"
 "    %c'\\OOO'  an carachtar le cód ochtnártha OOO"
 
-#: src/diff.c:973
+#: src/diff.c:1033
 #, fuzzy
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr "-d  --minimal  Obair go crua le haghaidh níos lú athruithe."
 
-#: src/diff.c:974
+#: src/diff.c:1034
 #, fuzzy
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr "--horizon-lines=UIMH  Coinnigh UIMH líne den réimír/iarmhír choiteann."
 
-#: src/diff.c:975
+#: src/diff.c:1035
 #, fuzzy
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
 "-H  --speed-large-files  Comhaid móra agus go leor mionathruithe forleata."
 
-#: src/diff.c:976
+#: src/diff.c:1036
 msgid ""
 "    --color[=WHEN]       color output; WHEN is 'never', 'always', or "
 "'auto';\n"
 "                           plain --color means --color='auto'"
 msgstr ""
 
-#: src/diff.c:978
+#: src/diff.c:1038
 msgid ""
 "    --palette=PALETTE    the colors to use when --color is active; PALETTE "
 "is\n"
 "                           a colon-separated list of terminfo capabilities"
 msgstr ""
 
-#: src/diff.c:981
+#: src/diff.c:1041
 msgid "    --help               display this help and exit"
 msgstr ""
 
-#: src/diff.c:982
+#: src/diff.c:1042
 #, fuzzy
 msgid "-v, --version            output version information and exit"
 msgstr "-v  --version  Taispeáin eolas faoin leagan."
 
-#: src/diff.c:984
+#: src/diff.c:1044
 #, fuzzy
 msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
 "COMHAID = `COMHAD1 COMHAD2' nó `COMHADLANN1 COMHADLANN2' nó `COMHADLANN "
 "COMHAD...' nó `COMHAD... COMHADLANN'."
 
-#: src/diff.c:985
+#: src/diff.c:1045
 #, fuzzy
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr ""
 "Má tá --from-file nó --to-file tugtha, níl a leithéid de shrian ar COMHAID."
 
-#: src/diff.c:986 src/diff3.c:533 src/sdiff.c:220
+#: src/diff.c:1046 src/diff3.c:531 src/sdiff.c:219
 #, fuzzy
 msgid "If a FILE is '-', read standard input."
 msgstr "Más '-' é an COMHAD, léigh ón ionchur caighdeánach."
 
-#: src/diff.c:996
+#: src/diff.c:1056
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Úsáid: %s [ROGHA]... COMHAID\n"
 
-#: src/diff.c:997
+#: src/diff.c:1057
 #, fuzzy
 msgid "Compare FILES line by line."
 msgstr "Déan comparáid idir na comhaid, líne ar líne."
 
-#: src/diff.c:1034
+#: src/diff.c:1094
 #, fuzzy, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "luach contrártha don rogha %s: `%s'"
 
-#: src/diff.c:1047
+#: src/diff.c:1107
 #, c-format
 msgid "conflicting output style options"
 msgstr "roghanna contrártha le haghaidh na stíle aschuir"
 
-#: src/diff.c:1063
+#: src/diff.c:1123
 #, fuzzy, c-format
 msgid "invalid color '%s'"
 msgstr "Fad neamhbhailí comhthéacs `%s'"
 
-#: src/diff.c:1119 src/diff.c:1329
+#: src/diff.c:1197 src/diff.c:1401
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "I %s amháin: %s\n"
 
-#: src/diff.c:1253
+#: src/diff.c:1325
 #, fuzzy
 msgid "cannot compare '-' to a directory"
 msgstr "ní féidir `-' a chur i gcomparáid le comhadlann"
 
-#: src/diff.c:1288
+#: src/diff.c:1360
 msgid "-D option not supported with directories"
 msgstr "Níl an rogha -D ar fáil do chomhadlanna"
 
-#: src/diff.c:1297
+#: src/diff.c:1369
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Fochomhadlanna i gcoitianta: %s agus %s\n"
 
-#: src/diff.c:1339 src/diff.c:1389
+#: src/diff.c:1411 src/diff.c:1461
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr "Tá comhad %s ina %s ach tá comhad %s ina %s\n"
 
-#: src/diff.c:1375
+#: src/diff.c:1447
 #, fuzzy, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "Tá difríocht idir na comhaid %s agus %s\n"
 
-#: src/diff.c:1462
+#: src/diff.c:1534
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Is comhionann iad na comhaid %s agus %s\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff3.c:43
+#: src/diff3.c:51
 msgid "Randy Smith"
 msgstr ""
 
-#: src/diff3.c:356
+#: src/diff3.c:363
 #, c-format
 msgid "incompatible options"
 msgstr "roghanna neamh-chomhoiriúnacha"
 
-#: src/diff3.c:396
+#: src/diff3.c:403
 #, fuzzy
 msgid "'-' specified for more than one input file"
 msgstr "bhí `-' tugtha le haghaidh níos mó ná inchomhad amháin"
 
-#: src/diff3.c:447 src/diff3.c:1295 src/diff3.c:1698 src/diff3.c:1753
-#: src/sdiff.c:308 src/sdiff.c:846 src/sdiff.c:857
+#: src/diff3.c:445 src/diff3.c:1284 src/diff3.c:1683 src/diff3.c:1738
+#: src/sdiff.c:306 src/sdiff.c:843 src/sdiff.c:854
 msgid "read failed"
 msgstr "theip ar léamh"
 
-#: src/diff3.c:480
+#: src/diff3.c:478
 #, fuzzy
 msgid "-A, --show-all              output all changes, bracketing conflicts"
 msgstr ""
 "-A  --show-all  Taispeáin gach athrú agus cuir coinbhleachtaí idir lúibíní."
 
-#: src/diff3.c:482
+#: src/diff3.c:480
 #, fuzzy
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
@@ -1195,90 +1196,90 @@ msgstr ""
 "-e  --ed  Scríobh i MOCHOMHAD na hathruithe neamhchumaiscthe ó SEANCHOMHAD "
 "go DOCHOMHAD."
 
-#: src/diff3.c:484
+#: src/diff3.c:482
 #, fuzzy
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
 msgstr ""
 "-E  --show-overlap  Taispeáin na hathruithe neamhchumaiscthe agus cuir "
 "coinbhleachtaí idir lúibíní."
 
-#: src/diff3.c:485
+#: src/diff3.c:483
 #, fuzzy
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
 msgstr "-3  --easy-only  Taispeáin athruithe neamhchumaiscthe forluiteacha."
 
-#: src/diff3.c:486
+#: src/diff3.c:484
 #, fuzzy
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
 msgstr "-x  --overlap-only  Taispeáin na hathruithe forluiteacha."
 
-#: src/diff3.c:487
+#: src/diff3.c:485
 msgid "-X                          like -x, but bracket conflicts"
 msgstr ""
 
-#: src/diff3.c:488
+#: src/diff3.c:486
 #, fuzzy
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
 msgstr "-i  Cuir na horduithe `w' agus `q' le scripteanna `ed'."
 
-#: src/diff3.c:490
+#: src/diff3.c:488
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
 msgstr ""
 
-#: src/diff3.c:493
+#: src/diff3.c:491
 #, fuzzy
 msgid "-a, --text                  treat all files as text"
 msgstr "-a  --text  Caith le gach comhad mar théacschomhad."
 
-#: src/diff3.c:494
+#: src/diff3.c:492
 #, fuzzy
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
 msgstr ""
 "--strip-trailing-cr  Dealaigh aisfhilleadh carráiste ó gach líne ionchurtha."
 
-#: src/diff3.c:495
+#: src/diff3.c:493
 #, fuzzy
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
 msgstr ""
 "-T  --initial-tab  Ailínigh táib trí tháb a chur in ionad spás tosaigh."
 
-#: src/diff3.c:496
+#: src/diff3.c:494
 #, fuzzy
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
 msgstr ""
 "--diff-program=CLÁR     Bain úsáid as an CLÁR chun comhaid a chur i "
 "gcomparáid."
 
-#: src/diff3.c:497
+#: src/diff3.c:495
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
 msgstr ""
 
-#: src/diff3.c:500
+#: src/diff3.c:498
 msgid "    --help                  display this help and exit"
 msgstr ""
 
-#: src/diff3.c:501
+#: src/diff3.c:499
 #, fuzzy
 msgid "-v, --version               output version information and exit"
 msgstr "-v  --version  Taispeáin eolas faoin leagan."
 
-#: src/diff3.c:510
+#: src/diff3.c:508
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
 msgstr "Úsáid: %s [ROGHA]... MOCHOMHAD SEANCHOMHAD DOCHOMHAD\n"
 
-#: src/diff3.c:512
+#: src/diff3.c:510
 msgid "Compare three files line by line."
 msgstr "Cuir trí chomhad i gcomparáid, líne ar líne."
 
-#: src/diff3.c:522
+#: src/diff3.c:520
 msgid ""
 "\n"
 "The default output format is a somewhat human-readable representation of\n"
@@ -1292,56 +1293,56 @@ msgid ""
 "robust than using ed.\n"
 msgstr ""
 
-#: src/diff3.c:534
+#: src/diff3.c:532
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
 msgstr "Stádas scortha = 0 (rathúil), 1 (coinbhleachtaí), 2 (trioblóid)."
 
-#: src/diff3.c:727
+#: src/diff3.c:725
 msgid "internal error: screwup in format of diff blocks"
 msgstr "earráid inmheánach: formáid de na bloic diff trína chéile"
 
-#: src/diff3.c:1022
+#: src/diff3.c:1015
 #, c-format
 msgid "%s: diff failed: "
 msgstr "%s: theip ar diff: "
 
-#: src/diff3.c:1044
+#: src/diff3.c:1037
 msgid "internal error: invalid diff type in process_diff"
 msgstr "earráid inmheánach: cineál neamhbhailí diff san fheidhm process_diff"
 
-#: src/diff3.c:1069
+#: src/diff3.c:1060
 msgid "invalid diff format; invalid change separator"
 msgstr "formáid diff neamhbhailí; teorantóir neamhbhailí idir athruithe"
 
-#: src/diff3.c:1305
+#: src/diff3.c:1294
 msgid "invalid diff format; incomplete last line"
 msgstr "formáid neamhbhailí diff; líne deiridh neamhiomlán"
 
-#: src/diff3.c:1329 src/sdiff.c:276 src/util.c:969
+#: src/diff3.c:1318 src/sdiff.c:274 src/util.c:1069
 #, fuzzy, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "níorbh fhéidir an fochlár `%s' a rith"
 
-#: src/diff3.c:1354
+#: src/diff3.c:1343
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "formáid neamhbhailí diff; carachtair mhíchearta ag tosach na líne"
 
-#: src/diff3.c:1427
+#: src/diff3.c:1416
 msgid "internal error: invalid diff type passed to output"
 msgstr ""
 "earráid inmheánach: seachadadh cineál neamhbhailí diff go dtí an aschur"
 
-#: src/diff3.c:1700 src/diff3.c:1757
+#: src/diff3.c:1685 src/diff3.c:1742
 msgid "input file shrank"
 msgstr "crapadh an t-inchomhad"
 
-#: src/dir.c:156
+#: src/dir.c:154
 #, fuzzy, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr ""
 "ní féidir na hainmneacha comhaid `%s' agus `%s' a chur i gcomparáid le chéile"
 
-#: src/dir.c:225
+#: src/dir.c:223
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr ""
@@ -1351,7 +1352,7 @@ msgstr ""
 msgid "Thomas Lord"
 msgstr ""
 
-#: src/sdiff.c:174
+#: src/sdiff.c:173
 #, fuzzy
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
@@ -1359,40 +1360,40 @@ msgstr ""
 "-o COMHAD --output=COMHAD Mód idirghníomhach, ag scríobh an aschuir i "
 "gCOMHAD."
 
-#: src/sdiff.c:176
+#: src/sdiff.c:175
 #, fuzzy
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
 msgstr "-i  --ignore-case  Ná bí cásíogair."
 
-#: src/sdiff.c:177
+#: src/sdiff.c:176
 #, fuzzy
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
 msgstr ""
 "-E  --ignore-tab-expansion  Déan neamhshuim ar athruithe ó leathnú na dtáib."
 
-#: src/sdiff.c:178
+#: src/sdiff.c:177
 #, fuzzy
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
 msgstr "-w  --ignore-all-space  Déan neamhshuim ar spás bán go hiomlán."
 
-#: src/sdiff.c:179
+#: src/sdiff.c:178
 #, fuzzy
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
 msgstr "-b  --ignore-space-change  Déan neamhshuim ar mhéid an spáis bán."
 
-#: src/sdiff.c:180
+#: src/sdiff.c:179
 #, fuzzy
 msgid "-W, --ignore-all-space       ignore all white space"
 msgstr "-W  --ignore-all-space  Déan neamhshuim ar spásanna bán go hiomlán."
 
-#: src/sdiff.c:181
+#: src/sdiff.c:180
 #, fuzzy
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
 msgstr "-B  --ignore-blank-lines  Déan neamhshuim ar línte folmha."
 
-#: src/sdiff.c:182
+#: src/sdiff.c:181
 #, fuzzy
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
@@ -1400,93 +1401,93 @@ msgstr ""
 "comhoiriúnach\n"
 "                                     leis an slonn SI."
 
-#: src/sdiff.c:183
+#: src/sdiff.c:182
 #, fuzzy
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
 msgstr ""
 "--strip-trailing-cr  Dealaigh aisfhilleadh carráiste ó gach líne ionchurtha."
 
-#: src/sdiff.c:184
+#: src/sdiff.c:183
 #, fuzzy
 msgid "-a, --text                   treat all files as text"
 msgstr "-a  --text  Caith le gach comhad mar théacschomhad."
 
-#: src/sdiff.c:186
+#: src/sdiff.c:185
 #, fuzzy
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
 msgstr ""
 "-w UIMH --width=UIMH  UIMH colún priontála ar a mhéad (réamhshocrú=130)."
 
-#: src/sdiff.c:187
+#: src/sdiff.c:186
 #, fuzzy
 msgid ""
 "-l, --left-column            output only the left column of common lines"
 msgstr "-l  --left-column  Ná taispeáin an colún ar dheis más ionann iad."
 
-#: src/sdiff.c:188
+#: src/sdiff.c:187
 #, fuzzy
 msgid "-s, --suppress-common-lines  do not output common lines"
 msgstr "-s  --suppress-common-lines  Ná taispeáin línte atá i bpáirt acu."
 
-#: src/sdiff.c:190
+#: src/sdiff.c:189
 #, fuzzy
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
 msgstr "-t  --expand-tabs  leathnaigh táib go spásanna san aschur."
 
-#: src/sdiff.c:191
+#: src/sdiff.c:190
 #, fuzzy
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
 msgstr "--tabsize=UIMH Tábstop gach UIMH colún (réamhshocrú=8)."
 
-#: src/sdiff.c:193
+#: src/sdiff.c:192
 #, fuzzy
 msgid "-d, --minimal                try hard to find a smaller set of changes"
 msgstr "-d  --minimal  Obair go crua le haghaidh níos lú athruithe."
 
-#: src/sdiff.c:194
+#: src/sdiff.c:193
 #, fuzzy
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
 msgstr ""
 "-H  --speed-large-files  Comhaid móra agus go leor mionathruithe forleata."
 
-#: src/sdiff.c:195
+#: src/sdiff.c:194
 #, fuzzy
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
 msgstr ""
 "--diff-program=CLÁR     Bain úsáid as an CLÁR chun comhaid a chur i "
 "gcomparáid."
 
-#: src/sdiff.c:197
+#: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
 msgstr ""
 
-#: src/sdiff.c:198
+#: src/sdiff.c:197
 #, fuzzy
 msgid "-v, --version                output version information and exit"
 msgstr "-v  --version  Taispeáin eolas faoin leagan."
 
-#: src/sdiff.c:207
+#: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
 msgstr "Úsáid: %s [ROGHA]... COMHAD1 COMHAD2\n"
 
-#: src/sdiff.c:209
+#: src/sdiff.c:208
 #, fuzzy
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
 msgstr "Cumaisc difríochtaí idir na comhaid, taobh le taobh."
 
-#: src/sdiff.c:330
+#: src/sdiff.c:328
 msgid "cannot interactively merge standard input"
 msgstr "ní féidir an t-ionchur caighdeánach a chumasc go hidirghníomhach"
 
-#: src/sdiff.c:597
+#: src/sdiff.c:594
 msgid "both files to be compared are directories"
 msgstr "is comhadlanna iad na comhaid le cur i gcomparáid"
 
-#: src/sdiff.c:820
+#: src/sdiff.c:817
 #, fuzzy
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
@@ -1511,12 +1512,12 @@ msgstr ""
 "v:\tCuir comhlínte san áireamh go foclach.\n"
 "q:\tScoir.\n"
 
-#: src/util.c:662
+#: src/util.c:755
 #, fuzzy, c-format
 msgid "unrecognized prefix: %s"
 msgstr "%s: rogha anaithnid `--%s'\n"
 
-#: src/util.c:692
+#: src/util.c:785
 #, c-format
 msgid "unparsable value for --palette"
 msgstr ""
index 4f92a38..f66b44e 100644 (file)
--- a/po/gl.po
+++ b/po/gl.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNU diffutils 3.2\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2021-08-01 18:56-0700\n"
+"POT-Creation-Date: 2023-05-21 01:51-0700\n"
 "PO-Revision-Date: 2011-10-17 12:43+0100\n"
 "Last-Translator: Leandro Regueiro <leandro.regueiro@gmail.com>\n"
 "Language-Team: Galician <proxecto@trasno.net>\n"
@@ -19,30 +19,30 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 
-#: lib/argmatch.c:132
+#: lib/argmatch.c:145
 #, fuzzy, c-format
 msgid "invalid argument %s for %s"
 msgstr "o argumento «%s» de %s%s é incorrecto"
 
-#: lib/argmatch.c:133
+#: lib/argmatch.c:146
 #, c-format
 msgid "ambiguous argument %s for %s"
 msgstr ""
 
-#: lib/argmatch.c:152 lib/argmatch.h:223
+#: lib/argmatch.c:165 lib/argmatch.h:242
 #, fuzzy
 msgid "Valid arguments are:"
 msgstr "o argumento «%s» de %s%s é incorrecto"
 
-#: lib/c-stack.c:187
+#: lib/c-stack.c:186
 msgid "program error"
 msgstr "erro do programa"
 
-#: lib/c-stack.c:188
+#: lib/c-stack.c:187
 msgid "stack overflow"
 msgstr "desbordamento da pila"
 
-#: lib/error.c:195
+#: lib/error.c:193
 msgid "Unknown system error"
 msgstr "Produciuse un erro descoñecido do sistema"
 
@@ -202,84 +202,84 @@ msgstr "%s: a opción require un argumento -- «%c»\n"
 #. If you don't know what to put here, please see
 #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:355
+#: lib/quotearg.c:354
 msgid "`"
 msgstr "«"
 
-#: lib/quotearg.c:356
+#: lib/quotearg.c:355
 msgid "'"
 msgstr "»"
 
-#: lib/regcomp.c:135
+#: lib/regcomp.c:122
 msgid "Success"
 msgstr "Correcto"
 
-#: lib/regcomp.c:138
+#: lib/regcomp.c:125
 msgid "No match"
 msgstr "Non hai coincidencias"
 
-#: lib/regcomp.c:141
+#: lib/regcomp.c:128
 msgid "Invalid regular expression"
 msgstr "Expresión regular incorrecta"
 
-#: lib/regcomp.c:144
+#: lib/regcomp.c:131
 msgid "Invalid collation character"
 msgstr "Carácter de ordenamento incorrecto"
 
-#: lib/regcomp.c:147
+#: lib/regcomp.c:134
 msgid "Invalid character class name"
 msgstr "Nome da clase de caracteres incorrecto"
 
-#: lib/regcomp.c:150
+#: lib/regcomp.c:137
 msgid "Trailing backslash"
 msgstr "Barra invertida ao final"
 
-#: lib/regcomp.c:153
+#: lib/regcomp.c:140
 msgid "Invalid back reference"
 msgstr "Referencia cara a atrás incorrecta"
 
-#: lib/regcomp.c:156
+#: lib/regcomp.c:143
 #, fuzzy
 msgid "Unmatched [, [^, [:, [., or [="
 msgstr "[ ou [^ non emparellado"
 
-#: lib/regcomp.c:159
+#: lib/regcomp.c:146
 msgid "Unmatched ( or \\("
 msgstr "( ou \\( non emparellado"
 
-#: lib/regcomp.c:162
+#: lib/regcomp.c:149
 msgid "Unmatched \\{"
 msgstr "\\{ non emparellado"
 
-#: lib/regcomp.c:165
+#: lib/regcomp.c:152
 msgid "Invalid content of \\{\\}"
 msgstr "O contido entre \\{\\} non é correcto"
 
-#: lib/regcomp.c:168
+#: lib/regcomp.c:155
 msgid "Invalid range end"
 msgstr "Final do rango incorrecto"
 
-#: lib/regcomp.c:171
+#: lib/regcomp.c:158
 msgid "Memory exhausted"
 msgstr "Memoria esgotada"
 
-#: lib/regcomp.c:174
+#: lib/regcomp.c:161
 msgid "Invalid preceding regular expression"
 msgstr "Expresión regular precedente incorrecta"
 
-#: lib/regcomp.c:177
+#: lib/regcomp.c:164
 msgid "Premature end of regular expression"
 msgstr "Final prematura da expresión regular"
 
-#: lib/regcomp.c:180
+#: lib/regcomp.c:167
 msgid "Regular expression too big"
 msgstr "Expresión regular demasiado grande"
 
-#: lib/regcomp.c:183
+#: lib/regcomp.c:170
 msgid "Unmatched ) or \\)"
 msgstr ") ou \\) non emparellado"
 
-#: lib/regcomp.c:676
+#: lib/regcomp.c:650
 msgid "No previous regular expression"
 msgstr "Non hai unha expresión regular anterior"
 
@@ -479,17 +479,17 @@ msgstr "%s páxina web: <%s>\n"
 msgid "General help using GNU software: <%s>\n"
 msgstr "Axuda xeral ao usar software GNU: <http://www.gnu.org/gethelp/>\n"
 
-#: src/analyze.c:454 src/diff.c:1406
+#: src/analyze.c:455 src/diff.c:1478
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Os ficheiros %s e %s son diferentes\n"
 
-#: src/analyze.c:455
+#: src/analyze.c:456
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "Os ficheiros binarios %s e %s son diferentes\n"
 
-#: src/analyze.c:706 src/diff3.c:1470 src/util.c:1254
+#: src/analyze.c:707 src/diff3.c:1457 src/util.c:1354
 msgid "No newline at end of file"
 msgstr "Non hai un salto de liña na fin da liña"
 
@@ -503,42 +503,43 @@ msgstr "Torbjorn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:120 src/diff.c:879 src/diff3.c:467 src/sdiff.c:160
+#: src/cmp.c:124 src/diff.c:939 src/diff3.c:465 src/sdiff.c:159
 #, fuzzy, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Probe «%s --help» para obter máis información."
 
-#: src/cmp.c:138
+#: src/cmp.c:142
 #, fuzzy, c-format
 msgid "invalid --ignore-initial value '%s'"
 msgstr "valor de --ignore-initial «%s» non válido"
 
-#: src/cmp.c:148
+#: src/cmp.c:152
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr "as opcións -l e -s son incompatíbeis"
 
-#: src/cmp.c:156 src/diff.c:887 src/diff3.c:474 src/sdiff.c:168 src/sdiff.c:316
-#: src/sdiff.c:323 src/sdiff.c:876 src/util.c:852 src/util.c:952 src/util.c:959
+#: src/cmp.c:160 src/diff.c:947 src/diff3.c:472 src/sdiff.c:167 src/sdiff.c:314
+#: src/sdiff.c:321 src/sdiff.c:873 src/util.c:952 src/util.c:1052
+#: src/util.c:1059
 msgid "write failed"
 msgstr "fallou a escritura"
 
-#: src/cmp.c:158 src/diff.c:889 src/diff.c:1471 src/diff3.c:476 src/sdiff.c:170
+#: src/cmp.c:162 src/diff.c:949 src/diff.c:1543 src/diff3.c:474 src/sdiff.c:169
 msgid "standard output"
 msgstr "saída estándar"
 
-#: src/cmp.c:162
+#: src/cmp.c:166
 #, fuzzy
 msgid "-b, --print-bytes          print differing bytes"
 msgstr "Axustar a resolución de impresión"
 
-#: src/cmp.c:163
+#: src/cmp.c:167
 #, fuzzy
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
 msgstr ""
 "-i N     --ignore-initial=N     Omitir os primeiros N bytes de entrada."
 
-#: src/cmp.c:164
+#: src/cmp.c:168
 #, fuzzy
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
@@ -546,52 +547,52 @@ msgid ""
 msgstr ""
 "  Omitir os primeiros N1 bytes de FICH1 e os primeiros N2 bytes de FICH2."
 
-#: src/cmp.c:166
+#: src/cmp.c:170
 #, fuzzy
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
 msgstr "-l  --verbose  Amosar os números e valores dos bytes que difiran."
 
-#: src/cmp.c:167
+#: src/cmp.c:171
 #, fuzzy
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
 msgstr "-n LÍMITE  --bytes=LÍMITE  Comparar como moito LÍMITE bytes."
 
-#: src/cmp.c:168
+#: src/cmp.c:172
 msgid "-s, --quiet, --silent      suppress all normal output"
 msgstr ""
 
-#: src/cmp.c:169
+#: src/cmp.c:173
 msgid "    --help                 display this help and exit"
 msgstr ""
 
-#: src/cmp.c:170
+#: src/cmp.c:174
 #, fuzzy
 msgid "-v, --version              output version information and exit"
 msgstr "Mostrar información da versión e saír"
 
-#: src/cmp.c:179
+#: src/cmp.c:183
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
 msgstr "Uso: %s [OPCIÓN]... FICH1 [FICH2 [N1 [N2]]]\n"
 
-#: src/cmp.c:181
+#: src/cmp.c:185
 msgid "Compare two files byte by byte."
 msgstr "Comparar dous ficheiros byte a byte."
 
-#: src/cmp.c:183
+#: src/cmp.c:187
 #, fuzzy
 msgid ""
 "The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
 "at the beginning of each file (zero by default)."
 msgstr "N1 e N2 son o número de bytes a omitir en cada ficheiro."
 
-#: src/cmp.c:186 src/diff.c:999 src/diff3.c:514 src/sdiff.c:211
+#: src/cmp.c:190 src/diff.c:1059 src/diff3.c:512 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
 
-#: src/cmp.c:192
+#: src/cmp.c:196
 msgid ""
 "SKIP values may be followed by the following multiplicative suffixes:\n"
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
@@ -601,196 +602,196 @@ msgstr ""
 "kB 1000, K 1024, MB 1.000.000, M 1.048.576,\n"
 "GB 1.000.000.000, G 1.073.741.824, e así para T, P, E, Z e Y."
 
-#: src/cmp.c:195
+#: src/cmp.c:199
 #, fuzzy
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "Se un FICHEIRO é «-» ou non se indica, lese da entrada estándar."
 
-#: src/cmp.c:196 src/diff.c:987 src/sdiff.c:221
+#: src/cmp.c:200 src/diff.c:1047 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr ""
 "O estado de saída é 0 se as entradas son iguais, 1 se son diferentes, 2 en "
 "caso de problema."
 
-#: src/cmp.c:243
+#: src/cmp.c:247
 #, fuzzy, c-format
 msgid "invalid --bytes value '%s'"
 msgstr "valor de --bytes «%s» non válido"
 
-#: src/cmp.c:269 src/diff.c:797 src/diff3.c:361 src/sdiff.c:567
+#: src/cmp.c:273 src/diff.c:857 src/diff3.c:368 src/sdiff.c:564
 #, fuzzy, c-format
 msgid "missing operand after '%s'"
 msgstr "falta un operando despois de «%s»"
 
-#: src/cmp.c:281 src/diff.c:799 src/diff3.c:363 src/sdiff.c:569
+#: src/cmp.c:285 src/diff.c:859 src/diff3.c:370 src/sdiff.c:566
 #, fuzzy, c-format
 msgid "extra operand '%s'"
 msgstr "operando «%s» sobrante"
 
-#: src/cmp.c:507
+#: src/cmp.c:521
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s son diferentes: byte %s, liña %s\n"
 
-#: src/cmp.c:523
+#: src/cmp.c:537
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
 msgstr "%s %s son diferentes: byte %s, liña %s é %3o %s %3o %s\n"
 
-#: src/cmp.c:580
+#: src/cmp.c:594
 #, fuzzy, c-format
 msgid "cmp: EOF on %s which is empty\n"
 msgstr "cmp: Fin de ficheiro en %s\n"
 
-#: src/cmp.c:594
+#: src/cmp.c:608
 #, fuzzy, c-format
 msgid "cmp: EOF on %s after byte %s, line %s\n"
 msgstr "%s %s son diferentes: byte %s, liña %s\n"
 
-#: src/cmp.c:595
+#: src/cmp.c:609
 #, fuzzy, c-format
 msgid "cmp: EOF on %s after byte %s, in line %s\n"
 msgstr "%s %s son diferentes: byte %s, liña %s\n"
 
-#: src/cmp.c:601
+#: src/cmp.c:615
 #, fuzzy, c-format
 msgid "cmp: EOF on %s after byte %s\n"
 msgstr "cmp: Fin de ficheiro en %s\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:51
+#: src/diff.c:50
 msgid "Paul Eggert"
 msgstr "Paul Eggert"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:52
+#: src/diff.c:51
 msgid "Mike Haertel"
 msgstr "Mike Haertel"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:53
+#: src/diff.c:52
 msgid "David Hayes"
 msgstr "David Hayes"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:54
+#: src/diff.c:53
 msgid "Richard Stallman"
 msgstr "Richard Stallman"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:55
+#: src/diff.c:54
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:355
+#: src/diff.c:365
 #, fuzzy, c-format
 msgid "invalid context length '%s'"
 msgstr "lonxitude do contexto «%s» non válida"
 
-#: src/diff.c:438
+#: src/diff.c:487
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "a paxinación non está admitida nesta máquina"
 
-#: src/diff.c:453 src/diff3.c:341
+#: src/diff.c:502 src/diff3.c:348
 #, c-format
 msgid "too many file label options"
 msgstr "demasiadas opcións de etiquetas de ficheiro"
 
-#: src/diff.c:530
+#: src/diff.c:579
 #, fuzzy, c-format
 msgid "invalid width '%s'"
 msgstr "largo «%s» non válido"
 
-#: src/diff.c:534
+#: src/diff.c:583
 msgid "conflicting width options"
 msgstr "opcións de largura conflitivas"
 
-#: src/diff.c:559
+#: src/diff.c:608
 #, fuzzy, c-format
 msgid "invalid horizon length '%s'"
 msgstr "lonxitude do horizonte «%s» non válida"
 
-#: src/diff.c:615
+#: src/diff.c:664
 #, fuzzy, c-format
 msgid "invalid tabsize '%s'"
 msgstr "tamaño de tabulación «%s» non válido"
 
-#: src/diff.c:619
+#: src/diff.c:668
 msgid "conflicting tabsize options"
 msgstr "opcións de tamaño de tabulación conflitivas"
 
-#: src/diff.c:774
+#: src/diff.c:834
 msgid "--from-file and --to-file both specified"
 msgstr "Especificáronse --from-file e --to-file ao mesmo tempo"
 
-#: src/diff.c:893
+#: src/diff.c:953
 #, fuzzy
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "Aparencia predefinida no modo normal"
 
-#: src/diff.c:894
+#: src/diff.c:954
 #, fuzzy
 msgid "-q, --brief                   report only when files differ"
 msgstr "-q  --brief  Producir unha saída só se os ficheiros teñen diferencias."
 
-#: src/diff.c:895
+#: src/diff.c:955
 #, fuzzy
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr ""
 "-s  --report-identical-files  Informar cando dous ficheiros son o mesmo."
 
-#: src/diff.c:896
+#: src/diff.c:956
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
 
-#: src/diff.c:897
+#: src/diff.c:957
 #, fuzzy
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr "-w NÚM  --width=NÚM  Amosar como moito NÚM columnas (130 por omisión)."
 
-#: src/diff.c:898
+#: src/diff.c:958
 #, fuzzy
 msgid "-e, --ed                      output an ed script"
 msgstr "Gardar a saída da consola de Script-Fu"
 
-#: src/diff.c:899
+#: src/diff.c:959
 #, fuzzy
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n  --rcs  Producir un diff en formato RCS."
 
-#: src/diff.c:900
+#: src/diff.c:960
 msgid "-y, --side-by-side            output in two columns"
 msgstr ""
 
-#: src/diff.c:901
+#: src/diff.c:961
 #, fuzzy
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr "-w NÚM  --width=NÚM  Amosar como moito NÚM columnas (130 por omisión)."
 
-#: src/diff.c:902
+#: src/diff.c:962
 #, fuzzy
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr "-l  --left-column  Amosar só a columna da esquerda nas liñas comúns."
 
-#: src/diff.c:903
+#: src/diff.c:963
 #, fuzzy
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "-s --suppress-common-lines  Non amosar as liñas comúns."
 
-#: src/diff.c:905
+#: src/diff.c:965
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr ""
 
-#: src/diff.c:906
+#: src/diff.c:966
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr ""
 
-#: src/diff.c:907
+#: src/diff.c:967
 #, fuzzy
 msgid ""
 "    --label LABEL             use LABEL instead of file name and timestamp\n"
@@ -799,25 +800,25 @@ msgstr ""
 "--from-file=FICH1  Comparar FICH1 con todos os operandos. Pode ser "
 "directorio."
 
-#: src/diff.c:910
+#: src/diff.c:970
 #, fuzzy
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr "-t  --expand-tabs  Expandir as tabulacións a espazos na saída."
 
-#: src/diff.c:911
+#: src/diff.c:971
 #, fuzzy
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr ""
 "-T  --initial-tab  Facer que as tabulacións queden aliñadas poñendo outra\n"
 "                     tabulación ao principio da liña."
 
-#: src/diff.c:912
+#: src/diff.c:972
 #, fuzzy
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr "--tabsize=NÚM  Tabulacións de NÚM columnas (8 por omisión)."
 
-#: src/diff.c:913
+#: src/diff.c:973
 #, fuzzy
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
@@ -825,53 +826,53 @@ msgstr ""
 "--suppress-blank-empty  Suprime espazos ou tabuladores antes dunha liña "
 "baleira."
 
-#: src/diff.c:914
+#: src/diff.c:974
 #, fuzzy
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr "-l  --paginate  Pasar a saída por «pr» para paxinala."
 
-#: src/diff.c:916
+#: src/diff.c:976
 #, fuzzy
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr ""
 "-r  --recursive  Comparar recursivamente os subdirectorios que se atopen."
 
-#: src/diff.c:917
+#: src/diff.c:977
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr ""
 
-#: src/diff.c:918
+#: src/diff.c:978
 #, fuzzy
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr "-N  --new-file  Tratar os ficheiros ausentes como baleiros."
 
-#: src/diff.c:919
+#: src/diff.c:979
 #, fuzzy
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
 "--unidirectional-new-file  Tratar os ficheiros antigos ausentes como\r\n"
 "a baleiros."
 
-#: src/diff.c:920
+#: src/diff.c:980
 #, fuzzy
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ""
 "--ignore-file-name-case  Ignorar maiúsculas/minúsculas no nome do ficheiro."
 
-#: src/diff.c:921
+#: src/diff.c:981
 #, fuzzy
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
 "--no-ignore-file-name-case  Ter en conta as maiúsculas/minúsculas\r\n"
 "                                ao comparar os nomes dos ficheiros."
 
-#: src/diff.c:922
+#: src/diff.c:982
 #, fuzzy
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr "-x MOD  --exclude=MOD  Excluír os ficheiros que coinciden co MODelo."
 
-#: src/diff.c:923
+#: src/diff.c:983
 #, fuzzy
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
@@ -879,14 +880,14 @@ msgstr ""
 "-X FICH  --exclude-from=FICH  Excluír ficheiros que coinciden con algún\r\n"
 "                                modelo do FICHeiro."
 
-#: src/diff.c:924
+#: src/diff.c:984
 #, fuzzy
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
 "-S FICH  --starting-file=FICH  Comezar no FICHeiro ao comparar directorios."
 
-#: src/diff.c:925
+#: src/diff.c:985
 #, fuzzy
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
@@ -895,7 +896,7 @@ msgstr ""
 "--from-file=FICH1  Comparar FICH1 con todos os operandos. Pode ser "
 "directorio."
 
-#: src/diff.c:927
+#: src/diff.c:987
 #, fuzzy
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
@@ -904,36 +905,36 @@ msgstr ""
 "--to-file=FICH2  Comparar todos os operandos con FICH2. Pode ser un "
 "directorio."
 
-#: src/diff.c:930
+#: src/diff.c:990
 #, fuzzy
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr ""
 "-i  --ignore-case  Ignorar maiúsculas/minúsculas no contido do ficheiro."
 
-#: src/diff.c:931
+#: src/diff.c:991
 #, fuzzy
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr ""
 "-E  --ignore-tab-expansion  Ignorar os cambios pola expansión de tabulacións."
 
-#: src/diff.c:932
+#: src/diff.c:992
 #, fuzzy
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr "-w  --ignore-all-space  Ignorar todos os espazos en branco."
 
-#: src/diff.c:933
+#: src/diff.c:993
 #, fuzzy
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr "-b  --ignore-space-change  Ignorar os cambios na cantidade de espazos."
 
-#: src/diff.c:934
+#: src/diff.c:994
 #, fuzzy
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "Todo visíbel (ignorar patrón)"
 
-#: src/diff.c:935
+#: src/diff.c:995
 #, fuzzy
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
@@ -941,7 +942,7 @@ msgstr ""
 "-B  --ignore-blank-lines  Ignorar os cambios que teñan todas as liñas en "
 "branco"
 
-#: src/diff.c:936
+#: src/diff.c:996
 #, fuzzy
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
@@ -949,67 +950,67 @@ msgstr ""
 "todas as liñas\r\n"
 "                                     conteñan EXPR-REG."
 
-#: src/diff.c:938
+#: src/diff.c:998
 #, fuzzy
 msgid "-a, --text                      treat all files as text"
 msgstr "-a  --text  Tratar todos os ficheiros como texto"
 
-#: src/diff.c:939
+#: src/diff.c:999
 #, fuzzy
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr ""
 "--strip-trailing-cr  Eliminar os retornos de carro á fin das liñas de "
 "entrada."
 
-#: src/diff.c:941
+#: src/diff.c:1001
 #, fuzzy
 msgid "    --binary                    read and write data in binary mode"
 msgstr "--binary  Ler e escribir datos en modo binario."
 
-#: src/diff.c:944
+#: src/diff.c:1004
 #, fuzzy
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
 "-D NOME  -ifdef=NOME  Amosar o ficheiro mesturado con diffs «#ifdef NOME»."
 
-#: src/diff.c:945
+#: src/diff.c:1005
 #, fuzzy
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr ""
-"--GTYPE-group-format=GFMT  Similar, mais formatar os grupos de entrada GTYPE"
-"\r\n"
+"--GTYPE-group-format=GFMT  Similar, mais formatar os grupos de entrada "
+"GTYPE\r\n"
 "                             con GFMT."
 
-#: src/diff.c:946
+#: src/diff.c:1006
 #, fuzzy
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr ""
 "--line-format=LFMT  Similar, mais formatar todas as liñas de entrada con "
 "LFMT."
 
-#: src/diff.c:947
+#: src/diff.c:1007
 #, fuzzy
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr ""
-"--LTYPE-line-format=LFMT  Similar, mais formatar as liñas de entrada LTYPE"
-"\r\n"
+"--LTYPE-line-format=LFMT  Similar, mais formatar as liñas de entrada "
+"LTYPE\r\n"
 "                            con LFMT."
 
-#: src/diff.c:948
+#: src/diff.c:1008
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
 msgstr ""
 
-#: src/diff.c:950
+#: src/diff.c:1010
 #, fuzzy
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
 "  LTYPE é «old» (antigo), «new» (novo) ou «unchanged» (sen cambios).\r\n"
 "  GTYPE é LTYPE ou «changed» (con cambios)."
 
-#: src/diff.c:951
+#: src/diff.c:1011
 #, fuzzy
 msgid ""
 "  GFMT (only) may contain:\n"
@@ -1039,7 +1040,7 @@ msgstr ""
 "        E  F-1\n"
 "        M  L+1"
 
-#: src/diff.c:963
+#: src/diff.c:1023
 #, fuzzy
 msgid ""
 "  LFMT (only) may contain:\n"
@@ -1052,7 +1053,7 @@ msgstr ""
 "    %l  contido da liña, excluíndo os saltos de liña finais\n"
 "    %[-][ANCHO][.[PREC]]{doxX}n  especif. estilo printf do número da liña"
 
-#: src/diff.c:967
+#: src/diff.c:1027
 #, fuzzy
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
@@ -1066,17 +1067,17 @@ msgstr ""
 "    %c«C»  o carácter C\n"
 "    %c«\\OOO»  o carácter de código octal OOO"
 
-#: src/diff.c:973
+#: src/diff.c:1033
 #, fuzzy
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr "-d  --minimal  Procurar atopar o conxunto de cambios máis pequeno."
 
-#: src/diff.c:974
+#: src/diff.c:1034
 #, fuzzy
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr "--horizon-lines=NUM  Manter NUM liñas do prefixo e sufixo comúns."
 
-#: src/diff.c:975
+#: src/diff.c:1035
 #, fuzzy
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
@@ -1084,133 +1085,133 @@ msgstr ""
 "-H  --speed-large-files  Asumir ficheiros longos e pequenos cambios "
 "dispersos."
 
-#: src/diff.c:976
+#: src/diff.c:1036
 msgid ""
 "    --color[=WHEN]       color output; WHEN is 'never', 'always', or "
 "'auto';\n"
 "                           plain --color means --color='auto'"
 msgstr ""
 
-#: src/diff.c:978
+#: src/diff.c:1038
 msgid ""
 "    --palette=PALETTE    the colors to use when --color is active; PALETTE "
 "is\n"
 "                           a colon-separated list of terminfo capabilities"
 msgstr ""
 
-#: src/diff.c:981
+#: src/diff.c:1041
 msgid "    --help               display this help and exit"
 msgstr ""
 
-#: src/diff.c:982
+#: src/diff.c:1042
 #, fuzzy
 msgid "-v, --version            output version information and exit"
 msgstr "Mostrar información da versión e saír"
 
-#: src/diff.c:984
+#: src/diff.c:1044
 #, fuzzy
 msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
 "Os FICHEIROS son «FICH1 FICH2», «DIR1 DIR2», «DIR FICH...» ou «FICH... DIR»."
 
-#: src/diff.c:985
+#: src/diff.c:1045
 #, fuzzy
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr ""
 "Se se indica --from-file ou --to-file, non hai restricións nos FICHEIROS."
 
-#: src/diff.c:986 src/diff3.c:533 src/sdiff.c:220
+#: src/diff.c:1046 src/diff3.c:531 src/sdiff.c:219
 #, fuzzy
 msgid "If a FILE is '-', read standard input."
 msgstr "Se un FICHEIRO é «-», lese da entrada estándar."
 
-#: src/diff.c:996
+#: src/diff.c:1056
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Uso: %s [OPCIÓN]... FICHEIROS\n"
 
-#: src/diff.c:997
+#: src/diff.c:1057
 #, fuzzy
 msgid "Compare FILES line by line."
 msgstr "Comparar os ficheiros liña a liña."
 
-#: src/diff.c:1034
+#: src/diff.c:1094
 #, fuzzy, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "valor «%1$s» da opción %2$s conflitivo"
 
-#: src/diff.c:1047
+#: src/diff.c:1107
 #, c-format
 msgid "conflicting output style options"
 msgstr "opcións de estilo da saída conflitivas"
 
-#: src/diff.c:1063
+#: src/diff.c:1123
 #, fuzzy, c-format
 msgid "invalid color '%s'"
 msgstr "lonxitude do contexto «%s» non válida"
 
-#: src/diff.c:1119 src/diff.c:1329
+#: src/diff.c:1197 src/diff.c:1401
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Só en %s: %s\n"
 
-#: src/diff.c:1253
+#: src/diff.c:1325
 #, fuzzy
 msgid "cannot compare '-' to a directory"
 msgstr "non se pode comparar «-» cun directorio"
 
-#: src/diff.c:1288
+#: src/diff.c:1360
 msgid "-D option not supported with directories"
 msgstr "A opción -D non está admitida con directorios"
 
-#: src/diff.c:1297
+#: src/diff.c:1369
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Subdirectorios comúns: %s e %s\n"
 
-#: src/diff.c:1339 src/diff.c:1389
+#: src/diff.c:1411 src/diff.c:1461
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr "O ficheiro %s é un %s mentres que o ficheiro %s é un %s\n"
 
-#: src/diff.c:1375
+#: src/diff.c:1447
 #, fuzzy, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "Os ficheiros %s e %s son diferentes\n"
 
-#: src/diff.c:1462
+#: src/diff.c:1534
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Os ficheiros %s e %s son idénticos\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff3.c:43
+#: src/diff3.c:51
 msgid "Randy Smith"
 msgstr "Randy Smith"
 
-#: src/diff3.c:356
+#: src/diff3.c:363
 #, c-format
 msgid "incompatible options"
 msgstr "opcións incompatíbeis"
 
-#: src/diff3.c:396
+#: src/diff3.c:403
 #, fuzzy
 msgid "'-' specified for more than one input file"
 msgstr "Especificouse «-» para máis dun ficheiro de entrada"
 
-#: src/diff3.c:447 src/diff3.c:1295 src/diff3.c:1698 src/diff3.c:1753
-#: src/sdiff.c:308 src/sdiff.c:846 src/sdiff.c:857
+#: src/diff3.c:445 src/diff3.c:1284 src/diff3.c:1683 src/diff3.c:1738
+#: src/sdiff.c:306 src/sdiff.c:843 src/sdiff.c:854
 msgid "read failed"
 msgstr "fallou a lectura"
 
-#: src/diff3.c:480
+#: src/diff3.c:478
 #, fuzzy
 msgid "-A, --show-all              output all changes, bracketing conflicts"
 msgstr ""
 "-a  --show-all  Amosar todos os cambios, cos conflitos entre parénteses."
 
-#: src/diff3.c:482
+#: src/diff3.c:480
 #, fuzzy
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
@@ -1218,91 +1219,91 @@ msgid ""
 msgstr ""
 "-e  --ed  Produce cambios sen mesturar de FICH-ANTIGO a TEU-FICH en MEU-FICH."
 
-#: src/diff3.c:484
+#: src/diff3.c:482
 #, fuzzy
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
 msgstr ""
 "-E  --show-overlap  Amosar cambios sen mesturar cos conflitos entre "
 "parénteses."
 
-#: src/diff3.c:485
+#: src/diff3.c:483
 #, fuzzy
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
 msgstr "-3  --easy-only  Amosar cambios non sobrepostos e non mesturados."
 
-#: src/diff3.c:486
+#: src/diff3.c:484
 #, fuzzy
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
 msgstr "-x  --overlap-only  Amosar los cambios que se superpoñen."
 
-#: src/diff3.c:487
+#: src/diff3.c:485
 msgid "-X                          like -x, but bracket conflicts"
 msgstr ""
 
-#: src/diff3.c:488
+#: src/diff3.c:486
 #, fuzzy
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
 msgstr "-i  Engadir as ordes  «w» e «q» aos scripts en ed."
 
-#: src/diff3.c:490
+#: src/diff3.c:488
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
 msgstr ""
 
-#: src/diff3.c:493
+#: src/diff3.c:491
 #, fuzzy
 msgid "-a, --text                  treat all files as text"
 msgstr "-a  --text  Tratar todos os ficheiros como texto"
 
-#: src/diff3.c:494
+#: src/diff3.c:492
 #, fuzzy
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
 msgstr ""
 "--strip-trailing-cr  Eliminar os retornos de carro á fin das liñas de "
 "entrada."
 
-#: src/diff3.c:495
+#: src/diff3.c:493
 #, fuzzy
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
 msgstr ""
 "-T  --initial-tab  Facer que as tabulacións queden aliñadas poñendo outra\n"
 "                     tabulación ao principio da liña."
 
-#: src/diff3.c:496
+#: src/diff3.c:494
 #, fuzzy
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
 msgstr ""
 "--diff-program=PROGRAMA  Empregar o PROGRAMA para comparar os ficheiros."
 
-#: src/diff3.c:497
+#: src/diff3.c:495
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
 msgstr ""
 
-#: src/diff3.c:500
+#: src/diff3.c:498
 msgid "    --help                  display this help and exit"
 msgstr ""
 
-#: src/diff3.c:501
+#: src/diff3.c:499
 #, fuzzy
 msgid "-v, --version               output version information and exit"
 msgstr "Mostrar información da versión e saír"
 
-#: src/diff3.c:510
+#: src/diff3.c:508
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
 msgstr "Uso: %s [OPCIÓN]... MEU-FICH ANTIGO-FICH TEU-FICH\n"
 
-#: src/diff3.c:512
+#: src/diff3.c:510
 msgid "Compare three files line by line."
 msgstr "Comparar tres ficheiros liña a liña."
 
-#: src/diff3.c:522
+#: src/diff3.c:520
 msgid ""
 "\n"
 "The default output format is a somewhat human-readable representation of\n"
@@ -1316,56 +1317,56 @@ msgid ""
 "robust than using ed.\n"
 msgstr ""
 
-#: src/diff3.c:534
+#: src/diff3.c:532
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
 msgstr ""
 "O estado de saída é 0 se é correcto, 1 se hai conflitos, 2 en caso de "
 "problema."
 
-#: src/diff3.c:727
+#: src/diff3.c:725
 msgid "internal error: screwup in format of diff blocks"
 msgstr "erro interno: fallo no formato dos bloques diff"
 
-#: src/diff3.c:1022
+#: src/diff3.c:1015
 #, c-format
 msgid "%s: diff failed: "
 msgstr "%s: diff fallou: "
 
-#: src/diff3.c:1044
+#: src/diff3.c:1037
 msgid "internal error: invalid diff type in process_diff"
 msgstr "erro interno: tipo de diff non válido en process_diff"
 
-#: src/diff3.c:1069
+#: src/diff3.c:1060
 msgid "invalid diff format; invalid change separator"
 msgstr "formato de diff non válido; separador de cambios non válido"
 
-#: src/diff3.c:1305
+#: src/diff3.c:1294
 msgid "invalid diff format; incomplete last line"
 msgstr "formato de diff non válido: última liña incompleta"
 
-#: src/diff3.c:1329 src/sdiff.c:276 src/util.c:969
+#: src/diff3.c:1318 src/sdiff.c:274 src/util.c:1069
 #, fuzzy, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "non foi posíbel invocar o programa subsidiario «%s»"
 
-#: src/diff3.c:1354
+#: src/diff3.c:1343
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "formato de diff non válido: caracteres a principio de liña incorrectos"
 
-#: src/diff3.c:1427
+#: src/diff3.c:1416
 msgid "internal error: invalid diff type passed to output"
 msgstr "erro interno_ tipo de diff non válido pasado á saída"
 
-#: src/diff3.c:1700 src/diff3.c:1757
+#: src/diff3.c:1685 src/diff3.c:1742
 msgid "input file shrank"
 msgstr "o ficheiro de entrada minguou"
 
-#: src/dir.c:156
+#: src/dir.c:154
 #, fuzzy, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "non se poden comparar os ficheiros «%s» e «%s»"
 
-#: src/dir.c:225
+#: src/dir.c:223
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: bucle de directorio recursivo"
@@ -1375,7 +1376,7 @@ msgstr "%s: bucle de directorio recursivo"
 msgid "Thomas Lord"
 msgstr "Thomas Lord"
 
-#: src/sdiff.c:174
+#: src/sdiff.c:173
 #, fuzzy
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
@@ -1383,43 +1384,43 @@ msgstr ""
 "-o FICH  --output=FICH  Operar interactivamente, enviando a saída ao "
 "FICHeiro."
 
-#: src/sdiff.c:176
+#: src/sdiff.c:175
 #, fuzzy
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
 msgstr ""
 "-i  --ignore-case  Ignorar as diferencias entre maiúsculas e minúsculas."
 
-#: src/sdiff.c:177
+#: src/sdiff.c:176
 #, fuzzy
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
 msgstr ""
 "-E  --ignore-tab-expansion  Ignorar os cambios pola expansión de tabulacións."
 
-#: src/sdiff.c:178
+#: src/sdiff.c:177
 #, fuzzy
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
 msgstr "-w  --ignore-all-space  Ignorar todos os espazos en branco."
 
-#: src/sdiff.c:179
+#: src/sdiff.c:178
 #, fuzzy
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
 msgstr "-b  --ignore-space-change  Ignorar os cambios na cantidade de espazos."
 
-#: src/sdiff.c:180
+#: src/sdiff.c:179
 #, fuzzy
 msgid "-W, --ignore-all-space       ignore all white space"
 msgstr "Todo visíbel (ignorar patrón)"
 
-#: src/sdiff.c:181
+#: src/sdiff.c:180
 #, fuzzy
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
 msgstr ""
 "-B  --ignore-blank-lines  Ignorar os cambios que teñan todas as liñas en "
 "branco"
 
-#: src/sdiff.c:182
+#: src/sdiff.c:181
 #, fuzzy
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
@@ -1427,52 +1428,52 @@ msgstr ""
 "todas as liñas\r\n"
 "                                     conteñan EXPR-REG."
 
-#: src/sdiff.c:183
+#: src/sdiff.c:182
 #, fuzzy
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
 msgstr ""
 "--strip-trailing-cr  Eliminar os retornos de carro á fin das liñas de "
 "entrada."
 
-#: src/sdiff.c:184
+#: src/sdiff.c:183
 #, fuzzy
 msgid "-a, --text                   treat all files as text"
 msgstr "-a  --text  Tratar todos os ficheiros como texto"
 
-#: src/sdiff.c:186
+#: src/sdiff.c:185
 #, fuzzy
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
 msgstr "-w NÚM  --width=NÚM  Amosar como moito NÚM columnas (130 por omisión)."
 
-#: src/sdiff.c:187
+#: src/sdiff.c:186
 #, fuzzy
 msgid ""
 "-l, --left-column            output only the left column of common lines"
 msgstr "-l  --left-column  Amosar só a columna da esquerda nas liñas comúns."
 
-#: src/sdiff.c:188
+#: src/sdiff.c:187
 #, fuzzy
 msgid "-s, --suppress-common-lines  do not output common lines"
 msgstr "-s --suppress-common-lines  Non amosar as liñas comúns."
 
-#: src/sdiff.c:190
+#: src/sdiff.c:189
 #, fuzzy
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
 msgstr "-t  --expand-tabs  Expandir as tabulacións a espazos na saída."
 
-#: src/sdiff.c:191
+#: src/sdiff.c:190
 #, fuzzy
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
 msgstr "--tabsize=NÚM  Tabulacións de NÚM columnas (8 por omisión)."
 
-#: src/sdiff.c:193
+#: src/sdiff.c:192
 #, fuzzy
 msgid "-d, --minimal                try hard to find a smaller set of changes"
 msgstr "-d  --minimal  Procurar atopar o conxunto de cambios máis pequeno."
 
-#: src/sdiff.c:194
+#: src/sdiff.c:193
 #, fuzzy
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
@@ -1480,40 +1481,40 @@ msgstr ""
 "-H  --speed-large-files  Asumir ficheiros longos e pequenos cambios "
 "dispersos."
 
-#: src/sdiff.c:195
+#: src/sdiff.c:194
 #, fuzzy
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
 msgstr ""
 "--diff-program=PROGRAMA  Empregar o PROGRAMA para comparar os ficheiros."
 
-#: src/sdiff.c:197
+#: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
 msgstr ""
 
-#: src/sdiff.c:198
+#: src/sdiff.c:197
 #, fuzzy
 msgid "-v, --version                output version information and exit"
 msgstr "Mostrar información da versión e saír"
 
-#: src/sdiff.c:207
+#: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
 msgstr "Uso: %s [OPCIÓN]... FICH1 FICH2\n"
 
-#: src/sdiff.c:209
+#: src/sdiff.c:208
 #, fuzzy
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
 msgstr "Mestura en dúas columnas das diferencias entre os ficheiros."
 
-#: src/sdiff.c:330
+#: src/sdiff.c:328
 msgid "cannot interactively merge standard input"
 msgstr "non se pode mesturar a entrada estándar interactivamente"
 
-#: src/sdiff.c:597
+#: src/sdiff.c:594
 msgid "both files to be compared are directories"
 msgstr "ámbolos dous ficheiros a ser comparados son directorios"
 
-#: src/sdiff.c:820
+#: src/sdiff.c:817
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
 "eb:\tEdit then use both versions.\n"
@@ -1537,12 +1538,12 @@ msgstr ""
 "v:       Inclúe liñas comúns de xeito detallado.\n"
 "q:       Saír.\n"
 
-#: src/util.c:662
+#: src/util.c:755
 #, fuzzy, c-format
 msgid "unrecognized prefix: %s"
 msgstr "%s: non se recoñece a opción «--%s»\n"
 
-#: src/util.c:692
+#: src/util.c:785
 #, c-format
 msgid "unparsable value for --palette"
 msgstr ""
index e42c600..74d86cf 100644 (file)
--- a/po/he.po
+++ b/po/he.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: diffutils 2.8.3\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2021-08-01 18:56-0700\n"
+"POT-Creation-Date: 2023-05-21 01:51-0700\n"
 "PO-Revision-Date: 2002-06-17 13:03+0300\n"
 "Last-Translator: Eli Zaretskii <eliz@gnu.org>\n"
 "Language-Team: Hebrew <eliz@gnu.org>\n"
@@ -16,29 +16,29 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 
-#: lib/argmatch.c:132
+#: lib/argmatch.c:145
 #, c-format
 msgid "invalid argument %s for %s"
 msgstr ""
 
-#: lib/argmatch.c:133
+#: lib/argmatch.c:146
 #, c-format
 msgid "ambiguous argument %s for %s"
 msgstr ""
 
-#: lib/argmatch.c:152 lib/argmatch.h:223
+#: lib/argmatch.c:165 lib/argmatch.h:242
 msgid "Valid arguments are:"
 msgstr ""
 
-#: lib/c-stack.c:187
+#: lib/c-stack.c:186
 msgid "program error"
 msgstr "úéðëúá äøåîç äì÷ú"
 
-#: lib/c-stack.c:188
+#: lib/c-stack.c:187
 msgid "stack overflow"
 msgstr "úéðñçî úùéìâ"
 
-#: lib/error.c:195
+#: lib/error.c:193
 msgid "Unknown system error"
 msgstr "ääåæî-éúìá äì÷ú"
 
@@ -198,84 +198,84 @@ msgstr "%s: 
 #. If you don't know what to put here, please see
 #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:355
+#: lib/quotearg.c:354
 msgid "`"
 msgstr ""
 
-#: lib/quotearg.c:356
+#: lib/quotearg.c:355
 msgid "'"
 msgstr ""
 
-#: lib/regcomp.c:135
+#: lib/regcomp.c:122
 msgid "Success"
 msgstr "äçìöä"
 
-#: lib/regcomp.c:138
+#: lib/regcomp.c:125
 msgid "No match"
 msgstr "äîéàúî úæåøçî äàöîð àì"
 
-#: lib/regcomp.c:141
+#: lib/regcomp.c:128
 msgid "Invalid regular expression"
 msgstr "éåâù éøìåâø éåèéá"
 
-#: lib/regcomp.c:144
+#: lib/regcomp.c:131
 msgid "Invalid collation character"
 msgstr "òåãé-éúìá øåãéñ åú"
 
-#: lib/regcomp.c:147
+#: lib/regcomp.c:134
 msgid "Invalid character class name"
 msgstr "íéåú úöåá÷ ìù øëåî-éúìá íù"
 
-#: lib/regcomp.c:150
+#: lib/regcomp.c:137
 msgid "Trailing backslash"
 msgstr "`\\' éøåçà ïñëåìá íééúñî éøìåâø éåèéá"
 
-#: lib/regcomp.c:153
+#: lib/regcomp.c:140
 msgid "Invalid back reference"
 msgstr "íãå÷ éåèéá-úúì äéåâù äééðôä"
 
-#: lib/regcomp.c:156
+#: lib/regcomp.c:143
 #, fuzzy
 msgid "Unmatched [, [^, [:, [., or [="
 msgstr "âåæ-ïá åì ïéàù [^ åà ["
 
-#: lib/regcomp.c:159
+#: lib/regcomp.c:146
 msgid "Unmatched ( or \\("
 msgstr "âåæ-ïá åì ïéàù \\( åà ("
 
-#: lib/regcomp.c:162
+#: lib/regcomp.c:149
 msgid "Unmatched \\{"
 msgstr "âåæ-ïá åì ïéàù \\{"
 
-#: lib/regcomp.c:165
+#: lib/regcomp.c:152
 msgid "Invalid content of \\{\\}"
 msgstr "\\{\\} êåúá éåâù äðáî"
 
-#: lib/regcomp.c:168
+#: lib/regcomp.c:155
 msgid "Invalid range end"
 msgstr "íéåú íåçú ìù äéåâù äøãâä"
 
-#: lib/regcomp.c:171
+#: lib/regcomp.c:158
 msgid "Memory exhausted"
 msgstr "ïåøëæä øîâð"
 
-#: lib/regcomp.c:174
+#: lib/regcomp.c:161
 msgid "Invalid preceding regular expression"
 msgstr "íéé÷ åðéà åà éåâù íãå÷ éøìåâø éåèéá"
 
-#: lib/regcomp.c:177
+#: lib/regcomp.c:164
 msgid "Premature end of regular expression"
 msgstr "éãî íã÷åî íééúñî éøìåâø éåèéá"
 
-#: lib/regcomp.c:180
+#: lib/regcomp.c:167
 msgid "Regular expression too big"
 msgstr "éãî áëøåî åà ìåãâ éøìåâø éåèéá"
 
-#: lib/regcomp.c:183
+#: lib/regcomp.c:170
 msgid "Unmatched ) or \\)"
 msgstr "âåæ-ïá åì ïéàù \\) åà )"
 
-#: lib/regcomp.c:676
+#: lib/regcomp.c:650
 msgid "No previous regular expression"
 msgstr "íãå÷ éøìåâø éåèéá ïéà"
 
@@ -451,17 +451,17 @@ msgstr ""
 msgid "General help using GNU software: <%s>\n"
 msgstr ""
 
-#: src/analyze.c:454 src/diff.c:1406
+#: src/analyze.c:455 src/diff.c:1478
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "äæî äæ íéðåù `%s'-å `%s' íéöá÷ä\n"
 
-#: src/analyze.c:455
+#: src/analyze.c:456
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "äæî äæ íéðåù `%s'-å `%s' íééøðéá íéöá÷\n"
 
-#: src/analyze.c:706 src/diff3.c:1470 src/util.c:1254
+#: src/analyze.c:707 src/diff3.c:1457 src/util.c:1354
 msgid "No newline at end of file"
 msgstr "õáå÷ä óåñá äùãç-äøåù åú øñç"
 
@@ -475,93 +475,94 @@ msgstr ""
 msgid "David MacKenzie"
 msgstr ""
 
-#: src/cmp.c:120 src/diff.c:879 src/diff3.c:467 src/sdiff.c:160
+#: src/cmp.c:124 src/diff.c:939 src/diff3.c:465 src/sdiff.c:159
 #, fuzzy, c-format
 msgid "Try '%s --help' for more information."
 msgstr ".øúåé áø òãéî úâöäì `%s --help' ùé÷äì äñð"
 
-#: src/cmp.c:138
+#: src/cmp.c:142
 #, fuzzy, c-format
 msgid "invalid --ignore-initial value '%s'"
 msgstr "--ignore-initial ïééôàî øåáò `%s' éåâù êøò"
 
-#: src/cmp.c:148
+#: src/cmp.c:152
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr "äæ úà äæ íéøúåñ -s-å -l íéðééôàîä"
 
-#: src/cmp.c:156 src/diff.c:887 src/diff3.c:474 src/sdiff.c:168 src/sdiff.c:316
-#: src/sdiff.c:323 src/sdiff.c:876 src/util.c:852 src/util.c:952 src/util.c:959
+#: src/cmp.c:160 src/diff.c:947 src/diff3.c:472 src/sdiff.c:167 src/sdiff.c:314
+#: src/sdiff.c:321 src/sdiff.c:873 src/util.c:952 src/util.c:1052
+#: src/util.c:1059
 msgid "write failed"
 msgstr "äáéúëá äì÷ú"
 
-#: src/cmp.c:158 src/diff.c:889 src/diff.c:1471 src/diff3.c:476 src/sdiff.c:170
+#: src/cmp.c:162 src/diff.c:949 src/diff.c:1543 src/diff3.c:474 src/sdiff.c:169
 msgid "standard output"
 msgstr "éð÷ú èìô õåøòì"
 
-#: src/cmp.c:162
+#: src/cmp.c:166
 #, fuzzy
 msgid "-b, --print-bytes          print differing bytes"
 msgstr "                       .íéäæ íðéàù íéúá âöä  -b    --print-bytes"
 
-#: src/cmp.c:163
+#: src/cmp.c:167
 #, fuzzy
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
 msgstr "             .èì÷ä ìù íéðåùàø íéúá N ìò âìã  -i N --ignore-initial=N"
 
-#: src/cmp.c:164
+#: src/cmp.c:168
 #, fuzzy
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
 msgstr ".éðùä õáå÷á íéúá N2 ìòå ïåùàøä õáå÷á íéúá N1 ìò âìã"
 
-#: src/cmp.c:166
+#: src/cmp.c:170
 #, fuzzy
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
 msgstr ".íéäæ íðéàù íéúáä ìë ìù ãå÷å éøåãéñ 'ñî âöä  -l    --verbose"
 
-#: src/cmp.c:167
+#: src/cmp.c:171
 #, fuzzy
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
 msgstr "                    .íéúá N øúåéä ìëì äååùä  -n N  --bytes=N"
 
-#: src/cmp.c:168
+#: src/cmp.c:172
 msgid "-s, --quiet, --silent      suppress all normal output"
 msgstr ""
 
-#: src/cmp.c:169
+#: src/cmp.c:173
 msgid "    --help                 display this help and exit"
 msgstr ""
 
-#: src/cmp.c:170
+#: src/cmp.c:174
 #, fuzzy
 msgid "-v, --version              output version information and exit"
 msgstr "                       .úéðëúä úñøéâ úà âöä  -v  --version"
 
-#: src/cmp.c:179
+#: src/cmp.c:183
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
 msgstr "   %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]] :ùåîéù ïôåà\n"
 
-#: src/cmp.c:181
+#: src/cmp.c:185
 msgid "Compare two files byte by byte."
 msgstr ".úéáì úéá íéöá÷ éðù äååùä"
 
-#: src/cmp.c:183
+#: src/cmp.c:187
 #, fuzzy
 msgid ""
 "The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
 "at the beginning of each file (zero by default)."
 msgstr "      .íéöá÷äî ãçà ìëá âìãì ùé íäéìò íéúáä éøôñî íä SKIP2-å SKIP1"
 
-#: src/cmp.c:186 src/diff.c:999 src/diff3.c:514 src/sdiff.c:211
+#: src/cmp.c:190 src/diff.c:1059 src/diff3.c:512 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
 
-#: src/cmp.c:192
+#: src/cmp.c:196
 msgid ""
 "SKIP values may be followed by the following multiplicative suffixes:\n"
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
@@ -571,278 +572,278 @@ msgstr ""
 "                     ,M 1,048,576, MB 1,000,000 ,K 1024 ,kB 1000,\n"
 "  .T, P, E, Z, Y øåáò äàìä ïëå ,G 1,073,741,824 ,GB 1,000,000,000"
 
-#: src/cmp.c:195
+#: src/cmp.c:199
 #, fuzzy
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "             .éð÷ú èì÷ õåøòî àø÷ ,ïééåöî åðéà åà `-' åðéä FILE íà"
 
-#: src/cmp.c:196 src/diff.c:987 src/sdiff.c:221
+#: src/cmp.c:200 src/diff.c:1047 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr ""
 
-#: src/cmp.c:243
+#: src/cmp.c:247
 #, fuzzy, c-format
 msgid "invalid --bytes value '%s'"
 msgstr "--bytes ïééôàî øåáò `%s' éåâù êøò"
 
-#: src/cmp.c:269 src/diff.c:797 src/diff3.c:361 src/sdiff.c:567
+#: src/cmp.c:273 src/diff.c:857 src/diff3.c:368 src/sdiff.c:564
 #, fuzzy, c-format
 msgid "missing operand after '%s'"
 msgstr "`%s' éøçà øñç èðîåâøà"
 
-#: src/cmp.c:281 src/diff.c:799 src/diff3.c:363 src/sdiff.c:569
+#: src/cmp.c:285 src/diff.c:859 src/diff3.c:370 src/sdiff.c:566
 #, fuzzy, c-format
 msgid "extra operand '%s'"
 msgstr "`%s' éøçà øúåéî èðîåâøà"
 
-#: src/cmp.c:507
+#: src/cmp.c:521
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s-å %s íéöá÷ä ïéá %s úéá ,%s äøåùî ìçä éðåù\n"
 
-#: src/cmp.c:523
+#: src/cmp.c:537
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
 msgstr "%s-å %s íéöá÷ä ïéá %s úéá ,%s äøåùî ìçä %3o %s %3o %s éðåù\n"
 
-#: src/cmp.c:580
+#: src/cmp.c:594
 #, fuzzy, c-format
 msgid "cmp: EOF on %s which is empty\n"
 msgstr "cmp: %s õáå÷ óåñ\n"
 
-#: src/cmp.c:594
+#: src/cmp.c:608
 #, fuzzy, c-format
 msgid "cmp: EOF on %s after byte %s, line %s\n"
 msgstr "%s-å %s íéöá÷ä ïéá %s úéá ,%s äøåùî ìçä éðåù\n"
 
-#: src/cmp.c:595
+#: src/cmp.c:609
 #, fuzzy, c-format
 msgid "cmp: EOF on %s after byte %s, in line %s\n"
 msgstr "%s-å %s íéöá÷ä ïéá %s úéá ,%s äøåùî ìçä éðåù\n"
 
-#: src/cmp.c:601
+#: src/cmp.c:615
 #, fuzzy, c-format
 msgid "cmp: EOF on %s after byte %s\n"
 msgstr "cmp: %s õáå÷ óåñ\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:51
+#: src/diff.c:50
 msgid "Paul Eggert"
 msgstr ""
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:52
+#: src/diff.c:51
 msgid "Mike Haertel"
 msgstr ""
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:53
+#: src/diff.c:52
 msgid "David Hayes"
 msgstr ""
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:54
+#: src/diff.c:53
 msgid "Richard Stallman"
 msgstr ""
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:55
+#: src/diff.c:54
 msgid "Len Tower"
 msgstr ""
 
-#: src/diff.c:355
+#: src/diff.c:365
 #, fuzzy, c-format
 msgid "invalid context length '%s'"
 msgstr "`%s' éåâù øù÷ä êøåà"
 
-#: src/diff.c:438
+#: src/diff.c:487
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "åæ úëøòîá èìôä ãåîéòá äëéîú ïéà"
 
-#: src/diff.c:453 src/diff3.c:341
+#: src/diff.c:502 src/diff3.c:348
 #, c-format
 msgid "too many file label options"
 msgstr "íéöá÷ úéååú øåáò -L éðééôàî éãî øúåé"
 
-#: src/diff.c:530
+#: src/diff.c:579
 #, fuzzy, c-format
 msgid "invalid width '%s'"
 msgstr "`%s' éåâù äøåù áçåø"
 
-#: src/diff.c:534
+#: src/diff.c:583
 msgid "conflicting width options"
 msgstr "íéøúåñ äøåù áçåø éðééôàî"
 
-#: src/diff.c:559
+#: src/diff.c:608
 #, fuzzy, c-format
 msgid "invalid horizon length '%s'"
 msgstr "--horizon-lines ïééôàîá `%s' éåâù úåøåù øôñî"
 
-#: src/diff.c:615
+#: src/diff.c:664
 #, fuzzy, c-format
 msgid "invalid tabsize '%s'"
 msgstr "`%s' éåâù Tab áçåø"
 
-#: src/diff.c:619
+#: src/diff.c:668
 msgid "conflicting tabsize options"
 msgstr "íéøúåñ Tab áçåø éðééôàî"
 
-#: src/diff.c:774
+#: src/diff.c:834
 msgid "--from-file and --to-file both specified"
 msgstr "--to-file ïäå --from-file ïä úðééö"
 
-#: src/diff.c:893
+#: src/diff.c:953
 #, fuzzy
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "                   .ìéâø èîøåôá íééåðéù ÷ôä      --normal"
 
-#: src/diff.c:894
+#: src/diff.c:954
 #, fuzzy
 msgid "-q, --brief                   report only when files differ"
 msgstr "                   .íéðåù íéöá÷ä íà øåîà ÷ø  -q  --brief"
 
-#: src/diff.c:895
+#: src/diff.c:955
 #, fuzzy
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr ""
 "                        .íéäæ íéöá÷ ìò çååã  -s  --report-identical-files"
 
-#: src/diff.c:896
+#: src/diff.c:956
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
 
-#: src/diff.c:897
+#: src/diff.c:957
 #, fuzzy
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ".äøåùì (130 ç\"îøá) íéååú NUM øúåéä ìëì âöä  -w NUM  --width=NUM"
 
-#: src/diff.c:898
+#: src/diff.c:958
 #, fuzzy
 msgid "-e, --ed                      output an ed script"
 msgstr "             .ed êøåò øåáò úåàøåä úîéùø ÷ôä  -e  --ed"
 
-#: src/diff.c:899
+#: src/diff.c:959
 #, fuzzy
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "                    .RCS èîøåôá íééåðéù ÷ôä  -n  --rcs"
 
-#: src/diff.c:900
+#: src/diff.c:960
 msgid "-y, --side-by-side            output in two columns"
 msgstr ""
 
-#: src/diff.c:901
+#: src/diff.c:961
 #, fuzzy
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ".äøåùì (130 ç\"îøá) íéååú NUM øúåéä ìëì âöä  -w NUM  --width=NUM"
 
-#: src/diff.c:902
+#: src/diff.c:962
 #, fuzzy
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr "         .úéìàîùä úà ÷ø âöä ,úåäæ úåøåùä íà  -l  --left-column"
 
-#: src/diff.c:903
+#: src/diff.c:963
 #, fuzzy
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr ""
 "                    .úåäæ úåøåù ììë âéöú ìà  -s  --suppress-common-lines"
 
-#: src/diff.c:905
+#: src/diff.c:965
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr ""
 
-#: src/diff.c:906
+#: src/diff.c:966
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr ""
 
-#: src/diff.c:907
+#: src/diff.c:967
 msgid ""
 "    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
 msgstr ""
 
-#: src/diff.c:910
+#: src/diff.c:970
 #, fuzzy
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr "                .èìôá íéçååøì TAB éååú êåôä  -t  --expand-tabs"
 
-#: src/diff.c:911
+#: src/diff.c:971
 #, fuzzy
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr "             .äøåùä éðôì TAB \"ò íé-TAB øùé  -T  --initial-tab"
 
-#: src/diff.c:912
+#: src/diff.c:972
 #, fuzzy
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr "                  .(8 ç\"îøá) úåãåîò NUM ìë Tab  --tabsize=NUM"
 
-#: src/diff.c:913
+#: src/diff.c:973
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
 
-#: src/diff.c:914
+#: src/diff.c:974
 #, fuzzy
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr "                .ãåîéò íùì `pr' êøã èìô áúð  -l  --paginate"
 
-#: src/diff.c:916
+#: src/diff.c:976
 #, fuzzy
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr "            .éáéñøå÷ø ïôåàá úåé÷éú-úú äååùä  -r  --recursive"
 
-#: src/diff.c:917
+#: src/diff.c:977
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr ""
 
-#: src/diff.c:918
+#: src/diff.c:978
 #, fuzzy
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr "          .íé÷éø åéä åìéàë íéøñç íéöá÷á ìôè  -N  --new-file"
 
-#: src/diff.c:919
+#: src/diff.c:979
 #, fuzzy
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
 "  .íé÷éø åéä åìéàë íéøñç íéðåùàø íéöá÷á ìôè      --unidirectional-new-file"
 
-#: src/diff.c:920
+#: src/diff.c:980
 #, fuzzy
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ".íéöá÷ä úåîùá úåðè÷î úåìåãâ úåéúåà ìéãáú ìà  --ignore-file-name-case"
 
-#: src/diff.c:921
+#: src/diff.c:981
 #, fuzzy
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
 "   .íéöá÷ä úåîùá úåðè÷î úåìåãâ úåéúåà ìéãáú  --no-ignore-file-name-case"
 
-#: src/diff.c:922
+#: src/diff.c:982
 #, fuzzy
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr "  .PAT úéðáúì íéîéàúî íäéúåîùù íéöá÷ ìò âìã  -x PAT  --exclude=PAT"
 
-#: src/diff.c:923
+#: src/diff.c:983
 #, fuzzy
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
 "FILE-á úåéðáúì íéîéàúî íäéúåîùù íéöá÷ ìò âìã -X FILE  --exclude-from=FILE"
 
-#: src/diff.c:924
+#: src/diff.c:984
 #, fuzzy
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
 "             .FILE õáå÷á úåé÷éú úàååùä ìçúä  -S FILE  --starting-file=FILE"
 
-#: src/diff.c:925
+#: src/diff.c:985
 #, fuzzy
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
@@ -850,7 +851,7 @@ msgid ""
 msgstr ""
 ".äé÷éú úåéäì ìåëé FILE1 .íéèðîåâøàä øàù ìëì FILE1 äååùä  --from-file=FILE1"
 
-#: src/diff.c:927
+#: src/diff.c:987
 #, fuzzy
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
@@ -858,96 +859,96 @@ msgid ""
 msgstr ""
 "   .äé÷éú úåéäì ìåëé FILE2 .FILE2-ì íéèðîåâøàä ìë äååùä  --to-file=FILE2"
 
-#: src/diff.c:930
+#: src/diff.c:990
 #, fuzzy
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr ".íéöá÷ä ïëåúá úåðè÷î úåìåãâ úåéúåà ìéãáú ìà  -i  --ignore-case"
 
-#: src/diff.c:931
+#: src/diff.c:991
 #, fuzzy
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr ""
 "             .íéçååøì TAB ïéá íéìãáäî íìòúä  -E  --ignore-tab-expansion"
 
-#: src/diff.c:932
+#: src/diff.c:992
 #, fuzzy
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr "                         .íéçååøä ìëî íìòúä  -w  --ignore-all-space"
 
-#: src/diff.c:933
+#: src/diff.c:993
 #, fuzzy
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr "                .íéçååø úåîëá íéìãáäî íìòúä  -b  --ignore-space-change"
 
-#: src/diff.c:934
+#: src/diff.c:994
 #, fuzzy
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "                         .íéçååøä ìëî íìòúä  -w  --ignore-all-space"
 
-#: src/diff.c:935
+#: src/diff.c:995
 #, fuzzy
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr "            .úå÷éø íäéúåøåùù íééåðéùî íìòúä  -B  --ignore-blank-lines"
 
-#: src/diff.c:936
+#: src/diff.c:996
 #, fuzzy
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
 ".RE úéðáúì úåîéàúî íäéúåøåùù íééåðéùî íìòúä  -I RE --ignore-matching-lines=RE"
 
-#: src/diff.c:938
+#: src/diff.c:998
 #, fuzzy
 msgid "-a, --text                      treat all files as text"
 msgstr "                .èñ÷è éöá÷áë íéöá÷ä ìëá ìôè  -a  --text"
 
-#: src/diff.c:939
+#: src/diff.c:999
 #, fuzzy
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr "              .èì÷ úøåù ìë óåñî CR éååú ÷ìñ      --strip-trailing-cr"
 
-#: src/diff.c:941
+#: src/diff.c:1001
 #, fuzzy
 msgid "    --binary                    read and write data in binary mode"
 msgstr "                    .éøàðéá ïôåàá áåúëå àø÷      --binary"
 
-#: src/diff.c:944
+#: src/diff.c:1004
 #, fuzzy
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr "`#ifdef NAME'-á íééåðéù ãøôä ,áìåùî õáå÷ ÷ôä -D NAME  --ifdef=NAME"
 
-#: src/diff.c:945
+#: src/diff.c:1005
 #, fuzzy
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr ""
 "GFMT úøæòá GTYPE âåñî èì÷ úåöåá÷ èîøô êà ,ì\"ðë  --GTYPE-group-format=GFMT"
 
-#: src/diff.c:946
+#: src/diff.c:1006
 #, fuzzy
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr "               .LFMT úøæòá úåøåù èîøô êà ,ì\"ðë  --line-format=LFMT"
 
-#: src/diff.c:947
+#: src/diff.c:1007
 #, fuzzy
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr ""
 ".LFMT úøæòá LTYPE âåñî èì÷ úåøåù èîøô êà ,ì\"ðë  --LTYPE-group-format=LFMT"
 
-#: src/diff.c:948
+#: src/diff.c:1008
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
 msgstr ""
 
-#: src/diff.c:950
+#: src/diff.c:1010
 #, fuzzy
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr "  .`changed' åà LTYPE åîë GTYPE .`unchanged' åà `new' ,`old' àåä LTYPE"
 
-#: src/diff.c:951
+#: src/diff.c:1011
 #, fuzzy
 msgid ""
 "  GFMT (only) may contain:\n"
@@ -975,7 +976,7 @@ msgstr ""
 "                               F-1  E\n"
 "                               M+1  M"
 
-#: src/diff.c:963
+#: src/diff.c:1023
 #, fuzzy
 msgid ""
 "  LFMT (only) may contain:\n"
@@ -988,7 +989,7 @@ msgstr ""
 "       äøåùä óåñ åú èòîì äøåù ïëåú  %l\n"
 "èì÷ úøåù øåáò printf ïåðâñá úæåøçî  %[-][WIDTH][.[PREC]]{doxX}n"
 
-#: src/diff.c:967
+#: src/diff.c:1027
 #, fuzzy
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
@@ -1002,238 +1003,238 @@ msgstr ""
 "                         C ããåá åú  %c'C'\n"
 "             OOO éìè÷åà ãå÷ ìòá åú  %c'\\OOO'"
 
-#: src/diff.c:973
+#: src/diff.c:1033
 #, fuzzy
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr "            .íééåðéùä úöåá÷ úà ïéè÷äì ìãúùä  -d  --minimal"
 
-#: src/diff.c:974
+#: src/diff.c:1034
 #, fuzzy
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr ""
 ".íéöá÷ä íåéñå äìéçúá úåôúåùî úåøåù NUM øàùä          --horizon-lines=NUM"
 
-#: src/diff.c:975
+#: src/diff.c:1035
 #, fuzzy
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr "  .íé÷çåøîå íéðè÷ íééåðéùå íéìåãâ íéöá÷ çðä  -H  --speed-large-files"
 
-#: src/diff.c:976
+#: src/diff.c:1036
 msgid ""
 "    --color[=WHEN]       color output; WHEN is 'never', 'always', or "
 "'auto';\n"
 "                           plain --color means --color='auto'"
 msgstr ""
 
-#: src/diff.c:978
+#: src/diff.c:1038
 msgid ""
 "    --palette=PALETTE    the colors to use when --color is active; PALETTE "
 "is\n"
 "                           a colon-separated list of terminfo capabilities"
 msgstr ""
 
-#: src/diff.c:981
+#: src/diff.c:1041
 msgid "    --help               display this help and exit"
 msgstr ""
 
-#: src/diff.c:982
+#: src/diff.c:1042
 #, fuzzy
 msgid "-v, --version            output version information and exit"
 msgstr "                       .úéðëúä úñøéâ úà âöä  -v  --version"
 
-#: src/diff.c:984
+#: src/diff.c:1044
 #, fuzzy
 msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
 ".`FILE... DIR' åà `DIR FILE...' åà `DIR1 DIR2' åà `FILE1 FILE2' íä FILES"
 
-#: src/diff.c:985
+#: src/diff.c:1045
 #, fuzzy
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr ""
 "       .FILES ìò úåìáâî ïéà éæà ,--to-file åà --from-file ïééôàî ïåúð íà"
 
-#: src/diff.c:986 src/diff3.c:533 src/sdiff.c:220
+#: src/diff.c:1046 src/diff3.c:531 src/sdiff.c:219
 #, fuzzy
 msgid "If a FILE is '-', read standard input."
 msgstr ""
 "                                   .éð÷úä èì÷ä õøòî àø÷ ,`-' àåä FILE íà"
 
-#: src/diff.c:996
+#: src/diff.c:1056
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "%s [OPTION]... FILES   :ùåîéù ïôåà\n"
 
-#: src/diff.c:997
+#: src/diff.c:1057
 #, fuzzy
 msgid "Compare FILES line by line."
 msgstr ".äøåù äøåù íéöá÷ éðù äååùä"
 
-#: src/diff.c:1034
+#: src/diff.c:1094
 #, fuzzy, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "%s ïééôàî ìù íãå÷ êøò øúåñ `%s' êøò"
 
-#: src/diff.c:1047
+#: src/diff.c:1107
 #, c-format
 msgid "conflicting output style options"
 msgstr "èìô ïåðâñ ìù íéøúåñ íéðééôàî"
 
-#: src/diff.c:1063
+#: src/diff.c:1123
 #, fuzzy, c-format
 msgid "invalid color '%s'"
 msgstr "`%s' éåâù øù÷ä êøåà"
 
-#: src/diff.c:1119 src/diff.c:1329
+#: src/diff.c:1197 src/diff.c:1401
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "%s-á ÷ø àöîð %s\n"
 
-#: src/diff.c:1253
+#: src/diff.c:1325
 #, fuzzy
 msgid "cannot compare '-' to a directory"
 msgstr "äé÷éúì `-' úååùäì úåøùôà ïéà"
 
-#: src/diff.c:1288
+#: src/diff.c:1360
 msgid "-D option not supported with directories"
 msgstr "úåé÷éú øåáò -D ïééôàîá äëéîú ïéà"
 
-#: src/diff.c:1297
+#: src/diff.c:1369
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "%s-å %s :úåäæ úåé÷éú-úú\n"
 
-#: src/diff.c:1339 src/diff.c:1389
+#: src/diff.c:1411 src/diff.c:1461
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr "%s %s-ì %s %s úååùäì ïúéð àì\n"
 
-#: src/diff.c:1375
+#: src/diff.c:1447
 #, fuzzy, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "äæî äæ íéðåù `%s'-å `%s' íéöá÷ä\n"
 
-#: src/diff.c:1462
+#: src/diff.c:1534
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "íéäæ íðéä %s-å %s íéöá÷ä\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff3.c:43
+#: src/diff3.c:51
 #, fuzzy
 msgid "Randy Smith"
 msgstr ".Randy Smith é\"ò áúëð"
 
-#: src/diff3.c:356
+#: src/diff3.c:363
 #, c-format
 msgid "incompatible options"
 msgstr "íéøúåñ íéðééôàî"
 
-#: src/diff3.c:396
+#: src/diff3.c:403
 #, fuzzy
 msgid "'-' specified for more than one input file"
 msgstr "ãçà èì÷ õáå÷î øúåé øåáò `-' úðééö"
 
-#: src/diff3.c:447 src/diff3.c:1295 src/diff3.c:1698 src/diff3.c:1753
-#: src/sdiff.c:308 src/sdiff.c:846 src/sdiff.c:857
+#: src/diff3.c:445 src/diff3.c:1284 src/diff3.c:1683 src/diff3.c:1738
+#: src/sdiff.c:306 src/sdiff.c:843 src/sdiff.c:854
 msgid "read failed"
 msgstr "äàéø÷á äì÷ú"
 
-#: src/diff3.c:480
+#: src/diff3.c:478
 #, fuzzy
 msgid "-A, --show-all              output all changes, bracketing conflicts"
 msgstr "                .íéè÷éìôðå÷ ïîñ ,íééåðéùä ìë úà âöä  -A  --show-all"
 
-#: src/diff3.c:482
+#: src/diff3.c:480
 #, fuzzy
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
 msgstr "MYFILE êåú ìà YOURFILE-ì OLDFILE-î âåæéî àìì íééåðéù -e  --ed"
 
-#: src/diff3.c:484
+#: src/diff3.c:482
 #, fuzzy
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
 msgstr ""
 "             .íéè÷éìôðå÷ ïîñ ,âåæéî àìì íééåðéù âöä  -E  --show-overlap"
 
-#: src/diff3.c:485
+#: src/diff3.c:483
 #, fuzzy
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
 msgstr "               .âåæéî àììå íéôôåç íðéàù íééåðéù âöä  -3  --easy-only"
 
-#: src/diff3.c:486
+#: src/diff3.c:484
 #, fuzzy
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
 msgstr ""
 "                                .íéôôåç íééåðéù âöä  -x  --overlap-only"
 
-#: src/diff3.c:487
+#: src/diff3.c:485
 msgid "-X                          like -x, but bracket conflicts"
 msgstr ""
 
-#: src/diff3.c:488
+#: src/diff3.c:486
 #, fuzzy
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
 msgstr "            .ed úåãå÷ô íåéñá `q'-å `w' úåãå÷ô áåúë   -i"
 
-#: src/diff3.c:490
+#: src/diff3.c:488
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
 msgstr ""
 
-#: src/diff3.c:493
+#: src/diff3.c:491
 #, fuzzy
 msgid "-a, --text                  treat all files as text"
 msgstr "                .èñ÷è éöá÷áë íéöá÷ä ìëá ìôè  -a  --text"
 
-#: src/diff3.c:494
+#: src/diff3.c:492
 #, fuzzy
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
 msgstr "              .èì÷ úøåù ìë óåñî CR éååú ÷ìñ      --strip-trailing-cr"
 
-#: src/diff3.c:495
+#: src/diff3.c:493
 #, fuzzy
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
 msgstr "             .äøåùä éðôì TAB \"ò íé-TAB øùé  -T  --initial-tab"
 
-#: src/diff3.c:496
+#: src/diff3.c:494
 #, fuzzy
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
 msgstr ""
 "                 .íéöá÷ úàåùäì PROGRAM úéðëúá ùîúùä  --diff-program=PROGRAM"
 
-#: src/diff3.c:497
+#: src/diff3.c:495
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
 msgstr ""
 
-#: src/diff3.c:500
+#: src/diff3.c:498
 msgid "    --help                  display this help and exit"
 msgstr ""
 
-#: src/diff3.c:501
+#: src/diff3.c:499
 #, fuzzy
 msgid "-v, --version               output version information and exit"
 msgstr "                       .úéðëúä úñøéâ úà âöä  -v  --version"
 
-#: src/diff3.c:510
+#: src/diff3.c:508
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
 msgstr "%s [OPTION]... MYFILE OLDFILE YOURFILE   :ùåîéù ïôåà\n"
 
-#: src/diff3.c:512
+#: src/diff3.c:510
 msgid "Compare three files line by line."
 msgstr ".úéáì úéá íéöá÷ äùìù äååùä"
 
-#: src/diff3.c:522
+#: src/diff3.c:520
 msgid ""
 "\n"
 "The default output format is a somewhat human-readable representation of\n"
@@ -1247,54 +1248,54 @@ msgid ""
 "robust than using ed.\n"
 msgstr ""
 
-#: src/diff3.c:534
+#: src/diff3.c:532
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
 msgstr ""
 
-#: src/diff3.c:727
+#: src/diff3.c:725
 msgid "internal error: screwup in format of diff blocks"
 msgstr "diff éòè÷ èîøåôá äçéøî :úéîéðô äðëú úàéâù"
 
-#: src/diff3.c:1022
+#: src/diff3.c:1015
 #, c-format
 msgid "%s: diff failed: "
 msgstr "%s é\"ò diff úìòôäá äì÷ú :"
 
-#: src/diff3.c:1044
+#: src/diff3.c:1037
 msgid "internal error: invalid diff type in process_diff"
 msgstr "process_diff úééö÷ðåôá éåðéù ìù éåâù âåñ :úéîéðô äðëú úàéâù"
 
-#: src/diff3.c:1069
+#: src/diff3.c:1060
 msgid "invalid diff format; invalid change separator"
 msgstr "äéåâù íééåðéù úãøôä úæåøçî :éåðéù ìù éåâù èîøåô"
 
-#: src/diff3.c:1305
+#: src/diff3.c:1294
 msgid "invalid diff format; incomplete last line"
 msgstr "äîìù äðéà äðåøçà äøåù :éåðéù ìù éåâù èîøåô"
 
-#: src/diff3.c:1329 src/sdiff.c:276 src/util.c:969
+#: src/diff3.c:1318 src/sdiff.c:274 src/util.c:1069
 #, fuzzy, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "äàöîð àì `%s' úéðëú-úú"
 
-#: src/diff3.c:1354
+#: src/diff3.c:1343
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "äøåù úìéçúá íééåâù íéååú :éåðéù ìù éåâù èîøåô"
 
-#: src/diff3.c:1427
+#: src/diff3.c:1416
 msgid "internal error: invalid diff type passed to output"
 msgstr "èìô éëøöì éåðéù ìù éåâù âåñ :úéîéðô äðëú úàéâù"
 
-#: src/diff3.c:1700 src/diff3.c:1757
+#: src/diff3.c:1685 src/diff3.c:1742
 msgid "input file shrank"
 msgstr "÷îèöä èì÷ õáå÷"
 
-#: src/dir.c:156
+#: src/dir.c:154
 #, fuzzy, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "`%s'-å `%s' íéöá÷ úåîù úååùäì ïúéð àì"
 
-#: src/dir.c:225
+#: src/dir.c:223
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr ""
@@ -1305,135 +1306,135 @@ msgstr ""
 msgid "Thomas Lord"
 msgstr ".Thomas Lord é\"ò áúëð"
 
-#: src/sdiff.c:174
+#: src/sdiff.c:173
 #, fuzzy
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
 msgstr "            .FILE-ì èìô ,úéáéè÷àøèðéà äìåòô  -o FILE  --output=FILE"
 
-#: src/sdiff.c:176
+#: src/sdiff.c:175
 #, fuzzy
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
 msgstr "    .úåðè÷å úåìåãâ úåéúåà ïéá íéìãáäî íìòúä  -i  --ignore-case"
 
-#: src/sdiff.c:177
+#: src/sdiff.c:176
 #, fuzzy
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
 msgstr ""
 "             .íéçååøì TAB ïéá íéìãáäî íìòúä  -E  --ignore-tab-expansion"
 
-#: src/sdiff.c:178
+#: src/sdiff.c:177
 #, fuzzy
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
 msgstr "                         .íéçååøä ìëî íìòúä  -w  --ignore-all-space"
 
-#: src/sdiff.c:179
+#: src/sdiff.c:178
 #, fuzzy
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
 msgstr "                .íéçååø úåîëá íéìãáäî íìòúä  -b  --ignore-space-change"
 
-#: src/sdiff.c:180
+#: src/sdiff.c:179
 #, fuzzy
 msgid "-W, --ignore-all-space       ignore all white space"
 msgstr "                .øçà ïáì çèùå íéçååøî íìòúä  -W  --ignore-all-space"
 
-#: src/sdiff.c:181
+#: src/sdiff.c:180
 #, fuzzy
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
 msgstr "            .úå÷éø íäéúåøåùù íééåðéùî íìòúä  -B  --ignore-blank-lines"
 
-#: src/sdiff.c:182
+#: src/sdiff.c:181
 #, fuzzy
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
 ".RE úéðáúì úåîéàúî íäéúåøåùù íééåðéùî íìòúä  -I RE --ignore-matching-lines=RE"
 
-#: src/sdiff.c:183
+#: src/sdiff.c:182
 #, fuzzy
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
 msgstr "              .èì÷ úøåù ìë óåñî CR éååú ÷ìñ      --strip-trailing-cr"
 
-#: src/sdiff.c:184
+#: src/sdiff.c:183
 #, fuzzy
 msgid "-a, --text                   treat all files as text"
 msgstr "                .èñ÷è éöá÷áë íéöá÷ä ìëá ìôè  -a  --text"
 
-#: src/sdiff.c:186
+#: src/sdiff.c:185
 #, fuzzy
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
 msgstr ".äøåùì (130 ç\"îøá) íéååú NUM øúåéä ìëì âöä  -w NUM  --width=NUM"
 
-#: src/sdiff.c:187
+#: src/sdiff.c:186
 #, fuzzy
 msgid ""
 "-l, --left-column            output only the left column of common lines"
 msgstr "         .úéìàîùä úà ÷ø âöä ,úåäæ úåøåùä íà  -l  --left-column"
 
-#: src/sdiff.c:188
+#: src/sdiff.c:187
 #, fuzzy
 msgid "-s, --suppress-common-lines  do not output common lines"
 msgstr ""
 "                    .úåäæ úåøåù ììë âéöú ìà  -s  --suppress-common-lines"
 
-#: src/sdiff.c:190
+#: src/sdiff.c:189
 #, fuzzy
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
 msgstr "                .èìôá íéçååøì TAB éååú êåôä  -t  --expand-tabs"
 
-#: src/sdiff.c:191
+#: src/sdiff.c:190
 #, fuzzy
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
 msgstr "                  .(8 ç\"îøá) úåãåîò NUM ìë Tab  --tabsize=NUM"
 
-#: src/sdiff.c:193
+#: src/sdiff.c:192
 #, fuzzy
 msgid "-d, --minimal                try hard to find a smaller set of changes"
 msgstr "            .íééåðéùä úöåá÷ úà ïéè÷äì ìãúùä  -d  --minimal"
 
-#: src/sdiff.c:194
+#: src/sdiff.c:193
 #, fuzzy
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
 msgstr "  .íé÷çåøîå íéðè÷ íééåðéùå íéìåãâ íéöá÷ çðä  -H  --speed-large-files"
 
-#: src/sdiff.c:195
+#: src/sdiff.c:194
 #, fuzzy
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
 msgstr ""
 "                 .íéöá÷ úàåùäì PROGRAM úéðëúá ùîúùä  --diff-program=PROGRAM"
 
-#: src/sdiff.c:197
+#: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
 msgstr ""
 
-#: src/sdiff.c:198
+#: src/sdiff.c:197
 #, fuzzy
 msgid "-v, --version                output version information and exit"
 msgstr "                       .úéðëúä úñøéâ úà âöä  -v  --version"
 
-#: src/sdiff.c:207
+#: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
 msgstr "%s [OPTION]... FILE1 FILE2  :ùåîéù ïôåà\n"
 
-#: src/sdiff.c:209
+#: src/sdiff.c:208
 #, fuzzy
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
 msgstr ".äæ ãöá äæ íéöá÷ ïéá íééåðéù ìù âåæéî"
 
-#: src/sdiff.c:330
+#: src/sdiff.c:328
 msgid "cannot interactively merge standard input"
 msgstr "éáéè÷àøèðéà ïôåàá éð÷ú èì÷ õåøò âæîì úåøùôà ïéà"
 
-#: src/sdiff.c:597
+#: src/sdiff.c:594
 msgid "both files to be compared are directories"
 msgstr "úåé÷éú íðéä äàååùäì íéöá÷ä éðù"
 
-#: src/sdiff.c:820
+#: src/sdiff.c:817
 #, fuzzy
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
@@ -1458,12 +1459,12 @@ msgstr ""
 "v   --                    ïúâöä êåú úåôúåùî úåøåù ÷úòä\n"
 "q   --  äàéöé\n"
 
-#: src/util.c:662
+#: src/util.c:755
 #, fuzzy, c-format
 msgid "unrecognized prefix: %s"
 msgstr "%s úéðëú øåáò `--%s' ääåæî-éúìá ïééôàî\n"
 
-#: src/util.c:692
+#: src/util.c:785
 #, c-format
 msgid "unparsable value for --palette"
 msgstr ""
index b1528ae..501fd80 100644 (file)
Binary files a/po/hr.gmo and b/po/hr.gmo differ
index 6a2775e..e9043b1 100644 (file)
--- a/po/hr.po
+++ b/po/hr.po
@@ -3,47 +3,47 @@
 # This file is distributed under the same license as the diffutils package.
 #
 # Tomislav Krznar <tomislav.krznar@gmail.com>, 2012.
-# Božidar Putanec <bozidarp@yahoo.com>, 2019, 2021.
+# Božidar Putanec <bozidarp@yahoo.com>, 2019, 2021, 2022.
 msgid ""
 msgstr ""
-"Project-Id-Version: GNU diffutils 3.7.41\n"
+"Project-Id-Version: GNU diffutils 3.8.43\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2021-08-01 18:56-0700\n"
-"PO-Revision-Date: 2021-07-20 12:48+0200\n"
+"POT-Creation-Date: 2023-05-21 01:51-0700\n"
+"PO-Revision-Date: 2023-01-01 11:49-0800\n"
 "Last-Translator: Božidar Putanec <bozidarp@yahoo.com>\n"
 "Language-Team: Croatian <lokalizacija@linux.hr>\n"
 "Language: hr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: Poedit 3.0\n"
+"X-Generator: Poedit 3.2.2\n"
 
-#: lib/argmatch.c:132
+#: lib/argmatch.c:145
 #, c-format
 msgid "invalid argument %s for %s"
 msgstr "nevaljani argument %s for %s"
 
-#: lib/argmatch.c:133
+#: lib/argmatch.c:146
 #, c-format
 msgid "ambiguous argument %s for %s"
-msgstr "višeznačni argument %s za %s"
+msgstr "dvosmisleni argument %s za %s"
 
-#: lib/argmatch.c:152 lib/argmatch.h:223
+#: lib/argmatch.c:165 lib/argmatch.h:242
 msgid "Valid arguments are:"
 msgstr "Valjani argumenti su:"
 
-#: lib/c-stack.c:187
+#: lib/c-stack.c:186
 msgid "program error"
-msgstr "programska greška"
+msgstr "greška u programu"
 
-#: lib/c-stack.c:188
+#: lib/c-stack.c:187
 msgid "stack overflow"
-msgstr "prelijevanje stȏga"
+msgstr "prekoračenje stȏga"
 
-#: lib/error.c:195
+#: lib/error.c:193
 msgid "Unknown system error"
 msgstr "Nepoznata greška sustava"
 
@@ -81,11 +81,11 @@ msgstr "nezavisni memorijski objekt"
 
 #: lib/file-type.c:66
 msgid "block special file"
-msgstr "specijalna blokovska datoteka (blok uređaj)"
+msgstr "blok specijalna datoteka (blok uređaj)"
 
 #: lib/file-type.c:69
 msgid "character special file"
-msgstr "(specijalna) znak datoteka (bajt uređaj)"
+msgstr "znak specijalna datoteka (bajt uređaj)"
 
 #: lib/file-type.c:72
 msgid "contiguous data"
@@ -101,11 +101,11 @@ msgstr "vrata"
 
 #: lib/file-type.c:81
 msgid "multiplexed block special file"
-msgstr "multipleksirana (specijalna) blok datoteka (blok-uređaj)"
+msgstr "multipleksirana blok specijalna datoteka (blok-uređaj)"
 
 #: lib/file-type.c:84
 msgid "multiplexed character special file"
-msgstr "multipleksirana (specijalna) znak datoteka (bajt uređaj)"
+msgstr "multipleksirana znak speijalna datoteka (bajt uređaj)"
 
 #: lib/file-type.c:87
 msgid "multiplexed file"
@@ -117,7 +117,7 @@ msgstr "imenovana datoteka"
 
 #: lib/file-type.c:93
 msgid "network special file"
-msgstr "(specijalna) mrežna datoteka (mrežni uređaj)"
+msgstr "mrežna specijalna datoteka (mrežni uređaj)"
 
 #: lib/file-type.c:96
 msgid "migrated file with data"
@@ -146,12 +146,12 @@ msgstr "čudna datoteka"
 #: lib/getopt.c:278
 #, c-format
 msgid "%s: option '%s%s' is ambiguous\n"
-msgstr "%s: opcija „-%s%s“ nije jednoznačna\n"
+msgstr "%s: opcija „-%s%s“ je dvosmislen\n"
 
 #: lib/getopt.c:284
 #, c-format
 msgid "%s: option '%s%s' is ambiguous; possibilities:"
-msgstr "%s: opcija „%s%s“ nije jednoznačna; mogućnosti su:"
+msgstr "%s: opcija „%s%s“ je dvosmislena; mogućnosti su:"
 
 #: lib/getopt.c:319
 #, c-format
@@ -199,83 +199,83 @@ msgstr "%s: opcija zahtijeva argument -- „%c“\n"
 #. If you don't know what to put here, please see
 #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:355
+#: lib/quotearg.c:354
 msgid "`"
 msgstr "„"
 
-#: lib/quotearg.c:356
+#: lib/quotearg.c:355
 msgid "'"
 msgstr "“"
 
-#: lib/regcomp.c:135
+#: lib/regcomp.c:122
 msgid "Success"
 msgstr "Uspjeh"
 
-#: lib/regcomp.c:138
+#: lib/regcomp.c:125
 msgid "No match"
 msgstr "Nema podudaranja"
 
-#: lib/regcomp.c:141
+#: lib/regcomp.c:128
 msgid "Invalid regular expression"
 msgstr "Nevaljani regularni izraz"
 
-#: lib/regcomp.c:144
+#: lib/regcomp.c:131
 msgid "Invalid collation character"
 msgstr "Nevaljani znak za razvrstavanje"
 
-#: lib/regcomp.c:147
+#: lib/regcomp.c:134
 msgid "Invalid character class name"
 msgstr "Nevaljano ime klase znakova"
 
-#: lib/regcomp.c:150
+#: lib/regcomp.c:137
 msgid "Trailing backslash"
-msgstr "Zaostala obratna kosa crta (backslash)"
+msgstr "Zaostala obratna kosa crta („\\“, backslash)"
 
-#: lib/regcomp.c:153
+#: lib/regcomp.c:140
 msgid "Invalid back reference"
 msgstr "Nevaljana povratna referencija"
 
-#: lib/regcomp.c:156
+#: lib/regcomp.c:143
 msgid "Unmatched [, [^, [:, [., or [="
 msgstr "Nesparena [, [^, [:, [., ili [="
 
-#: lib/regcomp.c:159
+#: lib/regcomp.c:146
 msgid "Unmatched ( or \\("
 msgstr "Nesparena ( ili \\("
 
-#: lib/regcomp.c:162
+#: lib/regcomp.c:149
 msgid "Unmatched \\{"
 msgstr "Nesparena \\{"
 
-#: lib/regcomp.c:165
+#: lib/regcomp.c:152
 msgid "Invalid content of \\{\\}"
-msgstr "Nevaljani sadržaj \\{\\}"
+msgstr "Nevaljani sadržaj \\{\\}"
 
-#: lib/regcomp.c:168
+#: lib/regcomp.c:155
 msgid "Invalid range end"
 msgstr "Nevaljani kraj raspona"
 
-#: lib/regcomp.c:171
+#: lib/regcomp.c:158
 msgid "Memory exhausted"
 msgstr "Nema dovoljno memorije"
 
-#: lib/regcomp.c:174
+#: lib/regcomp.c:161
 msgid "Invalid preceding regular expression"
-msgstr "Nevaljani prethodni regularni izraz"
+msgstr "Prethodni regularni izraz nije valjan"
 
-#: lib/regcomp.c:177
+#: lib/regcomp.c:164
 msgid "Premature end of regular expression"
 msgstr "Prerani kraj regularnog izraza"
 
-#: lib/regcomp.c:180
+#: lib/regcomp.c:167
 msgid "Regular expression too big"
 msgstr "Regularni izraz je prevelik"
 
-#: lib/regcomp.c:183
+#: lib/regcomp.c:170
 msgid "Unmatched ) or \\)"
 msgstr "Nesparena ) ili \\)"
 
-#: lib/regcomp.c:676
+#: lib/regcomp.c:650
 msgid "No previous regular expression"
 msgstr "Nema prethodnog regularnog izraza"
 
@@ -473,17 +473,17 @@ msgstr "Mrežna stranica za %s: <%s>\n"
 msgid "General help using GNU software: <%s>\n"
 msgstr "Općenita pomoć za korištenje GNU softvera: <%s>\n"
 
-#: src/analyze.c:454 src/diff.c:1406
+#: src/analyze.c:455 src/diff.c:1478
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Datoteke %s i %s su različite\n"
 
-#: src/analyze.c:455
+#: src/analyze.c:456
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "Binarne datoteke %s i %s se razlikuju\n"
 
-#: src/analyze.c:706 src/diff3.c:1470 src/util.c:1254
+#: src/analyze.c:707 src/diff3.c:1457 src/util.c:1354
 msgid "No newline at end of file"
 msgstr "Nema znaka za kraj retka (LF) na kraju datoteke"
 
@@ -497,40 +497,41 @@ msgstr "Torbjorn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:120 src/diff.c:879 src/diff3.c:467 src/sdiff.c:160
+#: src/cmp.c:124 src/diff.c:939 src/diff3.c:465 src/sdiff.c:159
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Pokušajte s „%s --help“ za pomoć i više informacija."
 
-#: src/cmp.c:138
+#: src/cmp.c:142
 #, c-format
 msgid "invalid --ignore-initial value '%s'"
 msgstr "nevaljana vrijednost „%s“ za --ignore-initial"
 
-#: src/cmp.c:148
+#: src/cmp.c:152
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr "opcije -l i -s nisu kompatibilne"
 
-#: src/cmp.c:156 src/diff.c:887 src/diff3.c:474 src/sdiff.c:168 src/sdiff.c:316
-#: src/sdiff.c:323 src/sdiff.c:876 src/util.c:852 src/util.c:952 src/util.c:959
+#: src/cmp.c:160 src/diff.c:947 src/diff3.c:472 src/sdiff.c:167 src/sdiff.c:314
+#: src/sdiff.c:321 src/sdiff.c:873 src/util.c:952 src/util.c:1052
+#: src/util.c:1059
 msgid "write failed"
 msgstr "pisanje nije uspjelo"
 
-#: src/cmp.c:158 src/diff.c:889 src/diff.c:1471 src/diff3.c:476 src/sdiff.c:170
+#: src/cmp.c:162 src/diff.c:949 src/diff.c:1543 src/diff3.c:474 src/sdiff.c:169
 msgid "standard output"
 msgstr "standardni izlaz"
 
-#: src/cmp.c:162
+#: src/cmp.c:166
 msgid "-b, --print-bytes          print differing bytes"
 msgstr "-b, --print-bytes          ispiše različite bajtove"
 
-#: src/cmp.c:163
+#: src/cmp.c:167
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
 msgstr ""
 "-i, --ignore-initial=BROJ         preskoči prvih BROJ bajtova oba ulaza"
 
-#: src/cmp.c:164
+#: src/cmp.c:168
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
@@ -538,40 +539,40 @@ msgstr ""
 "-i, --ignore-initial=SKIP1:SKIP2  preskoči prvih SKIP1 bajtova DATOTEKE1\n"
 "                                      i prvih SKIP2 bajtova DATOTEKE2"
 
-#: src/cmp.c:166
+#: src/cmp.c:170
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
 msgstr ""
 "-l, --verbose              pokaže poziciju i vrijednost različitih bajtova"
 
-#: src/cmp.c:167
+#: src/cmp.c:171
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
 msgstr "-n, --bytes=BROJ           usporedi ne više od BROJ bajtova"
 
-#: src/cmp.c:168
+#: src/cmp.c:172
 msgid "-s, --quiet, --silent      suppress all normal output"
 msgstr ""
 "-s, --quiet, --silent      izostavi normalni izlaz (ispiše samo status "
 "izlaza)"
 
-#: src/cmp.c:169
+#: src/cmp.c:173
 msgid "    --help                 display this help and exit"
 msgstr "    --help                 pokaže ovu pomoć i iziđe"
 
-#: src/cmp.c:170
+#: src/cmp.c:174
 msgid "-v, --version              output version information and exit"
-msgstr "-v, --version              informacije o inačici ovog programa"
+msgstr "-v, --version              informira o inačici ovog programa i iziđe"
 
-#: src/cmp.c:179
+#: src/cmp.c:183
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
 msgstr "Uporaba: %s [OPCIJA]... DATOTEKA1 [DATOTEKA2 [SKIP1 [SKIP2]]]\n"
 
-#: src/cmp.c:181
+#: src/cmp.c:185
 msgid "Compare two files byte by byte."
 msgstr "Usporedi dvije datoteke bajt po bajt."
 
-#: src/cmp.c:183
+#: src/cmp.c:187
 msgid ""
 "The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
 "at the beginning of each file (zero by default)."
@@ -579,13 +580,12 @@ msgstr ""
 "Neobvezne vrijednosti SKIP1 i SKIP2 specificiraju broj bajtova koje treba\n"
 "preskočiti od početka svake datoteke (zadano 0)."
 
-#: src/cmp.c:186 src/diff.c:999 src/diff3.c:514 src/sdiff.c:211
+#: src/cmp.c:190 src/diff.c:1059 src/diff3.c:512 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
-msgstr ""
-"Obvezni argumenti dugačkih opcija obvezni su također i za kratke opcije.\n"
+msgstr "Obvezni argumenti za duge opcije, obvezni su i za kratke opcije.\n"
 
-#: src/cmp.c:192
+#: src/cmp.c:196
 msgid ""
 "SKIP values may be followed by the following multiplicative suffixes:\n"
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
@@ -595,192 +595,192 @@ msgstr ""
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
 "GB 1,000,000,000, G 1,073,741,824, itd. za T, P, E, Z, Y."
 
-#: src/cmp.c:195
+#: src/cmp.c:199
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "Ako DATOTEKA nije navedena ili je „-“, čita standardni ulaz."
 
-#: src/cmp.c:196 src/diff.c:987 src/sdiff.c:221
+#: src/cmp.c:200 src/diff.c:1047 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr ""
 "Izlazni status je 0 ako su ulazi jednaki, 1 ako su različiti, 2 pri greški."
 
-#: src/cmp.c:243
+#: src/cmp.c:247
 #, c-format
 msgid "invalid --bytes value '%s'"
 msgstr "nevaljana vrijednost „%s“ za --bytes"
 
-#: src/cmp.c:269 src/diff.c:797 src/diff3.c:361 src/sdiff.c:567
+#: src/cmp.c:273 src/diff.c:857 src/diff3.c:368 src/sdiff.c:564
 #, c-format
 msgid "missing operand after '%s'"
-msgstr "nedostaje operand iza „%s“"
+msgstr "nema operanda iza „%s“"
 
-#: src/cmp.c:281 src/diff.c:799 src/diff3.c:363 src/sdiff.c:569
+#: src/cmp.c:285 src/diff.c:859 src/diff3.c:370 src/sdiff.c:566
 #, c-format
 msgid "extra operand '%s'"
 msgstr "suvišni operand „%s“"
 
-#: src/cmp.c:507
+#: src/cmp.c:521
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s se razlikuju: bajt %s, redak %s\n"
 
-#: src/cmp.c:523
+#: src/cmp.c:537
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
 msgstr "%s %s se razlikuju: bajt %s, redak %s je %3o %s %3o %s\n"
 
-#: src/cmp.c:580
+#: src/cmp.c:594
 #, c-format
 msgid "cmp: EOF on %s which is empty\n"
 msgstr "cmp: kraj datoteke (EOF) u %s koji je prazan\n"
 
-#: src/cmp.c:594
+#: src/cmp.c:608
 #, c-format
 msgid "cmp: EOF on %s after byte %s, line %s\n"
 msgstr "cmp: kraj datoteke (EOF) u %s iza bajta %s, redak %s\n"
 
-#: src/cmp.c:595
+#: src/cmp.c:609
 #, c-format
 msgid "cmp: EOF on %s after byte %s, in line %s\n"
 msgstr "cmp: kraj datoteke (EOF) u %s iza bajta %s, u retku %s\n"
 
-#: src/cmp.c:601
+#: src/cmp.c:615
 #, c-format
 msgid "cmp: EOF on %s after byte %s\n"
 msgstr "cmp: kraj datoteke (EOF) u %s iza bajta %s\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:51
+#: src/diff.c:50
 msgid "Paul Eggert"
 msgstr "Paul Eggert"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:52
+#: src/diff.c:51
 msgid "Mike Haertel"
 msgstr "Mike Haertel"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:53
+#: src/diff.c:52
 msgid "David Hayes"
 msgstr "David Hayes"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:54
+#: src/diff.c:53
 msgid "Richard Stallman"
 msgstr "Richard Stallman"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:55
+#: src/diff.c:54
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:355
+#: src/diff.c:365
 #, c-format
 msgid "invalid context length '%s'"
 msgstr "nevaljana duljina konteksta „%s“"
 
-#: src/diff.c:438
+#: src/diff.c:487
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "paginacija nije podržana na ovom računalu"
 
-#: src/diff.c:453 src/diff3.c:341
+#: src/diff.c:502 src/diff3.c:348
 #, c-format
 msgid "too many file label options"
 msgstr "previše opcija datotečnih oznaka (label)"
 
-#: src/diff.c:530
+#: src/diff.c:579
 #, c-format
 msgid "invalid width '%s'"
 msgstr "nevaljana širina „%s“"
 
-#: src/diff.c:534
+#: src/diff.c:583
 msgid "conflicting width options"
 msgstr "konfliktne opcije za širinu"
 
-#: src/diff.c:559
+#: src/diff.c:608
 #, c-format
 msgid "invalid horizon length '%s'"
 msgstr "nevaljana duljina „%s“ za horizon"
 
-#: src/diff.c:615
+#: src/diff.c:664
 #, c-format
 msgid "invalid tabsize '%s'"
 msgstr "nevaljana širina „%s“ za tab(ulator)"
 
-#: src/diff.c:619
+#: src/diff.c:668
 msgid "conflicting tabsize options"
 msgstr "konfliktne opcije za širinu tab(ulatora)"
 
-#: src/diff.c:774
+#: src/diff.c:834
 msgid "--from-file and --to-file both specified"
 msgstr "specificirani su --from-file i --to-file"
 
-#: src/diff.c:893
+#: src/diff.c:953
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "    --normal                  prikaže normalni diff (zadano)"
 
-#: src/diff.c:894
+#: src/diff.c:954
 msgid "-q, --brief                   report only when files differ"
 msgstr "-q, --brief                   izvijesti samo kad se datoteke razlikuju"
 
-#: src/diff.c:895
+#: src/diff.c:955
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr "-s, --report-identical-files  izvijesti kad su datoteke jednake"
 
-#: src/diff.c:896
+#: src/diff.c:956
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
 "-c, -C NUM, --context[=BROJ]  pokaže BROJ (zadano 3) retka\n"
 "                                kopiranog konteksta"
 
-#: src/diff.c:897
+#: src/diff.c:957
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
 "-u, -U NUM, --unified[=BROJ]  pokaže BROJ (zadano 3) unificiranog konteksta"
 
-#: src/diff.c:898
+#: src/diff.c:958
 msgid "-e, --ed                      output an ed script"
 msgstr "-e, --ed                      generira i prikaže ed-script"
 
-#: src/diff.c:899
+#: src/diff.c:959
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n, --rcs                     prikaže diff u RCS formatu"
 
-#: src/diff.c:900
+#: src/diff.c:960
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side            prikaz u dva stupca"
 
-#: src/diff.c:901
+#: src/diff.c:961
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
 "-W, --width=BROJ              prikaže ne više od BROJ (zadano 130)\n"
 "                                znakova po retku"
 
-#: src/diff.c:902
+#: src/diff.c:962
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr ""
 "    --left-column             pokaže samo lijevi stupac kad su redci jednaki"
 
-#: src/diff.c:903
+#: src/diff.c:963
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "    --suppress-common-lines   ne prikazuje jednake retke"
 
-#: src/diff.c:905
+#: src/diff.c:965
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr ""
 "-p, --show-c-function         pokaže u kojoj C funkcije je svaka promjena"
 
-#: src/diff.c:906
+#: src/diff.c:966
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr ""
 "-F, --show-function-line=RE   pokaže najnoviji redak podudaran s RE (regexp)"
 
-#: src/diff.c:907
+#: src/diff.c:967
 msgid ""
 "    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
@@ -788,83 +788,82 @@ msgstr ""
 "    --label LABEL             koristi LABEL umjesto imena i vremenskog žiga\n"
 "                                datoteke (može se ponavljati)"
 
-#: src/diff.c:910
+#: src/diff.c:970
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr "-t, --expand-tabs             na izlazu proširi tab(ulatore) u razmake"
 
-#: src/diff.c:911
+#: src/diff.c:971
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr ""
 "-T, --initial-tab             poravna umetanjem tab(ulatora) na početak retka"
 
-#: src/diff.c:912
+#: src/diff.c:972
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=BROJ            tabulacija svakih BROJ (zadano 8) stupaca"
 
-#: src/diff.c:913
+#: src/diff.c:973
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
 "    --suppress-blank-empty    izostavi razmak ili tab ispred\n"
 "                                praznih izlaznih redaka"
 
-#: src/diff.c:914
+#: src/diff.c:974
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr "-l, --paginate                proslijedi izlaz na paginaciju kroz „pr“"
 
-#: src/diff.c:916
+#: src/diff.c:976
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
-msgstr ""
-"-r, --recursive                 rekurzivno uspoređuje sve poddirektorije"
+msgstr "-r, --recursive               rekurzivno uspoređuje sve poddirektorije"
 
-#: src/diff.c:917
+#: src/diff.c:977
 msgid "    --no-dereference            don't follow symbolic links"
-msgstr "    --no-dereference            ne slijedi simboličke poveznice"
+msgstr "    --no-dereference          ne slijedi simboličke poveznice"
 
-#: src/diff.c:918
+#: src/diff.c:978
 msgid "-N, --new-file                  treat absent files as empty"
-msgstr "-N, --new-file                  tretira odsutne datoteke kao prazne"
+msgstr "-N, --new-file                tretira odsutne datoteke kao prazne"
 
-#: src/diff.c:919
+#: src/diff.c:979
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
-"    --unidirectional-new-file   tretira samo datoteke odsutne\n"
-"                                  u prvom direktoriju kao prazne"
+"    --unidirectional-new-file  tretira samo datoteke odsutne\n"
+"                                 u prvom direktoriju kao prazne"
 
-#: src/diff.c:920
+#: src/diff.c:980
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ""
-"    --ignore-file-name-case     ignorira veličinu slova pri\n"
-"                                  uspoređivanju imena datoteka"
+"    --ignore-file-name-case    zanemari veličinu slova pri\n"
+"                                 uspoređivanju imena datoteka"
 
-#: src/diff.c:921
+#: src/diff.c:981
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
-"    --no-ignore-file-name-case  ne ignorira veličinu slova\n"
+"    --no-ignore-file-name-case  ne zanemari veličinu slova\n"
 "                                  pri uspoređivanju imena datoteka"
 
-#: src/diff.c:922
+#: src/diff.c:982
 msgid "-x, --exclude=PAT               exclude files that match PAT"
-msgstr "-x, --exclude=UZORAK            izostavi datoteke podudarne s UZORKOM"
+msgstr "-x, --exclude=UZORAK          izostavi datoteke podudarne s UZORKOM"
 
-#: src/diff.c:923
+#: src/diff.c:983
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
 "-X, --exclude-from=DATOTEKA     izostavi datoteke podudarne s bilo kojim\n"
 "                                  uzorkom u DATOTECI"
 
-#: src/diff.c:924
+#: src/diff.c:984
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
 "-S, --starting-file=DATOTEKA    pri uspoređivanju direktorija\n"
 "                                  započinje s DATOTEKOM"
 
-#: src/diff.c:925
+#: src/diff.c:985
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
@@ -872,7 +871,7 @@ msgstr ""
 "    --from-file=DATOTEKA1       usporedi DATOTEKU1 sa svim argumentima;\n"
 "                                  DATOTEKA1 može biti direktorij"
 
-#: src/diff.c:927
+#: src/diff.c:987
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
@@ -880,81 +879,81 @@ msgstr ""
 "    --to-file=DATOTEKA2         usporedi sve argumente s DATOTEKOM2;\n"
 "                                  DATOTEKA2 može biti direktorij"
 
-#: src/diff.c:930
+#: src/diff.c:990
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr ""
-"-i, --ignore-case               ignorira veličinu slova u sadržaju datoteka"
+"-i, --ignore-case               zanemari veličinu slova u sadržaju datoteka"
 
-#: src/diff.c:931
+#: src/diff.c:991
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr ""
-"-E, --ignore-tab-expansion      ignorira promjene nastale ekspanzijom "
+"-E, --ignore-tab-expansion      zanemari promjene nastale ekspanzijom "
 "tab(ova)"
 
-#: src/diff.c:932
+#: src/diff.c:992
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
-msgstr "-Z, --ignore-trailing-space     ignorira bjeline na kraju retka"
+msgstr "-Z, --ignore-trailing-space     zanemari bjeline na kraju retka"
 
-#: src/diff.c:933
+#: src/diff.c:993
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr ""
-"-b, --ignore-space-change       ignorira promjene u količini bijelog prostora"
+"-b, --ignore-space-change       zanemari promjene u količini bijelog prostora"
 
-#: src/diff.c:934
+#: src/diff.c:994
 msgid "-w, --ignore-all-space          ignore all white space"
-msgstr "-w, --ignore-all-space          ignorira sav bijeli prostor"
+msgstr "-w, --ignore-all-space          zanemari sav bijeli prostor"
 
-#: src/diff.c:935
+#: src/diff.c:995
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr ""
-"-B, --ignore-blank-lines        ignorira promjene nastale uklanjanjem\n"
+"-B, --ignore-blank-lines        zanemari promjene nastale uklanjanjem\n"
 "                                  praznih redaka"
 
-#: src/diff.c:936
+#: src/diff.c:996
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
-"-I, --ignore-matching-lines=RE  ignorira promjene nastale uklanjanjem "
+"-I, --ignore-matching-lines=RE  zanemari promjene nastale uklanjanjem "
 "redaka\n"
 "                                  podudarnih s RE (regex)"
 
-#: src/diff.c:938
+#: src/diff.c:998
 msgid "-a, --text                      treat all files as text"
 msgstr "-a, --text                      tretira sve datoteke kao tekst"
 
-#: src/diff.c:939
+#: src/diff.c:999
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr         uklanja zaostali znak za Enter (CR) na ulazu"
 
-#: src/diff.c:941
+#: src/diff.c:1001
 msgid "    --binary                    read and write data in binary mode"
 msgstr "    --binary                    čita i piše podatke u binarnom načinu"
 
-#: src/diff.c:944
+#: src/diff.c:1004
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
 "-D, --ifdef=IME                 pokaže spojenu datoteku s prikazanim\n"
 "                                  razlikama u „#ifdef IME“"
 
-#: src/diff.c:945
+#: src/diff.c:1005
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr ""
 "    --GTYPE-group-format=GFMT   ulazne grupe vrste GTYPE formatira s GFMT"
 
-#: src/diff.c:946
+#: src/diff.c:1006
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr "    --line-format=LFMT          sve ulazne retke formatira s LFMT"
 
-#: src/diff.c:947
+#: src/diff.c:1007
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr ""
 "    --LTYPE-line-format=LFMT    ulazne retke vrste LTYPE formatira s LFMT"
 
-#: src/diff.c:948
+#: src/diff.c:1008
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
@@ -963,13 +962,13 @@ msgstr ""
 "oblikovanje\n"
 "    prikaza diff izlaza generaliziranjem opcije -D/--ifdef."
 
-#: src/diff.c:950
+#: src/diff.c:1010
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
 "  LTYPE je jedan od „old“, „new“ ili „unchanged“.\n"
 "  GTYPE je jedan od LTYPE ili „changed“."
 
-#: src/diff.c:951
+#: src/diff.c:1011
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -997,7 +996,7 @@ msgstr ""
 "        M  L+1\n"
 "    %(A=B?T:E)  ako je A jednako B, onda T, inače E"
 
-#: src/diff.c:963
+#: src/diff.c:1023
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -1009,7 +1008,7 @@ msgstr ""
 "    %l  sadržaj retka bez zaostalih newline (znak novog retka)\n"
 "    %[-][ŠIRINA][.[PREC]]{doxX} format broja ulaznog retka u stilu printf"
 
-#: src/diff.c:967
+#: src/diff.c:1027
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1023,23 +1022,23 @@ msgstr ""
 "    %c'\\OOO'  znak u oktalnom kodu OOO\n"
 "    C    znak C (ostali znakovi predstavljaju sami sebe)"
 
-#: src/diff.c:973
+#: src/diff.c:1033
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr "-d, --minimal            nastoji naći što manju količinu promjena"
 
-#: src/diff.c:974
+#: src/diff.c:1034
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr ""
 "    --horizon-lines=BROJ  zadrži BROJ redaka zajednički prefiksu i sufiksu"
 
-#: src/diff.c:975
+#: src/diff.c:1035
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
 "    --speed-large-files  pretpostavlja da su datoteke velike s puno\n"
 "                           malih razbacanih promjena"
 
-#: src/diff.c:976
+#: src/diff.c:1036
 msgid ""
 "    --color[=WHEN]       color output; WHEN is 'never', 'always', or "
 "'auto';\n"
@@ -1048,7 +1047,7 @@ msgstr ""
 "    --color[=KAD]        oboji izlaz; KAD može biti 'never', 'always'\n"
 "                           ili 'auto'; samo --color znači --color='auto'"
 
-#: src/diff.c:978
+#: src/diff.c:1038
 msgid ""
 "    --palette=PALETTE    the colors to use when --color is active; PALETTE "
 "is\n"
@@ -1057,42 +1056,42 @@ msgstr ""
 "    --palette=PALETA     boje koje će se koristiti s --color; PALETA je\n"
 "                           popis terminfo mogućnosti odvojenih dvotočkom"
 
-#: src/diff.c:981
+#: src/diff.c:1041
 msgid "    --help               display this help and exit"
 msgstr "    --help               pokaže ovu pomoć"
 
-#: src/diff.c:982
+#: src/diff.c:1042
 msgid "-v, --version            output version information and exit"
-msgstr "-v, --version            informacije o inačici ovog programa"
+msgstr "-v, --version            informira o inačici ovog programa i iziđe"
 
-#: src/diff.c:984
+#: src/diff.c:1044
 msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
 "DATOTEKE su „DATOTEKA1 DATOTEKA2“ ili „DIR1 DIR2“ ili „DIR DATOTEKA“ ili\n"
 " „DATOTEKA DIR“."
 
-#: src/diff.c:985
+#: src/diff.c:1045
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr ""
 "Ako je dano --from-file ili --to-file, onda nema restrikcija na  DATOTEK(U/"
 "E)."
 
-#: src/diff.c:986 src/diff3.c:533 src/sdiff.c:220
+#: src/diff.c:1046 src/diff3.c:531 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
 msgstr "Ako je DATOTEKA „-“, čita standardni ulaz."
 
-#: src/diff.c:996
+#: src/diff.c:1056
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Uporaba: %s [OPCIJA...] DATOTEKE\n"
 
-#: src/diff.c:997
+#: src/diff.c:1057
 msgid "Compare FILES line by line."
 msgstr "Usporedi DATOTEKE redak po redak."
 
 # Ovdje trebam zamijeniti poredak... Pogledati kako se to radi.
-#: src/diff.c:1034
+#: src/diff.c:1094
 #, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "konfliktna vrijednost „%2$s“ opcije %1$s"
@@ -1102,75 +1101,75 @@ msgstr "konfliktna vrijednost „%2$s“ opcije %1$s"
 #
 # Format:
 # C
-#: src/diff.c:1047
+#: src/diff.c:1107
 #, c-format
 msgid "conflicting output style options"
 msgstr "konfliktne opcije za stil izlaza"
 
-#: src/diff.c:1063
+#: src/diff.c:1123
 #, c-format
 msgid "invalid color '%s'"
 msgstr "nevaljana boja „%s“"
 
-#: src/diff.c:1119 src/diff.c:1329
+#: src/diff.c:1197 src/diff.c:1401
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Samo u %s: %s\n"
 
-#: src/diff.c:1253
+#: src/diff.c:1325
 msgid "cannot compare '-' to a directory"
 msgstr "nije moguće usporediti „-“ s direktorijem"
 
-#: src/diff.c:1288
+#: src/diff.c:1360
 msgid "-D option not supported with directories"
 msgstr "opcija -D nije podržana za direktorije"
 
-#: src/diff.c:1297
+#: src/diff.c:1369
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Uobičajeni poddirektoriji: %s i %s\n"
 
-#: src/diff.c:1339 src/diff.c:1389
+#: src/diff.c:1411 src/diff.c:1461
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr "Datoteka %s je %s dok datoteka %s je %s\n"
 
-#: src/diff.c:1375
+#: src/diff.c:1447
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "Simboličke poveznice %s i %s se razlikuju\n"
 
-#: src/diff.c:1462
+#: src/diff.c:1534
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Datoteke %s i %s su identične\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff3.c:43
+#: src/diff3.c:51
 msgid "Randy Smith"
 msgstr "Randy Smith"
 
-#: src/diff3.c:356
+#: src/diff3.c:363
 #, c-format
 msgid "incompatible options"
 msgstr "nekompatibilne opcije"
 
-#: src/diff3.c:396
+#: src/diff3.c:403
 msgid "'-' specified for more than one input file"
 msgstr "„-“ je navedena za više od jedne ulazne datoteke"
 
-#: src/diff3.c:447 src/diff3.c:1295 src/diff3.c:1698 src/diff3.c:1753
-#: src/sdiff.c:308 src/sdiff.c:846 src/sdiff.c:857
+#: src/diff3.c:445 src/diff3.c:1284 src/diff3.c:1683 src/diff3.c:1738
+#: src/sdiff.c:306 src/sdiff.c:843 src/sdiff.c:854
 msgid "read failed"
 msgstr "čitanje nije uspjelo"
 
-#: src/diff3.c:480
+#: src/diff3.c:478
 msgid "-A, --show-all              output all changes, bracketing conflicts"
 msgstr ""
 "-A, --show-all              pokaže sve promjene, konflikte u uglatim "
 "zagradama"
 
-#: src/diff3.c:482
+#: src/diff3.c:480
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
@@ -1178,11 +1177,11 @@ msgstr ""
 "-e, --ed                    generira ed-script koji uključujuje promjene od\n"
 "                                STARADATOTEKE do VAŠADATOTEKE u MOJADATOTEKA"
 
-#: src/diff3.c:484
+#: src/diff3.c:482
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
 msgstr "-E, --show-overlap          kao -e plus konflikte u uglatim zagradama"
 
-#: src/diff3.c:485
+#: src/diff3.c:483
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
@@ -1190,22 +1189,22 @@ msgstr ""
 "-3, --easy-only             kao -e, ali uključi samo promjene koje se\n"
 "                                ne preklapaju"
 
-#: src/diff3.c:486
+#: src/diff3.c:484
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
 msgstr ""
 "-x, --overlap-only          kao -e, ali uključi samo promjene koje se\n"
 "                                preklapaju"
 
-#: src/diff3.c:487
+#: src/diff3.c:485
 msgid "-X                          like -x, but bracket conflicts"
 msgstr "-X                          kao -x plus konflikte u uglatim zagradama"
 
-#: src/diff3.c:488
+#: src/diff3.c:486
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
 msgstr "-i                          pripoji naredbe „w“ i „q“ u ed-scripts"
 
-#: src/diff3.c:490
+#: src/diff3.c:488
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
@@ -1213,25 +1212,25 @@ msgstr ""
 "-m, --merge                 prikaže trenutnu spojenu datoteku kao -A ako\n"
 "                                nijedna druga opcija nije dana"
 
-#: src/diff3.c:493
+#: src/diff3.c:491
 msgid "-a, --text                  treat all files as text"
 msgstr "-a, --text                  tretira sve datoteke kao tekst"
 
-#: src/diff3.c:494
+#: src/diff3.c:492
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr     uklanja zaostali znak za Enter (CR) na ulazu"
 
-#: src/diff3.c:495
+#: src/diff3.c:493
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
 msgstr ""
 "-T, --initial-tab           poravna umetanjem tab(ulatora) na početak retka"
 
-#: src/diff3.c:496
+#: src/diff3.c:494
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
 msgstr "    --diff-program=PROGRAM  koristi PROGRAM za uspoređivanja datoteka"
 
-#: src/diff3.c:497
+#: src/diff3.c:495
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
@@ -1239,24 +1238,24 @@ msgstr ""
 "-L, --label=LABEL           koristi LABEL umjesto imena i vremenskog žiga\n"
 "                                datoteke (može se ponavljati)"
 
-#: src/diff3.c:500
+#: src/diff3.c:498
 msgid "    --help                  display this help and exit"
 msgstr "    --help                  pokaže ovu pomoć"
 
-#: src/diff3.c:501
+#: src/diff3.c:499
 msgid "-v, --version               output version information and exit"
-msgstr "-v, --version               informacije o inačici ovog programa"
+msgstr "-v, --version               informira o inačici ovog programa i iziđe"
 
-#: src/diff3.c:510
+#: src/diff3.c:508
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
 msgstr "Uporaba: %s [OPCIJA...] MOJADATOTEKA STARADATOTEKA VAŠADATOTEKA\n"
 
-#: src/diff3.c:512
+#: src/diff3.c:510
 msgid "Compare three files line by line."
 msgstr "Usporedi tri datoteke redak po redak."
 
-#: src/diff3.c:522
+#: src/diff3.c:520
 msgid ""
 "\n"
 "The default output format is a somewhat human-readable representation of\n"
@@ -1280,54 +1279,54 @@ msgstr ""
 "je spojena datoteka. Za neuobičajeni ulaz to je pouzdanije od korištenja ed-"
 "a.\n"
 
-#: src/diff3.c:534
+#: src/diff3.c:532
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
 msgstr "Izlazno stanje je 0 za uspjeh, 1 za neuspjeh, 2 u slučaju greške."
 
-#: src/diff3.c:727
+#: src/diff3.c:725
 msgid "internal error: screwup in format of diff blocks"
 msgstr "*interna programska greška*: greška u formatu diff blokova"
 
-#: src/diff3.c:1022
+#: src/diff3.c:1015
 #, c-format
 msgid "%s: diff failed: "
 msgstr "%s: diff nije uspio: "
 
-#: src/diff3.c:1044
+#: src/diff3.c:1037
 msgid "internal error: invalid diff type in process_diff"
-msgstr "*interna greška*: nevaljana diff vrsta u process_diff"
+msgstr "*interna greška*: nevaljani tip diff-a u process_diff"
 
-#: src/diff3.c:1069
+#: src/diff3.c:1060
 msgid "invalid diff format; invalid change separator"
 msgstr "nevaljani diff format: nevaljani graničnik promjena"
 
-#: src/diff3.c:1305
+#: src/diff3.c:1294
 msgid "invalid diff format; incomplete last line"
 msgstr "nevaljani diff format: nepotpuni posljednji redak"
 
-#: src/diff3.c:1329 src/sdiff.c:276 src/util.c:969
+#: src/diff3.c:1318 src/sdiff.c:274 src/util.c:1069
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "podređeni program „%s“ nije (bilo) moguće pozvati"
 
-#: src/diff3.c:1354
+#: src/diff3.c:1343
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "nevaljani diff format: nevaljani znakovi na početku retka"
 
-#: src/diff3.c:1427
+#: src/diff3.c:1416
 msgid "internal error: invalid diff type passed to output"
-msgstr "*interna greška*:nevaljana diff vrsta je proslijeđena na izlaz"
+msgstr "*interna greška*:nevaljani tip diff-a je proslijeđen na izlaz"
 
-#: src/diff3.c:1700 src/diff3.c:1757
+#: src/diff3.c:1685 src/diff3.c:1742
 msgid "input file shrank"
 msgstr "ulazna datoteka se smanjila"
 
-#: src/dir.c:156
+#: src/dir.c:154
 #, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "nije moguće usporediti imena datoteka „%s“ i „%s“"
 
-#: src/dir.c:225
+#: src/dir.c:223
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: rekurzivna petlja direktorija"
@@ -1337,89 +1336,89 @@ msgstr "%s: rekurzivna petlja direktorija"
 msgid "Thomas Lord"
 msgstr "Thomas Lord"
 
-#: src/sdiff.c:174
+#: src/sdiff.c:173
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
 msgstr ""
 "-o, --output=DATOTEKA        interaktivni rad; rezultat se sprema u DATOTEKU"
 
-#: src/sdiff.c:176
+#: src/sdiff.c:175
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
-msgstr "-i, --ignore-case            ignorira veličinu slova"
+msgstr "-i, --ignore-case            zanemari veličinu slova"
 
-#: src/sdiff.c:177
+#: src/sdiff.c:176
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
 msgstr ""
-"-E, --ignore-tab-expansion   ignorira promjene nastale ekspanzijom tab(ova)"
+"-E, --ignore-tab-expansion   zanemari promjene nastale ekspanzijom tab(ova)"
 
-#: src/sdiff.c:178
+#: src/sdiff.c:177
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
-msgstr "-Z, --ignore-trailing-space  ignorira bjeline na kraju retka"
+msgstr "-Z, --ignore-trailing-space  zanemari bjeline na kraju retka"
 
-#: src/sdiff.c:179
+#: src/sdiff.c:178
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
 msgstr ""
-"-b, --ignore-space-change    ignorira promjene u količini bijelog prostora"
+"-b, --ignore-space-change    zanemari promjene u količini bijelog prostora"
 
-#: src/sdiff.c:180
+#: src/sdiff.c:179
 msgid "-W, --ignore-all-space       ignore all white space"
-msgstr "-W, --ignore-all-space       ignorira sav bijeli prostor"
+msgstr "-W, --ignore-all-space       zanemari sav bijeli prostor"
 
-#: src/sdiff.c:181
+#: src/sdiff.c:180
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
 msgstr ""
-"-B, --ignore-blank-lines     ignorira promjene nastale uklanjanjem\n"
+"-B, --ignore-blank-lines     zanemari promjene nastale uklanjanjem\n"
 "                                 praznih redaka"
 
-#: src/sdiff.c:182
+#: src/sdiff.c:181
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
-"-I, --ignore-matching-lines=RE  ignorira promjene nastale uklanjanjem "
+"-I, --ignore-matching-lines=RE  zanemari promjene nastale uklanjanjem "
 "redaka\n"
 "                                    podudarnih s RE (regex)"
 
-#: src/sdiff.c:183
+#: src/sdiff.c:182
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr      uklanja zaostali znak za Enter (CR) na ulazu"
 
-#: src/sdiff.c:184
+#: src/sdiff.c:183
 msgid "-a, --text                   treat all files as text"
 msgstr "-a, --text                   tretira sve datoteke kao tekst"
 
-#: src/sdiff.c:186
+#: src/sdiff.c:185
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
 msgstr ""
 "-w, --width=NUM              ispiše ne više od BROJ (zadano 130)\n"
 "                                 znakova po retku"
 
-#: src/sdiff.c:187
+#: src/sdiff.c:186
 msgid ""
 "-l, --left-column            output only the left column of common lines"
 msgstr ""
 "-l, --left-column            pokaže samo lijevi stupac kad su redci jednaki"
 
-#: src/sdiff.c:188
+#: src/sdiff.c:187
 msgid "-s, --suppress-common-lines  do not output common lines"
-msgstr "-s, --suppress-common-lines  ne prikazuje jednake retke"
+msgstr "-s, --suppress-common-lines  ne pokazuje jednake retke"
 
-#: src/sdiff.c:190
+#: src/sdiff.c:189
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
 msgstr "-t, --expand-tabs            na izlazu proširi tab(ulatore) u razmake"
 
-#: src/sdiff.c:191
+#: src/sdiff.c:190
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
 msgstr "    --tabsize=NUM            tabulacija svakih BROJ (zadano 8) stupaca"
 
-#: src/sdiff.c:193
+#: src/sdiff.c:192
 msgid "-d, --minimal                try hard to find a smaller set of changes"
 msgstr "-d, --minimal                nastoji naći što manju količinu promjena"
 
-#: src/sdiff.c:194
+#: src/sdiff.c:193
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
 msgstr ""
@@ -1427,38 +1426,38 @@ msgstr ""
 "malih\n"
 "                                 razbacanih promjena"
 
-#: src/sdiff.c:195
+#: src/sdiff.c:194
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
 msgstr "    --diff-program=PROGRAM   koristi PROGRAM za uspoređivanja datoteka"
 
-#: src/sdiff.c:197
+#: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
 msgstr "    --help                   pokaže ovu pomoć"
 
-#: src/sdiff.c:198
+#: src/sdiff.c:197
 msgid "-v, --version                output version information and exit"
-msgstr "-v, --version                informacije o inačici ovog programa"
+msgstr "-v, --version                informira o inačici ovog programa i iziđe"
 
-#: src/sdiff.c:207
+#: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
 msgstr "Uporaba: %s [OPCIJA...] DATOTEKA1 DATOTEKA2\n"
 
-#: src/sdiff.c:209
+#: src/sdiff.c:208
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
 msgstr ""
 "Interaktivno usporedi DATOTEKU1 s DATOTEKOM2, pokaže ih jednu pored druge\n"
 "s razlikama između njih."
 
-#: src/sdiff.c:330
+#: src/sdiff.c:328
 msgid "cannot interactively merge standard input"
 msgstr "nije moguće interaktivno spojiti standardni ulaz"
 
-#: src/sdiff.c:597
+#: src/sdiff.c:594
 msgid "both files to be compared are directories"
 msgstr "obje datoteke za usporedbu su direktoriji"
 
-#: src/sdiff.c:820
+#: src/sdiff.c:817
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
 "eb:\tEdit then use both versions.\n"
@@ -1482,12 +1481,12 @@ msgstr ""
 "v:        Umetne i prikaže iste (zajedničke) retke.\n"
 "q:        Iziđe (napusti ed).\n"
 
-#: src/util.c:662
+#: src/util.c:755
 #, c-format
 msgid "unrecognized prefix: %s"
 msgstr "neprepoznati prefiks: %s"
 
-#: src/util.c:692
+#: src/util.c:785
 #, c-format
 msgid "unparsable value for --palette"
 msgstr "nije moguće razabrati vrijednost za --palette"
index 23e843f..f016bbc 100644 (file)
Binary files a/po/hu.gmo and b/po/hu.gmo differ
index b5eab39..1bf2b72 100644 (file)
--- a/po/hu.po
+++ b/po/hu.po
@@ -4,13 +4,13 @@
 #
 # Gábor István <stive@mezobereny.hu>, 2002.
 # András Timár <timar@fsf.hu>, 2004.
-# Balázs Úr <ur.balazs@fsf.hu>, 2014, 2018, 2019.
+# Balázs Úr <ur.balazs@fsf.hu>, 2014, 2018, 2019, 2022.
 msgid ""
 msgstr ""
-"Project-Id-Version: diffutils 3.6.17\n"
+"Project-Id-Version: diffutils 3.7.41\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2021-08-01 18:56-0700\n"
-"PO-Revision-Date: 2019-11-16 18:13+0100\n"
+"POT-Creation-Date: 2023-05-21 01:51-0700\n"
+"PO-Revision-Date: 2022-10-21 00:19+0200\n"
 "Last-Translator: Balázs Úr <ur.balazs@fsf.hu>\n"
 "Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
 "Language: hu\n"
@@ -18,32 +18,32 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
-"X-Generator: Lokalize 19.04.3\n"
+"X-Generator: Lokalize 19.12.3\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: lib/argmatch.c:132
+#: lib/argmatch.c:145
 #, c-format
 msgid "invalid argument %s for %s"
 msgstr "érvénytelen %s argumentum ehhez: %s"
 
-#: lib/argmatch.c:133
+#: lib/argmatch.c:146
 #, c-format
 msgid "ambiguous argument %s for %s"
 msgstr "nem egyértelmű %s argumentum ehhez: %s"
 
-#: lib/argmatch.c:152 lib/argmatch.h:223
+#: lib/argmatch.c:165 lib/argmatch.h:242
 msgid "Valid arguments are:"
 msgstr "Az érvényes argumentumok:"
 
-#: lib/c-stack.c:187
+#: lib/c-stack.c:186
 msgid "program error"
 msgstr "programhiba"
 
-#: lib/c-stack.c:188
+#: lib/c-stack.c:187
 msgid "stack overflow"
 msgstr "veremtúlcsordulás"
 
-#: lib/error.c:195
+#: lib/error.c:193
 msgid "Unknown system error"
 msgstr "Ismeretlen rendszerhiba"
 
@@ -199,83 +199,83 @@ msgstr "%s: a kapcsoló egy argumentumot igényel -- „%c”\n"
 #. If you don't know what to put here, please see
 #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:355
+#: lib/quotearg.c:354
 msgid "`"
 msgstr "„"
 
-#: lib/quotearg.c:356
+#: lib/quotearg.c:355
 msgid "'"
 msgstr "”"
 
-#: lib/regcomp.c:135
+#: lib/regcomp.c:122
 msgid "Success"
 msgstr "Sikerült"
 
-#: lib/regcomp.c:138
+#: lib/regcomp.c:125
 msgid "No match"
 msgstr "Nincs találat"
 
-#: lib/regcomp.c:141
+#: lib/regcomp.c:128
 msgid "Invalid regular expression"
 msgstr "Érvénytelen reguláris kifejezés"
 
-#: lib/regcomp.c:144
+#: lib/regcomp.c:131
 msgid "Invalid collation character"
 msgstr "Érvénytelen egyeztető karakter"
 
-#: lib/regcomp.c:147
+#: lib/regcomp.c:134
 msgid "Invalid character class name"
 msgstr "Érvénytelen karakterosztálynév"
 
-#: lib/regcomp.c:150
+#: lib/regcomp.c:137
 msgid "Trailing backslash"
 msgstr "Záró visszaper"
 
-#: lib/regcomp.c:153
+#: lib/regcomp.c:140
 msgid "Invalid back reference"
 msgstr "Érvénytelen visszahivatkozás"
 
-#: lib/regcomp.c:156
+#: lib/regcomp.c:143
 msgid "Unmatched [, [^, [:, [., or [="
 msgstr "Pár nélküli [, [^, [:, [. vagy [="
 
-#: lib/regcomp.c:159
+#: lib/regcomp.c:146
 msgid "Unmatched ( or \\("
 msgstr "Pár nélküli ( vagy \\("
 
-#: lib/regcomp.c:162
+#: lib/regcomp.c:149
 msgid "Unmatched \\{"
 msgstr "Pár nélküli \\{"
 
-#: lib/regcomp.c:165
+#: lib/regcomp.c:152
 msgid "Invalid content of \\{\\}"
 msgstr "A \\{\\} tartalma érvénytelen"
 
-#: lib/regcomp.c:168
+#: lib/regcomp.c:155
 msgid "Invalid range end"
 msgstr "Érvénytelen tartományvég"
 
-#: lib/regcomp.c:171
+#: lib/regcomp.c:158
 msgid "Memory exhausted"
 msgstr "Elfogyott a memória"
 
-#: lib/regcomp.c:174
+#: lib/regcomp.c:161
 msgid "Invalid preceding regular expression"
 msgstr "Érvénytelen megelőző reguláris kifejezés"
 
-#: lib/regcomp.c:177
+#: lib/regcomp.c:164
 msgid "Premature end of regular expression"
 msgstr "A reguláris kifejezés túl korán véget ért"
 
-#: lib/regcomp.c:180
+#: lib/regcomp.c:167
 msgid "Regular expression too big"
 msgstr "A reguláris kifejezés túl nagy"
 
-#: lib/regcomp.c:183
+#: lib/regcomp.c:170
 msgid "Unmatched ) or \\)"
 msgstr "Pár nélküli ) vagy \\)"
 
-#: lib/regcomp.c:676
+#: lib/regcomp.c:650
 msgid "No previous regular expression"
 msgstr "Nincs megelőző reguláris kifejezés"
 
@@ -307,7 +307,7 @@ msgstr "%s újranyitása %s móddal meghiúsult"
 #: lib/xstdopen.c:34
 #, c-format
 msgid "standard file descriptors"
-msgstr ""
+msgstr "szabványos fájlleírók"
 
 #: lib/version-etc.c:73
 #, c-format
@@ -328,18 +328,15 @@ msgstr "©"
 
 #. TRANSLATORS: The %s placeholder is the web address of the GPL license.
 #: lib/version-etc.c:88
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "License GPLv3+: GNU GPL version 3 or later <%s>.\n"
 "This is free software: you are free to change and redistribute it.\n"
 "There is NO WARRANTY, to the extent permitted by law.\n"
 msgstr ""
-"\n"
-"A licenc GPLv3+: a GNU GPL 3. vagy újabb változata <https://gnu.org/licenses/"
-"gpl.html>\n"
+"Licenc GPLv3+: a GNU GPL 3. vagy újabb változata <%s>\n"
 "Ez egy szabad szoftver, terjesztheti és/vagy módosíthatja.\n"
 "NINCS GARANCIA, a törvény által engedélyezett mértékig.\n"
-"\n"
 
 #. TRANSLATORS: %s denotes an author name.
 #: lib/version-etc.c:105
@@ -454,11 +451,9 @@ msgstr ""
 #. "Report translation bugs to <...>\n" with the address for translation
 #. bugs (typically your translation team's web or email address).
 #: lib/version-etc.c:249
-#, fuzzy, c-format
+#, c-format
 msgid "Report bugs to: %s\n"
-msgstr ""
-"\n"
-"A hibák a(z) %s címen jelenthetők.\n"
+msgstr "A hibák a(z) %s címen jelenthetők.\n"
 
 #: lib/version-etc.c:251
 #, c-format
@@ -471,23 +466,21 @@ msgid "%s home page: <%s>\n"
 msgstr "A(z) %s honlapja: <%s>\n"
 
 #: lib/version-etc.c:260
-#, fuzzy, c-format
+#, c-format
 msgid "General help using GNU software: <%s>\n"
-msgstr ""
-"Általános segítség a GNU szoftverek használatához: <https://www.gnu.org/"
-"gethelp/>\n"
+msgstr "Általános segítség a GNU szoftverek használatához: <%s>\n"
 
-#: src/analyze.c:454 src/diff.c:1406
+#: src/analyze.c:455 src/diff.c:1478
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "A(z) %s és a(z) %s fájlok különböznek\n"
 
-#: src/analyze.c:455
+#: src/analyze.c:456
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "A(z) %s és a(z) %s bináris fájlok különböznek\n"
 
-#: src/analyze.c:706 src/diff3.c:1470 src/util.c:1254
+#: src/analyze.c:707 src/diff3.c:1457 src/util.c:1354
 msgid "No newline at end of file"
 msgstr "Nincs új sor a fájl végén"
 
@@ -501,41 +494,42 @@ msgstr "Torbjorn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:120 src/diff.c:879 src/diff3.c:467 src/sdiff.c:160
+#: src/cmp.c:124 src/diff.c:939 src/diff3.c:465 src/sdiff.c:159
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr "További információkért próbálja a(z) „%s --help” parancsot."
 
-#: src/cmp.c:138
+#: src/cmp.c:142
 #, c-format
 msgid "invalid --ignore-initial value '%s'"
 msgstr "érvénytelen --ignore-initial érték: „%s”"
 
-#: src/cmp.c:148
+#: src/cmp.c:152
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr "a -l és a -s kapcsolók összeférhetetlenek"
 
-#: src/cmp.c:156 src/diff.c:887 src/diff3.c:474 src/sdiff.c:168 src/sdiff.c:316
-#: src/sdiff.c:323 src/sdiff.c:876 src/util.c:852 src/util.c:952 src/util.c:959
+#: src/cmp.c:160 src/diff.c:947 src/diff3.c:472 src/sdiff.c:167 src/sdiff.c:314
+#: src/sdiff.c:321 src/sdiff.c:873 src/util.c:952 src/util.c:1052
+#: src/util.c:1059
 msgid "write failed"
 msgstr "az írás sikertelen"
 
-#: src/cmp.c:158 src/diff.c:889 src/diff.c:1471 src/diff3.c:476 src/sdiff.c:170
+#: src/cmp.c:162 src/diff.c:949 src/diff.c:1543 src/diff3.c:474 src/sdiff.c:169
 msgid "standard output"
 msgstr "szabványos kimenet"
 
-#: src/cmp.c:162
+#: src/cmp.c:166
 msgid "-b, --print-bytes          print differing bytes"
 msgstr "-b, --print-bytes          eltérő bájtok kiírása"
 
-#: src/cmp.c:163
+#: src/cmp.c:167
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
 msgstr ""
 "-i, --ignore-initial=UGRÁS        az első UGRÁS bájt kihagyása mindkét "
 "bemeneten"
 
-#: src/cmp.c:164
+#: src/cmp.c:168
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
@@ -544,38 +538,38 @@ msgstr ""
 "FÁJL2\n"
 "                                      első UGRÁS2 bájtjának kihagyása"
 
-#: src/cmp.c:166
+#: src/cmp.c:170
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
 msgstr ""
 "-l, --verbose              a bájt számok és az eltérő bájt értékek kiírása"
 
-#: src/cmp.c:167
+#: src/cmp.c:171
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
 msgstr "-n, --bytes=KORLÁT         legfeljebb KORLÁT bájt összehasonlítása"
 
-#: src/cmp.c:168
+#: src/cmp.c:172
 msgid "-s, --quiet, --silent      suppress all normal output"
 msgstr "-s, --quiet, --silent      minden normál kimenet elfojtása"
 
-#: src/cmp.c:169
+#: src/cmp.c:173
 msgid "    --help                 display this help and exit"
 msgstr "    --help                 ezen súgó megjelenítése és kilépés"
 
-#: src/cmp.c:170
+#: src/cmp.c:174
 msgid "-v, --version              output version information and exit"
 msgstr "-v, --version              verzióinformációk kiírása és kilépés"
 
-#: src/cmp.c:179
+#: src/cmp.c:183
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
 msgstr "Használat: %s [KAPCSOLÓ]… FÁJL1 [FÁJL2 [UGRÁS1 [UGRÁS2]]]\n"
 
-#: src/cmp.c:181
+#: src/cmp.c:185
 msgid "Compare two files byte by byte."
 msgstr "Két fájl összehasonlítása bájtról bájtra."
 
-#: src/cmp.c:183
+#: src/cmp.c:187
 msgid ""
 "The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
 "at the beginning of each file (zero by default)."
@@ -583,14 +577,14 @@ msgstr ""
 "Az opcionális UGRÁS1 és UGRÁS2 megadja a minden egyes fájl elejéről "
 "kihagyandó bájtok számát (alapértelmezetten nulla)."
 
-#: src/cmp.c:186 src/diff.c:999 src/diff3.c:514 src/sdiff.c:211
+#: src/cmp.c:190 src/diff.c:1059 src/diff3.c:512 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
 "A hosszú kapcsolók kötelező argumentumai a rövid kapcsolókhoz is "
 "kötelezőek.\n"
 
-#: src/cmp.c:192
+#: src/cmp.c:196
 msgid ""
 "SKIP values may be followed by the following multiplicative suffixes:\n"
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
@@ -600,142 +594,142 @@ msgstr ""
 "kB 1000, K 1024, MB 1.000.000, M 1.048.576,\n"
 "GB 1.000.000.000, G 1.073.741.824 és így tovább: T, P, E, Z, Y."
 
-#: src/cmp.c:195
+#: src/cmp.c:199
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "Ha a FÁJL a „-” vagy hiányzik, akkor a szabványos bemenetről olvas."
 
-#: src/cmp.c:196 src/diff.c:987 src/sdiff.c:221
+#: src/cmp.c:200 src/diff.c:1047 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr ""
 "A kilépési állapotkód 0, ha a bemenetek azonosak; 1, ha különbözők; 2, ha\n"
 "hiba történt."
 
-#: src/cmp.c:243
+#: src/cmp.c:247
 #, c-format
 msgid "invalid --bytes value '%s'"
 msgstr "érvénytelen --bytes érték: „%s”"
 
-#: src/cmp.c:269 src/diff.c:797 src/diff3.c:361 src/sdiff.c:567
+#: src/cmp.c:273 src/diff.c:857 src/diff3.c:368 src/sdiff.c:564
 #, c-format
 msgid "missing operand after '%s'"
 msgstr "hiányzó operandus a(z) „%s” után"
 
-#: src/cmp.c:281 src/diff.c:799 src/diff3.c:363 src/sdiff.c:569
+#: src/cmp.c:285 src/diff.c:859 src/diff3.c:370 src/sdiff.c:566
 #, c-format
 msgid "extra operand '%s'"
 msgstr "extra operandus: „%s”"
 
-#: src/cmp.c:507
+#: src/cmp.c:521
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s eltér: byte: %s, sor: %s\n"
 
-#: src/cmp.c:523
+#: src/cmp.c:537
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
 msgstr "%s %s eltér: byte %s, sor %s %3o %s %3o %s\n"
 
-#: src/cmp.c:580
+#: src/cmp.c:594
 #, c-format
 msgid "cmp: EOF on %s which is empty\n"
 msgstr "cmp: EOF ennél: %s, amely üres\n"
 
-#: src/cmp.c:594
+#: src/cmp.c:608
 #, c-format
 msgid "cmp: EOF on %s after byte %s, line %s\n"
 msgstr "cmp: EOF ennél: %s, %s bájt és %s sor után\n"
 
-#: src/cmp.c:595
+#: src/cmp.c:609
 #, c-format
 msgid "cmp: EOF on %s after byte %s, in line %s\n"
 msgstr "cmp: EOF ennél: %s, %s bájt után a(z) %s. sorban\n"
 
-#: src/cmp.c:601
+#: src/cmp.c:615
 #, c-format
 msgid "cmp: EOF on %s after byte %s\n"
 msgstr "cmp: EOF ennél: %s, %s bájt után\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:51
+#: src/diff.c:50
 msgid "Paul Eggert"
 msgstr "Paul Eggert"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:52
+#: src/diff.c:51
 msgid "Mike Haertel"
 msgstr "Mike Haertel"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:53
+#: src/diff.c:52
 msgid "David Hayes"
 msgstr "David Hayes"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:54
+#: src/diff.c:53
 msgid "Richard Stallman"
 msgstr "Richard Stallman"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:55
+#: src/diff.c:54
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:355
+#: src/diff.c:365
 #, c-format
 msgid "invalid context length '%s'"
 msgstr "érvénytelen környezethossz: „%s”"
 
-#: src/diff.c:438
+#: src/diff.c:487
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "a tördelés nem támogatott ezen a gépen"
 
-#: src/diff.c:453 src/diff3.c:341
+#: src/diff.c:502 src/diff3.c:348
 #, c-format
 msgid "too many file label options"
 msgstr "túl sok fájlcímke-beállítás"
 
-#: src/diff.c:530
+#: src/diff.c:579
 #, c-format
 msgid "invalid width '%s'"
 msgstr "érvénytelen szélesség: „%s”"
 
-#: src/diff.c:534
+#: src/diff.c:583
 msgid "conflicting width options"
 msgstr "ütköző szélességbeállítások"
 
-#: src/diff.c:559
+#: src/diff.c:608
 #, c-format
 msgid "invalid horizon length '%s'"
 msgstr "érvénytelen munkaszinthossz: „%s”"
 
-#: src/diff.c:615
+#: src/diff.c:664
 #, c-format
 msgid "invalid tabsize '%s'"
 msgstr "érvénytelen tabulátorméret: „%s”"
 
-#: src/diff.c:619
+#: src/diff.c:668
 msgid "conflicting tabsize options"
 msgstr "ütköző tabulátorméret beállítások"
 
-#: src/diff.c:774
+#: src/diff.c:834
 msgid "--from-file and --to-file both specified"
 msgstr "a --from-file és a --to-file is meg van adva"
 
-#: src/diff.c:893
+#: src/diff.c:953
 msgid "    --normal                  output a normal diff (the default)"
 msgstr ""
 "    --normal                  egy normál diff kimenet (az alapértelmezett)"
 
-#: src/diff.c:894
+#: src/diff.c:954
 msgid "-q, --brief                   report only when files differ"
 msgstr "-q, --brief                   csak akkor jelent, ha a fájlok eltérnek"
 
-#: src/diff.c:895
+#: src/diff.c:955
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr "-s, --report-identical-files  jelentés, ha a két fájl ugyanaz"
 
-#: src/diff.c:896
+#: src/diff.c:956
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
@@ -743,53 +737,53 @@ msgstr ""
 "3)\n"
 "                                sorának kiírása"
 
-#: src/diff.c:897
+#: src/diff.c:957
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
 "-u, -U SZÁM, --unified[=SZÁM]  a egységesített környezet SZÁM\n"
 "                                (alapértelmezetten 3) sorának kiírása"
 
-#: src/diff.c:898
+#: src/diff.c:958
 msgid "-e, --ed                      output an ed script"
 msgstr "-e, --ed                      egy ed parancsfájl kiírása"
 
-#: src/diff.c:899
+#: src/diff.c:959
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n, --rcs                     egy RCS formátumú diff kiírása"
 
-#: src/diff.c:900
+#: src/diff.c:960
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side            kimenet két oszlopban"
 
-#: src/diff.c:901
+#: src/diff.c:961
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
 "-W, --width=SZÁM              legfeljebb SZÁM (alapértelmezetten 130)\n"
 "                                nyomtatási oszlop kiírása"
 
-#: src/diff.c:902
+#: src/diff.c:962
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr ""
 "    --left-column             a közös soroknak csak a bal oszlopának kiírása"
 
-#: src/diff.c:903
+#: src/diff.c:963
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "    --suppress-common-lines   ne írja ki a közös sorokat"
 
-#: src/diff.c:905
+#: src/diff.c:965
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr ""
 "-p, --show-c-function         jelenítse meg, mely C függvényben van változás"
 
-#: src/diff.c:906
+#: src/diff.c:966
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr ""
 "-F, --show-function-line=RK   a legutóbbi RK-ra illeszkedő sor megjelenítése"
 
-#: src/diff.c:907
+#: src/diff.c:967
 msgid ""
 "    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
@@ -797,25 +791,25 @@ msgstr ""
 "    --label CÍMKE             CÍMKE használata fájlnév és időbélyeg helyett\n"
 "                                (ismételhető)"
 
-#: src/diff.c:910
+#: src/diff.c:970
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr ""
 "-t, --expand-tabs             tabulátorok bővítése szóközökké a kimeneten"
 
-#: src/diff.c:911
+#: src/diff.c:971
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr ""
 "-T, --initial-tab             beigazítja a tabulátorokat egy tabulátor\n"
 "                                hozzáfűzésével"
 
-#: src/diff.c:912
+#: src/diff.c:972
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=SZÁM            a tabulátor megáll minden SZÁMADIK\n"
 "                                (alapértelmezetten 8) nyomtatási oszlopnál"
 
-#: src/diff.c:913
+#: src/diff.c:973
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
@@ -823,62 +817,62 @@ msgstr ""
 "kimeneti\n"
 "                                sorok előtt"
 
-#: src/diff.c:914
+#: src/diff.c:974
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr ""
 "-l, --paginate                kimenet átadása a „pr” parancsnak "
 "lapszámozáshoz"
 
-#: src/diff.c:916
+#: src/diff.c:976
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr ""
 "-r, --recursive                 a talált alkönyvtár rekurzív összehasonlítása"
 
-#: src/diff.c:917
+#: src/diff.c:977
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr "    --no-dereference            ne kövesse a szimbolikus linkeket"
 
-#: src/diff.c:918
+#: src/diff.c:978
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr "-N, --new-file                  a hiányzó fájlokat üresként kezelje"
 
-#: src/diff.c:919
+#: src/diff.c:979
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
 "    --unidirectional-new-file   a hiányzó első fájlokat üresként kezelje"
 
-#: src/diff.c:920
+#: src/diff.c:980
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ""
 "    --ignore-file-name-case     kis- és nagybetűk figyelmen kívül hagyása\n"
 "                                  fájlnevek összehasonlításakor"
 
-#: src/diff.c:921
+#: src/diff.c:981
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
 "    --no-ignore-file-name-case  kis- és nagybetűk figyelembe vétele\n"
 "                                  fájlnevek összehasonlításakor"
 
-#: src/diff.c:922
+#: src/diff.c:982
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr "-x, --exclude=MINTA             a MINTÁRA illeszkedő fájlok kizárása"
 
-#: src/diff.c:923
+#: src/diff.c:983
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
 "-X, --exclude-from=FÁJL         a FÁJLBAN lévő bármely mintára illeszkedő\n"
 "                                  fájlok kizárása"
 
-#: src/diff.c:924
+#: src/diff.c:984
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
 "-S, --starting-file=FÁJL        a FÁJLLAL kezdjen könyvtárak "
 "összehasonlítását"
 
-#: src/diff.c:925
+#: src/diff.c:985
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
@@ -886,7 +880,7 @@ msgstr ""
 "    --from-file=FÁJL1           FÁJL1 összehasonlítása minden operandussal;\n"
 "                                  FÁJL1 lehet könyvtár is"
 
-#: src/diff.c:927
+#: src/diff.c:987
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
@@ -895,81 +889,81 @@ msgstr ""
 "vel;\n"
 "                                  FÁJL2 lehet könyvtár is"
 
-#: src/diff.c:930
+#: src/diff.c:990
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr ""
 "-i, --ignore-case               kis- és nagybetű eltérések figyelmen kívül\n"
 "                                  hagyása a fájlok tartalmában"
 
-#: src/diff.c:931
+#: src/diff.c:991
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr ""
 "-E, --ignore-tab-expansion      a tabulátorbővítés miatti változások "
 "mellőzése"
 
-#: src/diff.c:932
+#: src/diff.c:992
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr "-Z, --ignore-trailing-space     a sorvégi üres helyek mellőzése"
 
-#: src/diff.c:933
+#: src/diff.c:993
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr ""
 "-b, --ignore-space-change       üres helyek számában lévő változások "
 "mellőzése"
 
-#: src/diff.c:934
+#: src/diff.c:994
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w, --ignore-all-space          minden üres hely mellőzése"
 
-#: src/diff.c:935
+#: src/diff.c:995
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr ""
 "-B, --ignore-blank-lines        változások mellőzése, ahol a sorok üresek"
 
-#: src/diff.c:936
+#: src/diff.c:996
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=RK  változások mellőzése, ahol minden sor\n"
 "                                  illeszkedik az RK-ra"
 
-#: src/diff.c:938
+#: src/diff.c:998
 msgid "-a, --text                      treat all files as text"
 msgstr "-a, --text                      az összes fájl szövegként kezelése"
 
-#: src/diff.c:939
+#: src/diff.c:999
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr         a záró kocsi vissza levágása a bemenetről"
 
-#: src/diff.c:941
+#: src/diff.c:1001
 msgid "    --binary                    read and write data in binary mode"
 msgstr "    --binary                    adatok olvasása és írása bináris módon"
 
-#: src/diff.c:944
+#: src/diff.c:1004
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
 "-D, --ifdef=NÉV                 egyesített fájlkiírás a „#ifdef NÉV” diffs\n"
 "                                  használatával"
 
-#: src/diff.c:945
+#: src/diff.c:1005
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr ""
 "    --GTYPE-group-format=GFMT   a GTYPE bemeneti csoportok formázása GFMT-vel"
 
-#: src/diff.c:946
+#: src/diff.c:1006
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr "    --line-format=LFMT          minden bemeneti sor formázása LFMT-vel"
 
-#: src/diff.c:947
+#: src/diff.c:1007
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr ""
 "    --LTYPE-line-format=LFMT    az LTYPE bemeneti sorok formázása LFMT-vel"
 
-#: src/diff.c:948
+#: src/diff.c:1008
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
@@ -977,13 +971,13 @@ msgstr ""
 "  Ezek a formázási lehetőségek részletes vezérlést biztosítanak a diff\n"
 "    kimenetén, általánosítva: -D/--ifdef."
 
-#: src/diff.c:950
+#: src/diff.c:1010
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
 "  Az LTYPE „old”, „new” vagy „unchanged”. A GTYPE értéke LTYPE vagy "
 "„changed”."
 
-#: src/diff.c:951
+#: src/diff.c:1011
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -1012,7 +1006,7 @@ msgstr ""
 "        M  L+1\n"
 "    %(A=B?T:E)  ha A egyenlő B, akkor T, egyébként E"
 
-#: src/diff.c:963
+#: src/diff.c:1023
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -1025,7 +1019,7 @@ msgstr ""
 "    %[-][SZÉLESSÉG][.[PONTOSSÁG]]{doxX}n  printf-stílusú megadás a bemeneti\n"
 "      sor számához"
 
-#: src/diff.c:967
+#: src/diff.c:1027
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1039,34 +1033,33 @@ msgstr ""
 "    %c'\\OOO'  a OOO oktális kódú karakter\n"
 "    C    a C karakter (más karakterek saját magukat ábrázolják)"
 
-#: src/diff.c:973
+#: src/diff.c:1033
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr ""
 "-d, --minimal            igyekszik egy kisebb változási halmazt megtalálni"
 
-#: src/diff.c:974
+#: src/diff.c:1034
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr ""
 "    --horizon-lines=SZÁM  a közös előtag és utótag SZÁM sorának megtartása"
 
-#: src/diff.c:975
+#: src/diff.c:1035
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
 "    --speed-large-files  nagy fájlokat és sok apró kis változást tételez fel"
 
-#: src/diff.c:976
-#, fuzzy
+#: src/diff.c:1036
 msgid ""
 "    --color[=WHEN]       color output; WHEN is 'never', 'always', or "
 "'auto';\n"
 "                           plain --color means --color='auto'"
 msgstr ""
 "    --color[=MIKOR]      a kimenet színezése; a MIKOR lehet „never” (soha),\n"
-"                           „always” (mindig), vagy „auto” (automatikus)\n"
-"                           (az alapértelmezett)"
+"                           „always” (mindig) vagy „auto” (automatikus)\n"
+"                           az egyszerű --color jelentése: --color='auto'"
 
-#: src/diff.c:978
+#: src/diff.c:1038
 msgid ""
 "    --palette=PALETTE    the colors to use when --color is active; PALETTE "
 "is\n"
@@ -1076,21 +1069,21 @@ msgstr ""
 "                           a PALETTA a terminfo képességek kettősponttal\n"
 "                           elválasztott listája"
 
-#: src/diff.c:981
+#: src/diff.c:1041
 msgid "    --help               display this help and exit"
 msgstr "    --help               ezen súgó megjelenítése és kilépés"
 
-#: src/diff.c:982
+#: src/diff.c:1042
 msgid "-v, --version            output version information and exit"
 msgstr "-v, --version            verzióinformációk kiírása és kilépés"
 
-#: src/diff.c:984
+#: src/diff.c:1044
 msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
 "A FÁJLOK az alábbiak lehetnek „FÁJL1 FÁJL2” vagy „KÖNYVTÁR1 KÖNYVTÁR2” vagy\n"
 "„KÖNYVTÁR FÁJL” vagy „FÁJL KÖNYVTÁR”."
 
-#: src/diff.c:985
+#: src/diff.c:1045
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr ""
@@ -1098,93 +1091,93 @@ msgstr ""
 "megszorítások\n"
 "a FÁJLOKRA."
 
-#: src/diff.c:986 src/diff3.c:533 src/sdiff.c:220
+#: src/diff.c:1046 src/diff3.c:531 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
 msgstr "Ha a FÁJL a „-”, akkor a szabványos bemenetről olvas."
 
-#: src/diff.c:996
+#: src/diff.c:1056
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Használat: %s [KAPCSOLÓ]… FÁJLOK\n"
 
-#: src/diff.c:997
+#: src/diff.c:1057
 msgid "Compare FILES line by line."
 msgstr "FÁJLOK összehasonlítása sorról sorra."
 
-#: src/diff.c:1034
+#: src/diff.c:1094
 #, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "ütköző %s kapcsoló érték: „%s”"
 
-#: src/diff.c:1047
+#: src/diff.c:1107
 #, c-format
 msgid "conflicting output style options"
 msgstr "ütköző kimeneti stílus kapcsolók"
 
-#: src/diff.c:1063
+#: src/diff.c:1123
 #, c-format
 msgid "invalid color '%s'"
 msgstr "érvénytelen szín: „%s”"
 
-#: src/diff.c:1119 src/diff.c:1329
+#: src/diff.c:1197 src/diff.c:1401
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Csak ebben: %s: %s\n"
 
-#: src/diff.c:1253
+#: src/diff.c:1325
 msgid "cannot compare '-' to a directory"
 msgstr "a „-” nem hasonlítható össze egy könyvtárral"
 
-#: src/diff.c:1288
+#: src/diff.c:1360
 msgid "-D option not supported with directories"
 msgstr "A -D kapcsoló könyvtáraknál nem támogatott"
 
-#: src/diff.c:1297
+#: src/diff.c:1369
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Közös alkönyvtárak: %s és %s\n"
 
-#: src/diff.c:1339 src/diff.c:1389
+#: src/diff.c:1411 src/diff.c:1461
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr "A(z) %s fájl egy %s, viszont a(z) %s fájl egy %s\n"
 
-#: src/diff.c:1375
+#: src/diff.c:1447
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "A(z) %s és a(z) %s szimbolikus linkek különböznek\n"
 
-#: src/diff.c:1462
+#: src/diff.c:1534
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "A(z) %s és a(z) %s fájlok azonosak\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff3.c:43
+#: src/diff3.c:51
 msgid "Randy Smith"
 msgstr "Randy Smith"
 
-#: src/diff3.c:356
+#: src/diff3.c:363
 #, c-format
 msgid "incompatible options"
 msgstr "összeférhetetlen kapcsolók"
 
-#: src/diff3.c:396
+#: src/diff3.c:403
 msgid "'-' specified for more than one input file"
 msgstr "a „-” több mint egy bemeneti fájlhoz lett megadva"
 
-#: src/diff3.c:447 src/diff3.c:1295 src/diff3.c:1698 src/diff3.c:1753
-#: src/sdiff.c:308 src/sdiff.c:846 src/sdiff.c:857
+#: src/diff3.c:445 src/diff3.c:1284 src/diff3.c:1683 src/diff3.c:1738
+#: src/sdiff.c:306 src/sdiff.c:843 src/sdiff.c:854
 msgid "read failed"
 msgstr "olvasás sikertelen"
 
-#: src/diff3.c:480
+#: src/diff3.c:478
 msgid "-A, --show-all              output all changes, bracketing conflicts"
 msgstr ""
 "-A, --show-all              minden változás kiírása, zárójelbe téve az\n"
 "                              ütközéseket"
 
-#: src/diff3.c:482
+#: src/diff3.c:480
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
@@ -1193,12 +1186,12 @@ msgstr ""
 "                                tartalmazza a RÉGIFÁJL és ÖNFÁJLJA "
 "változásait"
 
-#: src/diff3.c:484
+#: src/diff3.c:482
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
 msgstr ""
 "-E, --show-overlap          mint a -e, de zárójelbe teszi az ütközéseket"
 
-#: src/diff3.c:485
+#: src/diff3.c:483
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
@@ -1206,25 +1199,25 @@ msgstr ""
 "-3, --easy-only             mint a -e, de csak a nem átfedő változásokat\n"
 "                              tartalmazza"
 
-#: src/diff3.c:486
+#: src/diff3.c:484
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
 msgstr ""
 "-x, --overlap-only          mint a -e, de csak az átfedő változásokat\n"
 "                              tartalmazza"
 
-#: src/diff3.c:487
+#: src/diff3.c:485
 msgid "-X                          like -x, but bracket conflicts"
 msgstr ""
 "-X                          mint a -x, de zárójelbe teszi az ütközéseket"
 
-#: src/diff3.c:488
+#: src/diff3.c:486
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
 msgstr ""
 "-i                          „w” és „q” parancsok hozzáfűzése az ed\n"
 "                              parancsfájlokhoz"
 
-#: src/diff3.c:490
+#: src/diff3.c:488
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
@@ -1233,26 +1226,26 @@ msgstr ""
 "szerint,\n"
 "                                ha más kapcsoló nincs megadva"
 
-#: src/diff3.c:493
+#: src/diff3.c:491
 msgid "-a, --text                  treat all files as text"
 msgstr "-a, --text                  az összes fájl szövegként kezelése"
 
-#: src/diff3.c:494
+#: src/diff3.c:492
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
 msgstr "    --strip-trailing-cr     a záró kocsi vissza levágása a bemenetről"
 
-#: src/diff3.c:495
+#: src/diff3.c:493
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
 msgstr ""
 "-T, --initial-tab           beigazítja a tabulátorokat egy tabulátor\n"
 "                              hozzáfűzésével"
 
-#: src/diff3.c:496
+#: src/diff3.c:494
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
 msgstr ""
 "    --diff-program=PROGRAM  a PROGRAM használata fájlok összehasonlításához"
 
-#: src/diff3.c:497
+#: src/diff3.c:495
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
@@ -1260,24 +1253,24 @@ msgstr ""
 "-L, --label=CÍMKE           CÍMKE használata fájlnév helyett\n"
 "                                (legfeljebb háromszor ismételhető)"
 
-#: src/diff3.c:500
+#: src/diff3.c:498
 msgid "    --help                  display this help and exit"
 msgstr "    --help                  ezen súgó megjelenítése és kilépés"
 
-#: src/diff3.c:501
+#: src/diff3.c:499
 msgid "-v, --version               output version information and exit"
 msgstr "-v, --version               verzióinformációk kiírása és kilépés"
 
-#: src/diff3.c:510
+#: src/diff3.c:508
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
 msgstr "Használat: %s [KAPCSOLÓ]… SAJÁTFÁJL RÉGIFÁJL ÖNFÁJLJA\n"
 
-#: src/diff3.c:512
+#: src/diff3.c:510
 msgid "Compare three files line by line."
 msgstr "Három fájl összehasonlítása sorról sorra."
 
-#: src/diff3.c:522
+#: src/diff3.c:520
 msgid ""
 "\n"
 "The default output format is a somewhat human-readable representation of\n"
@@ -1302,56 +1295,56 @@ msgstr ""
 "belsőleg történő elvégzéséhez, és az aktuális egyesített fájlt írja ki.\n"
 "Szokatlan bemenethez ez sokkal erőteljesebb az ed használatánál.\n"
 
-#: src/diff3.c:534
+#: src/diff3.c:532
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
 msgstr ""
 "A kilépési állapotkód 0, ha sikeres; 1, ha ütközés van; 2, ha hiba történt."
 
-#: src/diff3.c:727
+#: src/diff3.c:725
 msgid "internal error: screwup in format of diff blocks"
 msgstr "belső hiba: zűrzavar az összehasonlítási blokkok formátumában"
 
-#: src/diff3.c:1022
+#: src/diff3.c:1015
 #, c-format
 msgid "%s: diff failed: "
 msgstr "%s: összehasonlítás sikertelen: "
 
-#: src/diff3.c:1044
+#: src/diff3.c:1037
 msgid "internal error: invalid diff type in process_diff"
 msgstr ""
 "belső hiba: érvénytelen összehasonlítási típus a process_diff függvényben"
 
-#: src/diff3.c:1069
+#: src/diff3.c:1060
 msgid "invalid diff format; invalid change separator"
 msgstr "érvénytelen összehasonlítási formátum; érvénytelen változáselválasztó"
 
-#: src/diff3.c:1305
+#: src/diff3.c:1294
 msgid "invalid diff format; incomplete last line"
 msgstr "érvénytelen összehasonlítási formátum; befejezetlen utolsó sor"
 
-#: src/diff3.c:1329 src/sdiff.c:276 src/util.c:969
+#: src/diff3.c:1318 src/sdiff.c:274 src/util.c:1069
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "a(z) „%s” kisegítő programot nem sikerült meghívni"
 
-#: src/diff3.c:1354
+#: src/diff3.c:1343
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "érvénytelen összehasonlítási formátum; helytelen sor eleji karakterek"
 
-#: src/diff3.c:1427
+#: src/diff3.c:1416
 msgid "internal error: invalid diff type passed to output"
 msgstr "belső hiba: érvénytelen összehasonlítási típus lett átadva kimenetnek"
 
-#: src/diff3.c:1700 src/diff3.c:1757
+#: src/diff3.c:1685 src/diff3.c:1742
 msgid "input file shrank"
 msgstr "a bementi fájl összement"
 
-#: src/dir.c:156
+#: src/dir.c:154
 #, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "nem sikerült a(z) „%s” és a(z) „%s” fájlneveket összehasonlítani"
 
-#: src/dir.c:225
+#: src/dir.c:223
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: rekurzív könyvtárhurok"
@@ -1361,127 +1354,127 @@ msgstr "%s: rekurzív könyvtárhurok"
 msgid "Thomas Lord"
 msgstr "Thomas Lord"
 
-#: src/sdiff.c:174
+#: src/sdiff.c:173
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
 msgstr ""
 "-o, --output=FÁJL            interaktív működés, kimenet küldése FÁJLBA"
 
-#: src/sdiff.c:176
+#: src/sdiff.c:175
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
 msgstr "-i, --ignore-case            a kis- és nagybetűket azonosnak tekinti"
 
-#: src/sdiff.c:177
+#: src/sdiff.c:176
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
 msgstr ""
 "-E, --ignore-tab-expansion   a tabulátorbővítés miatti változások mellőzése"
 
-#: src/sdiff.c:178
+#: src/sdiff.c:177
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
 msgstr "-Z, --ignore-trailing-space  a sorvégi üres helyek mellőzése"
 
-#: src/sdiff.c:179
+#: src/sdiff.c:178
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
 msgstr ""
 "-b, --ignore-space-change    üres helyek számában lévő változások mellőzése"
 
-#: src/sdiff.c:180
+#: src/sdiff.c:179
 msgid "-W, --ignore-all-space       ignore all white space"
 msgstr "-W, --ignore-all-space       minden üres hely mellőzése"
 
-#: src/sdiff.c:181
+#: src/sdiff.c:180
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
 msgstr "-B, --ignore-blank-lines     változások mellőzése, ahol a sorok üresek"
 
-#: src/sdiff.c:182
+#: src/sdiff.c:181
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=RK  változások mellőzése, ahol minden sor\n"
 "                                  illeszkedik az RK-ra"
 
-#: src/sdiff.c:183
+#: src/sdiff.c:182
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
 msgstr "    --strip-trailing-cr      a záró kocsi vissza levágása a bemenetről"
 
-#: src/sdiff.c:184
+#: src/sdiff.c:183
 msgid "-a, --text                   treat all files as text"
 msgstr "-a, --text                   az összes fájl szövegként kezelése"
 
-#: src/sdiff.c:186
+#: src/sdiff.c:185
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
 msgstr ""
 "-w, --width=SZÁM             legfeljebb SZÁM (alapértelmezetten 130)\n"
 "                               nyomtatási oszlop kiírása"
 
-#: src/sdiff.c:187
+#: src/sdiff.c:186
 msgid ""
 "-l, --left-column            output only the left column of common lines"
 msgstr ""
 "-l, --left-column            a közös soroknak csak a bal oszlopának kiírása"
 
-#: src/sdiff.c:188
+#: src/sdiff.c:187
 msgid "-s, --suppress-common-lines  do not output common lines"
 msgstr "-s, --suppress-common-lines  ne írja ki a közös sorokat"
 
-#: src/sdiff.c:190
+#: src/sdiff.c:189
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
 msgstr ""
 "-t, --expand-tabs            tabulátorok bővítése szóközökké a kimeneten"
 
-#: src/sdiff.c:191
+#: src/sdiff.c:190
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=SZÁM           a tabulátor megáll minden SZÁMADIK\n"
 "                               (alapértelmezetten 8) nyomtatási oszlopnál"
 
-#: src/sdiff.c:193
+#: src/sdiff.c:192
 msgid "-d, --minimal                try hard to find a smaller set of changes"
 msgstr ""
 "-d, --minimal                igyekszik egy kisebb változási halmazt "
 "megtalálni"
 
-#: src/sdiff.c:194
+#: src/sdiff.c:193
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
 msgstr ""
 "-H, --speed-large-files      nagy fájlokat, sok apró kis változást tételez "
 "fel"
 
-#: src/sdiff.c:195
+#: src/sdiff.c:194
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
 msgstr ""
 "    --diff-program=PROGRAM   a PROGRAM használata fájlok összehasonlításához"
 
-#: src/sdiff.c:197
+#: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
 msgstr "    --help                   ezen súgó megjelenítése és kilépés"
 
-#: src/sdiff.c:198
+#: src/sdiff.c:197
 msgid "-v, --version                output version information and exit"
 msgstr "-v, --version                verzióinformációk kiírása és kilépés"
 
-#: src/sdiff.c:207
+#: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
 msgstr "Használat: %s [KAPCSOLÓ]… FÁJL1 FÁJL2\n"
 
-#: src/sdiff.c:209
+#: src/sdiff.c:208
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
 msgstr "A FÁJL1 és FÁJL2 közötti különbségek egymás melletti egyesítése."
 
-#: src/sdiff.c:330
+#: src/sdiff.c:328
 msgid "cannot interactively merge standard input"
 msgstr "nem sikerült interaktívan egyesíteni a szabványos bemenetet"
 
-#: src/sdiff.c:597
+#: src/sdiff.c:594
 msgid "both files to be compared are directories"
 msgstr "mindkét összehasonlítandó fájl könyvtár"
 
-#: src/sdiff.c:820
+#: src/sdiff.c:817
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
 "eb:\tEdit then use both versions.\n"
@@ -1505,24 +1498,12 @@ msgstr ""
 "v:\tA közös sorok felvétele bőbeszédűen.\n"
 "q:\tKilépés.\n"
 
-#: src/util.c:662
+#: src/util.c:755
 #, c-format
 msgid "unrecognized prefix: %s"
 msgstr "azonosítatlan előtag: %s"
 
-#: src/util.c:692
+#: src/util.c:785
 #, c-format
 msgid "unparsable value for --palette"
 msgstr "feldolgozhatatlan érték a --palette kapcsolónál"
-
-#~ msgid "invalid %s%s argument '%s'"
-#~ msgstr "érvénytelen %s%s argumentum: „%s”"
-
-#~ msgid "invalid suffix in %s%s argument '%s'"
-#~ msgstr "érvénytelen utótag a(z) %s%s argumentumban: „%s”"
-
-#~ msgid "%s%s argument '%s' too large"
-#~ msgstr "%s%s: a(z) „%s” argumentum túl nagy"
-
-#~ msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
-#~ msgstr "A(z) %s honlapja: <https://www.gnu.org/software/%s/>.\n"
index 2d7007e..32b61ea 100644 (file)
Binary files a/po/id.gmo and b/po/id.gmo differ
index cca6a8d..b9a9298 100644 (file)
--- a/po/id.po
+++ b/po/id.po
@@ -1,47 +1,48 @@
 # Pesan bahasa indonesia untuk diffutils
 # Copyright (C) 2002 Free Software Foundation, Inc.
 # This file is distributed under the same license as the diffutils package.
-# Tedi Heriyanto <tedi_h@gmx.net>, 2002.
-# Arif E. Nugroho <arif_endro@yahoo.com>, 2008, 2009, 2010, 2011, 2012, 2013, 2014.
+# tedi heriyanto <tedi_h@gmx.net>, 2002.
+# arif e. nugroho <arif_endro@yahoo.com>, 2008-2014.
+# Andika Triwidada <andika@gmail.com>, 2021.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: diffutils 3.3-pre1\n"
+"Project-Id-Version: diffutils 3.7.41\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2021-08-01 18:56-0700\n"
-"PO-Revision-Date: 2014-08-03 08:00+0700\n"
-"Last-Translator: Arif E. Nugroho <arif_endro@yahoo.com>\n"
+"POT-Creation-Date: 2023-05-21 01:51-0700\n"
+"PO-Revision-Date: 2021-08-29 17:49+0700\n"
+"Last-Translator: Andika Triwidada <andika@gmail.com>\n"
 "Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
 "Language: id\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
+"X-Generator: Poedit 2.4.3\n"
 
-#: lib/argmatch.c:132
-#, fuzzy, c-format
+#: lib/argmatch.c:145
+#, c-format
 msgid "invalid argument %s for %s"
-msgstr "argumen %s%s tidak valid '%s'"
+msgstr "argumen %s untuk %s tidak valid"
 
-#: lib/argmatch.c:133
+#: lib/argmatch.c:146
 #, c-format
 msgid "ambiguous argument %s for %s"
-msgstr ""
+msgstr "argumen %s untuk %s ambigu"
 
-#: lib/argmatch.c:152 lib/argmatch.h:223
-#, fuzzy
+#: lib/argmatch.c:165 lib/argmatch.h:242
 msgid "Valid arguments are:"
-msgstr "argumen %s%s tidak valid '%s'"
+msgstr "Argumen yang valid adalah:"
 
-#: lib/c-stack.c:187
+#: lib/c-stack.c:186
 msgid "program error"
 msgstr "kesalahan program"
 
-#: lib/c-stack.c:188
+#: lib/c-stack.c:187
 msgid "stack overflow"
 msgstr "overflow stack"
 
-#: lib/error.c:195
+#: lib/error.c:193
 msgid "Unknown system error"
 msgstr "Kesalahan sistem tidak dikenal"
 
@@ -59,7 +60,7 @@ msgstr "direktori"
 
 #: lib/file-type.c:46
 msgid "symbolic link"
-msgstr "link simbolik"
+msgstr "taut simbolik"
 
 #: lib/file-type.c:52
 msgid "message queue"
@@ -67,7 +68,7 @@ msgstr "antrian pesan"
 
 #: lib/file-type.c:55
 msgid "semaphore"
-msgstr "semaphore"
+msgstr "semafor"
 
 #: lib/file-type.c:58
 msgid "shared memory object"
@@ -87,7 +88,7 @@ msgstr "berkas karakter spesial"
 
 #: lib/file-type.c:72
 msgid "contiguous data"
-msgstr ""
+msgstr "data yang berturutan"
 
 #: lib/file-type.c:75
 msgid "fifo"
@@ -95,43 +96,39 @@ msgstr "fifo"
 
 #: lib/file-type.c:78
 msgid "door"
-msgstr ""
+msgstr "door"
 
 #: lib/file-type.c:81
-#, fuzzy
 msgid "multiplexed block special file"
-msgstr "berkas blok spesial"
+msgstr "berkas spesial blok ter-multipleks"
 
 #: lib/file-type.c:84
-#, fuzzy
 msgid "multiplexed character special file"
-msgstr "berkas karakter spesial"
+msgstr "berkas spesial karakter ter-multipleks"
 
 #: lib/file-type.c:87
 msgid "multiplexed file"
-msgstr ""
+msgstr "berkas ter-multipleks"
 
 #: lib/file-type.c:90
-#, fuzzy
 msgid "named file"
-msgstr "berkas aneh"
+msgstr "berkas bernama"
 
 #: lib/file-type.c:93
-#, fuzzy
 msgid "network special file"
-msgstr "berkas blok spesial"
+msgstr "berkas spesial jaringan"
 
 #: lib/file-type.c:96
 msgid "migrated file with data"
-msgstr ""
+msgstr "berkas termigrasi dengan data"
 
 #: lib/file-type.c:99
 msgid "migrated file without data"
-msgstr ""
+msgstr "berkas termigrasi tanpa data"
 
 #: lib/file-type.c:102
 msgid "port"
-msgstr ""
+msgstr "port"
 
 #: lib/file-type.c:105
 msgid "socket"
@@ -139,36 +136,36 @@ msgstr "soket"
 
 #: lib/file-type.c:108
 msgid "whiteout"
-msgstr ""
+msgstr "whiteout"
 
 #: lib/file-type.c:110
 msgid "weird file"
 msgstr "berkas aneh"
 
 #: lib/getopt.c:278
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '%s%s' is ambiguous\n"
-msgstr "%s: pilihan '-W %s' ambigu\n"
+msgstr "%s: pilihan '%s%s' ambigu\n"
 
 #: lib/getopt.c:284
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '%s%s' is ambiguous; possibilities:"
-msgstr "%s: pilihan '%s' ambigu"
+msgstr "%s: pilihan '%s%s' ambigu; kemungkinan:"
 
 #: lib/getopt.c:319
-#, fuzzy, c-format
+#, c-format
 msgid "%s: unrecognized option '%s%s'\n"
-msgstr "%s: pilihan '%c%s' tidak dikenal\n"
+msgstr "%s: pilihan tidak dikenal '%s%s'\n"
 
 #: lib/getopt.c:345
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '%s%s' doesn't allow an argument\n"
-msgstr "%s: pilihan '%c%s' tidak mengijinkan sebuah argumen\n"
+msgstr "%s: pilihan '%s%s' tidak mengizinkan sebuah argumen\n"
 
 #: lib/getopt.c:360
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '%s%s' requires an argument\n"
-msgstr "%s: pilihan '--%s' membutuhkan sebuah argumen\n"
+msgstr "%s: pilihan '%s%s' membutuhkan sebuah argumen\n"
 
 #: lib/getopt.c:621
 #, c-format
@@ -201,84 +198,83 @@ msgstr "%s: pilihan -- '%c' membutuhkan sebuah argumen\n"
 #. If you don't know what to put here, please see
 #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:355
+#: lib/quotearg.c:354
 msgid "`"
-msgstr "`"
+msgstr "'"
 
-#: lib/quotearg.c:356
+#: lib/quotearg.c:355
 msgid "'"
 msgstr "'"
 
-#: lib/regcomp.c:135
+#: lib/regcomp.c:122
 msgid "Success"
 msgstr "Sukses"
 
-#: lib/regcomp.c:138
+#: lib/regcomp.c:125
 msgid "No match"
 msgstr "Tidak cocok"
 
-#: lib/regcomp.c:141
+#: lib/regcomp.c:128
 msgid "Invalid regular expression"
 msgstr "Ekspresi reguler tidak valid"
 
-#: lib/regcomp.c:144
+#: lib/regcomp.c:131
 msgid "Invalid collation character"
 msgstr "Karakter kolasi tidak valid"
 
-#: lib/regcomp.c:147
+#: lib/regcomp.c:134
 msgid "Invalid character class name"
 msgstr "Nama kelas karakter tidak valid"
 
-#: lib/regcomp.c:150
+#: lib/regcomp.c:137
 msgid "Trailing backslash"
 msgstr "Akhiran backslash"
 
-#: lib/regcomp.c:153
+#: lib/regcomp.c:140
 msgid "Invalid back reference"
 msgstr "Referensi balik tidak valid"
 
-#: lib/regcomp.c:156
-#, fuzzy
+#: lib/regcomp.c:143
 msgid "Unmatched [, [^, [:, [., or [="
-msgstr "Tidak cocok [ atau [^"
+msgstr "Tidak cocok [, [^, [:, [., atau [="
 
-#: lib/regcomp.c:159
+#: lib/regcomp.c:146
 msgid "Unmatched ( or \\("
 msgstr "Tidak cocok ( atau \\("
 
-#: lib/regcomp.c:162
+#: lib/regcomp.c:149
 msgid "Unmatched \\{"
 msgstr "Tidak cocok \\{"
 
-#: lib/regcomp.c:165
+#: lib/regcomp.c:152
 msgid "Invalid content of \\{\\}"
 msgstr "Isi dari \\{\\} tidak valid"
 
-#: lib/regcomp.c:168
+#: lib/regcomp.c:155
 msgid "Invalid range end"
-msgstr "Batas akhir tidak valid"
+msgstr "Akhir rentang tidak valid"
 
-#: lib/regcomp.c:171
+#: lib/regcomp.c:158
 msgid "Memory exhausted"
 msgstr "Kehabisan memori"
 
-#: lib/regcomp.c:174
+#: lib/regcomp.c:161
 msgid "Invalid preceding regular expression"
 msgstr "Ekspresi reguler yang mengawali tidak valid"
 
-#: lib/regcomp.c:177
+#: lib/regcomp.c:164
 msgid "Premature end of regular expression"
 msgstr "Ekspresi reguler berakhir dengan prematur"
 
-#: lib/regcomp.c:180
+#: lib/regcomp.c:167
 msgid "Regular expression too big"
 msgstr "Ekspresi reguler terlalu besar"
 
-#: lib/regcomp.c:183
+#: lib/regcomp.c:170
 msgid "Unmatched ) or \\)"
 msgstr "Tidak cocok ) atau \\)"
 
-#: lib/regcomp.c:676
+#: lib/regcomp.c:650
 msgid "No previous regular expression"
 msgstr "Tidak ada ekspresi reguler sebelumnya"
 
@@ -310,17 +306,17 @@ msgstr "gagal untuk membuka kembali %s dengan mode %s"
 #: lib/xstdopen.c:34
 #, c-format
 msgid "standard file descriptors"
-msgstr ""
+msgstr "deskriptor berkas standar"
 
 #: lib/version-etc.c:73
 #, c-format
 msgid "Packaged by %s (%s)\n"
-msgstr "Dibungkus oleh %s (%s)\n"
+msgstr "Dipaketkan oleh %s (%s)\n"
 
 #: lib/version-etc.c:76
 #, c-format
 msgid "Packaged by %s\n"
-msgstr "Dibungkus oleh %s\n"
+msgstr "Dipaketkan oleh %s\n"
 
 #. TRANSLATORS: Translate "(C)" to the copyright symbol
 #. (C-in-a-circle), if this symbol is available in the user's
@@ -331,18 +327,16 @@ msgstr "(C)"
 
 #. TRANSLATORS: The %s placeholder is the web address of the GPL license.
 #: lib/version-etc.c:88
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "License GPLv3+: GNU GPL version 3 or later <%s>.\n"
 "This is free software: you are free to change and redistribute it.\n"
 "There is NO WARRANTY, to the extent permitted by law.\n"
 msgstr ""
-"\n"
-"Lisensi GPLv3+: GNU GPL versi 3 atau selanjutnya <http://gnu.org/licenses/"
-"gpl.html>.\n"
-"Ini adalah perangkat lunak bebas: anda bebas untuk mengubah dan "
+"Lisensi GPLv3+: GNU GPL versi 3 atau setelahnya <%s>.\n"
+"Ini adalah perangkat lunak bebas: Anda bebas untuk mengubah dan "
 "mendistribusikannya.\n"
-"Tidak ada JAMINAN APAPUN, sepanjang masih diijinkan oleh hukum yang "
+"Tidak ada JAMINAN APA PUN, sepanjang masih diizinkan oleh hukum yang "
 "berlaku.\n"
 
 #. TRANSLATORS: %s denotes an author name.
@@ -372,7 +366,7 @@ msgid ""
 "Written by %s, %s, %s,\n"
 "and %s.\n"
 msgstr ""
-"Ditulias oleh %s, %s, %s,\n"
+"Ditulis oleh %s, %s, %s,\n"
 "dan %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
@@ -458,16 +452,14 @@ msgstr ""
 #. "Report translation bugs to <...>\n" with the address for translation
 #. bugs (typically your translation team's web or email address).
 #: lib/version-etc.c:249
-#, fuzzy, c-format
+#, c-format
 msgid "Report bugs to: %s\n"
-msgstr ""
-"\n"
-"Laporkan bugs ke: %s\n"
+msgstr "Laporkan kutu ke: %s\n"
 
 #: lib/version-etc.c:251
 #, c-format
 msgid "Report %s bugs to: %s\n"
-msgstr "Laporkan %s bugs ke: %s\n"
+msgstr "Laporkan kutu %s ke: %s\n"
 
 #: lib/version-etc.c:255 lib/version-etc.c:257
 #, c-format
@@ -475,22 +467,21 @@ msgid "%s home page: <%s>\n"
 msgstr "%s halaman rumah: <%s>\n"
 
 #: lib/version-etc.c:260
-#, fuzzy, c-format
+#, c-format
 msgid "General help using GNU software: <%s>\n"
-msgstr ""
-"Bantuan umum menggunakan perangkat lunak GNU: <http://www.gnu.org/gethelp>\n"
+msgstr "Bantuan umum menggunakan perangkat lunak GNU: <%s>\n"
 
-#: src/analyze.c:454 src/diff.c:1406
+#: src/analyze.c:455 src/diff.c:1478
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Berkas %s dan %s berbeda\n"
 
-#: src/analyze.c:455
+#: src/analyze.c:456
 #, c-format
 msgid "Binary files %s and %s differ\n"
-msgstr "File biner %s dan %s berbeda\n"
+msgstr "Berkas biner %s dan %s berbeda\n"
 
-#: src/analyze.c:706 src/diff3.c:1470 src/util.c:1254
+#: src/analyze.c:707 src/diff3.c:1457 src/util.c:1354
 msgid "No newline at end of file"
 msgstr "Tidak ada baris-baru di akhir dari berkas"
 
@@ -504,93 +495,94 @@ msgstr "Torbjorn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:120 src/diff.c:879 src/diff3.c:467 src/sdiff.c:160
+#: src/cmp.c:124 src/diff.c:939 src/diff3.c:465 src/sdiff.c:159
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Coba '%s --help' untuk informasi lebih lanjut."
 
-#: src/cmp.c:138
+#: src/cmp.c:142
 #, c-format
 msgid "invalid --ignore-initial value '%s'"
 msgstr "tidak valid --ignore-initial nilai '%s'"
 
-#: src/cmp.c:148
+#: src/cmp.c:152
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr "pilihan -l dan -s tidak kompatibel"
 
-#: src/cmp.c:156 src/diff.c:887 src/diff3.c:474 src/sdiff.c:168 src/sdiff.c:316
-#: src/sdiff.c:323 src/sdiff.c:876 src/util.c:852 src/util.c:952 src/util.c:959
+#: src/cmp.c:160 src/diff.c:947 src/diff3.c:472 src/sdiff.c:167 src/sdiff.c:314
+#: src/sdiff.c:321 src/sdiff.c:873 src/util.c:952 src/util.c:1052
+#: src/util.c:1059
 msgid "write failed"
 msgstr "gagal menulis"
 
-#: src/cmp.c:158 src/diff.c:889 src/diff.c:1471 src/diff3.c:476 src/sdiff.c:170
+#: src/cmp.c:162 src/diff.c:949 src/diff.c:1543 src/diff3.c:474 src/sdiff.c:169
 msgid "standard output"
 msgstr "standar keluaran"
 
-#: src/cmp.c:162
+#: src/cmp.c:166
 msgid "-b, --print-bytes          print differing bytes"
-msgstr "-b,  --print-bytes  Tampilkan byte yang berbeda."
+msgstr "-b, --print-bytes          tampilkan byte yang berbeda"
 
-#: src/cmp.c:163
+#: src/cmp.c:167
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
-msgstr "-i,  --ignore-initial=SKIP  Lewati SKIP byte pertama dari masukan."
+msgstr ""
+"-i, --ignore-initial=SKIP         lewati SKIP byte awal dari kedua masukan"
 
-#: src/cmp.c:164
+#: src/cmp.c:168
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
 msgstr ""
-"-i, --ignore-initial=SKIP1:SKIP2  Lewati SKIP1 byte pertama FILE1 dan SKIP2 "
-"byte pertama FILE2.\n"
-"                                      first SKIP2 bytes of FILE2"
+"-i, --ignore-initial=SKIP1:SKIP2  lewati SKIP1 byte awal FILE1\n"
+"                                       dan SKIP2 byte awal FILE2"
 
-#: src/cmp.c:166
+#: src/cmp.c:170
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
 msgstr ""
-"-l,  --verbose  Keluarkan jumlah byte dan nilai semua byte yang berbeda."
+"-l, --verbose              keluarkan cacah byte dan nilai semua byte yang "
+"berbeda"
 
-#: src/cmp.c:167
+#: src/cmp.c:171
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
-msgstr "-n,  --bytes=LIMIT  Bandingkan paling banyak LIMIT byte."
+msgstr "-n, --bytes=LIMIT          bandingkan paling banyak LIMIT byte"
 
-#: src/cmp.c:168
+#: src/cmp.c:172
 msgid "-s, --quiet, --silent      suppress all normal output"
-msgstr "-s, --quiet, --silent      suppress all normal output"
+msgstr "-s, --quiet, --silent      cegah semua keluaran normal"
 
-#: src/cmp.c:169
+#: src/cmp.c:173
 msgid "    --help                 display this help and exit"
-msgstr "    --help                 display this help and exit"
+msgstr "    --help                 tampilkan bantuan ini dan keluar"
 
-#: src/cmp.c:170
+#: src/cmp.c:174
 msgid "-v, --version              output version information and exit"
-msgstr "-v,  --version  Tampilkan informasi versi."
+msgstr "-v, --version              tampilkan informasi versi dan keluar"
 
-#: src/cmp.c:179
+#: src/cmp.c:183
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
 msgstr "Penggunaan: %s [PILIHAN]... BERKAS1 [BERKAS2 [SKIP1 [SKIP2]]]\n"
 
-#: src/cmp.c:181
+#: src/cmp.c:185
 msgid "Compare two files byte by byte."
-msgstr "Bandingkan dua file byte per byte"
+msgstr "Bandingkan dua berkas byte per byte."
 
-#: src/cmp.c:183
+#: src/cmp.c:187
 msgid ""
 "The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
 "at the beginning of each file (zero by default)."
 msgstr ""
-"SKIP1 dan SKIP2 adalah jumlah byte yang harus dilewati di tiap file.\n"
-"at the beginning of each file (zero by default)."
+"SKIP1 dan SKIP2 adalah jumlah byte yang harus dilewati di awal\n"
+"setiap berkas (nilai baku adalah nol)."
 
-#: src/cmp.c:186 src/diff.c:999 src/diff3.c:514 src/sdiff.c:211
+#: src/cmp.c:190 src/diff.c:1059 src/diff3.c:512 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
-msgstr ""
-"Mandatory arguments to long options are mandatory for short options too.\n"
+msgstr "Argumen wajib ke opsi panjang juga wajib untuk opsi pendek.\n"
 
-#: src/cmp.c:192
+#: src/cmp.c:196
 msgid ""
 "SKIP values may be followed by the following multiplicative suffixes:\n"
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
@@ -600,358 +592,376 @@ msgstr ""
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
 "GB 1,000,000,000, G 1,073,741,824, dan seterusnya untuk T, P, E, Z, Y."
 
-#: src/cmp.c:195
+#: src/cmp.c:199
 msgid "If a FILE is '-' or missing, read standard input."
-msgstr "Jika sebuah FILE adalah '-' atau tidak ada, baca input standar"
+msgstr "Jika sebuah FILE adalah '-' atau tidak ada, baca masukan standar."
 
-#: src/cmp.c:196 src/diff.c:987 src/sdiff.c:221
+#: src/cmp.c:200 src/diff.c:1047 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr ""
 "Status keluar adalah 0 jika masukan sama, 1 jika berbeda, 2 jika bermasalah."
 
-#: src/cmp.c:243
+#: src/cmp.c:247
 #, c-format
 msgid "invalid --bytes value '%s'"
 msgstr "nilai --byte tidak valid '%s'"
 
-#: src/cmp.c:269 src/diff.c:797 src/diff3.c:361 src/sdiff.c:567
+#: src/cmp.c:273 src/diff.c:857 src/diff3.c:368 src/sdiff.c:564
 #, c-format
 msgid "missing operand after '%s'"
 msgstr "tidak ada operand setelah '%s'"
 
-#: src/cmp.c:281 src/diff.c:799 src/diff3.c:363 src/sdiff.c:569
+#: src/cmp.c:285 src/diff.c:859 src/diff3.c:370 src/sdiff.c:566
 #, c-format
 msgid "extra operand '%s'"
 msgstr "operand ekstra '%s'"
 
-#: src/cmp.c:507
+#: src/cmp.c:521
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s berbeda: byte %s, baris %s\n"
 
-#: src/cmp.c:523
+#: src/cmp.c:537
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
 msgstr "%s %s berbeda: byte %s, baris %s adalah %3o %s %3o %s\n"
 
-#: src/cmp.c:580
-#, fuzzy, c-format
+#: src/cmp.c:594
+#, c-format
 msgid "cmp: EOF on %s which is empty\n"
-msgstr "cmp: EOF pada %s\n"
+msgstr "cmp: EOF pada %s yang kosong\n"
 
-#: src/cmp.c:594
-#, fuzzy, c-format
+#: src/cmp.c:608
+#, c-format
 msgid "cmp: EOF on %s after byte %s, line %s\n"
-msgstr "%s %s berbeda: byte %s, baris %s\n"
+msgstr "cmp: EOF pada %s setelah byte %s, baris %s\n"
 
-#: src/cmp.c:595
-#, fuzzy, c-format
+#: src/cmp.c:609
+#, c-format
 msgid "cmp: EOF on %s after byte %s, in line %s\n"
-msgstr "%s %s berbeda: byte %s, baris %s\n"
+msgstr "cmp: EOF pada %s setelah %s byte, dalam baris %s\n"
 
-#: src/cmp.c:601
-#, fuzzy, c-format
+#: src/cmp.c:615
+#, c-format
 msgid "cmp: EOF on %s after byte %s\n"
-msgstr "cmp: EOF pada %s\n"
+msgstr "cmp: EOF pada %s setelah byte %s\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:51
+#: src/diff.c:50
 msgid "Paul Eggert"
 msgstr "Paul Eggert"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:52
+#: src/diff.c:51
 msgid "Mike Haertel"
 msgstr "Mike Haertel"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:53
+#: src/diff.c:52
 msgid "David Hayes"
 msgstr "David Hayes"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:54
+#: src/diff.c:53
 msgid "Richard Stallman"
 msgstr "Richard Stallman"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:55
+#: src/diff.c:54
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:355
+#: src/diff.c:365
 #, c-format
 msgid "invalid context length '%s'"
 msgstr "panjang context tidak valid '%s'"
 
-#: src/diff.c:438
+#: src/diff.c:487
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "paginasi tidak didukung pada host ini"
 
-#: src/diff.c:453 src/diff3.c:341
+#: src/diff.c:502 src/diff3.c:348
 #, c-format
 msgid "too many file label options"
-msgstr "terlalu banyak option label file"
+msgstr "terlalu banyak opsi label berkas"
 
-#: src/diff.c:530
+#: src/diff.c:579
 #, c-format
 msgid "invalid width '%s'"
 msgstr "lebar tidak valid '%s'"
 
-#: src/diff.c:534
+#: src/diff.c:583
 msgid "conflicting width options"
-msgstr "option lebar konflik"
+msgstr "konflik opsi lebar"
 
-#: src/diff.c:559
+#: src/diff.c:608
 #, c-format
 msgid "invalid horizon length '%s'"
 msgstr "panjang horizon tidak valid '%s'"
 
-#: src/diff.c:615
+#: src/diff.c:664
 #, c-format
 msgid "invalid tabsize '%s'"
 msgstr "tabsize tidak valid '%s'"
 
-#: src/diff.c:619
+#: src/diff.c:668
 msgid "conflicting tabsize options"
-msgstr "option tabsize konflik"
+msgstr "konflik opsi tabsize"
 
-#: src/diff.c:774
+#: src/diff.c:834
 msgid "--from-file and --to-file both specified"
 msgstr "--from-file dan --to-file keduanya disebutkan"
 
-#: src/diff.c:893
+#: src/diff.c:953
 msgid "    --normal                  output a normal diff (the default)"
-msgstr "--normal  Output normal diff."
+msgstr "    --normal                  keluarkan diff normal (baku)"
 
-#: src/diff.c:894
+#: src/diff.c:954
 msgid "-q, --brief                   report only when files differ"
-msgstr "-q,  --brief  Tampilkan hanya apakah file berbeda."
+msgstr "-q, --brief                   laporkan hanya ketika berkas berbeda"
 
-#: src/diff.c:895
+#: src/diff.c:955
 msgid "-s, --report-identical-files  report when two files are the same"
-msgstr "-s,  --report-identical-files  Laporkan ketika dua file sama."
+msgstr "-s, --report-identical-files  laporkan ketika dua berkas sama"
 
-#: src/diff.c:896
+#: src/diff.c:956
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
-"-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
+"-c, -C NUM, --context[=NUM]   keluarkan NUM (baku 3) baris dari konteks yang "
+"disalin"
 
-#: src/diff.c:897
+#: src/diff.c:957
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
-"-w, NUM  --width=NUM  Output paling banyak NUM (baku 130) kolom cetakan."
+"-u, -U NUM, --unified[=NUM]   keluarkan NUM (baku 3) baris dari konteks "
+"terpadu"
 
-#: src/diff.c:898
+#: src/diff.c:958
 msgid "-e, --ed                      output an ed script"
-msgstr "-e,  --ed  Output adalah script ed."
+msgstr "-e, --ed                      keluarkan suatu skrip ed"
 
-#: src/diff.c:899
+#: src/diff.c:959
 msgid "-n, --rcs                     output an RCS format diff"
-msgstr "-n,  --rcs  Output dalam format RCS diff."
+msgstr "-n, --rcs                     keluaran dalam format RCS diff"
 
-#: src/diff.c:900
+#: src/diff.c:960
 msgid "-y, --side-by-side            output in two columns"
-msgstr "-y, --side-by-side            output in two columns"
+msgstr "-y, --side-by-side            keluaran dalam dua kolom"
 
-#: src/diff.c:901
+#: src/diff.c:961
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
-msgstr "-W,  --width=NUM  Output paling banyak NUM (baku 130) kolom cetakan."
+msgstr ""
+"-W, --width=NUM               keluarkan paling banyak NUM (baku 130) kolom "
+"cetak"
 
-#: src/diff.c:902
+#: src/diff.c:962
 msgid ""
 "    --left-column             output only the left column of common lines"
-msgstr "  --left-column  Hanya tampilkan kolom kiri baris yang sama."
+msgstr ""
+"    --left-column             hanya tampilkan kolom kiri baris yang sama"
 
-#: src/diff.c:903
+#: src/diff.c:963
 msgid "    --suppress-common-lines   do not output common lines"
-msgstr "  --suppress-common-lines  Jangan tampilkan baris yang sama."
+msgstr "    --suppress-common-lines   jangan tampilkan baris yang sama"
 
-#: src/diff.c:905
+#: src/diff.c:965
 msgid "-p, --show-c-function         show which C function each change is in"
-msgstr "-p, --show-c-function         show which C function each change is in"
+msgstr ""
+"-p, --show-c-function         tunjukkan dalam fungsi C mana setiap perubahan"
 
-#: src/diff.c:906
+#: src/diff.c:966
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
-msgstr "-F, --show-function-line=RE   show the most recent line matching RE"
+msgstr "-F, --show-function-line=RE   tunjukkan baris terkini yang cocok RE"
 
-#: src/diff.c:907
-#, fuzzy
+#: src/diff.c:967
 msgid ""
 "    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
 msgstr ""
-"    --label LABEL             use LABEL instead of file name\n"
-"                                (can be repeated)"
+"    --label LABEL             pakai LABEL bukan nama berkas dan stempel "
+"waktu\n"
+"                                (dapat diulang)"
 
-#: src/diff.c:910
+#: src/diff.c:970
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
-msgstr "-t,  --expand-tabs  Ekspansi tab ke spasi dalam output."
+msgstr "-t, --expand-tabs             ekspansi tab ke spasi dalam keluaran"
 
-#: src/diff.c:911
+#: src/diff.c:971
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
-msgstr "-T,  --initial-tab  Buat tab beraturan dg menambahkan sebuah tab."
+msgstr ""
+"-T, --initial-tab             buat tab lurus dengan menyisip di depan tab"
 
-#: src/diff.c:912
+#: src/diff.c:972
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
-msgstr "--tabsize=NUM  Tab stop adalah setiap NUM (default 8) kolom cetakan."
+msgstr ""
+"    --tabsize=NUM             tab stop adalah setiap NUM (baku 8) kolom cetak"
 
-#: src/diff.c:913
+#: src/diff.c:973
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
-"--suppress-blank-empty Tekan spasi atau tab sebelum mengeluarkan baris "
-"kosong."
+"    --suppress-blank-empty    cegah spasi atau tab sebelum keluaran baris "
+"kosong"
 
-#: src/diff.c:914
+#: src/diff.c:974
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
-msgstr "-l,  --paginate  Berikan output ke `pr' untuk di-paginate."
+msgstr ""
+"-l, --paginate                berikan keluaran ke 'pr' untuk di-paginate"
 
-#: src/diff.c:916
+#: src/diff.c:976
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
-msgstr "-r,  --recursive  Membandingkan subdirektori secara rekursif."
+msgstr ""
+"-r, --recursive                 membandingkan subdirektori secara rekursif"
 
-#: src/diff.c:917
+#: src/diff.c:977
 msgid "    --no-dereference            don't follow symbolic links"
-msgstr "    --no-dereference            don't follow symbolic links"
+msgstr "    --no-dereference            jangan ikuti taut simbolik"
 
-#: src/diff.c:918
+#: src/diff.c:978
 msgid "-N, --new-file                  treat absent files as empty"
-msgstr "-N,  --new-file  Perlakukan tiada file sebagai kosong."
+msgstr ""
+"-N, --new-file                  perlakukan berkas yang tiada sebagai kosong"
 
-#: src/diff.c:919
+#: src/diff.c:979
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
-"--unidirectional-new-file  Anggap file tidak ada pertama sebagai kosong."
+"    --unidirectional-new-file   anggap berkas pertama yang tidak ada sebagai "
+"kosong"
 
-#: src/diff.c:920
+#: src/diff.c:980
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
-msgstr "--ignore-file-name-case  Abaikan case saat membandingkan nama file."
+msgstr ""
+"    --ignore-file-name-case     abaikan besar kecil saat membandingkan nama "
+"berkas"
 
-#: src/diff.c:921
+#: src/diff.c:981
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
-"--no-ignore-file-name-case  Pertimbangkan case saat membandingkan nama file."
+"    --no-ignore-file-name-case  pertimbangkan besar kecil saat membandingkan "
+"nama berkas"
 
-#: src/diff.c:922
+#: src/diff.c:982
 msgid "-x, --exclude=PAT               exclude files that match PAT"
-msgstr "-x,  --exclude=PAT  Tanpa file yang cocok dengan PAT."
+msgstr "-x, --exclude=PAT               tanpa berkas yang cocok dengan PAT"
 
-#: src/diff.c:923
+#: src/diff.c:983
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
-"-X,  --exclude-from=FILE  Abaikan file yang cocok dengan pola dalam FILE"
+"-X, --exclude-from=FILE         abaikan berkas yang cocok dengan pola dalam "
+"FILE"
 
-#: src/diff.c:924
+#: src/diff.c:984
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
-"-S,  --starting-file=FILE  Mulai dengan FILE ketika membandingkan direktori."
+"-S, --starting-file=FILE        mulai dengan FILE ketika membandingkan "
+"direktori"
 
-#: src/diff.c:925
+#: src/diff.c:985
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
 msgstr ""
-"--from-file=FILE1  Bandingkan FILE1 ke semua operand.  FILE1 dapat berupa "
-"direktori.\n"
-"                                  FILE1 can be a directory"
+"    --from-file=FILE1           bandingkan FILE1 ke semua operand;\n"
+"                                  FILE1 dapat berupa direktori"
 
-#: src/diff.c:927
+#: src/diff.c:987
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
 msgstr ""
-"--to-file=FILE2  Bandingkan semua operand dengan FILE2.  FILE2 dapat berupa "
-"direktori.\n"
-"                                  FILE2 can be a directory"
+"    --to-file=FILE2             bandingkan semua operand dengan FILE2;\n"
+"                                  FILE2 dapat berupa direktori"
 
-#: src/diff.c:930
+#: src/diff.c:990
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
-msgstr "-i,  --ignore-case  Abaikan beda case dalam isi file."
+msgstr ""
+"-i, --ignore-case               abaikan perbedaan huruf besar kecil dalam "
+"isi berkas"
 
-#: src/diff.c:931
+#: src/diff.c:991
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
-msgstr "-E,  --ignore-tab-expansion  Abaikan perubahan akibat ekspansi tab."
+msgstr "-E, --ignore-tab-expansion      abaikan perubahan akibat ekspansi tab"
 
-#: src/diff.c:932
+#: src/diff.c:992
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
-msgstr "-Z,  --ignore-all-space  Abaikan seluruh white space."
+msgstr "-Z, --ignore-trailling-space     abaikan white space di akhir baris"
 
-#: src/diff.c:933
+#: src/diff.c:993
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
-msgstr "-b,  --ignore-space-change  Abaikan perubahan sejumlah white space."
+msgstr ""
+"-b, --ignore-space-change       abaikan perubahan banyaknya white space"
 
-#: src/diff.c:934
+#: src/diff.c:994
 msgid "-w, --ignore-all-space          ignore all white space"
-msgstr "-w,  --ignore-all-space  Abaikan seluruh white space."
+msgstr "-W, --ignore-all-space          abaikan semua white space"
 
-#: src/diff.c:935
+#: src/diff.c:995
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
-msgstr "-B,  --ignore-blank-lines   Abaikan perubahan baris kosong."
+msgstr "-B, --ignore-blank-lines        abaikan perubahan baris kosong"
 
-#: src/diff.c:936
+#: src/diff.c:996
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
-"-I,  --ignore-matching-lines=RE  Abaikan perubahan baris yang cocok dg RE."
+"-I, --ignore-matching-lines=RE  abaikan perubahan baris yang cocok dengan RE"
 
-#: src/diff.c:938
+#: src/diff.c:998
 msgid "-a, --text                      treat all files as text"
-msgstr "-a,  --text  Perlakukan seluruh file sebagai teks."
+msgstr "-a, --text                      perlakukan semua berkas sebagai teks"
 
-#: src/diff.c:939
+#: src/diff.c:999
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
-msgstr "--strip-trailing-cr  Hapus trailing carriage return pada input."
+msgstr ""
+"    --strip-trailing-cr         hapus carriage return di akhir pada masukan"
 
-#: src/diff.c:941
+#: src/diff.c:1001
 msgid "    --binary                    read and write data in binary mode"
-msgstr "--binary Baca dan tulis data dalam mode biner."
+msgstr "    --binary                    baca dan tulis data dalam mode biner"
 
-#: src/diff.c:944
+#: src/diff.c:1004
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
-"-D,  --ifdef=NAME  Output file merge untuk tampilkan `#ifdef NAME' diffs."
+"-D, --ifdef=NAME                keluarkan berkas yang tergabung dengan diff "
+"'#ifdef NAME'"
 
-#: src/diff.c:945
+#: src/diff.c:1005
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
-msgstr ""
-"--GTYPE-group-format=GFMT Serupa, tapi format input kelompok GTYPE dg GFMT. "
+msgstr "    --GTYPE-group-format=GFMT   format grup masukan GTYPE dengan GFMT"
 
-#: src/diff.c:946
+#: src/diff.c:1006
 msgid "    --line-format=LFMT          format all input lines with LFMT"
-msgstr "--line-format=LFMT Serupa, tapi format seluruh baris input dg LFMT."
+msgstr "    --line-format=LFMT          format semua baris masukan denga LFMT"
 
-#: src/diff.c:947
+#: src/diff.c:1007
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
-msgstr ""
-"--LTYPE-line-format=LFMT Serupa, tapi format baris input LTYPE dg LFMT."
+msgstr "    --LTYPE-line-format=LFMT    format baris masukan LTYPE dengan LFMT"
 
-#: src/diff.c:948
+#: src/diff.c:1008
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
 msgstr ""
-"  These format options provide fine-grained control over the output\n"
-"    of diff, generalizing -D/--ifdef."
+"  Opsi format ini menyediakan kendali halus atas keluaran\n"
+"    diff, menggeneralisasi -D/--ifdef."
 
-#: src/diff.c:950
+#: src/diff.c:1010
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
 "  LTYPE adalah 'old', 'new', atau 'unchanged'.  GTYPE adalah LTYPE atau "
 "'changed'."
 
-#: src/diff.c:951
+#: src/diff.c:1011
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -980,7 +990,7 @@ msgstr ""
 "        M  L+1\n"
 "    %(A=B?T:E)  if A equals B then T else E"
 
-#: src/diff.c:963
+#: src/diff.c:1023
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -990,9 +1000,9 @@ msgstr ""
 "  LFMT dapat berisi:\n"
 "    %L  isi baris\n"
 "    %l  isi baris, tanpa baris baru\n"
-"    %[-][WIDTH][.[PREC]]{doxX}n  printf-style spec untuk nomor baris input"
+"    %[-][WIDTH][.[PREC]]{doxX}n  printf-style spec untuk nomor baris masukan"
 
-#: src/diff.c:967
+#: src/diff.c:1027
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1005,222 +1015,236 @@ msgstr ""
 "    %c'C'  karakter tunggal C\n"
 "    %c'\\OOO'  karakter dengan kode oktal OOO"
 
-#: src/diff.c:973
+#: src/diff.c:1033
 msgid "-d, --minimal            try hard to find a smaller set of changes"
-msgstr "-d,  --minimal  Usahakan mencari perubahan terkecil."
+msgstr ""
+"-d, --minimal            usaha keras untuk mencari set perubahan terkecil"
 
-#: src/diff.c:974
+#: src/diff.c:1034
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
-msgstr "--horizon-lines=NUM Pertahankan NUM baris prefiks dan suffiks umum."
+msgstr ""
+"    --horizon-lines=NUM  pertahankan NUM baris prefiks dan suffiks umum"
 
-#: src/diff.c:975
+#: src/diff.c:1035
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
-"  --speed-large-files  Asumsikan file besar dan banyak sebaran perubahan "
-"kecil."
+"    --speed-large-files  asumsikan berkas besar dan banyak perubahan kecil "
+"tersebar"
 
-#: src/diff.c:976
+#: src/diff.c:1036
 msgid ""
 "    --color[=WHEN]       color output; WHEN is 'never', 'always', or "
 "'auto';\n"
 "                           plain --color means --color='auto'"
 msgstr ""
+"    --color[=WHEN]       warnai keluaran; WHEN adalah 'never', 'always', "
+"atau 'auto';\n"
+"                           --color polos berarti --color='auto'"
 
-#: src/diff.c:978
+#: src/diff.c:1038
 msgid ""
 "    --palette=PALETTE    the colors to use when --color is active; PALETTE "
 "is\n"
 "                           a colon-separated list of terminfo capabilities"
 msgstr ""
+"    --palette=PALETTE    warna yang dipakai ketika --color aktif; PALETTE "
+"adalah\n"
+"                           daftar dipisah titik dua dari kapabilitas terminfo"
 
-#: src/diff.c:981
+#: src/diff.c:1041
 msgid "    --help               display this help and exit"
-msgstr "    --help               display this help and exit"
+msgstr "    --help                 tampilkan bantuan ini dan keluar"
 
-#: src/diff.c:982
+#: src/diff.c:1042
 msgid "-v, --version            output version information and exit"
-msgstr "-v,  --version  Tampilkan informasi versi."
+msgstr "-v, --version            tampilkan informasi versi dan keluar"
 
-#: src/diff.c:984
-#, fuzzy
+#: src/diff.c:1044
 msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
-"FILES adalah 'FILE1 FILE2' atau 'DIR1 DIR2' atau 'DIR FILE...' atau 'FILE... "
-"DIR'."
+"FILES adalah 'FILE1 FILE2' atau 'DIR1 DIR2' atau 'DIR FILE' atau 'FILE DIR'."
 
-#: src/diff.c:985
+#: src/diff.c:1045
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr ""
 "Bila --from-file atau --to-file diberikan, tidak ada batasan untuk FILES."
 
-#: src/diff.c:986 src/diff3.c:533 src/sdiff.c:220
+#: src/diff.c:1046 src/diff3.c:531 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
-msgstr "Jika sebuah file FILE adalah '-', baca standard input."
+msgstr "Jika sebuah FILE adalah '-', baca masukan standard."
 
-#: src/diff.c:996
+#: src/diff.c:1056
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
-msgstr "Penggunaan: %s [OPTION]... FILES\n"
+msgstr "Penggunaan: %s [OPTION]... BERKAS\n"
 
-#: src/diff.c:997
+#: src/diff.c:1057
 msgid "Compare FILES line by line."
-msgstr "Bandingkan file baris per baris"
+msgstr "Bandingkan FILE baris per baris."
 
-#: src/diff.c:1034
+#: src/diff.c:1094
 #, c-format
 msgid "conflicting %s option value '%s'"
-msgstr "Nilai option %s konflik dengan '%s'"
+msgstr "nilai opsi %s konflik dengan '%s'"
 
-#: src/diff.c:1047
+#: src/diff.c:1107
 #, c-format
 msgid "conflicting output style options"
-msgstr "option gaya output konflik"
+msgstr "konflik opsi gaya keluaran"
 
-#: src/diff.c:1063
-#, fuzzy, c-format
+#: src/diff.c:1123
+#, c-format
 msgid "invalid color '%s'"
-msgstr "lebar tidak valid '%s'"
+msgstr "warna tidak valid '%s'"
 
-#: src/diff.c:1119 src/diff.c:1329
+#: src/diff.c:1197 src/diff.c:1401
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Hanya dalam %s: %s\n"
 
-#: src/diff.c:1253
+#: src/diff.c:1325
 msgid "cannot compare '-' to a directory"
 msgstr "tidak dapat membandingkan '-' dg direktori"
 
-#: src/diff.c:1288
+#: src/diff.c:1360
 msgid "-D option not supported with directories"
 msgstr "-D option tidak didukung dg direktori"
 
-#: src/diff.c:1297
+#: src/diff.c:1369
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Subdirektori sama: %s dan %s\n"
 
-#: src/diff.c:1339 src/diff.c:1389
+#: src/diff.c:1411 src/diff.c:1461
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
-msgstr "File %s adalah %s sementara file %s adalah %s\n"
+msgstr "Berkas %s adalah %s sementara berkas %s adalah %s\n"
 
-#: src/diff.c:1375
+#: src/diff.c:1447
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "Berkas %s dan %s berbeda\n"
 
-#: src/diff.c:1462
+#: src/diff.c:1534
 #, c-format
 msgid "Files %s and %s are identical\n"
-msgstr "File %s dan %s identik\n"
+msgstr "Berkas %s dan %s identik\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff3.c:43
+#: src/diff3.c:51
 msgid "Randy Smith"
 msgstr "Randy Smith"
 
-#: src/diff3.c:356
+#: src/diff3.c:363
 #, c-format
 msgid "incompatible options"
-msgstr "option tidak kompatibel"
+msgstr "opsi tidak kompatibel"
 
-#: src/diff3.c:396
+#: src/diff3.c:403
 msgid "'-' specified for more than one input file"
-msgstr "'-' dispesifikasikan lebih dari satu file input"
+msgstr "'-' dispesifikasikan lebih dari satu berkas masukan"
 
-#: src/diff3.c:447 src/diff3.c:1295 src/diff3.c:1698 src/diff3.c:1753
-#: src/sdiff.c:308 src/sdiff.c:846 src/sdiff.c:857
+#: src/diff3.c:445 src/diff3.c:1284 src/diff3.c:1683 src/diff3.c:1738
+#: src/sdiff.c:306 src/sdiff.c:843 src/sdiff.c:854
 msgid "read failed"
 msgstr "gagal membaca"
 
-#: src/diff3.c:480
+#: src/diff3.c:478
 msgid "-A, --show-all              output all changes, bracketing conflicts"
-msgstr "-A,  --show-all Output seluruh perubahan, konflik dalam tanda kurung."
+msgstr ""
+"-A, --show-all              keluarkan semua perubahan, konflik dalam tanda "
+"kurung"
 
-#: src/diff3.c:482
+#: src/diff3.c:480
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
 msgstr ""
-"-e  --ed  Output perubahan tanpa dimerge dari OLDFILE ke YOURFILE ke dl "
-"MYFILE."
+"-e, --ed                    keluarkan skrip ed yang menyertakan perubahan\n"
+"                                dari OLDFILE ke YOURFILE ke dalam MYFILE"
 
-#: src/diff3.c:484
+#: src/diff3.c:482
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
-msgstr ""
-"-E,  --show-overlap  Output perubahan unmerge, konflik dl tanda kurung."
+msgstr "-E, --show-overlap          seperti -e, tapi apit konflik dalam kurung"
 
-#: src/diff3.c:485
+#: src/diff3.c:483
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
-msgstr "-3,  --easy-only Output unmerged perubahan nonoverlap."
+msgstr ""
+"-3, --easy-only             seperti -e, tapi hanya melibatkan perubahan yang "
+"tidak bertindih"
 
-#: src/diff3.c:486
+#: src/diff3.c:484
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
-msgstr "-x,  --overlap-only  Tampilkan perubahan yang overlap."
+msgstr ""
+"-x, --overlap-only          seperti -e, tapi hanya sertakan perubahan yang "
+"bertindih"
 
-#: src/diff3.c:487
+#: src/diff3.c:485
 msgid "-X                          like -x, but bracket conflicts"
-msgstr "-X                          like -x, but bracket conflicts"
+msgstr "-X                          seperti -x, tapi apit konflik dalam kurung"
 
-#: src/diff3.c:488
+#: src/diff3.c:486
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
-msgstr "-i  Tambah perintah 'w' dan 'q' ke script ed."
+msgstr "-i                          imbuhkan perintah 'w' dan 'q' ke skrip ed"
 
-#: src/diff3.c:490
+#: src/diff3.c:488
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
 msgstr ""
-"-m, --merge                 output actual merged file, according to\n"
-"                                -A if no other options are given"
+"-m, --merge                 keluarkan berkas tergabung yang sebenarnya,\n"
+"                                sesuai dengan -A bila tidak diberikan\n"
+"                                opsi lain"
 
-#: src/diff3.c:493
+#: src/diff3.c:491
 msgid "-a, --text                  treat all files as text"
-msgstr "-a,  --text  Perlakukan seluruh file sebagai teks."
+msgstr "-a, --text                  perlakukan semua berkas sebagai teks"
 
-#: src/diff3.c:494
+#: src/diff3.c:492
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
-msgstr "--strip-trailing-cr  Hapus trailing carriage return pada input."
+msgstr ""
+"    --strip-trailing-cr     hapus carriage return di akhir pada masukan"
 
-#: src/diff3.c:495
+#: src/diff3.c:493
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
-msgstr "-T,  --initial-tab  Buat tab beraturan dg menambahkan sebuah tab."
+msgstr ""
+"-T, --initial-tab           buat tab lurus dengan menyisip di depan tab"
 
-#: src/diff3.c:496
+#: src/diff3.c:494
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
-msgstr "--diff-program=PROGRAM  Gunakan PROGRAM untuk membandingkan file."
+msgstr "    --diff-program=PROGRAM  gunakan PROGRAM untuk membandingkan berkas"
 
-#: src/diff3.c:497
+#: src/diff3.c:495
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
 msgstr ""
-"-L, --label=LABEL           use LABEL instead of file name\n"
-"                                (can be repeated up to three times)"
+"-L, --label=LABEL           pakai LABEL sebagai pengganti nama berkas\n"
+"                                (dapat diulang sampai dengan tiga kali)"
 
-#: src/diff3.c:500
+#: src/diff3.c:498
 msgid "    --help                  display this help and exit"
-msgstr "    --help                  display this help and exit"
+msgstr "    --help                  tampilkan bantuan ini dan keluar"
 
-#: src/diff3.c:501
+#: src/diff3.c:499
 msgid "-v, --version               output version information and exit"
-msgstr "-v,  --version  Tampilkan informasi versi."
+msgstr "-v, --version               tampilkan informasi versi dan keluar"
 
-#: src/diff3.c:510
+#: src/diff3.c:508
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
 msgstr "Pemakaian: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
 
-#: src/diff3.c:512
+#: src/diff3.c:510
 msgid "Compare three files line by line."
-msgstr "Bandingkan tiga file baris per baris."
+msgstr "Bandingkan tiga berkas baris per baris."
 
-#: src/diff3.c:522
+#: src/diff3.c:520
 msgid ""
 "\n"
 "The default output format is a somewhat human-readable representation of\n"
@@ -1234,65 +1258,65 @@ msgid ""
 "robust than using ed.\n"
 msgstr ""
 "\n"
-"The default output format is a somewhat human-readable representation of\n"
-"the changes.\n"
+"Format keluaran baku adalah representasi perubahan yang kurang lebih\n"
+"dapat dibaca oleh orang.\n"
 "\n"
-"The -e, -E, -x, -X (and corresponding long) options cause an ed script\n"
-"to be output instead of the default.\n"
+"Opsi -e, -E, -x, -X (dan opsi panjang yang terkait) menyebabkan\n"
+"dikeluarkannya sebuah skrip ed sebagai pengganti yang baku.\n"
 "\n"
-"Finally, the -m (--merge) option causes diff3 to do the merge internally\n"
-"and output the actual merged file.  For unusual input, this is more\n"
-"robust than using ed.\n"
+"Akhirnya, opsi -m (--merge) menyebabkan diff3 melakukan penggabungan\n"
+"secara internal dan mengeluarkan berkas gabungan sebenarnya.  Untuk\n"
+"masukan yang tidak biasa, ini lebih tahan banting daripada memakai ed.\n"
 
-#: src/diff3.c:534
+#: src/diff3.c:532
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
 msgstr ""
 "Status keluaran adalah 0 jika sukses, 1 jika konflik, 2 jika bermasalah."
 
-#: src/diff3.c:727
+#: src/diff3.c:725
 msgid "internal error: screwup in format of diff blocks"
 msgstr "kesalahan internal: kacau dalam format blok diff"
 
-#: src/diff3.c:1022
+#: src/diff3.c:1015
 #, c-format
 msgid "%s: diff failed: "
 msgstr "%s: diff gagal: "
 
-#: src/diff3.c:1044
+#: src/diff3.c:1037
 msgid "internal error: invalid diff type in process_diff"
 msgstr "kesalahan internal: tipe diff tidak valid dalam process_diff"
 
-#: src/diff3.c:1069
+#: src/diff3.c:1060
 msgid "invalid diff format; invalid change separator"
 msgstr "format diff tidak valid; separator perubahan tidak valid"
 
-#: src/diff3.c:1305
+#: src/diff3.c:1294
 msgid "invalid diff format; incomplete last line"
 msgstr "format diff tidak valid; baris akhir tidak lengkap"
 
-#: src/diff3.c:1329 src/sdiff.c:276 src/util.c:969
+#: src/diff3.c:1318 src/sdiff.c:274 src/util.c:1069
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "program subsider '%s' tidak dipanggil"
 
-#: src/diff3.c:1354
+#: src/diff3.c:1343
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "format diff tidak valid; karakter leading line tidak tepat"
 
-#: src/diff3.c:1427
+#: src/diff3.c:1416
 msgid "internal error: invalid diff type passed to output"
-msgstr "kesalahan internal: tipe diff tidak valid dimasukkan ke output"
+msgstr "kesalahan internal: tipe diff tidak valid dimasukkan ke keluaran"
 
-#: src/diff3.c:1700 src/diff3.c:1757
+#: src/diff3.c:1685 src/diff3.c:1742
 msgid "input file shrank"
-msgstr "file input mengecil"
+msgstr "berkas masukan mengecil"
 
-#: src/dir.c:156
+#: src/dir.c:154
 #, c-format
 msgid "cannot compare file names '%s' and '%s'"
-msgstr "tidak dapat membandingkan nama file '%s' dan '%s'"
+msgstr "tidak dapat membandingkan nama berkas '%s' dan '%s'"
 
-#: src/dir.c:225
+#: src/dir.c:223
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: rekursif loop direktori"
@@ -1302,114 +1326,123 @@ msgstr "%s: rekursif loop direktori"
 msgid "Thomas Lord"
 msgstr "Thomas Lord"
 
-#: src/sdiff.c:174
+#: src/sdiff.c:173
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
-msgstr "-o,  --output=FILE  Operasi secara interaktif, kirim output ke FILE."
+msgstr ""
+"-o, --output=FILE            beroperasi secara interaktif, kirim keluaran ke "
+"FILE"
 
-#: src/sdiff.c:176
+#: src/sdiff.c:175
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
-msgstr "-i,  --ignore-case  Abaikan huruf kapital dan huruf kecil."
+msgstr "-i, --ignore-case            anggap huruf besar dan kecil sama"
 
-#: src/sdiff.c:177
+#: src/sdiff.c:176
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
-msgstr "-E,  --ignore-tab-expansion  Abaikan perubahan akibat ekspansi tab."
+msgstr "-E, --ignore-tab-expansion   abaikan perubahan akibat ekspansi tab"
 
-#: src/sdiff.c:178
+#: src/sdiff.c:177
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
-msgstr "-Z,  --ignore-trailling-space  Abaikan seluruh white space."
+msgstr "-Z, --ignore-trailing-space  abaikan white space di akhir baris"
 
-#: src/sdiff.c:179
+#: src/sdiff.c:178
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
-msgstr "-b,  --ignore-space-change  Abaikan perubahan sejumlah white space."
+msgstr "-b, --ignore-space-change    abaikan perubahan banyaknya white space"
 
-#: src/sdiff.c:180
+#: src/sdiff.c:179
 msgid "-W, --ignore-all-space       ignore all white space"
-msgstr "-W  --ignore-all-space  Abaikan seluruh white space."
+msgstr "-W, --ignore-all-space       abaikan semua white space"
 
-#: src/sdiff.c:181
+#: src/sdiff.c:180
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
-msgstr "-B,  --ignore-blank-lines   Abaikan perubahan baris kosong."
+msgstr "-B, --ignore-blank-lines     abaikan perubahan baris kosong"
 
-#: src/sdiff.c:182
+#: src/sdiff.c:181
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
-"-I,  --ignore-matching-lines=RE  Abaikan perubahan baris yang cocok dg RE."
+"-I, --ignore-matching-lines=RE  abaikan semua perubahan baris yang cocok RE"
 
-#: src/sdiff.c:183
+#: src/sdiff.c:182
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
-msgstr "--strip-trailing-cr  Hapus trailing carriage return pada input."
+msgstr ""
+"    --strip-trailing-cr      hapus carriage return di akhir pada masukan"
 
-#: src/sdiff.c:184
+#: src/sdiff.c:183
 msgid "-a, --text                   treat all files as text"
-msgstr "-a,  --text  Perlakukan seluruh file sebagai teks."
+msgstr "-a, --text                   perlakukan semua berkas sebagai teks"
 
-#: src/sdiff.c:186
+#: src/sdiff.c:185
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
-msgstr "-w,  --width=NUM  Output paling banyak NUM (baku 130) kolom cetakan."
+msgstr ""
+"-w, --width=NUM              keluarkan paling banyak NUM (baku 130) kolom "
+"cetak"
 
-#: src/sdiff.c:187
+#: src/sdiff.c:186
 msgid ""
 "-l, --left-column            output only the left column of common lines"
-msgstr "-l,  --left-column  Hanya tampilkan kolom kiri baris yang sama."
+msgstr ""
+"-l, --left-column            hanya tampilkan kolom kiri baris yang sama"
 
-#: src/sdiff.c:188
+#: src/sdiff.c:187
 msgid "-s, --suppress-common-lines  do not output common lines"
-msgstr "-s,  --suppress-common-lines  Jangan tampilkan baris yang sama."
+msgstr "-s, --suppress-common-lines  jangan tampilkan baris yang sama"
 
-#: src/sdiff.c:190
+#: src/sdiff.c:189
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
-msgstr "-t,  --expand-tabs  Ekspansi tab ke spasi dalam output."
+msgstr "-t, --expand-tabs            ekspansi tab ke spasi dalam keluaran"
 
-#: src/sdiff.c:191
+#: src/sdiff.c:190
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
-msgstr "--tabsize=NUM  Tab stop adalah setiap NUM (default 8) kolom cetakan."
+msgstr ""
+"    --tabsize=NUM            tab stop adalah setiap NUM (baku 8) kolom cetak"
 
-#: src/sdiff.c:193
+#: src/sdiff.c:192
 msgid "-d, --minimal                try hard to find a smaller set of changes"
-msgstr "-d,  --minimal  Usahakan mencari perubahan terkecil."
+msgstr ""
+"-d, --minimal                usaha keras untuk mencari set perubahan terkecil"
 
-#: src/sdiff.c:194
+#: src/sdiff.c:193
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
 msgstr ""
-"-H,  --speed-large-files  Asumsikan file besar dan banyak sebaran perubahan "
-"kecil."
+"-H, --speed-large-files      asumsikan berkas besar, banyak perubahan kecil "
+"tersebar"
 
-#: src/sdiff.c:195
+#: src/sdiff.c:194
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
-msgstr "--diff-program=PROGRAM  Gunakan PROGRAM untuk membandingkan file."
+msgstr ""
+"    --diff-program=PROGRAM   gunakan PROGRAM untuk membandingkan berkas"
 
-#: src/sdiff.c:197
+#: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
-msgstr "    --help                   display this help and exit"
+msgstr "    --help                   tampilkan bantuan ini dan keluar"
 
-#: src/sdiff.c:198
+#: src/sdiff.c:197
 msgid "-v, --version                output version information and exit"
-msgstr "-v,  --version  Tampilkan informasi versi."
+msgstr "-v, --version                tampilkan informasi versi dan keluar"
 
-#: src/sdiff.c:207
+#: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
 msgstr "Pemakaian: %s [OPTION]... FILE1 FILE2\n"
 
-#: src/sdiff.c:209
+#: src/sdiff.c:208
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
-msgstr "Merge side-by-side beda file."
+msgstr "Penggabungan bersisian dari perbedaan antara FILE1 dan FILE2."
 
-#: src/sdiff.c:330
+#: src/sdiff.c:328
 msgid "cannot interactively merge standard input"
-msgstr "tidak dapat menggabung input standar secara interaktif"
+msgstr "tidak dapat menggabung masukan standar secara interaktif"
 
-#: src/sdiff.c:597
+#: src/sdiff.c:594
 msgid "both files to be compared are directories"
-msgstr "kedua file yang dibandingkan adalah direktori"
+msgstr "kedua berkas yang dibandingkan adalah direktori"
 
-#: src/sdiff.c:820
+#: src/sdiff.c:817
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
 "eb:\tEdit then use both versions.\n"
@@ -1433,152 +1466,12 @@ msgstr ""
 "v:\tSertakan baris bersama secara verbose.\n"
 "q:\tKeluar.\n"
 
-#: src/util.c:662
-#, fuzzy, c-format
+#: src/util.c:755
+#, c-format
 msgid "unrecognized prefix: %s"
-msgstr "%s: pilihan '--%s' tidak dikenal\n"
+msgstr "prefiks tidak dikenal: %s"
 
-#: src/util.c:692
+#: src/util.c:785
 #, c-format
 msgid "unparsable value for --palette"
-msgstr ""
-
-#~ msgid "invalid %s%s argument '%s'"
-#~ msgstr "argumen %s%s tidak valid '%s'"
-
-#~ msgid "invalid suffix in %s%s argument '%s'"
-#~ msgstr "akhiran dalam argumen %s%s tidak valid '%s'"
-
-#~ msgid "%s%s argument '%s' too large"
-#~ msgstr "%s%s argumen '%s' terlalu besar"
-
-#, fuzzy
-#~ msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
-#~ msgstr "%s halaman rumah: <http://www.gnu.org/software/%s/>\n"
-
-#, fuzzy
-#~ msgid "                           or 'auto' (the default)"
-#~ msgstr "--normal  Output normal diff."
-
-#~ msgid "%s: option '--%s' doesn't allow an argument\n"
-#~ msgstr "%s: pilihan '--%s' tidak mengijinkan sebuah argumen\n"
-
-#~ msgid "%s: unrecognized option '--%s'\n"
-#~ msgstr "%s: pilihan '--%s' tidak dikenal\n"
-
-#~ msgid "%s: option '-W %s' is ambiguous\n"
-#~ msgstr "%s: pilihan '-W %s' ambigu\n"
-
-#~ msgid "%s: option '-W %s' doesn't allow an argument\n"
-#~ msgstr "%s: pilihan '-W %s' tidak mengijinkan sebuah argumen\n"
-
-#~ msgid "%s: option '-W %s' requires an argument\n"
-#~ msgstr "%s: pilihan '-W %s' membutuhkan sebuah argumen\n"
-
-#~ msgid "-i SKIP1:SKIP2  --ignore-initial=SKIP1:SKIP2"
-#~ msgstr "-i SKIP1:SKIP2  --ignore-initial=SKIP1:SKIP2"
-
-#~ msgid "-s  --quiet  --silent  Output nothing; yield exit status only."
-#~ msgstr ""
-#~ "-s  --quiet  --silent  Tidak mengeluarkan apapun; hanya memberikan status "
-#~ "keluar saja."
-
-#~ msgid "--help  Output this help."
-#~ msgstr "--help Tampilkan bantuan ini."
-
-#~ msgid ""
-#~ "-c  -C NUM  --context[=NUM]  Output NUM (default 3) lines of copied "
-#~ "context.\n"
-#~ "-u  -U NUM  --unified[=NUM]  Output NUM (default 3) lines of unified "
-#~ "context.\n"
-#~ "  --label LABEL  Use LABEL instead of file name.\n"
-#~ "  -p  --show-c-function  Show which C function each change is in.\n"
-#~ "  -F RE  --show-function-line=RE  Show the most recent line matching RE."
-#~ msgstr ""
-#~ "-c  -C NUM  --context[=NUM]  Output NUM (baku 3) baris isi yang disalin.\n"
-#~ "-u  -U NUM  --unified[=NUM]  Output NUM (baku 3) baris unified context.\n"
-#~ "  --label LABEL  Gunakan LABEL alih-alih nama file.\n"
-#~ "  -p  --show-c-function  Tampilkan setiap fungsi C yang berubah.\n"
-#~ "  -F RE  --show-function-line=RE  Tampilkan baris paling akhir yang cocok "
-#~ "dengan RE."
-
-#~ msgid ""
-#~ "-y  --side-by-side  Output in two columns.\n"
-#~ "  -W NUM  --width=NUM  Output at most NUM (default 130) print columns.\n"
-#~ "  --left-column  Output only the left column of common lines.\n"
-#~ "  --suppress-common-lines  Do not output common lines."
-#~ msgstr ""
-#~ "-y  --side-by-side  Output dalam dua kolom.\n"
-#~ "  -W NUM  --width=NUM  Output paling banyak NUM (baku 130) kolom.\n"
-#~ "  --left-column  Output hanya kolom kiri baris bersama.\n"
-#~ "  --suppress-common-lines  Jangan hasilkan baris bersama."
-
-#~ msgid ""
-#~ "--speed-large-files  Assume large files and many scattered small changes."
-#~ msgstr ""
-#~ "--speed-large-files  Asumsikan file besar dan banyak perubahan kecil."
-
-#~ msgid "-X  Output overlapping changes, bracketing them."
-#~ msgstr "-X  Output perubahan overlap, beri tanda kurung."
-
-#~ msgid "-m  --merge  Output merged file instead of ed script (default -A)."
-#~ msgstr "-m  --merge  Tampilkan file yang dimerge bukan script ed (baku -A)."
-
-#~ msgid "-L LABEL  --label=LABEL  Use LABEL instead of file name."
-#~ msgstr "-L LABEL  --label=LABEL  Gunakan LABEL bukan nama file."
-
-#~ msgid "%s: illegal option -- %c\n"
-#~ msgstr "%s: pilihan -- %c tidak legal\n"
-
-#~ msgid ""
-#~ "This is free software; see the source for copying conditions.  There is "
-#~ "NO\n"
-#~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR "
-#~ "PURPOSE.\n"
-#~ msgstr ""
-#~ "Ini adalah aplikasi bebas; lihat kode program untuk persayaraan "
-#~ "penyalinan;\n"
-#~ "TIDAK ADA GARANSI; bahkan untuk DIPERDAGANGKAN atau KECOCOKAN UNTUK "
-#~ "TUJUAN TERTENTU.\n"
-
-#~ msgid "Report bugs to <bug-gnu-utils@gnu.org>."
-#~ msgstr "Laporkan bug ke <bug-gnu-utils@gnu.org>"
-
-#~ msgid "`-%ld' option is obsolete; use `-%c %ld'"
-#~ msgstr "`-%ld' option kuno; gunakan `-%c %ld'"
-
-#~ msgid "`-%ld' option is obsolete; omit it"
-#~ msgstr "`-%ld' option kuno, hilangkan saja"
-
-#~ msgid "subsidiary program `%s' not found"
-#~ msgstr "program subsider `%s' tidak ditemukan"
-
-#~ msgid "subsidiary program `%s' failed"
-#~ msgstr "program subsider `%s' gagal"
-
-#~ msgid "subsidiary program `%s' failed (exit status %d)"
-#~ msgstr "program subsider `%s' gagal (status keluar %d)"
-
-#~ msgid ""
-#~ "This program comes with NO WARRANTY, to the extent permitted by law.\n"
-#~ "You may redistribute copies of this program\n"
-#~ "under the terms of the GNU General Public License.\n"
-#~ "For more information about these matters, see the files named COPYING."
-#~ msgstr ""
-#~ "This program comes with NO WARRANTY, to the extent permitted by law.\n"
-#~ "You may redistribute copies of this program\n"
-#~ "under the terms of the GNU General Public License.\n"
-#~ "For more information about these matters, see the file named COPYING."
-
-#~ msgid "Written by Torbjorn Granlund and David MacKenzie."
-#~ msgstr "Ditulis oleh Torbjorn Granlund dan David MacKenzie."
-
-#~ msgid ""
-#~ "Written by Paul Eggert, Mike Haertel, David Hayes,\n"
-#~ "Richard Stallman, and Len Tower."
-#~ msgstr ""
-#~ "Ditulis oleh Paul Eggert, Mike Haertel, David Hayes,\n"
-#~ "Richard Stallman, dan Len Tower."
-
-#~ msgid "subsidiary program `%s' not executable"
-#~ msgstr "program subsider `%s' tidak dapat dieksekusi"
+msgstr "nilai yang tidak dapat diurai untuk --palette"
index f9adda8..fb0720b 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: diffutils 3.5.14\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2021-08-01 18:56-0700\n"
+"POT-Creation-Date: 2023-05-21 01:51-0700\n"
 "PO-Revision-Date: 2017-02-28 09:33+0000\n"
 "Last-Translator: Marco Colombo <m.colombo@ed.ac.uk>\n"
 "Language-Team: Italian <tp@lists.linux.it>\n"
@@ -17,29 +17,29 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 
-#: lib/argmatch.c:132
+#: lib/argmatch.c:145
 #, c-format
 msgid "invalid argument %s for %s"
 msgstr "argomento \"%s\" di %s non valido"
 
-#: lib/argmatch.c:133
+#: lib/argmatch.c:146
 #, c-format
 msgid "ambiguous argument %s for %s"
 msgstr "argomento \"%s\" di %s ambiguo"
 
-#: lib/argmatch.c:152 lib/argmatch.h:223
+#: lib/argmatch.c:165 lib/argmatch.h:242
 msgid "Valid arguments are:"
 msgstr "Argomenti validi sono:"
 
-#: lib/c-stack.c:187
+#: lib/c-stack.c:186
 msgid "program error"
 msgstr "errore del programma"
 
-#: lib/c-stack.c:188
+#: lib/c-stack.c:187
 msgid "stack overflow"
 msgstr "overflow dello stack"
 
-#: lib/error.c:195
+#: lib/error.c:193
 msgid "Unknown system error"
 msgstr "Errore di sistema sconosciuto"
 
@@ -196,83 +196,83 @@ msgstr "%s: l'opzione richiede un argomento -- \"%c\"\n"
 #. If you don't know what to put here, please see
 #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:355
+#: lib/quotearg.c:354
 msgid "`"
 msgstr "\""
 
-#: lib/quotearg.c:356
+#: lib/quotearg.c:355
 msgid "'"
 msgstr "\""
 
-#: lib/regcomp.c:135
+#: lib/regcomp.c:122
 msgid "Success"
 msgstr "Successo"
 
-#: lib/regcomp.c:138
+#: lib/regcomp.c:125
 msgid "No match"
 msgstr "Nessuna corrispondenza"
 
-#: lib/regcomp.c:141
+#: lib/regcomp.c:128
 msgid "Invalid regular expression"
 msgstr "Espressione regolare non valida"
 
-#: lib/regcomp.c:144
+#: lib/regcomp.c:131
 msgid "Invalid collation character"
 msgstr "Carattere di collazione non valido"
 
-#: lib/regcomp.c:147
+#: lib/regcomp.c:134
 msgid "Invalid character class name"
 msgstr "Nome della classe di caratteri non valido"
 
-#: lib/regcomp.c:150
+#: lib/regcomp.c:137
 msgid "Trailing backslash"
 msgstr "Backslash finale"
 
-#: lib/regcomp.c:153
+#: lib/regcomp.c:140
 msgid "Invalid back reference"
 msgstr "Riferimento all'indietro non valido"
 
-#: lib/regcomp.c:156
+#: lib/regcomp.c:143
 msgid "Unmatched [, [^, [:, [., or [="
 msgstr "[, [^, [:, [. o [= senza corrispondenza"
 
-#: lib/regcomp.c:159
+#: lib/regcomp.c:146
 msgid "Unmatched ( or \\("
 msgstr "( o \\( senza corrispondenza"
 
-#: lib/regcomp.c:162
+#: lib/regcomp.c:149
 msgid "Unmatched \\{"
 msgstr "\\{ senza corrispondenza"
 
-#: lib/regcomp.c:165
+#: lib/regcomp.c:152
 msgid "Invalid content of \\{\\}"
 msgstr "Contenuto di \\{\\} non valido"
 
-#: lib/regcomp.c:168
+#: lib/regcomp.c:155
 msgid "Invalid range end"
 msgstr "Fine dell'intervallo non valida"
 
-#: lib/regcomp.c:171
+#: lib/regcomp.c:158
 msgid "Memory exhausted"
 msgstr "Memoria esaurita"
 
-#: lib/regcomp.c:174
+#: lib/regcomp.c:161
 msgid "Invalid preceding regular expression"
 msgstr "L'espressione regolare precedente non è valida"
 
-#: lib/regcomp.c:177
+#: lib/regcomp.c:164
 msgid "Premature end of regular expression"
 msgstr "Fine prematura dell'espressione regolare"
 
-#: lib/regcomp.c:180
+#: lib/regcomp.c:167
 msgid "Regular expression too big"
 msgstr "L'espressione regolare è troppo grande"
 
-#: lib/regcomp.c:183
+#: lib/regcomp.c:170
 msgid "Unmatched ) or \\)"
 msgstr ") o \\) non accoppiata"
 
-#: lib/regcomp.c:676
+#: lib/regcomp.c:650
 msgid "No previous regular expression"
 msgstr "Non c'è una espressione regolare precedente"
 
@@ -473,17 +473,17 @@ msgstr "%s home page: <%s>\n"
 msgid "General help using GNU software: <%s>\n"
 msgstr "Aiuto sull'uso di software GNU: <http://www.gnu.org/gethelp/>\n"
 
-#: src/analyze.c:454 src/diff.c:1406
+#: src/analyze.c:455 src/diff.c:1478
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "I file %s e %s sono diversi\n"
 
-#: src/analyze.c:455
+#: src/analyze.c:456
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "I file binari %s e %s sono diversi\n"
 
-#: src/analyze.c:706 src/diff3.c:1470 src/util.c:1254
+#: src/analyze.c:707 src/diff3.c:1457 src/util.c:1354
 msgid "No newline at end of file"
 msgstr "Manca newline alla fine del file"
 
@@ -497,41 +497,42 @@ msgstr "Torbjorn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:120 src/diff.c:879 src/diff3.c:467 src/sdiff.c:160
+#: src/cmp.c:124 src/diff.c:939 src/diff3.c:465 src/sdiff.c:159
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Usare \"%s --help\" per maggiori informazioni."
 
-#: src/cmp.c:138
+#: src/cmp.c:142
 #, c-format
 msgid "invalid --ignore-initial value '%s'"
 msgstr "Valore \"%s\" non valido per --ignore-initial"
 
-#: src/cmp.c:148
+#: src/cmp.c:152
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr "le opzioni -l e -s sono incompatibili"
 
-#: src/cmp.c:156 src/diff.c:887 src/diff3.c:474 src/sdiff.c:168 src/sdiff.c:316
-#: src/sdiff.c:323 src/sdiff.c:876 src/util.c:852 src/util.c:952 src/util.c:959
+#: src/cmp.c:160 src/diff.c:947 src/diff3.c:472 src/sdiff.c:167 src/sdiff.c:314
+#: src/sdiff.c:321 src/sdiff.c:873 src/util.c:952 src/util.c:1052
+#: src/util.c:1059
 msgid "write failed"
 msgstr "scrittura non riuscita"
 
-#: src/cmp.c:158 src/diff.c:889 src/diff.c:1471 src/diff3.c:476 src/sdiff.c:170
+#: src/cmp.c:162 src/diff.c:949 src/diff.c:1543 src/diff3.c:474 src/sdiff.c:169
 msgid "standard output"
 msgstr "standard output"
 
-#: src/cmp.c:162
+#: src/cmp.c:166
 msgid "-b, --print-bytes          print differing bytes"
 msgstr "-b, --print-bytes           Stampa i byte differenti"
 
-#: src/cmp.c:163
+#: src/cmp.c:167
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
 msgstr ""
 "-i, --ignore-initial=SKIP   Salta i primi SKIP byte di entrambi gli input"
 
 # Lo strano allineamento è corretto
-#: src/cmp.c:164
+#: src/cmp.c:168
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
@@ -541,7 +542,7 @@ msgstr ""
 "                                SKIP2 byte di FILE2"
 
 # Lo strano allineamento della seconda riga è corretto.
-#: src/cmp.c:166
+#: src/cmp.c:170
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
 msgstr ""
@@ -549,33 +550,33 @@ msgstr ""
 "                                differenti"
 
 # Solitamente viene usato NUM quando si vuole specificare un numero.
-#: src/cmp.c:167
+#: src/cmp.c:171
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
 msgstr "-n, --bytes=NUM             Confronta al massimo NUM byte"
 
-#: src/cmp.c:168
+#: src/cmp.c:172
 msgid "-s, --quiet, --silent      suppress all normal output"
 msgstr "-s, --quiet, --silent       Sopprime tutto l'output normale"
 
-#: src/cmp.c:169
+#: src/cmp.c:173
 msgid "    --help                 display this help and exit"
 msgstr "    --help                  Mostra questo aiuto ed esce"
 
-#: src/cmp.c:170
+#: src/cmp.c:174
 msgid "-v, --version              output version information and exit"
 msgstr ""
 "-v, --version               Stampa le informazioni sulla versione ed esce"
 
-#: src/cmp.c:179
+#: src/cmp.c:183
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
 msgstr "Uso: %s [OPZIONE]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
 
-#: src/cmp.c:181
+#: src/cmp.c:185
 msgid "Compare two files byte by byte."
 msgstr "Confronta due file byte per byte."
 
-#: src/cmp.c:183
+#: src/cmp.c:187
 msgid ""
 "The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
 "at the beginning of each file (zero by default)."
@@ -583,14 +584,14 @@ msgstr ""
 "I valori opzionali SKIP1 e SKIP2 indicano il numero di byte da saltare\n"
 "all'inizio di ogni file (zero se non indicato)."
 
-#: src/cmp.c:186 src/diff.c:999 src/diff3.c:514 src/sdiff.c:211
+#: src/cmp.c:190 src/diff.c:1059 src/diff3.c:512 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
 "Gli argomenti obbligatori per le opzioni lunghe lo sono anche per quelle "
 "corte.\n"
 
-#: src/cmp.c:192
+#: src/cmp.c:196
 msgid ""
 "SKIP values may be followed by the following multiplicative suffixes:\n"
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
@@ -601,174 +602,174 @@ msgstr ""
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
 "GB 1,000,000,000, G 1,073,741,824, e così via per T, P, E, Z, Y."
 
-#: src/cmp.c:195
+#: src/cmp.c:199
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "Se un FILE è \"-\" o è mancante, legge lo standard input."
 
-#: src/cmp.c:196 src/diff.c:987 src/sdiff.c:221
+#: src/cmp.c:200 src/diff.c:1047 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr ""
 "Il codice d'uscita è 0 se gli input sono identici, 1 se sono differenti, 2 "
 "quando si riscontrano dei problemi."
 
-#: src/cmp.c:243
+#: src/cmp.c:247
 #, c-format
 msgid "invalid --bytes value '%s'"
 msgstr "valore \"%s\" non valido per --bytes"
 
-#: src/cmp.c:269 src/diff.c:797 src/diff3.c:361 src/sdiff.c:567
+#: src/cmp.c:273 src/diff.c:857 src/diff3.c:368 src/sdiff.c:564
 #, c-format
 msgid "missing operand after '%s'"
 msgstr "operando mancante dopo \"%s\""
 
-#: src/cmp.c:281 src/diff.c:799 src/diff3.c:363 src/sdiff.c:569
+#: src/cmp.c:285 src/diff.c:859 src/diff3.c:370 src/sdiff.c:566
 #, c-format
 msgid "extra operand '%s'"
 msgstr "extra operando \"%s\""
 
-#: src/cmp.c:507
+#: src/cmp.c:521
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s differenza: byte %s, riga %s\n"
 
-#: src/cmp.c:523
+#: src/cmp.c:537
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
 msgstr "%s %s differenza: byte %s, riga %s è %3o %s %3o %s\n"
 
-#: src/cmp.c:580
+#: src/cmp.c:594
 #, fuzzy, c-format
 msgid "cmp: EOF on %s which is empty\n"
 msgstr "cmp: EOF in %s\n"
 
-#: src/cmp.c:594
+#: src/cmp.c:608
 #, fuzzy, c-format
 msgid "cmp: EOF on %s after byte %s, line %s\n"
 msgstr "%s %s differenza: byte %s, riga %s\n"
 
-#: src/cmp.c:595
+#: src/cmp.c:609
 #, fuzzy, c-format
 msgid "cmp: EOF on %s after byte %s, in line %s\n"
 msgstr "%s %s differenza: byte %s, riga %s\n"
 
-#: src/cmp.c:601
+#: src/cmp.c:615
 #, fuzzy, c-format
 msgid "cmp: EOF on %s after byte %s\n"
 msgstr "cmp: EOF in %s\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:51
+#: src/diff.c:50
 msgid "Paul Eggert"
 msgstr "Paul Eggert"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:52
+#: src/diff.c:51
 msgid "Mike Haertel"
 msgstr "Mike Haertel"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:53
+#: src/diff.c:52
 msgid "David Hayes"
 msgstr "David Hayes"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:54
+#: src/diff.c:53
 msgid "Richard Stallman"
 msgstr "Richard Stallman"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:55
+#: src/diff.c:54
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:355
+#: src/diff.c:365
 #, c-format
 msgid "invalid context length '%s'"
 msgstr "lunghezza di contesto \"%s\" non valida"
 
-#: src/diff.c:438
+#: src/diff.c:487
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "paginazione non supportata su questo host"
 
-#: src/diff.c:453 src/diff3.c:341
+#: src/diff.c:502 src/diff3.c:348
 #, c-format
 msgid "too many file label options"
 msgstr "troppe opzioni di etichetta"
 
-#: src/diff.c:530
+#: src/diff.c:579
 #, c-format
 msgid "invalid width '%s'"
 msgstr "larghezza \"%s\" non valida"
 
-#: src/diff.c:534
+#: src/diff.c:583
 msgid "conflicting width options"
 msgstr "opzioni di larghezza in conflitto"
 
-#: src/diff.c:559
+#: src/diff.c:608
 #, c-format
 msgid "invalid horizon length '%s'"
 msgstr "lunghezza di orizzonte \"%s\" non valida"
 
-#: src/diff.c:615
+#: src/diff.c:664
 #, c-format
 msgid "invalid tabsize '%s'"
 msgstr "lunghezza di tabulazione \"%s\" non valida"
 
-#: src/diff.c:619
+#: src/diff.c:668
 msgid "conflicting tabsize options"
 msgstr "opzioni di lunghezza di tabulazione in conflitto"
 
-#: src/diff.c:774
+#: src/diff.c:834
 msgid "--from-file and --to-file both specified"
 msgstr "--from-file e --to-file specificati entrambi"
 
-#: src/diff.c:893
+#: src/diff.c:953
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "    --normal                  Mostra una diff normale (predefinito)"
 
-#: src/diff.c:894
+#: src/diff.c:954
 msgid "-q, --brief                   report only when files differ"
 msgstr "-q, --brief                   Segnala solo se i file sono diversi"
 
-#: src/diff.c:895
+#: src/diff.c:955
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr "-s, --report-identical-files  Segnala quando due file sono identici"
 
-#: src/diff.c:896
+#: src/diff.c:956
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
 "-c, -C NUM, --context[=NUM]   Mostra NUM righe di contesto copiato\n"
 "                                (predefinito 3)"
 
-#: src/diff.c:897
+#: src/diff.c:957
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
 "-u, -U NUM, --unified[=NUM]   Mostra NUM righe di contesto unificato\n"
 "                                (predefinito 3)"
 
-#: src/diff.c:898
+#: src/diff.c:958
 msgid "-e, --ed                      output an ed script"
 msgstr "-e, --ed                      Mostra uno script per ed"
 
-#: src/diff.c:899
+#: src/diff.c:959
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n, --rcs                     Mostra una diff in formato RCS"
 
-#: src/diff.c:900
+#: src/diff.c:960
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side            Output in due colonne"
 
-#: src/diff.c:901
+#: src/diff.c:961
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
 "-W, --width=NUM               Mostra al massimo NUM colonne (predefinito 130)"
 
 # Lo strano allineamento della seconda riga è corretto.
-#: src/diff.c:902
+#: src/diff.c:962
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr ""
@@ -776,24 +777,24 @@ msgstr ""
 "righe\n"
 "                                in comune"
 
-#: src/diff.c:903
+#: src/diff.c:963
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "    --suppress-common-lines   Non mostra le righe in comune"
 
-#: src/diff.c:905
+#: src/diff.c:965
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr ""
 "-p, --show-c-function         Mostra in quale funzione C si trova ogni\n"
 "                                differenza"
 
-#: src/diff.c:906
+#: src/diff.c:966
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr ""
 "-F, --show-function-line=ER   Mostra la riga più recente che corrisponde\n"
 "                                all'espressione regolare ER"
 
 # FIXME
-#: src/diff.c:907
+#: src/diff.c:967
 msgid ""
 "    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
@@ -802,90 +803,90 @@ msgstr ""
 "file\n"
 "                                (può essere ripetuta)"
 
-#: src/diff.c:910
+#: src/diff.c:970
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr ""
 "-t, --expand-tabs             Espande le tabulazioni in spazi nell'output"
 
-#: src/diff.c:911
+#: src/diff.c:971
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr ""
 "-T, --initial-tab             Allinea le tabulazioni usando una tabulazione"
 
-#: src/diff.c:912
+#: src/diff.c:972
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=NUM             Stop di tabulazione ogni NUM colonne\n"
 "                                (predefinito 8)"
 
-#: src/diff.c:913
+#: src/diff.c:973
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
 "    --suppress-blank-empty    Rimuove spazi e tabulazioni prima di righe\n"
 "                                di output vuote"
 
-#: src/diff.c:914
+#: src/diff.c:974
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr ""
 "-l, --paginate                Passa l'output attraverso \"pr\" per "
 "impaginarlo"
 
-#: src/diff.c:916
+#: src/diff.c:976
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr ""
 "-r, --recursive               Confronta ricorsivamente ogni sottodirectory\n"
 "                                incontrata"
 
-#: src/diff.c:917
+#: src/diff.c:977
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr "    --no-dereference            Non segue i collegamenti simbolici"
 
-#: src/diff.c:918
+#: src/diff.c:978
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr "-N, --new-file                Considera i file mancanti come vuoti"
 
-#: src/diff.c:919
+#: src/diff.c:979
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
 "    --unidirectional-new-file Considera i file mancanti in prima posizione\n"
 "                                come vuoti"
 
-#: src/diff.c:920
+#: src/diff.c:980
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ""
 "    --ignore-file-name-case   Ignora differenze in maiuscole e minuscole\n"
 "                                confrontando nomi di file"
 
-#: src/diff.c:921
+#: src/diff.c:981
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
 "    --no-ignore-file-name-case Considera differenze in maiuscole e "
 "minuscole\n"
 "                                confrontando nomi di file"
 
-#: src/diff.c:922
+#: src/diff.c:982
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr ""
 "-x, --exclude=MODELLO         Esclude i file che corrispondono al MODELLO"
 
-#: src/diff.c:923
+#: src/diff.c:983
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
 "-X, --exclude-from=FILE       Esclude i file che corrispondono a qualsiasi\n"
 "                                modello in FILE"
 
-#: src/diff.c:924
+#: src/diff.c:984
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
 "-S, --starting-file=FILE      Comincia da FILE quando si confrontano "
 "directory"
 
-#: src/diff.c:925
+#: src/diff.c:985
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
@@ -893,7 +894,7 @@ msgstr ""
 "    --from-file=FILE1         Confronta FILE1 con tutti gli operandi;\n"
 "                                FILE1 può essere una directory"
 
-#: src/diff.c:927
+#: src/diff.c:987
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
@@ -901,7 +902,7 @@ msgstr ""
 "    --to-file=FILE2           Confronta tutti gli operandi con FILE2;\n"
 "                                FILE2 può essere una directory"
 
-#: src/diff.c:930
+#: src/diff.c:990
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr ""
@@ -909,47 +910,47 @@ msgstr ""
 "nel\n"
 "                                contenuto del file"
 
-#: src/diff.c:931
+#: src/diff.c:991
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr ""
 "-E, --ignore-tab-expansion    Ignora differenze causate dall'espansione\n"
 "                                delle tabulazioni"
 
-#: src/diff.c:932
+#: src/diff.c:992
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr "-Z, --ignore-trailing-space   Ignora gli spazi a fine riga"
 
-#: src/diff.c:933
+#: src/diff.c:993
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr "-b, --ignore-space-change     Ignora differenze nel numero di spazi"
 
-#: src/diff.c:934
+#: src/diff.c:994
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w, --ignore-all-space        Ignora tutti gli spazi"
 
-#: src/diff.c:935
+#: src/diff.c:995
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr "-B, --ignore-blank-lines      Ignora differenze in righe vuote"
 
 # Lo strano allineamento della seconda riga è corretto
-#: src/diff.c:936
+#: src/diff.c:996
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=ER Ignora differenze che corrispondono\n"
 "                                all'espressione regolare ER"
 
-#: src/diff.c:938
+#: src/diff.c:998
 msgid "-a, --text                      treat all files as text"
 msgstr "-a, --text                    Considera tutti i file come testo"
 
-#: src/diff.c:939
+#: src/diff.c:999
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr ""
 "     --strip-trailing-cr      Elimina i ritorni a capo a fine riga in input"
 
-#: src/diff.c:941
+#: src/diff.c:1001
 msgid "    --binary                    read and write data in binary mode"
 msgstr "    --binary  Legge e scrive in modalità binaria"
 
@@ -964,30 +965,30 @@ msgstr "    --binary  Legge e scrive in modalità binaria"
 # #endif /* NOME */
 # Testo comune.
 #
-#: src/diff.c:944
+#: src/diff.c:1004
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
 "-D, --ifdef=NOME              Mostra le differenze in un unico file usando\n"
 "                                \"#ifdef NOME\""
 
-#: src/diff.c:945
+#: src/diff.c:1005
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr ""
 "    --GTYPE-group-format=GFMT Simile, ma formatta i gruppi di input GTYPE\n"
 "                                con GFMT"
 
-#: src/diff.c:946
+#: src/diff.c:1006
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr ""
 "    --line-format=LFMT        Formatta tutte le righe di input con LFMT"
 
-#: src/diff.c:947
+#: src/diff.c:1007
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr ""
 "    --LTYPE-line-format=LFMT  Formatta le righe di input LTYPE con LFMT"
 
-#: src/diff.c:948
+#: src/diff.c:1008
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
@@ -995,12 +996,12 @@ msgstr ""
 "  Queste opzioni di formato forniscono un controllo preciso dell'output di\n"
 "    diff, generalizzando -D/--ifdef."
 
-#: src/diff.c:950
+#: src/diff.c:1010
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
 "  LTYPE è \"old\", \"new\", o \"unchanged\". GTYPE è LTYPE o \"changed\"."
 
-#: src/diff.c:951
+#: src/diff.c:1011
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -1030,7 +1031,7 @@ msgstr ""
 "        M  L+1\n"
 "    %(A=B?T:E)  se A è uguale a B allora T, altrimenti E"
 
-#: src/diff.c:963
+#: src/diff.c:1023
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -1043,7 +1044,7 @@ msgstr ""
 "    %[-][LARGHEZZA][.[PREC]]{doxX}n  formato in stile printf del numero\n"
 "                                       di riga di input"
 
-#: src/diff.c:967
+#: src/diff.c:1027
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1057,22 +1058,22 @@ msgstr ""
 "    %c'\\OOO'  il carattere con codice ottale OOO\n"
 "    C         il carattere C (altri caratteri rappresentano se stessi)"
 
-#: src/diff.c:973
+#: src/diff.c:1033
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr "-d, --minimal               Minimizza il numero di differenze"
 
-#: src/diff.c:974
+#: src/diff.c:1034
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr ""
 "    --horizon-lines=NUM     Mantiene NUM righe di prefisso e suffisso comune"
 
-#: src/diff.c:975
+#: src/diff.c:1035
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
 "    --speed-large-files     Assume file grandi e tante piccole differenze"
 
-#: src/diff.c:976
+#: src/diff.c:1036
 #, fuzzy
 msgid ""
 "    --color[=WHEN]       color output; WHEN is 'never', 'always', or "
@@ -1082,7 +1083,7 @@ msgstr ""
 "    --color[=QUANDO]        Colora l'output; QUANDO può essere \"never\", "
 "\"always\""
 
-#: src/diff.c:978
+#: src/diff.c:1038
 #, fuzzy
 msgid ""
 "    --palette=PALETTE    the colors to use when --color is active; PALETTE "
@@ -1093,103 +1094,103 @@ msgstr ""
 "capabilities\n"
 "                                   separati da \":\""
 
-#: src/diff.c:981
+#: src/diff.c:1041
 msgid "    --help               display this help and exit"
 msgstr "    --help                  Mostra questo aiuto ed esce"
 
-#: src/diff.c:982
+#: src/diff.c:1042
 msgid "-v, --version            output version information and exit"
 msgstr ""
 "-v, --version               Stampa le informazioni sulla versione ed esce"
 
-#: src/diff.c:984
+#: src/diff.c:1044
 msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
 "FILES sono \"FILE1 FILE2\" o \"DIR1 DIR2\" o \"DIR FILE\" o \"FILE DIR\"."
 
-#: src/diff.c:985
+#: src/diff.c:1045
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr ""
 "Se --from-file o --to-file sono usati, non ci sono restrizioni per FILES."
 
-#: src/diff.c:986 src/diff3.c:533 src/sdiff.c:220
+#: src/diff.c:1046 src/diff3.c:531 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
 msgstr "Se un FILE è \"-\", legge lo standard input."
 
-#: src/diff.c:996
+#: src/diff.c:1056
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Uso: %s [OPZIONE]... FILES\n"
 
-#: src/diff.c:997
+#: src/diff.c:1057
 msgid "Compare FILES line by line."
 msgstr "Confronta i file riga per riga."
 
-#: src/diff.c:1034
+#: src/diff.c:1094
 #, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "conflitto nell'opzione %s: valore \"%s\""
 
-#: src/diff.c:1047
+#: src/diff.c:1107
 #, c-format
 msgid "conflicting output style options"
 msgstr "opzioni di stile di output in conflitto"
 
-#: src/diff.c:1063
+#: src/diff.c:1123
 #, c-format
 msgid "invalid color '%s'"
 msgstr "colore \"%s\" non valido"
 
-#: src/diff.c:1119 src/diff.c:1329
+#: src/diff.c:1197 src/diff.c:1401
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Solo in %s: %s\n"
 
-#: src/diff.c:1253
+#: src/diff.c:1325
 msgid "cannot compare '-' to a directory"
 msgstr "impossibile confrontare \"-\" con una directory"
 
-#: src/diff.c:1288
+#: src/diff.c:1360
 msgid "-D option not supported with directories"
 msgstr "opzione -D non supportata con directory"
 
-#: src/diff.c:1297
+#: src/diff.c:1369
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Sottodirectory in comune: %s e %s\n"
 
-#: src/diff.c:1339 src/diff.c:1389
+#: src/diff.c:1411 src/diff.c:1461
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr "File %s è un %s mentre file %s è un %s\n"
 
-#: src/diff.c:1375
+#: src/diff.c:1447
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "I collegamenti simbolici %s e %s sono diversi\n"
 
-#: src/diff.c:1462
+#: src/diff.c:1534
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "I file %s e %s sono identici\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff3.c:43
+#: src/diff3.c:51
 msgid "Randy Smith"
 msgstr "Randy Smith"
 
-#: src/diff3.c:356
+#: src/diff3.c:363
 #, c-format
 msgid "incompatible options"
 msgstr "opzioni incompatibili"
 
-#: src/diff3.c:396
+#: src/diff3.c:403
 msgid "'-' specified for more than one input file"
 msgstr "\"-\" specificato per più di un file di input"
 
-#: src/diff3.c:447 src/diff3.c:1295 src/diff3.c:1698 src/diff3.c:1753
-#: src/sdiff.c:308 src/sdiff.c:846 src/sdiff.c:857
+#: src/diff3.c:445 src/diff3.c:1284 src/diff3.c:1683 src/diff3.c:1738
+#: src/sdiff.c:306 src/sdiff.c:843 src/sdiff.c:854
 msgid "read failed"
 msgstr "lettura fallita"
 
@@ -1208,7 +1209,7 @@ msgstr "lettura fallita"
 # .
 #
 # Lo strano allineamento della seconda riga è corretto.
-#: src/diff3.c:480
+#: src/diff3.c:478
 msgid "-A, --show-all              output all changes, bracketing conflicts"
 msgstr ""
 "-A, --show-all              Mostra tutte le differenze, tenendo separati\n"
@@ -1231,7 +1232,7 @@ msgstr ""
 # 'differenze'.
 #
 # Lo strano allineamento della seconda riga è corretto.
-#: src/diff3.c:482
+#: src/diff3.c:480
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
@@ -1251,13 +1252,13 @@ msgstr ""
 # <<<<<<< file1
 # .
 #
-#: src/diff3.c:484
+#: src/diff3.c:482
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
 msgstr "-E, --show-overlap          Come -e, tenendo separati i conflitti"
 
 # Questa opzione, per i 3 file considerati, non produce niente.
 #
-#: src/diff3.c:485
+#: src/diff3.c:483
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
@@ -1272,24 +1273,24 @@ msgstr ""
 # Questo è il file 3.
 # .
 #
-#: src/diff3.c:486
+#: src/diff3.c:484
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
 msgstr ""
 "-x, --overlap-only          Come -e, ma mostra solo i cambiamenti che si\n"
 "                                sovrappongono"
 
-#: src/diff3.c:487
+#: src/diff3.c:485
 msgid "-X                          like -x, but bracket conflicts"
 msgstr "-X                          Come -x, ma tiene separati i conflitti"
 
-#: src/diff3.c:488
+#: src/diff3.c:486
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
 msgstr ""
 "-i                          Aggiunge i comandi \"w\" e \"q\" agli script per "
 "ed"
 
-#: src/diff3.c:490
+#: src/diff3.c:488
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
@@ -1297,25 +1298,25 @@ msgstr ""
 "-m, --merge                 Mostra il file combinato risultante, secondo -A\n"
 "                                se non è indicata nessun'altra opzione"
 
-#: src/diff3.c:493
+#: src/diff3.c:491
 msgid "-a, --text                  treat all files as text"
 msgstr "-a, --text                  Considera tutti i file come testo"
 
-#: src/diff3.c:494
+#: src/diff3.c:492
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr     Elimina i ritorni a capo a fine riga in input"
 
-#: src/diff3.c:495
+#: src/diff3.c:493
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
 msgstr ""
 "-T, --initial-tab           Allinea le tabulazioni usando una tabulazione"
 
-#: src/diff3.c:496
+#: src/diff3.c:494
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
 msgstr "    --diff-program=PROGRAMMA Usa PROGRAMMA per confrontare i file"
 
-#: src/diff3.c:497
+#: src/diff3.c:495
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
@@ -1323,25 +1324,25 @@ msgstr ""
 "-L, --label=ETICHETTA       Usa ETICHETTA invece del nome del file\n"
 "                                (può essere repetuta fino a tre volte)"
 
-#: src/diff3.c:500
+#: src/diff3.c:498
 msgid "    --help                  display this help and exit"
 msgstr "    --help                  Mostra questo aiuto ed esce"
 
-#: src/diff3.c:501
+#: src/diff3.c:499
 msgid "-v, --version               output version information and exit"
 msgstr ""
 "-v, --version               Stampa le informazioni sulla versione ed esce"
 
-#: src/diff3.c:510
+#: src/diff3.c:508
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
 msgstr "Uso: %s [OPZIONE]... MIOFILE VECCHIOFILE TUOFILE\n"
 
-#: src/diff3.c:512
+#: src/diff3.c:510
 msgid "Compare three files line by line."
 msgstr "Confronta tre file riga per riga."
 
-#: src/diff3.c:522
+#: src/diff3.c:520
 msgid ""
 "\n"
 "The default output format is a somewhat human-readable representation of\n"
@@ -1369,57 +1370,57 @@ msgstr ""
 "robusto\n"
 "di ed.\n"
 
-#: src/diff3.c:534
+#: src/diff3.c:532
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
 msgstr ""
 "Il codice d'uscita è 0 in caso di successo, 1 in caso di conflitto, 2 se "
 "sono\n"
 "stati riscontrati dei problemi."
 
-#: src/diff3.c:727
+#: src/diff3.c:725
 msgid "internal error: screwup in format of diff blocks"
 msgstr "errore interno: problema nel formato dei blocchi di diff"
 
-#: src/diff3.c:1022
+#: src/diff3.c:1015
 #, c-format
 msgid "%s: diff failed: "
 msgstr "%s: diff fallita: "
 
-#: src/diff3.c:1044
+#: src/diff3.c:1037
 msgid "internal error: invalid diff type in process_diff"
 msgstr "errore interno: tipo di diff non valido in process_diff"
 
-#: src/diff3.c:1069
+#: src/diff3.c:1060
 msgid "invalid diff format; invalid change separator"
 msgstr "formato di diff non valido; separatore di modifica non valido"
 
-#: src/diff3.c:1305
+#: src/diff3.c:1294
 msgid "invalid diff format; incomplete last line"
 msgstr "formato di diff non valido; ultima riga incompleta"
 
-#: src/diff3.c:1329 src/sdiff.c:276 src/util.c:969
+#: src/diff3.c:1318 src/sdiff.c:274 src/util.c:1069
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "programma accessorio \"%s\" non può essere chiamato"
 
-#: src/diff3.c:1354
+#: src/diff3.c:1343
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "formato di diff non valido; caratteri incorretti a inizio riga"
 
-#: src/diff3.c:1427
+#: src/diff3.c:1416
 msgid "internal error: invalid diff type passed to output"
 msgstr "errore interno: il tipo di diff passato all'output non è valido"
 
-#: src/diff3.c:1700 src/diff3.c:1757
+#: src/diff3.c:1685 src/diff3.c:1742
 msgid "input file shrank"
 msgstr "il file di input è rimpicciolito"
 
-#: src/dir.c:156
+#: src/dir.c:154
 #, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "impossibile confrontare i nomi dei file \"%s\" e \"%s\""
 
-#: src/dir.c:225
+#: src/dir.c:223
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: ciclo ricorsivo tra le directory"
@@ -1430,7 +1431,7 @@ msgid "Thomas Lord"
 msgstr "Thomas Lord"
 
 # Lo strano allineamento della seconda riga è corretto.
-#: src/sdiff.c:174
+#: src/sdiff.c:173
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
 msgstr ""
@@ -1438,122 +1439,122 @@ msgstr ""
 "                                in FILE"
 
 # Questa traduzione corrisponde a quella usata sopra per diff.
-#: src/sdiff.c:176
+#: src/sdiff.c:175
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
 msgstr "-i, --ignore-case           Ignora differenze in maiuscole e minuscole"
 
-#: src/sdiff.c:177
+#: src/sdiff.c:176
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
 msgstr ""
 "-E, --ignore-tab-expansion  Ignora differenze causate dall'espansione\n"
 "                                delle tabulazioni"
 
-#: src/sdiff.c:178
+#: src/sdiff.c:177
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
 msgstr "-Z, --ignore-trailing-space Ignora gli spazi a fine riga"
 
-#: src/sdiff.c:179
+#: src/sdiff.c:178
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
 msgstr "-b, --ignore-space-change   Ignora differenze nel numero di spazi"
 
-#: src/sdiff.c:180
+#: src/sdiff.c:179
 msgid "-W, --ignore-all-space       ignore all white space"
 msgstr "-W, --ignore-all-space      Ignora tutti gli spazi"
 
-#: src/sdiff.c:181
+#: src/sdiff.c:180
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
 msgstr "-B, --ignore-blank-lines    Ignora differenze in righe vuote"
 
 # Lo strano allineamento della seconda riga è corretto
-#: src/sdiff.c:182
+#: src/sdiff.c:181
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=ER Ignora differenze che corrispondono\n"
 "                                all'espressione regolare ER"
 
-#: src/sdiff.c:183
+#: src/sdiff.c:182
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr     Elimina i ritorni a capo a fine riga in input"
 
-#: src/sdiff.c:184
+#: src/sdiff.c:183
 msgid "-a, --text                   treat all files as text"
 msgstr "-a, --text                  Considera tutti i file come testo"
 
-#: src/sdiff.c:186
+#: src/sdiff.c:185
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
 msgstr ""
 "-w, --width=NUM             Mostra al massimo NUM colonne (predefinito 130)"
 
 # Lo strano allineamento della seconda riga è corretto.
-#: src/sdiff.c:187
+#: src/sdiff.c:186
 msgid ""
 "-l, --left-column            output only the left column of common lines"
 msgstr ""
 "-l, --left-column           Mostra solo la colonna di sinistra per le righe\n"
 "                                in comune"
 
-#: src/sdiff.c:188
+#: src/sdiff.c:187
 msgid "-s, --suppress-common-lines  do not output common lines"
 msgstr "-s, --suppress-common-lines Non mostra le righe in comune"
 
-#: src/sdiff.c:190
+#: src/sdiff.c:189
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
 msgstr ""
 "-t, --expand-tabs           Espande le tabulazioni in spazi nell'output"
 
-#: src/sdiff.c:191
+#: src/sdiff.c:190
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
 msgstr ""
 "--tabsize=NUM               Stop di tabulazione ogni NUM colonne\n"
 "                                (predefinito 8)"
 
-#: src/sdiff.c:193
+#: src/sdiff.c:192
 msgid "-d, --minimal                try hard to find a smaller set of changes"
 msgstr "-d, --minimal               Minimizza il numero di differenze"
 
-#: src/sdiff.c:194
+#: src/sdiff.c:193
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
 msgstr ""
 "-H, --speed-large-files     Assume file grandi e tante piccole differenze"
 
-#: src/sdiff.c:195
+#: src/sdiff.c:194
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
 msgstr "--diff-program=PROGRAMMA    Usa PROGRAMMA per confrontare i file"
 
-#: src/sdiff.c:197
+#: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
 msgstr "    --help                  Mostra questo aiuto ed esce"
 
-#: src/sdiff.c:198
+#: src/sdiff.c:197
 msgid "-v, --version                output version information and exit"
 msgstr ""
 "-v, --version               Stampa le informazioni sulla versione ed esce"
 
-#: src/sdiff.c:207
+#: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
 msgstr "Uso: %s [OPZIONE]... FILE1 FILE2\n"
 
-#: src/sdiff.c:209
+#: src/sdiff.c:208
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
 msgstr "Mostra le differenze tra FILE1 e FILE2 fianco a fianco."
 
 # Tobia Conforto: impossibile combinare in modo interattivo da standard input
-#: src/sdiff.c:330
+#: src/sdiff.c:328
 msgid "cannot interactively merge standard input"
 msgstr "impossibile combinare in modo interattivo con lo standard input"
 
-#: src/sdiff.c:597
+#: src/sdiff.c:594
 msgid "both files to be compared are directories"
 msgstr "entrambi i file da confrontare sono directory"
 
-#: src/sdiff.c:820
+#: src/sdiff.c:817
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
 "eb:\tEdit then use both versions.\n"
@@ -1577,12 +1578,12 @@ msgstr ""
 "v:\tInclude prolissamente le righe in comune.\n"
 "q:\tEsce.\n"
 
-#: src/util.c:662
+#: src/util.c:755
 #, c-format
 msgid "unrecognized prefix: %s"
 msgstr "prefisso non riconosciuto: %s"
 
-#: src/util.c:692
+#: src/util.c:785
 #, c-format
 msgid "unparsable value for --palette"
 msgstr "valore di --palette non comprensibile"
index 2b39b4e..911cd84 100644 (file)
--- a/po/ja.po
+++ b/po/ja.po
@@ -12,7 +12,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNU diffutils 3.2\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2021-08-01 18:56-0700\n"
+"POT-Creation-Date: 2023-05-21 01:51-0700\n"
 "PO-Revision-Date: 2011-09-08 14:13+0900\n"
 "Last-Translator: Yasuaki Taniguchi <yasuakit@gmail.com>\n"
 "Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
@@ -23,30 +23,30 @@ msgstr ""
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: lib/argmatch.c:132
+#: lib/argmatch.c:145
 #, fuzzy, c-format
 msgid "invalid argument %s for %s"
 msgstr "引数 `%3$s' に対して %1$s%2$s が無効です"
 
-#: lib/argmatch.c:133
+#: lib/argmatch.c:146
 #, c-format
 msgid "ambiguous argument %s for %s"
 msgstr ""
 
-#: lib/argmatch.c:152 lib/argmatch.h:223
+#: lib/argmatch.c:165 lib/argmatch.h:242
 #, fuzzy
 msgid "Valid arguments are:"
 msgstr "引数 `%3$s' に対して %1$s%2$s が無効です"
 
-#: lib/c-stack.c:187
+#: lib/c-stack.c:186
 msgid "program error"
 msgstr "プログラムエラー"
 
-#: lib/c-stack.c:188
+#: lib/c-stack.c:187
 msgid "stack overflow"
 msgstr "スタックオーバーフロー"
 
-#: lib/error.c:195
+#: lib/error.c:193
 msgid "Unknown system error"
 msgstr "不明なシステムエラー"
 
@@ -206,84 +206,84 @@ msgstr "%s: オプションには引数が必要です -- '%c'\n"
 #. If you don't know what to put here, please see
 #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:355
+#: lib/quotearg.c:354
 msgid "`"
 msgstr "`"
 
-#: lib/quotearg.c:356
+#: lib/quotearg.c:355
 msgid "'"
 msgstr "'"
 
-#: lib/regcomp.c:135
+#: lib/regcomp.c:122
 msgid "Success"
 msgstr "成功です"
 
-#: lib/regcomp.c:138
+#: lib/regcomp.c:125
 msgid "No match"
 msgstr "一致しません"
 
-#: lib/regcomp.c:141
+#: lib/regcomp.c:128
 msgid "Invalid regular expression"
 msgstr "無効な正規表現です"
 
-#: lib/regcomp.c:144
+#: lib/regcomp.c:131
 msgid "Invalid collation character"
 msgstr "無効な照合文字です"
 
-#: lib/regcomp.c:147
+#: lib/regcomp.c:134
 msgid "Invalid character class name"
 msgstr "無効な文字クラス名です"
 
-#: lib/regcomp.c:150
+#: lib/regcomp.c:137
 msgid "Trailing backslash"
 msgstr "終端のバックスラッシュ"
 
-#: lib/regcomp.c:153
+#: lib/regcomp.c:140
 msgid "Invalid back reference"
 msgstr "無効な前方参照です"
 
-#: lib/regcomp.c:156
+#: lib/regcomp.c:143
 #, fuzzy
 msgid "Unmatched [, [^, [:, [., or [="
 msgstr "[ または [^ が不一致です"
 
-#: lib/regcomp.c:159
+#: lib/regcomp.c:146
 msgid "Unmatched ( or \\("
 msgstr "( または \\( が不一致です"
 
-#: lib/regcomp.c:162
+#: lib/regcomp.c:149
 msgid "Unmatched \\{"
 msgstr "\\{ が不一致です"
 
-#: lib/regcomp.c:165
+#: lib/regcomp.c:152
 msgid "Invalid content of \\{\\}"
 msgstr "\\{\\} の中身が無効です"
 
-#: lib/regcomp.c:168
+#: lib/regcomp.c:155
 msgid "Invalid range end"
 msgstr "無効な範囲終了です"
 
-#: lib/regcomp.c:171
+#: lib/regcomp.c:158
 msgid "Memory exhausted"
 msgstr "メモリを使い果たしました"
 
-#: lib/regcomp.c:174
+#: lib/regcomp.c:161
 msgid "Invalid preceding regular expression"
 msgstr "無効な前方正規表現です"
 
-#: lib/regcomp.c:177
+#: lib/regcomp.c:164
 msgid "Premature end of regular expression"
 msgstr "正規表現が途中で終了しました"
 
-#: lib/regcomp.c:180
+#: lib/regcomp.c:167
 msgid "Regular expression too big"
 msgstr "正規表現が大きすぎます"
 
-#: lib/regcomp.c:183
+#: lib/regcomp.c:170
 msgid "Unmatched ) or \\)"
 msgstr ") または \\) が不一致です"
 
-#: lib/regcomp.c:676
+#: lib/regcomp.c:650
 msgid "No previous regular expression"
 msgstr "以前に正規表現がありません"
 
@@ -486,17 +486,17 @@ msgid "General help using GNU software: <%s>\n"
 msgstr ""
 "GNU ソフトウェアを使用する際の一般的なヘルプ: <http://www.gnu.org/gethelp/>\n"
 
-#: src/analyze.c:454 src/diff.c:1406
+#: src/analyze.c:455 src/diff.c:1478
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "ファイル %s と %s は異なります\n"
 
-#: src/analyze.c:455
+#: src/analyze.c:456
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "バイナリーファイル %s と%s は異なります\n"
 
-#: src/analyze.c:706 src/diff3.c:1470 src/util.c:1254
+#: src/analyze.c:707 src/diff3.c:1457 src/util.c:1354
 msgid "No newline at end of file"
 msgstr "ファイル末尾に改行がありません"
 
@@ -510,40 +510,41 @@ msgstr "Torbjorn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:120 src/diff.c:879 src/diff3.c:467 src/sdiff.c:160
+#: src/cmp.c:124 src/diff.c:939 src/diff3.c:465 src/sdiff.c:159
 #, fuzzy, c-format
 msgid "Try '%s --help' for more information."
 msgstr "詳しくは`%s --help'を実行してください。"
 
-#: src/cmp.c:138
+#: src/cmp.c:142
 #, fuzzy, c-format
 msgid "invalid --ignore-initial value '%s'"
 msgstr "無効な --ignore-initial の値 `%s' です"
 
-#: src/cmp.c:148
+#: src/cmp.c:152
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr "オプション -l と -s は同時に指定できません"
 
-#: src/cmp.c:156 src/diff.c:887 src/diff3.c:474 src/sdiff.c:168 src/sdiff.c:316
-#: src/sdiff.c:323 src/sdiff.c:876 src/util.c:852 src/util.c:952 src/util.c:959
+#: src/cmp.c:160 src/diff.c:947 src/diff3.c:472 src/sdiff.c:167 src/sdiff.c:314
+#: src/sdiff.c:321 src/sdiff.c:873 src/util.c:952 src/util.c:1052
+#: src/util.c:1059
 msgid "write failed"
 msgstr "書き込みに失敗しました"
 
-#: src/cmp.c:158 src/diff.c:889 src/diff.c:1471 src/diff3.c:476 src/sdiff.c:170
+#: src/cmp.c:162 src/diff.c:949 src/diff.c:1543 src/diff3.c:474 src/sdiff.c:169
 msgid "standard output"
 msgstr "標準出力"
 
-#: src/cmp.c:162
+#: src/cmp.c:166
 msgid "-b, --print-bytes          print differing bytes"
 msgstr "-b, --print-bytes          異なるバイトを表示する"
 
-#: src/cmp.c:163
+#: src/cmp.c:167
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
 msgstr ""
 "-i, --ignore-initial=SKIP         両方の入力の先頭 SKIP バイトをスキップする"
 
-#: src/cmp.c:164
+#: src/cmp.c:168
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
@@ -551,37 +552,37 @@ msgstr ""
 "-i, --ignore-initial=SKIP1:SKIP2  FILE1 の先頭 SKIP1 バイトと FILE2 の先頭\n"
 "                                      SKIP2 バイトをスキップする"
 
-#: src/cmp.c:166
+#: src/cmp.c:170
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
 msgstr "-l, --verbose              バイト数および異なるバイトの値を出力する"
 
-#: src/cmp.c:167
+#: src/cmp.c:171
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
 msgstr "-n, --bytes=LIMIT          最大 LIMIT バイトを比較する"
 
-#: src/cmp.c:168
+#: src/cmp.c:172
 msgid "-s, --quiet, --silent      suppress all normal output"
 msgstr "-s, --quiet, --silent      通常の表示をすべて抑止する"
 
-#: src/cmp.c:169
+#: src/cmp.c:173
 msgid "    --help                 display this help and exit"
 msgstr "    --help                 このメッセージを表示して終了する"
 
-#: src/cmp.c:170
+#: src/cmp.c:174
 msgid "-v, --version              output version information and exit"
 msgstr "-v, --version              バージョン情報を表示して終了する"
 
-#: src/cmp.c:179
+#: src/cmp.c:183
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
 msgstr "使用法: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
 
-#: src/cmp.c:181
+#: src/cmp.c:185
 msgid "Compare two files byte by byte."
 msgstr "2つのファイルをバイトごとに比較します。"
 
-#: src/cmp.c:183
+#: src/cmp.c:187
 msgid ""
 "The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
 "at the beginning of each file (zero by default)."
@@ -589,14 +590,14 @@ msgstr ""
 "オプションの SKIP1 と SKIP2 はそれぞれのファイルの先頭からスキップする\n"
 "バイト数を指定します(デフォルトは 0)。"
 
-#: src/cmp.c:186 src/diff.c:999 src/diff3.c:514 src/sdiff.c:211
+#: src/cmp.c:190 src/diff.c:1059 src/diff3.c:512 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
 "長い形式のオプションで必須の引数は、それに対応する短い形式のオプションでも同"
 "様に必須です。\n"
 
-#: src/cmp.c:192
+#: src/cmp.c:196
 msgid ""
 "SKIP values may be followed by the following multiplicative suffixes:\n"
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
@@ -606,192 +607,192 @@ msgstr ""
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
 "GB 1,000,000,000, G 1,073,741,824。また、 T, P, E, Z, Y も同様です。"
 
-#: src/cmp.c:195
+#: src/cmp.c:199
 #, fuzzy
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "FILE が `-' または指定しない場合、標準入力から読み込みます。"
 
-#: src/cmp.c:196 src/diff.c:987 src/sdiff.c:221
+#: src/cmp.c:200 src/diff.c:1047 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr ""
 "終了コードは、入力ファイルが同じ場合は 0、入力ファイルが異なる場合は 1、\n"
 "問題が発生したときは 2 になります。"
 
-#: src/cmp.c:243
+#: src/cmp.c:247
 #, fuzzy, c-format
 msgid "invalid --bytes value '%s'"
 msgstr "無効な --bytes の値 `%s' です。"
 
-#: src/cmp.c:269 src/diff.c:797 src/diff3.c:361 src/sdiff.c:567
+#: src/cmp.c:273 src/diff.c:857 src/diff3.c:368 src/sdiff.c:564
 #, fuzzy, c-format
 msgid "missing operand after '%s'"
 msgstr "`%s' の後に被演算子がありません"
 
-#: src/cmp.c:281 src/diff.c:799 src/diff3.c:363 src/sdiff.c:569
+#: src/cmp.c:285 src/diff.c:859 src/diff3.c:370 src/sdiff.c:566
 #, fuzzy, c-format
 msgid "extra operand '%s'"
 msgstr "余分な被演算子 `%s' です。"
 
-#: src/cmp.c:507
+#: src/cmp.c:521
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s 異なります: バイト %s、行 %s\n"
 
-#: src/cmp.c:523
+#: src/cmp.c:537
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
 msgstr "%s %s 異なります: バイト %s、行 %s %3o %s %3o %s\n"
 
-#: src/cmp.c:580
+#: src/cmp.c:594
 #, fuzzy, c-format
 msgid "cmp: EOF on %s which is empty\n"
 msgstr "cmp: %s でファイル終端 (EOF) に達しました\n"
 
-#: src/cmp.c:594
+#: src/cmp.c:608
 #, fuzzy, c-format
 msgid "cmp: EOF on %s after byte %s, line %s\n"
 msgstr "%s %s 異なります: バイト %s、行 %s\n"
 
-#: src/cmp.c:595
+#: src/cmp.c:609
 #, fuzzy, c-format
 msgid "cmp: EOF on %s after byte %s, in line %s\n"
 msgstr "%s %s 異なります: バイト %s、行 %s\n"
 
-#: src/cmp.c:601
+#: src/cmp.c:615
 #, fuzzy, c-format
 msgid "cmp: EOF on %s after byte %s\n"
 msgstr "cmp: %s でファイル終端 (EOF) に達しました\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:51
+#: src/diff.c:50
 msgid "Paul Eggert"
 msgstr "Paul Eggert"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:52
+#: src/diff.c:51
 msgid "Mike Haertel"
 msgstr "Mike Haertel"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:53
+#: src/diff.c:52
 msgid "David Hayes"
 msgstr "David Hayes"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:54
+#: src/diff.c:53
 msgid "Richard Stallman"
 msgstr "Richard Stallman"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:55
+#: src/diff.c:54
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:355
+#: src/diff.c:365
 #, fuzzy, c-format
 msgid "invalid context length '%s'"
 msgstr "無効な前後の行数 `%s' です"
 
-#: src/diff.c:438
+#: src/diff.c:487
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "このホストではページ割付けをサポートしません"
 
-#: src/diff.c:453 src/diff3.c:341
+#: src/diff.c:502 src/diff3.c:348
 #, c-format
 msgid "too many file label options"
 msgstr "ファイル・ラベル・オプションが多すぎます"
 
-#: src/diff.c:530
+#: src/diff.c:579
 #, fuzzy, c-format
 msgid "invalid width '%s'"
 msgstr "無効な幅 `%s' です"
 
-#: src/diff.c:534
+#: src/diff.c:583
 msgid "conflicting width options"
 msgstr "幅のオプションが競合しています"
 
-#: src/diff.c:559
+#: src/diff.c:608
 #, fuzzy, c-format
 msgid "invalid horizon length '%s'"
 msgstr "無効な横幅 `%s' です"
 
-#: src/diff.c:615
+#: src/diff.c:664
 #, fuzzy, c-format
 msgid "invalid tabsize '%s'"
 msgstr "無効なタブ幅 `%s' です"
 
-#: src/diff.c:619
+#: src/diff.c:668
 msgid "conflicting tabsize options"
 msgstr "タブ幅のオプションが競合しています"
 
-#: src/diff.c:774
+#: src/diff.c:834
 msgid "--from-file and --to-file both specified"
 msgstr "--from-file および --to-file の両方が指定されています"
 
-#: src/diff.c:893
+#: src/diff.c:953
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "    --normal                  通常の diff を出力する (デフォルト)"
 
-#: src/diff.c:894
+#: src/diff.c:954
 msgid "-q, --brief                   report only when files differ"
 msgstr "-q, --brief                   ファイルが異なるかどうかのみ表示する"
 
-#: src/diff.c:895
+#: src/diff.c:955
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr ""
 "-s, --report-identical-files  両方のファイルが同一であるかどうかのみ表示する"
 
-#: src/diff.c:896
+#: src/diff.c:956
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
 "-c, -C NUM, --context[=NUM]   コンテキスト diff 形式で前後 NUM (デフォルト: "
 "3) 行を表示する"
 
-#: src/diff.c:897
+#: src/diff.c:957
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
 "-u, -U NUM, --unified[=NUM]   ユニファイド diff 形式で前後 NUM (デフォルト: "
 "3) 行を表示する"
 
-#: src/diff.c:898
+#: src/diff.c:958
 msgid "-e, --ed                      output an ed script"
 msgstr "-e, --ed                      ed スクリプトを出力する"
 
-#: src/diff.c:899
+#: src/diff.c:959
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n, --rcs                     RCS 形式の diff を出力する"
 
-#: src/diff.c:900
+#: src/diff.c:960
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side            出力を2列にする"
 
-#: src/diff.c:901
+#: src/diff.c:961
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
 "-W, --width=NUM               表示する列を最大 NUM (デフォルト: 130) 列にする"
 
-#: src/diff.c:902
+#: src/diff.c:962
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr "    --left-column             共通行は左側の列のみ表示する"
 
-#: src/diff.c:903
+#: src/diff.c:963
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "    --suppress-common-lines   共通行の出力を抑止する"
 
-#: src/diff.c:905
+#: src/diff.c:965
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr "-p, --show-c-function         変更がある C 関数を表示する"
 
-#: src/diff.c:906
+#: src/diff.c:966
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr "-F, --show-function-line=RE   RE に一致する最も近い行を表示する"
 
-#: src/diff.c:907
+#: src/diff.c:967
 #, fuzzy
 msgid ""
 "    --label LABEL             use LABEL instead of file name and timestamp\n"
@@ -800,80 +801,80 @@ msgstr ""
 "    --label LABEL             ファイル名の代わりに LABEL を使用する\n"
 "                                (繰り返し指定できます)"
 
-#: src/diff.c:910
+#: src/diff.c:970
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr "-t, --expand-tabs             出力時にタブをスペースに展開する"
 
-#: src/diff.c:911
+#: src/diff.c:971
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr ""
 "-T, --initial-tab             タブで始まる行は、前にタブを置いてそろえる"
 
-#: src/diff.c:912
+#: src/diff.c:972
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=NUM             タブ幅を NUM (デフォルト: 8) 列に設定する"
 
-#: src/diff.c:913
+#: src/diff.c:973
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
 "    --suppress-blank-empty    空の出力行の前後ではスペースまたはタブを抑止す"
 "る"
 
-#: src/diff.c:914
+#: src/diff.c:974
 #, fuzzy
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr ""
 "-l, --paginate                ページ割り付けを行うために `pr' を通して出力す"
 "る"
 
-#: src/diff.c:916
+#: src/diff.c:976
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr "-r, --recursive                 サブディレクトリーを再帰的に比較する"
 
-#: src/diff.c:917
+#: src/diff.c:977
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr ""
 
-#: src/diff.c:918
+#: src/diff.c:978
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr ""
 "-N, --new-file                  存在しないファイルを空ファイルとして扱う"
 
-#: src/diff.c:919
+#: src/diff.c:979
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
 "    --unidirectional-new-file   存在しない最初のファイルを空ファイルとして扱"
 "う"
 
-#: src/diff.c:920
+#: src/diff.c:980
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr "    --ignore-file-name-case     ファイル名の大文字と小文字を区別しない"
 
-#: src/diff.c:921
+#: src/diff.c:981
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr "    --no-ignore-file-name-case  ファイル名の大文字と小文字を区別する"
 
-#: src/diff.c:922
+#: src/diff.c:982
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr "-x, --exclude=PAT               PAT に一致するファイルを除外する"
 
-#: src/diff.c:923
+#: src/diff.c:983
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
 "-X, --exclude-from=FILE         FILE 内のパターンに一致するファイルを除外する"
 
-#: src/diff.c:924
+#: src/diff.c:984
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
 "-S, --starting-file=FILE        ディレクトリーを比較する時に FILE から始める"
 
-#: src/diff.c:925
+#: src/diff.c:985
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
@@ -881,7 +882,7 @@ msgstr ""
 "    --from-file=FILE1           すべての被演算子と FILE1 を比較する\n"
 "                                  FILE1 はディレクトリーでもよい"
 
-#: src/diff.c:927
+#: src/diff.c:987
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
@@ -889,57 +890,57 @@ msgstr ""
 "    --to-file=FILE2             すべての被演算子を FILE2 を比較する\n"
 "                                  FILE2 はディレクトリーでもよい"
 
-#: src/diff.c:930
+#: src/diff.c:990
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr ""
 "-i, --ignore-case               ファイル内容の比較時に大文字と小文字を区別し"
 "ない"
 
-#: src/diff.c:931
+#: src/diff.c:991
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr "-E, --ignore-tab-expansion      タブ展開によって発生する違いを無視する"
 
-#: src/diff.c:932
+#: src/diff.c:992
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr "-Z, --ignore-trailing-space     行末にあるスペースを無視する"
 
-#: src/diff.c:933
+#: src/diff.c:993
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr "-b, --ignore-space-change       スペース数により生じる違いを無視する"
 
-#: src/diff.c:934
+#: src/diff.c:994
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w, --ignore-all-space          すべてのスペースを無視する"
 
-#: src/diff.c:935
+#: src/diff.c:995
 #, fuzzy
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr ""
 "-B, --ignore-blank-lines        空白類文字だけの行により生じる違いを無視する"
 
-#: src/diff.c:936
+#: src/diff.c:996
 #, fuzzy
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=RE  RE と一致するすべての行の違いを無視する"
 
-#: src/diff.c:938
+#: src/diff.c:998
 msgid "-a, --text                      treat all files as text"
 msgstr "-a, --text                      すべてのファイルをテキストとして扱う"
 
-#: src/diff.c:939
+#: src/diff.c:999
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr         入力から CR (キャリッジリターン) を除去する"
 
-#: src/diff.c:941
+#: src/diff.c:1001
 msgid "    --binary                    read and write data in binary mode"
 msgstr "    --binary                    バイナリーモードでデータを読み書きする"
 
-#: src/diff.c:944
+#: src/diff.c:1004
 #, fuzzy
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
@@ -947,19 +948,19 @@ msgstr ""
 "-D, --ifdef=NAME                パッチ適用時に `#ifdef NAME' で併合されるよう"
 "に差分を出力する"
 
-#: src/diff.c:945
+#: src/diff.c:1005
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr "    --GTYPE-group-format=GFMT   GTYPE の入力グループを GFMT で整形する"
 
-#: src/diff.c:946
+#: src/diff.c:1006
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr "    --line-format=LFMT          すべての入力行を LFMT で整形する"
 
-#: src/diff.c:947
+#: src/diff.c:1007
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr "    --LTYPE-line-format=LFMT    LTYPE 入力行を LFMT で整形する"
 
-#: src/diff.c:948
+#: src/diff.c:1008
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
@@ -968,14 +969,14 @@ msgstr ""
 "に\n"
 "    見えるように制御するために提供されます。"
 
-#: src/diff.c:950
+#: src/diff.c:1010
 #, fuzzy
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
 "  LTYPE は `old'、`new'、または`unchanged'です。GTYPE は LTYPE または "
 "`changed' です。"
 
-#: src/diff.c:951
+#: src/diff.c:1011
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -1003,7 +1004,7 @@ msgstr ""
 "        M  L+1\n"
 "    %(A=B?T:E)  A と B が等しい場合は T、等しくない場合は E"
 
-#: src/diff.c:963
+#: src/diff.c:1023
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -1015,7 +1016,7 @@ msgstr ""
 "    %l  行末にあるすべての種類の改行文字を除いた行の内容\n"
 "    %[-][WIDTH][.[PREC]]{doxX}n  printf 書式の入力行"
 
-#: src/diff.c:967
+#: src/diff.c:1027
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1029,144 +1030,144 @@ msgstr ""
 "    %c'\\OOO'  八進数コード OOO\n"
 "    C    文字 C (他の文字も同様に表す)"
 
-#: src/diff.c:973
+#: src/diff.c:1033
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr "-d, --minimal            差分の大きさが最小となるように違いを検出する"
 
-#: src/diff.c:974
+#: src/diff.c:1034
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr "    --horizon-lines=NUM  差分の前後にある共通部分を NUM 行保持する"
 
-#: src/diff.c:975
+#: src/diff.c:1035
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
 "    --speed-large-files  巨大なファイルに小さな差分が分散していると仮定する"
 
-#: src/diff.c:976
+#: src/diff.c:1036
 msgid ""
 "    --color[=WHEN]       color output; WHEN is 'never', 'always', or "
 "'auto';\n"
 "                           plain --color means --color='auto'"
 msgstr ""
 
-#: src/diff.c:978
+#: src/diff.c:1038
 msgid ""
 "    --palette=PALETTE    the colors to use when --color is active; PALETTE "
 "is\n"
 "                           a colon-separated list of terminfo capabilities"
 msgstr ""
 
-#: src/diff.c:981
+#: src/diff.c:1041
 msgid "    --help               display this help and exit"
 msgstr "    --help               このヘルプを表示して終了する"
 
-#: src/diff.c:982
+#: src/diff.c:1042
 msgid "-v, --version            output version information and exit"
 msgstr "-v, --version            バージョン情報を表示して終了する"
 
-#: src/diff.c:984
+#: src/diff.c:1044
 #, fuzzy
 msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
 "FILES は `FILE1 FILE2'、`DIR1 DIR2' 、`DIR FILE...'、または `FILE... DIR' で"
 "す。"
 
-#: src/diff.c:985
+#: src/diff.c:1045
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr ""
 "--from-file または --to-file が与えられた場合、FILE に制限はありません。"
 
-#: src/diff.c:986 src/diff3.c:533 src/sdiff.c:220
+#: src/diff.c:1046 src/diff3.c:531 src/sdiff.c:219
 #, fuzzy
 msgid "If a FILE is '-', read standard input."
 msgstr "FILE が `-' の場合、標準入力から読み込みます。"
 
-#: src/diff.c:996
+#: src/diff.c:1056
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "使用法: %s [OPTION]... FILES\n"
 
-#: src/diff.c:997
+#: src/diff.c:1057
 msgid "Compare FILES line by line."
 msgstr "FILES を行ごとに比較します。"
 
-#: src/diff.c:1034
+#: src/diff.c:1094
 #, fuzzy, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "%s オプションの値 `%s' が競合しています"
 
-#: src/diff.c:1047
+#: src/diff.c:1107
 #, c-format
 msgid "conflicting output style options"
 msgstr "出力形式オプションが競合しています"
 
-#: src/diff.c:1063
+#: src/diff.c:1123
 #, fuzzy, c-format
 msgid "invalid color '%s'"
 msgstr "無効な前後の行数 `%s' です"
 
-#: src/diff.c:1119 src/diff.c:1329
+#: src/diff.c:1197 src/diff.c:1401
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "%s のみに存在: %s\n"
 
-#: src/diff.c:1253
+#: src/diff.c:1325
 #, fuzzy
 msgid "cannot compare '-' to a directory"
 msgstr "`-' とディレクトリーは比較できません"
 
-#: src/diff.c:1288
+#: src/diff.c:1360
 msgid "-D option not supported with directories"
 msgstr "-D オプションはディレクトリーにはサポートされません"
 
-#: src/diff.c:1297
+#: src/diff.c:1369
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "共通のサブディレクトリー: %s と %s\n"
 
-#: src/diff.c:1339 src/diff.c:1389
+#: src/diff.c:1411 src/diff.c:1461
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr "ファイル %s は %s です。一方、ファイル %s は %s です\n"
 
-#: src/diff.c:1375
+#: src/diff.c:1447
 #, fuzzy, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "ファイル %s と %s は異なります\n"
 
-#: src/diff.c:1462
+#: src/diff.c:1534
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "ファイル %s と %s は同一です\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff3.c:43
+#: src/diff3.c:51
 msgid "Randy Smith"
 msgstr "Randy Smith"
 
-#: src/diff3.c:356
+#: src/diff3.c:363
 #, c-format
 msgid "incompatible options"
 msgstr "同時に指定できないオプションです"
 
-#: src/diff3.c:396
+#: src/diff3.c:403
 #, fuzzy
 msgid "'-' specified for more than one input file"
 msgstr "入力ファイルとして `-' が複数回指定されています"
 
-#: src/diff3.c:447 src/diff3.c:1295 src/diff3.c:1698 src/diff3.c:1753
-#: src/sdiff.c:308 src/sdiff.c:846 src/sdiff.c:857
+#: src/diff3.c:445 src/diff3.c:1284 src/diff3.c:1683 src/diff3.c:1738
+#: src/sdiff.c:306 src/sdiff.c:843 src/sdiff.c:854
 msgid "read failed"
 msgstr "読み込みに失敗しました"
 
-#: src/diff3.c:480
+#: src/diff3.c:478
 msgid "-A, --show-all              output all changes, bracketing conflicts"
 msgstr ""
 "-A, --show-all              競合をすべて括弧でくくり、変更をすべて出力する"
 
-#: src/diff3.c:482
+#: src/diff3.c:480
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
@@ -1175,11 +1176,11 @@ msgstr ""
 "                                スクリプトとして出力する\n"
 "                                "
 
-#: src/diff3.c:484
+#: src/diff3.c:482
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
 msgstr "-E, --show-overlap          -e と同様だが、競合を括弧でくくる"
 
-#: src/diff3.c:485
+#: src/diff3.c:483
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
@@ -1187,23 +1188,23 @@ msgstr ""
 "-3, --easy-only             -e と同様だが、3ファイル競合で無い部分のみ出力す"
 "る"
 
-#: src/diff3.c:486
+#: src/diff3.c:484
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
 msgstr ""
 "-x, --overlap-only          -e と同様だが、3ファイル競合の部分のみ出力する"
 
-#: src/diff3.c:487
+#: src/diff3.c:485
 msgid "-X                          like -x, but bracket conflicts"
 msgstr "-X                          -x と同様だが、競合を括弧でくくる"
 
-#: src/diff3.c:488
+#: src/diff3.c:486
 #, fuzzy
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
 msgstr ""
 "-i                          ed スクリプトの後に `w' と `q' コマンドを追加する"
 
-#: src/diff3.c:490
+#: src/diff3.c:488
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
@@ -1211,23 +1212,23 @@ msgstr ""
 "-m, --merge                 他のオプションを指定していない場合、-A 従って\n"
 "                                実際に併合されたファイルを出力する"
 
-#: src/diff3.c:493
+#: src/diff3.c:491
 msgid "-a, --text                  treat all files as text"
 msgstr "-a, --text                  すべてのファイルをテキストとして扱う"
 
-#: src/diff3.c:494
+#: src/diff3.c:492
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
 msgstr "    --strip-trailing-cr     入力から末尾のキャリッジリターンを除去する"
 
-#: src/diff3.c:495
+#: src/diff3.c:493
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
 msgstr "-T, --initial-tab           タブで始まる行は、前にタブを置いてそろえる"
 
-#: src/diff3.c:496
+#: src/diff3.c:494
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
 msgstr "    --diff-program=PROGRAM  ファイル比較に PROGRAM を使用する"
 
-#: src/diff3.c:497
+#: src/diff3.c:495
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
@@ -1235,24 +1236,24 @@ msgstr ""
 "-L, --label=LABEL           ファイル名の代わりに LABEL を使用する\n"
 "                                (3回まで繰り返し指定できる)"
 
-#: src/diff3.c:500
+#: src/diff3.c:498
 msgid "    --help                  display this help and exit"
 msgstr "    --help                  このヘルプを表示して終了する"
 
-#: src/diff3.c:501
+#: src/diff3.c:499
 msgid "-v, --version               output version information and exit"
 msgstr "-v, --version               バージョン情報を表示して終了する"
 
-#: src/diff3.c:510
+#: src/diff3.c:508
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
 msgstr "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
 
-#: src/diff3.c:512
+#: src/diff3.c:510
 msgid "Compare three files line by line."
 msgstr "3つのファイルを行ごとに比較します。"
 
-#: src/diff3.c:522
+#: src/diff3.c:520
 msgid ""
 "\n"
 "The default output format is a somewhat human-readable representation of\n"
@@ -1275,56 +1276,56 @@ msgstr ""
 "併合されたファイルを出力します。通常の入力としては、これは ed を使用す\n"
 "るより強固です。\n"
 
-#: src/diff3.c:534
+#: src/diff3.c:532
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
 msgstr ""
 "終了コードは、成功した場合は 0、競合がある場合は 1、\n"
 "問題が発生したときは 2 になります。"
 
-#: src/diff3.c:727
+#: src/diff3.c:725
 msgid "internal error: screwup in format of diff blocks"
 msgstr "内部エラー: 差分ブロックの形式をうまく処理できませんでした"
 
-#: src/diff3.c:1022
+#: src/diff3.c:1015
 #, c-format
 msgid "%s: diff failed: "
 msgstr "%s: diff に失敗しました: "
 
-#: src/diff3.c:1044
+#: src/diff3.c:1037
 msgid "internal error: invalid diff type in process_diff"
 msgstr "内部エラー: process_diff 内に無効な差分型があります"
 
-#: src/diff3.c:1069
+#: src/diff3.c:1060
 msgid "invalid diff format; invalid change separator"
 msgstr "無効な差分形式です。無効な変更区切りです"
 
-#: src/diff3.c:1305
+#: src/diff3.c:1294
 msgid "invalid diff format; incomplete last line"
 msgstr "無効な差分形式です。最後の行が不完全です"
 
-#: src/diff3.c:1329 src/sdiff.c:276 src/util.c:969
+#: src/diff3.c:1318 src/sdiff.c:274 src/util.c:1069
 #, fuzzy, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "下位プログラム `%s' が起動できません"
 
-#: src/diff3.c:1354
+#: src/diff3.c:1343
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "無効な差分形式です。行の先頭文字が誤っています"
 
-#: src/diff3.c:1427
+#: src/diff3.c:1416
 msgid "internal error: invalid diff type passed to output"
 msgstr "内部エラー: 無効な差分型が出力に渡されました"
 
-#: src/diff3.c:1700 src/diff3.c:1757
+#: src/diff3.c:1685 src/diff3.c:1742
 msgid "input file shrank"
 msgstr "入力ファイルが小さくなりました"
 
-#: src/dir.c:156
+#: src/dir.c:154
 #, fuzzy, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "ファイル `%s' と `%s' を比較できません"
 
-#: src/dir.c:225
+#: src/dir.c:223
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: ディレクトリーが再帰的にループしています"
@@ -1334,119 +1335,119 @@ msgstr "%s: ディレクトリーが再帰的にループしています"
 msgid "Thomas Lord"
 msgstr "Thomas Lord"
 
-#: src/sdiff.c:174
+#: src/sdiff.c:173
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
 msgstr "-o, --output=FILE            対話的に操作し、出力を FILE に送る"
 
-#: src/sdiff.c:176
+#: src/sdiff.c:175
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
 msgstr "-i, --ignore-case            大文字と小文字を区別しない"
 
-#: src/sdiff.c:177
+#: src/sdiff.c:176
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
 msgstr "-E, --ignore-tab-expansion   タブ展開によって発生する違いを無視する"
 
-#: src/sdiff.c:178
+#: src/sdiff.c:177
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
 msgstr "-Z, --ignore-trailing-space  行末にあるスペースを無視する"
 
-#: src/sdiff.c:179
+#: src/sdiff.c:178
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
 msgstr "-b, --ignore-space-change    スペース数により生じる違いを無視する"
 
-#: src/sdiff.c:180
+#: src/sdiff.c:179
 msgid "-W, --ignore-all-space       ignore all white space"
 msgstr "-W, --ignore-all-space       すべてのスペースを無視する"
 
-#: src/sdiff.c:181
+#: src/sdiff.c:180
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
 msgstr ""
 "-B, --ignore-blank-lines     空白類文字だけの行により生じる違いを無視する"
 
-#: src/sdiff.c:182
+#: src/sdiff.c:181
 #, fuzzy
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=RE  RE と一致するすべての行の違いを無視する"
 
-#: src/sdiff.c:183
+#: src/sdiff.c:182
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr      入力から末尾のキャリッジリターンを除去する"
 
-#: src/sdiff.c:184
+#: src/sdiff.c:183
 msgid "-a, --text                   treat all files as text"
 msgstr "-a, --text                   すべてのファイルをテキストとして扱う"
 
-#: src/sdiff.c:186
+#: src/sdiff.c:185
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
 msgstr ""
 "-w, --width=NUM              表示する列を最大 NUM (デフォルト: 130) 列にする"
 
-#: src/sdiff.c:187
+#: src/sdiff.c:186
 msgid ""
 "-l, --left-column            output only the left column of common lines"
 msgstr "-l, --left-column            共通行は左側の列のみ表示する"
 
-#: src/sdiff.c:188
+#: src/sdiff.c:187
 msgid "-s, --suppress-common-lines  do not output common lines"
 msgstr "-s, --suppress-common-lines  共通行の出力を抑止する"
 
-#: src/sdiff.c:190
+#: src/sdiff.c:189
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
 msgstr "-t, --expand-tabs            出力時にタブをスペースに展開する"
 
-#: src/sdiff.c:191
+#: src/sdiff.c:190
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
 msgstr "    --tabsize=NUM            タブ幅を NUM (デフォルト: 8) 列に設定する"
 
-#: src/sdiff.c:193
+#: src/sdiff.c:192
 msgid "-d, --minimal                try hard to find a smaller set of changes"
 msgstr ""
 "-d, --minimal                差分の大きさが最小となるように違いを検出する"
 
-#: src/sdiff.c:194
+#: src/sdiff.c:193
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
 msgstr ""
 "-H, --speed-large-files      巨大なファイルに小さな差分が分散していると仮定す"
 "る"
 
-#: src/sdiff.c:195
+#: src/sdiff.c:194
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
 msgstr "    --diff-program=PROGRAM   ファイル比較に PROGRAM を使用する"
 
-#: src/sdiff.c:197
+#: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
 msgstr "    --help                   このヘルプを表示して終了する"
 
-#: src/sdiff.c:198
+#: src/sdiff.c:197
 msgid "-v, --version                output version information and exit"
 msgstr "-v, --version                バージョン情報を表示して終了する"
 
-#: src/sdiff.c:207
+#: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
 msgstr "使用法: %s [OPTION]... FILE1 FILE2\n"
 
-#: src/sdiff.c:209
+#: src/sdiff.c:208
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
 msgstr "FILE1 と FILE2 の差分を2段組で比較しながら併合します。"
 
-#: src/sdiff.c:330
+#: src/sdiff.c:328
 msgid "cannot interactively merge standard input"
 msgstr "標準出力は対話的に併合できません"
 
-#: src/sdiff.c:597
+#: src/sdiff.c:594
 msgid "both files to be compared are directories"
 msgstr "比較対象は両方ともディレクトリーです"
 
-#: src/sdiff.c:820
+#: src/sdiff.c:817
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
 "eb:\tEdit then use both versions.\n"
@@ -1470,12 +1471,12 @@ msgstr ""
 "v:            共通行を明示して含める。\n"
 "q:            終了する。\n"
 
-#: src/util.c:662
+#: src/util.c:755
 #, fuzzy, c-format
 msgid "unrecognized prefix: %s"
 msgstr "%s: オプション '--%s' を認識できません\n"
 
-#: src/util.c:692
+#: src/util.c:785
 #, c-format
 msgid "unparsable value for --palette"
 msgstr ""
diff --git a/po/ka.gmo b/po/ka.gmo
new file mode 100644 (file)
index 0000000..6ee12d0
Binary files /dev/null and b/po/ka.gmo differ
diff --git a/po/ka.po b/po/ka.po
new file mode 100644 (file)
index 0000000..deac91e
--- /dev/null
+++ b/po/ka.po
@@ -0,0 +1,1435 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2002 Free Software Foundation, Inc.
+# This file is distributed under the same license as the diffutils package.
+# Temuri Doghonadze <temuri.doghonadze@gmail.com>, 2022.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU diffutils 3.7.41\n"
+"Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
+"POT-Creation-Date: 2023-05-21 01:51-0700\n"
+"PO-Revision-Date: 2022-04-29 14:43+0200\n"
+"Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\n"
+"Language-Team: Georgian <(nothing)>\n"
+"Language: ka\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Poedit 3.0.1\n"
+
+#: lib/argmatch.c:145
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "%s არასწორი არგუმენტია %s-თვის"
+
+#: lib/argmatch.c:146
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "%s გაურკვეველი არგუმენტია %s-თვის"
+
+#: lib/argmatch.c:165 lib/argmatch.h:242
+msgid "Valid arguments are:"
+msgstr "სწორი არგუმენტებია:"
+
+#: lib/c-stack.c:186
+msgid "program error"
+msgstr "პროგრამის შეცდომა"
+
+#: lib/c-stack.c:187
+msgid "stack overflow"
+msgstr "სტეკის გადავსება"
+
+#: lib/error.c:193
+msgid "Unknown system error"
+msgstr "სისტემის უცნობი შეცდომა"
+
+#: lib/file-type.c:40
+msgid "regular empty file"
+msgstr "ჩვეულებრივი ცარიელი ფაილი"
+
+#: lib/file-type.c:40
+msgid "regular file"
+msgstr "ჩვეულებრივი ფაილი"
+
+#: lib/file-type.c:43
+msgid "directory"
+msgstr "საქაღალდე"
+
+#: lib/file-type.c:46
+msgid "symbolic link"
+msgstr "სიმბმული"
+
+#: lib/file-type.c:52
+msgid "message queue"
+msgstr "შეტყობინებების რიგი"
+
+#: lib/file-type.c:55
+msgid "semaphore"
+msgstr "სემაფორა"
+
+#: lib/file-type.c:58
+msgid "shared memory object"
+msgstr "მეხსიერების გაზიარებული ობიექტი"
+
+#: lib/file-type.c:61
+msgid "typed memory object"
+msgstr "ტიპიზირებული მეხსიერების ობიექტი"
+
+#: lib/file-type.c:66
+msgid "block special file"
+msgstr "ბლოკური სპეციალური ფაილი"
+
+#: lib/file-type.c:69
+msgid "character special file"
+msgstr "სიმბოლური სპეციალური ფაილი"
+
+#: lib/file-type.c:72
+msgid "contiguous data"
+msgstr "განგრძობადი მონაცემები"
+
+#: lib/file-type.c:75
+msgid "fifo"
+msgstr "fifo"
+
+#: lib/file-type.c:78
+msgid "door"
+msgstr "კარი"
+
+#: lib/file-type.c:81
+msgid "multiplexed block special file"
+msgstr "მულტიპლექსირებული ბლოკური სპეციალური ფაილი"
+
+#: lib/file-type.c:84
+msgid "multiplexed character special file"
+msgstr "მულტიპლექსირებული სიმბოლური სპეციალური ფაილი"
+
+#: lib/file-type.c:87
+msgid "multiplexed file"
+msgstr "მულტიპლექსლური ფაილი"
+
+#: lib/file-type.c:90
+msgid "named file"
+msgstr "სახელიანი ფაილი"
+
+#: lib/file-type.c:93
+msgid "network special file"
+msgstr "ქსელური  სპეციალური ფაილი"
+
+#: lib/file-type.c:96
+msgid "migrated file with data"
+msgstr "მიგრირებული ფაილი მონაცემებით"
+
+#: lib/file-type.c:99
+msgid "migrated file without data"
+msgstr "მიგრირებული ფაილი მონაცემების გარეშე"
+
+#: lib/file-type.c:102
+msgid "port"
+msgstr "პორტი"
+
+#: lib/file-type.c:105
+msgid "socket"
+msgstr "სოკეტი"
+
+#: lib/file-type.c:108
+msgid "whiteout"
+msgstr "სიცარიელე"
+
+#: lib/file-type.c:110
+msgid "weird file"
+msgstr "უცნაური ფაილი"
+
+#: lib/getopt.c:278
+#, c-format
+msgid "%s: option '%s%s' is ambiguous\n"
+msgstr "%s: პარამეტრი '%s%s' გაურკვეველია\n"
+
+#: lib/getopt.c:284
+#, c-format
+msgid "%s: option '%s%s' is ambiguous; possibilities:"
+msgstr "%s: პარამეტრი '%s%s' გაურკვეველია; შესაძლო ვარიანტები:"
+
+#: lib/getopt.c:319
+#, c-format
+msgid "%s: unrecognized option '%s%s'\n"
+msgstr "%s: უცნობი პარამეტრი '%s'%s'\n"
+
+#: lib/getopt.c:345
+#, c-format
+msgid "%s: option '%s%s' doesn't allow an argument\n"
+msgstr "%s: პარამეტრს \"%s%s' არგუმენტი არ სჭირდება\n"
+
+#: lib/getopt.c:360
+#, c-format
+msgid "%s: option '%s%s' requires an argument\n"
+msgstr "%s: პარამეტრს \"%s%s\" არგუმენტი ესაჭიროება\n"
+
+#: lib/getopt.c:621
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: არასწორი პარამეტრი -- '%c'\n"
+
+#: lib/getopt.c:636 lib/getopt.c:682
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: პარამეტრს ესაჭიროება არგუმენტი -- '%c'\n"
+
+#. TRANSLATORS:
+#. Get translations for open and closing quotation marks.
+#. The message catalog should translate "`" to a left
+#. quotation mark suitable for the locale, and similarly for
+#. "'".  For example, a French Unicode local should translate
+#. these to U+00AB (LEFT-POINTING DOUBLE ANGLE
+#. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE
+#. QUOTATION MARK), respectively.
+#.
+#. If the catalog has no translation, we will try to
+#. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and
+#. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK).  If the
+#. current locale is not Unicode, locale_quoting_style
+#. will quote 'like this', and clocale_quoting_style will
+#. quote "like this".  You should always include translations
+#. for "`" and "'" even if U+2018 and U+2019 are appropriate
+#. for your locale.
+#.
+#. If you don't know what to put here, please see
+#. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+#. and use glyphs suitable for your language.
+#: lib/quotearg.c:354
+msgid "`"
+msgstr "`"
+
+#: lib/quotearg.c:355
+msgid "'"
+msgstr "'"
+
+#: lib/regcomp.c:122
+msgid "Success"
+msgstr "წარმატება"
+
+#: lib/regcomp.c:125
+msgid "No match"
+msgstr "არ ემთხვევა"
+
+#: lib/regcomp.c:128
+msgid "Invalid regular expression"
+msgstr "არასწორი რეგულარული გამოსახულება"
+
+#: lib/regcomp.c:131
+msgid "Invalid collation character"
+msgstr "კოლაციის არასწორი სიმბოლო"
+
+#: lib/regcomp.c:134
+msgid "Invalid character class name"
+msgstr "სიმბოლოების არასწორი კლასი"
+
+#: lib/regcomp.c:137
+msgid "Trailing backslash"
+msgstr "ბოლო Backslash"
+
+#: lib/regcomp.c:140
+msgid "Invalid back reference"
+msgstr "არასწორი უკუბმა"
+
+#: lib/regcomp.c:143
+msgid "Unmatched [, [^, [:, [., or [="
+msgstr "არ ემთხვევა [, [^, [:, [., ან [="
+
+#: lib/regcomp.c:146
+msgid "Unmatched ( or \\("
+msgstr "არ ემთხვევა ( ან \\("
+
+#: lib/regcomp.c:149
+msgid "Unmatched \\{"
+msgstr "არ ემთხვევა \\{"
+
+#: lib/regcomp.c:152
+msgid "Invalid content of \\{\\}"
+msgstr "\\{\\}-ის არასწორი შემცელობა"
+
+#: lib/regcomp.c:155
+msgid "Invalid range end"
+msgstr "დიაპაზონის არასწორი დასასრული"
+
+#: lib/regcomp.c:158
+msgid "Memory exhausted"
+msgstr "მეხსიერება გადავსებულია"
+
+#: lib/regcomp.c:161
+msgid "Invalid preceding regular expression"
+msgstr "რეგულარული გამოსახულების არასწორი საწყისი"
+
+#: lib/regcomp.c:164
+msgid "Premature end of regular expression"
+msgstr "რეგულარული გამოსახულების მოულოდნელი დასასრული"
+
+#: lib/regcomp.c:167
+msgid "Regular expression too big"
+msgstr "რეგულარული გამოსახულება ძალიან დიდია"
+
+#: lib/regcomp.c:170
+msgid "Unmatched ) or \\)"
+msgstr "არ ემთხვევა ) ან \\)"
+
+#: lib/regcomp.c:650
+msgid "No previous regular expression"
+msgstr "წინა რეგულარული გამოსახულება არ არსებობს"
+
+#: lib/xalloc-die.c:34
+msgid "memory exhausted"
+msgstr "მეხსიერება გადავსებულია"
+
+#: lib/xfreopen.c:34
+msgid "stdin"
+msgstr "stdin"
+
+#: lib/xfreopen.c:35
+msgid "stdout"
+msgstr "stdout"
+
+#: lib/xfreopen.c:36
+msgid "stderr"
+msgstr "stderr"
+
+#: lib/xfreopen.c:37
+msgid "unknown stream"
+msgstr "უცნობი ნაკადი"
+
+#: lib/xfreopen.c:38
+#, c-format
+msgid "failed to reopen %s with mode %s"
+msgstr "%s-ის %s რეჟიმში ხელახალი გახსნიშ ეცდომა"
+
+#: lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr "ფაილის სტანდარტული დესკტრიპტორები"
+
+#: lib/version-etc.c:73
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "აწყობილია %s-ის მიერ (%s)\n"
+
+#: lib/version-etc.c:76
+#, c-format
+msgid "Packaged by %s\n"
+msgstr "აწყობილია %s-ის მიერ\n"
+
+#. TRANSLATORS: Translate "(C)" to the copyright symbol
+#. (C-in-a-circle), if this symbol is available in the user's
+#. locale.  Otherwise, do not translate "(C)"; leave it as-is.
+#: lib/version-etc.c:83
+msgid "(C)"
+msgstr "(C)"
+
+#. TRANSLATORS: The %s placeholder is the web address of the GPL license.
+#: lib/version-etc.c:88
+#, c-format
+msgid ""
+"License GPLv3+: GNU GPL version 3 or later <%s>.\n"
+"This is free software: you are free to change and redistribute it.\n"
+"There is NO WARRANTY, to the extent permitted by law.\n"
+msgstr ""
+"License GPLv3+: GNU GPL version 3 or later <%s>.\n"
+"This is free software: you are free to change and redistribute it.\n"
+"There is NO WARRANTY, to the extent permitted by law.\n"
+
+#. TRANSLATORS: %s denotes an author name.
+#: lib/version-etc.c:105
+#, c-format
+msgid "Written by %s.\n"
+msgstr "ავტორი: %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:109
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr "ავტორები: %s და %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:113
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+msgstr "ავტორები: %s, %s და %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:120
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"ავტორები: %s, %s, %s\n"
+"და %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:127
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"ავტორები: %s, %s, %s,\n"
+"%s და %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:134
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+"ავტორები: %s, %s, %s,\n"
+"%s, %s და %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:142
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+"ავტორები: %s, %s, %s,\n"
+"%s, %s, %s და %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:150
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"ავტორები: %s, %s, %s,\n"
+"%s, %s, %s, %s\n"
+"და %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:159
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"ავტორები: %s, %s, %s,\n"
+"%s, %s, %s, %s\n"
+"%s და %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:170
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, and others.\n"
+msgstr ""
+"ავტორები: %s, %s, %s,\n"
+"%s, %s, %s, %s\n"
+"%s, %s და სხვ.\n"
+
+#. TRANSLATORS: The placeholder indicates the bug-reporting address
+#. for this package.  Please add _another line_ saying
+#. "Report translation bugs to <...>\n" with the address for translation
+#. bugs (typically your translation team's web or email address).
+#: lib/version-etc.c:249
+#, c-format
+msgid "Report bugs to: %s\n"
+msgstr "შეცდომების შესახებ მიწერეთ: %s\n"
+
+#: lib/version-etc.c:251
+#, c-format
+msgid "Report %s bugs to: %s\n"
+msgstr "%s-ის შეცდომების შესახებ მისაწერი ელფოსტა: %s\n"
+
+#: lib/version-etc.c:255 lib/version-etc.c:257
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "%s-ის საწყისი გვერდია: <%s>\n"
+
+#: lib/version-etc.c:260
+#, c-format
+msgid "General help using GNU software: <%s>\n"
+msgstr "GNU-ის პროგრამული უზრუნველყოფის საერთო დახმარება: <%s >\n"
+
+#: src/analyze.c:455 src/diff.c:1478
+#, c-format
+msgid "Files %s and %s differ\n"
+msgstr "ფილები %s და %s განსხვავდებიან\n"
+
+#: src/analyze.c:456
+#, c-format
+msgid "Binary files %s and %s differ\n"
+msgstr "ბინარული ფილები %s და %s განსხვავდებიან\n"
+
+#: src/analyze.c:707 src/diff3.c:1457 src/util.c:1354
+msgid "No newline at end of file"
+msgstr "ფაილის ბოლოში ხაზის გადატანა არ არსებობს"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/cmp.c:45
+msgid "Torbjorn Granlund"
+msgstr "Torbjorn Granlund"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/cmp.c:46
+msgid "David MacKenzie"
+msgstr "David MacKenzie"
+
+#: src/cmp.c:124 src/diff.c:939 src/diff3.c:465 src/sdiff.c:159
+#, c-format
+msgid "Try '%s --help' for more information."
+msgstr "მეტი ინფორმაციისთვის სცადეთ '%s --help'."
+
+#: src/cmp.c:142
+#, c-format
+msgid "invalid --ignore-initial value '%s'"
+msgstr "--ignore-initial-ის არასწორი მნიშვნელობა '%s'"
+
+#: src/cmp.c:152
+#, c-format
+msgid "options -l and -s are incompatible"
+msgstr "პარამეტრები -l და -s შეუთავსებელია"
+
+#: src/cmp.c:160 src/diff.c:947 src/diff3.c:472 src/sdiff.c:167 src/sdiff.c:314
+#: src/sdiff.c:321 src/sdiff.c:873 src/util.c:952 src/util.c:1052
+#: src/util.c:1059
+msgid "write failed"
+msgstr "ჩაწერის შეცდომა"
+
+#: src/cmp.c:162 src/diff.c:949 src/diff.c:1543 src/diff3.c:474 src/sdiff.c:169
+msgid "standard output"
+msgstr "სტანდარტული გამოტანა"
+
+#: src/cmp.c:166
+msgid "-b, --print-bytes          print differing bytes"
+msgstr "-b, --print-bytes      განსხვავებული ბაიტების გამოტანა"
+
+#: src/cmp.c:167
+msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
+msgstr ""
+"-I, --ignore-initial=SKIP      ორივე შეტანის პირველი SKIP ბაიტების გამოტოვება"
+
+#: src/cmp.c:168
+msgid ""
+"-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
+"                                      first SKIP2 bytes of FILE2"
+msgstr ""
+"-I, --ignore-initial=SKIP1:SKIP2  პირველი ფაილის SKIP1 ბაიტის და \n"
+"                                                    მეორე ფაილის SKIP2 "
+"ბაიტის გამოტოვება"
+
+#: src/cmp.c:170
+msgid ""
+"-l, --verbose              output byte numbers and differing byte values"
+msgstr ""
+"-l, --verbose           ბაიტების ნომრების და განსხვავებების ბაიტების "
+"მნიშვნელობები გამოტანა"
+
+#: src/cmp.c:171
+msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
+msgstr "-n, --bytes=LIMIT         LIMIT-მდე ბაიტის შედარება"
+
+#: src/cmp.c:172
+msgid "-s, --quiet, --silent      suppress all normal output"
+msgstr "-s, --quiet, --silent      ნორმალური გამოტანის ჩაჩუმება"
+
+#: src/cmp.c:173
+msgid "    --help                 display this help and exit"
+msgstr "     --help        ამ დახმარების გამოტანა და გამოსვლა"
+
+#: src/cmp.c:174
+msgid "-v, --version              output version information and exit"
+msgstr "-v, --version              ვერსიის ჩვენება და გასვლა"
+
+#: src/cmp.c:183
+#, c-format
+msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
+msgstr ""
+"გამოყენება: %s [პარამეტრი].. ფაილი1 [ფაილი2 [გამოტოვება1 [გამოტოვება2]]]\n"
+
+#: src/cmp.c:185
+msgid "Compare two files byte by byte."
+msgstr "ორი ფაილის ბაიტ-ბაიტ შედარება."
+
+#: src/cmp.c:187
+msgid ""
+"The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
+"at the beginning of each file (zero by default)."
+msgstr ""
+"არასავალდებულო SKIP1 და SKIP2 მიუთითებს თითოეული ფაილის \n"
+"თავში ან ბოლოში გამოსატოვებელი ბაიტების რიცხვის (ნაგულისხმები: 0)."
+
+#: src/cmp.c:190 src/diff.c:1059 src/diff3.c:512 src/sdiff.c:210
+msgid ""
+"Mandatory arguments to long options are mandatory for short options too.\n"
+msgstr ""
+"გრძელი პარამეტრების აუცილებელი არგუმენტები მათი მოკლე ვარიანტებისთვისაც "
+"სავალდებულოა.\n"
+
+#: src/cmp.c:196
+msgid ""
+"SKIP values may be followed by the following multiplicative suffixes:\n"
+"kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
+"GB 1,000,000,000, G 1,073,741,824, and so on for T, P, E, Z, Y."
+msgstr ""
+
+#: src/cmp.c:199
+msgid "If a FILE is '-' or missing, read standard input."
+msgstr "როცა ფაილი არ არსებობს ან '-'-ია, წაკითხვა stdin-დან მოხდება."
+
+#: src/cmp.c:200 src/diff.c:1047 src/sdiff.c:220
+msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
+msgstr ""
+"გამოსვლის სტატუსია 0, თუ შეყვანილები იგივეა, 1 თუ სხვადასხვა და 2, თუ "
+"პრობლემა წარმოიშვა."
+
+#: src/cmp.c:247
+#, c-format
+msgid "invalid --bytes value '%s'"
+msgstr "--bytes-ის არასწორი მნიშვნელობა: %s"
+
+#: src/cmp.c:273 src/diff.c:857 src/diff3.c:368 src/sdiff.c:564
+#, c-format
+msgid "missing operand after '%s'"
+msgstr "აკლია ფაილის ოპერანდი '%s'-ის შემდეგ"
+
+#: src/cmp.c:285 src/diff.c:859 src/diff3.c:370 src/sdiff.c:566
+#, c-format
+msgid "extra operand '%s'"
+msgstr "ზედმეტი ოპერანდი %s"
+
+#: src/cmp.c:521
+#, c-format
+msgid "%s %s differ: byte %s, line %s\n"
+msgstr "%s %s განსხვავება: ბაიტი %s, ხაზი %s\n"
+
+#: src/cmp.c:537
+#, c-format
+msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
+msgstr "%s %s განხვავდება: ბაიტი %s, ხაზი %s არის %3o %s %3o %s\n"
+
+#: src/cmp.c:594
+#, c-format
+msgid "cmp: EOF on %s which is empty\n"
+msgstr "cmp: EOF %s-ზე, რომელიც ცარიელია\n"
+
+#: src/cmp.c:608
+#, c-format
+msgid "cmp: EOF on %s after byte %s, line %s\n"
+msgstr "cmp: EOF %s-ზე, %s ბაიტის შემდეგ, ხაზი %s\n"
+
+#: src/cmp.c:609
+#, c-format
+msgid "cmp: EOF on %s after byte %s, in line %s\n"
+msgstr "cmp: EOF %s-ზე, %s ბაიტის შემდეგ, ხაზზე %s\n"
+
+#: src/cmp.c:615
+#, c-format
+msgid "cmp: EOF on %s after byte %s\n"
+msgstr "cmp: EOF %s-ზე, %s ბაიტის შემდეგ\n"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/diff.c:50
+msgid "Paul Eggert"
+msgstr "Paul Eggert"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/diff.c:51
+msgid "Mike Haertel"
+msgstr "Mike Haertel"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/diff.c:52
+msgid "David Hayes"
+msgstr "David Hayes"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/diff.c:53
+msgid "Richard Stallman"
+msgstr "Richard Stallman"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/diff.c:54
+msgid "Len Tower"
+msgstr "Len Tower"
+
+#: src/diff.c:365
+#, c-format
+msgid "invalid context length '%s'"
+msgstr "'%s'-ის კონტექსტის არასწორი სიგრძე"
+
+#: src/diff.c:487
+#, c-format
+msgid "pagination not supported on this host"
+msgstr "ამ ჰოსტზე გვერდების დანომრვა მხარდაუჭერელია"
+
+#: src/diff.c:502 src/diff3.c:348
+#, c-format
+msgid "too many file label options"
+msgstr "ფაილის ჭდის მეტისმეტად ბევრი პარამეტრი"
+
+#: src/diff.c:579
+#, c-format
+msgid "invalid width '%s'"
+msgstr "'%s'-ის არასწორი სიგანე"
+
+#: src/diff.c:583
+msgid "conflicting width options"
+msgstr "ურთიერთგამომრიცხავი პარამეტრები"
+
+#: src/diff.c:608
+#, c-format
+msgid "invalid horizon length '%s'"
+msgstr "ჰორიზონტის არასწორი სიგრძე '%s'"
+
+#: src/diff.c:664
+#, c-format
+msgid "invalid tabsize '%s'"
+msgstr "ტაბულაციის არასწორი სიგრძე '%s'"
+
+#: src/diff.c:668
+msgid "conflicting tabsize options"
+msgstr "ტაბულაციის ურთიერთგამომრიცხავი პარამეტრები"
+
+#: src/diff.c:834
+msgid "--from-file and --to-file both specified"
+msgstr "მითითებულია ორივე, --from-file და --to-file"
+
+#: src/diff.c:953
+msgid "    --normal                  output a normal diff (the default)"
+msgstr "      --normal           diff-ის ნორმალური გამოტანა (ნაგულისხმები)"
+
+#: src/diff.c:954
+msgid "-q, --brief                   report only when files differ"
+msgstr ""
+"-q, --brief          მხოლოდ იმის გამოტანა, განსხვავდებიან თუა რა ფაილები"
+
+#: src/diff.c:955
+msgid "-s, --report-identical-files  report when two files are the same"
+msgstr "-s, --report-identical-files შეტყობინება, როცა ფაილები იდენტურია"
+
+#: src/diff.c:956
+msgid ""
+"-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
+msgstr ""
+"-c, -C NUM, --context[=NUM]    კოპირებული კონტექსტის NUM(ნაგულისხმებად 3) "
+"ხაზის გამოტანა"
+
+#: src/diff.c:957
+msgid ""
+"-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
+msgstr ""
+"-u, -U NUM, --unified[=NUM]    გაერთიანებული კონტექსტის NUM(ნაგულისხმებად 3) "
+"ხაზის გამოტანა"
+
+#: src/diff.c:958
+msgid "-e, --ed                      output an ed script"
+msgstr "-e, --ed          ed-ის სკრიპტის გამოტანა"
+
+#: src/diff.c:959
+msgid "-n, --rcs                     output an RCS format diff"
+msgstr "-n, --rcs          diff-ის RCS ფორმატში გამოტანა"
+
+#: src/diff.c:960
+msgid "-y, --side-by-side            output in two columns"
+msgstr "-y, --side-by-side     ორ სვეტში გამოტანა"
+
+#: src/diff.c:961
+msgid ""
+"-W, --width=NUM               output at most NUM (default 130) print columns"
+msgstr "-W, --width=NUM        მაქსიმუმ NUM (ნაგულისხმები 130) სვეტის გამოტანა"
+
+#: src/diff.c:962
+msgid ""
+"    --left-column             output only the left column of common lines"
+msgstr ""
+"    --left-column          საერთო ხაზების მხოლოდ მარცხენა სვეტის ჩვენება"
+
+#: src/diff.c:963
+msgid "    --suppress-common-lines   do not output common lines"
+msgstr "   --suppress-commn-lines  არ გამოიტანო საერთო ხაზები"
+
+#: src/diff.c:965
+msgid "-p, --show-c-function         show which C function each change is in"
+msgstr "-p, --show-c-function       ცვლილებების მქონე C-ის ფუნქციების ჩვენება"
+
+#: src/diff.c:966
+msgid "-F, --show-function-line=RE   show the most recent line matching RE"
+msgstr ""
+"-F, --show-function-line=RE  უახლოესი ხაზის ჩვენება, რომელიც RE-ს ემთხვევა"
+
+#: src/diff.c:967
+msgid ""
+"    --label LABEL             use LABEL instead of file name and timestamp\n"
+"                                (can be repeated)"
+msgstr ""
+"    --label LABEL       ფაილის სახელისა და დროის შტამპის მაგიერ LABEL-ის "
+"გამოყენება\n"
+"                                (შეიძლება მეორდებოდეს)"
+
+#: src/diff.c:970
+msgid "-t, --expand-tabs             expand tabs to spaces in output"
+msgstr "-t, --expand-tabs         გამოტანისას ტაბულაციის გამოტოვებებით შეცვლა"
+
+#: src/diff.c:971
+msgid "-T, --initial-tab             make tabs line up by prepending a tab"
+msgstr "-T, --initial-tab            ტაბულაციების დალაგება მათი ქვეშმიწერით"
+
+#: src/diff.c:972
+msgid ""
+"    --tabsize=NUM             tab stops every NUM (default 8) print columns"
+msgstr ""
+"   --tabsize=NUM           ტაბულაცია გაჩერდება ყოველ NUM (ნაგულიხმებად "
+"8( სვეტის დაბეჭდვის შემდეგ)"
+
+#: src/diff.c:973
+msgid ""
+"    --suppress-blank-empty    suppress space or tab before empty output lines"
+msgstr ""
+"   --suppress-blank-empty     გამოტოვების იგნორი გამოსატან ცარიელ ხაზებამდე"
+
+#: src/diff.c:974
+msgid "-l, --paginate                pass output through 'pr' to paginate it"
+msgstr "-l, --paginage         'pr'-ში გატარება"
+
+#: src/diff.c:976
+msgid ""
+"-r, --recursive                 recursively compare any subdirectories found"
+msgstr "-r, --recursive             ყველა ქვესაქაღალდეში რეკურსიულად ძებნა"
+
+#: src/diff.c:977
+msgid "    --no-dereference            don't follow symbolic links"
+msgstr "    --no-dereference         არ მიჰყვე სიმბმულებს"
+
+#: src/diff.c:978
+msgid "-N, --new-file                  treat absent files as empty"
+msgstr "-N, --new-file            არარსებული ფაილების, როგორც ცარიელების აღქმა"
+
+#: src/diff.c:979
+msgid "    --unidirectional-new-file   treat absent first files as empty"
+msgstr ""
+"   --unidirectional-new-file   არარსებული პირველი ფაილების, როგორც "
+"ცარიელების აღქმა"
+
+#: src/diff.c:980
+msgid "    --ignore-file-name-case     ignore case when comparing file names"
+msgstr ""
+"   --ignore-file-name-case ფაილების სახელების შედარებისას დიდი და პატარა "
+"ასოების განსხვავების გამორთვა"
+
+#: src/diff.c:981
+msgid "    --no-ignore-file-name-case  consider case when comparing file names"
+msgstr ""
+"   --ignore-file-name-case ფაილების სახელების შედარებისას დიდი და პატარა "
+"ასოების განსხვავების ჩართვა"
+
+#: src/diff.c:982
+msgid "-x, --exclude=PAT               exclude files that match PAT"
+msgstr "-x, --exclude=PAT         PAT-ზე დამთხვეული ფაილების იგნორი"
+
+#: src/diff.c:983
+msgid ""
+"-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
+msgstr ""
+"-X, --exclude-from=FILE       იმ ფაილების გამოტოვება, რომელიც FILE-ში "
+"აღწერილ ნებისმიერ სტრიქონს ემთხვევა"
+
+#: src/diff.c:984
+msgid ""
+"-S, --starting-file=FILE        start with FILE when comparing directories"
+msgstr ""
+"-S, --starting-file=FILE        საქაღალდეების შედარებისას FILE-ით დაწყება"
+
+#: src/diff.c:985
+msgid ""
+"    --from-file=FILE1           compare FILE1 to all operands;\n"
+"                                  FILE1 can be a directory"
+msgstr ""
+"   --from-file=FILE1      FILE1-ის ყველა ოპერანდისთვის შედარება;\n"
+"                                     FILE1 საქაღალდე შეიძლება იყოს"
+
+#: src/diff.c:987
+msgid ""
+"    --to-file=FILE2             compare all operands to FILE2;\n"
+"                                  FILE2 can be a directory"
+msgstr ""
+"         --to-file=FILE2            ყველა ოპერანდის FILE2-თან შედარება;\n"
+"                                             FILE2 საქაღალდეც შეიძლება იყოს"
+
+#: src/diff.c:990
+msgid ""
+"-i, --ignore-case               ignore case differences in file contents"
+msgstr ""
+"-I, --ignore-case ფაილის შემცველობების შედარებისას დიდი და პატარა ასოების "
+"ერთნაირად აღქმა"
+
+#: src/diff.c:991
+msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
+msgstr ""
+"-E, --ignore-tab-expansion   ტაბულაციის გაფართოების გამო გამოწვეული "
+"ცვლილებების იგნორი"
+
+#: src/diff.c:992
+msgid "-Z, --ignore-trailing-space     ignore white space at line end"
+msgstr ""
+"-Z, --ignore-training-space ხაზების ბოლოში დამატებითი გამოტოვების იგნორი"
+
+#: src/diff.c:993
+msgid ""
+"-b, --ignore-space-change       ignore changes in the amount of white space"
+msgstr "-b, --ignore-space-change    გამოტოვების რაოდენობების ცვლილების იგნორი"
+
+#: src/diff.c:994
+msgid "-w, --ignore-all-space          ignore all white space"
+msgstr "-W, --ignore-all-space     ყველა გამოტოვებების იგნორი"
+
+#: src/diff.c:995
+msgid ""
+"-B, --ignore-blank-lines        ignore changes where lines are all blank"
+msgstr ""
+"-B, --ignore-blank-lines     ცვლილებების, რომელიც ცარიელ ხაზებს "
+"წარმოადგენენ, იგნორი"
+
+#: src/diff.c:996
+msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
+msgstr ""
+"-I, --ignore-matching-lines=RE   იმ ცვლილებების იგნორი, რომლის ხაზებიც "
+"ემთხვევა RE-ს"
+
+#: src/diff.c:998
+msgid "-a, --text                      treat all files as text"
+msgstr "-a, --text           ყველა ფაილის ტექსტად აღქმა"
+
+#: src/diff.c:999
+msgid "    --strip-trailing-cr         strip trailing carriage return on input"
+msgstr "   --strip-trainingcr   შეტანისას კარეტის გადატანის სიმბოლოს მოცილება"
+
+#: src/diff.c:1001
+msgid "    --binary                    read and write data in binary mode"
+msgstr "    --binary                  მონაცემების ორობით რეჟიმში წერა/კითხვა"
+
+#: src/diff.c:1004
+msgid ""
+"-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
+msgstr ""
+"-D, --ifdef=NAME                   შერწყმული ფაილის '#ifdef NAME' "
+"ცვლილებების გამოტანა"
+
+#: src/diff.c:1005
+msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
+msgstr ""
+"    --GTYPE-group-format=GFMT    GTYPE-ის შეტანის ჯგუფების GFMT-ით "
+"ფორმატირება"
+
+#: src/diff.c:1006
+msgid "    --line-format=LFMT          format all input lines with LFMT"
+msgstr ""
+"   --line-format=LFMT           შეყვანის ყველა ხაზის LFMT-ით ფორმატირება"
+
+#: src/diff.c:1007
+msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
+msgstr ""
+"   --LTYPE-line-format=LFMT   LTYPE შეყვანის ხაზების LFMT-ით ფორმატირება"
+
+#: src/diff.c:1008
+msgid ""
+"  These format options provide fine-grained control over the output\n"
+"    of diff, generalizing -D/--ifdef."
+msgstr ""
+
+#: src/diff.c:1010
+msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
+msgstr ""
+"  LTYPE შეიძლება იყოს 'old', 'new', ან 'unchanged'.  GTYPE შეიძლება იყოს "
+"LTYPE ან 'changed'."
+
+#: src/diff.c:1011
+msgid ""
+"  GFMT (only) may contain:\n"
+"    %<  lines from FILE1\n"
+"    %>  lines from FILE2\n"
+"    %=  lines common to FILE1 and FILE2\n"
+"    %[-][WIDTH][.[PREC]]{doxX}LETTER  printf-style spec for LETTER\n"
+"      LETTERs are as follows for new group, lower case for old group:\n"
+"        F  first line number\n"
+"        L  last line number\n"
+"        N  number of lines = L-F+1\n"
+"        E  F-1\n"
+"        M  L+1\n"
+"    %(A=B?T:E)  if A equals B then T else E"
+msgstr ""
+
+#: src/diff.c:1023
+msgid ""
+"  LFMT (only) may contain:\n"
+"    %L  contents of line\n"
+"    %l  contents of line, excluding any trailing newline\n"
+"    %[-][WIDTH][.[PREC]]{doxX}n  printf-style spec for input line number"
+msgstr ""
+
+#: src/diff.c:1027
+msgid ""
+"  Both GFMT and LFMT may contain:\n"
+"    %%  %\n"
+"    %c'C'  the single character C\n"
+"    %c'\\OOO'  the character with octal code OOO\n"
+"    C    the character C (other characters represent themselves)"
+msgstr ""
+"  GFMT და LFMT შეიძლება შეიცავდნენ:\n"
+"    %%  %\n"
+"    %c'C'  ერთ სიმბოლოს C\n"
+"    %c'\\OOO'  სიმბოლოს რვაობითი კოდით OOO\n"
+"    C    სიმბოლო C (სხვა სიმბოლოები თავის თავს ნიშნავენ)"
+
+#: src/diff.c:1033
+msgid "-d, --minimal            try hard to find a smaller set of changes"
+msgstr "-d, --minimal        რაც შეიძლება პატარა განსხვავებების პოვნა"
+
+#: src/diff.c:1034
+msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
+msgstr ""
+"   --horizon-lines=NUM   საერთო პრეფიქსსა და სუფიქსს შორის NUM ხაზის "
+"შენარჩუნება"
+
+#: src/diff.c:1035
+msgid ""
+"    --speed-large-files  assume large files and many scattered small changes"
+msgstr "    --speed-large-files     ფაილების სიდიდის წინასწარ გათვალისწინება"
+
+#: src/diff.c:1036
+msgid ""
+"    --color[=WHEN]       color output; WHEN is 'never', 'always', or "
+"'auto';\n"
+"                           plain --color means --color='auto'"
+msgstr ""
+"     --color=[WHEN]    ფერად გამოტანა. WHEN შეიძლება იყოს 'never', 'always' "
+"ან 'auto';\n"
+"                                   უბრალოდ --color იგივეა, რაც --color='auto'"
+
+#: src/diff.c:1038
+msgid ""
+"    --palette=PALETTE    the colors to use when --color is active; PALETTE "
+"is\n"
+"                           a colon-separated list of terminfo capabilities"
+msgstr ""
+
+#: src/diff.c:1041
+msgid "    --help               display this help and exit"
+msgstr "     --help        ამ დახმარების გამოტანა და გამოსვლა"
+
+#: src/diff.c:1042
+msgid "-v, --version            output version information and exit"
+msgstr "-v, --version              ვერსიის ჩვენება და გასვლა"
+
+#: src/diff.c:1044
+msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
+msgstr ""
+"FILES შეიძლება იყოს 'FILE1 FILE2' ან 'DIR1 DIR2' ან 'DIR FILE' ან 'FILE DIR'."
+
+#: src/diff.c:1045
+msgid ""
+"If --from-file or --to-file is given, there are no restrictions on FILE(s)."
+msgstr ""
+"თუ მითითებულია --from-file ან --to-file, შეზღუდვები FILE-ებზე არ არსებობს."
+
+#: src/diff.c:1046 src/diff3.c:531 src/sdiff.c:219
+msgid "If a FILE is '-', read standard input."
+msgstr "როცა ფაილი წარმოადგენს '-'-ს, წაკითხვა stdin-დან მოხდება."
+
+#: src/diff.c:1056
+#, c-format
+msgid "Usage: %s [OPTION]... FILES\n"
+msgstr "გამოყენება: %s [პარამეტრი].. [ფაილები]\n"
+
+#: src/diff.c:1057
+msgid "Compare FILES line by line."
+msgstr "ფაილების ხაზ-ხაზ შედარება."
+
+#: src/diff.c:1094
+#, c-format
+msgid "conflicting %s option value '%s'"
+msgstr "პარამეტრი \"%s\" არასწორი მნიშვნელობა %s"
+
+#: src/diff.c:1107
+#, c-format
+msgid "conflicting output style options"
+msgstr "გამოტანის ურთიერთგამომრიცხავი პარამეტრები"
+
+#: src/diff.c:1123
+#, c-format
+msgid "invalid color '%s'"
+msgstr "არასწორი ფერი '%s'"
+
+#: src/diff.c:1197 src/diff.c:1401
+#, c-format
+msgid "Only in %s: %s\n"
+msgstr "მხოლოდ %s-ში: %s\n"
+
+#: src/diff.c:1325
+msgid "cannot compare '-' to a directory"
+msgstr "'-'-ს საქაღალდეს ვერ შევადარებ"
+
+#: src/diff.c:1360
+msgid "-D option not supported with directories"
+msgstr "პარამეტრი -D საქაღალდეებთან მუშაობისას მხარდაჭერილი არაა"
+
+#: src/diff.c:1369
+#, c-format
+msgid "Common subdirectories: %s and %s\n"
+msgstr "საერთო ქვესაქაღალდეები: %s და %s\n"
+
+#: src/diff.c:1411 src/diff.c:1461
+#, c-format
+msgid "File %s is a %s while file %s is a %s\n"
+msgstr "ფაილი %s %s-ა, როცა ფაილი %s %s-ა\n"
+
+#: src/diff.c:1447
+#, c-format
+msgid "Symbolic links %s and %s differ\n"
+msgstr "სიმბმულები %s და %s განსხვავდებიან\n"
+
+#: src/diff.c:1534
+#, c-format
+msgid "Files %s and %s are identical\n"
+msgstr "ფაილები %s და %s იდენტურებია\n"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/diff3.c:51
+msgid "Randy Smith"
+msgstr "Randy Smith"
+
+#: src/diff3.c:363
+#, c-format
+msgid "incompatible options"
+msgstr "შეუთავსებელი პარამეტრები"
+
+#: src/diff3.c:403
+msgid "'-' specified for more than one input file"
+msgstr "ერთზე მეტი ფაილის შესატანად მიუთითეთ '-'"
+
+#: src/diff3.c:445 src/diff3.c:1284 src/diff3.c:1683 src/diff3.c:1738
+#: src/sdiff.c:306 src/sdiff.c:843 src/sdiff.c:854
+msgid "read failed"
+msgstr "წაკითხვის შეცდომა"
+
+#: src/diff3.c:478
+msgid "-A, --show-all              output all changes, bracketing conflicts"
+msgstr "-A, --show-all      ყველა ცვლილების ჩვენება, ფრჩხილებში კონფლიქტებით)"
+
+#: src/diff3.c:480
+msgid ""
+"-e, --ed                    output ed script incorporating changes\n"
+"                                from OLDFILE to YOURFILE into MYFILE"
+msgstr ""
+"-e, --ed              ed-ის სკრიპტის გამოტანა, რომელიც\n"
+"                           OLDFILE-სა და YOURFILE-ს შორის ცვლილებებს MYFILE-"
+"ში ჩაწერს"
+
+#: src/diff3.c:482
+msgid "-E, --show-overlap          like -e, but bracket conflicts"
+msgstr ""
+"-E, --show-overlap          -e -ის მსგავსად, მაგრამ ფრჩხილების კონფლიქტით"
+
+#: src/diff3.c:483
+msgid ""
+"-3, --easy-only             like -e, but incorporate only nonoverlapping "
+"changes"
+msgstr ""
+"-3, --easy-only             -e -ის მსგავსად, მაგრამ მხოლოდ არაგადაფარვადი "
+"ცვლილებების ჩასმა"
+
+#: src/diff3.c:484
+msgid ""
+"-x, --overlap-only          like -e, but incorporate only overlapping changes"
+msgstr ""
+"-x, overlap-only          -e -ის მსგავსად, მაგრამ მხოლოდ გადაფარვადი "
+"ცვლილებების ჩასმა"
+
+#: src/diff3.c:485
+msgid "-X                          like -x, but bracket conflicts"
+msgstr "-X               -x -ის მაგვარი, მაგრამ ფრჩხილების კონფლიქტებით"
+
+#: src/diff3.c:486
+msgid "-i                          append 'w' and 'q' commands to ed scripts"
+msgstr ""
+"-I                           ed-ის სკრიპტებისთვის 'w' და 'q' ბრძანებების "
+"მიწერა"
+
+#: src/diff3.c:488
+msgid ""
+"-m, --merge                 output actual merged file, according to\n"
+"                                -A if no other options are given"
+msgstr ""
+"-m, --merge            შერწყმული ფაილის გამოტანა,\n"
+"                                -A -ზე დაყრდნობით, თუ სხვა პარამეტრებიც არაა "
+"მითითებული"
+
+#: src/diff3.c:491
+msgid "-a, --text                  treat all files as text"
+msgstr "-a, --text           ყველა ფაილის ტექსტად აღქმა"
+
+#: src/diff3.c:492
+msgid "    --strip-trailing-cr     strip trailing carriage return on input"
+msgstr "   --strip-trainingcr   შეტანისას კარეტის გადატანის სიმბოლოს მოცილება"
+
+#: src/diff3.c:493
+msgid "-T, --initial-tab           make tabs line up by prepending a tab"
+msgstr "-T, --initial-tab            ტაბულაციების დალაგება მათი ქვეშმიწერით"
+
+#: src/diff3.c:494
+msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
+msgstr "   --diff-program=PROGRAM  ფაილების შესადარებლად PROGRAM-ის გამოყენება"
+
+#: src/diff3.c:495
+msgid ""
+"-L, --label=LABEL           use LABEL instead of file name\n"
+"                                (can be repeated up to three times)"
+msgstr ""
+"-L, --label=LABEL        ფაილის სახელის მაგიერ LABEL-ის გამოყენება\n"
+"                                    (შეიძლება განმეორდეს მაქსიმუმ სამჯერ)"
+
+#: src/diff3.c:498
+msgid "    --help                  display this help and exit"
+msgstr "     --help        ამ დახმარების გამოტანა და გამოსვლა"
+
+#: src/diff3.c:499
+msgid "-v, --version               output version information and exit"
+msgstr "-v, --version              ვერსიის ჩვენება და გასვლა"
+
+#: src/diff3.c:508
+#, c-format
+msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
+msgstr "გამოყენება: %s [პარამეტრი].. ჩემიფაილი ძველიფაილი შენიფაილი\n"
+
+#: src/diff3.c:510
+msgid "Compare three files line by line."
+msgstr "ფაილების ხაზ-ხაზ შედარება."
+
+#: src/diff3.c:520
+msgid ""
+"\n"
+"The default output format is a somewhat human-readable representation of\n"
+"the changes.\n"
+"\n"
+"The -e, -E, -x, -X (and corresponding long) options cause an ed script\n"
+"to be output instead of the default.\n"
+"\n"
+"Finally, the -m (--merge) option causes diff3 to do the merge internally\n"
+"and output the actual merged file.  For unusual input, this is more\n"
+"robust than using ed.\n"
+msgstr ""
+
+#: src/diff3.c:532
+msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
+msgstr ""
+"გამოსვლის სტატუსი: 0, თუ წარმატება. 1, თუ კონფლიქტია. 2, პრობლემების "
+"შემთხვევაში."
+
+#: src/diff3.c:725
+msgid "internal error: screwup in format of diff blocks"
+msgstr "შიდა შეცდომა: diff-ის ბლოკების არეული ფორმატი"
+
+#: src/diff3.c:1015
+#, c-format
+msgid "%s: diff failed: "
+msgstr "%s: diff-ის შეცდომა: "
+
+#: src/diff3.c:1037
+msgid "internal error: invalid diff type in process_diff"
+msgstr "შიდა შეცდომა: process_diff-ში diff-ის არასწორი ტიპი"
+
+#: src/diff3.c:1060
+msgid "invalid diff format; invalid change separator"
+msgstr "diff-ის არასწორი ფორმატი' ცვლილების არასწორი გამყოფი"
+
+#: src/diff3.c:1294
+msgid "invalid diff format; incomplete last line"
+msgstr "diff-ის არასწორი ფორმატი; ბოლო ხაზი დაუმთავრებელია"
+
+#: src/diff3.c:1318 src/sdiff.c:274 src/util.c:1069
+#, c-format
+msgid "subsidiary program '%s' could not be invoked"
+msgstr "მიწოდებული პროგრამის ჩაწოდება შეუძლებელია ('%s')"
+
+#: src/diff3.c:1343
+msgid "invalid diff format; incorrect leading line chars"
+msgstr "diff-ის არასწორი ფორმატი; პირველი ხაზების არასწორი სიმბოლოები"
+
+#: src/diff3.c:1416
+msgid "internal error: invalid diff type passed to output"
+msgstr "შიდა შეცდომა: diff-ის გამოტანის არასწორი ტიპი"
+
+#: src/diff3.c:1685 src/diff3.c:1742
+msgid "input file shrank"
+msgstr "შეტანის ფაილი დაპატარავდა"
+
+#: src/dir.c:154
+#, c-format
+msgid "cannot compare file names '%s' and '%s'"
+msgstr "ფაილის სახელების '%s' და '%s' შედარება შეუძლებელია"
+
+#: src/dir.c:223
+#, c-format
+msgid "%s: recursive directory loop"
+msgstr "%s: საქაღალდეების რეკურსიული მარყუჟი"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/sdiff.c:44
+msgid "Thomas Lord"
+msgstr "Thomas Lord"
+
+#: src/sdiff.c:173
+msgid ""
+"-o, --output=FILE            operate interactively, sending output to FILE"
+msgstr ""
+"-o, --output=FILE         ინტერაქტიური მუშაობა. გამოტანის FILE-ში ჩაწერა"
+
+#: src/sdiff.c:175
+msgid ""
+"-i, --ignore-case            consider upper- and lower-case to be the same"
+msgstr "-I, --ignore-case          დიდი და პატარა ასოების ერთნაირად აღქმა"
+
+#: src/sdiff.c:176
+msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
+msgstr ""
+"-E, --ignore-tab-expansion   ტაბულაციის გაფართოების გამო გამოწვეული "
+"ცვლილებების იგნორი"
+
+#: src/sdiff.c:177
+msgid "-Z, --ignore-trailing-space  ignore white space at line end"
+msgstr ""
+"-Z, --ignore-training-space ხაზების ბოლოში დამატებითი გამოტოვების იგნორი"
+
+#: src/sdiff.c:178
+msgid ""
+"-b, --ignore-space-change    ignore changes in the amount of white space"
+msgstr "-b, --ignore-space-change    გამოტოვების რაოდენობების ცვლილების იგნორი"
+
+#: src/sdiff.c:179
+msgid "-W, --ignore-all-space       ignore all white space"
+msgstr "-W, --ignore-all-space     ყველა გამოტოვებების იგნორი"
+
+#: src/sdiff.c:180
+msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
+msgstr ""
+"-B, --ignore-blank-lines     ცვლილებების, რომელიც ცარიელ ხაზებს "
+"წარმოადგენენ, იგნორი"
+
+#: src/sdiff.c:181
+msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
+msgstr ""
+"-I, --ignore-matching-lines=RE   იმ ცვლილებების იგნორი, რომლის ხაზებიც "
+"ემთხვევა RE-ს"
+
+#: src/sdiff.c:182
+msgid "    --strip-trailing-cr      strip trailing carriage return on input"
+msgstr "   --strip-trainingcr   შეტანისას კარეტის გადატანის სიმბოლოს მოცილება"
+
+#: src/sdiff.c:183
+msgid "-a, --text                   treat all files as text"
+msgstr "-a, --text           ყველა ფაილის ტექსტად აღქმა"
+
+#: src/sdiff.c:185
+msgid ""
+"-w, --width=NUM              output at most NUM (default 130) print columns"
+msgstr "-W, --width=NUM        მაქსიმუმ NUM (ნაგულისხმები 130) სვეტის გამოტანა"
+
+#: src/sdiff.c:186
+msgid ""
+"-l, --left-column            output only the left column of common lines"
+msgstr ""
+"-l, --left-column          საერთო ხაზების მხოლოდ მარცხენა სვეტის ჩვენება"
+
+#: src/sdiff.c:187
+msgid "-s, --suppress-common-lines  do not output common lines"
+msgstr "-s, --suppress-commn-lines  არ გამოიტანო საერთო ხაზები"
+
+#: src/sdiff.c:189
+msgid "-t, --expand-tabs            expand tabs to spaces in output"
+msgstr "-t, --expand-tabs         გამოტანისას ტაბულაციის გამოტოვებებით შეცვლა"
+
+#: src/sdiff.c:190
+msgid ""
+"    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
+msgstr ""
+"   --tabsize=NUM           ტაბულაცია გაჩერდება ყოველ NUM (ნაგულიხმებად "
+"8( სვეტის დაბეჭდვის შემდეგ)"
+
+#: src/sdiff.c:192
+msgid "-d, --minimal                try hard to find a smaller set of changes"
+msgstr "-d, --minimal        რაც შეიძლება პატარა განსხვავებების პოვნა"
+
+#: src/sdiff.c:193
+msgid ""
+"-H, --speed-large-files      assume large files, many scattered small changes"
+msgstr "-H, -speed-large-files     ფაილების სიდიდის წინასწარ გათვალისწინება"
+
+#: src/sdiff.c:194
+msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
+msgstr "   --diff-program=PROGRAM  ფაილების შესადარებლად PROGRAM-ის გამოყენება"
+
+#: src/sdiff.c:196
+msgid "    --help                   display this help and exit"
+msgstr "     --help        ამ დახმარების გამოტანა და გამოსვლა"
+
+#: src/sdiff.c:197
+msgid "-v, --version                output version information and exit"
+msgstr "-v, --version              ვერსიის ჩვენება და გასვლა"
+
+#: src/sdiff.c:206
+#, c-format
+msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
+msgstr "გამოყენება: %s [პარამეტრი].. ფაილი ფაილი1 ფაილი2\n"
+
+#: src/sdiff.c:208
+msgid "Side-by-side merge of differences between FILE1 and FILE2."
+msgstr "ფაილ1 და ფაილ2-ს შორის განსხვავებების გვერდიგვერდ შერწყმა."
+
+#: src/sdiff.c:328
+msgid "cannot interactively merge standard input"
+msgstr "stdin-ის ინტერაქტიური შერწყმა შეუძლებელია"
+
+#: src/sdiff.c:594
+msgid "both files to be compared are directories"
+msgstr "ორივე შესადარებელი ფაილი სინამდვილეში საქაღალდეა"
+
+#: src/sdiff.c:817
+msgid ""
+"ed:\tEdit then use both versions, each decorated with a header.\n"
+"eb:\tEdit then use both versions.\n"
+"el or e1:\tEdit then use the left version.\n"
+"er or e2:\tEdit then use the right version.\n"
+"e:\tDiscard both versions then edit a new one.\n"
+"l or 1:\tUse the left version.\n"
+"r or 2:\tUse the right version.\n"
+"s:\tSilently include common lines.\n"
+"v:\tVerbosely include common lines.\n"
+"q:\tQuit.\n"
+msgstr ""
+
+#: src/util.c:755
+#, c-format
+msgid "unrecognized prefix: %s"
+msgstr "უცნობი პრეფიქსი: %s"
+
+#: src/util.c:785
+#, c-format
+msgid "unparsable value for --palette"
+msgstr "--palette -ის გადაცემული მნიშვნელობის დამუშავება შეუძლებეია"
diff --git a/po/ko.gmo b/po/ko.gmo
new file mode 100644 (file)
index 0000000..c1170b8
Binary files /dev/null and b/po/ko.gmo differ
diff --git a/po/ko.po b/po/ko.po
new file mode 100644 (file)
index 0000000..b23554f
--- /dev/null
+++ b/po/ko.po
@@ -0,0 +1,1439 @@
+# Korean translation of the diffutils package.
+# Copyright (C) 2022 Free Software Foundation, Inc.
+# This file is distributed under the same license as the diffutils package.
+# Seong-ho Cho <darkcircle.0426@gmail.com>, 2022.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU diffutils 3.7.41\n"
+"Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
+"POT-Creation-Date: 2023-05-21 01:51-0700\n"
+"PO-Revision-Date: 2022-10-28 19:06+0900\n"
+"Last-Translator: Seong-ho Cho <darkcircle.0426@gmail.com>\n"
+"Language-Team: Korean <translation-team-ko@googlegroups.com>\n"
+"Language: ko\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Poedit 3.2\n"
+"X-Poedit-SourceCharset: UTF-8\n"
+
+#: lib/argmatch.c:145
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "%2$s에 부적절한 인자 %1$s"
+
+#: lib/argmatch.c:146
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "%2$s에 모호한 인자 %1$s"
+
+#: lib/argmatch.c:165 lib/argmatch.h:242
+msgid "Valid arguments are:"
+msgstr "적절한 인자:"
+
+#: lib/c-stack.c:186
+msgid "program error"
+msgstr "프로그램 오류"
+
+#: lib/c-stack.c:187
+msgid "stack overflow"
+msgstr "스택 오버플로우"
+
+#: lib/error.c:193
+msgid "Unknown system error"
+msgstr "알 수 없는 시스템 오류"
+
+#: lib/file-type.c:40
+msgid "regular empty file"
+msgstr "일반 빈 파일"
+
+#: lib/file-type.c:40
+msgid "regular file"
+msgstr "일반 파일"
+
+#: lib/file-type.c:43
+msgid "directory"
+msgstr "디렉터리"
+
+#: lib/file-type.c:46
+msgid "symbolic link"
+msgstr "심볼릭 링크"
+
+#: lib/file-type.c:52
+msgid "message queue"
+msgstr "메시지 큐"
+
+#: lib/file-type.c:55
+msgid "semaphore"
+msgstr "세마포어"
+
+#: lib/file-type.c:58
+msgid "shared memory object"
+msgstr "공유 메모리 객체"
+
+#: lib/file-type.c:61
+msgid "typed memory object"
+msgstr "형 지정 메모리 객체"
+
+#: lib/file-type.c:66
+msgid "block special file"
+msgstr "블록 특수 파일"
+
+#: lib/file-type.c:69
+msgid "character special file"
+msgstr "문자 특수 파일"
+
+#: lib/file-type.c:72
+msgid "contiguous data"
+msgstr "연속 데이터"
+
+#: lib/file-type.c:75
+msgid "fifo"
+msgstr "FIFO"
+
+#: lib/file-type.c:78
+msgid "door"
+msgstr "DOOR"
+
+#: lib/file-type.c:81
+msgid "multiplexed block special file"
+msgstr "다중 블록 특수 파일"
+
+#: lib/file-type.c:84
+msgid "multiplexed character special file"
+msgstr "다중 문자 특수 파일"
+
+#: lib/file-type.c:87
+msgid "multiplexed file"
+msgstr "다중 파일"
+
+#: lib/file-type.c:90
+msgid "named file"
+msgstr "이름 붙은 파일"
+
+#: lib/file-type.c:93
+msgid "network special file"
+msgstr "네트워크 특수 파일"
+
+#: lib/file-type.c:96
+msgid "migrated file with data"
+msgstr "데이터 포함 가져온 파일"
+
+#: lib/file-type.c:99
+msgid "migrated file without data"
+msgstr "데이터 미포함 가져온 파일"
+
+#: lib/file-type.c:102
+msgid "port"
+msgstr "포트"
+
+#: lib/file-type.c:105
+msgid "socket"
+msgstr "소켓"
+
+#: lib/file-type.c:108
+msgid "whiteout"
+msgstr "화이트아웃"
+
+#: lib/file-type.c:110
+msgid "weird file"
+msgstr "이상한 파일"
+
+#: lib/getopt.c:278
+#, c-format
+msgid "%s: option '%s%s' is ambiguous\n"
+msgstr "%s: '%s%s' 옵션이 모호합니다\n"
+
+#: lib/getopt.c:284
+#, c-format
+msgid "%s: option '%s%s' is ambiguous; possibilities:"
+msgstr "%s: '%s%s' 옵션이 모호합니다. 가능한 옵션:"
+
+#: lib/getopt.c:319
+#, c-format
+msgid "%s: unrecognized option '%s%s'\n"
+msgstr "%s: 알 수 없는 '%s%s' 옵션\n"
+
+#: lib/getopt.c:345
+#, c-format
+msgid "%s: option '%s%s' doesn't allow an argument\n"
+msgstr "%s: '%s%s' 옵션은 인자 값을 받지 않습니다\n"
+
+#: lib/getopt.c:360
+#, c-format
+msgid "%s: option '%s%s' requires an argument\n"
+msgstr "%s: '%s%s' 옵션은 인자 값이 필요합니다\n"
+
+#: lib/getopt.c:621
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: 부적절한 옵션 -- '%c'\n"
+
+#: lib/getopt.c:636 lib/getopt.c:682
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: 옵션에 인자 값이 필요합니다 -- '%c'\n"
+
+#. TRANSLATORS:
+#. Get translations for open and closing quotation marks.
+#. The message catalog should translate "`" to a left
+#. quotation mark suitable for the locale, and similarly for
+#. "'".  For example, a French Unicode local should translate
+#. these to U+00AB (LEFT-POINTING DOUBLE ANGLE
+#. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE
+#. QUOTATION MARK), respectively.
+#.
+#. If the catalog has no translation, we will try to
+#. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and
+#. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK).  If the
+#. current locale is not Unicode, locale_quoting_style
+#. will quote 'like this', and clocale_quoting_style will
+#. quote "like this".  You should always include translations
+#. for "`" and "'" even if U+2018 and U+2019 are appropriate
+#. for your locale.
+#.
+#. If you don't know what to put here, please see
+#. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+#. and use glyphs suitable for your language.
+#: lib/quotearg.c:354
+msgid "`"
+msgstr "`"
+
+#: lib/quotearg.c:355
+msgid "'"
+msgstr "'"
+
+#: lib/regcomp.c:122
+msgid "Success"
+msgstr "성공"
+
+#: lib/regcomp.c:125
+msgid "No match"
+msgstr "일치 항목 없음"
+
+#: lib/regcomp.c:128
+msgid "Invalid regular expression"
+msgstr "잘못된 정규 표현식"
+
+#: lib/regcomp.c:131
+msgid "Invalid collation character"
+msgstr "잘못된 조합 문자"
+
+#: lib/regcomp.c:134
+msgid "Invalid character class name"
+msgstr "잘못된 문자 클래스 이름"
+
+#: lib/regcomp.c:137
+msgid "Trailing backslash"
+msgstr "백 슬래시 문자가 따라옴"
+
+#: lib/regcomp.c:140
+msgid "Invalid back reference"
+msgstr "잘못된 후위 참조"
+
+#: lib/regcomp.c:143
+msgid "Unmatched [, [^, [:, [., or [="
+msgstr "일치하지 않는 [, [^, [:, [., [="
+
+#: lib/regcomp.c:146
+msgid "Unmatched ( or \\("
+msgstr "일치하지 않는 ( 또는 \\( 괄호"
+
+#: lib/regcomp.c:149
+msgid "Unmatched \\{"
+msgstr "일치하지 않는 \\{ 괄호"
+
+#: lib/regcomp.c:152
+msgid "Invalid content of \\{\\}"
+msgstr "잘못된 \\{\\} 내용"
+
+#: lib/regcomp.c:155
+msgid "Invalid range end"
+msgstr "잘못된 범위 끝"
+
+#: lib/regcomp.c:158
+msgid "Memory exhausted"
+msgstr "메모리가 바닥남"
+
+#: lib/regcomp.c:161
+msgid "Invalid preceding regular expression"
+msgstr "잘못된 선행 정규 표현식"
+
+#: lib/regcomp.c:164
+msgid "Premature end of regular expression"
+msgstr "정규 표현식 마감 표현이 앞서있습니다"
+
+#: lib/regcomp.c:167
+msgid "Regular expression too big"
+msgstr "정규 표현식이 너무 깁니다"
+
+#: lib/regcomp.c:170
+msgid "Unmatched ) or \\)"
+msgstr "일치하지 않는 ) 또는 \\) 괄호"
+
+#: lib/regcomp.c:650
+msgid "No previous regular expression"
+msgstr "이전 정규 표현식 없음"
+
+#: lib/xalloc-die.c:34
+msgid "memory exhausted"
+msgstr "메모리가 바닥남"
+
+#: lib/xfreopen.c:34
+msgid "stdin"
+msgstr "표준입력"
+
+#: lib/xfreopen.c:35
+msgid "stdout"
+msgstr "표준출력"
+
+#: lib/xfreopen.c:36
+msgid "stderr"
+msgstr "표준오류"
+
+#: lib/xfreopen.c:37
+msgid "unknown stream"
+msgstr "알 수 없는 스트림"
+
+#: lib/xfreopen.c:38
+#, c-format
+msgid "failed to reopen %s with mode %s"
+msgstr "%2$s 모드로 %1$s 다시 열기 실패"
+
+#: lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr "표준 파일 서술자"
+
+#: lib/version-etc.c:73
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "%s(%s)(으)로 패키지 구성함\n"
+
+#: lib/version-etc.c:76
+#, c-format
+msgid "Packaged by %s\n"
+msgstr "%s(으)로 패키지 구성함\n"
+
+#. TRANSLATORS: Translate "(C)" to the copyright symbol
+#. (C-in-a-circle), if this symbol is available in the user's
+#. locale.  Otherwise, do not translate "(C)"; leave it as-is.
+#: lib/version-etc.c:83
+msgid "(C)"
+msgstr "ⓒ"
+
+#. TRANSLATORS: The %s placeholder is the web address of the GPL license.
+#: lib/version-etc.c:88
+#, c-format
+msgid ""
+"License GPLv3+: GNU GPL version 3 or later <%s>.\n"
+"This is free software: you are free to change and redistribute it.\n"
+"There is NO WARRANTY, to the extent permitted by law.\n"
+msgstr ""
+"GPLv3+ 라이선스: GNU GPL 버전 3 이상 <%s>.\n"
+"이 프로그램은 자유 소프트웨어입니다: 자유롭게 바꾸고 재배포할 수 있습니다.\n"
+"법률이 허용하는 모든 범위내의 보증은 없습니다.\n"
+
+#. TRANSLATORS: %s denotes an author name.
+#: lib/version-etc.c:105
+#, c-format
+msgid "Written by %s.\n"
+msgstr "%s이(가) 작성함.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:109
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr "%s와(과) %s이(가) 작성함.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:113
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+msgstr "%s와(과) %s, %s이(가) 작성함.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:120
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"%s와(과) %s, %s,\n"
+"%s이(가) 작성함.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:127
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"%s와(과) %s, %s,\n"
+"%s, %s이(가) 작성함.\n"
+"\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:134
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+"%s와(과) %s, %s,\n"
+"%s, %s, %s이(가) 작성함.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:142
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+"%s와(과) %s, %s,\n"
+"%s, %s, %s,\n"
+"%s이(가) 작성함.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:150
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"%s와(과) %s, %s,\n"
+"%s, %s, %s,\n"
+"%s, %s이(가) 작성함.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:159
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"%s와(과) %s, %s,\n"
+"%s, %s, %s,\n"
+"%s, %s, %s이(가) 작성함.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:170
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, and others.\n"
+msgstr ""
+"%s, %s, %s,\n"
+"%s, %s, %s,\n"
+"%s, %s, %s\n"
+"외 다수가 작성함.\n"
+
+#. TRANSLATORS: The placeholder indicates the bug-reporting address
+#. for this package.  Please add _another line_ saying
+#. "Report translation bugs to <...>\n" with the address for translation
+#. bugs (typically your translation team's web or email address).
+#: lib/version-etc.c:249
+#, c-format
+msgid "Report bugs to: %s\n"
+msgstr "버그 보고 주소: %s\n"
+
+#: lib/version-etc.c:251
+#, c-format
+msgid "Report %s bugs to: %s\n"
+msgstr "%s 버그 보고 주소: %s\n"
+
+#: lib/version-etc.c:255 lib/version-etc.c:257
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "%s 홈페이지: <%s>\n"
+
+#: lib/version-etc.c:260
+#, c-format
+msgid "General help using GNU software: <%s>\n"
+msgstr "GNU 소프트웨어 활용 일반 도움말: <%s>\n"
+
+#: src/analyze.c:455 src/diff.c:1478
+#, c-format
+msgid "Files %s and %s differ\n"
+msgstr "파일 %s와(과) %s이(가) 다릅니다\n"
+
+#: src/analyze.c:456
+#, c-format
+msgid "Binary files %s and %s differ\n"
+msgstr "이진 파일 %s와(과) %s이(가) 다릅니다\n"
+
+#: src/analyze.c:707 src/diff3.c:1457 src/util.c:1354
+msgid "No newline at end of file"
+msgstr "파일 끝 개행 문자 없음"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/cmp.c:45
+msgid "Torbjorn Granlund"
+msgstr "Torbjorn Granlund"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/cmp.c:46
+msgid "David MacKenzie"
+msgstr "David MacKenzie"
+
+#: src/cmp.c:124 src/diff.c:939 src/diff3.c:465 src/sdiff.c:159
+#, c-format
+msgid "Try '%s --help' for more information."
+msgstr "자세한 내용은 '%s --help'를 입력하십시오."
+
+#: src/cmp.c:142
+#, c-format
+msgid "invalid --ignore-initial value '%s'"
+msgstr "부적절한 --ignore-initial 값 '%s'"
+
+#: src/cmp.c:152
+#, c-format
+msgid "options -l and -s are incompatible"
+msgstr "-l 옵션과 -s 옵션의 호환성이 없습니다"
+
+#: src/cmp.c:160 src/diff.c:947 src/diff3.c:472 src/sdiff.c:167 src/sdiff.c:314
+#: src/sdiff.c:321 src/sdiff.c:873 src/util.c:952 src/util.c:1052
+#: src/util.c:1059
+msgid "write failed"
+msgstr "쓰기 실패"
+
+#: src/cmp.c:162 src/diff.c:949 src/diff.c:1543 src/diff3.c:474 src/sdiff.c:169
+msgid "standard output"
+msgstr "표준 출력"
+
+#: src/cmp.c:166
+msgid "-b, --print-bytes          print differing bytes"
+msgstr "-b, --print-bytes          비교 바이트 수를 출력합니다"
+
+#: src/cmp.c:167
+msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
+msgstr ""
+"-i, --ignore-initial=<시작>       두 입력에서 처음 <시작>  바이트 만큼 건너뜀"
+
+#: src/cmp.c:168
+msgid ""
+"-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
+"                                      first SKIP2 bytes of FILE2"
+msgstr ""
+"-i, --ignore-initial=<시작1>:<시작2>  <파일1>에서 처음 <시작1> 바이트만큼,\n"
+"                                      <파일2>에서 처음 <시작2> 바이트만큼 건"
+"너뜀"
+
+#: src/cmp.c:170
+msgid ""
+"-l, --verbose              output byte numbers and differing byte values"
+msgstr "-l, --verbose              바이트 수와 비교 바이트 값 출력"
+
+#: src/cmp.c:171
+msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
+msgstr "-n, --bytes=<제한>         최대 <제한>값 바이트만큼 비교"
+
+#: src/cmp.c:172
+msgid "-s, --quiet, --silent      suppress all normal output"
+msgstr "-s, --quiet, --silent      모든 일반 내용 출력을 끕니다"
+
+#: src/cmp.c:173
+msgid "    --help                 display this help and exit"
+msgstr "    --help                 이 도움말을 출력하고 나갑니다"
+
+#: src/cmp.c:174
+msgid "-v, --version              output version information and exit"
+msgstr "-v, --version              버전 정보를 출력하고 나갑니다"
+
+#: src/cmp.c:183
+#, c-format
+msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
+msgstr "사용법: %s [<옵션>]... <파일1> [<파일2> [<시작1> [<시작2>]]]\n"
+
+#: src/cmp.c:185
+msgid "Compare two files byte by byte."
+msgstr "두 파일을 바이트 별로 비교합니다."
+
+#: src/cmp.c:187
+msgid ""
+"The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
+"at the beginning of each file (zero by default)."
+msgstr ""
+"<시작1>와 <시작2> 옵션 값은 각 파일 시작 위치로부터\n"
+"\"건너뛰어\" 시작할 바이트 수를 지정합니다 (기본값 0)"
+
+#: src/cmp.c:190 src/diff.c:1059 src/diff3.c:512 src/sdiff.c:210
+msgid ""
+"Mandatory arguments to long options are mandatory for short options too.\n"
+msgstr "긴 옵션 버전의 필수 인자는 짧은 옵션 버전에도 해당합니다.\n"
+
+#: src/cmp.c:196
+msgid ""
+"SKIP values may be followed by the following multiplicative suffixes:\n"
+"kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
+"GB 1,000,000,000, G 1,073,741,824, and so on for T, P, E, Z, Y."
+msgstr ""
+"<시작>값은 다음 배수 접미사(단위)가 따라옵니다:\n"
+"kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
+"GB 1,000,000,000, G 1,073,741,824, T, P, E, Z, Y."
+
+#: src/cmp.c:199
+msgid "If a FILE is '-' or missing, read standard input."
+msgstr "<파일> 값이 '-' 또는 없다면, 표준 입력을 읽습니다."
+
+#: src/cmp.c:200 src/diff.c:1047 src/sdiff.c:220
+msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
+msgstr "종료 상태는 입력이 동일하면 0, 다르면 1, 문제 발생시 2입니다."
+
+#: src/cmp.c:247
+#, c-format
+msgid "invalid --bytes value '%s'"
+msgstr "부적절한 --bytes 값 '%s'"
+
+#: src/cmp.c:273 src/diff.c:857 src/diff3.c:368 src/sdiff.c:564
+#, c-format
+msgid "missing operand after '%s'"
+msgstr "'%s' 다음 피연산자가 빠졌습니다"
+
+#: src/cmp.c:285 src/diff.c:859 src/diff3.c:370 src/sdiff.c:566
+#, c-format
+msgid "extra operand '%s'"
+msgstr "추가 피연산자 '%s'"
+
+#: src/cmp.c:521
+#, c-format
+msgid "%s %s differ: byte %s, line %s\n"
+msgstr "%s %s 다름: %s바이트, %s행\n"
+
+#: src/cmp.c:537
+#, c-format
+msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
+msgstr "%s %s 다름: %s바이트, %s행에 %3o %s %3o %s\n"
+
+#: src/cmp.c:594
+#, c-format
+msgid "cmp: EOF on %s which is empty\n"
+msgstr "cmp: 빈 %s에 EOF\n"
+
+#: src/cmp.c:608
+#, c-format
+msgid "cmp: EOF on %s after byte %s, line %s\n"
+msgstr "cmp: %s, %s바이트, %s행 이후 EOF\n"
+
+#: src/cmp.c:609
+#, c-format
+msgid "cmp: EOF on %s after byte %s, in line %s\n"
+msgstr "cmp: %s, %s바이트 이후, %s행에 EOF\n"
+
+#: src/cmp.c:615
+#, c-format
+msgid "cmp: EOF on %s after byte %s\n"
+msgstr "cmp: %s, %s바이트 이후 EOF\n"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/diff.c:50
+msgid "Paul Eggert"
+msgstr "Paul Eggert"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/diff.c:51
+msgid "Mike Haertel"
+msgstr "Mike Haertel"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/diff.c:52
+msgid "David Hayes"
+msgstr "David Hayes"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/diff.c:53
+msgid "Richard Stallman"
+msgstr "Richard Stallman"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/diff.c:54
+msgid "Len Tower"
+msgstr "Len Tower"
+
+#: src/diff.c:365
+#, c-format
+msgid "invalid context length '%s'"
+msgstr "부적절한 컨텍스트 길이 '%s'"
+
+#: src/diff.c:487
+#, c-format
+msgid "pagination not supported on this host"
+msgstr "이 호스트에서는 페이지 분할을 지원하지 않습니다"
+
+#: src/diff.c:502 src/diff3.c:348
+#, c-format
+msgid "too many file label options"
+msgstr "파일 레이블 옵션이 너무 많습니다"
+
+#: src/diff.c:579
+#, c-format
+msgid "invalid width '%s'"
+msgstr "잘못된 너비 '%s'"
+
+#: src/diff.c:583
+msgid "conflicting width options"
+msgstr "너비 옵션 중복"
+
+#: src/diff.c:608
+#, c-format
+msgid "invalid horizon length '%s'"
+msgstr "잘못된 수평 길이 '%s'"
+
+#: src/diff.c:664
+#, c-format
+msgid "invalid tabsize '%s'"
+msgstr "잘못된 탭 길이 '%s'"
+
+#: src/diff.c:668
+msgid "conflicting tabsize options"
+msgstr "탭 길이 옵션 중복"
+
+#: src/diff.c:834
+msgid "--from-file and --to-file both specified"
+msgstr "--from-file과 --to-file을 둘 다 지정했습니다"
+
+#: src/diff.c:953
+msgid "    --normal                  output a normal diff (the default)"
+msgstr "    --normal                  일반 비교 결과를 출력합니다 (기본 동작)"
+
+#: src/diff.c:954
+msgid "-q, --brief                   report only when files differ"
+msgstr "-q, --brief                   파일이 다를 때만 보고"
+
+#: src/diff.c:955
+msgid "-s, --report-identical-files  report when two files are the same"
+msgstr "-s, --report-identical-files  두 파일이 같을 때 보고"
+
+#: src/diff.c:956
+msgid ""
+"-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
+msgstr ""
+"-c, -C <숫자>, --context[=<숫자>]   복제 컨텍스트 <숫자>(기본값 3)행 만큼 출"
+"력"
+
+#: src/diff.c:957
+msgid ""
+"-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
+msgstr ""
+"-u, -U <숫자>, --unified[=<숫자>]   단일 컨텍스트 <숫자>(기본값 3)행 만큼 출"
+"력"
+
+#: src/diff.c:958
+msgid "-e, --ed                      output an ed script"
+msgstr "-e, --ed                      ed 스크립트 출력"
+
+#: src/diff.c:959
+msgid "-n, --rcs                     output an RCS format diff"
+msgstr "-n, --rcs                     RCS 형식 비교 내용 출력"
+
+#: src/diff.c:960
+msgid "-y, --side-by-side            output in two columns"
+msgstr "-y, --side-by-side            두 컬럼으로 출력"
+
+#: src/diff.c:961
+msgid ""
+"-W, --width=NUM               output at most NUM (default 130) print columns"
+msgstr ""
+"-W, --width=<숫자>            최대 <숫자>(기본값 130) 출력 컬럼만큼 출력"
+
+#: src/diff.c:962
+msgid ""
+"    --left-column             output only the left column of common lines"
+msgstr "    --left-column             공통 행의 좌측 컬럼만 출력"
+
+#: src/diff.c:963
+msgid "    --suppress-common-lines   do not output common lines"
+msgstr "    --suppress-common-lines   공통 행은 출력하지 않음"
+
+#: src/diff.c:965
+msgid "-p, --show-c-function         show which C function each change is in"
+msgstr "-p, --show-c-function         어떤 C 함수가 바뀌었는지 표시"
+
+#: src/diff.c:966
+msgid "-F, --show-function-line=RE   show the most recent line matching RE"
+msgstr "-F, --show-function-line=<RE> <RE>와 일치하는 가장 최근 행 표시"
+
+#: src/diff.c:967
+msgid ""
+"    --label LABEL             use LABEL instead of file name and timestamp\n"
+"                                (can be repeated)"
+msgstr ""
+"    --label <레이블>          파일 이름과 타임스탬프 대신 <레이블> 활용\n"
+"                                (반복할 수 있음)"
+
+#: src/diff.c:970
+msgid "-t, --expand-tabs             expand tabs to spaces in output"
+msgstr "-t, --expand-tabs             출력시 탭을 공백 칸으로 변환"
+
+#: src/diff.c:971
+msgid "-T, --initial-tab             make tabs line up by prepending a tab"
+msgstr "-T, --initial-tab           여러 탭을 탭인 것처럼 줄을 맞춤"
+
+#: src/diff.c:972
+msgid ""
+"    --tabsize=NUM             tab stops every NUM (default 8) print columns"
+msgstr ""
+"    --tabsize=<숫자>          모든 <숫자>(기본값 8) 출력 컬럼마다 탭 배치"
+
+#: src/diff.c:973
+msgid ""
+"    --suppress-blank-empty    suppress space or tab before empty output lines"
+msgstr "    --suppress-blank-empty    빈 출력행 앞의 공백문자 내지는 탭 무시"
+
+#: src/diff.c:974
+msgid "-l, --paginate                pass output through 'pr' to paginate it"
+msgstr "-l, --paginate                'pr'로 페이지 분할하여 출력 건너뛰기"
+
+#: src/diff.c:976
+msgid ""
+"-r, --recursive                 recursively compare any subdirectories found"
+msgstr "-r, --recursive                 하위 디렉터리를 찾으면 재귀적으로 비교"
+
+#: src/diff.c:977
+msgid "    --no-dereference            don't follow symbolic links"
+msgstr "    --no-dereference            심볼릭 링크를 따라가지 않음"
+
+#: src/diff.c:978
+msgid "-N, --new-file                  treat absent files as empty"
+msgstr "-N, --new-file                  누락 파일을 빈 파일로 취급"
+
+#: src/diff.c:979
+msgid "    --unidirectional-new-file   treat absent first files as empty"
+msgstr "    --unidirectional-new-file   빠진 첫 줄은 빈 줄로 취급"
+
+#: src/diff.c:980
+msgid "    --ignore-file-name-case     ignore case when comparing file names"
+msgstr "    --ignore-file-name-case     파일 이름 비교시 대소문자 무시"
+
+#: src/diff.c:981
+msgid "    --no-ignore-file-name-case  consider case when comparing file names"
+msgstr "    --no-ignore-file-name-case  파일 이름 비교시 대소문자 구분"
+
+#: src/diff.c:982
+msgid "-x, --exclude=PAT               exclude files that match PAT"
+msgstr "-x, --exclude=<패턴>            <패턴>에 일치하는 파일 제외"
+
+#: src/diff.c:983
+msgid ""
+"-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
+msgstr "-X, --exclude-from=<파일>       <파일> 패턴에 일치하는 파일 제외"
+
+#: src/diff.c:984
+msgid ""
+"-S, --starting-file=FILE        start with FILE when comparing directories"
+msgstr "-S, --starting-file=<파일>      디렉터리를 비교할 때 <파일>부터 시작"
+
+#: src/diff.c:985
+msgid ""
+"    --from-file=FILE1           compare FILE1 to all operands;\n"
+"                                  FILE1 can be a directory"
+msgstr ""
+"    --from-file=<파일1>        <파일1>을 모든 비교 대상과 비교\n"
+"                                  <파일1>은 디렉터리일 수 있음"
+
+#: src/diff.c:987
+msgid ""
+"    --to-file=FILE2             compare all operands to FILE2;\n"
+"                                  FILE2 can be a directory"
+msgstr ""
+"    --to-file=<파일2>           모든 대상을 <파일2>와 비교\n"
+"                                  <파일2>는 디렉터리일 수 있음"
+
+#: src/diff.c:990
+msgid ""
+"-i, --ignore-case               ignore case differences in file contents"
+msgstr "-i, --ignore-case               파일 내용의 대소문자 차이 무시"
+
+#: src/diff.c:991
+msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
+msgstr "-E, --ignore-tab-expansion      탭 변환 바뀜 무시"
+
+#: src/diff.c:992
+msgid "-Z, --ignore-trailing-space     ignore white space at line end"
+msgstr "-Z, --ignore-trailing-space     행 끝 공백 문자 무시"
+
+#: src/diff.c:993
+msgid ""
+"-b, --ignore-space-change       ignore changes in the amount of white space"
+msgstr "-b, --ignore-space-change       대량의 공백 문자 바뀜 무시"
+
+#: src/diff.c:994
+msgid "-w, --ignore-all-space          ignore all white space"
+msgstr "-W, --ignore-all-space          모든 공백 문자 무시"
+
+#: src/diff.c:995
+msgid ""
+"-B, --ignore-blank-lines        ignore changes where lines are all blank"
+msgstr "-B, --ignore-blank-lines        빈 행의 바뀜 무시"
+
+#: src/diff.c:996
+msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
+msgstr ""
+"-I, --ignore-matching-lines=<RE>  정규 표현식 <RE>에 일치하는 모든 바뀐 행 무"
+"시"
+
+#: src/diff.c:998
+msgid "-a, --text                      treat all files as text"
+msgstr "-a, --text                      모든 파일을 텍스트 파일로 취급"
+
+#: src/diff.c:999
+msgid "    --strip-trailing-cr         strip trailing carriage return on input"
+msgstr ""
+"    --strip-trailing-cr         입력에 뒤따라오는 캐리지 리턴 문자를 잘라냅니"
+"다"
+
+#: src/diff.c:1001
+msgid "    --binary                    read and write data in binary mode"
+msgstr "    --binary                    이진 모드로 데이터를 읽고 씁니다"
+
+#: src/diff.c:1004
+msgid ""
+"-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
+msgstr ""
+"-D, --ifdef=<이름>              '#ifdef <이름>' 비교로 병합한 파일을 출력합니"
+"다"
+
+#: src/diff.c:1005
+msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
+msgstr "    --GTYPE-group-format=<GFMT> GTYPE 입력 그룹을 <GFMT>로 서식 지정"
+
+#: src/diff.c:1006
+msgid "    --line-format=LFMT          format all input lines with LFMT"
+msgstr "    --line-format=<LFMT>        모든 입력 행을 <LFMT>로 서식 지정"
+
+#: src/diff.c:1007
+msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
+msgstr "    --LTYPE-line-format=<LFMT>  LTYPE 입력 행을 <LFMT>로 서식 지정"
+
+#: src/diff.c:1008
+msgid ""
+"  These format options provide fine-grained control over the output\n"
+"    of diff, generalizing -D/--ifdef."
+msgstr ""
+"  이 서식 옵션으로 -D/--ifdef를 일반화하여 diff 출력을 세밀하게\n"
+"     조정할 수 있습니다."
+
+#: src/diff.c:1010
+msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
+msgstr ""
+"  <LTYPE>은 'old', 'new', 'unchanged'입니다.  <GTYPE>은 <LTYPE> 또는 "
+"'changed'입니다."
+
+#: src/diff.c:1011
+msgid ""
+"  GFMT (only) may contain:\n"
+"    %<  lines from FILE1\n"
+"    %>  lines from FILE2\n"
+"    %=  lines common to FILE1 and FILE2\n"
+"    %[-][WIDTH][.[PREC]]{doxX}LETTER  printf-style spec for LETTER\n"
+"      LETTERs are as follows for new group, lower case for old group:\n"
+"        F  first line number\n"
+"        L  last line number\n"
+"        N  number of lines = L-F+1\n"
+"        E  F-1\n"
+"        M  L+1\n"
+"    %(A=B?T:E)  if A equals B then T else E"
+msgstr ""
+"  GFMT (의 경우에만) 해당:\n"
+"    %<  <파일1>의 행\n"
+"    %>  <파일2>의 행\n"
+"    %=  <파일1>과 <파일2>의 공통행\n"
+"    %[-][WIDTH][.[PREC]]{doxX}<문자>  <문자>에 대한 printf 방식 명세\n"
+"      <문자>는 다음의 경우 new 그룹, 소문자는 old 그룹에 해당합니다:\n"
+"        F  첫 행 번호\n"
+"        L  마지막 행 번호\n"
+"        N  행 갯수 = L-F+1\n"
+"        E  F-1\n"
+"        M  L+1\n"
+"    %(A=B?T:E)  A와 B가 같으면 T, 아니면 E"
+
+#: src/diff.c:1023
+msgid ""
+"  LFMT (only) may contain:\n"
+"    %L  contents of line\n"
+"    %l  contents of line, excluding any trailing newline\n"
+"    %[-][WIDTH][.[PREC]]{doxX}n  printf-style spec for input line number"
+msgstr ""
+"  LFMT (의 경우에만) 해당:\n"
+"    %L  행 내용\n"
+"    %l  개행 문자를 제외한 행 내용\n"
+"    %[-][WIDTH][.[PREC]]{doxX}n  입력 행 번호의 printf 방식 명세"
+
+#: src/diff.c:1027
+msgid ""
+"  Both GFMT and LFMT may contain:\n"
+"    %%  %\n"
+"    %c'C'  the single character C\n"
+"    %c'\\OOO'  the character with octal code OOO\n"
+"    C    the character C (other characters represent themselves)"
+msgstr ""
+"  GFMT와 LFMT 모두에 해당:\n"
+"    %%  %\n"
+"    %c'C'  단일 문자 C\n"
+"    %c'\\OOO'  문자와 8진수 코드 OOO\n"
+"    C    문자 C (다른 문자는 문자 그 자체를 나타냄)"
+
+#: src/diff.c:1033
+msgid "-d, --minimal            try hard to find a smaller set of changes"
+msgstr "-d, --minimal            적게 바뀐 내용을 최대한 검색"
+
+#: src/diff.c:1034
+msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
+msgstr "    --horizon-lines=<숫자>  공통 접두, 접미부의 <숫자> 행은 유지합니다"
+
+#: src/diff.c:1035
+msgid ""
+"    --speed-large-files  assume large files and many scattered small changes"
+msgstr "    --speed-large-files  여기저기 작게 바뀐 내용이 많은 큰 파일로 간주"
+
+#: src/diff.c:1036
+msgid ""
+"    --color[=WHEN]       color output; WHEN is 'never', 'always', or "
+"'auto';\n"
+"                           plain --color means --color='auto'"
+msgstr ""
+"    --color[=<시기>]     색상 출력합니다. <시기> 값은 'never', 'always', "
+"'auto' 중 하나입니다\n"
+"                           --color 옵션은 --color='auto'를 의미합니다"
+
+#: src/diff.c:1038
+msgid ""
+"    --palette=PALETTE    the colors to use when --color is active; PALETTE "
+"is\n"
+"                           a colon-separated list of terminfo capabilities"
+msgstr ""
+"    --palette=<팔레트>    --color 옵션을 지정했을 때 사용할 색상입니다. <팔레"
+"트>는\n"
+"                            terminfo에서 사용할 수 있는 콜론 구분 목록입니다"
+
+#: src/diff.c:1041
+msgid "    --help               display this help and exit"
+msgstr "    --help               이 도움말을 출력하고 나갑니다"
+
+#: src/diff.c:1042
+msgid "-v, --version            output version information and exit"
+msgstr "-v, --version            버전 정보를 출력하고 나갑니다"
+
+#: src/diff.c:1044
+msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
+msgstr ""
+"<파일>에는 '<파일1> <파일2>', '<디렉터리1> <디렉터리2>', '<디렉터리> <파일"
+">', '<파일> <디렉터리>'가 해당합니다."
+
+#: src/diff.c:1045
+msgid ""
+"If --from-file or --to-file is given, there are no restrictions on FILE(s)."
+msgstr ""
+"--from-file 또는 --to-file 옵션을 지정할 때 <파일> 값의 제한은 없습니다."
+
+#: src/diff.c:1046 src/diff3.c:531 src/sdiff.c:219
+msgid "If a FILE is '-', read standard input."
+msgstr "<파일> 값이 '-' 문자라면, 표준 입력을 읽습니다."
+
+#: src/diff.c:1056
+#, c-format
+msgid "Usage: %s [OPTION]... FILES\n"
+msgstr "사용법: %s [<옵션>]... <파일>\n"
+
+#: src/diff.c:1057
+msgid "Compare FILES line by line."
+msgstr "<파일>을 행 별로 비교합니다."
+
+#: src/diff.c:1094
+#, c-format
+msgid "conflicting %s option value '%s'"
+msgstr "%s 옵션의 '%s'값이 중복됩니다"
+
+#: src/diff.c:1107
+#, c-format
+msgid "conflicting output style options"
+msgstr "출력 방식 옵션이 중복됩니다"
+
+#: src/diff.c:1123
+#, c-format
+msgid "invalid color '%s'"
+msgstr "부적절한 색상값 '%s'"
+
+#: src/diff.c:1197 src/diff.c:1401
+#, c-format
+msgid "Only in %s: %s\n"
+msgstr "%s에만: %s\n"
+
+#: src/diff.c:1325
+msgid "cannot compare '-' to a directory"
+msgstr "'-'을 디렉터리와 비교할 수 없습니다"
+
+#: src/diff.c:1360
+msgid "-D option not supported with directories"
+msgstr "-D 옵션은 디렉터리에 지원하지 않습니다"
+
+#: src/diff.c:1369
+#, c-format
+msgid "Common subdirectories: %s and %s\n"
+msgstr "공통 하위 디렉터리: %s와(과) %s\n"
+
+#: src/diff.c:1411 src/diff.c:1461
+#, c-format
+msgid "File %s is a %s while file %s is a %s\n"
+msgstr "파일 %3$s이(가) %4$s인 반면, 파일 %1$s은(는) %2$s입니다.\n"
+
+#: src/diff.c:1447
+#, c-format
+msgid "Symbolic links %s and %s differ\n"
+msgstr "심볼릭 링크 %s와(과) %s이(가) 다릅니다\n"
+
+#: src/diff.c:1534
+#, c-format
+msgid "Files %s and %s are identical\n"
+msgstr "%s 파일과 %s 파일은 동일합니다\n"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/diff3.c:51
+msgid "Randy Smith"
+msgstr "Randy Smith"
+
+#: src/diff3.c:363
+#, c-format
+msgid "incompatible options"
+msgstr "비호환 옵션"
+
+#: src/diff3.c:403
+msgid "'-' specified for more than one input file"
+msgstr "하나 이상의 입력 파일에 대해 '-' 문자를 지정했습니다"
+
+#: src/diff3.c:445 src/diff3.c:1284 src/diff3.c:1683 src/diff3.c:1738
+#: src/sdiff.c:306 src/sdiff.c:843 src/sdiff.c:854
+msgid "read failed"
+msgstr "읽기 실패"
+
+#: src/diff3.c:478
+msgid "-A, --show-all              output all changes, bracketing conflicts"
+msgstr "-A, --show-all              모든 바뀐 내용 및 괄호 문제 출력"
+
+#: src/diff3.c:480
+msgid ""
+"-e, --ed                    output ed script incorporating changes\n"
+"                                from OLDFILE to YOURFILE into MYFILE"
+msgstr ""
+"-e, --ed                    변경 내용이 들어간 ed 스크립트를 출력합니다\n"
+"                                <이전파일>에서 <네파일>과 비교 후 <내파일>로 "
+"병합"
+
+#: src/diff3.c:482
+msgid "-E, --show-overlap          like -e, but bracket conflicts"
+msgstr "-E, --show-overlap          -e와 유사하나 괄호 문제를 검사합니다"
+
+#: src/diff3.c:483
+msgid ""
+"-3, --easy-only             like -e, but incorporate only nonoverlapping "
+"changes"
+msgstr "-3, --easy-only             -e와 유사하나, 비중복 변경만 확인합니다"
+
+#: src/diff3.c:484
+msgid ""
+"-x, --overlap-only          like -e, but incorporate only overlapping changes"
+msgstr "-x, --overlap-only          -e와 유사하나, 중복 변경만 확인합니다"
+
+#: src/diff3.c:485
+msgid "-X                          like -x, but bracket conflicts"
+msgstr "-X                          -x와 유사하나, 괄호 문제를 검사합니다"
+
+#: src/diff3.c:486
+msgid "-i                          append 'w' and 'q' commands to ed scripts"
+msgstr ""
+"-i                          ed 스크립트에 'w'명령과 'q'명령을 덧붙입니다"
+
+#: src/diff3.c:488
+msgid ""
+"-m, --merge                 output actual merged file, according to\n"
+"                                -A if no other options are given"
+msgstr ""
+"-m, --merge                 실제 병합한 파일을 출력합니다. 다른 옵션이\n"
+"                                없으면 -A 옵션의 동작을 따릅니다"
+
+#: src/diff3.c:491
+msgid "-a, --text                  treat all files as text"
+msgstr "-a, --text                  모든 파일을 텍스트 파일로 취급"
+
+#: src/diff3.c:492
+msgid "    --strip-trailing-cr     strip trailing carriage return on input"
+msgstr ""
+"    --strip-trailing-cr     입력에 뒤따라오는 캐리지 리턴 문자 잘라내기"
+
+#: src/diff3.c:493
+msgid "-T, --initial-tab           make tabs line up by prepending a tab"
+msgstr "-T, --initial-tab           여러 탭을 탭인 것처럼 줄을 맞춤"
+
+#: src/diff3.c:494
+msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
+msgstr "    --diff-program=<프로그램>  <프로그램>으로 파일을 비교합니다"
+
+#: src/diff3.c:495
+msgid ""
+"-L, --label=LABEL           use LABEL instead of file name\n"
+"                                (can be repeated up to three times)"
+msgstr ""
+"-L, --label=<레이블>        파일 이름 대신 <레이블>을 활용합니다\n"
+"                                (3번 까지 반복할 수 있음)"
+
+#: src/diff3.c:498
+msgid "    --help                  display this help and exit"
+msgstr "    --help                  이 도움말을 출력하고 나갑니다"
+
+#: src/diff3.c:499
+msgid "-v, --version               output version information and exit"
+msgstr "-v, --version               버전 정보를 출력하고 나갑니다"
+
+#: src/diff3.c:508
+#, c-format
+msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
+msgstr "사용법: %s [<옵션>]... <내파일> <이전파일> <네파일>\n"
+
+#: src/diff3.c:510
+msgid "Compare three files line by line."
+msgstr "세 파일을 행 단위로 비교합니다."
+
+#: src/diff3.c:520
+msgid ""
+"\n"
+"The default output format is a somewhat human-readable representation of\n"
+"the changes.\n"
+"\n"
+"The -e, -E, -x, -X (and corresponding long) options cause an ed script\n"
+"to be output instead of the default.\n"
+"\n"
+"Finally, the -m (--merge) option causes diff3 to do the merge internally\n"
+"and output the actual merged file.  For unusual input, this is more\n"
+"robust than using ed.\n"
+msgstr ""
+"\n"
+"기본 출력 형식은 바뀐 내용의 가독성 표현 형태입니다.\n"
+"\n"
+"-e, -E, -x, -E (그리고 관련 긴) 옵션은 기본 출력 대신 ed 스크립트로\n"
+"출력합니다.\n"
+"\n"
+"마지막으로 -m(--merge) 옵션은 내부적으로 diff3에서 병합을 진행하게\n"
+"하며, 실제 병함 파일로 출력합니다.  일반적이지 않은 입력은 ed를 \n"
+"활용하면 더 확실하게 동작합니다.\n"
+"\n"
+
+#: src/diff3.c:532
+msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
+msgstr "종료 상태는 성공시 0, 중복시 1, 문제 발생시 2입니다."
+
+#: src/diff3.c:725
+msgid "internal error: screwup in format of diff blocks"
+msgstr "내부 오류: 비교 블록 형식이 꼬였습니다"
+
+#: src/diff3.c:1015
+#, c-format
+msgid "%s: diff failed: "
+msgstr "%s: 비교 실패: "
+
+#: src/diff3.c:1037
+msgid "internal error: invalid diff type in process_diff"
+msgstr "내부 오류: process_diff에 부적절한 diff 형식"
+
+#: src/diff3.c:1060
+msgid "invalid diff format; invalid change separator"
+msgstr "부적절한 diff 형식: 부적절한 바뀜 구분자"
+
+#: src/diff3.c:1294
+msgid "invalid diff format; incomplete last line"
+msgstr "부적절한 diff 형식: 온전치 않은 마지막 행"
+
+#: src/diff3.c:1318 src/sdiff.c:274 src/util.c:1069
+#, c-format
+msgid "subsidiary program '%s' could not be invoked"
+msgstr "'%s' 보조 프로그램을 실행할 수 없습니다"
+
+#: src/diff3.c:1343
+msgid "invalid diff format; incorrect leading line chars"
+msgstr "부적절한 diff 형식: 올바르지 않은 줄 처음 문자"
+
+#: src/diff3.c:1416
+msgid "internal error: invalid diff type passed to output"
+msgstr "내부 오류: 부적절한 diff 형식을 출력으로 전달했습니다"
+
+#: src/diff3.c:1685 src/diff3.c:1742
+msgid "input file shrank"
+msgstr "입력 파일 크기가 줄어듦"
+
+#: src/dir.c:154
+#, c-format
+msgid "cannot compare file names '%s' and '%s'"
+msgstr "'%s' 파일과 '%s' 파일을 비교할 수 없습니다"
+
+#: src/dir.c:223
+#, c-format
+msgid "%s: recursive directory loop"
+msgstr "%s: 디렉터리 순환이 재귀상태입니다"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/sdiff.c:44
+msgid "Thomas Lord"
+msgstr "Thomas Lord"
+
+#: src/sdiff.c:173
+msgid ""
+"-o, --output=FILE            operate interactively, sending output to FILE"
+msgstr "-o, --output=<파일>          대화식 처리 후,  <파일>로 출력 보내기"
+
+#: src/sdiff.c:175
+msgid ""
+"-i, --ignore-case            consider upper- and lower-case to be the same"
+msgstr "-i, --ignore-case            대소문자를 동일한 문자로 간주"
+
+#: src/sdiff.c:176
+msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
+msgstr "-E, --ignore-tab-expansion   탭 변환 바뀜 무시"
+
+#: src/sdiff.c:177
+msgid "-Z, --ignore-trailing-space  ignore white space at line end"
+msgstr "-Z, --ignore-trailing-space  행 끝 공백 문자 무시"
+
+#: src/sdiff.c:178
+msgid ""
+"-b, --ignore-space-change    ignore changes in the amount of white space"
+msgstr "-b, --ignore-space-change    대량의 공백 문자 바뀜 무시"
+
+#: src/sdiff.c:179
+msgid "-W, --ignore-all-space       ignore all white space"
+msgstr "-W, --ignore-all-space       모든 공백 문자 무시"
+
+#: src/sdiff.c:180
+msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
+msgstr "-B, --ignore-blank-lines     빈 행의 바뀜 무시"
+
+#: src/sdiff.c:181
+msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
+msgstr ""
+"-I, --ignore-matching-lines=<RE>  정규 표현식 <RE>에 일치하는 모든 바뀐 행 무"
+"시"
+
+#: src/sdiff.c:182
+msgid "    --strip-trailing-cr      strip trailing carriage return on input"
+msgstr ""
+"    --strip-trailing-cr      입력에 뒤따라오는 캐리지 리턴 문자를 잘라냅니다"
+
+#: src/sdiff.c:183
+msgid "-a, --text                   treat all files as text"
+msgstr "-a, --text                   모든 파일을 텍스트 파일로 취급"
+
+#: src/sdiff.c:185
+msgid ""
+"-w, --width=NUM              output at most NUM (default 130) print columns"
+msgstr ""
+"-w, --width=<숫자>           최대 <숫자>(기본값 130) 출력 컬럼만큼 출력"
+
+#: src/sdiff.c:186
+msgid ""
+"-l, --left-column            output only the left column of common lines"
+msgstr "-l, --left-column            공통 행의 좌측 컬럼만 출력"
+
+#: src/sdiff.c:187
+msgid "-s, --suppress-common-lines  do not output common lines"
+msgstr "-s, --suppress-common-lines  공통 행은 출력하지 않음"
+
+#: src/sdiff.c:189
+msgid "-t, --expand-tabs            expand tabs to spaces in output"
+msgstr "-t, --expand-tabs            출력시 탭을 공백 칸으로 변환"
+
+#: src/sdiff.c:190
+msgid ""
+"    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
+msgstr ""
+"    --tabsize=<숫자>         모든 <숫자>(기본값 8) 출력 컬럼마다 탭 배치"
+
+#: src/sdiff.c:192
+msgid "-d, --minimal                try hard to find a smaller set of changes"
+msgstr "-d, --minimal                적게 바뀐 내용을 최대한 검색"
+
+#: src/sdiff.c:193
+msgid ""
+"-H, --speed-large-files      assume large files, many scattered small changes"
+msgstr ""
+"-H, --speed-large-files      여기저기 작게 바뀐 내용이 많은 큰 파일로 간주"
+
+#: src/sdiff.c:194
+msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
+msgstr "    --diff-program=<프로그램>   <프로그램>으로 파일을 비교합니다"
+
+#: src/sdiff.c:196
+msgid "    --help                   display this help and exit"
+msgstr "    --help                   이 도움말을 출력하고 나갑니다"
+
+#: src/sdiff.c:197
+msgid "-v, --version                output version information and exit"
+msgstr "-v, --version                버전 정보를 출력하고 나갑니다"
+
+#: src/sdiff.c:206
+#, c-format
+msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
+msgstr "사용법: %s [<옵션>]... <파일1> <파일2>\n"
+
+#: src/sdiff.c:208
+msgid "Side-by-side merge of differences between FILE1 and FILE2."
+msgstr "<파일1>과 <파일2> 사이의 차이를 나란히 합칩니다."
+
+#: src/sdiff.c:328
+msgid "cannot interactively merge standard input"
+msgstr "표준 입력 내용을 대화식 병합할 수 없습니다"
+
+#: src/sdiff.c:594
+msgid "both files to be compared are directories"
+msgstr "비교할 두 파일이 디렉터리입니다"
+
+#: src/sdiff.c:817
+msgid ""
+"ed:\tEdit then use both versions, each decorated with a header.\n"
+"eb:\tEdit then use both versions.\n"
+"el or e1:\tEdit then use the left version.\n"
+"er or e2:\tEdit then use the right version.\n"
+"e:\tDiscard both versions then edit a new one.\n"
+"l or 1:\tUse the left version.\n"
+"r or 2:\tUse the right version.\n"
+"s:\tSilently include common lines.\n"
+"v:\tVerbosely include common lines.\n"
+"q:\tQuit.\n"
+msgstr ""
+"ed:\t편집 후 헤더를 덧붙인 양쪽 버전을 모두 사용합니다.\n"
+"eb:\t편집 후 양쪽 버전을 모두 사용합니다.\n"
+"el or e1:\t편집 후 좌측 버전을 사용합니다.\n"
+"er or e2:\t편집 후 우측 버전을 사용합니다.\n"
+"e:\t두 버전을 무시하고 새 버전을 편집합니다.\n"
+"l or 1:\t좌측 버전을 사용합니다.\n"
+"r or 2:\t우측 버전을 사용합니다.\n"
+"s:\t공통 파일을 조용히 넣습니다.\n"
+"v:\t비교 항목을 확인하면서 공통 파일을 넣습니다.\n"
+"q:\t끝냅니다.\n"
+
+#: src/util.c:755
+#, c-format
+msgid "unrecognized prefix: %s"
+msgstr "알 수 없는 접두사: %s"
+
+#: src/util.c:785
+#, c-format
+msgid "unparsable value for --palette"
+msgstr "--palette에 해석할 수 없는 문자"
index c9b9dd1..bdaba7c 100644 (file)
--- a/po/lv.po
+++ b/po/lv.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: diffutils-3.3-pre1\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2021-08-01 18:56-0700\n"
+"POT-Creation-Date: 2023-05-21 01:51-0700\n"
 "PO-Revision-Date: 2014-04-20 15:28+0300\n"
 "Last-Translator: Rihards Prieditis <rprieditis@gmail.com>\n"
 "Language-Team: Latvian <translation-team-lv@lists.sourceforge.net>\n"
@@ -21,30 +21,30 @@ msgstr ""
 "2);\n"
 "X-Generator: Lokalize 1.5\n"
 
-#: lib/argmatch.c:132
+#: lib/argmatch.c:145
 #, fuzzy, c-format
 msgid "invalid argument %s for %s"
 msgstr "nederīgs %s%s arguments “%s”"
 
-#: lib/argmatch.c:133
+#: lib/argmatch.c:146
 #, c-format
 msgid "ambiguous argument %s for %s"
 msgstr ""
 
-#: lib/argmatch.c:152 lib/argmatch.h:223
+#: lib/argmatch.c:165 lib/argmatch.h:242
 #, fuzzy
 msgid "Valid arguments are:"
 msgstr "nederīgs %s%s arguments “%s”"
 
-#: lib/c-stack.c:187
+#: lib/c-stack.c:186
 msgid "program error"
 msgstr "programmas kļūda"
 
-#: lib/c-stack.c:188
+#: lib/c-stack.c:187
 msgid "stack overflow"
 msgstr "steka pārplūšana"
 
-#: lib/error.c:195
+#: lib/error.c:193
 msgid "Unknown system error"
 msgstr "Nezināma sistēmas kļūda"
 
@@ -204,84 +204,84 @@ msgstr "%s: opcijai nepieciešams arguments -- “%c”\n"
 #. If you don't know what to put here, please see
 #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:355
+#: lib/quotearg.c:354
 msgid "`"
 msgstr "“"
 
-#: lib/quotearg.c:356
+#: lib/quotearg.c:355
 msgid "'"
 msgstr "”"
 
-#: lib/regcomp.c:135
+#: lib/regcomp.c:122
 msgid "Success"
 msgstr "Veiksmīgi"
 
-#: lib/regcomp.c:138
+#: lib/regcomp.c:125
 msgid "No match"
 msgstr "Nav atbilstību"
 
-#: lib/regcomp.c:141
+#: lib/regcomp.c:128
 msgid "Invalid regular expression"
 msgstr "Nederīga regulārā izteiksme"
 
-#: lib/regcomp.c:144
+#: lib/regcomp.c:131
 msgid "Invalid collation character"
 msgstr "Nederīga salīdzināmā rakstzīme"
 
-#: lib/regcomp.c:147
+#: lib/regcomp.c:134
 msgid "Invalid character class name"
 msgstr "Nederīgs rakstzīmju klases nosaukums"
 
-#: lib/regcomp.c:150
+#: lib/regcomp.c:137
 msgid "Trailing backslash"
 msgstr "Sekojošās otrādās slīpsvītras"
 
-#: lib/regcomp.c:153
+#: lib/regcomp.c:140
 msgid "Invalid back reference"
 msgstr "Nederīga atpakaļ norāde"
 
-#: lib/regcomp.c:156
+#: lib/regcomp.c:143
 #, fuzzy
 msgid "Unmatched [, [^, [:, [., or [="
 msgstr "Nesakrītošs [ vai [^"
 
-#: lib/regcomp.c:159
+#: lib/regcomp.c:146
 msgid "Unmatched ( or \\("
 msgstr "Nesakrītošs ( vai \\("
 
-#: lib/regcomp.c:162
+#: lib/regcomp.c:149
 msgid "Unmatched \\{"
 msgstr "Nesakrītošs \\{"
 
-#: lib/regcomp.c:165
+#: lib/regcomp.c:152
 msgid "Invalid content of \\{\\}"
 msgstr "Nederīgs \\{\\} saturs"
 
-#: lib/regcomp.c:168
+#: lib/regcomp.c:155
 msgid "Invalid range end"
 msgstr "Nederīgas apgabala beigas"
 
-#: lib/regcomp.c:171
+#: lib/regcomp.c:158
 msgid "Memory exhausted"
 msgstr "Atmiņa izsmelta"
 
-#: lib/regcomp.c:174
+#: lib/regcomp.c:161
 msgid "Invalid preceding regular expression"
 msgstr "Nederīga iepriekšējā regulārā izteiksme"
 
-#: lib/regcomp.c:177
+#: lib/regcomp.c:164
 msgid "Premature end of regular expression"
 msgstr "Priekšlaicīgas beigas regulārai izteiksmei"
 
-#: lib/regcomp.c:180
+#: lib/regcomp.c:167
 msgid "Regular expression too big"
 msgstr "Pārāk liela regulārā izteiksme"
 
-#: lib/regcomp.c:183
+#: lib/regcomp.c:170
 msgid "Unmatched ) or \\)"
 msgstr "Nav atbilstoša ) vai \\)"
 
-#: lib/regcomp.c:676
+#: lib/regcomp.c:650
 msgid "No previous regular expression"
 msgstr "Nav iepriekšējas regulārās izteiksmes"
 
@@ -483,17 +483,17 @@ msgstr ""
 "Vispārēja palīdzība, izmantojot GNU programmatūru: <http://www.gnu.org/"
 "gethelp/>\n"
 
-#: src/analyze.c:454 src/diff.c:1406
+#: src/analyze.c:455 src/diff.c:1478
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Datnes %s un %s atšķiras\n"
 
-#: src/analyze.c:455
+#: src/analyze.c:456
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "Binārās datnes %s un %s atšķiras\n"
 
-#: src/analyze.c:706 src/diff3.c:1470 src/util.c:1254
+#: src/analyze.c:707 src/diff3.c:1457 src/util.c:1354
 msgid "No newline at end of file"
 msgstr "Nav jaunu rindu datnes beigās"
 
@@ -507,40 +507,41 @@ msgstr "Torbjorn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:120 src/diff.c:879 src/diff3.c:467 src/sdiff.c:160
+#: src/cmp.c:124 src/diff.c:939 src/diff3.c:465 src/sdiff.c:159
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Lietojiet “%s --help”, lai uzzinātu vairāk."
 
-#: src/cmp.c:138
+#: src/cmp.c:142
 #, c-format
 msgid "invalid --ignore-initial value '%s'"
 msgstr "nederīga --ignore-initial vērtība “%s”"
 
-#: src/cmp.c:148
+#: src/cmp.c:152
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr "opcijas -l un -s nav savstarpēji saderīgas"
 
-#: src/cmp.c:156 src/diff.c:887 src/diff3.c:474 src/sdiff.c:168 src/sdiff.c:316
-#: src/sdiff.c:323 src/sdiff.c:876 src/util.c:852 src/util.c:952 src/util.c:959
+#: src/cmp.c:160 src/diff.c:947 src/diff3.c:472 src/sdiff.c:167 src/sdiff.c:314
+#: src/sdiff.c:321 src/sdiff.c:873 src/util.c:952 src/util.c:1052
+#: src/util.c:1059
 msgid "write failed"
 msgstr "rakstīšana neizdevās"
 
-#: src/cmp.c:158 src/diff.c:889 src/diff.c:1471 src/diff3.c:476 src/sdiff.c:170
+#: src/cmp.c:162 src/diff.c:949 src/diff.c:1543 src/diff3.c:474 src/sdiff.c:169
 msgid "standard output"
 msgstr "standarta izvade"
 
-#: src/cmp.c:162
+#: src/cmp.c:166
 msgid "-b, --print-bytes          print differing bytes"
 msgstr "-b, --print-bytes          drukāt atšķirīgos baitus"
 
-#: src/cmp.c:163
+#: src/cmp.c:167
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
 msgstr ""
 "-i, --ignore-initial=IZLAIST      izlaists pirmos IZLAIŽAMOS baitus ievadē"
 
-#: src/cmp.c:164
+#: src/cmp.c:168
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
@@ -549,38 +550,38 @@ msgstr ""
 "baitus\n"
 "                                       un pirmos IZLAIST2 DATNE2 baitus"
 
-#: src/cmp.c:166
+#: src/cmp.c:170
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
 msgstr ""
 "-l, --verbose              izvadīt baitu numurus un atšķirīgo baitu vērtības"
 
-#: src/cmp.c:167
+#: src/cmp.c:171
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
 msgstr "-n, --bytes=ROBEŽA         salīdzināt līdz ROBEŽAs baitiem"
 
-#: src/cmp.c:168
+#: src/cmp.c:172
 msgid "-s, --quiet, --silent      suppress all normal output"
 msgstr "-s, --quiet, --silent      nomākt visu parasto izvadi"
 
-#: src/cmp.c:169
+#: src/cmp.c:173
 msgid "    --help                 display this help and exit"
 msgstr "    --help                 parādīt šo palīdzību un iziet"
 
-#: src/cmp.c:170
+#: src/cmp.c:174
 msgid "-v, --version              output version information and exit"
 msgstr "-v, --version              izvada informāciju par versiju un iziet"
 
-#: src/cmp.c:179
+#: src/cmp.c:183
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
 msgstr "Izmantošana: %s [OPCIJAS]... DATNE1 [DATNE2 [IZLAIST1 [IZLAIST2]]]\n"
 
-#: src/cmp.c:181
+#: src/cmp.c:185
 msgid "Compare two files byte by byte."
 msgstr "Salīdzināt divas datnes baitu pa baitam."
 
-#: src/cmp.c:183
+#: src/cmp.c:187
 msgid ""
 "The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
 "at the beginning of each file (zero by default)."
@@ -588,13 +589,13 @@ msgstr ""
 "Neobligātie IZLAIST1 un IZLAIST2 norāda, cik baitus izlaist\n"
 "katras datnes sākumā (pēc noklusējuma nulle)."
 
-#: src/cmp.c:186 src/diff.c:999 src/diff3.c:514 src/sdiff.c:211
+#: src/cmp.c:190 src/diff.c:1059 src/diff3.c:512 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
 "Parametri, kas ir obligāti garajām opcijām, ir obligāti arī īsajām opcijām.\n"
 
-#: src/cmp.c:192
+#: src/cmp.c:196
 msgid ""
 "SKIP values may be followed by the following multiplicative suffixes:\n"
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
@@ -604,191 +605,191 @@ msgstr ""
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
 "GB 1,000,000,000, G 1,073,741,824, un tā tālāk T, P, E, Z, Y."
 
-#: src/cmp.c:195
+#: src/cmp.c:199
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "Ja DATNEI ir “-” vai tā nav, tad lasīt standarta ievadi."
 
-#: src/cmp.c:196 src/diff.c:987 src/sdiff.c:221
+#: src/cmp.c:200 src/diff.c:1047 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr ""
 "Izejas status ir 0, ja ievads ir tāds pats, 1, ja tas ir atšķirīgs, 2, ja ir "
 "nepatikšanas."
 
-#: src/cmp.c:243
+#: src/cmp.c:247
 #, c-format
 msgid "invalid --bytes value '%s'"
 msgstr "nederīga --bytes vērtība “%s”"
 
-#: src/cmp.c:269 src/diff.c:797 src/diff3.c:361 src/sdiff.c:567
+#: src/cmp.c:273 src/diff.c:857 src/diff3.c:368 src/sdiff.c:564
 #, c-format
 msgid "missing operand after '%s'"
 msgstr "trūkst operands pēc “%s”"
 
-#: src/cmp.c:281 src/diff.c:799 src/diff3.c:363 src/sdiff.c:569
+#: src/cmp.c:285 src/diff.c:859 src/diff3.c:370 src/sdiff.c:566
 #, c-format
 msgid "extra operand '%s'"
 msgstr "papildu operands “%s”"
 
-#: src/cmp.c:507
+#: src/cmp.c:521
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s atšķiras: baits %s, rinda %s\n"
 
-#: src/cmp.c:523
+#: src/cmp.c:537
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
 msgstr "%s %s atšķiras: baits %s, rinda %s ir %3o %s %3o %s\n"
 
-#: src/cmp.c:580
+#: src/cmp.c:594
 #, fuzzy, c-format
 msgid "cmp: EOF on %s which is empty\n"
 msgstr "cmp: EOF uz %s\n"
 
-#: src/cmp.c:594
+#: src/cmp.c:608
 #, fuzzy, c-format
 msgid "cmp: EOF on %s after byte %s, line %s\n"
 msgstr "%s %s atšķiras: baits %s, rinda %s\n"
 
-#: src/cmp.c:595
+#: src/cmp.c:609
 #, fuzzy, c-format
 msgid "cmp: EOF on %s after byte %s, in line %s\n"
 msgstr "%s %s atšķiras: baits %s, rinda %s\n"
 
-#: src/cmp.c:601
+#: src/cmp.c:615
 #, fuzzy, c-format
 msgid "cmp: EOF on %s after byte %s\n"
 msgstr "cmp: EOF uz %s\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:51
+#: src/diff.c:50
 msgid "Paul Eggert"
 msgstr "Paul Eggert"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:52
+#: src/diff.c:51
 msgid "Mike Haertel"
 msgstr "Mike Haertel"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:53
+#: src/diff.c:52
 msgid "David Hayes"
 msgstr "David Hayes"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:54
+#: src/diff.c:53
 msgid "Richard Stallman"
 msgstr "Richard Stallman"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:55
+#: src/diff.c:54
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:355
+#: src/diff.c:365
 #, c-format
 msgid "invalid context length '%s'"
 msgstr "nederīgs konteksta garums “%s”"
 
-#: src/diff.c:438
+#: src/diff.c:487
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "lapošana netiek atbalstīta uz šī resursdatora"
 
-#: src/diff.c:453 src/diff3.c:341
+#: src/diff.c:502 src/diff3.c:348
 #, c-format
 msgid "too many file label options"
 msgstr "pārāk daudz datnes etiķešu opciju"
 
-#: src/diff.c:530
+#: src/diff.c:579
 #, c-format
 msgid "invalid width '%s'"
 msgstr "nederīgs platums “%s”"
 
-#: src/diff.c:534
+#: src/diff.c:583
 msgid "conflicting width options"
 msgstr "konfliktējošas platuma opcijas"
 
-#: src/diff.c:559
+#: src/diff.c:608
 #, c-format
 msgid "invalid horizon length '%s'"
 msgstr "nederīgs horizontālais garums “%s”"
 
-#: src/diff.c:615
+#: src/diff.c:664
 #, c-format
 msgid "invalid tabsize '%s'"
 msgstr "nederīgs tabulācijas izmērs “%s”"
 
-#: src/diff.c:619
+#: src/diff.c:668
 msgid "conflicting tabsize options"
 msgstr "konfliktējošas tabulācijas izmēru opcijas"
 
-#: src/diff.c:774
+#: src/diff.c:834
 msgid "--from-file and --to-file both specified"
 msgstr "--from-file un --to-file abi norādīti"
 
-#: src/diff.c:893
+#: src/diff.c:953
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "    --normal                  izvada parastu diff (noklusējuma)"
 
-#: src/diff.c:894
+#: src/diff.c:954
 msgid "-q, --brief                   report only when files differ"
 msgstr "-q, --brief                   ziņot tikai, ja datnes atšķiras"
 
-#: src/diff.c:895
+#: src/diff.c:955
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr "-s, --report-identical-files  ziņot, ja divas datnes ir vienādas"
 
-#: src/diff.c:896
+#: src/diff.c:956
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
 "-c, -C NUM, --context[=NUM]   izvadīt NUM (noklus. 3) kopētā konteksta rindas"
 
-#: src/diff.c:897
+#: src/diff.c:957
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
 "-u, -U NUM, --unified[=NUM]   izvadīt NUM (noklus. 3) vienotā konteksta "
 "rindas"
 
-#: src/diff.c:898
+#: src/diff.c:958
 msgid "-e, --ed                      output an ed script"
 msgstr "-e, --ed                      izvada ed skriptu"
 
-#: src/diff.c:899
+#: src/diff.c:959
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n, --rcs                     izvada RCS formāta diff"
 
-#: src/diff.c:900
+#: src/diff.c:960
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side            izvade divās kolonnās"
 
-#: src/diff.c:901
+#: src/diff.c:961
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
 "-W, --width=NUM               izvada līdz NUM (noklusējuma 130) drukas "
 "kolonas"
 
-#: src/diff.c:902
+#: src/diff.c:962
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr ""
 "    --left-column             izvadīt tikai kreiso kolonu no kopējām rindām"
 
-#: src/diff.c:903
+#: src/diff.c:963
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "    --suppress-common-lines   neizvadīt kopējās rindas"
 
-#: src/diff.c:905
+#: src/diff.c:965
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr "-p, --show-c-function         rādīt, kurās C funkcijās ir izmaiņas"
 
-#: src/diff.c:906
+#: src/diff.c:966
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr "-F, --show-function-line=RE   rādīt visnesenāko rindu, kas atbilst RE"
 
-#: src/diff.c:907
+#: src/diff.c:967
 #, fuzzy
 msgid ""
 "    --label LABEL             use LABEL instead of file name and timestamp\n"
@@ -797,24 +798,24 @@ msgstr ""
 "    --label ETIĶETE           izmantot ETIĶETI nevis datnes nosaukumu\n"
 "                                (var atkārtot)"
 
-#: src/diff.c:910
+#: src/diff.c:970
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr ""
 "-t, --expand-tabs             pārveidot tabulācijas par atstarpēm izvadē"
 
-#: src/diff.c:911
+#: src/diff.c:971
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr ""
 "-T, --initial-tab             pacelt tabulācijas rindu pirms tabulācijas"
 
-#: src/diff.c:912
+#: src/diff.c:972
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=NUM             tabulāciju pietura ik NUM drukas "
 "kolonas                                          (noklusējuma ir 8)"
 
-#: src/diff.c:913
+#: src/diff.c:973
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
@@ -822,59 +823,59 @@ msgstr ""
 "tukšām\n"
 "                                izvades rindām."
 
-#: src/diff.c:914
+#: src/diff.c:974
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr "-l, --paginate                izlaist izvadi caur “pr”, lai to lapotu"
 
-#: src/diff.c:916
+#: src/diff.c:976
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr ""
 "-r, --recursive                 rekursīvi salīdzina atrastās "
 "apakšdirektorijas"
 
-#: src/diff.c:917
+#: src/diff.c:977
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr "    --no-dereference            nerādīt simboliskās saites"
 
-#: src/diff.c:918
+#: src/diff.c:978
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr "-N, --new-file                  trūkstošas datnes uzskatīt par tukšām"
 
-#: src/diff.c:919
+#: src/diff.c:979
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
 "    --unidirectional-new-file   trūkstošas pirmās datnes uzskatīt par tukšām"
 
-#: src/diff.c:920
+#: src/diff.c:980
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ""
 "    --ignore-file-name-case     ignorēt reģistru, salīdzinot datņu nosaukumus"
 
-#: src/diff.c:921
+#: src/diff.c:981
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
 "    --no-ignore-file-name-case  neignorēt reģistru, salīdzinot datņu "
 "nosaukumus"
 
-#: src/diff.c:922
+#: src/diff.c:982
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr "-x, --exclude=ŠABLONS           izslēgt datnes, kuras atbilst ŠABLONAM"
 
-#: src/diff.c:923
+#: src/diff.c:983
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
 "-X, --exclude-from=DATNE        izslēgt datnes, kuras atbilst jebkuram\n"
 "                                  šablonam DATNĒ"
 
-#: src/diff.c:924
+#: src/diff.c:984
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
 "-S, --starting-file=DATNE       sākt ar DATNI, kad salīdzina direktorijas"
 
-#: src/diff.c:925
+#: src/diff.c:985
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
@@ -882,7 +883,7 @@ msgstr ""
 "    --from-file=DATNE1          salīdzina DANTE1 ar visiem operandiem;\n"
 "                                  DATNE1 var būt direktorija"
 
-#: src/diff.c:927
+#: src/diff.c:987
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
@@ -890,73 +891,73 @@ msgstr ""
 "    --to-file=FILE2             salīdzina visus operandus ar DANTE2;\n"
 "                                  DATNE2 var būt direktorija"
 
-#: src/diff.c:930
+#: src/diff.c:990
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr ""
 "-i, --ignore-case               ignorē reģistra atšķirības datnes saturā"
 
-#: src/diff.c:931
+#: src/diff.c:991
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr ""
 "-E, --ignore-tab-expansion      ignorēt izmaiņas dēļ tabulācijas izplešanās"
 
-#: src/diff.c:932
+#: src/diff.c:992
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr "-Z, --ignore-trailing-space     ignorēt visas atstarpes rindu beigās"
 
-#: src/diff.c:933
+#: src/diff.c:993
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr "-b, --ignore-space-change       ignorēt izmaiņas dēļ atstarpēm"
 
-#: src/diff.c:934
+#: src/diff.c:994
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w, --ignore-all-space          ignorēt visas atstarpes"
 
-#: src/diff.c:935
+#: src/diff.c:995
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr "-B, --ignore-blank-lines        ignorēt izmaiņas tukšajās rindās"
 
-#: src/diff.c:936
+#: src/diff.c:996
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=RE  ignorēt izmaiņas rindās, kuras sakrīt ar RE"
 
-#: src/diff.c:938
+#: src/diff.c:998
 msgid "-a, --text                      treat all files as text"
 msgstr "-a, --text                      uztvert visas datnes kā teksta datnes"
 
-#: src/diff.c:939
+#: src/diff.c:999
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr         noņemt atkārtojošos rakstatgriezi ievadē"
 
-#: src/diff.c:941
+#: src/diff.c:1001
 msgid "    --binary                    read and write data in binary mode"
 msgstr "    --binary                    lasīt un rakstīt datus binārajā režīmā"
 
-#: src/diff.c:944
+#: src/diff.c:1004
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
 "-D, --ifdef=NOSAUKUMS           izvadīt sapludināto datni ar\n"
 "                                  “#ifdef NOSAUKUMS” diff"
 
-#: src/diff.c:945
+#: src/diff.c:1005
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr "    --GTYPE-group-format=GFMT   formatēt GTYPE ievades grupas ar GFMT"
 
-#: src/diff.c:946
+#: src/diff.c:1006
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr "    --line-format=LFMT          formatēt visas ievades rindas ar LFMT"
 
-#: src/diff.c:947
+#: src/diff.c:1007
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr "    --LTYPE-line-format=LFMT    formatēt LTYPE ievades rindām ar LFMT"
 
-#: src/diff.c:948
+#: src/diff.c:1008
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
@@ -964,12 +965,12 @@ msgstr ""
 "  Šīs formāta opcijas sniedz detalizētu kontroli pār diff izvadi,\n"
 "    vispārinot -D/--ifdef."
 
-#: src/diff.c:950
+#: src/diff.c:1010
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
 "  LTYPE ir “old”, “new” vai “unchanged”.  GTYPE ir LTYPE vai “changed”."
 
-#: src/diff.c:951
+#: src/diff.c:1011
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -996,7 +997,7 @@ msgstr ""
 "        E  F-1\n"
 "        M  L+1    %(A=B?T:E)  ja A vienāds ar B tad T citādi E"
 
-#: src/diff.c:963
+#: src/diff.c:1023
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -1009,7 +1010,7 @@ msgstr ""
 "    %[-][PLATUMS][.[PREC]]{doxX}n  printf-style specifikācija ievades rindu\n"
 "       numuriem"
 
-#: src/diff.c:967
+#: src/diff.c:1027
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1023,142 +1024,142 @@ msgstr ""
 "    %c'\\OOO'  rakstzīmi ar oktālo kodu OOO\n"
 "    C    rakstzīme C (vai citas rakstzīmes, kas attēlo pašas sevi)"
 
-#: src/diff.c:973
+#: src/diff.c:1033
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr "-d, --minimal            ļoti censties atrast mazāku izmaiņu kopu"
 
-#: src/diff.c:974
+#: src/diff.c:1034
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr ""
 "    --horizon-lines=NUM  uzturēt NUM rindas kopējiem prefiksiem un sufiksiem"
 
-#: src/diff.c:975
+#: src/diff.c:1035
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
 "    --speed-large-files  pieņemt, ka datnes ir lielas ar daudz mazām izmaiņām"
 
-#: src/diff.c:976
+#: src/diff.c:1036
 msgid ""
 "    --color[=WHEN]       color output; WHEN is 'never', 'always', or "
 "'auto';\n"
 "                           plain --color means --color='auto'"
 msgstr ""
 
-#: src/diff.c:978
+#: src/diff.c:1038
 msgid ""
 "    --palette=PALETTE    the colors to use when --color is active; PALETTE "
 "is\n"
 "                           a colon-separated list of terminfo capabilities"
 msgstr ""
 
-#: src/diff.c:981
+#: src/diff.c:1041
 msgid "    --help               display this help and exit"
 msgstr "    --help               parādīt šo palīdzību un iziet"
 
-#: src/diff.c:982
+#: src/diff.c:1042
 msgid "-v, --version            output version information and exit"
 msgstr "-v, --version            izvada informāciju par versiju un iziet"
 
-#: src/diff.c:984
+#: src/diff.c:1044
 #, fuzzy
 msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
 "DATNES ir “DATNE1 DATNE2” vai “DIREKTORIJA1 DIREKTORIJA2” vai\n"
 "“DIREKTORIJA DATNE...” vai “DATNE... DIREKTORIJA”"
 
-#: src/diff.c:985
+#: src/diff.c:1045
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr ""
 "Ja ir doti --from-file vai --to-file, nav nekādu ierobežojumu uz DATNĒM."
 
-#: src/diff.c:986 src/diff3.c:533 src/sdiff.c:220
+#: src/diff.c:1046 src/diff3.c:531 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
 msgstr "Ja DATNE ir “-”, lasīt standarta ievadi."
 
-#: src/diff.c:996
+#: src/diff.c:1056
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Lietošana: %s [OPCIJAS]... DATNES\n"
 
-#: src/diff.c:997
+#: src/diff.c:1057
 msgid "Compare FILES line by line."
 msgstr "Salīdzina DATNES rindu pa rindai."
 
-#: src/diff.c:1034
+#: src/diff.c:1094
 #, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "konfliktējoša %s opcijas vērtība “%s”"
 
-#: src/diff.c:1047
+#: src/diff.c:1107
 #, c-format
 msgid "conflicting output style options"
 msgstr "konfliktējoša izvades stila opcijas"
 
-#: src/diff.c:1063
+#: src/diff.c:1123
 #, fuzzy, c-format
 msgid "invalid color '%s'"
 msgstr "nederīgs platums “%s”"
 
-#: src/diff.c:1119 src/diff.c:1329
+#: src/diff.c:1197 src/diff.c:1401
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Tikai iekš %s: %s\n"
 
-#: src/diff.c:1253
+#: src/diff.c:1325
 msgid "cannot compare '-' to a directory"
 msgstr "nevar salīdzināt “-” ar direktoriju"
 
-#: src/diff.c:1288
+#: src/diff.c:1360
 msgid "-D option not supported with directories"
 msgstr "-D opcija nav atbalstīta ar direktorijām"
 
-#: src/diff.c:1297
+#: src/diff.c:1369
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Kopējās apakšdirektorijas: %s un %s\n"
 
-#: src/diff.c:1339 src/diff.c:1389
+#: src/diff.c:1411 src/diff.c:1461
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr "Datne %s ir %s kamēr datne %s ir %s\n"
 
-#: src/diff.c:1375
+#: src/diff.c:1447
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "Simboliskās saites %s un %s atšķiras\n"
 
-#: src/diff.c:1462
+#: src/diff.c:1534
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Datnes %s un %s ir identiskas\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff3.c:43
+#: src/diff3.c:51
 msgid "Randy Smith"
 msgstr "Randy Smith"
 
-#: src/diff3.c:356
+#: src/diff3.c:363
 #, c-format
 msgid "incompatible options"
 msgstr "savstarpēji nesaderīgas opcijas"
 
-#: src/diff3.c:396
+#: src/diff3.c:403
 msgid "'-' specified for more than one input file"
 msgstr "“-” norādīts vairāk par vienu ievades datni"
 
-#: src/diff3.c:447 src/diff3.c:1295 src/diff3.c:1698 src/diff3.c:1753
-#: src/sdiff.c:308 src/sdiff.c:846 src/sdiff.c:857
+#: src/diff3.c:445 src/diff3.c:1284 src/diff3.c:1683 src/diff3.c:1738
+#: src/sdiff.c:306 src/sdiff.c:843 src/sdiff.c:854
 msgid "read failed"
 msgstr "lasīšana neizdevās"
 
-#: src/diff3.c:480
+#: src/diff3.c:478
 msgid "-A, --show-all              output all changes, bracketing conflicts"
 msgstr ""
 "-A, --show-all              izvada visas izmaņas, ieliekot iekavās konfliktus"
 
-#: src/diff3.c:482
+#: src/diff3.c:480
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
@@ -1166,12 +1167,12 @@ msgstr ""
 "-e, --ed                    izvada ed skirpta iekļautās izmaiņas\n"
 "                            no VECĀSDATNES uz JŪSUDATNI iekš MANUDATNI."
 
-#: src/diff3.c:484
+#: src/diff3.c:482
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
 msgstr ""
 "-E, --show-overlap          tāpat kā -e, bet ieliekot iekavās konfliktus"
 
-#: src/diff3.c:485
+#: src/diff3.c:483
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
@@ -1179,23 +1180,23 @@ msgstr ""
 "-3, --easy-only             līdzīgs -e, bet iekļauj tikai nepārklājošās "
 "izmaiņas"
 
-#: src/diff3.c:486
+#: src/diff3.c:484
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
 msgstr ""
 "-x, --overlap-only          līdzīgs -e, bet iekļauj tikai pārklājošās "
 "izmaiņas"
 
-#: src/diff3.c:487
+#: src/diff3.c:485
 msgid "-X                          like -x, but bracket conflicts"
 msgstr ""
 "-X                          līdzīgs -x, bet ieliekot iekavās konfliktus"
 
-#: src/diff3.c:488
+#: src/diff3.c:486
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
 msgstr "-i                          pievieno “w” un “q” komandas ed skriptā"
 
-#: src/diff3.c:490
+#: src/diff3.c:488
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
@@ -1203,24 +1204,24 @@ msgstr ""
 "-m, --merge                 izvada pašu sapludināto datni, vadoties pēc -A,\n"
 "                                ja nav dotu citu opciju"
 
-#: src/diff3.c:493
+#: src/diff3.c:491
 msgid "-a, --text                  treat all files as text"
 msgstr "-a, --text                  uztvert visas datnes kā teksta datnes"
 
-#: src/diff3.c:494
+#: src/diff3.c:492
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
 msgstr "    --strip-trailing-cr     noņemt atkārtojošos rakstatgriezi ievadē"
 
-#: src/diff3.c:495
+#: src/diff3.c:493
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
 msgstr "-T, --initial-tab           pacelt tabulācijas rindu pirms tabulācijas"
 
-#: src/diff3.c:496
+#: src/diff3.c:494
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
 msgstr ""
 "    --diff-program=PROGRAMMA izmantot PROGRAMMU, lai salīdzinātu divas datnes"
 
-#: src/diff3.c:497
+#: src/diff3.c:495
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
@@ -1228,24 +1229,24 @@ msgstr ""
 "-L, --label=ETIĶETE         izmantot ETIĶETI nevis datnes nosaukumu\n"
 "                                (var atkārtot)"
 
-#: src/diff3.c:500
+#: src/diff3.c:498
 msgid "    --help                  display this help and exit"
 msgstr "    --help                  parādīt šo palīdzību un iziet"
 
-#: src/diff3.c:501
+#: src/diff3.c:499
 msgid "-v, --version               output version information and exit"
 msgstr "-v, --version               izvada informāciju par versiju un iziet"
 
-#: src/diff3.c:510
+#: src/diff3.c:508
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
 msgstr "Izmantošana: %s [OPCIJAS]... MANADATNE VECĀDATNE JŪSUDATNE\n"
 
-#: src/diff3.c:512
+#: src/diff3.c:510
 msgid "Compare three files line by line."
 msgstr "Salīdzināt trīs datnes rindiņu pa rindiņai."
 
-#: src/diff3.c:522
+#: src/diff3.c:520
 msgid ""
 "\n"
 "The default output format is a somewhat human-readable representation of\n"
@@ -1271,56 +1272,56 @@ msgstr ""
 "sapludināto datni. Netipiskām ievadēm, šis ir vēl spēcīgāks paņēmiens, nekā\n"
 "ed izmantošana.\n"
 
-#: src/diff3.c:534
+#: src/diff3.c:532
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
 msgstr ""
 "Izejas statuss ir 0, ja tas ir veiksmīgs, 1, ja ir konflikts, 2, ja ir "
 "nepatikšanas."
 
-#: src/diff3.c:727
+#: src/diff3.c:725
 msgid "internal error: screwup in format of diff blocks"
 msgstr "iekšējā kļūda: sagāja grīstē diff bloku formāts"
 
-#: src/diff3.c:1022
+#: src/diff3.c:1015
 #, c-format
 msgid "%s: diff failed: "
 msgstr "%s: diff neizdevās:"
 
-#: src/diff3.c:1044
+#: src/diff3.c:1037
 msgid "internal error: invalid diff type in process_diff"
 msgstr "iekšējā kļūda: nederīgs diff veids iekš process_diff"
 
-#: src/diff3.c:1069
+#: src/diff3.c:1060
 msgid "invalid diff format; invalid change separator"
 msgstr "nederīgs diff formāts; nederīgs izmaiņu atdalītājs"
 
-#: src/diff3.c:1305
+#: src/diff3.c:1294
 msgid "invalid diff format; incomplete last line"
 msgstr "nederīgs diff formāts; nepilnīga pēdējā rinda"
 
-#: src/diff3.c:1329 src/sdiff.c:276 src/util.c:969
+#: src/diff3.c:1318 src/sdiff.c:274 src/util.c:1069
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "nevarēja izsaukt palīgprogrammu “%s”"
 
-#: src/diff3.c:1354
+#: src/diff3.c:1343
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "nederīgs diff formāts; nederīgas rindas ievades rakstzīmes"
 
-#: src/diff3.c:1427
+#: src/diff3.c:1416
 msgid "internal error: invalid diff type passed to output"
 msgstr "iekšējā kļūda: nederīgs uz izvadi padotais diff veids"
 
-#: src/diff3.c:1700 src/diff3.c:1757
+#: src/diff3.c:1685 src/diff3.c:1742
 msgid "input file shrank"
 msgstr "ievades datne saruka"
 
-#: src/dir.c:156
+#: src/dir.c:154
 #, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "nevar salīdzināt datņu nosaukumus “%s” un “%s”"
 
-#: src/dir.c:225
+#: src/dir.c:223
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: rekursīvs direktorijas cikls"
@@ -1330,13 +1331,13 @@ msgstr "%s: rekursīvs direktorijas cikls"
 msgid "Thomas Lord"
 msgstr "Thomas Lord"
 
-#: src/sdiff.c:174
+#: src/sdiff.c:173
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
 msgstr ""
 "-o, --output=DATNE           darboties interaktīvi, izvadot izvadu uz DATNI"
 
-#: src/sdiff.c:176
+#: src/sdiff.c:175
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
 msgstr ""
@@ -1344,110 +1345,110 @@ msgstr ""
 "ir\n"
 "                              viens un tas pats"
 
-#: src/sdiff.c:177
+#: src/sdiff.c:176
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
 msgstr ""
 "-E, --ignore-tab-expansion   ignorēt izmaiņas dēļ tabulācijas izplešanās"
 
-#: src/sdiff.c:178
+#: src/sdiff.c:177
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
 msgstr "-Z, --ignore-trailing-space  ignorēt visas atstarpes rindu beigās"
 
-#: src/sdiff.c:179
+#: src/sdiff.c:178
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
 msgstr "-b, --ignore-space-change    ignorēt izmaiņas dēļ atstarpēm"
 
-#: src/sdiff.c:180
+#: src/sdiff.c:179
 msgid "-W, --ignore-all-space       ignore all white space"
 msgstr "-W, --ignore-all-space       ignorēt visas atstarpes"
 
-#: src/sdiff.c:181
+#: src/sdiff.c:180
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
 msgstr "-B, --ignore-blank-lines     ignorēt izmaiņas tukšajās rindās"
 
-#: src/sdiff.c:182
+#: src/sdiff.c:181
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=RE  ignorēt izmaiņas rindās, kuras sakrīt ar RE"
 
-#: src/sdiff.c:183
+#: src/sdiff.c:182
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
 msgstr "    --strip-trailing-cr     noņemt atkārtojošos rakstatgriezi ievadē"
 
-#: src/sdiff.c:184
+#: src/sdiff.c:183
 msgid "-a, --text                   treat all files as text"
 msgstr "-a, --text                   uztvert visas datnes kā teksta datnes"
 
-#: src/sdiff.c:186
+#: src/sdiff.c:185
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
 msgstr ""
 "-w, --width=NUM              izvada līdz NUM (noklusējuma 130) drukas kolonas"
 
-#: src/sdiff.c:187
+#: src/sdiff.c:186
 msgid ""
 "-l, --left-column            output only the left column of common lines"
 msgstr ""
 "-l, --left-column            izvadīt tikai kreiso kolonu no kopējām rindām"
 
-#: src/sdiff.c:188
+#: src/sdiff.c:187
 msgid "-s, --suppress-common-lines  do not output common lines"
 msgstr "-s, --suppress-common-lines  neizvadīt kopējās rindas"
 
-#: src/sdiff.c:190
+#: src/sdiff.c:189
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
 msgstr ""
 "-t, --expand-tabs            pārveidot tabulācijas par atstarpēm izvadē"
 
-#: src/sdiff.c:191
+#: src/sdiff.c:190
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=NUM            tabulāciju pietura ik NUM drukas "
 "kolonas                                          (noklusējuma ir 8)"
 
-#: src/sdiff.c:193
+#: src/sdiff.c:192
 msgid "-d, --minimal                try hard to find a smaller set of changes"
 msgstr "-d, --minimal                ļoti censties atrast mazāku izmaiņu kopu"
 
-#: src/sdiff.c:194
+#: src/sdiff.c:193
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
 msgstr ""
 "-H, --speed-large-files      pieņemt, ka datnes ir lielas, daudz mazu izmaiņu"
 
-#: src/sdiff.c:195
+#: src/sdiff.c:194
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
 msgstr ""
 "    --diff-program=PROGRAMMA izmantot PROGRAMMU, lai salīdzinātu divas datnes"
 
-#: src/sdiff.c:197
+#: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
 msgstr "    --help                   parādīt šo palīdzību un iziet"
 
-#: src/sdiff.c:198
+#: src/sdiff.c:197
 msgid "-v, --version                output version information and exit"
 msgstr "-v, --version                izvada informāciju par versiju un iziet"
 
-#: src/sdiff.c:207
+#: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
 msgstr "Lietošana: %s [OPCIJAS]... DATNE1 DATNE1\n"
 
-#: src/sdiff.c:209
+#: src/sdiff.c:208
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
 msgstr "Sānu-pie-sāna datņu DATNE1 un DATNE2 atšķirību sapludināšana."
 
-#: src/sdiff.c:330
+#: src/sdiff.c:328
 msgid "cannot interactively merge standard input"
 msgstr "nevar interaktīvi sapludināt standarta ievadi"
 
-#: src/sdiff.c:597
+#: src/sdiff.c:594
 msgid "both files to be compared are directories"
 msgstr "abas salīdzināmās datnes ir direktorijas"
 
-#: src/sdiff.c:820
+#: src/sdiff.c:817
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
 "eb:\tEdit then use both versions.\n"
@@ -1471,12 +1472,12 @@ msgstr ""
 "v:\tDetalizēti iekļaut kopējās rindas.\n"
 "q:\tIziet.\n"
 
-#: src/util.c:662
+#: src/util.c:755
 #, fuzzy, c-format
 msgid "unrecognized prefix: %s"
 msgstr "%s: neatpazīta opcija “--%s”\n"
 
-#: src/util.c:692
+#: src/util.c:785
 #, c-format
 msgid "unparsable value for --palette"
 msgstr ""
index 4088c28..0db0fbb 100644 (file)
Binary files a/po/ms.gmo and b/po/ms.gmo differ
index 0ab6b65..7d6530f 100644 (file)
--- a/po/ms.po
+++ b/po/ms.po
@@ -1,14 +1,14 @@
 # diffutils Bahasa Melayu (Malay) (ms).
-# Copyright (C) 2003, 2015, 2018, 2019, 2020, 2021 Free Software Foundation, Inc.
+# Copyright (C) 2003, 2015, 2018, 2019, 2020, 2021, 2022 Free Software Foundation, Inc.
 # This file is distributed under the same license as the diffutils package.
-# Sharuzzaman Ahmat Raslan <sharuzzaman@gmail.com>, 2003, 2015, 2018, 2019, 2020, 2021.
+# Sharuzzaman Ahmat Raslan <sharuzzaman@gmail.com>, 2003, 2015, 2018, 2019, 2020, 2021, 2022.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: diffutils 3.6.17\n"
+"Project-Id-Version: diffutils 3.7.41\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2021-08-01 18:56-0700\n"
-"PO-Revision-Date: 2021-06-26 20:09+0800\n"
+"POT-Creation-Date: 2023-05-21 01:51-0700\n"
+"PO-Revision-Date: 2022-06-14 18:57+0800\n"
 "Last-Translator: Sharuzzaman Ahmat Raslan <sharuzzaman@gmail.com>\n"
 "Language-Team: Malay <translation-team-ms@lists.sourceforge.net>\n"
 "Language: ms\n"
@@ -16,31 +16,31 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
-"X-Generator: Poedit 3.0\n"
+"X-Generator: Poedit 3.1\n"
 
-#: lib/argmatch.c:132
+#: lib/argmatch.c:145
 #, c-format
 msgid "invalid argument %s for %s"
 msgstr "hujah tidak sah %s bagi %s"
 
-#: lib/argmatch.c:133
+#: lib/argmatch.c:146
 #, c-format
 msgid "ambiguous argument %s for %s"
 msgstr "hujah kabur %s bagi %s"
 
-#: lib/argmatch.c:152 lib/argmatch.h:223
+#: lib/argmatch.c:165 lib/argmatch.h:242
 msgid "Valid arguments are:"
 msgstr "Hujah yang sah ialah:"
 
-#: lib/c-stack.c:187
+#: lib/c-stack.c:186
 msgid "program error"
 msgstr "ralat program"
 
-#: lib/c-stack.c:188
+#: lib/c-stack.c:187
 msgid "stack overflow"
 msgstr "stack melimpah"
 
-#: lib/error.c:195
+#: lib/error.c:193
 msgid "Unknown system error"
 msgstr "Ralat sistem tidak diketahui"
 
@@ -97,33 +97,28 @@ msgid "door"
 msgstr "pintu"
 
 #: lib/file-type.c:81
-#, fuzzy
 msgid "multiplexed block special file"
-msgstr "fail khas blok"
+msgstr "fail khas blok selangseli"
 
 #: lib/file-type.c:84
-#, fuzzy
 msgid "multiplexed character special file"
-msgstr "fail khas aksara"
+msgstr "fail khas aksara selangseli"
 
 #: lib/file-type.c:87
-#, fuzzy
 msgid "multiplexed file"
-msgstr "  Fail: ..."
+msgstr "fail selangseli"
 
 #: lib/file-type.c:90
 msgid "named file"
 msgstr "fail dinamakan"
 
 #: lib/file-type.c:93
-#, fuzzy
 msgid "network special file"
-msgstr "Rangkaian tidak dapat dicapai."
+msgstr "fail khas rangkaian"
 
 #: lib/file-type.c:96
-#, fuzzy
 msgid "migrated file with data"
-msgstr "fail dipindahkan tanpa data"
+msgstr "fail dipindahkan dengan data"
 
 #: lib/file-type.c:99
 msgid "migrated file without data"
@@ -139,7 +134,7 @@ msgstr "soket"
 
 #: lib/file-type.c:108
 msgid "whiteout"
-msgstr ""
+msgstr "kosongkan"
 
 #: lib/file-type.c:110
 msgid "weird file"
@@ -201,83 +196,83 @@ msgstr "%s: pilihan memerlukan hujah -- '%c'\n"
 #. If you don't know what to put here, please see
 #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:355
+#: lib/quotearg.c:354
 msgid "`"
 msgstr "`"
 
-#: lib/quotearg.c:356
+#: lib/quotearg.c:355
 msgid "'"
 msgstr "'"
 
-#: lib/regcomp.c:135
+#: lib/regcomp.c:122
 msgid "Success"
 msgstr "Berjaya"
 
-#: lib/regcomp.c:138
+#: lib/regcomp.c:125
 msgid "No match"
 msgstr "Tiada padanan"
 
-#: lib/regcomp.c:141
+#: lib/regcomp.c:128
 msgid "Invalid regular expression"
 msgstr "Regular expression tidak sah"
 
-#: lib/regcomp.c:144
+#: lib/regcomp.c:131
 msgid "Invalid collation character"
 msgstr "Aksara pengumpulsemakan tidak sah"
 
-#: lib/regcomp.c:147
+#: lib/regcomp.c:134
 msgid "Invalid character class name"
 msgstr "Nama kelas aksara tidak sah"
 
-#: lib/regcomp.c:150
+#: lib/regcomp.c:137
 msgid "Trailing backslash"
 msgstr "Slash dibelakang"
 
-#: lib/regcomp.c:153
+#: lib/regcomp.c:140
 msgid "Invalid back reference"
 msgstr "Rujukan belakang tidak sah"
 
-#: lib/regcomp.c:156
+#: lib/regcomp.c:143
 msgid "Unmatched [, [^, [:, [., or [="
 msgstr "[, [^, [:, [., atau [= tidak sepadan"
 
-#: lib/regcomp.c:159
+#: lib/regcomp.c:146
 msgid "Unmatched ( or \\("
 msgstr "( atau \\( tidak sepadan"
 
-#: lib/regcomp.c:162
+#: lib/regcomp.c:149
 msgid "Unmatched \\{"
 msgstr "\\{ tidak sepadan"
 
-#: lib/regcomp.c:165
+#: lib/regcomp.c:152
 msgid "Invalid content of \\{\\}"
 msgstr "Kandungan \\{\\} tidak sah"
 
-#: lib/regcomp.c:168
+#: lib/regcomp.c:155
 msgid "Invalid range end"
 msgstr "Julat akhir tidak sah"
 
-#: lib/regcomp.c:171
+#: lib/regcomp.c:158
 msgid "Memory exhausted"
 msgstr "Kehabisan memori"
 
-#: lib/regcomp.c:174
+#: lib/regcomp.c:161
 msgid "Invalid preceding regular expression"
 msgstr "Regular expression awalan tidak sah"
 
-#: lib/regcomp.c:177
+#: lib/regcomp.c:164
 msgid "Premature end of regular expression"
 msgstr "Regular expression tamat tiba-tiba"
 
-#: lib/regcomp.c:180
+#: lib/regcomp.c:167
 msgid "Regular expression too big"
 msgstr "Regular expression terlalu besar"
 
-#: lib/regcomp.c:183
+#: lib/regcomp.c:170
 msgid "Unmatched ) or \\)"
 msgstr ") atau \\) tidak sepadan"
 
-#: lib/regcomp.c:676
+#: lib/regcomp.c:650
 msgid "No previous regular expression"
 msgstr "Tiada regular expression terdahulu"
 
@@ -302,24 +297,24 @@ msgid "unknown stream"
 msgstr "aliran tidak diketahui"
 
 #: lib/xfreopen.c:38
-#, fuzzy, c-format
+#, c-format
 msgid "failed to reopen %s with mode %s"
-msgstr "%s tidak dapat dibuka semula: %s"
+msgstr "gagal membuka semula %s dengan mod %s"
 
 #: lib/xstdopen.c:34
 #, c-format
 msgid "standard file descriptors"
-msgstr ""
+msgstr "penghurai fail piawai"
 
 #: lib/version-etc.c:73
-#, fuzzy, c-format
+#, c-format
 msgid "Packaged by %s (%s)\n"
-msgstr "%s: %s.\n"
+msgstr "Dipakej oleh %s (%s)\n"
 
 #: lib/version-etc.c:76
-#, fuzzy, c-format
+#, c-format
 msgid "Packaged by %s\n"
-msgstr "%s%s: %.*s (%s)\n"
+msgstr "Dipakej oleh %s\n"
 
 #. TRANSLATORS: Translate "(C)" to the copyright symbol
 #. (C-in-a-circle), if this symbol is available in the user's
@@ -330,17 +325,16 @@ msgstr "(C)"
 
 #. TRANSLATORS: The %s placeholder is the web address of the GPL license.
 #: lib/version-etc.c:88
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "License GPLv3+: GNU GPL version 3 or later <%s>.\n"
 "This is free software: you are free to change and redistribute it.\n"
 "There is NO WARRANTY, to the extent permitted by law.\n"
 msgstr ""
-"Lesen GPLv3+: GNU GPL vesri 3 atau selepasnya <http://gnu.org/licenses/gpl."
-"html>\n"
-"Ini adalah perisan bebas: anda bebas untuk mengubah dan mengulangedarnya.\n"
+"Lesen GPLv3+: GNU GPL versi 3 atau selepasnya <%s>.\n"
+"Ini adalah perisan bebas: anda bebas untuk mengubah dan mengedarkannya "
+"semula.\n"
 "TIADA JAMINAN diberikan, sehingga had yang dibenarkan oleh undang-undang.\n"
-"\n"
 
 #. TRANSLATORS: %s denotes an author name.
 #: lib/version-etc.c:105
@@ -455,11 +449,9 @@ msgstr ""
 #. "Report translation bugs to <...>\n" with the address for translation
 #. bugs (typically your translation team's web or email address).
 #: lib/version-etc.c:249
-#, fuzzy, c-format
+#, c-format
 msgid "Report bugs to: %s\n"
-msgstr ""
-"\n"
-"Lapor pepijat ke: %s\n"
+msgstr "Lapor pepijat ke: %s\n"
 
 #: lib/version-etc.c:251
 #, c-format
@@ -467,27 +459,26 @@ msgid "Report %s bugs to: %s\n"
 msgstr "Lapor %s pepijat ke: %s\n"
 
 #: lib/version-etc.c:255 lib/version-etc.c:257
-#, fuzzy, c-format
+#, c-format
 msgid "%s home page: <%s>\n"
-msgstr "%s laman utama: <%s>.\n"
+msgstr "%s laman utama: <%s>\n"
 
 #: lib/version-etc.c:260
-#, fuzzy, c-format
+#, c-format
 msgid "General help using GNU software: <%s>\n"
-msgstr ""
-"Bantuan umum menggunakan perisian GNU: <http://www.gnu.org/gethelp/>.\n"
+msgstr "Bantuan umum menggunakan perisian GNU: <%s>\n"
 
-#: src/analyze.c:454 src/diff.c:1406
+#: src/analyze.c:455 src/diff.c:1478
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Fail %s dan %s berbeza\n"
 
-#: src/analyze.c:455
+#: src/analyze.c:456
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "Fail binari %s dan %s berbeza\n"
 
-#: src/analyze.c:706 src/diff3.c:1470 src/util.c:1254
+#: src/analyze.c:707 src/diff3.c:1457 src/util.c:1354
 msgid "No newline at end of file"
 msgstr "Tiada baris baru pada penghujung fail"
 
@@ -501,99 +492,96 @@ msgstr "Torbjorn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:120 src/diff.c:879 src/diff3.c:467 src/sdiff.c:160
+#: src/cmp.c:124 src/diff.c:939 src/diff3.c:465 src/sdiff.c:159
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Cuba '%s --help' untuk maklumat lanjut."
 
-#: src/cmp.c:138
-#, fuzzy, c-format
+#: src/cmp.c:142
+#, c-format
 msgid "invalid --ignore-initial value '%s'"
-msgstr "nilai `%s' --ignore-initial tidak sah"
+msgstr "nilai '%s' --ignore-initial tidak sah"
 
-#: src/cmp.c:148
+#: src/cmp.c:152
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr "pilihan -l dan -s tidak sepadan"
 
-#: src/cmp.c:156 src/diff.c:887 src/diff3.c:474 src/sdiff.c:168 src/sdiff.c:316
-#: src/sdiff.c:323 src/sdiff.c:876 src/util.c:852 src/util.c:952 src/util.c:959
+#: src/cmp.c:160 src/diff.c:947 src/diff3.c:472 src/sdiff.c:167 src/sdiff.c:314
+#: src/sdiff.c:321 src/sdiff.c:873 src/util.c:952 src/util.c:1052
+#: src/util.c:1059
 msgid "write failed"
 msgstr "gagal menulis"
 
-#: src/cmp.c:158 src/diff.c:889 src/diff.c:1471 src/diff3.c:476 src/sdiff.c:170
+#: src/cmp.c:162 src/diff.c:949 src/diff.c:1543 src/diff3.c:474 src/sdiff.c:169
 msgid "standard output"
 msgstr "keluaran piawai"
 
-#: src/cmp.c:162
-#, fuzzy
+#: src/cmp.c:166
 msgid "-b, --print-bytes          print differing bytes"
-msgstr "-b  --print-bytes  Cetak byte berbeza."
+msgstr "-b, --print-bytes          cetak byte berbeza"
 
-#: src/cmp.c:163
-#, fuzzy
+#: src/cmp.c:167
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
 msgstr ""
-"-i LANGKAU  --ignore-initial=LANGKAU  Langkau LANGKAU byte pertama masukan."
+"-i, --ignore-initial=LANGKAU       langkau LANGKAU byte pertama bagi kedua-"
+"dua masukan"
 
-#: src/cmp.c:164
-#, fuzzy
+#: src/cmp.c:168
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
 msgstr ""
-"  Langkau LANGKAU1 byte pertama untuk FAIL1 dan LANGKAU2 byte pertama untuk "
-"FAIL2."
+"-i, --ignore-initial=LANGKAU1:LANGKAU2  langkau LANGKAU1 byte pertama untuk "
+"FAIL1 dan\n"
+"                                       LANGKAU2 byte pertama untuk FAIL2"
 
-#: src/cmp.c:166
-#, fuzzy
+#: src/cmp.c:170
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
-msgstr "-l  --verbose  Keluarkan nombor byte dan nilai semua byte berbeza."
+msgstr ""
+"-l, --verbose              keluarkan nombor byte dan nilai byte berbeza"
 
-#: src/cmp.c:167
-#, fuzzy
+#: src/cmp.c:171
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
-msgstr "-n HAD  --bytes=HAD  Banding paling banyak HAD byte."
+msgstr "-n, --bytes=HAD            banding paling banyak HAD byte"
 
-#: src/cmp.c:168
+#: src/cmp.c:172
 msgid "-s, --quiet, --silent      suppress all normal output"
 msgstr "-s, --quiet, --silent      sekat semua keluaran normal"
 
-#: src/cmp.c:169
-#, fuzzy
+#: src/cmp.c:173
 msgid "    --help                 display this help and exit"
-msgstr "      --help             paparkan bantuan ini kemudian keluar\n"
+msgstr "    --help                 paparkan bantuan ini dan keluar"
 
-#: src/cmp.c:170
-#, fuzzy
+#: src/cmp.c:174
 msgid "-v, --version              output version information and exit"
-msgstr "-v, --version                papar maklumat versi dan keluar"
+msgstr "-v, --version              papar maklumat versi dan keluar"
 
-#: src/cmp.c:179
+#: src/cmp.c:183
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
 msgstr "Penggunaan: %s [PILIHAN]... FAIL1 [FAIL2 [LANGKAU1 [LANGKAU2]]]\n"
 
-#: src/cmp.c:181
+#: src/cmp.c:185
 msgid "Compare two files byte by byte."
 msgstr "Banding dua fail setiap byte."
 
-#: src/cmp.c:183
-#, fuzzy
+#: src/cmp.c:187
 msgid ""
 "The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
 "at the beginning of each file (zero by default)."
 msgstr ""
-"LANGKAU1 dan LANGKAU2 adalah jumlah byte untuk dilangkau dalam setiap fail."
+"Pilihan LANGKAU1 dan LANGKAU2 menyatakan bilangan byte untuk dilangkau\n"
+"pada permulaan setiap fail (sifar secara default)"
 
-#: src/cmp.c:186 src/diff.c:999 src/diff3.c:514 src/sdiff.c:211
+#: src/cmp.c:190 src/diff.c:1059 src/diff3.c:512 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
 "Hujah wajib kepada pilihan panjang adalah wajib untuk pilihan pendek juga.\n"
 
-#: src/cmp.c:192
+#: src/cmp.c:196
 msgid ""
 "SKIP values may be followed by the following multiplicative suffixes:\n"
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
@@ -603,197 +591,193 @@ msgstr ""
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
 "GB 1,000,000,000, G 1,073,741,824, dan seterusnya untuk T, P, E, Z, Y."
 
-#: src/cmp.c:195
-#, fuzzy
+#: src/cmp.c:199
 msgid "If a FILE is '-' or missing, read standard input."
-msgstr "Jika FAIL adalah `-' atau tiada, baca masukan piawai."
+msgstr "Jika FAIL adalah '-' atau tiada, baca masukan piawai."
 
-#: src/cmp.c:196 src/diff.c:987 src/sdiff.c:221
+#: src/cmp.c:200 src/diff.c:1047 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr ""
 "Status keluar adalah 0 jika masukan adalah sama, 1 jika berbeza, 2 jika "
 "bermasalah."
 
-#: src/cmp.c:243
-#, fuzzy, c-format
+#: src/cmp.c:247
+#, c-format
 msgid "invalid --bytes value '%s'"
-msgstr "nilai --bytes `%s' tidak sah"
+msgstr "nilai --bytes '%s' tidak sah"
 
-#: src/cmp.c:269 src/diff.c:797 src/diff3.c:361 src/sdiff.c:567
-#, fuzzy, c-format
+#: src/cmp.c:273 src/diff.c:857 src/diff3.c:368 src/sdiff.c:564
+#, c-format
 msgid "missing operand after '%s'"
-msgstr "operan hilang selepas `%s'"
+msgstr "operan hilang selepas '%s'"
 
-#: src/cmp.c:281 src/diff.c:799 src/diff3.c:363 src/sdiff.c:569
-#, fuzzy, c-format
+#: src/cmp.c:285 src/diff.c:859 src/diff3.c:370 src/sdiff.c:566
+#, c-format
 msgid "extra operand '%s'"
-msgstr "operan tambahan `%s'"
+msgstr "operan tambahan '%s'"
 
-#: src/cmp.c:507
+#: src/cmp.c:521
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s berbeza: byte %s, baris %s\n"
 
-#: src/cmp.c:523
+#: src/cmp.c:537
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
 msgstr "%s %s berbeza: byte %s, baris %s adalah %3o %s %3o %s\n"
 
-#: src/cmp.c:580
-#, fuzzy, c-format
+#: src/cmp.c:594
+#, c-format
 msgid "cmp: EOF on %s which is empty\n"
-msgstr "cmp: EOF pada %s\n"
+msgstr "cmp: EOF pada %s yang kosong\n"
 
-#: src/cmp.c:594
-#, fuzzy, c-format
+#: src/cmp.c:608
+#, c-format
 msgid "cmp: EOF on %s after byte %s, line %s\n"
-msgstr "%s %s berbeza: byte %s, baris %s\n"
+msgstr "cmp: EOF pada %s selepas byte %s, baris %s\n"
 
-#: src/cmp.c:595
-#, fuzzy, c-format
+#: src/cmp.c:609
+#, c-format
 msgid "cmp: EOF on %s after byte %s, in line %s\n"
-msgstr "%s %s berbeza: byte %s, baris %s\n"
+msgstr "cmp: EOF pada %s selepas byte %s, dalam baris %s\n"
 
-#: src/cmp.c:601
-#, fuzzy, c-format
+#: src/cmp.c:615
+#, c-format
 msgid "cmp: EOF on %s after byte %s\n"
-msgstr "%s: EOF tidak dijangka selepas membaca %d/%d bins\n"
+msgstr "cmp: EOF pada %s selepas byte %s\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:51
+#: src/diff.c:50
 msgid "Paul Eggert"
 msgstr "Paul Eggert"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:52
+#: src/diff.c:51
 msgid "Mike Haertel"
 msgstr "Mike Haertel"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:53
+#: src/diff.c:52
 msgid "David Hayes"
 msgstr "David Hayes"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:54
+#: src/diff.c:53
 msgid "Richard Stallman"
 msgstr "Richard Stallman"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:55
+#: src/diff.c:54
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:355
-#, fuzzy, c-format
+#: src/diff.c:365
+#, c-format
 msgid "invalid context length '%s'"
-msgstr "panjang konteks `%s' tidak sah"
+msgstr "panjang konteks '%s' tidak sah"
 
-#: src/diff.c:438
+#: src/diff.c:487
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "pagination tidak disokong pada hos ini"
 
-#: src/diff.c:453 src/diff3.c:341
+#: src/diff.c:502 src/diff3.c:348
 #, c-format
 msgid "too many file label options"
 msgstr "terlalu banyak pilihan label fail"
 
-#: src/diff.c:530
-#, fuzzy, c-format
+#: src/diff.c:579
+#, c-format
 msgid "invalid width '%s'"
-msgstr "lebar `%s' tidak sah"
+msgstr "lebar '%s' tidak sah"
 
-#: src/diff.c:534
+#: src/diff.c:583
 msgid "conflicting width options"
 msgstr "pilihan lebar berkonflik"
 
-#: src/diff.c:559
-#, fuzzy, c-format
+#: src/diff.c:608
+#, c-format
 msgid "invalid horizon length '%s'"
-msgstr "panjang horizon `%s' tidak sah"
+msgstr "panjang horizon '%s' tidak sah"
 
-#: src/diff.c:615
-#, fuzzy, c-format
+#: src/diff.c:664
+#, c-format
 msgid "invalid tabsize '%s'"
-msgstr "saiz tab `%s' tidak sah"
+msgstr "saiz tab '%s' tidak sah"
 
-#: src/diff.c:619
+#: src/diff.c:668
 msgid "conflicting tabsize options"
 msgstr "pilihan saiz tab berkonflik"
 
-#: src/diff.c:774
+#: src/diff.c:834
 msgid "--from-file and --to-file both specified"
 msgstr "--from-file dan --to-file kedua-duanya dinyatakan"
 
-#: src/diff.c:893
-#, fuzzy
+#: src/diff.c:953
 msgid "    --normal                  output a normal diff (the default)"
-msgstr "--normal  Keluarkan diff normal."
+msgstr "    --normal                  keluarkan diff normal (default)"
 
-#: src/diff.c:894
-#, fuzzy
+#: src/diff.c:954
 msgid "-q, --brief                   report only when files differ"
-msgstr "-q  --brief  Keluaran hanya jika fail berbeza."
+msgstr "-q, --brief                   lapor hanya jika fail berbeza"
 
-#: src/diff.c:895
-#, fuzzy
+#: src/diff.c:955
 msgid "-s, --report-identical-files  report when two files are the same"
-msgstr "-s  --report-identical-files  Lapor apabila dua fail adalah sama."
+msgstr "-s, --report-identical-files  lapor apabila dua fail adalah sama"
 
-#: src/diff.c:896
+#: src/diff.c:956
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
 "-c, -C NUM, --context[=NUM]   keluarkan NUM (default 3) baris konteks yang "
 "disalin"
 
-#: src/diff.c:897
+#: src/diff.c:957
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
 "-u, -U NUM, --unified[=NUM]   keluarkan NUM (default 3) baris konteks "
 "tergabung"
 
-#: src/diff.c:898
+#: src/diff.c:958
 msgid "-e, --ed                      output an ed script"
 msgstr "-e, --ed                      keluarkan skrip ed"
 
-#: src/diff.c:899
+#: src/diff.c:959
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n, --rcs                     keluarkan diff format RCS"
 
-#: src/diff.c:900
+#: src/diff.c:960
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side            keluaran dalam dua lajur"
 
-#: src/diff.c:901
+#: src/diff.c:961
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
 "-W, --width=NUM               keluarkan paling banyak NUM (default 130) "
 "lajur cetakan"
 
-#: src/diff.c:902
+#: src/diff.c:962
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr ""
 "    --left-column             keluarkan hanya lajur kiri baris yang sama"
 
-#: src/diff.c:903
+#: src/diff.c:963
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "    --suppress-common-lines   jangan keluarkan baris sama"
 
-#: src/diff.c:905
+#: src/diff.c:965
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr ""
 "-p, --show-c-function         papar fungsi C yang mana dalam setiap perubahan"
 
-#: src/diff.c:906
+#: src/diff.c:966
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr "-F, --show-function-line=RE   papar baris paling terkini sepadan RE"
 
-#: src/diff.c:907
+#: src/diff.c:967
 msgid ""
 "    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
@@ -801,80 +785,80 @@ msgstr ""
 "    --label LABEL             guna LABEL berbanding nama fail dan capmasa\n"
 "                                (boleh diulang)"
 
-#: src/diff.c:910
+#: src/diff.c:970
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr "-t, --expand-tabs             kembang tab kepada ruang dalam keluaran"
 
-#: src/diff.c:911
+#: src/diff.c:971
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr ""
 "-T, --initial-tab             jadikan tab sebaris dengan menambah awalan tab"
 
-#: src/diff.c:912
+#: src/diff.c:972
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=NUM             hentian tab setiap NUM (default 8) lajur "
 "cetakan"
 
-#: src/diff.c:913
+#: src/diff.c:973
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
 "    --suppress-blank-empty    sekat ruang atau tab sebelum baris keluaran "
 "kosong"
 
-#: src/diff.c:914
+#: src/diff.c:974
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr ""
 "-l, --paginate                salur keluaran menerusi 'pr' untuk paginate"
 
-#: src/diff.c:916
+#: src/diff.c:976
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr ""
 "-r, --recursive                 banding berulang-ulang sebarang subdirektori "
 "yang dijumpai"
 
-#: src/diff.c:917
+#: src/diff.c:977
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr "    --no-dereference            jangan ikut pautan simbolik"
 
-#: src/diff.c:918
+#: src/diff.c:978
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr "-N, --new-file                  anggap fail tidak wujud sebagai kosong"
 
-#: src/diff.c:919
+#: src/diff.c:979
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr "    --unidirectional-new-file   anggap fail tidak wujud sebagai kosong"
 
-#: src/diff.c:920
+#: src/diff.c:980
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr "    --ignore-file-name-case     abai case apabila membanding nama fail"
 
-#: src/diff.c:921
+#: src/diff.c:981
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
 "    --no-ignore-file-name-case  ambil kira case ketika membanding nama fail"
 
-#: src/diff.c:922
+#: src/diff.c:982
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr "-x, --exclude=PAT               asingkan fail yang sepadan PAT"
 
-#: src/diff.c:923
+#: src/diff.c:983
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
 "-X, --exclude-from=FILE         asingkan fail yang sepadan sebarang corak "
 "dalam FAIL"
 
-#: src/diff.c:924
+#: src/diff.c:984
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
 "-S, --starting-file=FILE        mula dengan FAIL apabila membanding direktori"
 
-#: src/diff.c:925
+#: src/diff.c:985
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
@@ -882,7 +866,7 @@ msgstr ""
 "    --from-file=FILE1           banding FAIL1 kepada semua operan;\n"
 "                                  FAIL1 boleh jadi direktori"
 
-#: src/diff.c:927
+#: src/diff.c:987
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
@@ -890,89 +874,91 @@ msgstr ""
 "    --to-file=FILE2             banding semua operan ke FAIL2;\n"
 "                                  FAIL2 boleh jadi direktori"
 
-#: src/diff.c:930
+#: src/diff.c:990
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr ""
 "-i, --ignore-case               abai perbezaan huruf besar kecil dalam "
 "kandungan fail"
 
-#: src/diff.c:931
+#: src/diff.c:991
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr "-E, --ignore-tab-expansion      abai perubahan akibat pengembangan tab"
 
-#: src/diff.c:932
+#: src/diff.c:992
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr ""
 "-Z, --ignore-trailing-space     abai semua ruang putih pada penghujung baris"
 
-#: src/diff.c:933
+#: src/diff.c:993
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr ""
 "-b, --ignore-space-change       abai perubahan dalam jumlah ruang putih"
 
-#: src/diff.c:934
+#: src/diff.c:994
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w, --ignore-all-space          abai semua ruang putih"
 
-#: src/diff.c:935
+#: src/diff.c:995
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr ""
 "-B, --ignore-blank-lines        abai perubahan dimana baris adalah "
 "kesemuanya kosong"
 
-#: src/diff.c:936
+#: src/diff.c:996
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=RE  abai perubahan dimana semua baris sepadan RE"
 
-#: src/diff.c:938
+#: src/diff.c:998
 msgid "-a, --text                      treat all files as text"
 msgstr "-a, --text                      layan semua fail sebagai teks"
 
-#: src/diff.c:939
+#: src/diff.c:999
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr "    --strip-trailing-cr         buang enter penghujung pada masukan"
 
-#: src/diff.c:941
+#: src/diff.c:1001
 msgid "    --binary                    read and write data in binary mode"
 msgstr "    --binary                    baca dan tulis data dalam mod perduaan"
 
-#: src/diff.c:944
+#: src/diff.c:1004
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
 "-D, --ifdef=NAME                keluarkan fail tergabung dengan diff '#ifdef "
 "NAME'"
 
-#: src/diff.c:945
+#: src/diff.c:1005
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr ""
 "    --GTYPE-group-format=GFMT   format masukan GTYPE dikumpulkan dengan GFMT"
 
-#: src/diff.c:946
+#: src/diff.c:1006
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr "    --line-format=LFMT          format semua baris masukan dengan LFMT"
 
-#: src/diff.c:947
+#: src/diff.c:1007
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr "    --LTYPE-line-format=LFMT    format baris masukan LTYPE dengan LFMT"
 
-#: src/diff.c:948
+#: src/diff.c:1008
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
 msgstr ""
+"  Pilihan format ini menyediakan kawalan halus ke atas keluaran\n"
+"    dari diff, generalisasi -D/--ifdef."
 
-#: src/diff.c:950
+#: src/diff.c:1010
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
 "  LTYPE adalah 'old', 'new', atau 'unchanged'.  GTYPE adalah LTYPE atau "
 "'changed'."
 
-#: src/diff.c:951
+#: src/diff.c:1011
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -1001,7 +987,7 @@ msgstr ""
 "        M  L+1\n"
 "    %(A=B?T:E)  jika A sama dengan B maka T selainnya E"
 
-#: src/diff.c:963
+#: src/diff.c:1023
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -1013,7 +999,7 @@ msgstr ""
 "    %l  kandungan baris, tidak termasuk baris baru dipenghujung\n"
 "    %[-][WIDTH][.[PREC]]{doxX}n  spec gaya-printf untuk nombor baris masukan"
 
-#: src/diff.c:967
+#: src/diff.c:1027
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1027,141 +1013,147 @@ msgstr ""
 "    %c'\\OOO'  aksara dengan kod oktal OOO\n"
 "    C    aksara C (aksara lain mewakili diri mereka sendiri)"
 
-#: src/diff.c:973
+#: src/diff.c:1033
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr ""
 "-d, --minimal            cuba cari dengan tekun set perbezaan yang kecil"
 
-#: src/diff.c:974
+#: src/diff.c:1034
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr "    --horizon-lines=NUM  simpan NUM baris prefix dan suffix sama"
 
-#: src/diff.c:975
+#: src/diff.c:1035
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
 "    --speed-large-files  anggap fail besar dan banyak perubahan kecil "
 "bertaburan"
 
-#: src/diff.c:976
+#: src/diff.c:1036
 msgid ""
 "    --color[=WHEN]       color output; WHEN is 'never', 'always', or "
 "'auto';\n"
 "                           plain --color means --color='auto'"
 msgstr ""
+"    --color[=WHEN]       keluaran warna; WHEN ialah 'never', 'always', atau "
+"'auto';\n"
+"                           hanya --color bermaksud --color='auto'"
 
-#: src/diff.c:978
+#: src/diff.c:1038
 msgid ""
 "    --palette=PALETTE    the colors to use when --color is active; PALETTE "
 "is\n"
 "                           a colon-separated list of terminfo capabilities"
 msgstr ""
+"    --palette=PALETTE    warna untuk digunakan bila --color aktif; PALETTE "
+"adalah\n"
+"                           senarai dipisahkan kolon untuk keupayaan terminfo"
 
-#: src/diff.c:981
+#: src/diff.c:1041
 msgid "    --help               display this help and exit"
 msgstr "    --help               paparkan bantuan ini dan keluar"
 
-#: src/diff.c:982
+#: src/diff.c:1042
 msgid "-v, --version            output version information and exit"
 msgstr "-v, --version            papar maklumat versi dan keluar"
 
-#: src/diff.c:984
+#: src/diff.c:1044
 msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
 "FAIL-FAIL adalah 'FAIL1 FAIL2' atau 'DIR1 DIR2' atau 'DIR FAIL' atau 'FAIL "
 "DIR'."
 
-#: src/diff.c:985
+#: src/diff.c:1045
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr "Jika --from-file atau --to-file diberikan, tiada sekatan ke atas FAIL."
 
-#: src/diff.c:986 src/diff3.c:533 src/sdiff.c:220
+#: src/diff.c:1046 src/diff3.c:531 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
 msgstr "Jika FAIL adalah '-', baca masukan piawai."
 
-#: src/diff.c:996
+#: src/diff.c:1056
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Penggunaan: %s [PILIHAN]... FAIL\n"
 
-#: src/diff.c:997
+#: src/diff.c:1057
 msgid "Compare FILES line by line."
 msgstr "Banding FAIL setiap baris."
 
-#: src/diff.c:1034
+#: src/diff.c:1094
 #, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "nilai pilihan %s bercanggah '%s'"
 
-#: src/diff.c:1047
+#: src/diff.c:1107
 #, c-format
 msgid "conflicting output style options"
 msgstr "pilihan gaya keluaran berkonflik"
 
-#: src/diff.c:1063
+#: src/diff.c:1123
 #, c-format
 msgid "invalid color '%s'"
 msgstr "warna '%s' tidak sah"
 
-#: src/diff.c:1119 src/diff.c:1329
+#: src/diff.c:1197 src/diff.c:1401
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Hanya dalam %s: %s\n"
 
-#: src/diff.c:1253
+#: src/diff.c:1325
 msgid "cannot compare '-' to a directory"
 msgstr "tidak dapat membandingkan '-' kepada direktori"
 
-#: src/diff.c:1288
+#: src/diff.c:1360
 msgid "-D option not supported with directories"
 msgstr "pilihan -D tidak disokong dengan direktori"
 
-#: src/diff.c:1297
+#: src/diff.c:1369
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Subdirektori umum: %s dan %s\n"
 
-#: src/diff.c:1339 src/diff.c:1389
+#: src/diff.c:1411 src/diff.c:1461
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr "Fail %s adalah %s manakala fail %s adalah %s\n"
 
-#: src/diff.c:1375
+#: src/diff.c:1447
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "Pautan simbolik %s dan %s berbeza\n"
 
-#: src/diff.c:1462
+#: src/diff.c:1534
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Fail %s dan %s adalah serupa\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff3.c:43
+#: src/diff3.c:51
 msgid "Randy Smith"
 msgstr "Randy Smith"
 
-#: src/diff3.c:356
+#: src/diff3.c:363
 #, c-format
 msgid "incompatible options"
 msgstr "pilihan tidak sepadan"
 
-#: src/diff3.c:396
+#: src/diff3.c:403
 msgid "'-' specified for more than one input file"
 msgstr "'-' dinyatakan untuk lebih daripada satu fail masukan"
 
-#: src/diff3.c:447 src/diff3.c:1295 src/diff3.c:1698 src/diff3.c:1753
-#: src/sdiff.c:308 src/sdiff.c:846 src/sdiff.c:857
+#: src/diff3.c:445 src/diff3.c:1284 src/diff3.c:1683 src/diff3.c:1738
+#: src/sdiff.c:306 src/sdiff.c:843 src/sdiff.c:854
 msgid "read failed"
 msgstr "gagal membaca"
 
-#: src/diff3.c:480
+#: src/diff3.c:478
 msgid "-A, --show-all              output all changes, bracketing conflicts"
 msgstr ""
 "-A, --show-all              keluarkan semua perubahan, kurungkan konflik"
 
-#: src/diff3.c:482
+#: src/diff3.c:480
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
@@ -1169,11 +1161,11 @@ msgstr ""
 "-e, --ed                    keluarkan skrip ed menggabungkan perubahan\n"
 "                                daripada OLDFILE ke YOURFILE ke dalam MYFILE"
 
-#: src/diff3.c:484
+#: src/diff3.c:482
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
 msgstr "-E, --show-overlap          seperti -e, tetapi kurungkan konflik"
 
-#: src/diff3.c:485
+#: src/diff3.c:483
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
@@ -1181,68 +1173,72 @@ msgstr ""
 "-3, --easy-only             seperti -e, tetapi hanya menggabungkan perubahan "
 "tidak bertindih"
 
-#: src/diff3.c:486
+#: src/diff3.c:484
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
 msgstr ""
 "-x, --overlap-only          seperti -e, tetapi hanya menggabungkan perubahan "
 "bertindih"
 
-#: src/diff3.c:487
+#: src/diff3.c:485
 msgid "-X                          like -x, but bracket conflicts"
 msgstr "-X                          seperti -x, tetapi kurungkan konflik"
 
-#: src/diff3.c:488
+#: src/diff3.c:486
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
 msgstr "-i                          tambah arahan 'w' dan 'q' kepada skrip ed"
 
-#: src/diff3.c:490
+#: src/diff3.c:488
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
 msgstr ""
+"-m, --merge                 keluarkan fail gabungan sebenar, mengikut\n"
+"                                -A jika tiada pilihan lain diberikan"
 
-#: src/diff3.c:493
+#: src/diff3.c:491
 msgid "-a, --text                  treat all files as text"
 msgstr "-a, --text                  layan semua fail sebagai teks"
 
-#: src/diff3.c:494
+#: src/diff3.c:492
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
 msgstr "    --strip-trailing-cr     buang enter penghujung pada masukan"
 
-#: src/diff3.c:495
+#: src/diff3.c:493
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
 msgstr ""
 "-T, --initial-tab           jadikan tab sebaris dengan menambah awalan tab"
 
-#: src/diff3.c:496
+#: src/diff3.c:494
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
 msgstr "    --diff-program=PROGRAM  guna PROGRAM untuk membanding fail"
 
-#: src/diff3.c:497
+#: src/diff3.c:495
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
 msgstr ""
+"-L, --label=LABEL           gunakan LABEL berbanding nama fail\n"
+"                                (boleh diulang sehingga tiga kali)"
 
-#: src/diff3.c:500
+#: src/diff3.c:498
 msgid "    --help                  display this help and exit"
 msgstr "    --help                  paparkan bantuan ini dan keluar"
 
-#: src/diff3.c:501
+#: src/diff3.c:499
 msgid "-v, --version               output version information and exit"
 msgstr "-v, --version                papar maklumat versi dan keluar"
 
-#: src/diff3.c:510
+#: src/diff3.c:508
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
 msgstr "Penggunaan: %s [PILIHAN]... MYFILE OLDFILE YOURFILE\n"
 
-#: src/diff3.c:512
+#: src/diff3.c:510
 msgid "Compare three files line by line."
 msgstr "Banding tiga fail tiap-tiap baris."
 
-#: src/diff3.c:522
+#: src/diff3.c:520
 msgid ""
 "\n"
 "The default output format is a somewhat human-readable representation of\n"
@@ -1255,56 +1251,69 @@ msgid ""
 "and output the actual merged file.  For unusual input, this is more\n"
 "robust than using ed.\n"
 msgstr ""
+"\n"
+"Format keluaran default adalah perwakilan perubahan yang agak boleh dibaca "
+"oleh\n"
+"manusia.\n"
+"\n"
+"Pilihan -e, -E, -x, -X (dan panjang sepadan) menyebabkan skrip ed\n"
+"menjadi keluaran dan bukannya seperti default.\n"
+"\n"
+"Akhirnya, pilihan -m (--merge) menyebabkan diff3 melakukan gabungan secara "
+"dalaman\n"
+"dan mengeluarkan fail gabungan sebenar.  Untuk masukan luar biasa, ini "
+"lebih\n"
+"mantap daripada menggunakan ed.\n"
 
-#: src/diff3.c:534
+#: src/diff3.c:532
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
 msgstr ""
 "Status keluar adalah 0 jika berjaya, 1 jika konflik, 2 jika bermasalah."
 
-#: src/diff3.c:727
+#: src/diff3.c:725
 msgid "internal error: screwup in format of diff blocks"
 msgstr "ralat dalaman: kerosakan dalam format blok diff"
 
-#: src/diff3.c:1022
+#: src/diff3.c:1015
 #, c-format
 msgid "%s: diff failed: "
 msgstr "%s: diff gagal: "
 
-#: src/diff3.c:1044
+#: src/diff3.c:1037
 msgid "internal error: invalid diff type in process_diff"
 msgstr "ralat dalaman: jenis diff tidak sah dalam process_diff"
 
-#: src/diff3.c:1069
+#: src/diff3.c:1060
 msgid "invalid diff format; invalid change separator"
 msgstr "format diff tidak sah; pengasing perbezaan tidak sah"
 
-#: src/diff3.c:1305
+#: src/diff3.c:1294
 msgid "invalid diff format; incomplete last line"
 msgstr "format diff tidak sah; baris akhir tidak lengkap"
 
-#: src/diff3.c:1329 src/sdiff.c:276 src/util.c:969
+#: src/diff3.c:1318 src/sdiff.c:274 src/util.c:1069
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "program subsidiari '%s' tidak dapat dilaksanakan"
 
-#: src/diff3.c:1354
+#: src/diff3.c:1343
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "format diff tidak sah; aksara awal baris tidak betul"
 
-#: src/diff3.c:1427
+#: src/diff3.c:1416
 msgid "internal error: invalid diff type passed to output"
 msgstr "ralat dalaman: jenis diff tidak sah diberikan kepada keluaran"
 
-#: src/diff3.c:1700 src/diff3.c:1757
+#: src/diff3.c:1685 src/diff3.c:1742
 msgid "input file shrank"
 msgstr "fail masukan mengecil"
 
-#: src/dir.c:156
+#: src/dir.c:154
 #, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "tidak dapat membandingkan fail bernama '%s' dan '%s'"
 
-#: src/dir.c:225
+#: src/dir.c:223
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: gelungan direktori berulang"
@@ -1314,125 +1323,125 @@ msgstr "%s: gelungan direktori berulang"
 msgid "Thomas Lord"
 msgstr "Thomas Lord"
 
-#: src/sdiff.c:174
+#: src/sdiff.c:173
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
 msgstr ""
 "-o, --output=FILE            operasi secara interaktif, hantar keluaran ke "
 "FAIL"
 
-#: src/sdiff.c:176
+#: src/sdiff.c:175
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
 msgstr "-i, --ignore-case            anggap huruf besar dan kecil sebagai sama"
 
-#: src/sdiff.c:177
+#: src/sdiff.c:176
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
 msgstr ""
 "-E, --ignore-tab-expansion   abai perubahan diakibatkan oleh pengembangan tab"
 
-#: src/sdiff.c:178
+#: src/sdiff.c:177
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
 msgstr ""
 "-Z, --ignore-trailing-space  abai semua ruang putih pada penghujung baris"
 
-#: src/sdiff.c:179
+#: src/sdiff.c:178
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
 msgstr "-b, --ignore-space-change    abai perubahan dalam jumlah ruang putih"
 
-#: src/sdiff.c:180
+#: src/sdiff.c:179
 msgid "-W, --ignore-all-space       ignore all white space"
 msgstr "-W, --ignore-all-space       abai semua ruang putih"
 
-#: src/sdiff.c:181
+#: src/sdiff.c:180
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
 msgstr ""
 "-B, --ignore-blank-lines     abai perubahan dimana baris adalah kesemuanya "
 "kosong"
 
-#: src/sdiff.c:182
+#: src/sdiff.c:181
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=RE  abai perubahan dimana baris semua sepadan RE"
 
-#: src/sdiff.c:183
+#: src/sdiff.c:182
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
 msgstr "    --strip-trailing-cr      buang enter penghujung pada masukan"
 
-#: src/sdiff.c:184
+#: src/sdiff.c:183
 msgid "-a, --text                   treat all files as text"
 msgstr "-a, --text                   layan semua fail sebagai teks"
 
-#: src/sdiff.c:186
+#: src/sdiff.c:185
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
 msgstr ""
 "-w, --width=NUM              keluarkan paling banyak NUM (default 130) lajur "
 "cetakan"
 
-#: src/sdiff.c:187
+#: src/sdiff.c:186
 msgid ""
 "-l, --left-column            output only the left column of common lines"
 msgstr ""
 "-l, --left-column            keluarkan hanya lajur kiri baris yang sama"
 
-#: src/sdiff.c:188
+#: src/sdiff.c:187
 msgid "-s, --suppress-common-lines  do not output common lines"
 msgstr "-s, --suppress-common-lines  jangan keluarkan baris sama"
 
-#: src/sdiff.c:190
+#: src/sdiff.c:189
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
 msgstr "-t, --expand-tabs            kembang tab kepada ruang dalam keluaran"
 
-#: src/sdiff.c:191
+#: src/sdiff.c:190
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=NUM            hentian tab setiap NUM (default 8) lajur cetakan"
 
-#: src/sdiff.c:193
+#: src/sdiff.c:192
 msgid "-d, --minimal                try hard to find a smaller set of changes"
 msgstr ""
 "-d, --minimal                cuba cari dengan tekun set perbezaan yang kecil"
 
-#: src/sdiff.c:194
+#: src/sdiff.c:193
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
 msgstr ""
 "-H, --speed-large-files      anggap fail besar, banyak perubahan kecil "
 "bertaburan"
 
-#: src/sdiff.c:195
+#: src/sdiff.c:194
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
 msgstr "    --diff-program=PROGRAM   guna PROGRAM untuk membanding fail"
 
-#: src/sdiff.c:197
+#: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
 msgstr "    --help                   paparkan bantuan ini dan keluar"
 
-#: src/sdiff.c:198
+#: src/sdiff.c:197
 msgid "-v, --version                output version information and exit"
 msgstr "-v, --version                papar maklumat versi dan keluar"
 
-#: src/sdiff.c:207
+#: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
 msgstr "Penggunaan: %s [PILIHAN]... FAIL1 FAIL2\n"
 
-#: src/sdiff.c:209
+#: src/sdiff.c:208
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
 msgstr "Gabung bersebelahan bagi perbezaaan antara FAIL1 dan FAIL2."
 
-#: src/sdiff.c:330
+#: src/sdiff.c:328
 msgid "cannot interactively merge standard input"
 msgstr "tidak dapat menggabung masukan piawai secara interaktif"
 
-#: src/sdiff.c:597
+#: src/sdiff.c:594
 msgid "both files to be compared are directories"
 msgstr "kedua-dua fail yang akan dibanding adalah direktori"
 
-#: src/sdiff.c:820
+#: src/sdiff.c:817
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
 "eb:\tEdit then use both versions.\n"
@@ -1457,29 +1466,12 @@ msgstr ""
 "v:\tSertakan baris sama dengan berjela.\n"
 "q:\tKeluar.\n"
 
-#: src/util.c:662
+#: src/util.c:755
 #, c-format
 msgid "unrecognized prefix: %s"
 msgstr "prefix tidak dikenali: %s"
 
-#: src/util.c:692
+#: src/util.c:785
 #, c-format
 msgid "unparsable value for --palette"
-msgstr ""
-
-#, fuzzy, c-format
-#~| msgid "invalid --bytes value `%s'"
-#~ msgid "invalid %s%s argument '%s'"
-#~ msgstr "hujah tidak sah %s bagi %s"
-
-#, fuzzy, c-format
-#~ msgid "invalid suffix in %s%s argument '%s'"
-#~ msgstr "hujah tidak sah %s untuk %s"
-
-#, fuzzy, c-format
-#~ msgid "%s%s argument '%s' too large"
-#~ msgstr "kod bagi token %s terlalu besar"
-
-#, c-format
-#~ msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
-#~ msgstr "Laman web %s: <https://www.gnu.org/software/%s/>\n"
+msgstr "nilai tidak boleh dihuraikan untuk --palette"
index d5dddd8..115e467 100644 (file)
--- a/po/nb.po
+++ b/po/nb.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: diffutils-3.7.41\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2021-08-01 18:56-0700\n"
+"POT-Creation-Date: 2023-05-21 01:51-0700\n"
 "PO-Revision-Date: 2021-07-20 14:10+0200\n"
 "Last-Translator: Johnny A. Solbu <johnny@solbu.net>\n"
 "Language-Team: Norwegian Bokmaal <l10n-no@lister.huftis.org>\n"
@@ -20,29 +20,29 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Generator: Poedit 2.2.3\n"
 
-#: lib/argmatch.c:132
+#: lib/argmatch.c:145
 #, c-format
 msgid "invalid argument %s for %s"
 msgstr "argumentet %s er ugyldig for %s"
 
-#: lib/argmatch.c:133
+#: lib/argmatch.c:146
 #, c-format
 msgid "ambiguous argument %s for %s"
 msgstr "argumentet %s er flertydig for %s"
 
-#: lib/argmatch.c:152 lib/argmatch.h:223
+#: lib/argmatch.c:165 lib/argmatch.h:242
 msgid "Valid arguments are:"
 msgstr "Følgende argumenter kan brukes:"
 
-#: lib/c-stack.c:187
+#: lib/c-stack.c:186
 msgid "program error"
 msgstr "programfeil"
 
-#: lib/c-stack.c:188
+#: lib/c-stack.c:187
 msgid "stack overflow"
 msgstr "stabel er full"
 
-#: lib/error.c:195
+#: lib/error.c:193
 msgid "Unknown system error"
 msgstr "Ukjent systemfeil"
 
@@ -198,83 +198,83 @@ msgstr "%s: valget -- «%c» krever et argument\n"
 #. If you don't know what to put here, please see
 #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:355
+#: lib/quotearg.c:354
 msgid "`"
 msgstr "«"
 
-#: lib/quotearg.c:356
+#: lib/quotearg.c:355
 msgid "'"
 msgstr "»"
 
-#: lib/regcomp.c:135
+#: lib/regcomp.c:122
 msgid "Success"
 msgstr "Fullført"
 
-#: lib/regcomp.c:138
+#: lib/regcomp.c:125
 msgid "No match"
 msgstr "Ingen treff"
 
-#: lib/regcomp.c:141
+#: lib/regcomp.c:128
 msgid "Invalid regular expression"
 msgstr "Ugyldig regulært uttrykk"
 
-#: lib/regcomp.c:144
+#: lib/regcomp.c:131
 msgid "Invalid collation character"
 msgstr "Ugyldig sorteringstegn"
 
-#: lib/regcomp.c:147
+#: lib/regcomp.c:134
 msgid "Invalid character class name"
 msgstr "Ugyldig tegnklassenavn"
 
-#: lib/regcomp.c:150
+#: lib/regcomp.c:137
 msgid "Trailing backslash"
 msgstr "Etterfølgende omvendt skråstrek"
 
-#: lib/regcomp.c:153
+#: lib/regcomp.c:140
 msgid "Invalid back reference"
 msgstr "Ugyldig tilbakereferanse"
 
-#: lib/regcomp.c:156
+#: lib/regcomp.c:143
 msgid "Unmatched [, [^, [:, [., or [="
 msgstr "Ingen treff på «[», «[^», «[:», «[.» eller «[=»"
 
-#: lib/regcomp.c:159
+#: lib/regcomp.c:146
 msgid "Unmatched ( or \\("
 msgstr "Ingen treff på «(» eller «\\(»"
 
-#: lib/regcomp.c:162
+#: lib/regcomp.c:149
 msgid "Unmatched \\{"
 msgstr "Ingen treff på «\\{{»"
 
-#: lib/regcomp.c:165
+#: lib/regcomp.c:152
 msgid "Invalid content of \\{\\}"
 msgstr "Ugyldig innhold i «\\{\\}»"
 
-#: lib/regcomp.c:168
+#: lib/regcomp.c:155
 msgid "Invalid range end"
 msgstr "Ugyldig slutt på rekkevidde"
 
-#: lib/regcomp.c:171
+#: lib/regcomp.c:158
 msgid "Memory exhausted"
 msgstr "Minnet er fullt"
 
-#: lib/regcomp.c:174
+#: lib/regcomp.c:161
 msgid "Invalid preceding regular expression"
 msgstr "Ugyldig foregående regulært uttrykk"
 
-#: lib/regcomp.c:177
+#: lib/regcomp.c:164
 msgid "Premature end of regular expression"
 msgstr "For tidlig slutt på regulært uttrykk"
 
-#: lib/regcomp.c:180
+#: lib/regcomp.c:167
 msgid "Regular expression too big"
 msgstr "Regulært uttrykk er for stort"
 
-#: lib/regcomp.c:183
+#: lib/regcomp.c:170
 msgid "Unmatched ) or \\)"
 msgstr "Ingen treff på «)» eller «\\)»"
 
-#: lib/regcomp.c:676
+#: lib/regcomp.c:650
 msgid "No previous regular expression"
 msgstr "Intet tidligere regulært uttrykk"
 
@@ -472,17 +472,17 @@ msgstr "Nettside for %s: <%s>\n"
 msgid "General help using GNU software: <%s>\n"
 msgstr "Generell hjelp til bruk av GNU-programvare: <%s>\n"
 
-#: src/analyze.c:454 src/diff.c:1406
+#: src/analyze.c:455 src/diff.c:1478
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Filene %s og %s er ulike\n"
 
-#: src/analyze.c:455
+#: src/analyze.c:456
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "Binærfilene %s og %s er ulike\n"
 
-#: src/analyze.c:706 src/diff3.c:1470 src/util.c:1254
+#: src/analyze.c:707 src/diff3.c:1457 src/util.c:1354
 msgid "No newline at end of file"
 msgstr "Intet linjeskift i slutten av fila"
 
@@ -496,41 +496,42 @@ msgstr "Torbjörn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:120 src/diff.c:879 src/diff3.c:467 src/sdiff.c:160
+#: src/cmp.c:124 src/diff.c:939 src/diff3.c:465 src/sdiff.c:159
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Prøv «%s --help» for ytterligere informasjon."
 
-#: src/cmp.c:138
+#: src/cmp.c:142
 #, c-format
 msgid "invalid --ignore-initial value '%s'"
 msgstr "«%s» er en ugyldig verdi for «--ignore-initial»"
 
-#: src/cmp.c:148
+#: src/cmp.c:152
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr "valgene «-l» og «-s» kan ikke brukes samtidig"
 
-#: src/cmp.c:156 src/diff.c:887 src/diff3.c:474 src/sdiff.c:168 src/sdiff.c:316
-#: src/sdiff.c:323 src/sdiff.c:876 src/util.c:852 src/util.c:952 src/util.c:959
+#: src/cmp.c:160 src/diff.c:947 src/diff3.c:472 src/sdiff.c:167 src/sdiff.c:314
+#: src/sdiff.c:321 src/sdiff.c:873 src/util.c:952 src/util.c:1052
+#: src/util.c:1059
 msgid "write failed"
 msgstr "skriving mislyktes"
 
-#: src/cmp.c:158 src/diff.c:889 src/diff.c:1471 src/diff3.c:476 src/sdiff.c:170
+#: src/cmp.c:162 src/diff.c:949 src/diff.c:1543 src/diff3.c:474 src/sdiff.c:169
 msgid "standard output"
 msgstr "standardutdata"
 
-#: src/cmp.c:162
+#: src/cmp.c:166
 msgid "-b, --print-bytes          print differing bytes"
 msgstr "-b, --print-bytes          skriv ut byte som er ulike"
 
-#: src/cmp.c:163
+#: src/cmp.c:167
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
 msgstr ""
 "-i, --ignore-initial=ANT         hopp over første valgt ANTall byte begge "
 "FILer"
 
-#: src/cmp.c:164
+#: src/cmp.c:168
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
@@ -538,38 +539,38 @@ msgstr ""
 "-i, --ignore-initial=ANT1:ANT2  hopp over første valgt ANT1 byte i FIL1 og\n"
 "                                      ANT2 byte i FIL2"
 
-#: src/cmp.c:166
+#: src/cmp.c:170
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
 msgstr ""
 "-l, --verbose              skriv ut byte-nummer og avvikende byte-verdier"
 
-#: src/cmp.c:167
+#: src/cmp.c:171
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
 msgstr "-n, --bytes=ANT          ikke sammenlikn flere enn valgt ANTall byte"
 
-#: src/cmp.c:168
+#: src/cmp.c:172
 msgid "-s, --quiet, --silent      suppress all normal output"
 msgstr "-s, --quiet, --silent      ikke skriv ut vanlig utdata"
 
-#: src/cmp.c:169
+#: src/cmp.c:173
 msgid "    --help                 display this help and exit"
 msgstr "    --help                 vis denne hjelpeteksten og avslutt"
 
-#: src/cmp.c:170
+#: src/cmp.c:174
 msgid "-v, --version              output version information and exit"
 msgstr "-v, --version              skriv ut versjonsinformasjon og avslutt"
 
-#: src/cmp.c:179
+#: src/cmp.c:183
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
 msgstr "Bruk: %s [VALG] … FIL1 [FIL2 [ANT1 [ANT2]]]\n"
 
-#: src/cmp.c:181
+#: src/cmp.c:185
 msgid "Compare two files byte by byte."
 msgstr "Sammenlikn to filer byte for byte."
 
-#: src/cmp.c:183
+#: src/cmp.c:187
 msgid ""
 "The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
 "at the beginning of each file (zero by default)."
@@ -577,14 +578,14 @@ msgstr ""
 "Du kan hoppe over valgfritt ANT1 og ANT2 byte i begynnelsen\n"
 "av henholdsvis første og andre fil (standard er null)."
 
-#: src/cmp.c:186 src/diff.c:999 src/diff3.c:514 src/sdiff.c:211
+#: src/cmp.c:190 src/diff.c:1059 src/diff3.c:512 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
 "Argumenter som er obligatoriske for lange valg, er også obligatoriske for "
 "korte valg.\n"
 
-#: src/cmp.c:192
+#: src/cmp.c:196
 msgid ""
 "SKIP values may be followed by the following multiplicative suffixes:\n"
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
@@ -594,194 +595,194 @@ msgstr ""
 "kB (1000), K (1024), MB (1 000 000), M (1 048 576),\n"
 "GB (1 000 000 000), G (1 073 741 824), og så videre (T, P, E, Z, Y)."
 
-#: src/cmp.c:195
+#: src/cmp.c:199
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "Hvis FIL er tom eller «-», leser programmet standard inndata."
 
-#: src/cmp.c:196 src/diff.c:987 src/sdiff.c:221
+#: src/cmp.c:200 src/diff.c:1047 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr ""
 "Avsluttende status er 0 hvis inndata er like, 1 hvis ulike og 2 hvis det "
 "oppstår problemer."
 
-#: src/cmp.c:243
+#: src/cmp.c:247
 #, c-format
 msgid "invalid --bytes value '%s'"
 msgstr "«%s» er en ugyldig verdi for «--bytes»"
 
-#: src/cmp.c:269 src/diff.c:797 src/diff3.c:361 src/sdiff.c:567
+#: src/cmp.c:273 src/diff.c:857 src/diff3.c:368 src/sdiff.c:564
 #, c-format
 msgid "missing operand after '%s'"
 msgstr "operand mangler etter «%s»"
 
-#: src/cmp.c:281 src/diff.c:799 src/diff3.c:363 src/sdiff.c:569
+#: src/cmp.c:285 src/diff.c:859 src/diff3.c:370 src/sdiff.c:566
 #, c-format
 msgid "extra operand '%s'"
 msgstr "ekstra operand «%s»"
 
-#: src/cmp.c:507
+#: src/cmp.c:521
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s er ulike: byte %s, linje %s\n"
 
-#: src/cmp.c:523
+#: src/cmp.c:537
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
 msgstr "%s %s er ulike: byte %s, linje %s er %3o %s %3o %s\n"
 
-#: src/cmp.c:580
+#: src/cmp.c:594
 #, c-format
 msgid "cmp: EOF on %s which is empty\n"
 msgstr "cmp: EOF på %s, som er tom\n"
 
-#: src/cmp.c:594
+#: src/cmp.c:608
 #, c-format
 msgid "cmp: EOF on %s after byte %s, line %s\n"
 msgstr "cmp: EOF på %s etter byte %s, linje %s\n"
 
-#: src/cmp.c:595
+#: src/cmp.c:609
 #, c-format
 msgid "cmp: EOF on %s after byte %s, in line %s\n"
 msgstr "cmp: EOF på %s etter byte %s, på linje %s\n"
 
-#: src/cmp.c:601
+#: src/cmp.c:615
 #, c-format
 msgid "cmp: EOF on %s after byte %s\n"
 msgstr "cmp: EOF på %s etter byte %s\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:51
+#: src/diff.c:50
 msgid "Paul Eggert"
 msgstr "Paul Eggert"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:52
+#: src/diff.c:51
 msgid "Mike Haertel"
 msgstr "Mike Haertel"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:53
+#: src/diff.c:52
 msgid "David Hayes"
 msgstr "David Hayes"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:54
+#: src/diff.c:53
 msgid "Richard Stallman"
 msgstr "Richard Stallman"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:55
+#: src/diff.c:54
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:355
+#: src/diff.c:365
 #, c-format
 msgid "invalid context length '%s'"
 msgstr "«%s» er en ugyldig kontekstlengde"
 
-#: src/diff.c:438
+#: src/diff.c:487
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "sidedeling støttes ikke på denne verten"
 
-#: src/diff.c:453 src/diff3.c:341
+#: src/diff.c:502 src/diff3.c:348
 #, c-format
 msgid "too many file label options"
 msgstr "for mange filetikett-valg"
 
-#: src/diff.c:530
+#: src/diff.c:579
 #, c-format
 msgid "invalid width '%s'"
 msgstr "«%s» er en ugyldig bredde"
 
-#: src/diff.c:534
+#: src/diff.c:583
 msgid "conflicting width options"
 msgstr "breddevalg i konflikt"
 
-#: src/diff.c:559
+#: src/diff.c:608
 #, c-format
 msgid "invalid horizon length '%s'"
 msgstr "«%s» er en ugyldig horisontlengde"
 
-#: src/diff.c:615
+#: src/diff.c:664
 #, c-format
 msgid "invalid tabsize '%s'"
 msgstr "«%s» er en ugyldig tabulatorstørrelse"
 
-#: src/diff.c:619
+#: src/diff.c:668
 msgid "conflicting tabsize options"
 msgstr "tabulatorvalg i konflikt"
 
-#: src/diff.c:774
+#: src/diff.c:834
 msgid "--from-file and --to-file both specified"
 msgstr "du har valgt både «--from-file» og «--to-file»"
 
-#: src/diff.c:893
+#: src/diff.c:953
 msgid "    --normal                  output a normal diff (the default)"
 msgstr ""
 "    --normal                  skriv ut en normal diff (dette er standard)"
 
-#: src/diff.c:894
+#: src/diff.c:954
 msgid "-q, --brief                   report only when files differ"
 msgstr "-q, --brief                   bare rapporter når filer er ulike"
 
-#: src/diff.c:895
+#: src/diff.c:955
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr "-s, --report-identical-files  rapporter når to filer er like"
 
-#: src/diff.c:896
+#: src/diff.c:956
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
 "-c, -C ANT, --context[=ANT]   skriv ut valgt ANTall linjer med kopiert "
 "kontekst (standard: 3)"
 
-#: src/diff.c:897
+#: src/diff.c:957
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
 "-u, -U ANT, --unified[=ANT]   skriv ut valgt ANTall linjer med sammenslått "
 "kontekst (standard: 3)"
 
-#: src/diff.c:898
+#: src/diff.c:958
 msgid "-e, --ed                      output an ed script"
 msgstr "-e, --ed                      skriv ut et ed-skript"
 
-#: src/diff.c:899
+#: src/diff.c:959
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n, --rcs                     skriv ut diff i RCS-format"
 
-#: src/diff.c:900
+#: src/diff.c:960
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side            skriv ut i to kolonner"
 
-#: src/diff.c:901
+#: src/diff.c:961
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
 "-W, --width=ANT               skriv ut maks valgt ANTall kolonner (standard: "
 "130)"
 
-#: src/diff.c:902
+#: src/diff.c:962
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr ""
 "    --left-column             bare skriv ut venstre kolonne med felles linjer"
 
-#: src/diff.c:903
+#: src/diff.c:963
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "    --suppress-common-lines   ikke skriv ut felles linjer"
 
-#: src/diff.c:905
+#: src/diff.c:965
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr ""
 "-p, --show-c-function         vis hvilken C-funksjon hver endring ligger i"
 
-#: src/diff.c:906
+#: src/diff.c:966
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr "-F, --show-function-line=RE   vis nyeste linje som samsvarer med RE"
 
-#: src/diff.c:907
+#: src/diff.c:967
 msgid ""
 "    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
@@ -790,84 +791,84 @@ msgstr ""
 "tidsstempel\n"
 "                                (dette kan gjentas)"
 
-#: src/diff.c:910
+#: src/diff.c:970
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr ""
 "-t, --expand-tabs             utvid tabulatorer til mellomrom på utskrift"
 
-#: src/diff.c:911
+#: src/diff.c:971
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr ""
 "-T, --initial-tab             still opp tabulatorer ved å legge til en "
 "tabulator først"
 
-#: src/diff.c:912
+#: src/diff.c:972
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=NUM             tabulatorer stopper for hvert valgte "
 "utskriftskolonne-NUMmer (standard: 8)"
 
-#: src/diff.c:913
+#: src/diff.c:973
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
 "    --suppress-blank-empty    ikke skriv ut mellomrom eller tabulator før "
 "tomme linjer"
 
-#: src/diff.c:914
+#: src/diff.c:974
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr "-l, --paginate                del utdata i sider via «pr»"
 
-#: src/diff.c:916
+#: src/diff.c:976
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr "-r, --recursive                 sammenlikn evt. undermapper rekursivt"
 
-#: src/diff.c:917
+#: src/diff.c:977
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr "    --no-dereference            ikke følg symbolske lenker"
 
-#: src/diff.c:918
+#: src/diff.c:978
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr "-N, --new-file                  behandle fraværende filer som tomme"
 
-#: src/diff.c:919
+#: src/diff.c:979
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr "    --unidirectional-new-file   behandle fraværende førstefil som tom"
 
-#: src/diff.c:920
+#: src/diff.c:980
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ""
 "    --ignore-file-name-case     skill mellom store og små bokstaver ved "
 "sammenlikning av filnavn"
 
-#: src/diff.c:921
+#: src/diff.c:981
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
 "    --no-ignore-file-name-case  skill mellom store og små bokstaver ved "
 "sammenlikning av filnavn"
 
-#: src/diff.c:922
+#: src/diff.c:982
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr ""
 "-x, --exclude=MØN               utelat filer som samsvarer med valgt MØNster"
 
-#: src/diff.c:923
+#: src/diff.c:983
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
 "-X, --exclude-from=FIL         utelat filer som samsvarer med mønster(e) i "
 "valgt FIL"
 
-#: src/diff.c:924
+#: src/diff.c:984
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
 "-S, --starting-file=FIL        begynn med valgt FIL ved sammenlikning av "
 "mapper"
 
-#: src/diff.c:925
+#: src/diff.c:985
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
@@ -875,7 +876,7 @@ msgstr ""
 "    --from-file=FIL1           sammenlikn FIL1 med alle operand-er\n"
 "                                  (FIL1 kan være en mappe)"
 
-#: src/diff.c:927
+#: src/diff.c:987
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
@@ -883,78 +884,78 @@ msgstr ""
 "    --to-file=FIL2             sammenlikn alle operand-er med FIL2\n"
 "                                  (FIL2 kan være en mappe)"
 
-#: src/diff.c:930
+#: src/diff.c:990
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr ""
 "-i, --ignore-case               ikke skill mellom små og store bokstaver i "
 "fil-innhold"
 
-#: src/diff.c:931
+#: src/diff.c:991
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr ""
 "-E, --ignore-tab-expansion      ignorer endringer som skyldes tabulator-"
 "utvidelse"
 
-#: src/diff.c:932
+#: src/diff.c:992
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr "-Z, --ignore-trailing-space     ignorer blanktegn i slutten av linjer"
 
-#: src/diff.c:933
+#: src/diff.c:993
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr "-b, --ignore-space-change       ignorer endringer i antall blanktegn"
 
-#: src/diff.c:934
+#: src/diff.c:994
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w, --ignore-all-space          ignorer alle blanktegn"
 
-#: src/diff.c:935
+#: src/diff.c:995
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr ""
 "-B, --ignore-blank-lines        ignorer endringer når alle linjer er tomme"
 
-#: src/diff.c:936
+#: src/diff.c:996
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=RE  ignorer endringer når alle linjer samsvarer "
 "med RE"
 
-#: src/diff.c:938
+#: src/diff.c:998
 msgid "-a, --text                      treat all files as text"
 msgstr "-a, --text                      behandle filer som tekst"
 
-#: src/diff.c:939
+#: src/diff.c:999
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr         fjern etterfølgende linjeskift-tegn fra "
 "inndata"
 
-#: src/diff.c:941
+#: src/diff.c:1001
 msgid "    --binary                    read and write data in binary mode"
 msgstr "    --binary                    les og skriv data i binærmodus"
 
-#: src/diff.c:944
+#: src/diff.c:1004
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
 "-D, --ifdef=NAVN                skriv ut sammenslått fil med ulikheter i "
 "«#ifdef NAVN»"
 
-#: src/diff.c:945
+#: src/diff.c:1005
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr "    --GTYPE-group-format=GFMT   formater GTYPE-inndatagrupper med GFMT"
 
-#: src/diff.c:946
+#: src/diff.c:1006
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr "    --line-format=LFMT          formater inndatalinjer med LFMT"
 
-#: src/diff.c:947
+#: src/diff.c:1007
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr "    --LTYPE-line-format=LFMT    formater LTYPE-inndatalinjer med LFMT"
 
-#: src/diff.c:948
+#: src/diff.c:1008
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
@@ -962,13 +963,13 @@ msgstr ""
 "  Disse formatvalgene gjør det mulig å detaljstyre utdata\n"
 "    fra diff, og generaliserer -D/--ifdef."
 
-#: src/diff.c:950
+#: src/diff.c:1010
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
 "  LTYPE er enten «old», «new» eller «unchanged». GTYPE er enten LTYPE eller "
 "«changed»."
 
-#: src/diff.c:951
+#: src/diff.c:1011
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -998,7 +999,7 @@ msgstr ""
 "        M  L+1\n"
 "    %(A=B?T:E)  hvis A er lik B, så T eller E"
 
-#: src/diff.c:963
+#: src/diff.c:1023
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -1011,7 +1012,7 @@ msgstr ""
 "    %[-][BREDDE][.[PREC]]{doxX}n  spesifikasjon av inndata-linjenummer i "
 "printf-stil"
 
-#: src/diff.c:967
+#: src/diff.c:1027
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1025,21 +1026,21 @@ msgstr ""
 "    %c'\\OOO'  tegnet med oktalkode OOO\n"
 "    C    tegnet C (andre tegn representerer seg selv)"
 
-#: src/diff.c:973
+#: src/diff.c:1033
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr "-d, --minimal            prøv hardt å finne en mindre rekke endringer"
 
-#: src/diff.c:974
+#: src/diff.c:1034
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr ""
 "    --horizon-lines=ANT  behold valgt ANTall linjer av felles pre- og suffiks"
 
-#: src/diff.c:975
+#: src/diff.c:1035
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr "    --speed-large-files  forvent store filer og små, spredte endringer"
 
-#: src/diff.c:976
+#: src/diff.c:1036
 msgid ""
 "    --color[=WHEN]       color output; WHEN is 'never', 'always', or "
 "'auto';\n"
@@ -1049,7 +1050,7 @@ msgstr ""
 "eller\n"
 "                           «auto»; kun --color betyr --color=«auto»"
 
-#: src/diff.c:978
+#: src/diff.c:1038
 msgid ""
 "    --palette=PALETTE    the colors to use when --color is active; PALETTE "
 "is\n"
@@ -1059,112 +1060,112 @@ msgstr ""
 "                           PALETT er en kolon-delt liste over terminfo-"
 "muligheter"
 
-#: src/diff.c:981
+#: src/diff.c:1041
 msgid "    --help               display this help and exit"
 msgstr "    --help               vis denne hjelpeteksten og avslutt"
 
-#: src/diff.c:982
+#: src/diff.c:1042
 msgid "-v, --version            output version information and exit"
 msgstr "-v, --version            vis versjonsinformasjon og avslutt"
 
-#: src/diff.c:984
+#: src/diff.c:1044
 msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr "FILER er «FIL1 FIL2», «MAPPE1 MAPPE2», «MAPPE FIL» eller «FIL MAPPE»."
 
-#: src/diff.c:985
+#: src/diff.c:1045
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr ""
 "Programmet bruker ingen restriksjoner på FIL(er) hvis «--from-file» eller «--"
 "to-file» er valgt."
 
-#: src/diff.c:986 src/diff3.c:533 src/sdiff.c:220
+#: src/diff.c:1046 src/diff3.c:531 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
 msgstr "Programmet leser fra standard inndata hvis FIL er «-»."
 
-#: src/diff.c:996
+#: src/diff.c:1056
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Bruk: %s [VALG] … FILER\n"
 
-#: src/diff.c:997
+#: src/diff.c:1057
 msgid "Compare FILES line by line."
 msgstr "Sammenlikn FILER linje for linje."
 
-#: src/diff.c:1034
+#: src/diff.c:1094
 #, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "valget %s er i konflikt med verdien «%s»"
 
-#: src/diff.c:1047
+#: src/diff.c:1107
 #, c-format
 msgid "conflicting output style options"
 msgstr "utdata-stilvalg er i konflikt med hverandre"
 
-#: src/diff.c:1063
+#: src/diff.c:1123
 #, c-format
 msgid "invalid color '%s'"
 msgstr "«%s» er en ugyldig farge"
 
-#: src/diff.c:1119 src/diff.c:1329
+#: src/diff.c:1197 src/diff.c:1401
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Bare i %s: %s\n"
 
-#: src/diff.c:1253
+#: src/diff.c:1325
 msgid "cannot compare '-' to a directory"
 msgstr "du kan ikke sammenlikne «-» med en mappe"
 
-#: src/diff.c:1288
+#: src/diff.c:1360
 msgid "-D option not supported with directories"
 msgstr "valget «-D» støttes ikke for mapper"
 
-#: src/diff.c:1297
+#: src/diff.c:1369
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Felles undermapper: %s og %s\n"
 
-#: src/diff.c:1339 src/diff.c:1389
+#: src/diff.c:1411 src/diff.c:1461
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr "Fila %s er en %s, og fila %s er en %s\n"
 
-#: src/diff.c:1375
+#: src/diff.c:1447
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "De symbolske lenkene %s og %s er ulike\n"
 
-#: src/diff.c:1462
+#: src/diff.c:1534
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Filene %s og %s er identiske\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff3.c:43
+#: src/diff3.c:51
 msgid "Randy Smith"
 msgstr "Randy Smith"
 
-#: src/diff3.c:356
+#: src/diff3.c:363
 #, c-format
 msgid "incompatible options"
 msgstr "gjeldende valg kan ikke brukes samtidig"
 
-#: src/diff3.c:396
+#: src/diff3.c:403
 msgid "'-' specified for more than one input file"
 msgstr "«-» er valgt for flere enn én inndatafil"
 
-#: src/diff3.c:447 src/diff3.c:1295 src/diff3.c:1698 src/diff3.c:1753
-#: src/sdiff.c:308 src/sdiff.c:846 src/sdiff.c:857
+#: src/diff3.c:445 src/diff3.c:1284 src/diff3.c:1683 src/diff3.c:1738
+#: src/sdiff.c:306 src/sdiff.c:843 src/sdiff.c:854
 msgid "read failed"
 msgstr "lesing mislyktes"
 
-#: src/diff3.c:480
+#: src/diff3.c:478
 msgid "-A, --show-all              output all changes, bracketing conflicts"
 msgstr ""
 "-A, --show-all              skriv ut alle endringer, med konflikter i "
 "parentes"
 
-#: src/diff3.c:482
+#: src/diff3.c:480
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
@@ -1172,12 +1173,12 @@ msgstr ""
 "-e, --ed                    skriv ut ed-skript med endringer\n"
 "                                mellom GAMMELFIL og NYFIL til FIL"
 
-#: src/diff3.c:484
+#: src/diff3.c:482
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
 msgstr ""
 "-E, --show-overlap          likner «-e», men viser konflikter i parentes"
 
-#: src/diff3.c:485
+#: src/diff3.c:483
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
@@ -1185,24 +1186,24 @@ msgstr ""
 "-3, --easy-only             likner «-e», men tar ikke med endringer som "
 "overlapper hverandre"
 
-#: src/diff3.c:486
+#: src/diff3.c:484
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
 msgstr ""
 "-x, --overlap-only          likner «-e», men tar bare med endringer som "
 "overlapper hverandre"
 
-#: src/diff3.c:487
+#: src/diff3.c:485
 msgid "-X                          like -x, but bracket conflicts"
 msgstr ""
 "-X                          likner «-x», men viser også konflikter i parentes"
 
-#: src/diff3.c:488
+#: src/diff3.c:486
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
 msgstr ""
 "-i                          legg til kommandoene «w» og «q» i ed-skript"
 
-#: src/diff3.c:490
+#: src/diff3.c:488
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
@@ -1210,26 +1211,26 @@ msgstr ""
 "-m, --merge                 skriv ut sammenslått fil ihht. «-A»,\n"
 "                                med mindre noe annet er valgt"
 
-#: src/diff3.c:493
+#: src/diff3.c:491
 msgid "-a, --text                  treat all files as text"
 msgstr "-a, --text                  behandle filer som tekst"
 
-#: src/diff3.c:494
+#: src/diff3.c:492
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr     fjern etterfølgende linjeskift-tegn fra inndata"
 
-#: src/diff3.c:495
+#: src/diff3.c:493
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
 msgstr ""
 "-T, --initial-tab           still opp tabulatorer på rekke ved å legge til "
 "en ekstra tab foran"
 
-#: src/diff3.c:496
+#: src/diff3.c:494
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
 msgstr "    --diff-program=PROGRAM  bruk valgt PROGRAM til å sammenlikne filer"
 
-#: src/diff3.c:497
+#: src/diff3.c:495
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
@@ -1237,24 +1238,24 @@ msgstr ""
 "-L, --label=ETIKETT           bruk valgt ETIKETT i stedet for filnavn\n"
 "                                (dette kan gjentas opptil tre ganger)"
 
-#: src/diff3.c:500
+#: src/diff3.c:498
 msgid "    --help                  display this help and exit"
 msgstr "    --help                  vis denne hjelpeteksten og avslutt"
 
-#: src/diff3.c:501
+#: src/diff3.c:499
 msgid "-v, --version               output version information and exit"
 msgstr "-v, --version               vis versjonsinformasjon og avslutt"
 
-#: src/diff3.c:510
+#: src/diff3.c:508
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
 msgstr "Usage: %s [VALG] … FIL GAMMELFIL NYFIL\n"
 
-#: src/diff3.c:512
+#: src/diff3.c:510
 msgid "Compare three files line by line."
 msgstr "Sammenlikn tre filer, linje for linje."
 
-#: src/diff3.c:522
+#: src/diff3.c:520
 msgid ""
 "\n"
 "The default output format is a somewhat human-readable representation of\n"
@@ -1278,56 +1279,56 @@ msgstr ""
 "og skrive ut sammenslått fil. Dette er sikrere for behandling av\n"
 "uvanlig inndata enn å bruke ed.\n"
 
-#: src/diff3.c:534
+#: src/diff3.c:532
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
 msgstr ""
 "Avsluttende status er 0 hvis alt er i orden, 1 ved konflikter og 2 ved "
 "problemer."
 
-#: src/diff3.c:727
+#: src/diff3.c:725
 msgid "internal error: screwup in format of diff blocks"
 msgstr "intern feil: rot i diff-blokkformat"
 
-#: src/diff3.c:1022
+#: src/diff3.c:1015
 #, c-format
 msgid "%s: diff failed: "
 msgstr "%s: diff mislyktes: "
 
-#: src/diff3.c:1044
+#: src/diff3.c:1037
 msgid "internal error: invalid diff type in process_diff"
 msgstr "intern feil: ugyldig diff-type i process_diff"
 
-#: src/diff3.c:1069
+#: src/diff3.c:1060
 msgid "invalid diff format; invalid change separator"
 msgstr "ugyldig diff-format. Ugyldig endringsskilletegn"
 
-#: src/diff3.c:1305
+#: src/diff3.c:1294
 msgid "invalid diff format; incomplete last line"
 msgstr "ugyldig diff-format. Siste linje er ufullstendig"
 
-#: src/diff3.c:1329 src/sdiff.c:276 src/util.c:969
+#: src/diff3.c:1318 src/sdiff.c:274 src/util.c:1069
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "klarte ikke å starte hjelpeprogrammet «%s»"
 
-#: src/diff3.c:1354
+#: src/diff3.c:1343
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "ugyldig diff-format. Feil ledende linjetegn"
 
-#: src/diff3.c:1427
+#: src/diff3.c:1416
 msgid "internal error: invalid diff type passed to output"
 msgstr "intern feil: ugyldig diff-type sendt til utdata"
 
-#: src/diff3.c:1700 src/diff3.c:1757
+#: src/diff3.c:1685 src/diff3.c:1742
 msgid "input file shrank"
 msgstr "inndata-fila er krympet"
 
-#: src/dir.c:156
+#: src/dir.c:154
 #, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "klarte ikke å sammenlikne filnavn «%s» med «%s»"
 
-#: src/dir.c:225
+#: src/dir.c:223
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: rekursiv mappesløyfe"
@@ -1337,125 +1338,125 @@ msgstr "%s: rekursiv mappesløyfe"
 msgid "Thomas Lord"
 msgstr "Thomas Lord"
 
-#: src/sdiff.c:174
+#: src/sdiff.c:173
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
 msgstr "-o, --output=FIL            jobb interaktivt, og send utdata til FIL"
 
-#: src/sdiff.c:176
+#: src/sdiff.c:175
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
 msgstr "-i, --ignore-case            ikke skill mellom store og små bokstaver"
 
-#: src/sdiff.c:177
+#: src/sdiff.c:176
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
 msgstr ""
 "-E, --ignore-tab-expansion   ikke regn tabulator-forskjeller som endringer"
 
-#: src/sdiff.c:178
+#: src/sdiff.c:177
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
 msgstr "-Z, --ignore-trailing-space  ignorer blanktegn i slutten av linjer"
 
-#: src/sdiff.c:179
+#: src/sdiff.c:178
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
 msgstr ""
 "-b, --ignore-space-change    ikke regn ulikt antall blanktegn som endringer"
 
-#: src/sdiff.c:180
+#: src/sdiff.c:179
 msgid "-W, --ignore-all-space       ignore all white space"
 msgstr "-W, --ignore-all-space       ignorer alle blanktegn"
 
-#: src/sdiff.c:181
+#: src/sdiff.c:180
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
 msgstr ""
 "-B, --ignore-blank-lines     ignorer endringer hvis linjer er fullstendig "
 "tomme"
 
-#: src/sdiff.c:182
+#: src/sdiff.c:181
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=RE  ignorer endringer hvis linjer samsvarer med "
 "RE"
 
-#: src/sdiff.c:183
+#: src/sdiff.c:182
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr      fjern etterfølgende linjeskift-tegn fra inndata"
 
-#: src/sdiff.c:184
+#: src/sdiff.c:183
 msgid "-a, --text                   treat all files as text"
 msgstr "-a, --text                   behandle filer som tekst"
 
-#: src/sdiff.c:186
+#: src/sdiff.c:185
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
 msgstr ""
 "-w, --width=ANT              ikke skriv ut flere enn valgt ANTall kolonner "
 "(standard: 130)"
 
-#: src/sdiff.c:187
+#: src/sdiff.c:186
 msgid ""
 "-l, --left-column            output only the left column of common lines"
 msgstr ""
 "-l, --left-column            bare skriv ut venstre kolonne med felles linjer"
 
-#: src/sdiff.c:188
+#: src/sdiff.c:187
 msgid "-s, --suppress-common-lines  do not output common lines"
 msgstr "-s, --suppress-common-lines  ikke skriv ut felles linjer"
 
-#: src/sdiff.c:190
+#: src/sdiff.c:189
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
 msgstr "-t, --expand-tabs            utvid tabulatorer til mellomrom i utdata"
 
-#: src/sdiff.c:191
+#: src/sdiff.c:190
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=NUM            tabulatorer slutter ved hvert valgte "
 "kolonneNUMmer (standard: 8)"
 
-#: src/sdiff.c:193
+#: src/sdiff.c:192
 msgid "-d, --minimal                try hard to find a smaller set of changes"
 msgstr "-d, --minimal                prøv hardt å finne små endringer"
 
-#: src/sdiff.c:194
+#: src/sdiff.c:193
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
 msgstr ""
 "-H, --speed-large-files      forvent store filer med små, spredte endringer"
 
-#: src/sdiff.c:195
+#: src/sdiff.c:194
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
 msgstr ""
 "    --diff-program=PROGRAM   bruk valgt PROGRAM til å sammenlikne filer"
 
-#: src/sdiff.c:197
+#: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
 msgstr "    --help                   vis denne hjelpeteksten og avslutt"
 
-#: src/sdiff.c:198
+#: src/sdiff.c:197
 msgid "-v, --version                output version information and exit"
 msgstr "-v, --version                vis versjonsinformasjon og avslutt"
 
-#: src/sdiff.c:207
+#: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
 msgstr "Bruk: %s [VALG] … FIL1 FIL2\n"
 
-#: src/sdiff.c:209
+#: src/sdiff.c:208
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
 msgstr "Sammenslåing av forskjeller mellom FIL1 og FIL2, side ved side."
 
-#: src/sdiff.c:330
+#: src/sdiff.c:328
 msgid "cannot interactively merge standard input"
 msgstr "du kan ikke slå sammen standard inndata interaktivt"
 
-#: src/sdiff.c:597
+#: src/sdiff.c:594
 msgid "both files to be compared are directories"
 msgstr "begge filer som skal sammenliknes er mapper"
 
-#: src/sdiff.c:820
+#: src/sdiff.c:817
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
 "eb:\tEdit then use both versions.\n"
@@ -1479,12 +1480,12 @@ msgstr ""
 "v:\tTa med felles linjer og gi beskjed.\n"
 "q:\tAvslutt.\n"
 
-#: src/util.c:662
+#: src/util.c:755
 #, c-format
 msgid "unrecognized prefix: %s"
 msgstr "ukjent prefiks: %s"
 
-#: src/util.c:692
+#: src/util.c:785
 #, c-format
 msgid "unparsable value for --palette"
 msgstr "«--palette» har uforståelig verdi"
index bac316f..8dcf134 100644 (file)
--- a/po/nl.po
+++ b/po/nl.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: diffutils-3.7.41\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2021-08-01 18:56-0700\n"
+"POT-Creation-Date: 2023-05-21 01:51-0700\n"
 "PO-Revision-Date: 2021-07-22 09:32+0200\n"
 "Last-Translator: Benno Schulenberg <vertaling@coevern.nl>\n"
 "Language-Team: Dutch <vertaling@vrijschrift.org>\n"
@@ -21,29 +21,29 @@ msgstr ""
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: lib/argmatch.c:132
+#: lib/argmatch.c:145
 #, c-format
 msgid "invalid argument %s for %s"
 msgstr "ongeldig argument %s van %s"
 
-#: lib/argmatch.c:133
+#: lib/argmatch.c:146
 #, c-format
 msgid "ambiguous argument %s for %s"
 msgstr "argument %s van %s is niet eenduidig"
 
-#: lib/argmatch.c:152 lib/argmatch.h:223
+#: lib/argmatch.c:165 lib/argmatch.h:242
 msgid "Valid arguments are:"
 msgstr "Geldige argumenten zijn:"
 
-#: lib/c-stack.c:187
+#: lib/c-stack.c:186
 msgid "program error"
 msgstr "programmafout"
 
-#: lib/c-stack.c:188
+#: lib/c-stack.c:187
 msgid "stack overflow"
 msgstr "stack-overloop"
 
-#: lib/error.c:195
+#: lib/error.c:193
 msgid "Unknown system error"
 msgstr "Onbekende systeemfout"
 
@@ -199,84 +199,84 @@ msgstr "%s: optie vereist een argument -- '%c'\n"
 #. If you don't know what to put here, please see
 #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:355
+#: lib/quotearg.c:354
 msgid "`"
 msgstr "‘"
 
-#: lib/quotearg.c:356
+#: lib/quotearg.c:355
 msgid "'"
 msgstr "’"
 
-#: lib/regcomp.c:135
+#: lib/regcomp.c:122
 msgid "Success"
 msgstr "Gelukt"
 
-#: lib/regcomp.c:138
+#: lib/regcomp.c:125
 msgid "No match"
 msgstr "Geen overeenkomsten"
 
-#: lib/regcomp.c:141
+#: lib/regcomp.c:128
 msgid "Invalid regular expression"
 msgstr "Ongeldige reguliere expressie"
 
 # Zie http://mailman.vrijschrift.org/pipermail/vertaling/2005-August/004670.html
-#: lib/regcomp.c:144
+#: lib/regcomp.c:131
 msgid "Invalid collation character"
 msgstr "Ongeldig samengesteld teken"
 
-#: lib/regcomp.c:147
+#: lib/regcomp.c:134
 msgid "Invalid character class name"
 msgstr "Ongeldige tekenklassenaam"
 
-#: lib/regcomp.c:150
+#: lib/regcomp.c:137
 msgid "Trailing backslash"
 msgstr "Backslash aan het eind"
 
-#: lib/regcomp.c:153
+#: lib/regcomp.c:140
 msgid "Invalid back reference"
 msgstr "Ongeldige terugverwijzing"
 
-#: lib/regcomp.c:156
+#: lib/regcomp.c:143
 msgid "Unmatched [, [^, [:, [., or [="
 msgstr "Ongepaarde [, [^, [:, [., of [="
 
-#: lib/regcomp.c:159
+#: lib/regcomp.c:146
 msgid "Unmatched ( or \\("
 msgstr "Ongepaarde ( of \\("
 
-#: lib/regcomp.c:162
+#: lib/regcomp.c:149
 msgid "Unmatched \\{"
 msgstr "Ongepaarde \\{"
 
-#: lib/regcomp.c:165
+#: lib/regcomp.c:152
 msgid "Invalid content of \\{\\}"
 msgstr "Ongeldige inhoud van \\{\\}"
 
-#: lib/regcomp.c:168
+#: lib/regcomp.c:155
 msgid "Invalid range end"
 msgstr "Ongeldig bereikeinde"
 
-#: lib/regcomp.c:171
+#: lib/regcomp.c:158
 msgid "Memory exhausted"
 msgstr "Onvoldoende geheugen beschikbaar"
 
-#: lib/regcomp.c:174
+#: lib/regcomp.c:161
 msgid "Invalid preceding regular expression"
 msgstr "Ongeldige voorafgaande reguliere expressie"
 
-#: lib/regcomp.c:177
+#: lib/regcomp.c:164
 msgid "Premature end of regular expression"
 msgstr "Voortijdig einde van reguliere expressie"
 
-#: lib/regcomp.c:180
+#: lib/regcomp.c:167
 msgid "Regular expression too big"
 msgstr "Reguliere expressie is te groot"
 
-#: lib/regcomp.c:183
+#: lib/regcomp.c:170
 msgid "Unmatched ) or \\)"
 msgstr "Ongepaarde ) of \\)"
 
-#: lib/regcomp.c:676
+#: lib/regcomp.c:650
 msgid "No previous regular expression"
 msgstr "Geen eerdere reguliere expressie"
 
@@ -477,17 +477,17 @@ msgstr "Webpagina van %s: <%s>\n"
 msgid "General help using GNU software: <%s>\n"
 msgstr "Algemene hulp bij gebruik van GNU-software: <%s>\n"
 
-#: src/analyze.c:454 src/diff.c:1406
+#: src/analyze.c:455 src/diff.c:1478
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Bestanden %s en %s zijn verschillend\n"
 
-#: src/analyze.c:455
+#: src/analyze.c:456
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "Binaire bestanden %s en %s zijn verschillend\n"
 
-#: src/analyze.c:706 src/diff3.c:1470 src/util.c:1254
+#: src/analyze.c:707 src/diff3.c:1457 src/util.c:1354
 msgid "No newline at end of file"
 msgstr "Geen regeleindeteken (LF) aan einde van bestand"
 
@@ -501,41 +501,42 @@ msgstr "Torbjörn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:120 src/diff.c:879 src/diff3.c:467 src/sdiff.c:160
+#: src/cmp.c:124 src/diff.c:939 src/diff3.c:465 src/sdiff.c:159
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Typ '%s --help' voor meer informatie."
 
-#: src/cmp.c:138
+#: src/cmp.c:142
 #, c-format
 msgid "invalid --ignore-initial value '%s'"
 msgstr "ongeldige waarde '%s' voor '--ignore-initial'"
 
-#: src/cmp.c:148
+#: src/cmp.c:152
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr "opties '-l' en '-s' gaan niet samen"
 
-#: src/cmp.c:156 src/diff.c:887 src/diff3.c:474 src/sdiff.c:168 src/sdiff.c:316
-#: src/sdiff.c:323 src/sdiff.c:876 src/util.c:852 src/util.c:952 src/util.c:959
+#: src/cmp.c:160 src/diff.c:947 src/diff3.c:472 src/sdiff.c:167 src/sdiff.c:314
+#: src/sdiff.c:321 src/sdiff.c:873 src/util.c:952 src/util.c:1052
+#: src/util.c:1059
 msgid "write failed"
 msgstr "schrijven is mislukt"
 
-#: src/cmp.c:158 src/diff.c:889 src/diff.c:1471 src/diff3.c:476 src/sdiff.c:170
+#: src/cmp.c:162 src/diff.c:949 src/diff.c:1543 src/diff3.c:474 src/sdiff.c:169
 msgid "standard output"
 msgstr "standaarduitvoer"
 
-#: src/cmp.c:162
+#: src/cmp.c:166
 msgid "-b, --print-bytes          print differing bytes"
 msgstr "-b, --print-bytes        de bytes tonen die verschillen"
 
-#: src/cmp.c:163
+#: src/cmp.c:167
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
 msgstr ""
 "-i, --ignore-initial=OVERSLAAN    de eerste OVERSLAAN bytes van\n"
 "                                    beide invoeren overslaan"
 
-#: src/cmp.c:164
+#: src/cmp.c:168
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
@@ -543,41 +544,41 @@ msgstr ""
 "-i, --ignore-initial=OVS1:OVS2    de eerste OVS1 bytes van BESTAND1 en de\n"
 "                                    eerste OVS2 bytes van BESTAND2 overslaan"
 
-#: src/cmp.c:166
+#: src/cmp.c:170
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
 msgstr ""
 "-l, --verbose            bytenummers en -waarden tonen van bytes die "
 "verschillen"
 
-#: src/cmp.c:167
+#: src/cmp.c:171
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
 msgstr "-n, --bytes=AANTAL       maximaal dit AANTAL bytes vergelijken"
 
-#: src/cmp.c:168
+#: src/cmp.c:172
 msgid "-s, --quiet, --silent      suppress all normal output"
 msgstr "-s, --quiet, --silent    alle gewone uitvoer onderdrukken"
 
-#: src/cmp.c:169
+#: src/cmp.c:173
 msgid "    --help                 display this help and exit"
 msgstr "    --help               deze hulptekst tonen en stoppen"
 
-#: src/cmp.c:170
+#: src/cmp.c:174
 msgid "-v, --version              output version information and exit"
 msgstr "-v, --version            programmaversie tonen en stoppen"
 
-#: src/cmp.c:179
+#: src/cmp.c:183
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
 msgstr ""
 "Gebruik:  %s [OPTIE...] BESTAND1 [BESTAND2 [OVERSLAAN1 [OVERSLAAN2]]]\n"
 "\n"
 
-#: src/cmp.c:181
+#: src/cmp.c:185
 msgid "Compare two files byte by byte."
 msgstr "Twee bestanden byte-voor-byte vergelijken."
 
-#: src/cmp.c:183
+#: src/cmp.c:187
 msgid ""
 "The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
 "at the beginning of each file (zero by default)."
@@ -586,14 +587,14 @@ msgstr ""
 "dat\n"
 "aan het begin van elk bestand moet worden overgeslagen (standaard nul)."
 
-#: src/cmp.c:186 src/diff.c:999 src/diff3.c:514 src/sdiff.c:211
+#: src/cmp.c:190 src/diff.c:1059 src/diff3.c:512 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
 "(Een verplicht argument bij een lange optie geldt ook voor de korte vorm.)\n"
 "\n"
 
-#: src/cmp.c:192
+#: src/cmp.c:196
 msgid ""
 "SKIP values may be followed by the following multiplicative suffixes:\n"
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
@@ -604,195 +605,195 @@ msgstr ""
 "  kB 1000,  K 1024,  MB 1.000.000,  M 1.048.576,\n"
 "  GB 1.000.000.000,  G 1.073.741.824,  enzovoort voor T, P, E, Z, Y."
 
-#: src/cmp.c:195
+#: src/cmp.c:199
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr ""
 "Als een BESTAND ontbreekt of '-' is, wordt er van standaardinvoer gelezen."
 
-#: src/cmp.c:196 src/diff.c:987 src/sdiff.c:221
+#: src/cmp.c:200 src/diff.c:1047 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr ""
 "De afsluitwaarde is 0 als de invoeren gelijk zijn, 1 als ze verschillen,\n"
 "en 2 bij problemen."
 
-#: src/cmp.c:243
+#: src/cmp.c:247
 #, c-format
 msgid "invalid --bytes value '%s'"
 msgstr "ongeldige waarde '%s' voor '--bytes'"
 
-#: src/cmp.c:269 src/diff.c:797 src/diff3.c:361 src/sdiff.c:567
+#: src/cmp.c:273 src/diff.c:857 src/diff3.c:368 src/sdiff.c:564
 #, c-format
 msgid "missing operand after '%s'"
 msgstr "ontbrekend argument na '%s'"
 
-#: src/cmp.c:281 src/diff.c:799 src/diff3.c:363 src/sdiff.c:569
+#: src/cmp.c:285 src/diff.c:859 src/diff3.c:370 src/sdiff.c:566
 #, c-format
 msgid "extra operand '%s'"
 msgstr "overtollig argument '%s'"
 
-#: src/cmp.c:507
+#: src/cmp.c:521
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s verschillen: byte %s, regel %s\n"
 
-#: src/cmp.c:523
+#: src/cmp.c:537
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
 msgstr "%s %s verschillen: byte %s, regel %s, is %3o %s %3o %s\n"
 
-#: src/cmp.c:580
+#: src/cmp.c:594
 #, c-format
 msgid "cmp: EOF on %s which is empty\n"
 msgstr "cmp: einde-van-bestand in %s dat leeg is\n"
 
-#: src/cmp.c:594
+#: src/cmp.c:608
 #, c-format
 msgid "cmp: EOF on %s after byte %s, line %s\n"
 msgstr "cmp: einde-van-bestand in %s na byte %s, regel %s\n"
 
-#: src/cmp.c:595
+#: src/cmp.c:609
 #, c-format
 msgid "cmp: EOF on %s after byte %s, in line %s\n"
 msgstr "cmp: einde-van-bestand in %s na byte %s, in regel %s\n"
 
-#: src/cmp.c:601
+#: src/cmp.c:615
 #, c-format
 msgid "cmp: EOF on %s after byte %s\n"
 msgstr "cmp: einde-van-bestand in %s na byte %s\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:51
+#: src/diff.c:50
 msgid "Paul Eggert"
 msgstr "Paul Eggert"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:52
+#: src/diff.c:51
 msgid "Mike Haertel"
 msgstr "Mike Haertel"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:53
+#: src/diff.c:52
 msgid "David Hayes"
 msgstr "David Hayes"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:54
+#: src/diff.c:53
 msgid "Richard Stallman"
 msgstr "Richard Stallman"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:55
+#: src/diff.c:54
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:355
+#: src/diff.c:365
 #, c-format
 msgid "invalid context length '%s'"
 msgstr "ongeldige contextlengte '%s'"
 
-#: src/diff.c:438
+#: src/diff.c:487
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "het in pagina's indelen is op deze computer niet mogelijk"
 
-#: src/diff.c:453 src/diff3.c:341
+#: src/diff.c:502 src/diff3.c:348
 #, c-format
 msgid "too many file label options"
 msgstr "te veel bestandslabel-opties"
 
-#: src/diff.c:530
+#: src/diff.c:579
 #, c-format
 msgid "invalid width '%s'"
 msgstr "ongeldige breedte '%s'"
 
-#: src/diff.c:534
+#: src/diff.c:583
 msgid "conflicting width options"
 msgstr "conflicterende breedte-opties"
 
-#: src/diff.c:559
+#: src/diff.c:608
 #, c-format
 msgid "invalid horizon length '%s'"
 msgstr "ongeldige horizonlengte '%s'"
 
-#: src/diff.c:615
+#: src/diff.c:664
 #, c-format
 msgid "invalid tabsize '%s'"
 msgstr "ongeldige tabgrootte '%s'"
 
-#: src/diff.c:619
+#: src/diff.c:668
 msgid "conflicting tabsize options"
 msgstr "conflicterende tabgrootte-opties"
 
-#: src/diff.c:774
+#: src/diff.c:834
 msgid "--from-file and --to-file both specified"
 msgstr "zowel '--from-file' als '--to-file' zijn opgegeven"
 
-#: src/diff.c:893
+#: src/diff.c:953
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "    --normal               een gewone diff produceren (standaard)"
 
-#: src/diff.c:894
+#: src/diff.c:954
 msgid "-q, --brief                   report only when files differ"
 msgstr "-q, --brief                alleen aangeven of bestanden verschillen"
 
-#: src/diff.c:895
+#: src/diff.c:955
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr ""
 "-s, --report-identical-files    vermelden of twee bestanden hetzelfde zijn"
 
-#: src/diff.c:896
+#: src/diff.c:956
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
 "-c, -C AANTAL, --context[=AANTAL]    dit AANTAL regels (standaard 3) van\n"
 "                                       gekopieerde context tonen"
 
-#: src/diff.c:897
+#: src/diff.c:957
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
 "-u, -U AANTAL, --unified[=AANTAL]    dit AANTAL regels (standaard 3) van\n"
 "                                       geünificeerde context tonen"
 
-#: src/diff.c:898
+#: src/diff.c:958
 msgid "-e, --ed                      output an ed script"
 msgstr "-e, --ed                   een ed-script produceren"
 
-#: src/diff.c:899
+#: src/diff.c:959
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n, --rcs                  een diff in RCS-opmaak produceren"
 
-#: src/diff.c:900
+#: src/diff.c:960
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side         het resultaat weergeven in twee kolommen"
 
-#: src/diff.c:901
+#: src/diff.c:961
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
 "-w, --width=AANTAL         maximaal dit AANTAL kolommen tonen (standaard 130)"
 
-#: src/diff.c:902
+#: src/diff.c:962
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr ""
 "    --left-column          bij gelijke regels alleen de linkerkolom tonen"
 
-#: src/diff.c:903
+#: src/diff.c:963
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "    --suppress-common-lines    de gelijke regels onderdrukken"
 
-#: src/diff.c:905
+#: src/diff.c:965
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr ""
 "-p, --show-c-function      vermelden in welke C-functie elke wijziging is"
 
-#: src/diff.c:906
+#: src/diff.c:966
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr ""
 "-F, --show-function-line=RE    recentste regel overeenkomend met RE tonen"
 
-#: src/diff.c:907
+#: src/diff.c:967
 msgid ""
 "    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
@@ -801,86 +802,86 @@ msgstr ""
 "plus\n"
 "                             tijdsstempel (mag herhaald worden)"
 
-#: src/diff.c:910
+#: src/diff.c:970
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr "-t, --expand-tabs          tabs uitschrijven naar spaties in uitvoer"
 
-#: src/diff.c:911
+#: src/diff.c:971
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr ""
 "-T, --initial-tab          tabs uitlijnen door invoegen van tab aan het begin"
 
-#: src/diff.c:912
+#: src/diff.c:972
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=AANTAL       tab-stops op elke AANTAL posities (standaard 8)"
 
-#: src/diff.c:913
+#: src/diff.c:973
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
 "    --suppress-blank-empty    spatie of tab onderdrukken voor lege uitregels"
 
-#: src/diff.c:914
+#: src/diff.c:974
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr ""
 "-l, --paginate             de uitvoer door 'pr' halen om deze in pagina's\n"
 "                             in te delen"
 
-#: src/diff.c:916
+#: src/diff.c:976
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr "-r, --recursive            recursief elke gevonden submap vergelijken"
 
-#: src/diff.c:917
+#: src/diff.c:977
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr "    --no-dereference       symbolische koppelingen niet volgen"
 
-#: src/diff.c:918
+#: src/diff.c:978
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr "-N, --new-file             afwezige bestanden als leeg behandelen"
 
-#: src/diff.c:919
+#: src/diff.c:979
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
 "    --unidirectional-new-file    alleen bestanden die afwezig zijn in de\n"
 "                                   eerste map als leeg behandelen"
 
-#: src/diff.c:920
+#: src/diff.c:980
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ""
 "    --ignore-file-name-case    verschil tussen hoofd- en kleine letters "
 "negeren\n"
 "                                 bij vergelijken van bestandsnamen"
 
-#: src/diff.c:921
+#: src/diff.c:981
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
 "    --no-ignore-file-name-case    onderscheid maken tussen hoofd- en kleine\n"
 "                                    letters bij vergelijken van bestandsnamen"
 
-#: src/diff.c:922
+#: src/diff.c:982
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr ""
 "-x, --exclude=PATROON      bestanden uitsluiten als ze overeenkomen met "
 "PATROON"
 
-#: src/diff.c:923
+#: src/diff.c:983
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
 "-X, --exclude-from=BESTAND    bestanden uitsluiten die overeenkomen met\n"
 "                                een patroon in BESTAND"
 
-#: src/diff.c:924
+#: src/diff.c:984
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
 "-S, --starting-file=BESTAND    beginnen met BESTAND bij vergelijken van "
 "mappen"
 
-#: src/diff.c:925
+#: src/diff.c:985
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
@@ -888,7 +889,7 @@ msgstr ""
 "    --from-file=BESTAND1    BESTAND1 met alle argumenten vergelijken;\n"
 "                              BESTAND1 mag een map zijn"
 
-#: src/diff.c:927
+#: src/diff.c:987
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
@@ -896,88 +897,88 @@ msgstr ""
 "    --to-file=BESTAND2    alle argumenten met BESTAND2 vergelijken;\n"
 "                            BESTAND2 mag een map zijn"
 
-#: src/diff.c:930
+#: src/diff.c:990
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr ""
 "-i, --ignore-case          verschil tussen hoofd- en kleine letters\n"
 "                             negeren in bestandsinhoud"
 
-#: src/diff.c:931
+#: src/diff.c:991
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr "-E, --ignore-tab-expansion    omzettingen van tabs in spaties negeren"
 
-#: src/diff.c:932
+#: src/diff.c:992
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr "-Z, --ignore-trailing-space   witruimte aan einde van regel negeren"
 
-#: src/diff.c:933
+#: src/diff.c:993
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr ""
 "-b, --ignore-space-change     wijzigingen in hoeveelheid witruimte negeren"
 
-#: src/diff.c:934
+#: src/diff.c:994
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w, --ignore-all-space        alle witruimte negeren"
 
-#: src/diff.c:935
+#: src/diff.c:995
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr ""
 "-B, --ignore-blank-lines      wijzigingen waarvan alle regels leeg zijn "
 "negeren"
 
-#: src/diff.c:936
+#: src/diff.c:996
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=RE  wijzigingen waarvan alle regels "
 "overeenkomen\n"
 "                                  met reguliere expressie RE negeren"
 
-#: src/diff.c:938
+#: src/diff.c:998
 msgid "-a, --text                      treat all files as text"
 msgstr "-a, --text                 alle bestanden als tekst behandelen"
 
-#: src/diff.c:939
+#: src/diff.c:999
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr    Enter-tekens (CR's) aan einde van regels weglaten"
 
-#: src/diff.c:941
+#: src/diff.c:1001
 msgid "    --binary                    read and write data in binary mode"
 msgstr ""
 "    --binary               gegevens in binaire modus lezen en schrijven"
 
-#: src/diff.c:944
+#: src/diff.c:1004
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
 "-D, --ifdef=NAAM           samengevoegd bestand tonen om verschillen in\n"
 "                             '#ifdef NAAM' te laten zien"
 
-#: src/diff.c:945
+#: src/diff.c:1005
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr ""
 "    --GSOORT-group-format=GOPMAAK    iets dergelijks, maar dan invoergroepen "
 "van\n"
 "                                       soort GSOORT opmaken met GOPMAAK"
 
-#: src/diff.c:946
+#: src/diff.c:1006
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr ""
 "    --line-format=LOPMAAK    iets dergelijks, maar dan alle invoerregels "
 "opmaken\n"
 "                               met LOPMAAK"
 
-#: src/diff.c:947
+#: src/diff.c:1007
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr ""
 "    --LSOORT-line-format=LOPMAAK    iets dergelijks, maar dan invoerregels "
 "van\n"
 "                                      soort LSOORT opmaken met LOPMAAK"
 
-#: src/diff.c:948
+#: src/diff.c:1008
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
@@ -985,13 +986,13 @@ msgstr ""
 "  Deze opmaakopties bieden een fijnafregeling van de uitvoer aan,\n"
 "    een generalisatie van de optie '-d/--ifdef'."
 
-#: src/diff.c:950
+#: src/diff.c:1010
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
 "  LSOORT is 'old' (oud), 'new' (nieuw), of 'unchanged' (ongewijzigd);\n"
 "    GSOORT is LSOORT of 'changed' (gewijzigd)."
 
-#: src/diff.c:951
+#: src/diff.c:1011
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -1021,7 +1022,7 @@ msgstr ""
 "        M  L+1\n"
 "    %(A=B?Z:V)  als A gelijk is aan B, dan Z anders V"
 
-#: src/diff.c:963
+#: src/diff.c:1023
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -1034,7 +1035,7 @@ msgstr ""
 "    %[-][BREEDTE][.[PREC]]{doxX}n  specificatie in printf-stijl voor\n"
 "                                   invoerregelnummer"
 
-#: src/diff.c:967
+#: src/diff.c:1027
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1048,20 +1049,20 @@ msgstr ""
 "    %c'\\OOO'  het teken met octaalcode OOO\n"
 "    C         het teken C (andere tekens representeren zichzelf)"
 
-#: src/diff.c:973
+#: src/diff.c:1033
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr ""
 "-d, --minimal              moeite doen om een kleinere verzameling "
 "wijzigingen\n"
 "                             te vinden"
 
-#: src/diff.c:974
+#: src/diff.c:1034
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr ""
 "    --horizon-lines=AANTAL    dit AANTAL regels met identieke kop en staart\n"
 "                                bij vergelijkingsproces meenemen"
 
-#: src/diff.c:975
+#: src/diff.c:1035
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
@@ -1069,7 +1070,7 @@ msgstr ""
 "verspreide\n"
 "                             kleine wijzigingen"
 
-#: src/diff.c:976
+#: src/diff.c:1036
 msgid ""
 "    --color[=WHEN]       color output; WHEN is 'never', 'always', or "
 "'auto';\n"
@@ -1080,7 +1081,7 @@ msgstr ""
 "                             'never' (nooit), of 'auto' (doelafhankelijk);\n"
 "                             een kale '--color' betekent '--color=auto'"
 
-#: src/diff.c:978
+#: src/diff.c:1038
 msgid ""
 "    --palette=PALETTE    the colors to use when --color is active; PALETTE "
 "is\n"
@@ -1091,115 +1092,115 @@ msgstr ""
 "door\n"
 "                             dubbelepunten"
 
-#: src/diff.c:981
+#: src/diff.c:1041
 msgid "    --help               display this help and exit"
 msgstr "    --help                 deze hulptekst tonen en stoppen"
 
-#: src/diff.c:982
+#: src/diff.c:1042
 msgid "-v, --version            output version information and exit"
 msgstr "-v, --version              programmaversie tonen en stoppen"
 
-#: src/diff.c:984
+#: src/diff.c:1044
 msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
 "BESTANDEN is 'BESTAND1 BESTAND2' of 'MAP1 MAP2' of\n"
 "             'MAP BESTAND...' of 'BESTAND... MAP'."
 
-#: src/diff.c:985
+#: src/diff.c:1045
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr ""
 "Als '--from-file' of '--to-file' gegeven is, mag BESTANDEN van alles zijn."
 
-#: src/diff.c:986 src/diff3.c:533 src/sdiff.c:220
+#: src/diff.c:1046 src/diff3.c:531 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
 msgstr "Als een BESTAND '-' is, wordt er van standaardinvoer gelezen."
 
-#: src/diff.c:996
+#: src/diff.c:1056
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr ""
 "Gebruik:  %s [OPTIE...] BESTANDEN\n"
 "\n"
 
-#: src/diff.c:997
+#: src/diff.c:1057
 msgid "Compare FILES line by line."
 msgstr "Bestanden regel-voor-regel vergelijken."
 
-#: src/diff.c:1034
+#: src/diff.c:1094
 #, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "conflicterende waarde '%2$s' van optie %1$s"
 
-#: src/diff.c:1047
+#: src/diff.c:1107
 #, c-format
 msgid "conflicting output style options"
 msgstr "conflicterende uitvoerstijl-opties"
 
-#: src/diff.c:1063
+#: src/diff.c:1123
 #, c-format
 msgid "invalid color '%s'"
 msgstr "ongeldige kleur '%s'"
 
-#: src/diff.c:1119 src/diff.c:1329
+#: src/diff.c:1197 src/diff.c:1401
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Alleen in %s: %s\n"
 
-#: src/diff.c:1253
+#: src/diff.c:1325
 msgid "cannot compare '-' to a directory"
 msgstr "kan '-' niet met een map vergelijken"
 
-#: src/diff.c:1288
+#: src/diff.c:1360
 msgid "-D option not supported with directories"
 msgstr "optie '-D' is niet mogelijk bij mappen"
 
-#: src/diff.c:1297
+#: src/diff.c:1369
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Gemeenschappelijke submappen: %s en %s\n"
 
-#: src/diff.c:1339 src/diff.c:1389
+#: src/diff.c:1411 src/diff.c:1461
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr "Bestand %s is een %s terwijl bestand %s een %s is\n"
 
-#: src/diff.c:1375
+#: src/diff.c:1447
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "Symbolische koppelingen %s en %s zijn verschillend\n"
 
-#: src/diff.c:1462
+#: src/diff.c:1534
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Bestanden %s en %s zijn identiek\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff3.c:43
+#: src/diff3.c:51
 msgid "Randy Smith"
 msgstr "Randy Smith"
 
-#: src/diff3.c:356
+#: src/diff3.c:363
 #, c-format
 msgid "incompatible options"
 msgstr "niet-samengaande opties"
 
-#: src/diff3.c:396
+#: src/diff3.c:403
 msgid "'-' specified for more than one input file"
 msgstr "'-' opgegeven voor meer dan één invoerbestand"
 
-#: src/diff3.c:447 src/diff3.c:1295 src/diff3.c:1698 src/diff3.c:1753
-#: src/sdiff.c:308 src/sdiff.c:846 src/sdiff.c:857
+#: src/diff3.c:445 src/diff3.c:1284 src/diff3.c:1683 src/diff3.c:1738
+#: src/sdiff.c:306 src/sdiff.c:843 src/sdiff.c:854
 msgid "read failed"
 msgstr "lezen is mislukt"
 
-#: src/diff3.c:480
+#: src/diff3.c:478
 msgid "-A, --show-all              output all changes, bracketing conflicts"
 msgstr ""
 "-A, --show-all             alle wijzigingen tonen, met rechte haken om de "
 "conflicten"
 
-#: src/diff3.c:482
+#: src/diff3.c:480
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
@@ -1207,12 +1208,12 @@ msgstr ""
 "-e, --ed                   een ed-script produceren die de wijzigingen van\n"
 "                             OUDBESTAND naar UWBESTAND in MIJNBESTAND maakt"
 
-#: src/diff3.c:484
+#: src/diff3.c:482
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
 msgstr ""
 "-E, --show-overlap         als '-e' maar met rechte haken om de conflicten"
 
-#: src/diff3.c:485
+#: src/diff3.c:483
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
@@ -1220,25 +1221,25 @@ msgstr ""
 "-3, --easy-only            als '-e' maar alleen met niet-overlappende "
 "wijzigingen"
 
-#: src/diff3.c:486
+#: src/diff3.c:484
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
 msgstr ""
 "-x, --overlap-only         als '-e' maar met alleen de overlappende "
 "wijzigingen"
 
-#: src/diff3.c:487
+#: src/diff3.c:485
 msgid "-X                          like -x, but bracket conflicts"
 msgstr ""
 "-X                         als '-x' maar met rechte haken om de conflicten"
 
-#: src/diff3.c:488
+#: src/diff3.c:486
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
 msgstr ""
 "-i                         opdrachten 'w' en 'q' toevoegen aan einde van ed-"
 "scripts"
 
-#: src/diff3.c:490
+#: src/diff3.c:488
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
@@ -1246,27 +1247,27 @@ msgstr ""
 "-m, --merge                het feitelijk samengevoegde bestand tonen\n"
 "                             volgens '-A' zonder andere opties"
 
-#: src/diff3.c:493
+#: src/diff3.c:491
 msgid "-a, --text                  treat all files as text"
 msgstr "-a, --text                 alle bestanden als tekst behandelen"
 
-#: src/diff3.c:494
+#: src/diff3.c:492
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr    Enter-tekens (CR's) aan einde van regels weglaten"
 
-#: src/diff3.c:495
+#: src/diff3.c:493
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
 msgstr ""
 "-T, --initial-tab          tabs uitlijnen door invoegen van tab aan het begin"
 
-#: src/diff3.c:496
+#: src/diff3.c:494
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
 msgstr ""
 "    --diff-program=PROG    dit programma gebruiken om bestanden te "
 "vergelijken"
 
-#: src/diff3.c:497
+#: src/diff3.c:495
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
@@ -1274,26 +1275,26 @@ msgstr ""
 "-L, --label=LABEL          dit LABEL gebruiken in plaats van bestandsnaam\n"
 "                             (mag maximaal driemaal herhaald worden)"
 
-#: src/diff3.c:500
+#: src/diff3.c:498
 msgid "    --help                  display this help and exit"
 msgstr "    --help                 deze hulptekst tonen en stoppen"
 
-#: src/diff3.c:501
+#: src/diff3.c:499
 msgid "-v, --version               output version information and exit"
 msgstr "-v, --version              programmaversie tonen en stoppen"
 
-#: src/diff3.c:510
+#: src/diff3.c:508
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
 msgstr ""
 "Gebruik:  %s [OPTIE]... MIJNBESTAND OUDBESTAND UWBESTAND\n"
 "\n"
 
-#: src/diff3.c:512
+#: src/diff3.c:510
 msgid "Compare three files line by line."
 msgstr "Drie bestanden regel-voor-regel vergelijken."
 
-#: src/diff3.c:522
+#: src/diff3.c:520
 msgid ""
 "\n"
 "The default output format is a somewhat human-readable representation of\n"
@@ -1319,55 +1320,55 @@ msgstr ""
 "robuuster\n"
 "dan het gebruik van 'ed'.\n"
 
-#: src/diff3.c:534
+#: src/diff3.c:532
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
 msgstr ""
 "De afsluitwaarde is 0 bij succes, 1 bij conflicten, en 2 bij problemen."
 
-#: src/diff3.c:727
+#: src/diff3.c:725
 msgid "internal error: screwup in format of diff blocks"
 msgstr "*interne programmafout*: opmaak van diff-blokken is verhaspeld"
 
-#: src/diff3.c:1022
+#: src/diff3.c:1015
 #, c-format
 msgid "%s: diff failed: "
 msgstr "%s: diff is mislukt: "
 
-#: src/diff3.c:1044
+#: src/diff3.c:1037
 msgid "internal error: invalid diff type in process_diff"
 msgstr "*interne programmmafout*: ongeldig soort diff in process_diff()"
 
-#: src/diff3.c:1069
+#: src/diff3.c:1060
 msgid "invalid diff format; invalid change separator"
 msgstr "ongeldige diff-opmaak: ongeldig scheidingsteken voor veranderingen"
 
-#: src/diff3.c:1305
+#: src/diff3.c:1294
 msgid "invalid diff format; incomplete last line"
 msgstr "ongeldige diff-opmaak: incomplete laatste regel"
 
-#: src/diff3.c:1329 src/sdiff.c:276 src/util.c:969
+#: src/diff3.c:1318 src/sdiff.c:274 src/util.c:1069
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "hulpprogramma '%s' kan niet worden aangeroepen"
 
-#: src/diff3.c:1354
+#: src/diff3.c:1343
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "ongeldige diff-opmaak: onjuiste tekens aan begin van regel"
 
-#: src/diff3.c:1427
+#: src/diff3.c:1416
 msgid "internal error: invalid diff type passed to output"
 msgstr "*interne programmafout*: ongeldig soort diff naar uitvoer gestuurd"
 
-#: src/diff3.c:1700 src/diff3.c:1757
+#: src/diff3.c:1685 src/diff3.c:1742
 msgid "input file shrank"
 msgstr "invoerbestand is gekrompen"
 
-#: src/dir.c:156
+#: src/dir.c:154
 #, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "kan bestandsnamen '%s' en '%s' niet vergelijken"
 
-#: src/dir.c:225
+#: src/dir.c:223
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: oneindige lus in de mappen"
@@ -1377,93 +1378,93 @@ msgstr "%s: oneindige lus in de mappen"
 msgid "Thomas Lord"
 msgstr "Thomas Lord"
 
-#: src/sdiff.c:174
+#: src/sdiff.c:173
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
 msgstr ""
 "-o, --output=BESTAND       interactief werken; het resultaat opslaan in "
 "BESTAND"
 
-#: src/sdiff.c:176
+#: src/sdiff.c:175
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
 msgstr ""
 "-i, --ignore-case             hoofd- en kleine letters als hetzelfde zien"
 
-#: src/sdiff.c:177
+#: src/sdiff.c:176
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
 msgstr "-E, --ignore-tab-expansion    omzettingen van tabs in spaties negeren"
 
-#: src/sdiff.c:178
+#: src/sdiff.c:177
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
 msgstr "-Z, --ignore-trailing-space   witruimte aan einde van regel negeren"
 
-#: src/sdiff.c:179
+#: src/sdiff.c:178
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
 msgstr ""
 "-b, --ignore-space-change     wijzigingen in hoeveelheid witruimte negeren"
 
-#: src/sdiff.c:180
+#: src/sdiff.c:179
 msgid "-W, --ignore-all-space       ignore all white space"
 msgstr "-W, --ignore-all-space        alle witruimte negeren"
 
-#: src/sdiff.c:181
+#: src/sdiff.c:180
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
 msgstr ""
 "-B, --ignore-blank-lines      wijzigingen waarvan alle regels leeg zijn "
 "negeren"
 
-#: src/sdiff.c:182
+#: src/sdiff.c:181
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=RE  wijzigingen waarvan alle regels "
 "overeenkomen\n"
 "                                  met reguliere expressie RE negeren"
 
-#: src/sdiff.c:183
+#: src/sdiff.c:182
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr    Enter-tekens (CR's) aan einde van regels weglaten"
 
-#: src/sdiff.c:184
+#: src/sdiff.c:183
 msgid "-a, --text                   treat all files as text"
 msgstr "-a, --text                 alle bestanden als tekst behandelen"
 
-#: src/sdiff.c:186
+#: src/sdiff.c:185
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
 msgstr ""
 "-w, --width=AANTAL         maximaal dit AANTAL kolommen tonen (standaard 130)"
 
-#: src/sdiff.c:187
+#: src/sdiff.c:186
 msgid ""
 "-l, --left-column            output only the left column of common lines"
 msgstr ""
 "-l, --left-column          bij gelijke regels alleen de linkerkolom tonen"
 
-#: src/sdiff.c:188
+#: src/sdiff.c:187
 msgid "-s, --suppress-common-lines  do not output common lines"
 msgstr "-s, --suppress-common-lines   de gelijke regels onderdrukken"
 
-#: src/sdiff.c:190
+#: src/sdiff.c:189
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
 msgstr "-t, --expand-tabs          tabs uitschrijven naar spaties in uitvoer"
 
-#: src/sdiff.c:191
+#: src/sdiff.c:190
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=AANTAL       tab-stops op elke AANTAL posities (standaard 8)"
 
-#: src/sdiff.c:193
+#: src/sdiff.c:192
 msgid "-d, --minimal                try hard to find a smaller set of changes"
 msgstr ""
 "-d, --minimal              moeite doen om een kleinere verzameling "
 "wijzigingen\n"
 "                             te vinden"
 
-#: src/sdiff.c:194
+#: src/sdiff.c:193
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
 msgstr ""
@@ -1471,40 +1472,40 @@ msgstr ""
 "verspreide\n"
 "                             kleine wijzigingen"
 
-#: src/sdiff.c:195
+#: src/sdiff.c:194
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
 msgstr ""
 "    --diff-program=PRGRM   dit programma gebruiken om bestanden te "
 "vergelijken"
 
-#: src/sdiff.c:197
+#: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
 msgstr "    --help                 deze hulptekst tonen en stoppen"
 
-#: src/sdiff.c:198
+#: src/sdiff.c:197
 msgid "-v, --version                output version information and exit"
 msgstr "-v, --version              programmaversie tonen en stoppen"
 
-#: src/sdiff.c:207
+#: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
 msgstr ""
 "Gebruik:  %s [OPTIE...] BESTAND1 BESTAND2\n"
 "\n"
 
-#: src/sdiff.c:209
+#: src/sdiff.c:208
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
 msgstr "Twee bestanden en hun verschillen naast elkaar weergeven."
 
-#: src/sdiff.c:330
+#: src/sdiff.c:328
 msgid "cannot interactively merge standard input"
 msgstr "kan standaardinvoer niet interactief samenvoegen"
 
-#: src/sdiff.c:597
+#: src/sdiff.c:594
 msgid "both files to be compared are directories"
 msgstr "de te vergelijken bestanden zijn allebei mappen"
 
-#: src/sdiff.c:820
+#: src/sdiff.c:817
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
 "eb:\tEdit then use both versions.\n"
@@ -1528,12 +1529,12 @@ msgstr ""
 "v:        Overeenkomende regels invoegen en tonen.\n"
 "q:        Afsluiten.\n"
 
-#: src/util.c:662
+#: src/util.c:755
 #, c-format
 msgid "unrecognized prefix: %s"
 msgstr "niet-herkend voorvoegsel: %s"
 
-#: src/util.c:692
+#: src/util.c:785
 #, c-format
 msgid "unparsable value for --palette"
 msgstr "onbegrepen waarde bij '--palette'"
index 6bc92c6..34292d4 100644 (file)
--- a/po/pl.po
+++ b/po/pl.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNU diffutils 3.7.41\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2021-08-01 18:56-0700\n"
+"POT-Creation-Date: 2023-05-21 01:51-0700\n"
 "PO-Revision-Date: 2021-07-20 18:00+0200\n"
 "Last-Translator: Rafał Maszkowski <rzm@icm.edu.pl>\n"
 "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
@@ -20,29 +20,29 @@ msgstr ""
 "Content-Transfer-Encoding: 8-bit\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 
-#: lib/argmatch.c:132
+#: lib/argmatch.c:145
 #, c-format
 msgid "invalid argument %s for %s"
 msgstr "argument %s błędny w kontekście %s"
 
-#: lib/argmatch.c:133
+#: lib/argmatch.c:146
 #, c-format
 msgid "ambiguous argument %s for %s"
 msgstr "argument %s błędny w kontekście %s"
 
-#: lib/argmatch.c:152 lib/argmatch.h:223
+#: lib/argmatch.c:165 lib/argmatch.h:242
 msgid "Valid arguments are:"
 msgstr "Prawidłowe argumenty to:"
 
-#: lib/c-stack.c:187
+#: lib/c-stack.c:186
 msgid "program error"
 msgstr "błąd programu"
 
-#: lib/c-stack.c:188
+#: lib/c-stack.c:187
 msgid "stack overflow"
 msgstr "przepełnienie stosu"
 
-#: lib/error.c:195
+#: lib/error.c:193
 msgid "Unknown system error"
 msgstr "Nieznany błąd systemu"
 
@@ -198,83 +198,83 @@ msgstr "%s: opcja wymaga argumentu -- „%c”\n"
 #. If you don't know what to put here, please see
 #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:355
+#: lib/quotearg.c:354
 msgid "`"
 msgstr "„"
 
-#: lib/quotearg.c:356
+#: lib/quotearg.c:355
 msgid "'"
 msgstr "”"
 
-#: lib/regcomp.c:135
+#: lib/regcomp.c:122
 msgid "Success"
 msgstr "Powodzenie"
 
-#: lib/regcomp.c:138
+#: lib/regcomp.c:125
 msgid "No match"
 msgstr "Nie pasuje"
 
-#: lib/regcomp.c:141
+#: lib/regcomp.c:128
 msgid "Invalid regular expression"
 msgstr "Błędne wyrażenie regularne"
 
-#: lib/regcomp.c:144
+#: lib/regcomp.c:131
 msgid "Invalid collation character"
 msgstr "Znak błędny dla bieżącego uporządkowania"
 
-#: lib/regcomp.c:147
+#: lib/regcomp.c:134
 msgid "Invalid character class name"
 msgstr "Błędne nazwa klasy znaków"
 
-#: lib/regcomp.c:150
+#: lib/regcomp.c:137
 msgid "Trailing backslash"
 msgstr "Końcowy ukośnik odwrotny"
 
-#: lib/regcomp.c:153
+#: lib/regcomp.c:140
 msgid "Invalid back reference"
 msgstr "Błędny odnośnik wstecz"
 
-#: lib/regcomp.c:156
+#: lib/regcomp.c:143
 msgid "Unmatched [, [^, [:, [., or [="
 msgstr "Nie sparowany [, [^, [:, [., albo [="
 
-#: lib/regcomp.c:159
+#: lib/regcomp.c:146
 msgid "Unmatched ( or \\("
 msgstr "Nie sparowany ( albo \\("
 
-#: lib/regcomp.c:162
+#: lib/regcomp.c:149
 msgid "Unmatched \\{"
 msgstr "Nie sparowany \\{"
 
-#: lib/regcomp.c:165
+#: lib/regcomp.c:152
 msgid "Invalid content of \\{\\}"
 msgstr "Błędna zawartość \\{\\}"
 
-#: lib/regcomp.c:168
+#: lib/regcomp.c:155
 msgid "Invalid range end"
 msgstr "Błędny koniec zakresu"
 
-#: lib/regcomp.c:171
+#: lib/regcomp.c:158
 msgid "Memory exhausted"
 msgstr "Brak pamięci"
 
-#: lib/regcomp.c:174
+#: lib/regcomp.c:161
 msgid "Invalid preceding regular expression"
 msgstr "Błędne poprzedzające wyrażenie regularne"
 
-#: lib/regcomp.c:177
+#: lib/regcomp.c:164
 msgid "Premature end of regular expression"
 msgstr "Przedwczesny koniec wyrażenia regularnego"
 
-#: lib/regcomp.c:180
+#: lib/regcomp.c:167
 msgid "Regular expression too big"
 msgstr "Wyrażenia regularne jest za duże"
 
-#: lib/regcomp.c:183
+#: lib/regcomp.c:170
 msgid "Unmatched ) or \\)"
 msgstr "Nie sparowany ) lub \\)"
 
-#: lib/regcomp.c:676
+#: lib/regcomp.c:650
 msgid "No previous regular expression"
 msgstr "Brak poprzedniego wyrażenia regularnego"
 
@@ -469,17 +469,17 @@ msgstr "strona domowa %s: %s\n"
 msgid "General help using GNU software: <%s>\n"
 msgstr "Pomoc w używaniu oprogramowania GNU: %s\n"
 
-#: src/analyze.c:454 src/diff.c:1406
+#: src/analyze.c:455 src/diff.c:1478
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Pliki %s i %s różnią się\n"
 
-#: src/analyze.c:455
+#: src/analyze.c:456
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "Binarne pliki %s i %s różnią się\n"
 
-#: src/analyze.c:706 src/diff3.c:1470 src/util.c:1254
+#: src/analyze.c:707 src/diff3.c:1457 src/util.c:1354
 msgid "No newline at end of file"
 msgstr "Brak znaku nowej linii na końcu pliku"
 
@@ -493,39 +493,40 @@ msgstr "Torbjörn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:120 src/diff.c:879 src/diff3.c:467 src/sdiff.c:160
+#: src/cmp.c:124 src/diff.c:939 src/diff3.c:465 src/sdiff.c:159
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Napisz „%s --help” żeby dowiedzieć się więcej."
 
-#: src/cmp.c:138
+#: src/cmp.c:142
 #, c-format
 msgid "invalid --ignore-initial value '%s'"
 msgstr "błędna wartość --ignore-initial „%s”"
 
-#: src/cmp.c:148
+#: src/cmp.c:152
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr "sprzeczne opcje -l i -s"
 
-#: src/cmp.c:156 src/diff.c:887 src/diff3.c:474 src/sdiff.c:168 src/sdiff.c:316
-#: src/sdiff.c:323 src/sdiff.c:876 src/util.c:852 src/util.c:952 src/util.c:959
+#: src/cmp.c:160 src/diff.c:947 src/diff3.c:472 src/sdiff.c:167 src/sdiff.c:314
+#: src/sdiff.c:321 src/sdiff.c:873 src/util.c:952 src/util.c:1052
+#: src/util.c:1059
 msgid "write failed"
 msgstr "zapis nieudany"
 
-#: src/cmp.c:158 src/diff.c:889 src/diff.c:1471 src/diff3.c:476 src/sdiff.c:170
+#: src/cmp.c:162 src/diff.c:949 src/diff.c:1543 src/diff3.c:474 src/sdiff.c:169
 msgid "standard output"
 msgstr "standardowe wyjście"
 
-#: src/cmp.c:162
+#: src/cmp.c:166
 msgid "-b, --print-bytes          print differing bytes"
 msgstr "-b  --print-bytes          wypisanie różniących się bajtów"
 
-#: src/cmp.c:163
+#: src/cmp.c:167
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
 msgstr "-i, --ignore-initial=OMIŃ         przeskoczenie pierwszych OMIŃ bajtów"
 
-#: src/cmp.c:164
+#: src/cmp.c:168
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
@@ -533,39 +534,39 @@ msgstr ""
 "--ignore-initial=OMIŃ1:OMIŃ2  przeskoczenie pierwszych OMIŃ1 bajtów\n"
 "                                      PLIKU1 i OMIŃ2 bajtów PLIKU2"
 
-#: src/cmp.c:166
+#: src/cmp.c:170
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
 msgstr ""
 "-I  --verbose              wypisanie położeń i kodów wszystkich różniących "
 "się bajtów"
 
-#: src/cmp.c:167
+#: src/cmp.c:171
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
 msgstr "-n , --bytes=LIMIT         porównanie najwyżej LIMIT bajtów"
 
-#: src/cmp.c:168
+#: src/cmp.c:172
 msgid "-s, --quiet, --silent      suppress all normal output"
 msgstr "-s, --quiet, --silent      wyłączenie wszystkich zwykłych komunikatów"
 
-#: src/cmp.c:169
+#: src/cmp.c:173
 msgid "    --help                 display this help and exit"
 msgstr "    --help                 wypisanie tej pomocy i zakończenie"
 
-#: src/cmp.c:170
+#: src/cmp.c:174
 msgid "-v, --version              output version information and exit"
 msgstr "-v  --version              wypisanie informacji o wersji i zakończenie"
 
-#: src/cmp.c:179
+#: src/cmp.c:183
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
 msgstr "Składnia: %s [OPCJA]... PLIK1 [PLIK2 [OMIŃ1 [OMIŃ2]]]\n"
 
-#: src/cmp.c:181
+#: src/cmp.c:185
 msgid "Compare two files byte by byte."
 msgstr "Porównanie plików bajt po bajcie."
 
-#: src/cmp.c:183
+#: src/cmp.c:187
 msgid ""
 "The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
 "at the beginning of each file (zero by default)."
@@ -573,12 +574,12 @@ msgstr ""
 "Opcjonalne argumenty OMIŃ1 i OMIŃ2 to liczby bajtów do pominięcia na\n"
 "początku każdego z plików (domyślnie zero)."
 
-#: src/cmp.c:186 src/diff.c:999 src/diff3.c:514 src/sdiff.c:211
+#: src/cmp.c:190 src/diff.c:1059 src/diff3.c:512 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr "Obowiązkowe argumenty długich opcji są obowiązkowe też dla krótkich.\n"
 
-#: src/cmp.c:192
+#: src/cmp.c:196
 msgid ""
 "SKIP values may be followed by the following multiplicative suffixes:\n"
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
@@ -588,195 +589,195 @@ msgstr ""
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
 "GB 1,000,000,000, G 1,073,741,824, i tak dalej dla T, P, E, Z, Y."
 
-#: src/cmp.c:195
+#: src/cmp.c:199
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "Jeżeli PLIK to „-” lub go brak, czytane jest standardowe wejście."
 
-#: src/cmp.c:196 src/diff.c:987 src/sdiff.c:221
+#: src/cmp.c:200 src/diff.c:1047 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr ""
 "Status wyjściowy ma wartość 0 gdy pliki wejściowe są takie same, 1 - jeżeli\n"
 "różne, 2 - jeżeli są problemy."
 
-#: src/cmp.c:243
+#: src/cmp.c:247
 #, c-format
 msgid "invalid --bytes value '%s'"
 msgstr "błędna wartość --bytes „%s”"
 
-#: src/cmp.c:269 src/diff.c:797 src/diff3.c:361 src/sdiff.c:567
+#: src/cmp.c:273 src/diff.c:857 src/diff3.c:368 src/sdiff.c:564
 #, c-format
 msgid "missing operand after '%s'"
 msgstr "brakujący argument po „%s”"
 
-#: src/cmp.c:281 src/diff.c:799 src/diff3.c:363 src/sdiff.c:569
+#: src/cmp.c:285 src/diff.c:859 src/diff3.c:370 src/sdiff.c:566
 #, c-format
 msgid "extra operand '%s'"
 msgstr "nadmiarowy argument „%s”"
 
-#: src/cmp.c:507
+#: src/cmp.c:521
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s różnią się: bajt %s, linia %s\n"
 
-#: src/cmp.c:523
+#: src/cmp.c:537
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
 msgstr "%s %s różnią się: bajt %s, linia %s zawiera %3o %s %3o %s\n"
 
-#: src/cmp.c:580
+#: src/cmp.c:594
 #, c-format
 msgid "cmp: EOF on %s which is empty\n"
 msgstr "cmp: EOF w %s, który jest pusty\n"
 
-#: src/cmp.c:594
+#: src/cmp.c:608
 #, c-format
 msgid "cmp: EOF on %s after byte %s, line %s\n"
 msgstr "cmp: EOF w %s, po bajcie %s, linii %s\n"
 
-#: src/cmp.c:595
+#: src/cmp.c:609
 #, c-format
 msgid "cmp: EOF on %s after byte %s, in line %s\n"
 msgstr "cmp: EOF w %s, po bajcie %s, w linii %s\n"
 
-#: src/cmp.c:601
+#: src/cmp.c:615
 #, c-format
 msgid "cmp: EOF on %s after byte %s\n"
 msgstr "cmp: EOF w %s, po bajcie %s\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:51
+#: src/diff.c:50
 msgid "Paul Eggert"
 msgstr "Paul Eggert"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:52
+#: src/diff.c:51
 msgid "Mike Haertel"
 msgstr "Mike Haertel"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:53
+#: src/diff.c:52
 msgid "David Hayes"
 msgstr "David Hayes"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:54
+#: src/diff.c:53
 msgid "Richard Stallman"
 msgstr "Richard Stallman"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:55
+#: src/diff.c:54
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:355
+#: src/diff.c:365
 #, c-format
 msgid "invalid context length '%s'"
 msgstr "błędna długość kontekstu „%s”"
 
-#: src/diff.c:438
+#: src/diff.c:487
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "stronicowanie nie jest możliwe na tej maszynie"
 
-#: src/diff.c:453 src/diff3.c:341
+#: src/diff.c:502 src/diff3.c:348
 #, c-format
 msgid "too many file label options"
 msgstr "za dużo opcji etykietowania plików"
 
-#: src/diff.c:530
+#: src/diff.c:579
 #, c-format
 msgid "invalid width '%s'"
 msgstr "błędna szerokość „%s”"
 
-#: src/diff.c:534
+#: src/diff.c:583
 msgid "conflicting width options"
 msgstr "sprzeczne opcje szerokości"
 
-#: src/diff.c:559
+#: src/diff.c:608
 #, c-format
 msgid "invalid horizon length '%s'"
 msgstr "błędna długość horyzontu „%s”"
 
-#: src/diff.c:615
+#: src/diff.c:664
 #, c-format
 msgid "invalid tabsize '%s'"
 msgstr "błędny rozmiar tabulacji „%s”"
 
-#: src/diff.c:619
+#: src/diff.c:668
 msgid "conflicting tabsize options"
 msgstr "sprzeczne opcje rozmiarów TAB-a"
 
-#: src/diff.c:774
+#: src/diff.c:834
 msgid "--from-file and --to-file both specified"
 msgstr "równocześnie podane --from-file i --to-file"
 
-#: src/diff.c:893
+#: src/diff.c:953
 msgid "    --normal                  output a normal diff (the default)"
 msgstr ""
 "--normal                      wynik w postaci zwykłego diff-a (domyślnie)"
 
-#: src/diff.c:894
+#: src/diff.c:954
 msgid "-q, --brief                   report only when files differ"
 msgstr ""
 "-q  --brief                   wypisanie wyniku tylko gdy pliki się różnią"
 
-#: src/diff.c:895
+#: src/diff.c:955
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr "-s  --report-identical-files  informowanie gdy dwa pliki są takie same"
 
-#: src/diff.c:896
+#: src/diff.c:956
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
 "-c, -C NUM, --context[=ILE]   wypisanie ILU (domyślnie 3) linii kontekstu"
 
-#: src/diff.c:897
+#: src/diff.c:957
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
 "--u, -U ILE, --unified=ILE    wypisanie najwyżej ILE (domyślnie 3)\n"
 "                                linii kontekstu w trybie unified"
 
-#: src/diff.c:898
+#: src/diff.c:958
 msgid "-e, --ed                      output an ed script"
 msgstr "-e  --ed                      wynik w postaci poleceń ed-a"
 
-#: src/diff.c:899
+#: src/diff.c:959
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n  --rcs                     wynik w postaci diff-a z RCS"
 
-#: src/diff.c:900
+#: src/diff.c:960
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side            wyniki w dwóch kolumnach"
 
-#: src/diff.c:901
+#: src/diff.c:961
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
 "-W, --width=ILE               wypisanie najwyżej ILE (domyślnie 130) kolumn"
 
-#: src/diff.c:902
+#: src/diff.c:962
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr ""
 "    --left-column             wypisanie tylko lewej kolumny dla wspólnych "
 "linii"
 
-#: src/diff.c:903
+#: src/diff.c:963
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "    --suppress-common-lines   bez wypisania wspólnych linii"
 
-#: src/diff.c:905
+#: src/diff.c:965
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr "-p, --show-c-function         podanie w jakiej funkcji C są zmiany"
 
-#: src/diff.c:906
+#: src/diff.c:966
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr ""
 "-F, --show-function-line=WYRREG  wypisanie ostatniej linii pasującej do "
 "WYRREG"
 
-#: src/diff.c:907
+#: src/diff.c:967
 msgid ""
 "    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
@@ -785,83 +786,83 @@ msgstr ""
 "znacznika\n"
 "                                czasu (może być powtarzane)"
 
-#: src/diff.c:910
+#: src/diff.c:970
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr "-t  --expand-tabs             rozwinięcie TAB-ów w spacje w wyniku"
 
-#: src/diff.c:911
+#: src/diff.c:971
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr "-T  --initial-tab             wyrównanie linii przez użycie TAB-ów"
 
-#: src/diff.c:912
+#: src/diff.c:972
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr "    --tabsize=ILE             TAB-y co ILE (domyślnie 8) kolumn"
 
-#: src/diff.c:913
+#: src/diff.c:973
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
 "    --suppress-blank-empty    bez wypisywania spacji i znaków TAB przed\n"
 "                                pustymi liniami"
 
-#: src/diff.c:914
+#: src/diff.c:974
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr ""
 "-I  --paginate                przepuszczenie wyniku przez „pr” żeby go "
 "stronnicować"
 
-#: src/diff.c:916
+#: src/diff.c:976
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr "-r  --recursive                 porównanie podkatalogów rekurencyjnie"
 
-#: src/diff.c:917
+#: src/diff.c:977
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr ""
 "    --no-dereference            bez podążania za dowiązaniami symbolicznymi"
 
-#: src/diff.c:918
+#: src/diff.c:978
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr ""
 "-N  --new-file                  traktowanie brakujących plików jak pustych"
 
-#: src/diff.c:919
+#: src/diff.c:979
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
 "    --unidirectional-new-file   traktowanie brakujących pierwszych plików\n"
 "                                 w pierwszym zestawie jako pustych"
 
-#: src/diff.c:920
+#: src/diff.c:980
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ""
 "    --ignore-space-change       zignorowanie wielkości liter przy\n"
 "                                  porównywaniu nazw plików"
 
-#: src/diff.c:921
+#: src/diff.c:981
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
 "    --no-ignore-file-name-case  uwzględnianie wielkości liter przy\n"
 "                                  porównywaniu nazw plików"
 
-#: src/diff.c:922
+#: src/diff.c:982
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr "-x, --exclude=WZÓR              wykluczenie plików pasujących do WZORU"
 
-#: src/diff.c:923
+#: src/diff.c:983
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
 "-X, --exclude-from=PLIK         pominięcie plików pasujących do wzorców w "
 "PLIKU"
 
-#: src/diff.c:924
+#: src/diff.c:984
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
 "-S, --starting-file=PLIK       zacznij od PLIKU przy porównywaniu katalogów"
 
-#: src/diff.c:925
+#: src/diff.c:985
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
@@ -869,7 +870,7 @@ msgstr ""
 "    --from-file=PLIK1           porównanie PLIKU1 z wszystkimi\n"
 "                                  argumentami; PLIK1 może być katalogiem"
 
-#: src/diff.c:927
+#: src/diff.c:987
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
@@ -877,85 +878,85 @@ msgstr ""
 "    --to-file=PLIK2             porównanie wszystkich argumentów\n"
 "                                  z PLIKIEM2; PLIK2 może być katalogiem"
 
-#: src/diff.c:930
+#: src/diff.c:990
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr ""
 "-i  --ignore-case               ignorowanie różnic między wielkimi i małymi "
 "literami"
 
-#: src/diff.c:931
+#: src/diff.c:991
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr ""
 "-E  --ignore-tab-expansion      zignorowanie zmian spowodowanych\n"
 "                                  rozwinięciem TAB-ów"
 
-#: src/diff.c:932
+#: src/diff.c:992
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr ""
 "-Z  --ignore-trailing-space     ignorowanie znaków odstępu na końcu linii"
 
-#: src/diff.c:933
+#: src/diff.c:993
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr ""
 "-b  --ignore-space-change       Zignorowanie zmian ilości znaków odstępu"
 
-#: src/diff.c:934
+#: src/diff.c:994
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w  --ignore-all-space          zignorowanie znaków odstępu"
 
-#: src/diff.c:935
+#: src/diff.c:995
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr ""
 "-B  --ignore-blank-lines        zignorowanie zmian liczby pustych linii"
 
-#: src/diff.c:936
+#: src/diff.c:996
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=RE  zignorowanie zmian w liniach pasujących\n"
 "                                  do RE"
 
-#: src/diff.c:938
+#: src/diff.c:998
 msgid "-a, --text                      treat all files as text"
 msgstr "-a  --text                      traktowanie plików jako tekstowych"
 
-#: src/diff.c:939
+#: src/diff.c:999
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr ""
 "--strip-trailing-cr             pominięcie znaków nowej linii na wejściu"
 
-#: src/diff.c:941
+#: src/diff.c:1001
 msgid "    --binary                    read and write data in binary mode"
 msgstr "--binary                        czytanie i zapisywanie danych binarnie"
 
-#: src/diff.c:944
+#: src/diff.c:1004
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
 "-D, --ifdef=NAZWA               wypisanie połączonego pliku dla pokazania\n"
 "                                  różnic w „#ifdef NAZWA”"
 
-#: src/diff.c:945
+#: src/diff.c:1005
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr ""
 "    --GTYPE-group-format=FMTG   użyciem FMTF do sformatowania grup\n"
 "                                  wejściowych typu GTYPE"
 
-#: src/diff.c:946
+#: src/diff.c:1006
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr ""
 "    --line-format=LFMT          podobnie, ale z użyciem LFMT do\n"
 "                                  sformatowania linii wejściowych"
 
-#: src/diff.c:947
+#: src/diff.c:1007
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr ""
 "    --LTYPE-line-format=FMTL    użycie FMTL do sformatowania linii\n"
 "                                  wejściowych typu LTYPE"
 
-#: src/diff.c:948
+#: src/diff.c:1008
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
@@ -963,13 +964,13 @@ msgstr ""
 "  Te opcje formatowania dają dokładną kontrolę nad wynikami diff-a,\n"
 "    są uogólnieniem -D/--ifdef."
 
-#: src/diff.c:950
+#: src/diff.c:1010
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
 "TYPL to „old” (stary), „new” (nowy) albo „unchanged” (nie zmieniony).\n"
 "TYPG to TYPL albo „changed” (zmieniony)."
 
-#: src/diff.c:951
+#: src/diff.c:1011
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -997,7 +998,7 @@ msgstr ""
 "        E  F-1\n"
 "        M  L+1    %(A=B?T:E)  jeżeli A równa się B, to T, jeżeli nie, to E"
 
-#: src/diff.c:963
+#: src/diff.c:1023
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -1009,7 +1010,7 @@ msgstr ""
 "    %l  zawartość linii z wyłączeniem znaku nowej linii\n"
 "    %[-][SZER][.[DOKŁ]]{doxX}n  specyfikację numeru linii w stylu printf"
 
-#: src/diff.c:967
+#: src/diff.c:1027
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1023,24 +1024,24 @@ msgstr ""
 "    %c'\\OOO'  znak o kodzie ósemkowym OOO\n"
 "    Z    znak Z (inne znaki reprezentują same siebie)"
 
-#: src/diff.c:973
+#: src/diff.c:1033
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr ""
 "-d  --minimal            usiłowanie znalezienia mniejszego zbioru zmian"
 
-#: src/diff.c:974
+#: src/diff.c:1034
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr ""
 "    --horizon-lines=ILE  zostawienie ILE linii wspólnego przedrostka i "
 "przyrostka"
 
-#: src/diff.c:975
+#: src/diff.c:1035
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
 "    --speed-large-files  założenie: duże pliki i rozrzucone małe zmiany"
 
-#: src/diff.c:976
+#: src/diff.c:1036
 msgid ""
 "    --color[=WHEN]       color output; WHEN is 'never', 'always', or "
 "'auto';\n"
@@ -1050,7 +1051,7 @@ msgstr ""
 "„always”\n"
 "                           (zawsze) albo „auto” (wartość domyślna)"
 
-#: src/diff.c:978
+#: src/diff.c:1038
 msgid ""
 "    --palette=PALETTE    the colors to use when --color is active; PALETTE "
 "is\n"
@@ -1060,113 +1061,113 @@ msgstr ""
 "                           PALETA jest listą oddzielonych dwukropkami\n"
 "                           właściwości terminfo"
 
-#: src/diff.c:981
+#: src/diff.c:1041
 msgid "    --help               display this help and exit"
 msgstr "    --help               wypisanie tej pomocy i zakończenie"
 
-#: src/diff.c:982
+#: src/diff.c:1042
 msgid "-v, --version            output version information and exit"
 msgstr "-v  --version            wypisanie informacji o wersji i zakończenie"
 
-#: src/diff.c:984
+#: src/diff.c:1044
 msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
 "PLIKI to „PLIK1 PLIK2” albo „KATALOG1 KATALOG2” albo „KATALOG PLIK” albo\n"
 "„PLIK KATALOG”."
 
-#: src/diff.c:985
+#: src/diff.c:1045
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr ""
 "Jeżeli użyta jest opcja --from-file albo --to-file, nie ma ograniczeń co do\n"
 "PLIKU/ÓW."
 
-#: src/diff.c:986 src/diff3.c:533 src/sdiff.c:220
+#: src/diff.c:1046 src/diff3.c:531 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
 msgstr "Jeżeli PLIK to „-”, czytane jest standardowe wejście."
 
-#: src/diff.c:996
+#: src/diff.c:1056
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Składnia: %s [OPCJA]... PLIKI\n"
 
-#: src/diff.c:997
+#: src/diff.c:1057
 msgid "Compare FILES line by line."
 msgstr "Porównanie PLIKÓW kolejnymi liniami."
 
-#: src/diff.c:1034
+#: src/diff.c:1094
 #, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "sprzeczna wartość opcji %s: „%s”"
 
-#: src/diff.c:1047
+#: src/diff.c:1107
 #, c-format
 msgid "conflicting output style options"
 msgstr "sprzeczne opcje stylu wyniku"
 
-#: src/diff.c:1063
+#: src/diff.c:1123
 #, c-format
 msgid "invalid color '%s'"
 msgstr "błędny kolor „%s”"
 
-#: src/diff.c:1119 src/diff.c:1329
+#: src/diff.c:1197 src/diff.c:1401
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Tylko w %s: %s\n"
 
-#: src/diff.c:1253
+#: src/diff.c:1325
 msgid "cannot compare '-' to a directory"
 msgstr "nie można porównać „-” z katalogiem"
 
-#: src/diff.c:1288
+#: src/diff.c:1360
 msgid "-D option not supported with directories"
 msgstr "opcja -D nie działa dla katalogów"
 
-#: src/diff.c:1297
+#: src/diff.c:1369
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Wspólne podkatalogi: %s i %s\n"
 
-#: src/diff.c:1339 src/diff.c:1389
+#: src/diff.c:1411 src/diff.c:1461
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr "Plik %s jest %s, podczas gdy plik %s jest %s\n"
 
-#: src/diff.c:1375
+#: src/diff.c:1447
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "Dowiązania symboliczne %s i %s różnią się\n"
 
-#: src/diff.c:1462
+#: src/diff.c:1534
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Pliki %s i %s są identyczne\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff3.c:43
+#: src/diff3.c:51
 msgid "Randy Smith"
 msgstr "Randy Smith"
 
-#: src/diff3.c:356
+#: src/diff3.c:363
 #, c-format
 msgid "incompatible options"
 msgstr "niezgodne opcje"
 
-#: src/diff3.c:396
+#: src/diff3.c:403
 msgid "'-' specified for more than one input file"
 msgstr "„-” podany dla więcej niż jednego pliku wejściowego"
 
-#: src/diff3.c:447 src/diff3.c:1295 src/diff3.c:1698 src/diff3.c:1753
-#: src/sdiff.c:308 src/sdiff.c:846 src/sdiff.c:857
+#: src/diff3.c:445 src/diff3.c:1284 src/diff3.c:1683 src/diff3.c:1738
+#: src/sdiff.c:306 src/sdiff.c:843 src/sdiff.c:854
 msgid "read failed"
 msgstr "nieudany odczyt"
 
-#: src/diff3.c:480
+#: src/diff3.c:478
 msgid "-A, --show-all              output all changes, bracketing conflicts"
 msgstr ""
 "-A  --show-all              wypisanie wszystkich zmian, konflikty w nawiasach"
 
-#: src/diff3.c:482
+#: src/diff3.c:480
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
@@ -1174,31 +1175,31 @@ msgstr ""
 "-e  --ed                    wypisanie niezłączonych zmian między\n"
 "                                  STARY_PLIK a NOWY_PLIK do MÓJ_PLIK"
 
-#: src/diff3.c:484
+#: src/diff3.c:482
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
 msgstr "-E  --show-overlap          jak -e, ale z konfliktami w nawiasach"
 
-#: src/diff3.c:485
+#: src/diff3.c:483
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
 msgstr ""
 "-3  --easy-only             jak -e, ale z tylko z nienachodzącymi zmianami"
 
-#: src/diff3.c:486
+#: src/diff3.c:484
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
 msgstr "-x  --overlap-only          jak -e, ale tylko z nachodzącymi zmianami"
 
-#: src/diff3.c:487
+#: src/diff3.c:485
 msgid "-X                          like -x, but bracket conflicts"
 msgstr "-X                          jak -x, ale z konfliktami w nawiasach"
 
-#: src/diff3.c:488
+#: src/diff3.c:486
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
 msgstr "-i                          dodanie poleceń „w” i „q” do skryptu ed-a"
 
-#: src/diff3.c:490
+#: src/diff3.c:488
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
@@ -1206,23 +1207,23 @@ msgstr ""
 "-m, --merge                 wypisanie połączonego pliku zgodnie z -A,\n"
 "                                jeżeli nie było innych opcji"
 
-#: src/diff3.c:493
+#: src/diff3.c:491
 msgid "-a, --text                  treat all files as text"
 msgstr "-a  --text                  traktowanie plików jako tekstowych"
 
-#: src/diff3.c:494
+#: src/diff3.c:492
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
 msgstr "--strip-trailing-cr         pominięcie znaków nowej linii na wejściu"
 
-#: src/diff3.c:495
+#: src/diff3.c:493
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
 msgstr "-T  --initial-tab           wyrównanie linii przez użycie TAB-ów"
 
-#: src/diff3.c:496
+#: src/diff3.c:494
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
 msgstr "--diff-program=PROGRAM      użycie PROGRAMU do porównania plików"
 
-#: src/diff3.c:497
+#: src/diff3.c:495
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
@@ -1230,25 +1231,25 @@ msgstr ""
 "-L, --label=ETYKIETA        użycie ETYKIETY zamiast nazwy pliku\n"
 "                                (może być powtarzane do trzech razy)"
 
-#: src/diff3.c:500
+#: src/diff3.c:498
 msgid "    --help                  display this help and exit"
 msgstr "    --help                  wypisanie tej pomocy i zakończenie"
 
-#: src/diff3.c:501
+#: src/diff3.c:499
 msgid "-v, --version               output version information and exit"
 msgstr ""
 "-v  --version               wypisanie informacji o wersji i zakończenie"
 
-#: src/diff3.c:510
+#: src/diff3.c:508
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
 msgstr "Składnia: %s [OPCJA]... MÓJ_PLIK STARY_PLIK TWÓJ_PLIK\n"
 
-#: src/diff3.c:512
+#: src/diff3.c:510
 msgid "Compare three files line by line."
 msgstr "Porównanie trzech plików linia po linii."
 
-#: src/diff3.c:522
+#: src/diff3.c:520
 msgid ""
 "\n"
 "The default output format is a somewhat human-readable representation of\n"
@@ -1272,56 +1273,56 @@ msgstr ""
 "różnice i wypisuje połączony plik. Przy nietypowych danych wejściowych\n"
 "jest to bardziej elastyczne niż użycie ed-a.\n"
 
-#: src/diff3.c:534
+#: src/diff3.c:532
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
 msgstr ""
 "Status wyjściowy ma wartość 0 gdy polecenie wykonało się z prawidłowym\n"
 "wynikiem, 1 - jeżeli są konflikty, 2 - jeżeli są problemy."
 
-#: src/diff3.c:727
+#: src/diff3.c:725
 msgid "internal error: screwup in format of diff blocks"
 msgstr "bład wewnętrzny: spieprzony format bloków diff"
 
-#: src/diff3.c:1022
+#: src/diff3.c:1015
 #, c-format
 msgid "%s: diff failed: "
 msgstr "%s: diff nie zadziałał: "
 
-#: src/diff3.c:1044
+#: src/diff3.c:1037
 msgid "internal error: invalid diff type in process_diff"
 msgstr "błąd wewnętrzny: błędny typ diff w process_diff"
 
-#: src/diff3.c:1069
+#: src/diff3.c:1060
 msgid "invalid diff format; invalid change separator"
 msgstr "błędny format diff; błędny separator zmian"
 
-#: src/diff3.c:1305
+#: src/diff3.c:1294
 msgid "invalid diff format; incomplete last line"
 msgstr "błędny format diff; niekompletna ostatnia linia"
 
-#: src/diff3.c:1329 src/sdiff.c:276 src/util.c:969
+#: src/diff3.c:1318 src/sdiff.c:274 src/util.c:1069
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "nie mógł być wywołany program pomocniczy „%s”"
 
-#: src/diff3.c:1354
+#: src/diff3.c:1343
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "błędny format diff; nieprawidłowe znaki na początku linii"
 
-#: src/diff3.c:1427
+#: src/diff3.c:1416
 msgid "internal error: invalid diff type passed to output"
 msgstr "błąd wenwętrzny: błędny typ diff-a przekazany na wyjście"
 
-#: src/diff3.c:1700 src/diff3.c:1757
+#: src/diff3.c:1685 src/diff3.c:1742
 msgid "input file shrank"
 msgstr "plik wejściowy się zmniejszył"
 
-#: src/dir.c:156
+#: src/dir.c:154
 #, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "nie można porównać nazw plików „%s” i „%s”"
 
-#: src/dir.c:225
+#: src/dir.c:223
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: rekurencyjne zapętlenie katalogów"
@@ -1331,123 +1332,123 @@ msgstr "%s: rekurencyjne zapętlenie katalogów"
 msgid "Thomas Lord"
 msgstr "Thomas Lord"
 
-#: src/sdiff.c:174
+#: src/sdiff.c:173
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
 msgstr ""
 "-o, --output=PLIK            tryb interakcyjny, wyniki wysyłane do PLIKU"
 
-#: src/sdiff.c:176
+#: src/sdiff.c:175
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
 msgstr ""
 "-i  --ignore-case            traktowanie małych i wielkich liter tak samo"
 
-#: src/sdiff.c:177
+#: src/sdiff.c:176
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
 msgstr ""
 "-E  --ignore-tab-expansion   zignorowanie zmian spowodowanych rozwinięciem\n"
 "                               TAB-ów"
 
-#: src/sdiff.c:178
+#: src/sdiff.c:177
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
 msgstr "-Z  --ignore-trailing-space  ignorowanie znaków odstępu na końcu linii"
 
-#: src/sdiff.c:179
+#: src/sdiff.c:178
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
 msgstr "-b  --ignore-space-change    zignorowanie zmian ilości znaków odstępu"
 
-#: src/sdiff.c:180
+#: src/sdiff.c:179
 msgid "-W, --ignore-all-space       ignore all white space"
 msgstr "-W  --ignore-all-space       ignorowanie wszystkich znaków odstępu"
 
-#: src/sdiff.c:181
+#: src/sdiff.c:180
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
 msgstr "-B  --ignore-blank-lines     zignorowanie zmian liczby pustych linii"
 
-#: src/sdiff.c:182
+#: src/sdiff.c:181
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=RE  zignorowanie zmian w liniach pasujących\n"
 "                                  do RE"
 
-#: src/sdiff.c:183
+#: src/sdiff.c:182
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
 msgstr "--strip-trailing-cr          pominięcie znaków nowej linii na wejściu"
 
-#: src/sdiff.c:184
+#: src/sdiff.c:183
 msgid "-a, --text                   treat all files as text"
 msgstr "-a  --text                   traktowanie plików jako tekstowych"
 
-#: src/sdiff.c:186
+#: src/sdiff.c:185
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
 msgstr ""
 "-w ILE  --width=ILE          wypisanie najwyżej ILE (domyślnie 130) kolumn"
 
-#: src/sdiff.c:187
+#: src/sdiff.c:186
 msgid ""
 "-l, --left-column            output only the left column of common lines"
 msgstr ""
 "-I  --left-column            wypisanie tylko lewej kolumny dla wspólnych "
 "linii"
 
-#: src/sdiff.c:188
+#: src/sdiff.c:187
 msgid "-s, --suppress-common-lines  do not output common lines"
 msgstr "-s  --suppress-common-lines  bez wypisania wspólnych linii"
 
-#: src/sdiff.c:190
+#: src/sdiff.c:189
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
 msgstr "-t  --expand-tabs            rozwinięcie TAB-ów w spacje w wyniku"
 
-#: src/sdiff.c:191
+#: src/sdiff.c:190
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
 msgstr "    --tabsize=ILE            TAB-y co ILE (domyślnie 8) kolumn"
 
-#: src/sdiff.c:193
+#: src/sdiff.c:192
 msgid "-d, --minimal                try hard to find a smaller set of changes"
 msgstr ""
 "-d  --minimal                usiłowanie znalezienia mniejszego zbioru zmian"
 
-#: src/sdiff.c:194
+#: src/sdiff.c:193
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
 msgstr ""
 "-H  --speed-large-files      założenie: duże pliki i rozrzucone małe zmiany"
 
-#: src/sdiff.c:195
+#: src/sdiff.c:194
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
 msgstr "    --diff-program=PROGRAM  użycie PROGRAMU do porównania plików"
 
-#: src/sdiff.c:197
+#: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
 msgstr "    --help                   wypisanie tej pomocy i zakończenie"
 
-#: src/sdiff.c:198
+#: src/sdiff.c:197
 msgid "-v, --version                output version information and exit"
 msgstr ""
 "-v  --version                wypisanie informacji o wersji i zakończenie"
 
-#: src/sdiff.c:207
+#: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
 msgstr "Składnia: %s [OPCJA]... PLIK1 PLIK2\n"
 
-#: src/sdiff.c:209
+#: src/sdiff.c:208
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
 msgstr "Interaktywne łączenie różnic między PLIKIEM1 a PLIKIEM2."
 
-#: src/sdiff.c:330
+#: src/sdiff.c:328
 msgid "cannot interactively merge standard input"
 msgstr "nie mogę interakcyjnie łączyć standardowego wejścia"
 
-#: src/sdiff.c:597
+#: src/sdiff.c:594
 msgid "both files to be compared are directories"
 msgstr "oba mające być porównane pliki to katalogi"
 
-#: src/sdiff.c:820
+#: src/sdiff.c:817
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
 "eb:\tEdit then use both versions.\n"
@@ -1471,12 +1472,12 @@ msgstr ""
 "v:\tDołączenie wspólnych linii z podaniem informacji.\n"
 "q:\tZakończenie.\n"
 
-#: src/util.c:662
+#: src/util.c:755
 #, c-format
 msgid "unrecognized prefix: %s"
 msgstr "nierozpoznany prefiks: %s"
 
-#: src/util.c:692
+#: src/util.c:785
 #, c-format
 msgid "unparsable value for --palette"
 msgstr "wartość --palette niemożliwa do rozbioru"
index 152f6ee..32b9b96 100644 (file)
--- a/po/pt.po
+++ b/po/pt.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNU diffutils 3.7.41\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2021-08-01 18:56-0700\n"
+"POT-Creation-Date: 2023-05-21 01:51-0700\n"
 "PO-Revision-Date: 2021-07-23 07:11+0100\n"
 "Last-Translator: Pedro Albuquerque <pmra@protonmail.com>\n"
 "Language-Team: Portuguese <translation-team-pt@lists.sourceforge.net>\n"
@@ -19,29 +19,29 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Generator: Poedit 2.3\n"
 
-#: lib/argmatch.c:132
+#: lib/argmatch.c:145
 #, c-format
 msgid "invalid argument %s for %s"
 msgstr "argumento %s inválido para %s"
 
-#: lib/argmatch.c:133
+#: lib/argmatch.c:146
 #, c-format
 msgid "ambiguous argument %s for %s"
 msgstr "argumento %s ambíguo para %s"
 
-#: lib/argmatch.c:152 lib/argmatch.h:223
+#: lib/argmatch.c:165 lib/argmatch.h:242
 msgid "Valid arguments are:"
 msgstr "Os argumentos válidos são:"
 
-#: lib/c-stack.c:187
+#: lib/c-stack.c:186
 msgid "program error"
 msgstr "erro de programa"
 
-#: lib/c-stack.c:188
+#: lib/c-stack.c:187
 msgid "stack overflow"
 msgstr "transporte da pilha"
 
-#: lib/error.c:195
+#: lib/error.c:193
 msgid "Unknown system error"
 msgstr "Erro de sistema desconhecido"
 
@@ -197,83 +197,83 @@ msgstr "%s: opção requer um argumento -- \"%c\"\n"
 #. If you don't know what to put here, please see
 #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:355
+#: lib/quotearg.c:354
 msgid "`"
 msgstr "\""
 
-#: lib/quotearg.c:356
+#: lib/quotearg.c:355
 msgid "'"
 msgstr "\""
 
-#: lib/regcomp.c:135
+#: lib/regcomp.c:122
 msgid "Success"
 msgstr "Sucesso"
 
-#: lib/regcomp.c:138
+#: lib/regcomp.c:125
 msgid "No match"
 msgstr "Sem par"
 
-#: lib/regcomp.c:141
+#: lib/regcomp.c:128
 msgid "Invalid regular expression"
 msgstr "Expressão regular inválida"
 
-#: lib/regcomp.c:144
+#: lib/regcomp.c:131
 msgid "Invalid collation character"
 msgstr "Carácter de agrupamento inválido"
 
-#: lib/regcomp.c:147
+#: lib/regcomp.c:134
 msgid "Invalid character class name"
 msgstr "Nome de classe de carácter inválido"
 
-#: lib/regcomp.c:150
+#: lib/regcomp.c:137
 msgid "Trailing backslash"
 msgstr "Barra invertida final"
 
-#: lib/regcomp.c:153
+#: lib/regcomp.c:140
 msgid "Invalid back reference"
 msgstr "Referência de recuo inválida"
 
-#: lib/regcomp.c:156
+#: lib/regcomp.c:143
 msgid "Unmatched [, [^, [:, [., or [="
 msgstr "[, [^, [:, [., ou [= sem par"
 
-#: lib/regcomp.c:159
+#: lib/regcomp.c:146
 msgid "Unmatched ( or \\("
 msgstr "( ou \\( sem par"
 
-#: lib/regcomp.c:162
+#: lib/regcomp.c:149
 msgid "Unmatched \\{"
 msgstr "\\{ sem par"
 
-#: lib/regcomp.c:165
+#: lib/regcomp.c:152
 msgid "Invalid content of \\{\\}"
 msgstr "Conteúdo inválido de \\{\\}"
 
-#: lib/regcomp.c:168
+#: lib/regcomp.c:155
 msgid "Invalid range end"
 msgstr "Final de intervalo inválido"
 
-#: lib/regcomp.c:171
+#: lib/regcomp.c:158
 msgid "Memory exhausted"
 msgstr "Memória esgotada"
 
-#: lib/regcomp.c:174
+#: lib/regcomp.c:161
 msgid "Invalid preceding regular expression"
 msgstr "Expressão regular precedente inválida"
 
-#: lib/regcomp.c:177
+#: lib/regcomp.c:164
 msgid "Premature end of regular expression"
 msgstr "Fim prematuro de expressão regular"
 
-#: lib/regcomp.c:180
+#: lib/regcomp.c:167
 msgid "Regular expression too big"
 msgstr "Expressão regular muito grande"
 
-#: lib/regcomp.c:183
+#: lib/regcomp.c:170
 msgid "Unmatched ) or \\)"
 msgstr ") ou \\) sem par"
 
-#: lib/regcomp.c:676
+#: lib/regcomp.c:650
 msgid "No previous regular expression"
 msgstr "Sem expressão regular anterior"
 
@@ -468,17 +468,17 @@ msgstr "Página inicial %s: <%s>\n"
 msgid "General help using GNU software: <%s>\n"
 msgstr "Ajuda geral para usar programas GNU: <%s>\n"
 
-#: src/analyze.c:454 src/diff.c:1406
+#: src/analyze.c:455 src/diff.c:1478
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Ficheiros %s e %s diferem\n"
 
-#: src/analyze.c:455
+#: src/analyze.c:456
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "Ficheiros binários %s e %s diferem\n"
 
-#: src/analyze.c:706 src/diff3.c:1470 src/util.c:1254
+#: src/analyze.c:707 src/diff3.c:1457 src/util.c:1354
 msgid "No newline at end of file"
 msgstr "Sem newline no fim do ficheiro"
 
@@ -492,41 +492,42 @@ msgstr "Torbjorn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:120 src/diff.c:879 src/diff3.c:467 src/sdiff.c:160
+#: src/cmp.c:124 src/diff.c:939 src/diff3.c:465 src/sdiff.c:159
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Tente \"%s --help\" para mais informação."
 
-#: src/cmp.c:138
+#: src/cmp.c:142
 #, c-format
 msgid "invalid --ignore-initial value '%s'"
 msgstr "valor --ignore-initial \"%s\" inválido"
 
-#: src/cmp.c:148
+#: src/cmp.c:152
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr "as opções -l e -s são incompatíveis"
 
-#: src/cmp.c:156 src/diff.c:887 src/diff3.c:474 src/sdiff.c:168 src/sdiff.c:316
-#: src/sdiff.c:323 src/sdiff.c:876 src/util.c:852 src/util.c:952 src/util.c:959
+#: src/cmp.c:160 src/diff.c:947 src/diff3.c:472 src/sdiff.c:167 src/sdiff.c:314
+#: src/sdiff.c:321 src/sdiff.c:873 src/util.c:952 src/util.c:1052
+#: src/util.c:1059
 msgid "write failed"
 msgstr "falha de escrita"
 
-#: src/cmp.c:158 src/diff.c:889 src/diff.c:1471 src/diff3.c:476 src/sdiff.c:170
+#: src/cmp.c:162 src/diff.c:949 src/diff.c:1543 src/diff3.c:474 src/sdiff.c:169
 msgid "standard output"
 msgstr "a saída padrão"
 
-#: src/cmp.c:162
+#: src/cmp.c:166
 msgid "-b, --print-bytes          print differing bytes"
 msgstr "-b, --print-bytes          imprime bytes diferentes"
 
-#: src/cmp.c:163
+#: src/cmp.c:167
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
 msgstr ""
 "-i, --ignore-initial=NÚM          salta os primeiros NÚM bytes de ambas as "
 "entradas"
 
-#: src/cmp.c:164
+#: src/cmp.c:168
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
@@ -534,39 +535,39 @@ msgstr ""
 "-i, --ignore-initial=NÚM1:NÚM2    salta os primeiros NÚM1 bytes de FICH1 e\n"
 "                                      os primeiros NÚM2 bytes de FICH2"
 
-#: src/cmp.c:166
+#: src/cmp.c:170
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
 msgstr ""
 "-l, --verbose              imprime números de byte e valores de byte "
 "diferentes"
 
-#: src/cmp.c:167
+#: src/cmp.c:171
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
 msgstr "-n, --bytes=LIMITE         compara no máximo LIMITE bytes"
 
-#: src/cmp.c:168
+#: src/cmp.c:172
 msgid "-s, --quiet, --silent      suppress all normal output"
 msgstr "-s, --quiet, --silent      suprime toda a saída normal"
 
-#: src/cmp.c:169
+#: src/cmp.c:173
 msgid "    --help                 display this help and exit"
 msgstr "    --help                 mostra esta ajuda e sai"
 
-#: src/cmp.c:170
+#: src/cmp.c:174
 msgid "-v, --version              output version information and exit"
 msgstr "-v, --version              mostra informação da versão e sai"
 
-#: src/cmp.c:179
+#: src/cmp.c:183
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
 msgstr "Uso: %s [OPÇÃO]... FICH1 [FICH2 [NÚM1 [NÚM2]]]\n"
 
-#: src/cmp.c:181
+#: src/cmp.c:185
 msgid "Compare two files byte by byte."
 msgstr "Comparar dois ficheiros byte a byte."
 
-#: src/cmp.c:183
+#: src/cmp.c:187
 msgid ""
 "The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
 "at the beginning of each file (zero by default)."
@@ -574,14 +575,14 @@ msgstr ""
 "Os NÚM1 e NÚM2 opcionais especificam o número de bytes a saltar\n"
 "no início de cada ficheiro (0 por predefinição)."
 
-#: src/cmp.c:186 src/diff.c:999 src/diff3.c:514 src/sdiff.c:211
+#: src/cmp.c:190 src/diff.c:1059 src/diff3.c:512 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
 "Argumentos obrigatórios para opções longas também são obrigatórios para "
 "opções curtas.\n"
 
-#: src/cmp.c:192
+#: src/cmp.c:196
 msgid ""
 "SKIP values may be followed by the following multiplicative suffixes:\n"
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
@@ -592,196 +593,196 @@ msgstr ""
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
 "GB 1,000,000,000, G 1,073,741,824 e assim por diante para T, P, E, Z, Y."
 
-#: src/cmp.c:195
+#: src/cmp.c:199
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "Se um dos FICH for \"-\" ou omisso, lê a entrada padrão."
 
-#: src/cmp.c:196 src/diff.c:987 src/sdiff.c:221
+#: src/cmp.c:200 src/diff.c:1047 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr ""
 "O estado de saída é 0 se as entradas forem iguais, 1 se forem diferentes, 2 "
 "se houver problemas."
 
-#: src/cmp.c:243
+#: src/cmp.c:247
 #, c-format
 msgid "invalid --bytes value '%s'"
 msgstr "valor --bytes \"%s\" inválido"
 
-#: src/cmp.c:269 src/diff.c:797 src/diff3.c:361 src/sdiff.c:567
+#: src/cmp.c:273 src/diff.c:857 src/diff3.c:368 src/sdiff.c:564
 #, c-format
 msgid "missing operand after '%s'"
 msgstr "operando em falta após \"%s\""
 
-#: src/cmp.c:281 src/diff.c:799 src/diff3.c:363 src/sdiff.c:569
+#: src/cmp.c:285 src/diff.c:859 src/diff3.c:370 src/sdiff.c:566
 #, c-format
 msgid "extra operand '%s'"
 msgstr "operando extra \"%s\""
 
-#: src/cmp.c:507
+#: src/cmp.c:521
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s diferem: byte %s, linha %s\n"
 
-#: src/cmp.c:523
+#: src/cmp.c:537
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
 msgstr "%s %s diferem: byte %s, linha %s é %3o %s %3o %s\n"
 
-#: src/cmp.c:580
+#: src/cmp.c:594
 #, c-format
 msgid "cmp: EOF on %s which is empty\n"
 msgstr "cmp: EOF em %s que está vazio\n"
 
-#: src/cmp.c:594
+#: src/cmp.c:608
 #, c-format
 msgid "cmp: EOF on %s after byte %s, line %s\n"
 msgstr "cmp: EOF em %s após o byte %s, linha %s\n"
 
-#: src/cmp.c:595
+#: src/cmp.c:609
 #, c-format
 msgid "cmp: EOF on %s after byte %s, in line %s\n"
 msgstr "cmp: EOF em %s após o byte %s, na linha %s\n"
 
-#: src/cmp.c:601
+#: src/cmp.c:615
 #, c-format
 msgid "cmp: EOF on %s after byte %s\n"
 msgstr "cmp: EOF em %s após o byte %s\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:51
+#: src/diff.c:50
 msgid "Paul Eggert"
 msgstr "Paul Eggert"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:52
+#: src/diff.c:51
 msgid "Mike Haertel"
 msgstr "Mike Haertel"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:53
+#: src/diff.c:52
 msgid "David Hayes"
 msgstr "David Hayes"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:54
+#: src/diff.c:53
 msgid "Richard Stallman"
 msgstr "Richard Stallman"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:55
+#: src/diff.c:54
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:355
+#: src/diff.c:365
 #, c-format
 msgid "invalid context length '%s'"
 msgstr "tamanho de contexto inválido \"%s\""
 
-#: src/diff.c:438
+#: src/diff.c:487
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "paginação não suportada neste anfitrião"
 
-#: src/diff.c:453 src/diff3.c:341
+#: src/diff.c:502 src/diff3.c:348
 #, c-format
 msgid "too many file label options"
 msgstr "demasiadas opções de etiquetas de ficheiro"
 
-#: src/diff.c:530
+#: src/diff.c:579
 #, c-format
 msgid "invalid width '%s'"
 msgstr "largura \"%s\" inválida"
 
-#: src/diff.c:534
+#: src/diff.c:583
 msgid "conflicting width options"
 msgstr "opções de largura em conflito"
 
-#: src/diff.c:559
+#: src/diff.c:608
 #, c-format
 msgid "invalid horizon length '%s'"
 msgstr "tamanho horizontal \"%s\" inválido"
 
-#: src/diff.c:615
+#: src/diff.c:664
 #, c-format
 msgid "invalid tabsize '%s'"
 msgstr "tamanho de tabulação \"%s\" inválido"
 
-#: src/diff.c:619
+#: src/diff.c:668
 msgid "conflicting tabsize options"
 msgstr "opções de tabulação em conflito"
 
-#: src/diff.c:774
+#: src/diff.c:834
 msgid "--from-file and --to-file both specified"
 msgstr "ambas as opções --from-file e --to-file especificadas"
 
-#: src/diff.c:893
+#: src/diff.c:953
 msgid "    --normal                  output a normal diff (the default)"
 msgstr ""
 "    --normal                  imprime uma diferenciação normal (predefinição)"
 
-#: src/diff.c:894
+#: src/diff.c:954
 msgid "-q, --brief                   report only when files differ"
 msgstr "-q, --brief                   só reporta quando os ficheiros diferem"
 
-#: src/diff.c:895
+#: src/diff.c:955
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr ""
 "-s, --report-identical-files  reporta quando os dois ficheiros forem iguais"
 
-#: src/diff.c:896
+#: src/diff.c:956
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
 "-c, -C NÚM, --context[=NÚM]   imprime NÚM (predefinido como 3) linhas de "
 "contexto copiado"
 
-#: src/diff.c:897
+#: src/diff.c:957
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
 "-u, -U NÚM, --unified[=NÚM]   imprime NÚM (predefinido como 3) linhas de "
 "contexto unificado"
 
-#: src/diff.c:898
+#: src/diff.c:958
 msgid "-e, --ed                      output an ed script"
 msgstr "-e, --ed                      imprime um script ed"
 
-#: src/diff.c:899
+#: src/diff.c:959
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n, --rcs                     imprime uma diferenciação de formato RCS"
 
-#: src/diff.c:900
+#: src/diff.c:960
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side            imprime em duas colunas"
 
-#: src/diff.c:901
+#: src/diff.c:961
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
 "-W, --width=NÚM               imprime no máximo NÚM (predefinido como 130) "
 "colunas"
 
-#: src/diff.c:902
+#: src/diff.c:962
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr ""
 "    --left-column             imprime só a coluna esquerda de linhas comuns"
 
-#: src/diff.c:903
+#: src/diff.c:963
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "    --suppress-common-lines   não imprime linhas comuns"
 
-#: src/diff.c:905
+#: src/diff.c:965
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr ""
 "-p, --show-c-function         mostra em que função C está cada alteração"
 
-#: src/diff.c:906
+#: src/diff.c:966
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr ""
 "-F, --show-function-line=RE   mostra a linha mais recente correspondente a RE"
 
-#: src/diff.c:907
+#: src/diff.c:967
 msgid ""
 "    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
@@ -790,82 +791,82 @@ msgstr ""
 "carimbo\n"
 "                                (pode ser repetida)"
 
-#: src/diff.c:910
+#: src/diff.c:970
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr "-t, --expand-tabs             expande tabulações para espaços na saída"
 
-#: src/diff.c:911
+#: src/diff.c:971
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr "-T, --initial-tab             alinha tabulações prepondo tabulações"
 
-#: src/diff.c:912
+#: src/diff.c:972
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=NUM             tabulações a cada NÚM (predefinido como 8) "
 "colunas"
 
-#: src/diff.c:913
+#: src/diff.c:973
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
 "    --suppress-blank-empty    suprime espaços ou tabulações antes de linhas "
 "de saída vazias"
 
-#: src/diff.c:914
+#: src/diff.c:974
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr "-l, --paginate                passa a saída por \"pr\" para a paginar"
 
-#: src/diff.c:916
+#: src/diff.c:976
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr ""
 "-r, --recursive                 compara recursivamente todas as sub-pastas "
 "encontradas"
 
-#: src/diff.c:917
+#: src/diff.c:977
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr "    --no-dereference            não segue ligações simbólicas"
 
-#: src/diff.c:918
+#: src/diff.c:978
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr "-N, --new-file                  trata ficheiros ausentes como vazios"
 
-#: src/diff.c:919
+#: src/diff.c:979
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
 "    --unidirectional-new-file   trata primeiros ficheiros ausentes como "
 "vazios"
 
-#: src/diff.c:920
+#: src/diff.c:980
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ""
 "    --ignore-file-name-case     ignora maiúsculas ao comparar nomes de "
 "ficheiro"
 
-#: src/diff.c:921
+#: src/diff.c:981
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
 "    --no-ignore-file-name-case  considera maiúsculas ao comparar nomes de "
 "ficheiro"
 
-#: src/diff.c:922
+#: src/diff.c:982
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr "-x, --exclude=PADRÃO            exclui ficheiros que cumpram PADRÃO"
 
-#: src/diff.c:923
+#: src/diff.c:983
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
 "-X, --exclude-from=FICH         exclui ficheiros que cumpram qualquer padrão "
 "em FICH"
 
-#: src/diff.c:924
+#: src/diff.c:984
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr "-S, --starting-file=FICH        começa com FICH ao comparar pastas"
 
-#: src/diff.c:925
+#: src/diff.c:985
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
@@ -873,7 +874,7 @@ msgstr ""
 "    --from-file=FICH1           compara FICH1 a todos os operandos;\n"
 "                                  FICH1 pode ser uma pasta"
 
-#: src/diff.c:927
+#: src/diff.c:987
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
@@ -881,83 +882,83 @@ msgstr ""
 "    --to-file=FICH2             compara todos os operandos a FICH2;\n"
 "                                  FICH2 pode ser uma pasta"
 
-#: src/diff.c:930
+#: src/diff.c:990
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr ""
 "-i, --ignore-case               ignora diferenças de maiúsculas no conteúdo "
 "dos ficheiros"
 
-#: src/diff.c:931
+#: src/diff.c:991
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr ""
 "-E, --ignore-tab-expansion      ignora alterações devidas a expansão de "
 "tabulações"
 
-#: src/diff.c:932
+#: src/diff.c:992
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr "-Z, --ignore-trailing-space     ignora espaços no final das linhas"
 
-#: src/diff.c:933
+#: src/diff.c:993
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr ""
 "-b, --ignore-space-change       ignora alterações na quantidade de espaço em "
 "branco"
 
-#: src/diff.c:934
+#: src/diff.c:994
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w, --ignore-all-space          ignora todos os espaços em branco"
 
-#: src/diff.c:935
+#: src/diff.c:995
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr ""
 "-B, --ignore-blank-lines        ignora alterações onde as linhas estejam "
 "todas em branco"
 
-#: src/diff.c:936
+#: src/diff.c:996
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=RE  ignora alterações onde as linhas coincidam "
 "com RE"
 
-#: src/diff.c:938
+#: src/diff.c:998
 msgid "-a, --text                      treat all files as text"
 msgstr "-a, --text                      trata todos os ficheiros como texto"
 
-#: src/diff.c:939
+#: src/diff.c:999
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr         remove os carriage return finais na entrada"
 
-#: src/diff.c:941
+#: src/diff.c:1001
 msgid "    --binary                    read and write data in binary mode"
 msgstr "    --binary                    lê e escreve dados em modo binário"
 
-#: src/diff.c:944
+#: src/diff.c:1004
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
 "-D, --ifdef=NOME                imprime o ficheiro unido com diferenciação "
 "\"#ifdef NOME\""
 
-#: src/diff.c:945
+#: src/diff.c:1005
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr ""
 "    --TIPOG-group-format=FMTG   formata grupos de entrada TIPOG com FMTG"
 
-#: src/diff.c:946
+#: src/diff.c:1006
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr ""
 "    --line-format=FMTL          formata todas as linhas de entrada com FMTL"
 
-#: src/diff.c:947
+#: src/diff.c:1007
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr ""
 "    --TIPOL-line-format=FMTL    formata linhas de entrada TIPOL com FMTL"
 
-#: src/diff.c:948
+#: src/diff.c:1008
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
@@ -965,12 +966,12 @@ msgstr ""
 "  Estas opções de formato fornecem um controlo preciso sobre a saída\n"
 "    da diferenciação, generalizando -D/--ifdef."
 
-#: src/diff.c:950
+#: src/diff.c:1010
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
 "  TIPOL é \"old\", \"new\" ou \"unchanged\". TIPOG é TIPOL ou \"changed\"."
 
-#: src/diff.c:951
+#: src/diff.c:1011
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -999,7 +1000,7 @@ msgstr ""
 "        M  L+1\n"
 "    %(A=B?T:E)  se A igual a B então T senão E"
 
-#: src/diff.c:963
+#: src/diff.c:1023
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -1012,7 +1013,7 @@ msgstr ""
 "    %[-][LARG][.[PREC]]{doxX}n especificação estilo printf para número de "
 "linha de entrada"
 
-#: src/diff.c:967
+#: src/diff.c:1027
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1026,34 +1027,34 @@ msgstr ""
 "    %c\"\\OOO\"  o carácter com código octal OOO\n"
 "    C    o carácter C (outros caracteres representam-se a si mesmos)"
 
-#: src/diff.c:973
+#: src/diff.c:1033
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr ""
 "-d, --minimal            tenta arduamente encontrar um conjunto de "
 "alterações mais pequeno"
 
-#: src/diff.c:974
+#: src/diff.c:1034
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr "    --horizon-lines=NÚM  mantém NÚM linhas dos prefixo e sufixo comuns"
 
-#: src/diff.c:975
+#: src/diff.c:1035
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
 "    --speed-large-files  presume ficheiros grandes e muitas alterações "
 "pequenas espalhadas"
 
-#: src/diff.c:976
+#: src/diff.c:1036
 msgid ""
 "    --color[=WHEN]       color output; WHEN is 'never', 'always', or "
 "'auto';\n"
 "                           plain --color means --color='auto'"
 msgstr ""
-"    --color[=QUANDO]     colorir a saída; QUANDO pode ser \"never\", \"always"
-"\" ou \"auto\"\n"
+"    --color[=QUANDO]     colorir a saída; QUANDO pode ser \"never\", "
+"\"always\" ou \"auto\"\n"
 "                           --color significa --color='auto'"
 
-#: src/diff.c:978
+#: src/diff.c:1038
 msgid ""
 "    --palette=PALETTE    the colors to use when --color is active; PALETTE "
 "is\n"
@@ -1064,114 +1065,114 @@ msgstr ""
 "                           uma lista separada por vírgulas de capacidades "
 "terminfo"
 
-#: src/diff.c:981
+#: src/diff.c:1041
 msgid "    --help               display this help and exit"
 msgstr "    --help               mostra esta ajuda e sai"
 
-#: src/diff.c:982
+#: src/diff.c:1042
 msgid "-v, --version            output version information and exit"
 msgstr "-v, --version            mostra informação da versão e sai"
 
-#: src/diff.c:984
+#: src/diff.c:1044
 msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
-"FICHEIROS são \"FICH1 FICH2\" ou \"PST1 PST2\" or \"PST FICH\" ou \"FICH PST"
-"\"."
+"FICHEIROS são \"FICH1 FICH2\" ou \"PST1 PST2\" or \"PST FICH\" ou \"FICH "
+"PST\"."
 
-#: src/diff.c:985
+#: src/diff.c:1045
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr ""
 "Se --from-file ou --to-file forem indicados, não há restrições em "
 "FICHEIRO(s)."
 
-#: src/diff.c:986 src/diff3.c:533 src/sdiff.c:220
+#: src/diff.c:1046 src/diff3.c:531 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
 msgstr "Se FICHEIRO for \"-\", lê a entrada padrão."
 
-#: src/diff.c:996
+#: src/diff.c:1056
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Uso: %s [OPÇÃO]... FICHEIROS\n"
 
-#: src/diff.c:997
+#: src/diff.c:1057
 msgid "Compare FILES line by line."
 msgstr "Comparar FICHEIROS linha a linha."
 
-#: src/diff.c:1034
+#: src/diff.c:1094
 #, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "valor \"%s\" da opção %s em conflito"
 
-#: src/diff.c:1047
+#: src/diff.c:1107
 #, c-format
 msgid "conflicting output style options"
 msgstr "opções de estilo da saída em conflito"
 
-#: src/diff.c:1063
+#: src/diff.c:1123
 #, c-format
 msgid "invalid color '%s'"
 msgstr "cor \"%s\" inválida"
 
-#: src/diff.c:1119 src/diff.c:1329
+#: src/diff.c:1197 src/diff.c:1401
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Só em %s: %s\n"
 
-#: src/diff.c:1253
+#: src/diff.c:1325
 msgid "cannot compare '-' to a directory"
 msgstr "impossível comparar \"-\" a uma pasta"
 
-#: src/diff.c:1288
+#: src/diff.c:1360
 msgid "-D option not supported with directories"
 msgstr "opção -D não suportada em pastas"
 
-#: src/diff.c:1297
+#: src/diff.c:1369
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Pastas comuns: %s e %s\n"
 
-#: src/diff.c:1339 src/diff.c:1389
+#: src/diff.c:1411 src/diff.c:1461
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr "O ficheiro %s é %s enquanto o ficheiro %s é %s\n"
 
-#: src/diff.c:1375
+#: src/diff.c:1447
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "As ligações simbólicas %s e %s diferem\n"
 
-#: src/diff.c:1462
+#: src/diff.c:1534
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Os ficheiros %s e %s são idênticos\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff3.c:43
+#: src/diff3.c:51
 msgid "Randy Smith"
 msgstr "Randy Smith"
 
-#: src/diff3.c:356
+#: src/diff3.c:363
 #, c-format
 msgid "incompatible options"
 msgstr "opções incompatíveis"
 
-#: src/diff3.c:396
+#: src/diff3.c:403
 msgid "'-' specified for more than one input file"
 msgstr "\"-\" especificado para mais de um ficheiro de entrada"
 
-#: src/diff3.c:447 src/diff3.c:1295 src/diff3.c:1698 src/diff3.c:1753
-#: src/sdiff.c:308 src/sdiff.c:846 src/sdiff.c:857
+#: src/diff3.c:445 src/diff3.c:1284 src/diff3.c:1683 src/diff3.c:1738
+#: src/sdiff.c:306 src/sdiff.c:843 src/sdiff.c:854
 msgid "read failed"
 msgstr "read falhou"
 
-#: src/diff3.c:480
+#: src/diff3.c:478
 msgid "-A, --show-all              output all changes, bracketing conflicts"
 msgstr ""
 "-A, --show-all              imprime todas as alterações, conflitos entre "
 "chavetas"
 
-#: src/diff3.c:482
+#: src/diff3.c:480
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
@@ -1179,11 +1180,11 @@ msgstr ""
 "-e, --ed                    imprime um script ed incorporando as alterações\n"
 "                                de FICHVELHO para SEUFICH para MEUFICH"
 
-#: src/diff3.c:484
+#: src/diff3.c:482
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
 msgstr "-E, --show-overlap          como -e, mas com conflitos entre chavetas"
 
-#: src/diff3.c:485
+#: src/diff3.c:483
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
@@ -1191,22 +1192,22 @@ msgstr ""
 "-3, --easy-only             como -e, mas incorpora só alterações que não se "
 "sobreponham"
 
-#: src/diff3.c:486
+#: src/diff3.c:484
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
 msgstr ""
 "-x, --overlap-only          como -e, mas incorpora só alterações que se "
 "sobreponham"
 
-#: src/diff3.c:487
+#: src/diff3.c:485
 msgid "-X                          like -x, but bracket conflicts"
 msgstr "-X                          como -x, mas com conflitos entre chavetas"
 
-#: src/diff3.c:488
+#: src/diff3.c:486
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
 msgstr "-i                          anexa comandos \"w\" e \"q\" a scripts ed"
 
-#: src/diff3.c:490
+#: src/diff3.c:488
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
@@ -1214,23 +1215,23 @@ msgstr ""
 "-m, --merge                 imprime o ficheiro unido real, de acordo com\n"
 "                                -A se nenhuma outra opção for indicada"
 
-#: src/diff3.c:493
+#: src/diff3.c:491
 msgid "-a, --text                  treat all files as text"
 msgstr "-a, --text                  trata todos os ficheiros como texto"
 
-#: src/diff3.c:494
+#: src/diff3.c:492
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
 msgstr "    --strip-trailing-cr     remove carriage return finais na entrada"
 
-#: src/diff3.c:495
+#: src/diff3.c:493
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
 msgstr "-T, --initial-tab           alinha tabulações prepondo tabulações"
 
-#: src/diff3.c:496
+#: src/diff3.c:494
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
 msgstr "    --diff-program=PROGRAMA usa PROGRAMA para comparar ficheiros"
 
-#: src/diff3.c:497
+#: src/diff3.c:495
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
@@ -1238,24 +1239,24 @@ msgstr ""
 "-L, --label=ETIQUETA        usa ETIQUETA em vez do nome de ficheiro\n"
 "                                (pode ser repetida até três vezes)"
 
-#: src/diff3.c:500
+#: src/diff3.c:498
 msgid "    --help                  display this help and exit"
 msgstr "    --help                  mostra esta ajuda e sai"
 
-#: src/diff3.c:501
+#: src/diff3.c:499
 msgid "-v, --version               output version information and exit"
 msgstr "-v, --version               mostra informação da versão e sai"
 
-#: src/diff3.c:510
+#: src/diff3.c:508
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
 msgstr "Uso: %s [OPÇÃO]... MEUFICH FICHVELHO SEUFICH\n"
 
-#: src/diff3.c:512
+#: src/diff3.c:510
 msgid "Compare three files line by line."
 msgstr "Comparar três ficheiros linha a linha."
 
-#: src/diff3.c:522
+#: src/diff3.c:520
 msgid ""
 "\n"
 "The default output format is a somewhat human-readable representation of\n"
@@ -1280,56 +1281,56 @@ msgstr ""
 "e imprima o ficheiro unido real. Para entradas incomuns, isto é mais\n"
 "robusto do que usar o ed.\n"
 
-#: src/diff3.c:534
+#: src/diff3.c:532
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
 msgstr ""
 "O estado de saída é 0 se tiver sucesso, 1 para conflitos, 2 se houver "
 "problemas."
 
-#: src/diff3.c:727
+#: src/diff3.c:725
 msgid "internal error: screwup in format of diff blocks"
 msgstr "erro interno: confusão no formato de blocos de diferença"
 
-#: src/diff3.c:1022
+#: src/diff3.c:1015
 #, c-format
 msgid "%s: diff failed: "
 msgstr "%s: diff falhou: "
 
-#: src/diff3.c:1044
+#: src/diff3.c:1037
 msgid "internal error: invalid diff type in process_diff"
 msgstr "erro interno: tipo de diff inválido em process_diff"
 
-#: src/diff3.c:1069
+#: src/diff3.c:1060
 msgid "invalid diff format; invalid change separator"
 msgstr "formato de diff inválido; separador de alterações inválido"
 
-#: src/diff3.c:1305
+#: src/diff3.c:1294
 msgid "invalid diff format; incomplete last line"
 msgstr "formato de diff inválido; última linha incompleta"
 
-#: src/diff3.c:1329 src/sdiff.c:276 src/util.c:969
+#: src/diff3.c:1318 src/sdiff.c:274 src/util.c:1069
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "impossível chamar o programa subsidiário \"%s\""
 
-#: src/diff3.c:1354
+#: src/diff3.c:1343
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "formato de diff inválido; caracteres iniciais de linha incorrectos"
 
-#: src/diff3.c:1427
+#: src/diff3.c:1416
 msgid "internal error: invalid diff type passed to output"
 msgstr "erro interno: tipo de diff inválido passado à saída"
 
-#: src/diff3.c:1700 src/diff3.c:1757
+#: src/diff3.c:1685 src/diff3.c:1742
 msgid "input file shrank"
 msgstr "ficheiro de entrada encolhido"
 
-#: src/dir.c:156
+#: src/dir.c:154
 #, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "impossível comparar nomes de ficheiro \"%s\" e \"%s\""
 
-#: src/dir.c:225
+#: src/dir.c:223
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: ciclo de pasta recursiva"
@@ -1339,132 +1340,132 @@ msgstr "%s: ciclo de pasta recursiva"
 msgid "Thomas Lord"
 msgstr "Thomas Lord"
 
-#: src/sdiff.c:174
+#: src/sdiff.c:173
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
 msgstr ""
 "-o, --output=FILE            opera interactivamente, enviando a saída para "
 "FICH"
 
-#: src/sdiff.c:176
+#: src/sdiff.c:175
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
 msgstr ""
 "-i, --ignore-case            considera maiúsculas e minúsculas como sendo "
 "iguais"
 
-#: src/sdiff.c:177
+#: src/sdiff.c:176
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
 msgstr ""
 "-E, --ignore-tab-expansion   ignora alterações devidas a expansão de "
 "tabulações"
 
-#: src/sdiff.c:178
+#: src/sdiff.c:177
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
 msgstr "-Z, --ignore-trailing-space  ignora espaços no final das linhas"
 
-#: src/sdiff.c:179
+#: src/sdiff.c:178
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
 msgstr ""
 "-b, --ignore-space-change    ignora alterações na quantidade de espaço em "
 "branco"
 
-#: src/sdiff.c:180
+#: src/sdiff.c:179
 msgid "-W, --ignore-all-space       ignore all white space"
 msgstr "-W, --ignore-all-space       ignora todo o espaço em branco"
 
-#: src/sdiff.c:181
+#: src/sdiff.c:180
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
 msgstr ""
 "-B, --ignore-blank-lines     ignora alterações cujas linhas estejam todas em "
 "branco"
 
-#: src/sdiff.c:182
+#: src/sdiff.c:181
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=RE  ignora alterações cujas linhas coincidam com "
 "RE"
 
-#: src/sdiff.c:183
+#: src/sdiff.c:182
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
 msgstr "    --strip-trailing-cr      remove carriage return finais na entrada"
 
-#: src/sdiff.c:184
+#: src/sdiff.c:183
 msgid "-a, --text                   treat all files as text"
 msgstr "-a, --text                   trata todos os ficheiros como texto"
 
-#: src/sdiff.c:186
+#: src/sdiff.c:185
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
 msgstr ""
 "-w, --width=NUM              imprime no máximo NÚM (predefinido como 130) "
 "colunas"
 
-#: src/sdiff.c:187
+#: src/sdiff.c:186
 msgid ""
 "-l, --left-column            output only the left column of common lines"
 msgstr ""
 "-l, --left-column            imprime só a coluna esquerda de linhas comuns"
 
-#: src/sdiff.c:188
+#: src/sdiff.c:187
 msgid "-s, --suppress-common-lines  do not output common lines"
 msgstr "-s, --suppress-common-lines  não imprime linhas comuns"
 
-#: src/sdiff.c:190
+#: src/sdiff.c:189
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
 msgstr "-t, --expand-tabs            expande tabulações para espaços na saída"
 
-#: src/sdiff.c:191
+#: src/sdiff.c:190
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=NÚM            tabulações a cada NÚM (predefinido como 8) "
 "colunas"
 
-#: src/sdiff.c:193
+#: src/sdiff.c:192
 msgid "-d, --minimal                try hard to find a smaller set of changes"
 msgstr ""
 "-d, --minimal                tenta arduamente encontrar um conjunto de "
 "alterações mais pequeno"
 
-#: src/sdiff.c:194
+#: src/sdiff.c:193
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
 msgstr ""
 "-H, --speed-large-files      presume ficheiros grandes, muitas alterações "
 "pequenas espalhadas"
 
-#: src/sdiff.c:195
+#: src/sdiff.c:194
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
 msgstr "    --diff-program=PROGRAMA  usa PROGRAMA para comparar ficheiros"
 
-#: src/sdiff.c:197
+#: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
 msgstr "    --help                   mostra esta ajuda e sai"
 
-#: src/sdiff.c:198
+#: src/sdiff.c:197
 msgid "-v, --version                output version information and exit"
 msgstr "-v, --version                imprime informação da versão e sai"
 
-#: src/sdiff.c:207
+#: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
 msgstr "Uso: %s [OPÇÃO]... FICHEIRO1 FICHEIRO2\n"
 
-#: src/sdiff.c:209
+#: src/sdiff.c:208
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
 msgstr "União lado-a-lado de diferenças entre FICHEIRO1 e FICHEIRO2."
 
-#: src/sdiff.c:330
+#: src/sdiff.c:328
 msgid "cannot interactively merge standard input"
 msgstr "impossível unir interactivamente a entrada padrão"
 
-#: src/sdiff.c:597
+#: src/sdiff.c:594
 msgid "both files to be compared are directories"
 msgstr "ambos os ficheiros a comparar são pastas"
 
-#: src/sdiff.c:820
+#: src/sdiff.c:817
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
 "eb:\tEdit then use both versions.\n"
@@ -1489,12 +1490,12 @@ msgstr ""
 "v:\tinclui linhas comuns verbosamente.\n"
 "q:\tsai.\n"
 
-#: src/util.c:662
+#: src/util.c:755
 #, c-format
 msgid "unrecognized prefix: %s"
 msgstr "prefixo não reconhecido: %s"
 
-#: src/util.c:692
+#: src/util.c:785
 #, c-format
 msgid "unparsable value for --palette"
 msgstr "valor não analisável para --palette"
index 242643d..3a06cc1 100644 (file)
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: diffutils 3.7.41\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2021-08-01 18:56-0700\n"
+"POT-Creation-Date: 2023-05-21 01:51-0700\n"
 "PO-Revision-Date: 2021-07-20 05:51-0300\n"
 "Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n"
 "Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge."
@@ -22,29 +22,29 @@ msgstr ""
 "X-Generator: Gtranslator 40.0\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 
-#: lib/argmatch.c:132
+#: lib/argmatch.c:145
 #, c-format
 msgid "invalid argument %s for %s"
 msgstr "argumento inválido para %s: %s"
 
-#: lib/argmatch.c:133
+#: lib/argmatch.c:146
 #, c-format
 msgid "ambiguous argument %s for %s"
 msgstr "argumento ambíguo %s para %s"
 
-#: lib/argmatch.c:152 lib/argmatch.h:223
+#: lib/argmatch.c:165 lib/argmatch.h:242
 msgid "Valid arguments are:"
 msgstr "Argumentos válidos são:"
 
-#: lib/c-stack.c:187
+#: lib/c-stack.c:186
 msgid "program error"
 msgstr "erro do programa"
 
-#: lib/c-stack.c:188
+#: lib/c-stack.c:187
 msgid "stack overflow"
 msgstr "estouro de pilha"
 
-#: lib/error.c:195
+#: lib/error.c:193
 msgid "Unknown system error"
 msgstr "Erro desconhecido de sistema"
 
@@ -200,83 +200,83 @@ msgstr "%s: a opção exige um argumento -- \"%c\"\n"
 #. If you don't know what to put here, please see
 #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:355
+#: lib/quotearg.c:354
 msgid "`"
 msgstr "“"
 
-#: lib/quotearg.c:356
+#: lib/quotearg.c:355
 msgid "'"
 msgstr "”"
 
-#: lib/regcomp.c:135
+#: lib/regcomp.c:122
 msgid "Success"
 msgstr "Sucesso"
 
-#: lib/regcomp.c:138
+#: lib/regcomp.c:125
 msgid "No match"
 msgstr "Nenhuma ocorrência do padrão"
 
-#: lib/regcomp.c:141
+#: lib/regcomp.c:128
 msgid "Invalid regular expression"
 msgstr "Expressão regular inválida"
 
-#: lib/regcomp.c:144
+#: lib/regcomp.c:131
 msgid "Invalid collation character"
 msgstr "caractere de combinação inválido"
 
-#: lib/regcomp.c:147
+#: lib/regcomp.c:134
 msgid "Invalid character class name"
 msgstr "Nome inválido da classe de caracteres"
 
-#: lib/regcomp.c:150
+#: lib/regcomp.c:137
 msgid "Trailing backslash"
 msgstr "Barra invertida no final"
 
-#: lib/regcomp.c:153
+#: lib/regcomp.c:140
 msgid "Invalid back reference"
 msgstr "Retrorreferência inválida"
 
-#: lib/regcomp.c:156
+#: lib/regcomp.c:143
 msgid "Unmatched [, [^, [:, [., or [="
 msgstr "[, [^, [:, [. ou [= sem correspondente"
 
-#: lib/regcomp.c:159
+#: lib/regcomp.c:146
 msgid "Unmatched ( or \\("
 msgstr "( ou \\( sem correspondente"
 
-#: lib/regcomp.c:162
+#: lib/regcomp.c:149
 msgid "Unmatched \\{"
 msgstr "\\{ sem correspondente"
 
-#: lib/regcomp.c:165
+#: lib/regcomp.c:152
 msgid "Invalid content of \\{\\}"
 msgstr "Conteúdo inválido de \\{\\}"
 
-#: lib/regcomp.c:168
+#: lib/regcomp.c:155
 msgid "Invalid range end"
 msgstr "Fim do intervalo inválido"
 
-#: lib/regcomp.c:171
+#: lib/regcomp.c:158
 msgid "Memory exhausted"
 msgstr "Memória esgotada"
 
-#: lib/regcomp.c:174
+#: lib/regcomp.c:161
 msgid "Invalid preceding regular expression"
 msgstr "A expressão regular precedente é inválida"
 
-#: lib/regcomp.c:177
+#: lib/regcomp.c:164
 msgid "Premature end of regular expression"
 msgstr "Fim prematuro da expressão regular"
 
-#: lib/regcomp.c:180
+#: lib/regcomp.c:167
 msgid "Regular expression too big"
 msgstr "Expressão regular grande demais"
 
-#: lib/regcomp.c:183
+#: lib/regcomp.c:170
 msgid "Unmatched ) or \\)"
 msgstr ") ou \\) sem correspondente"
 
-#: lib/regcomp.c:676
+#: lib/regcomp.c:650
 msgid "No previous regular expression"
 msgstr "Nenhuma expressão regular anterior"
 
@@ -474,17 +474,17 @@ msgstr "Página do %s: <%s>\n"
 msgid "General help using GNU software: <%s>\n"
 msgstr "Ajuda em geral no uso de software GNU: <%s>\n"
 
-#: src/analyze.c:454 src/diff.c:1406
+#: src/analyze.c:455 src/diff.c:1478
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Os arquivos %s e %s são diferentes\n"
 
-#: src/analyze.c:455
+#: src/analyze.c:456
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "Os arquivos binários %s e %s são diferentes\n"
 
-#: src/analyze.c:706 src/diff3.c:1470 src/util.c:1254
+#: src/analyze.c:707 src/diff3.c:1457 src/util.c:1354
 msgid "No newline at end of file"
 msgstr "Nenhum caractere de nova linha no final do arquivo"
 
@@ -498,40 +498,41 @@ msgstr "Torbjorn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:120 src/diff.c:879 src/diff3.c:467 src/sdiff.c:160
+#: src/cmp.c:124 src/diff.c:939 src/diff3.c:465 src/sdiff.c:159
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Tente \"%s --help\" para mais informações."
 
-#: src/cmp.c:138
+#: src/cmp.c:142
 #, c-format
 msgid "invalid --ignore-initial value '%s'"
 msgstr "valor inválido --ignore-initial \"%s\""
 
-#: src/cmp.c:148
+#: src/cmp.c:152
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr "as opções -l e -s são incompatíveis"
 
-#: src/cmp.c:156 src/diff.c:887 src/diff3.c:474 src/sdiff.c:168 src/sdiff.c:316
-#: src/sdiff.c:323 src/sdiff.c:876 src/util.c:852 src/util.c:952 src/util.c:959
+#: src/cmp.c:160 src/diff.c:947 src/diff3.c:472 src/sdiff.c:167 src/sdiff.c:314
+#: src/sdiff.c:321 src/sdiff.c:873 src/util.c:952 src/util.c:1052
+#: src/util.c:1059
 msgid "write failed"
 msgstr "erro de escrita"
 
-#: src/cmp.c:158 src/diff.c:889 src/diff.c:1471 src/diff3.c:476 src/sdiff.c:170
+#: src/cmp.c:162 src/diff.c:949 src/diff.c:1543 src/diff3.c:474 src/sdiff.c:169
 msgid "standard output"
 msgstr "saída padrão"
 
-#: src/cmp.c:162
+#: src/cmp.c:166
 msgid "-b, --print-bytes          print differing bytes"
 msgstr "-b, --print-bytes          imprime os bytes diferentes"
 
-#: src/cmp.c:163
+#: src/cmp.c:167
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
 msgstr ""
 "-i, --ignore-initial=SALTO        ignora os primeiros SALTO bytes da entrada"
 
-#: src/cmp.c:164
+#: src/cmp.c:168
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
@@ -541,39 +542,39 @@ msgstr ""
 "ARQUIVO1\n"
 "                                    e os primeiros SALTO2 bytes do ARQUIVO2"
 
-#: src/cmp.c:166
+#: src/cmp.c:170
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
 msgstr ""
 "-l, --verbose              emite os números de bytes e os valores de\n"
 "                             todos os bytes diferentes"
 
-#: src/cmp.c:167
+#: src/cmp.c:171
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
 msgstr "-n, --bytes=LIMITE         compara no máximo LIMITE bytes"
 
-#: src/cmp.c:168
+#: src/cmp.c:172
 msgid "-s, --quiet, --silent      suppress all normal output"
 msgstr "-s, --quiet, --silent      suprime todas saídas normais"
 
-#: src/cmp.c:169
+#: src/cmp.c:173
 msgid "    --help                 display this help and exit"
 msgstr "    --help                 mostra esta ajuda e sai"
 
-#: src/cmp.c:170
+#: src/cmp.c:174
 msgid "-v, --version              output version information and exit"
 msgstr "-v, --version              mostra informação sobre a versão e sai"
 
-#: src/cmp.c:179
+#: src/cmp.c:183
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
 msgstr "Uso: %s [OPÇÃO]... ARQUIVO1 [ARQUIVO2 [SALTO1 [SALTO2]]]\n"
 
-#: src/cmp.c:181
+#: src/cmp.c:185
 msgid "Compare two files byte by byte."
 msgstr "Compara dois arquivos byte por byte."
 
-#: src/cmp.c:183
+#: src/cmp.c:187
 msgid ""
 "The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
 "at the beginning of each file (zero by default)."
@@ -581,13 +582,13 @@ msgstr ""
 "Os argumentos opcionais SALTO1 e SALTO2 especificam o número de\n"
 "bytes para ignorar no começo de cada arquivo (zero por padrão)."
 
-#: src/cmp.c:186 src/diff.c:999 src/diff3.c:514 src/sdiff.c:211
+#: src/cmp.c:190 src/diff.c:1059 src/diff3.c:512 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
 "Argumentos obrigatórios para opções longas também o são para opções curtas.\n"
 
-#: src/cmp.c:192
+#: src/cmp.c:196
 msgid ""
 "SKIP values may be followed by the following multiplicative suffixes:\n"
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
@@ -599,196 +600,196 @@ msgstr ""
 "GB 1,000,000,000, G 1,073,741,824,\n"
 "e assim por diante para T, P, E, Z, Y."
 
-#: src/cmp.c:195
+#: src/cmp.c:199
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "Se ARQUIVO for igual a \"-\" ou for omitido, ler da entrada padrão."
 
-#: src/cmp.c:196 src/diff.c:987 src/sdiff.c:221
+#: src/cmp.c:200 src/diff.c:1047 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr ""
 "Status de saída é 0 se as entradas forem iguais, 1 se diferente e 2 se "
 "problema."
 
-#: src/cmp.c:243
+#: src/cmp.c:247
 #, c-format
 msgid "invalid --bytes value '%s'"
 msgstr "valor inválido --bytes \"%s\""
 
-#: src/cmp.c:269 src/diff.c:797 src/diff3.c:361 src/sdiff.c:567
+#: src/cmp.c:273 src/diff.c:857 src/diff3.c:368 src/sdiff.c:564
 #, c-format
 msgid "missing operand after '%s'"
 msgstr "faltando operando após \"%s\""
 
-#: src/cmp.c:281 src/diff.c:799 src/diff3.c:363 src/sdiff.c:569
+#: src/cmp.c:285 src/diff.c:859 src/diff3.c:370 src/sdiff.c:566
 #, c-format
 msgid "extra operand '%s'"
 msgstr "operando extra \"%s\""
 
-#: src/cmp.c:507
+#: src/cmp.c:521
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s e %s são diferentes: byte %s, linha %s\n"
 
-#: src/cmp.c:523
+#: src/cmp.c:537
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
 msgstr "%s e %s são diferentes: byte %s, linha %s é %3o %s %3o %s\n"
 
-#: src/cmp.c:580
+#: src/cmp.c:594
 #, c-format
 msgid "cmp: EOF on %s which is empty\n"
 msgstr "cmp: Fim de arquivo (EOF) em %s que está vazio\n"
 
-#: src/cmp.c:594
+#: src/cmp.c:608
 #, c-format
 msgid "cmp: EOF on %s after byte %s, line %s\n"
 msgstr "cmp: Fim de arquivo (EOF) em %s após byte %s, linha %s\n"
 
-#: src/cmp.c:595
+#: src/cmp.c:609
 #, c-format
 msgid "cmp: EOF on %s after byte %s, in line %s\n"
 msgstr "cmp: Fim de arquivo (EOF) em %s após byte %s, na linha %s\n"
 
-#: src/cmp.c:601
+#: src/cmp.c:615
 #, c-format
 msgid "cmp: EOF on %s after byte %s\n"
 msgstr "cmp: Fim de arquivo (EOF) em %s após byte %s\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:51
+#: src/diff.c:50
 msgid "Paul Eggert"
 msgstr "Paul Eggert"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:52
+#: src/diff.c:51
 msgid "Mike Haertel"
 msgstr "Mike Haertel"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:53
+#: src/diff.c:52
 msgid "David Hayes"
 msgstr "David Hayes"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:54
+#: src/diff.c:53
 msgid "Richard Stallman"
 msgstr "Richard Stallman"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:55
+#: src/diff.c:54
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:355
+#: src/diff.c:365
 #, c-format
 msgid "invalid context length '%s'"
 msgstr "o comprimento do contexto não é válido \"%s\""
 
-#: src/diff.c:438
+#: src/diff.c:487
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "sem suporte a paginação neste computador"
 
-#: src/diff.c:453 src/diff3.c:341
+#: src/diff.c:502 src/diff3.c:348
 #, c-format
 msgid "too many file label options"
 msgstr "número excessivo de opções de rótulo de arquivo"
 
-#: src/diff.c:530
+#: src/diff.c:579
 #, c-format
 msgid "invalid width '%s'"
 msgstr "largura inválida \"%s\""
 
-#: src/diff.c:534
+#: src/diff.c:583
 msgid "conflicting width options"
 msgstr "opções de largura conflitantes"
 
-#: src/diff.c:559
+#: src/diff.c:608
 #, c-format
 msgid "invalid horizon length '%s'"
 msgstr "comprimento do horizonte inválido \"%s\""
 
-#: src/diff.c:615
+#: src/diff.c:664
 #, c-format
 msgid "invalid tabsize '%s'"
 msgstr "tamanho de tabulação inválido \"%s\""
 
-#: src/diff.c:619
+#: src/diff.c:668
 msgid "conflicting tabsize options"
 msgstr "opções de tamanho de tabulação conflitantes"
 
-#: src/diff.c:774
+#: src/diff.c:834
 msgid "--from-file and --to-file both specified"
 msgstr "ambos --from-file e --to-file especificados"
 
-#: src/diff.c:893
+#: src/diff.c:953
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "    --normal                  cria um diff no formato normal (padrão)"
 
-#: src/diff.c:894
+#: src/diff.c:954
 msgid "-q, --brief                   report only when files differ"
 msgstr ""
 "-q, --brief                   indica apenas se os arquivos forem diferentes"
 
-#: src/diff.c:895
+#: src/diff.c:955
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr ""
 "-s, --report-identical-files  indica quando dois arquivos forem o idênticos"
 
-#: src/diff.c:896
+#: src/diff.c:956
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
 "-c, -C NÚM, --context[=NÚM]   cria NÚM (padrão 3) linhas de contexto copiado"
 
-#: src/diff.c:897
+#: src/diff.c:957
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
 "-u, -U NÚM, --unified[=NÚM]   cria NÚM (padrão 3) linhas de contexto "
 "unificado"
 
-#: src/diff.c:898
+#: src/diff.c:958
 msgid "-e, --ed                      output an ed script"
 msgstr "-e, --ed                      cria um script para o editor ed"
 
-#: src/diff.c:899
+#: src/diff.c:959
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n, --rcs                     cria um diff no formato RCS"
 
-#: src/diff.c:900
+#: src/diff.c:960
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side            cria em duas colunas"
 
-#: src/diff.c:901
+#: src/diff.c:961
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
 "-W, --width=NÚM               limita a saída a NÚM colunas por linha (padrão "
 "130)"
 
-#: src/diff.c:902
+#: src/diff.c:962
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr ""
 "    --left-column             emite apenas a coluna da esquerda das linhas\n"
 "                                idênticas"
 
-#: src/diff.c:903
+#: src/diff.c:963
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "    --suppress-common-lines   não exibe as linhas idênticas"
 
-#: src/diff.c:905
+#: src/diff.c:965
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr ""
 "-p, --show-c-function         mostra em qual função C está cada alteração"
 
-#: src/diff.c:906
+#: src/diff.c:966
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr ""
 "-F, --show-function-line=ER   mostra a linha mais recente correspondendo à ER"
 
-#: src/diff.c:907
+#: src/diff.c:967
 msgid ""
 "    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
@@ -796,89 +797,89 @@ msgstr ""
 "    --label RÓTULO            usa RÓTULO ao invés do nome do arquivo e\n"
 "                                carimbo de tempo (pode ser repetido)"
 
-#: src/diff.c:910
+#: src/diff.c:970
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr ""
 "-t, --expand-tabs             expande as tabulações para espaços na saída"
 
-#: src/diff.c:911
+#: src/diff.c:971
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr ""
 "-T, --initial-tab             alinha tabulações introduzindo uma\n"
 "                                tabulação no início"
 
-#: src/diff.c:912
+#: src/diff.c:972
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=NÚM             paradas de tabulação a cada NÚM colunas\n"
 "                                (padrão=8)"
 
-#: src/diff.c:913
+#: src/diff.c:973
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
 "    --suppress-blank-empty    suprime espaço ou tabulação antes de linhas\n"
 "                                vazias na saída"
 
-#: src/diff.c:914
+#: src/diff.c:974
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr ""
 "-l, --paginate                passa a saída por meio de \"pr\" para paginá-la"
 
-#: src/diff.c:916
+#: src/diff.c:976
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr ""
 "-r, --recursive                 compara recursivamente os subdiretórios\n"
 "                                  encontrados"
 
-#: src/diff.c:917
+#: src/diff.c:977
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr "    --no-dereference            não interpreta links simbólicos"
 
-#: src/diff.c:918
+#: src/diff.c:978
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr ""
 "-N, --new-file                  considera os arquivos ausentes como vazios"
 
-#: src/diff.c:919
+#: src/diff.c:979
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
 "    --unidirectional-new-file   considera os primeiros arquivos ausentes\n"
 "                                  como vazios"
 
-#: src/diff.c:920
+#: src/diff.c:980
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ""
 "    --ignore-file-name-case     não faz distinção entre letras maiúsculas e\n"
 "                                  minúsculas nos nomes dos arquivos"
 
-#: src/diff.c:921
+#: src/diff.c:981
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
 "    --no-ignore-file-name-case  faz distinção entre letras maiúsculas e\n"
 "                                  minúsculas nos nomes dos arquivos"
 
-#: src/diff.c:922
+#: src/diff.c:982
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr ""
 "-x, --exclude=PADRÃO            exclui arquivos correspondendo a PADRÃO"
 
-#: src/diff.c:923
+#: src/diff.c:983
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
 "-X, --exclude-from=ARQUIVO      exclui arquivos com correspondam a qualquer\n"
 "                                  padrão contido em ARQUIVO"
 
-#: src/diff.c:924
+#: src/diff.c:984
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
 "-S, --starting-file=ARQUIVO     inicia por ARQUIVO ao comparar diretórios"
 
-#: src/diff.c:925
+#: src/diff.c:985
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
@@ -886,7 +887,7 @@ msgstr ""
 "    --from-file=ARQUIVO1        compara ARQUIVO1 com todos os operandos;\n"
 "                                  ARQUIVO1 pode ser um diretório"
 
-#: src/diff.c:927
+#: src/diff.c:987
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
@@ -894,25 +895,25 @@ msgstr ""
 "    --to-file=ARQUIVO2          compara todos os operandos com ARQUIVO2;\n"
 "                                  ARQUIVO2 pode ser um diretório"
 
-#: src/diff.c:930
+#: src/diff.c:990
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr ""
 "-i, --ignore-case               não faz distinção entre letras maiúsculas e\n"
 "                                  minúsculas no conteúdo do arquivo"
 
-#: src/diff.c:931
+#: src/diff.c:991
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr ""
 "-E, --ignore-tab-expansion      ignora as diferenças causadas pela expansão\n"
 "                                  da tabulação"
 
-#: src/diff.c:932
+#: src/diff.c:992
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr ""
 "-Z, --ignore-trailing-space     ignora espaços em branco no fim das linhas"
 
-#: src/diff.c:933
+#: src/diff.c:993
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr ""
@@ -920,59 +921,59 @@ msgstr ""
 "espaços\n"
 "                                  em branco"
 
-#: src/diff.c:934
+#: src/diff.c:994
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w, --ignore-all-space          ignora todos os espaços em branco"
 
-#: src/diff.c:935
+#: src/diff.c:995
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr ""
 "-B, --ignore-blank-lines        ignora diferenças onde as linhas estão vazias"
 
-#: src/diff.c:936
+#: src/diff.c:996
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=ER  ignora as diferenças nas linhas que\n"
 "                                  correspondem à expressão regular ER"
 
-#: src/diff.c:938
+#: src/diff.c:998
 msgid "-a, --text                      treat all files as text"
 msgstr "-a, --text                      trata todos os arquivos como texto"
 
-#: src/diff.c:939
+#: src/diff.c:999
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr         remove o caractere de retorno de carro\n"
 "                                  (CR) ao final da linha na entrada"
 
-#: src/diff.c:941
+#: src/diff.c:1001
 msgid "    --binary                    read and write data in binary mode"
 msgstr "    --binary                    lê e escreve os dados em modo binário"
 
-#: src/diff.c:944
+#: src/diff.c:1004
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
 "-D, --ifdef=NOME                exibe o arquivo mesclado incluindo\n"
 "                                  \"#ifndef NOME\" nas diferenças"
 
-#: src/diff.c:945
+#: src/diff.c:1005
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr ""
 "    --GTYPE-group-format=GFMT   formata grupos de entrada GTYPE com GFMT"
 
-#: src/diff.c:946
+#: src/diff.c:1006
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr ""
 "    --line-format=LFMT          formata todas as linhas de entrada com LFMT"
 
-#: src/diff.c:947
+#: src/diff.c:1007
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr ""
 "    --LTYPE-line-format=LFMT    formata linhas de entrada LTYPE com LFMT"
 
-#: src/diff.c:948
+#: src/diff.c:1008
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
@@ -980,13 +981,13 @@ msgstr ""
 "  Essa opções de formatação fornece um controle refinado sobre a saída\n"
 "    das diferenças, generalizando -D/--ifdef."
 
-#: src/diff.c:950
+#: src/diff.c:1010
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
 "  LTYPE pode ser \"old\", \"new\" ou \"unchanged\". GTYPE é LTYPE ou "
 "\"changed\"."
 
-#: src/diff.c:951
+#: src/diff.c:1011
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -1017,7 +1018,7 @@ msgstr ""
 "        M  L+1\n"
 "    %(A=B?T:E)  se A igual B, então T; senão E"
 
-#: src/diff.c:963
+#: src/diff.c:1023
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -1030,7 +1031,7 @@ msgstr ""
 "    %[-][LARGURA][.[PREC]]{doxX}n  especificação estilo printf() do número\n"
 "                                   da linha da utilizando"
 
-#: src/diff.c:967
+#: src/diff.c:1027
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1044,36 +1045,36 @@ msgstr ""
 "    %c'\\OOO'  o caractere com código octal OOO\n"
 "    C    o caractere C (outros caracteres representam a si próprios)"
 
-#: src/diff.c:973
+#: src/diff.c:1033
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr ""
 "-d, --minimal            se esforça para localizar o menor conjunto\n"
 "                           de diferenças"
 
-#: src/diff.c:974
+#: src/diff.c:1034
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr ""
 "    --horizon-lines=NÚM  mantém NÚM linhas de prefixo e sufixo idênticos"
 
-#: src/diff.c:975
+#: src/diff.c:1035
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
 "    --speed-large-files  assume arquivos grandes e muitas alterações\n"
 "                           pequenas espalhadas"
 
-#: src/diff.c:976
+#: src/diff.c:1036
 msgid ""
 "    --color[=WHEN]       color output; WHEN is 'never', 'always', or "
 "'auto';\n"
 "                           plain --color means --color='auto'"
 msgstr ""
-"    --color[=QUANDO]     colore a saída; QUANDO pode ser \"never\", \"always"
-"\",\n"
-"                           ou \"auto\"; só --color resulta em --color=\"auto"
-"\""
+"    --color[=QUANDO]     colore a saída; QUANDO pode ser \"never\", "
+"\"always\",\n"
+"                           ou \"auto\"; só --color resulta em --"
+"color=\"auto\""
 
-#: src/diff.c:978
+#: src/diff.c:1038
 msgid ""
 "    --palette=PALETTE    the colors to use when --color is active; PALETTE "
 "is\n"
@@ -1083,113 +1084,113 @@ msgstr ""
 "                           PALETA é uma lista de capacidades de terminfo\n"
 "                           separadas por caractere de dois pontos"
 
-#: src/diff.c:981
+#: src/diff.c:1041
 msgid "    --help               display this help and exit"
 msgstr "    --help               mostra esta ajuda e sai"
 
-#: src/diff.c:982
+#: src/diff.c:1042
 msgid "-v, --version            output version information and exit"
 msgstr "-v, --version            mostra as informações da versão e sai"
 
-#: src/diff.c:984
+#: src/diff.c:1044
 msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
 "ARQUIVOS são \"ARQUIVO1 ARQUIVO2\", \"DIR1 DIR2\", \"DIR ARQUIVO\" ou "
 "\"ARQUIVO DIR\"."
 
-#: src/diff.c:985
+#: src/diff.c:1045
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr ""
 "Se --from-file ou --to-file for especificado, não há restrição em ARQUIVO(s)."
 
-#: src/diff.c:986 src/diff3.c:533 src/sdiff.c:220
+#: src/diff.c:1046 src/diff3.c:531 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
 msgstr "Se um ARQUIVO for igual a \"-\", lê da entrada padrão."
 
-#: src/diff.c:996
+#: src/diff.c:1056
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Uso: %s [OPÇÃO]... ARQUIVOS\n"
 
-#: src/diff.c:997
+#: src/diff.c:1057
 msgid "Compare FILES line by line."
 msgstr "Compara ARQUIVOS linha por linha."
 
-#: src/diff.c:1034
+#: src/diff.c:1094
 #, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "opção %s com valor conflitante \"%s\""
 
-#: src/diff.c:1047
+#: src/diff.c:1107
 #, c-format
 msgid "conflicting output style options"
 msgstr "opções conflitantes de estilo de saída"
 
-#: src/diff.c:1063
+#: src/diff.c:1123
 #, c-format
 msgid "invalid color '%s'"
 msgstr "cor inválida \"%s\""
 
-#: src/diff.c:1119 src/diff.c:1329
+#: src/diff.c:1197 src/diff.c:1401
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Somente em %s: %s\n"
 
-#: src/diff.c:1253
+#: src/diff.c:1325
 msgid "cannot compare '-' to a directory"
 msgstr "não é possível comparar \"-\" com um diretório"
 
-#: src/diff.c:1288
+#: src/diff.c:1360
 msgid "-D option not supported with directories"
 msgstr "Sem suporte à opção -D com diretórios"
 
-#: src/diff.c:1297
+#: src/diff.c:1369
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Subdiretórios idênticos: %s e %s\n"
 
-#: src/diff.c:1339 src/diff.c:1389
+#: src/diff.c:1411 src/diff.c:1461
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr "O arquivo %s é %s, enquanto o arquivo %s é %s\n"
 
-#: src/diff.c:1375
+#: src/diff.c:1447
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "Os links simbólicos %s e %s são diferentes\n"
 
-#: src/diff.c:1462
+#: src/diff.c:1534
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Os aquivos %s e %s são idênticos\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff3.c:43
+#: src/diff3.c:51
 msgid "Randy Smith"
 msgstr "Randy Smith"
 
-#: src/diff3.c:356
+#: src/diff3.c:363
 #, c-format
 msgid "incompatible options"
 msgstr "opções incompatíveis"
 
-#: src/diff3.c:396
+#: src/diff3.c:403
 msgid "'-' specified for more than one input file"
 msgstr "\"-\" especificado para mais de um arquivo de entrada"
 
-#: src/diff3.c:447 src/diff3.c:1295 src/diff3.c:1698 src/diff3.c:1753
-#: src/sdiff.c:308 src/sdiff.c:846 src/sdiff.c:857
+#: src/diff3.c:445 src/diff3.c:1284 src/diff3.c:1683 src/diff3.c:1738
+#: src/sdiff.c:306 src/sdiff.c:843 src/sdiff.c:854
 msgid "read failed"
 msgstr "falha de leitura"
 
-#: src/diff3.c:480
+#: src/diff3.c:478
 msgid "-A, --show-all              output all changes, bracketing conflicts"
 msgstr ""
 "-A, --show-all              exibe todas as diferenças, com os conflitos\n"
 "                              entre parênteses"
 
-#: src/diff3.c:482
+#: src/diff3.c:480
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
@@ -1198,13 +1199,13 @@ msgstr ""
 "                              diferenças entre ARQUIVO1 e ARQUIVO2\n"
 "                              em ARQUIVO3"
 
-#: src/diff3.c:484
+#: src/diff3.c:482
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
 msgstr ""
 "-E, --show-overlap          similar a -e, mas exibe conflitos entre "
 "parênteses"
 
-#: src/diff3.c:485
+#: src/diff3.c:483
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
@@ -1213,7 +1214,7 @@ msgstr ""
 "alterações\n"
 "                              que não se sobreponham"
 
-#: src/diff3.c:486
+#: src/diff3.c:484
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
 msgstr ""
@@ -1221,17 +1222,17 @@ msgstr ""
 "alterações\n"
 "                              que se sobrepõem"
 
-#: src/diff3.c:487
+#: src/diff3.c:485
 msgid "-X                          like -x, but bracket conflicts"
 msgstr ""
 "-X                          similar a -x, mas exibe conflitos entre parentes"
 
-#: src/diff3.c:488
+#: src/diff3.c:486
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
 msgstr ""
 "-i                          anexa os comandos \"w\" e \"q\" aos scripts de ed"
 
-#: src/diff3.c:490
+#: src/diff3.c:488
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
@@ -1239,27 +1240,27 @@ msgstr ""
 "-m, --merge                 emite arquivo mesclado atual, conforme\n"
 "                              -A se nenhuma outra opções for fornecida"
 
-#: src/diff3.c:493
+#: src/diff3.c:491
 msgid "-a, --text                  treat all files as text"
 msgstr "-a, --text                  trata todos os arquivos como texto"
 
-#: src/diff3.c:494
+#: src/diff3.c:492
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr     remove o caractere de retorno de carro\n"
 "                              (CR) ao final da linha na entrada"
 
-#: src/diff3.c:495
+#: src/diff3.c:493
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
 msgstr ""
 "-T, --initial-tab           alinha tabulações introduzindo uma\n"
 "                              tabulação no início."
 
-#: src/diff3.c:496
+#: src/diff3.c:494
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
 msgstr "    --diff-program=PROGRAMA  usa o PROGRAMA para comparar os arquivos"
 
-#: src/diff3.c:497
+#: src/diff3.c:495
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
@@ -1267,24 +1268,24 @@ msgstr ""
 "-L, --label RÓTULO          usa RÓTULO ao invés do nome do arquivo\n"
 "                                (pode ser repetido até três vezes)"
 
-#: src/diff3.c:500
+#: src/diff3.c:498
 msgid "    --help                  display this help and exit"
 msgstr "    --help                  mostra esta ajuda e sai"
 
-#: src/diff3.c:501
+#: src/diff3.c:499
 msgid "-v, --version               output version information and exit"
 msgstr "-v, --version               mostra informação da versão e sai"
 
-#: src/diff3.c:510
+#: src/diff3.c:508
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
 msgstr "Uso: %s [OPÇÃO]... ARQUIVO1 ARQUIVO2 ARQUIVO3\n"
 
-#: src/diff3.c:512
+#: src/diff3.c:510
 msgid "Compare three files line by line."
 msgstr "Compara três arquivos linha por linha."
 
-#: src/diff3.c:522
+#: src/diff3.c:520
 msgid ""
 "\n"
 "The default output format is a somewhat human-readable representation of\n"
@@ -1308,54 +1309,54 @@ msgstr ""
 "internalmente e emite o arquivo mesclado atual. Para entradas incomuns,\n"
 "isto é mais robusto do que usar o ed.\n"
 
-#: src/diff3.c:534
+#: src/diff3.c:532
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
 msgstr "Status de saída é 0 se houver sucesso, 1 se conflitos e 2 se problema."
 
-#: src/diff3.c:727
+#: src/diff3.c:725
 msgid "internal error: screwup in format of diff blocks"
 msgstr "erro interno: confusão no formato dos blocos diff"
 
-#: src/diff3.c:1022
+#: src/diff3.c:1015
 #, c-format
 msgid "%s: diff failed: "
 msgstr "%s: diff falhou: "
 
-#: src/diff3.c:1044
+#: src/diff3.c:1037
 msgid "internal error: invalid diff type in process_diff"
 msgstr "erro interno: tipo de diff inválido em process_diff"
 
-#: src/diff3.c:1069
+#: src/diff3.c:1060
 msgid "invalid diff format; invalid change separator"
 msgstr "formato de diff inválido; separador de diferença inválido"
 
-#: src/diff3.c:1305
+#: src/diff3.c:1294
 msgid "invalid diff format; incomplete last line"
 msgstr "formato de diff inválido; última linha incompleta"
 
-#: src/diff3.c:1329 src/sdiff.c:276 src/util.c:969
+#: src/diff3.c:1318 src/sdiff.c:274 src/util.c:1069
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "o programa subsidiário \"%s\" não pôde ser invocado"
 
-#: src/diff3.c:1354
+#: src/diff3.c:1343
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "formato de diff inválido; caracteres incorretos na linha de início"
 
-#: src/diff3.c:1427
+#: src/diff3.c:1416
 msgid "internal error: invalid diff type passed to output"
 msgstr "erro interno: tipo de diff inválido passado para a saída"
 
-#: src/diff3.c:1700 src/diff3.c:1757
+#: src/diff3.c:1685 src/diff3.c:1742
 msgid "input file shrank"
 msgstr "o arquivo de entrada diminuiu"
 
-#: src/dir.c:156
+#: src/dir.c:154
 #, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "não foi possível comparar os nomes dos arquivos \"%s\" e \"%s\""
 
-#: src/dir.c:225
+#: src/dir.c:223
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: loop de diretório recursivo"
@@ -1365,136 +1366,136 @@ msgstr "%s: loop de diretório recursivo"
 msgid "Thomas Lord"
 msgstr "Thomas Lord"
 
-#: src/sdiff.c:174
+#: src/sdiff.c:173
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
 msgstr ""
 "-o, --output=ARQUIVO         age interativamente, enviando a saída para "
 "ARQUIVO"
 
-#: src/sdiff.c:176
+#: src/sdiff.c:175
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
 msgstr ""
 "-i, --ignore-case            não faz distinção entre letras maiúsculas\n"
 "                              e minúsculas"
 
-#: src/sdiff.c:177
+#: src/sdiff.c:176
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
 msgstr ""
 "-E, --ignore-tab-expansion   ignorar as diferenças causadas pela expansão\n"
 "                               da tabulação"
 
-#: src/sdiff.c:178
+#: src/sdiff.c:177
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
 msgstr ""
 "-Z, --ignore-trailing-space  ignora espaços em branco no fim das linhas"
 
-#: src/sdiff.c:179
+#: src/sdiff.c:178
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
 msgstr ""
 "-b, --ignore-space-change    ignora as diferenças na quantidade de espaços\n"
 "                               em branco"
 
-#: src/sdiff.c:180
+#: src/sdiff.c:179
 msgid "-W, --ignore-all-space       ignore all white space"
 msgstr "-W, --ignore-all-space       ignora todos os espaços em branco"
 
-#: src/sdiff.c:181
+#: src/sdiff.c:180
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
 msgstr ""
 "-B, --ignore-blank-lines     ignora diferenças onde as linhas estão vazias"
 
-#: src/sdiff.c:182
+#: src/sdiff.c:181
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=ER  ignora as diferenças em linhas que "
 "correspondem\n"
 "                                  à Expressão Regular"
 
-#: src/sdiff.c:183
+#: src/sdiff.c:182
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr      remove o caractere de retorno de carro\n"
 "                               (CR) ao final da linha na entrada"
 
-#: src/sdiff.c:184
+#: src/sdiff.c:183
 msgid "-a, --text                   treat all files as text"
 msgstr "-a, --text                   trata todos os arquivos como texto"
 
-#: src/sdiff.c:186
+#: src/sdiff.c:185
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
 msgstr ""
 "-w, --width=NÚM              emite no máximo NÚM (padrão 130) colunas linhas"
 
-#: src/sdiff.c:187
+#: src/sdiff.c:186
 msgid ""
 "-l, --left-column            output only the left column of common lines"
 msgstr ""
 "-l, --left-column            emite apenas a coluna da esquerda das linhas\n"
 "                               idênticas"
 
-#: src/sdiff.c:188
+#: src/sdiff.c:187
 msgid "-s, --suppress-common-lines  do not output common lines"
 msgstr "-s, --suppress-common-lines  não emite as linhas idênticas"
 
-#: src/sdiff.c:190
+#: src/sdiff.c:189
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
 msgstr ""
 "-t, --expand-tabs            expande as tabulações para espaços na saída"
 
-#: src/sdiff.c:191
+#: src/sdiff.c:190
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=NÚM            paradas de tabulação a cada NÚM colunas\n"
 "                               (padrão=8)"
 
-#: src/sdiff.c:193
+#: src/sdiff.c:192
 msgid "-d, --minimal                try hard to find a smaller set of changes"
 msgstr ""
 "-d, --minimal                se esforça para localizar o menor conjunto\n"
 "                               de diferenças"
 
-#: src/sdiff.c:194
+#: src/sdiff.c:193
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
 msgstr ""
 "-H, --speed-large-files      assume arquivos grandes e muitas alterações\n"
 "                               pequenas espalhadas"
 
-#: src/sdiff.c:195
+#: src/sdiff.c:194
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
 msgstr "    --diff-program=PROGRAMA  usa o PROGRAMA para comparar os arquivos"
 
-#: src/sdiff.c:197
+#: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
 msgstr "    --help                   mostra esta ajuda e sai"
 
-#: src/sdiff.c:198
+#: src/sdiff.c:197
 msgid "-v, --version                output version information and exit"
 msgstr "-v, --version                mostra informação da versão e sai"
 
-#: src/sdiff.c:207
+#: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
 msgstr "Uso: %s [OPÇÃO]... ARQUIVO1 ARQUIVO2\n"
 
-#: src/sdiff.c:209
+#: src/sdiff.c:208
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
 msgstr "Mesclagem lado a lado das diferenças entre ARQUIVO1 e ARQUIVO2."
 
-#: src/sdiff.c:330
+#: src/sdiff.c:328
 msgid "cannot interactively merge standard input"
 msgstr "não foi possível mesclar interativamente a entrada padrão"
 
-#: src/sdiff.c:597
+#: src/sdiff.c:594
 msgid "both files to be compared are directories"
 msgstr "os dois arquivos a serem comparados são diretórios"
 
-#: src/sdiff.c:820
+#: src/sdiff.c:817
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
 "eb:\tEdit then use both versions.\n"
@@ -1518,12 +1519,12 @@ msgstr ""
 "v:\tInclui verbosamente as linhas idênticas.\n"
 "q:\tSai.\n"
 
-#: src/util.c:662
+#: src/util.c:755
 #, c-format
 msgid "unrecognized prefix: %s"
 msgstr "prefixo desconhecido: %s"
 
-#: src/util.c:692
+#: src/util.c:785
 #, c-format
 msgid "unparsable value for --palette"
 msgstr "valor não analisável para --palette"
index e9ea49d..8653996 100644 (file)
Binary files a/po/ro.gmo and b/po/ro.gmo differ
index c911b55..c7bda62 100644 (file)
--- a/po/ro.po
+++ b/po/ro.po
@@ -1,55 +1,71 @@
-# Mesajele în limba românã pentru diffutils-2.8.3
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# Acest fi?ier este distribuit sub aceea?i licen?? ca ?i pachetul diffutils
-# Eugen Hoanca <eugenh@urban-grafx.ro>, 2003.
+# translation of diffutils-3.8.43.po to Romanian
+# Mesajele în limba română pentru diffutils
+# Copyright © 2003, 2021, 2023 Free Software Foundation, Inc.
+# Acest fișier este distribuit sub aceeași licență ca și pachetul diffutils
+# This file is distributed under the same license as the diffutils package.
+#
+# Eugen Hoanca <eugenh@urban-grafx.ro>, 2003 diffutils-2.8.3.
+# Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>, 2021-2023.
+#
+# Cronologia traducerii fișierului „diffutils”:
+# Traducerea inițială, făcută de EH, pentru versiunea diffutils 2.8.3.
+# Traducerea inițială, făcută de R-GC, pentru versiunea diffutils 3.7.41, 2021.
+# Traducerea inițială, făcută de R-GC, pentru versiunea diffutils 3.8.43, 2023.
+# Actualizare a traducerii pentru versiunea Y, făcută de X, Z(anul).
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: diffutils 2.8.3\n"
+"Project-Id-Version: diffutils 3.8.43\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2021-08-01 18:56-0700\n"
-"PO-Revision-Date: 2003-08-22 08:43+0300\n"
-"Last-Translator: Eugen Hoanca <eugenh@urban-grafx.ro>\n"
+"POT-Creation-Date: 2023-05-21 01:51-0700\n"
+"PO-Revision-Date: 2023-01-01 21:24+0100\n"
+"Last-Translator: Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>\n"
 "Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
 "Language: ro\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ISO-8859-2\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || ((n%100) > 0 && "
+"(n%100) < 20)) ? 1 : 2);\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
+"X-Generator: Poedit 3.2.2\n"
+"X-Poedit-Bookmarks: 87,-1,-1,-1,-1,-1,-1,-1,-1,-1\n"
 
-#: lib/argmatch.c:132
+#: lib/argmatch.c:145
 #, c-format
 msgid "invalid argument %s for %s"
-msgstr ""
+msgstr "argument %s nevalid pentru %s"
 
-#: lib/argmatch.c:133
+#: lib/argmatch.c:146
 #, c-format
 msgid "ambiguous argument %s for %s"
-msgstr ""
+msgstr "argument %s ambiguu pentru %s"
 
-#: lib/argmatch.c:152 lib/argmatch.h:223
+#: lib/argmatch.c:165 lib/argmatch.h:242
 msgid "Valid arguments are:"
-msgstr ""
+msgstr "Argumentele valide sunt:"
 
-#: lib/c-stack.c:187
+#: lib/c-stack.c:186
 msgid "program error"
 msgstr "eroare de program"
 
-#: lib/c-stack.c:188
+# Am tradus inițial ca:stivă plină(overflow), dar cu toate că mi se pare o formulă apropiată;
+# am ales această variantă care reprezintă exact ce înseamnă: „stack overflow”
+#: lib/c-stack.c:187
 msgid "stack overflow"
-msgstr "stivã plinã(overflow)"
+msgstr "stivă debordată"
 
-#: lib/error.c:195
+#: lib/error.c:193
 msgid "Unknown system error"
-msgstr "Eroare de sistem necunoscutã"
+msgstr "Eroare de sistem necunoscută"
 
 #: lib/file-type.c:40
 msgid "regular empty file"
-msgstr "fiºier obiºnuit(regular) vid"
+msgstr "fișier obișnuit gol"
 
 #: lib/file-type.c:40
 msgid "regular file"
-msgstr "fiºier obiºnuit"
+msgstr "fișier obișnuit"
 
 #: lib/file-type.c:43
 msgid "directory"
@@ -57,11 +73,11 @@ msgstr "director"
 
 #: lib/file-type.c:46
 msgid "symbolic link"
-msgstr "legãturã simbolicã"
+msgstr "legătură simbolică"
 
 #: lib/file-type.c:52
 msgid "message queue"
-msgstr "coadã(queue) de mesaje"
+msgstr "coadă(queue) de mesaje"
 
 #: lib/file-type.c:55
 msgid "semaphore"
@@ -69,115 +85,150 @@ msgstr "semafor"
 
 #: lib/file-type.c:58
 msgid "shared memory object"
-msgstr "obiect memorie globalã(shared memory)"
-
+msgstr "obiect de memorie partajat"
+
+# NOTĂ: să intru în contact cu dezvoltatorii, pentru a ști ce au vrut să spună...
+# Am făcut-o, m-am pus în contact cu ei:
+# Mulțumiri lui Jim Meyering ce mi-a întins o mînă de ajutor și m-a „luminat”:
+# a "typed memory object" is a POSIX-specified construct. See
+# https://pubs.opengroup.org/onlinepubs/009695399/functions/posix_typed_mem_open.html,
+# so probably deserves a literal translation.
+# Am intrat în pagină, și-am găsit:
+# The posix_typed_mem_open() function shall establish a connection between the typed memory object specified by the string pointed to by name and a file descriptor. It shall create an open file description that refers to the typed memory object and a file descriptor that refers to that open file description.
+# Concluzia mea: „obiect de memorie tipizat”
 #: lib/file-type.c:61
-#, fuzzy
 msgid "typed memory object"
-msgstr "obiect memorie globalã(shared memory)"
+msgstr "obiect de memorie tipizat"
 
 #: lib/file-type.c:66
 msgid "block special file"
-msgstr "fiºier bloc special"
+msgstr "fișier special de bloc"
 
 #: lib/file-type.c:69
 msgid "character special file"
-msgstr "fiºier caracter special"
+msgstr "fișier special de caracter"
 
 #: lib/file-type.c:72
 msgid "contiguous data"
-msgstr ""
+msgstr "date învecinate(în continuare)"
 
+# primul intrat, primul ieșit(fifo=first in, first out)
 #: lib/file-type.c:75
 msgid "fifo"
 msgstr "fifo"
 
+# NOTĂ: să intru în contact cu dezvoltatorii, pentru a ști ce au vrut să spună...
+# Am făcut-o, m-am pus în contact cu ei:
+# Mulțumiri lui Jim Meyering ce mi-a întins o mînă de ajutor și m-a „luminat”:
+# A "door" is a reference to this Solaris invention:
+# https://en.wikipedia.org/wiki/Doors_(computing)
+# Am intrat în pagină și-am găsit următoarea informație:
+# - Doors were developed by Sun Microsystems as a core part of the Spring operating system, then added to Solaris in version 2.5 as an undocumented internal interface.[
+# - A Linux port of Doors was released in 2003, but is only available for version 2.4.18.
+# Concluzia mea este că termenul se poate lăsa așa cum apare în engleză, mai ales că proiectul a fost abandonat...
+# Sau, pus ca: „poartă(door)”?
 #: lib/file-type.c:78
 msgid "door"
-msgstr ""
+msgstr "door"
 
 #: lib/file-type.c:81
-#, fuzzy
 msgid "multiplexed block special file"
-msgstr "fiºier bloc special"
+msgstr "fișier special de bloc multiplexat"
 
 #: lib/file-type.c:84
-#, fuzzy
 msgid "multiplexed character special file"
-msgstr "fiºier caracter special"
+msgstr "fișier special de caracter multiplexat"
 
 #: lib/file-type.c:87
 msgid "multiplexed file"
-msgstr ""
-
+msgstr "fișier multiplexat"
+
+# Am tras cu ochiul la traducerile celorlalți latini, și majoritatea a adoptat forma de: fișier numit / fișier denumit. A doua formă mi s-a părut „mai” corectă...
+# NOTĂ: să intru în contact cu dezvoltatorii, pentru a ști ce au vrut să spună...
+# Am făcut-o, m-am pus în contact cu ei:
+# Mulțumiri lui Jim Meyering ce mi-a întins o mînă de
+# ajutor și m-a „luminat”:
+# I don't know what S_ISNAM ("named file") is, but did find a reference
+# to it being Xenix-related in gdb's sources, so it's probably no longer
+# relevant.
+# Concluzia mea: traducerea făcută este corectă, dar intrarea(definiția) e posibil să dispară într-o versiune viitoare a „diffutils”...
 #: lib/file-type.c:90
-#, fuzzy
 msgid "named file"
-msgstr "fiºier ciudat"
+msgstr "fișier denumit"
 
 #: lib/file-type.c:93
-#, fuzzy
 msgid "network special file"
-msgstr "fiºier bloc special"
+msgstr "fișier special de rețea"
 
 #: lib/file-type.c:96
 msgid "migrated file with data"
-msgstr ""
+msgstr "fișier migrat cu date"
 
 #: lib/file-type.c:99
 msgid "migrated file without data"
-msgstr ""
+msgstr "fișier migrat fără date"
 
 #: lib/file-type.c:102
 msgid "port"
-msgstr ""
+msgstr "port"
 
 #: lib/file-type.c:105
 msgid "socket"
-msgstr "socket"
-
+msgstr "soclu(socket)"
+
+# NOTĂ: să intru în contact cu dezvoltatorii, pentru a ști ce au vrut să spună...
+# Am făcut-o, m-am pus în contact cu ei:
+# Mulțumiri lui Jim Meyering ce mi-a întins o mînă de ajutor și m-a „luminat”:
+# For whiteout, it's an old BSD-era type of file that was used to
+# "remove" (actually "cause to appear to be absent") a file from an
+# underlying read-only file system image.
+# It's old enough that I think it is very unlikely to have been printed
+# via diff tools in the last 5-10 years.
+# I like what I see in fr.po for "whiteout", since the French "voilé"
+# means "veiled":
+#     msgstr "voilé (whiteout)"
 #: lib/file-type.c:108
 msgid "whiteout"
-msgstr ""
+msgstr "voalat(whiteout)"
 
 #: lib/file-type.c:110
 msgid "weird file"
-msgstr "fiºier ciudat"
+msgstr "fișier straniu"
 
 #: lib/getopt.c:278
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '%s%s' is ambiguous\n"
-msgstr "%s: opþiunea `%s' este ambiguã\n"
+msgstr "%s: opțiunea „%s%s” este ambiguă\n"
 
 #: lib/getopt.c:284
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '%s%s' is ambiguous; possibilities:"
-msgstr "%s: opþiunea `%s' este ambiguã\n"
+msgstr "%s: opțiunea „%s%s” este ambiguă; posibilități:"
 
 #: lib/getopt.c:319
-#, fuzzy, c-format
+#, c-format
 msgid "%s: unrecognized option '%s%s'\n"
-msgstr "%s: opþiune necunoscutã `%c%s'\n"
+msgstr "%s: opțiune nerecunoscută „%s%s”\n"
 
 #: lib/getopt.c:345
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '%s%s' doesn't allow an argument\n"
-msgstr "%s: opþiunea `%c%s' nu permite parametri\n"
+msgstr "%s: opțiunea „%s%s” nu permite un argument\n"
 
 #: lib/getopt.c:360
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '%s%s' requires an argument\n"
-msgstr "%s: opþiunea `%s' necesitã un parametru\n"
+msgstr "%s: opțiunea „%s%s” necesită un argument\n"
 
 #: lib/getopt.c:621
-#, fuzzy, c-format
+#, c-format
 msgid "%s: invalid option -- '%c'\n"
-msgstr "%s: opþiune invalidã -- %c\n"
+msgstr "%s: opțiune nevalidă -- „%c”\n"
 
 #: lib/getopt.c:636 lib/getopt.c:682
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option requires an argument -- '%c'\n"
-msgstr "%s: opþiunea necesitã un parametru -- %c\n"
+msgstr "%s: opțiunea necesită un argument -- „%c”\n"
 
 #. TRANSLATORS:
 #. Get translations for open and closing quotation marks.
@@ -200,134 +251,146 @@ msgstr "%s: op
 #. If you don't know what to put here, please see
 #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:355
+#: lib/quotearg.c:354
 msgid "`"
-msgstr ""
+msgstr ""
 
-#: lib/quotearg.c:356
+#: lib/quotearg.c:355
 msgid "'"
-msgstr ""
+msgstr ""
 
-#: lib/regcomp.c:135
+#: lib/regcomp.c:122
 msgid "Success"
 msgstr "Succes"
 
-#: lib/regcomp.c:138
+#: lib/regcomp.c:125
 msgid "No match"
 msgstr "Nici o potrivire"
 
-#: lib/regcomp.c:141
+# Am aplicat informațiile găsite în pagina:
+# https://ro.wikipedia.org/wiki/Expresie_regulat%C4%83
+# Contribuție: Daniel Șerbănescu
+# Traducerea inițială(înainte de revizuire):
+# Expresie normală nevalidă
+#: lib/regcomp.c:128
 msgid "Invalid regular expression"
-msgstr "Expresie normalã(regular) invalidã"
+msgstr "Expresie regulată nevalidă"
 
-#: lib/regcomp.c:144
+#: lib/regcomp.c:131
 msgid "Invalid collation character"
-msgstr "Caracter de comparare invalid"
+msgstr "Caracter de unire nevalid"
 
-#: lib/regcomp.c:147
+#: lib/regcomp.c:134
 msgid "Invalid character class name"
-msgstr "Nume clasã caracter invalidã"
+msgstr "Nume de clasă de caracter nevalid"
 
-#: lib/regcomp.c:150
+#: lib/regcomp.c:137
 msgid "Trailing backslash"
-msgstr "Backslash de sfârºit de linie(trailing)"
+msgstr "Bară oblică inversă la final de linie"
 
-#: lib/regcomp.c:153
+#: lib/regcomp.c:140
 msgid "Invalid back reference"
-msgstr "Referinþã precedentã invalidã"
+msgstr "Referință precedentă nevalidă"
 
-#: lib/regcomp.c:156
-#, fuzzy
+#: lib/regcomp.c:143
 msgid "Unmatched [, [^, [:, [., or [="
-msgstr "[ sau [^ neînchise"
+msgstr "[, [^, [:, [., sau [= neînchise"
 
-#: lib/regcomp.c:159
+#: lib/regcomp.c:146
 msgid "Unmatched ( or \\("
-msgstr "( or \\( neînchise"
+msgstr "( sau \\( neînchise"
 
-#: lib/regcomp.c:162
+#: lib/regcomp.c:149
 msgid "Unmatched \\{"
-msgstr "\\{ neînchisã"
+msgstr "\\{ neînchisă"
 
-#: lib/regcomp.c:165
+#: lib/regcomp.c:152
 msgid "Invalid content of \\{\\}"
-msgstr "Conþinut invalid al \\{\\}"
+msgstr "Conținut nevalid al \\{\\}"
 
-#: lib/regcomp.c:168
+#: lib/regcomp.c:155
 msgid "Invalid range end"
-msgstr "Sfârºit de domeniu invalid"
+msgstr "Sfârșit de interval nevalid"
 
-#: lib/regcomp.c:171
+# traducerea inițială: „Memorie plină”
+# - părerea mea este că nu este o alegere prea reușită(plin/plină ne duce mereu cu gîndul la ceva complet preparat(ă) să (ne) țină mult..... nu este cazul ăsta
+# - exhaust = terminat, obosit, istovit, vlăguit, epuizat, extenuat, golit complet; am ales ca potrivit «epuizat»
+#: lib/regcomp.c:158
 msgid "Memory exhausted"
-msgstr "Memorie plinã"
+msgstr "Memorie epuizată"
 
-#: lib/regcomp.c:174
+#: lib/regcomp.c:161
 msgid "Invalid preceding regular expression"
-msgstr "Expresie normalã de precedenþã invalidã"
+msgstr "Expresia regulată precedentă nevalidă"
 
-#: lib/regcomp.c:177
+#: lib/regcomp.c:164
 msgid "Premature end of regular expression"
-msgstr "Sfârºit prematur de expresie normalã"
+msgstr "Sfârșit prematur de expresie regulată"
 
-#: lib/regcomp.c:180
+# Trad. anterioară:Expresie normală prea mare
+# sînt de părere că o expresie normală sau nu, poate fi scurtă sau lungă (mică sau mare, în niciun caz)
+#: lib/regcomp.c:167
 msgid "Regular expression too big"
-msgstr "Expresie normalã prea mare"
+msgstr "Expresie regulată prea lungă"
 
-#: lib/regcomp.c:183
+#: lib/regcomp.c:170
 msgid "Unmatched ) or \\)"
-msgstr ") or \\) nedeschise"
+msgstr ") sau \\) nedeschise"
 
-#: lib/regcomp.c:676
+# „... antecedentă” -> traducerea anterioară
+# după cîte știu:
+# antecedent(ă) - se referă la fapte, întâmplări anterioare unei anumite date sau stări(în popor, trăiri) ale unei persane
+# cu toate că arată o anterioritate, această anterioritate nu se referă la lucruri, obiecte
+#: lib/regcomp.c:650
 msgid "No previous regular expression"
-msgstr "Nu a existat nici o expresie normalã antecedentã"
+msgstr "Nu a existat nici o expresie regulată anterioară"
 
 #: lib/xalloc-die.c:34
 msgid "memory exhausted"
-msgstr "memorie plinã"
+msgstr "memorie epuizată"
 
 #: lib/xfreopen.c:34
 msgid "stdin"
-msgstr ""
+msgstr "intrarea standard(stdin)"
 
 #: lib/xfreopen.c:35
 msgid "stdout"
-msgstr ""
+msgstr "ieșirea standard(stdout)"
 
 #: lib/xfreopen.c:36
 msgid "stderr"
-msgstr ""
+msgstr "ieșirea de eroare standard(stderr)"
 
 #: lib/xfreopen.c:37
-#, fuzzy
 msgid "unknown stream"
-msgstr "Eroare de sistem necunoscutã"
+msgstr "flux necunoscut"
 
 #: lib/xfreopen.c:38
 #, c-format
 msgid "failed to reopen %s with mode %s"
-msgstr ""
+msgstr "eșuare la redeschiderea %s cu modul %s"
 
 #: lib/xstdopen.c:34
 #, c-format
 msgid "standard file descriptors"
-msgstr ""
+msgstr "descriptori de fișiere standard"
 
 #: lib/version-etc.c:73
 #, c-format
 msgid "Packaged by %s (%s)\n"
-msgstr ""
+msgstr "Împachetat de %s (%s)\n"
 
 #: lib/version-etc.c:76
 #, c-format
 msgid "Packaged by %s\n"
-msgstr ""
+msgstr "Împachetat de %s\n"
 
 #. TRANSLATORS: Translate "(C)" to the copyright symbol
 #. (C-in-a-circle), if this symbol is available in the user's
 #. locale.  Otherwise, do not translate "(C)"; leave it as-is.
 #: lib/version-etc.c:83
 msgid "(C)"
-msgstr "(C)"
+msgstr "©"
 
 #. TRANSLATORS: The %s placeholder is the web address of the GPL license.
 #: lib/version-etc.c:88
@@ -337,24 +400,28 @@ msgid ""
 "This is free software: you are free to change and redistribute it.\n"
 "There is NO WARRANTY, to the extent permitted by law.\n"
 msgstr ""
+"Licență GPLv3+: GNU GPL versiunea 3 sau mai recentă <%s>.\n"
+"Acesta este software liber: sunteți liber să îl schimbați și să îl "
+"redistribuiți.\n"
+"Nu există NICIO GARANȚIE, în măsura permisă de lege.\n"
 
 #. TRANSLATORS: %s denotes an author name.
 #: lib/version-etc.c:105
-#, fuzzy, c-format
+#, c-format
 msgid "Written by %s.\n"
-msgstr "Scris de Thomas Lord."
+msgstr "Scris de %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #: lib/version-etc.c:109
-#, fuzzy, c-format
+#, c-format
 msgid "Written by %s and %s.\n"
-msgstr "Scris de Randy Smith."
+msgstr "Scris de %s și %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #: lib/version-etc.c:113
-#, fuzzy, c-format
+#, c-format
 msgid "Written by %s, %s, and %s.\n"
-msgstr "Scris de Randy Smith."
+msgstr "Scris de %s, %s, și %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -365,6 +432,8 @@ msgid ""
 "Written by %s, %s, %s,\n"
 "and %s.\n"
 msgstr ""
+"Scris de %s, %s, %s,\n"
+"și %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -375,6 +444,8 @@ msgid ""
 "Written by %s, %s, %s,\n"
 "%s, and %s.\n"
 msgstr ""
+"Scris de %s, %s, %s,\n"
+"%s, și %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -385,6 +456,8 @@ msgid ""
 "Written by %s, %s, %s,\n"
 "%s, %s, and %s.\n"
 msgstr ""
+"Scris de %s, %s, %s,\n"
+"%s, %s, și %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -395,6 +468,8 @@ msgid ""
 "Written by %s, %s, %s,\n"
 "%s, %s, %s, and %s.\n"
 msgstr ""
+"Scris de %s, %s, %s,\n"
+"%s, %s, %s, și %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -406,6 +481,9 @@ msgid ""
 "%s, %s, %s, %s,\n"
 "and %s.\n"
 msgstr ""
+"Scris de %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"și %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -417,6 +495,9 @@ msgid ""
 "%s, %s, %s, %s,\n"
 "%s, and %s.\n"
 msgstr ""
+"Scris de %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, și %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -428,6 +509,9 @@ msgid ""
 "%s, %s, %s, %s,\n"
 "%s, %s, and others.\n"
 msgstr ""
+"Scris de %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, și alții.\n"
 
 #. TRANSLATORS: The placeholder indicates the bug-reporting address
 #. for this package.  Please add _another line_ saying
@@ -437,546 +521,592 @@ msgstr ""
 #, c-format
 msgid "Report bugs to: %s\n"
 msgstr ""
+"Raportați erorile din program la: %s\n"
+"Raportați erorile de traducere la: <translation-team-ro@lists.sourceforge."
+"net>\n"
 
+# Se referă la erorile din distribuția folosită de utilizator (Debian, Fedora, OpenSUSE, Gentoo,,, sau oricare alta pe gustul său), deobicei erori de împachetare a programului.
 #: lib/version-etc.c:251
 #, c-format
 msgid "Report %s bugs to: %s\n"
-msgstr ""
+msgstr "Raportați erorile din %s la: %s\n"
 
 #: lib/version-etc.c:255 lib/version-etc.c:257
 #, c-format
 msgid "%s home page: <%s>\n"
-msgstr ""
+msgstr "Pagina principală a %s: <%s>\n"
 
 #: lib/version-etc.c:260
 #, c-format
 msgid "General help using GNU software: <%s>\n"
-msgstr ""
+msgstr "Ajutor general pentru utilizarea software-ului GNU: <%s>\n"
 
-#: src/analyze.c:454 src/diff.c:1406
+#: src/analyze.c:455 src/diff.c:1478
 #, c-format
 msgid "Files %s and %s differ\n"
-msgstr "Fiºierele %s ºi %s diferã\n"
+msgstr "Fișierele %s și %s diferă\n"
 
-#: src/analyze.c:455
+#: src/analyze.c:456
 #, c-format
 msgid "Binary files %s and %s differ\n"
-msgstr "Fiºierele binare %s ºi %s diferã\n"
+msgstr "Fișierele binare %s și %s diferă\n"
 
-#: src/analyze.c:706 src/diff3.c:1470 src/util.c:1254
+#: src/analyze.c:707 src/diff3.c:1457 src/util.c:1354
 msgid "No newline at end of file"
-msgstr "Nici un element de linie nouã la sfârºitul fiºierului"
+msgstr "Nici un element de linie nouă la sfârșitul fișierului"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/cmp.c:45
 msgid "Torbjorn Granlund"
-msgstr ""
+msgstr "Torbjorn Granlund"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/cmp.c:46
 msgid "David MacKenzie"
-msgstr ""
+msgstr "David MacKenzie"
 
-#: src/cmp.c:120 src/diff.c:879 src/diff3.c:467 src/sdiff.c:160
-#, fuzzy, c-format
+#: src/cmp.c:124 src/diff.c:939 src/diff3.c:465 src/sdiff.c:159
+#, c-format
 msgid "Try '%s --help' for more information."
-msgstr "Încercaþi  `%s --help' pentru mai multe informaþii."
+msgstr "Încercați «%s --help» pentru mai multe informații."
 
-#: src/cmp.c:138
-#, fuzzy, c-format
+#: src/cmp.c:142
+#, c-format
 msgid "invalid --ignore-initial value '%s'"
-msgstr "invalid --se ignorã valoarea iniþialã `%s'"
+msgstr "valoarea opțiunii „--ignore-initial” nu este validă „%s”"
 
-#: src/cmp.c:148
+#: src/cmp.c:152
 #, c-format
 msgid "options -l and -s are incompatible"
-msgstr "opþiunile -l ºi -s sunt incompatibile"
+msgstr "opțiunile „-l” și „-s” sunt incompatibile"
 
-#: src/cmp.c:156 src/diff.c:887 src/diff3.c:474 src/sdiff.c:168 src/sdiff.c:316
-#: src/sdiff.c:323 src/sdiff.c:876 src/util.c:852 src/util.c:952 src/util.c:959
+#: src/cmp.c:160 src/diff.c:947 src/diff3.c:472 src/sdiff.c:167 src/sdiff.c:314
+#: src/sdiff.c:321 src/sdiff.c:873 src/util.c:952 src/util.c:1052
+#: src/util.c:1059
 msgid "write failed"
-msgstr "scriere eºuatã"
+msgstr "scriere eșuată"
 
-#: src/cmp.c:158 src/diff.c:889 src/diff.c:1471 src/diff3.c:476 src/sdiff.c:170
+#: src/cmp.c:162 src/diff.c:949 src/diff.c:1543 src/diff3.c:474 src/sdiff.c:169
 msgid "standard output"
-msgstr "ieºire(output) standard"
+msgstr "ieșire standard"
 
-#: src/cmp.c:162
-#, fuzzy
+#: src/cmp.c:166
 msgid "-b, --print-bytes          print differing bytes"
-msgstr "-b  --print-bytes  Tipãreºte octeþii diferiþi."
+msgstr "-b, --print-bytes          afișează octeții care sunt diferiți"
 
-#: src/cmp.c:163
-#, fuzzy
+# saltă sau sare primii octeți... ?
+# am optat pentru prima variantă, și nu știu dacă nu era mai bine de utilizat formula: OMIS/OMITERE???
+# Decizie finală(după revizare/corectare „Mulțumesc, Daniel Șerbănescu!”):
+# se omit primii SALT octeți...
+# în această ordine, SALT = un număr(de octeți)
+#: src/cmp.c:167
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
 msgstr ""
-"-i OMIS  --ignore-initial=OMIS  Omite primii octeþi OMISi din intrare(input)."
+"-i, --ignore-initial=SALT  omite primii SALT octeți din cele două intrări"
 
-#: src/cmp.c:164
-#, fuzzy
+#: src/cmp.c:168
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
 msgstr ""
-"  Omite primii OMIS1 octeþi din FIªIER1 ºi primii OMIS2 octeþi din FIªIER2"
+"-i, --ignore-initial=SALT1:SALT2\n"
+"                             omite primii SALT1 octeți din FIȘIERUL1 și "
+"primii\n"
+"                             SALT2 octeți din FIȘIERUL2"
 
-#: src/cmp.c:166
-#, fuzzy
+#: src/cmp.c:170
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
 msgstr ""
-"-l  --verbose  Tipãreºte numerele octeþilor ºi valorile octeþilor diferiþi."
+"-l, --verbose              afișează numerele de octeți și valorile tuturor\n"
+"                             octeților care diferă"
 
-#: src/cmp.c:167
-#, fuzzy
+#: src/cmp.c:171
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
-msgstr "-n LIMITà --bytes=LIMITà Comparã cel mult LIMITàocteþi."
+msgstr "-n, --bytes=LIMITĂ         compară cel mult LIMITĂ octeți"
 
-#: src/cmp.c:168
+#: src/cmp.c:172
 msgid "-s, --quiet, --silent      suppress all normal output"
-msgstr ""
+msgstr "-s, --quiet, --silent      suprimă toate detaliile de ieșire normale"
 
-#: src/cmp.c:169
+#: src/cmp.c:173
 msgid "    --help                 display this help and exit"
-msgstr ""
+msgstr "    --help                 afișează acest mesaj de ajutor, și iese"
 
-#: src/cmp.c:170
-#, fuzzy
+#: src/cmp.c:174
 msgid "-v, --version              output version information and exit"
-msgstr "-v  --version  Tipãreºte informaþii despre versiune."
+msgstr ""
+"-v, --version              afișează informații despre versiune, și iese"
 
-#: src/cmp.c:179
+#: src/cmp.c:183
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
-msgstr "Folosire: %s [OPÞIUNE]... FIªIER1 [FIªIER2 [OMIS1 [OMIS2]]]\n"
+msgstr "Utilizare: %s [OPȚIUNE]... FIŞIER1 [FIŞIER2 [SALT1 [SALT2]]]\n"
 
-#: src/cmp.c:181
+#: src/cmp.c:185
 msgid "Compare two files byte by byte."
-msgstr "Comparã douã fiºiere octet cu octet."
+msgstr "Compară două fișiere octet cu octet."
 
-#: src/cmp.c:183
-#, fuzzy
+#: src/cmp.c:187
 msgid ""
 "The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
 "at the beginning of each file (zero by default)."
 msgstr ""
-"OMIS1 ºi OMIS2 sunt numerele de octeþi care sã fie omiºi din fiecare fiºier."
+"Parametrii opționali SALT1 și SALT2 specifică numărul de octeți\n"
+"ce se saltă în fiecare fișier (valoarea predefinită este zero)."
 
-#: src/cmp.c:186 src/diff.c:999 src/diff3.c:514 src/sdiff.c:211
+#: src/cmp.c:190 src/diff.c:1059 src/diff3.c:512 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
+"Argumentele obligatorii pentru opțiunile lungi sunt deasemenea obligatorii\n"
+"pentru opțiunile scurte.\n"
 
-#: src/cmp.c:192
+#: src/cmp.c:196
 msgid ""
 "SKIP values may be followed by the following multiplicative suffixes:\n"
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
 "GB 1,000,000,000, G 1,073,741,824, and so on for T, P, E, Z, Y."
 msgstr ""
-"Valorile OMIS pot fi urmate de urmãtoarele sufixe multiplicative:\n"
+"Valorile SALT pot fi urmate de următoarele sufixe multiplicative:\n"
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
-"GB 1,000,000,000, G 1,073,741,824, ºi aºa mai departe pentru T, P, E, Z, Y."
+"GB 1,000,000,000, G 1,073,741,824, și așa mai departe pentru T, P, E, Z, Y."
 
-#: src/cmp.c:195
-#, fuzzy
+#: src/cmp.c:199
 msgid "If a FILE is '-' or missing, read standard input."
-msgstr ""
-"Dacã un FIªIER este `-' sau lipseºte, se citeºte intrarea(input) standard."
+msgstr "Dacă un FIȘIER este „-” sau lipsește, se citește intrarea standard."
 
-#: src/cmp.c:196 src/diff.c:987 src/sdiff.c:221
+#: src/cmp.c:200 src/diff.c:1047 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr ""
+"Starea de ieșire este 0 dacă intrările sunt aceleași, 1 dacă sunt diferite "
+"și\n"
+"2 dacă sunt probleme."
 
-#: src/cmp.c:243
-#, fuzzy, c-format
+#: src/cmp.c:247
+#, c-format
 msgid "invalid --bytes value '%s'"
-msgstr "valoare --bytes invalidã `%s'"
+msgstr "valoarea „%s”, a opțiunii „--bytes”, este nevalidă"
 
-#: src/cmp.c:269 src/diff.c:797 src/diff3.c:361 src/sdiff.c:567
-#, fuzzy, c-format
+#: src/cmp.c:273 src/diff.c:857 src/diff3.c:368 src/sdiff.c:564
+#, c-format
 msgid "missing operand after '%s'"
-msgstr "lipseºte operandul dupã `%s'"
+msgstr "lipsește operandul după „%s”"
 
-#: src/cmp.c:281 src/diff.c:799 src/diff3.c:363 src/sdiff.c:569
-#, fuzzy, c-format
+#: src/cmp.c:285 src/diff.c:859 src/diff3.c:370 src/sdiff.c:566
+#, c-format
 msgid "extra operand '%s'"
-msgstr "operand în plus(extra) `%s'"
+msgstr "operand în plus(extra) „%s”"
 
-#: src/cmp.c:507
+#: src/cmp.c:521
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
-msgstr "%s %s diferã: octetul %s, linia %s\n"
+msgstr "%s %s diferă: octetul %s, linia %s\n"
 
-#: src/cmp.c:523
+#: src/cmp.c:537
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
-msgstr "%s %s diferã: octetul %s, linia %s este %3o %s %3o %s\n"
+msgstr "%s %s diferă: octetul %s, din linia %s este %3o %s %3o %s\n"
 
-#: src/cmp.c:580
-#, fuzzy, c-format
+# EOF = End Of File
+#: src/cmp.c:594
+#, c-format
 msgid "cmp: EOF on %s which is empty\n"
-msgstr "cmp: EOF în %s\n"
+msgstr "cmp: sfârșit de fișier(EOF) găsit în %s, care este gol\n"
 
-#: src/cmp.c:594
-#, fuzzy, c-format
+#: src/cmp.c:608
+#, c-format
 msgid "cmp: EOF on %s after byte %s, line %s\n"
-msgstr "%s %s diferã: octetul %s, linia %s\n"
+msgstr "cmp: sfârșit de fișier(EOF) în %s după octetul %s, linia %s\n"
 
-#: src/cmp.c:595
-#, fuzzy, c-format
+#: src/cmp.c:609
+#, c-format
 msgid "cmp: EOF on %s after byte %s, in line %s\n"
-msgstr "%s %s diferã: octetul %s, linia %s\n"
+msgstr "cmp: sfârșit de fișier(EOF) în %s după octetul %s, din linia %s\n"
 
-#: src/cmp.c:601
-#, fuzzy, c-format
+#: src/cmp.c:615
+#, c-format
 msgid "cmp: EOF on %s after byte %s\n"
-msgstr "cmp: EOF în %s\n"
+msgstr "cmp: sfârșit de fișier(EOF) găsit în %s după octetul %s\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:51
+#: src/diff.c:50
 msgid "Paul Eggert"
-msgstr ""
+msgstr "Paul Eggert"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:52
+#: src/diff.c:51
 msgid "Mike Haertel"
-msgstr ""
+msgstr "Mike Haertel"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:53
+#: src/diff.c:52
 msgid "David Hayes"
-msgstr ""
+msgstr "David Hayes"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:54
+#: src/diff.c:53
 msgid "Richard Stallman"
-msgstr ""
+msgstr "Richard Stallman"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:55
+#: src/diff.c:54
 msgid "Len Tower"
-msgstr ""
+msgstr "Len Tower"
 
-#: src/diff.c:355
-#, fuzzy, c-format
+#: src/diff.c:365
+#, c-format
 msgid "invalid context length '%s'"
-msgstr "lungime invalidã de context `%s'"
+msgstr "lungime nevalidă a contextului „%s”"
 
-#: src/diff.c:438
+#: src/diff.c:487
 #, c-format
 msgid "pagination not supported on this host"
-msgstr "paginaþie nesuportatã de acest host"
+msgstr "sistemul acesta(gazda), nu acceptă paginarea"
 
-#: src/diff.c:453 src/diff3.c:341
+#: src/diff.c:502 src/diff3.c:348
 #, c-format
 msgid "too many file label options"
-msgstr "prea multe opþiuni de etichete fiºier"
+msgstr "prea multe opțiuni de etichetă fișier"
 
-#: src/diff.c:530
-#, fuzzy, c-format
+#: src/diff.c:579
+#, c-format
 msgid "invalid width '%s'"
-msgstr "lungime invalidã `%s'"
+msgstr "lățime nevalidă „%s”"
 
-#: src/diff.c:534
+#: src/diff.c:583
 msgid "conflicting width options"
-msgstr "opþiuni de lungime în conflict"
+msgstr "opțiuni de lățime în conflict"
 
-#: src/diff.c:559
-#, fuzzy, c-format
+#: src/diff.c:608
+#, c-format
 msgid "invalid horizon length '%s'"
-msgstr "lungime de orizont invalidã `%s'"
+msgstr "lungime de orizont nevalidă „%s”"
 
-#: src/diff.c:615
-#, fuzzy, c-format
+#: src/diff.c:664
+#, c-format
 msgid "invalid tabsize '%s'"
-msgstr "mãrime tab invalidã `%s'"
+msgstr "mărime tabulator nevalidă „%s”"
 
-#: src/diff.c:619
+#: src/diff.c:668
 msgid "conflicting tabsize options"
-msgstr "opþiuni mãrime tab în conflict"
+msgstr "opțiuni mărime tabulator în conflict"
 
-#: src/diff.c:774
+# am tradus prima dată: X și Y amîndouă specificate
+# (da, și?)   «că nu-i spune mare lucru utilizatorului aplicației»
+# așa că am „adoptat” această traducere: atît X cît și Y au fost specificate
+#: src/diff.c:834
 msgid "--from-file and --to-file both specified"
-msgstr " --from-file ºi --to-file sunt specificate împreunã"
+msgstr "s-a specificat atât „--from-file” cât și „--to-file”"
 
-#: src/diff.c:893
-#, fuzzy
+#: src/diff.c:953
 msgid "    --normal                  output a normal diff (the default)"
-msgstr "--normal  Afiºeazã un diff normal."
+msgstr ""
+"    --normal                    afișează un diff normal (modul predefinit)"
 
-#: src/diff.c:894
-#, fuzzy
+#: src/diff.c:954
 msgid "-q, --brief                   report only when files differ"
-msgstr "-q  --brief  Afiºeazã doar dacã fiºierele diferã."
+msgstr "-q, --brief                     raportează doar dacă fișierele diferă"
 
-#: src/diff.c:895
-#, fuzzy
+#: src/diff.c:955
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr ""
-"-s  --report-identical-files  Raporteazã când douã fiºiere sunt asemãnãtoare."
+"-s, --report-identical-files    raportează când două fișiere sunt identice"
 
-#: src/diff.c:896
+#: src/diff.c:956
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
+"-c, -C NUM, --context[=NUM]     afișează NUM (predefinit 3) linii de "
+"context\n"
+"                                copiat"
 
-#: src/diff.c:897
-#, fuzzy
+#: src/diff.c:957
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
-"-w NUM  --width=NUM  Afiºeazã cel mult NUM (implicit 130) coloane tipãrite."
+"-u, -U NUM, --unified[=NUM]     afișează NUM (predefinit 3) linii de "
+"context\n"
+"                                unificat"
 
-#: src/diff.c:898
-#, fuzzy
+#: src/diff.c:958
 msgid "-e, --ed                      output an ed script"
-msgstr "-e  --ed  Afiºeazã un script ed."
+msgstr "-e, --ed                        afișează un script ed"
 
-#: src/diff.c:899
-#, fuzzy
+#: src/diff.c:959
 msgid "-n, --rcs                     output an RCS format diff"
-msgstr "-n  --rcs  Afiºeazã un diff în format RCS."
+msgstr "-n, --rcs                       afișează un diff în format RCS"
 
-#: src/diff.c:900
+#: src/diff.c:960
 msgid "-y, --side-by-side            output in two columns"
-msgstr ""
+msgstr "-y, --side-by-side              afișează în două coloane"
 
-#: src/diff.c:901
-#, fuzzy
+#: src/diff.c:961
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
-"-w NUM  --width=NUM  Afiºeazã cel mult NUM (implicit 130) coloane tipãrite."
+"-W, --width=NUM                 afișează cel mult NUM (predefinit 130) "
+"coloane\n"
+"                                imprimate"
 
-#: src/diff.c:902
-#, fuzzy
+#: src/diff.c:962
 msgid ""
 "    --left-column             output only the left column of common lines"
-msgstr "-l  --left-column  Afiºeazã doar coloana din stânga a liniilor comune."
+msgstr ""
+"    --left-column               afișează doar în coloana din stânga liniile\n"
+"                                comune"
 
-#: src/diff.c:903
-#, fuzzy
+#: src/diff.c:963
 msgid "    --suppress-common-lines   do not output common lines"
-msgstr "-s  --suppress-common-lines  Nu afiºa liniile comune."
+msgstr "    --suppress-common-lines     nu afișează liniile comune"
 
-#: src/diff.c:905
+#: src/diff.c:965
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr ""
+"-p, --show-c-function           afișează în ce funcție C se află fiecare "
+"modi-\n"
+"                                ficare"
 
-#: src/diff.c:906
+#: src/diff.c:966
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr ""
+"-F, --show-function-line=ExpReg\n"
+"                                afișează linia cea mai recentă ce se "
+"potrivește\n"
+"                                cu ExpReg"
 
-#: src/diff.c:907
+#: src/diff.c:967
 msgid ""
 "    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
 msgstr ""
-
-#: src/diff.c:910
-#, fuzzy
+"    --label ETICHETA            utilizează ETICHETA în loc de numele "
+"fișierului\n"
+"                                și la marca de timp (se poate repeta)"
+
+# Inițial, am tradus:
+# expand = extinde
+# După revizuire:
+# expand = expande
+# pentru că, alternativa, „expandează”
+# mă cam zgîrîie la urechi, plus că rimează cu
+# unele cuvinte ce sînt de evitat
+# Modificat în final la „expandează”
+#: src/diff.c:970
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
-msgstr "-t  --expand-tabs  Schimbã tab-urile în spaþii la ieºire(output)."
+msgstr ""
+"-t, --expand-tabs               expandează tabulatorii la spații la ieșire"
 
-#: src/diff.c:911
-#, fuzzy
+#: src/diff.c:971
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
-msgstr "-T  --initial-tab  Aliniazã tab-urile adãugând în faþã un tab."
+msgstr ""
+"-T, --initial-tab               face ca tabulatorii să se alinieze, "
+"adăugând\n"
+"                                în față un tabulator"
 
-#: src/diff.c:912
-#, fuzzy
+#: src/diff.c:972
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
-"--tabsize=NUM  Opririle tab-ului vor fi la fiecare NUM (implicit 8) coloane "
-"tipãrite."
+"    --tabsize=NUM               tabulatorul se oprește la fiecare NUM "
+"(predefi-\n"
+"                                nit 8) coloane de tipărire"
 
-#: src/diff.c:913
+#: src/diff.c:973
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
+"    --suppress-blank-empty      suprimă spațiul sau tabulația înaintea "
+"liniilor\n"
+"                                goale de ieșire"
 
-#: src/diff.c:914
-#, fuzzy
+# De aflat ce înseamnă „pr”; pobabil „prompter”?
+# Am aflat, înseamnă printer și acțiunea sa, print.
+# De moment, voi lăsa traducerea așa.
+#: src/diff.c:974
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr ""
-"-l  --paginate  Trimite ieºirea(output) prin `pr' pentru a fi paginatã."
+"-l, --paginate                  trece ieșirea prin „pr” pentru a o pagina"
 
-#: src/diff.c:916
-#, fuzzy
+#: src/diff.c:976
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
-msgstr "-r  --recursive  Comparã recursiv orice subdirector întâlnit."
+msgstr ""
+"-r, --recursive                 compară recursiv orice subdirector întâlnit"
 
-#: src/diff.c:917
+#: src/diff.c:977
 msgid "    --no-dereference            don't follow symbolic links"
-msgstr ""
+msgstr "    --no-dereference            nu urmează legăturile simbolice"
 
-#: src/diff.c:918
-#, fuzzy
+#: src/diff.c:978
 msgid "-N, --new-file                  treat absent files as empty"
-msgstr "-N  --new-file  Trateazã fiºierele lipsã ca vide."
+msgstr "-N, --new-file                  tratează fișierele lipsă ca goale"
 
-#: src/diff.c:919
-#, fuzzy
+#: src/diff.c:979
 msgid "    --unidirectional-new-file   treat absent first files as empty"
-msgstr "--unidirectional-new-file  Trateazã primele fiºiere lipsã ca vide."
+msgstr ""
+"    --unidirectional-new-file   tratează primele fișierele lipsă ca goale"
 
-#: src/diff.c:920
-#, fuzzy
+#: src/diff.c:980
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ""
-"--ignore-file-name-case  Ignorã cazul când se comparã numele de fiºiere."
+"    --ignore-file-name-case     ignoră diferențele dintre majuscule și "
+"minuscule\n"
+"                                când se compară numele de fișiere"
 
-#: src/diff.c:921
-#, fuzzy
+#: src/diff.c:981
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
-"--no-ignore-file-name-case  Ia în calcul cazul atunci când se comparã numele "
-"de fiºiere."
+"    --no-ignore-file-name-case  ia în calcul diferențele dintre majuscule "
+"și\n"
+"                                minuscule când se compară numele de fișiere"
 
-#: src/diff.c:922
-#, fuzzy
+#: src/diff.c:982
 msgid "-x, --exclude=PAT               exclude files that match PAT"
-msgstr "-x TIP  --exclude=TIP  Exclude fiºierele care se potrivesc TIParului."
+msgstr ""
+"-x, --exclude=MODEL             exclude fișierele care se potrivesc MODELului"
 
-#: src/diff.c:923
-#, fuzzy
+#: src/diff.c:983
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
-"-X FIªIER  --exclude-from=FIªIER  Exclude fiºierele care se potrivesc "
-"oricãrui tipar din FIªIER."
+"-X, --exclude-from=FILE         exclude fișierele care se potrivesc "
+"oricărui\n"
+"                                tipar din FIȘIER"
 
-#: src/diff.c:924
-#, fuzzy
+#: src/diff.c:984
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
-"-S FIªIER  --starting-file=FIªIER  Începe cu FIªIER în compararea "
-"directoarelor."
+"-S, --starting-file=FIŞIER      începe cu FIȘIER când se compară directoare"
 
-#: src/diff.c:925
-#, fuzzy
+# Nu știu dacă corect n-ar fi..; «operatorii», «operanzii», mă cam zgîrîie la ureche cînd citesc textul...!
+# Trebuie să consult această temă... curînd!
+#: src/diff.c:985
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
 msgstr ""
-"--from-file=FIªIER1  Comparã FIªIER1 cu toþi operanzii.  FIªIER1 poate fi "
-"director."
+"    --from-file=FIŞIER1         compară FIŞIER1 cu toți operanzii;\n"
+"                                FIŞIER1 poate să fie un director"
 
-#: src/diff.c:927
-#, fuzzy
+#: src/diff.c:987
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
 msgstr ""
-"--to-file=FIªIER2  Comparã toþi operanzii cu FIªIER2.  FIªIER2 poate fi "
-"director."
+"    --to-file=FIŞIER2           compară FIŞIER2 cu toți operanzii;\n"
+"                                FIŞIER2 poate să fie un director"
 
-#: src/diff.c:930
-#, fuzzy
+#: src/diff.c:990
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr ""
-"-i  --ignore-case  Ignorã diferenþele de caz din conþinutul fiºierului."
+"-i, --ignore-case               ignoră diferențele dintre majuscule și \n"
+"                                minuscule din conținutul fișierului"
 
-#: src/diff.c:931
-#, fuzzy
+#: src/diff.c:991
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr ""
-"-E  --ignore-tab-expansion  Ignorã schimbãrile produse de modificarea tab-"
-"ului."
+"-E, --ignore-tab-expansion      ignoră modificările din cauza expandării \n"
+"                                tabulatorului"
 
-#: src/diff.c:932
-#, fuzzy
+#: src/diff.c:992
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
-msgstr "-w  --ignore-all-space  Ignorã tot spaþiul vid."
+msgstr ""
+"-Z, --ignore-trailing-space     ignoră spațiul în alb la sfârșit de linie"
 
-#: src/diff.c:933
-#, fuzzy
+#: src/diff.c:993
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
-msgstr "-b  --ignore-space-change  Ignorã schimbãrile din spaþiul vid."
+msgstr ""
+"-b, --ignore-space-change       ignoră schimbările cantității de spațiu în "
+"alb"
 
-#: src/diff.c:934
-#, fuzzy
+#: src/diff.c:994
 msgid "-w, --ignore-all-space          ignore all white space"
-msgstr "-w  --ignore-all-space  Ignorã tot spaþiul vid."
+msgstr "-w, --ignore-all-space          ignoră toate spațiile în alb"
 
-#: src/diff.c:935
-#, fuzzy
+#: src/diff.c:995
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr ""
-"-B  --ignore-blank-lines  Ignorã schimbãrile unde toate liniile sunt "
-"goale(blank)."
+"-B, --ignore-blank-lines        ignoră schimbările unde toate liniile sunt "
+"goale"
 
-#: src/diff.c:936
-#, fuzzy
+# Mi s-a aprins „beculețul”, RE = RegularExpression (pentru englezi).
+# Așa că: „care se potrivesc RE-ului”, nu se «potrivește», de loc.
+# Pentru români, cred că „ExpNorm”, este alegerea cea mai bună;
+# mă înșelam, conform paginii:
+# https://ro.wikipedia.org/wiki/Expresie_regulat%C4%83, este:
+# „ExpReg”
+#: src/diff.c:996
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
-"-I RE  --ignore-matching-lines=RE  Ignorã schimbãrile la toate liniile care "
-"se potrivesc RE-ului."
+"-I, --ignore-matching-lines=ExpReg\n"
+"                                ignoră modificările din toate liniile care "
+"se\n"
+"                                potrivesc cu ExpReg"
 
-#: src/diff.c:938
-#, fuzzy
+#: src/diff.c:998
 msgid "-a, --text                      treat all files as text"
-msgstr "-a  --text  Trateazã toate fiºierele ca text."
+msgstr ""
+"-a, --text                      tratează toate fișierele ca fiind de text"
 
-#: src/diff.c:939
-#, fuzzy
+# de revizuit..
+#: src/diff.c:999
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr ""
-"--strip-trailing-cr  Eliminã returul de car(carriage return) final la "
-"intrare(input)."
+"    --strip-trailing-cr         elimină returul de caret din intrarea dată"
 
-#: src/diff.c:941
-#, fuzzy
+#: src/diff.c:1001
 msgid "    --binary                    read and write data in binary mode"
-msgstr "--binary  Citeºte ºi scrie date în mod binar."
+msgstr "    --binary                    citește și scrie datele în mod binar"
 
-#: src/diff.c:944
-#, fuzzy
+#: src/diff.c:1004
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
-"-D NUME  --ifdef=NUME  Afiºeazã fiºierul rezultat(merged) pentru a arãta "
-"diff-urile`#ifdef NAME'."
+"-D, --ifdef=NUME                generează un fișier combinat ce afișează\n"
+"                                diferențele cu „#ifdef NAME”"
 
-#: src/diff.c:945
-#, fuzzy
+# Trebuie să investighez ce înseamnă sigla «GFMT»
+# Vreo idee pentru o traducere mai bună?
+#: src/diff.c:1005
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr ""
-"--GTYPE-group-format=GFMT  Similar, dar formatul de intrare GTYPE se "
-"grupeazã cu GFMT."
+"    --GTYPE-group-format=GFMT   formatează grupurile de intrare GTYPE cu GFMT"
 
-#: src/diff.c:946
-#, fuzzy
+# Trebuie să investighez ce înseamnă sigla «LFMT»
+# Vreo idee pentru o traducere mai bună?
+#: src/diff.c:1006
 msgid "    --line-format=LFMT          format all input lines with LFMT"
-msgstr "--line-format=LFMT  Similar, dar formateazã toate liniile cu LFMT."
+msgstr ""
+"    --line-format=LFMT          formatează toate liniile de intrare cu LFMT"
 
-#: src/diff.c:947
-#, fuzzy
+# Am folosit o traducere un pic diferită față de cele două de mai de sus...
+# trebuie să investighez ce înseamnă sigla «LTYPE»
+#: src/diff.c:1007
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr ""
-"--LTYPE-line-format=LFMT  Similar, dar formateazã liniile de intrare LTYPE "
-"cu LFMT."
+"    --LTYPE-line-format=LFMT    formatează liniile de intrare LTYPE cu LFMT"
 
-#: src/diff.c:948
+#: src/diff.c:1008
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
 msgstr ""
+"  Aceste opțiuni de format oferă un control fin asupra rezultatului de "
+"«diff»,\n"
+"  generalizând „-D/--ifdef”."
 
-#: src/diff.c:950
-#, fuzzy
+#: src/diff.c:1010
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
-"  LTYPE este `old', `new', sau `unchanged'.  GTYPE este LTYPE sau `changed'."
+"  LTYPE este „old”(vechi), „new”(nou) sau „unchanged” (neschimbat).\n"
+"  GTYPE este precum LTYPE sau „changed” (schimbat)."
 
-#: src/diff.c:951
-#, fuzzy
+#: src/diff.c:1011
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -991,36 +1121,36 @@ msgid ""
 "        M  L+1\n"
 "    %(A=B?T:E)  if A equals B then T else E"
 msgstr ""
-"  GFMT poate conþine:\n"
-"    %<  linii din FIªIER1\n"
-"    %>  linii din FIªIER2\n"
-"    %=  linii comune lui FIªIER1 si FIªIER2\n"
-"    %[-][WIDTH][.[PREC]]{doxX}LETTER  specificaþii stil printf pentru "
-"LETTER\n"
-"      LETTERs sunt dupã cum urmeazã pentru grup nou, literã micã pentru grup "
-"vechi:\n"
-"        F  primul numãr de linie\n"
-"        L  ultimul numãr de linie\n"
+"  GFMT poate conține, doar:\n"
+"    %<  linii din FIȘIER\n"
+"    %>  linii din FIȘIER\n"
+"    %=  linii comune lui FIȘIER1 și FIȘIER2\n"
+"    %[-][LĂȚIME][.[PRECIZIE]]{doxX}LITERA  specificații stil «printf» "
+"pentru\n"
+"    LITERA\n"
+"      LITERA(ele) sunt după cum urmează pentru grup nou, (literă mică "
+"pentru\n"
+"      grup vechi):\n"
+"        F  primul număr de linie\n"
+"        L  ultimul număr de linie\n"
 "        N  numere de linii = L-F+1\n"
 "        E  F-1\n"
 "        M  L+1"
 
-#: src/diff.c:963
-#, fuzzy
+#: src/diff.c:1023
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
 "    %l  contents of line, excluding any trailing newline\n"
 "    %[-][WIDTH][.[PREC]]{doxX}n  printf-style spec for input line number"
 msgstr ""
-"  LFMT poate conþine:\n"
-"    %L  conþinut de linie\n"
-"    %l  conþinut de linie, excluzând orice caracter de linie nouã final\n"
-"    %[-][WIDTH][.[PREC]]{doxX}n  specificaþii  stil printf-pentru "
-"introducerea numãrului de linie"
+"  LFMT poate conține, doar:\n"
+"    %L  conținut de linie\n"
+"    %l  conținut de linie, excluzând orice caracter de linie nouă final\n"
+"    %[-][LĂȚIME][.[PRECIZIE]{doxX}n  specificații  stil «printf» pentru\n"
+"                                     introducerea numărului de linie"
 
-#: src/diff.c:967
-#, fuzzy
+#: src/diff.c:1027
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1028,251 +1158,267 @@ msgid ""
 "    %c'\\OOO'  the character with octal code OOO\n"
 "    C    the character C (other characters represent themselves)"
 msgstr ""
-" Una din GFMT sau LFMT poate conþine:\n"
+"  Atât GFMT cât și LFMT pot să conțină:\n"
 "    %%  %\n"
 "    %c'C'  caracterul singular C\n"
-"    %c'\\OOO'  caracterul cu codul octal OOO"
+"    %c'\\OOO'  caracterul cu codul octal OOO\n"
+"    C    caracterul C (celelalte caractere se reprezintă pe ele însele)"
 
-#: src/diff.c:973
-#, fuzzy
+#: src/diff.c:1033
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr ""
-"-d  --minimal  Încearcã din greu sã gãseºti un set mai mic de schimbãri"
+"-d, --minimal            se străduiește să găsească un grup mai mic de "
+"schimbări"
 
-#: src/diff.c:974
-#, fuzzy
+#: src/diff.c:1034
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
-msgstr "--horizon-lines=NUM  Reþine NUM linii de prefix ºi sufix comun."
+msgstr "    --horizon-lines=NUM  reține NUM linii de prefix și sufix comun"
 
-#: src/diff.c:975
-#, fuzzy
+#: src/diff.c:1035
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
-"-H  --speed-large-files  Presupune fiºiere mari ºi multe modificãri mici "
-"împrãºtiate."
+"    --speed-large-files  presupune că fișierele sunt mari și că "
+"modificările\n"
+"                         sunt multe, mici și împrăștiate"
 
-#: src/diff.c:976
+#: src/diff.c:1036
 msgid ""
 "    --color[=WHEN]       color output; WHEN is 'never', 'always', or "
 "'auto';\n"
 "                           plain --color means --color='auto'"
 msgstr ""
+"    --color[=CÂND]       colorează ieșirea CÂND poate să fie "
+"„never”(niciodată),\n"
+"                         „always”(întotdeauna), sau „auto”(valoarea "
+"implicită)"
 
-#: src/diff.c:978
+#: src/diff.c:1038
 msgid ""
 "    --palette=PALETTE    the colors to use when --color is active; PALETTE "
 "is\n"
 "                           a colon-separated list of terminfo capabilities"
 msgstr ""
+"    --palette=PALETA     paleta de culori ce se utilizează când opțiunea\n"
+"                         „--color” este prezentă; PALETA este o listă "
+"separată\n"
+"                         prin două puncte(:) de termeni(nume de culoare)"
 
-#: src/diff.c:981
+#: src/diff.c:1041
 msgid "    --help               display this help and exit"
-msgstr ""
+msgstr "    --help               afișează acest mesaj de ajutor și iese"
 
-#: src/diff.c:982
-#, fuzzy
+#: src/diff.c:1042
 msgid "-v, --version            output version information and exit"
-msgstr "-v  --version  Tipãreºte informaþii despre versiune."
+msgstr "-v, --version            afișează informații despre versiune și iese"
 
-#: src/diff.c:984
-#, fuzzy
+#: src/diff.c:1044
 msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
-"FIªIEREle sunt `FIªIER1 FIªIER2' sau `DIR1 DIR2' sau `DIR FIªIER...' or "
-"`FIªIER... DIR'."
+"FIȘIERE sunt „FIȘIER1 FIȘIER2” sau „DIR1 DIR2” sau „DIR FIȘIER” sau „FIȘIER "
+"DIR”."
 
-#: src/diff.c:985
-#, fuzzy
+# Nu știu cum este corect:
+# - pe FIȘIER(e), sau:
+# - în FIȘIER(e)
+#: src/diff.c:1045
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr ""
-"Dacã --from-file sau --to-file sunt precizate, nu existã restricþii pe "
-"FIªIERE."
+"Dacă --from-file sau --to-file sunt precizate, nu există restricții pentru "
+"FIȘIER(e)."
 
-#: src/diff.c:986 src/diff3.c:533 src/sdiff.c:220
-#, fuzzy
+#: src/diff.c:1046 src/diff3.c:531 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
-msgstr "Dacã FIªIER este `-', se citeºte intrarea(input) standard."
+msgstr "Dacă un FIȘIER este „-”, se citește intrarea standard."
 
-#: src/diff.c:996
+#: src/diff.c:1056
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
-msgstr "Folosire: %s [OPÞIUNE]... FIªIERE\n"
+msgstr "Utilizare: %s [OPȚIUNE]... FIȘIERE\n"
 
-#: src/diff.c:997
-#, fuzzy
+#: src/diff.c:1057
 msgid "Compare FILES line by line."
-msgstr "Comparã fiºierele linie cu linie."
+msgstr "Compară FIȘIERELE linie cu linie."
 
-#: src/diff.c:1034
-#, fuzzy, c-format
+# opțiunea %s are valoarea „%s” în conflict cu altă opțiune
+# În realitate s-ar putea să fie:
+# opțiunea %s are valoarea „%s” în conflict cu altă valoare (trebuie văzut)
+#: src/diff.c:1094
+#, c-format
 msgid "conflicting %s option value '%s'"
-msgstr "Existã un conflict cu %s în valoarea opþiunii `%s'"
+msgstr "opțiunea %s are valoarea „%s” în conflict cu altă opțiune"
 
-#: src/diff.c:1047
+#: src/diff.c:1107
 #, c-format
 msgid "conflicting output style options"
-msgstr "Conflict în opþiunile stilului de afiºare(output)"
+msgstr "opțiunile stilului de afișare sunt în conflict"
 
-#: src/diff.c:1063
-#, fuzzy, c-format
+#: src/diff.c:1123
+#, c-format
 msgid "invalid color '%s'"
-msgstr "lungime invalidã de context `%s'"
+msgstr "culoare nevalidă „%s”"
 
-#: src/diff.c:1119 src/diff.c:1329
+#: src/diff.c:1197 src/diff.c:1401
 #, c-format
 msgid "Only in %s: %s\n"
-msgstr "Doar în %s: %s\n"
+msgstr "Doar în %s: %s\n"
 
-#: src/diff.c:1253
-#, fuzzy
+#: src/diff.c:1325
 msgid "cannot compare '-' to a directory"
-msgstr "nu se poate compara `-' cu un director"
+msgstr "nu se poate compara „-” cu un director"
 
-#: src/diff.c:1288
+#: src/diff.c:1360
 msgid "-D option not supported with directories"
-msgstr "opþiunea -D nu este compatibilã cu directoarele"
+msgstr "opțiunea „-D” nu este compatibilă cu directoarele"
 
-#: src/diff.c:1297
+#: src/diff.c:1369
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
-msgstr "Subdirectoare comune: %s ºi %s.\n"
+msgstr "Subdirectoare comune: %s și %s.\n"
 
-#: src/diff.c:1339 src/diff.c:1389
+#: src/diff.c:1411 src/diff.c:1461
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
-msgstr "Fiºierul %s este un %s pe când fiºierul %s este un %s.\n"
+msgstr "Fișierul %s este un %s pe când fișierul %s este un %s.\n"
 
-#: src/diff.c:1375
-#, fuzzy, c-format
+#: src/diff.c:1447
+#, c-format
 msgid "Symbolic links %s and %s differ\n"
-msgstr "Fiºierele %s ºi %s diferã\n"
+msgstr "Legăturile simbolice %s și %s sunt diferite\n"
 
-#: src/diff.c:1462
+#: src/diff.c:1534
 #, c-format
 msgid "Files %s and %s are identical\n"
-msgstr "Fiºierele %s ºi %s sunt identice\n"
+msgstr "Fișierele %s și %s sunt identice\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff3.c:43
-#, fuzzy
+#: src/diff3.c:51
 msgid "Randy Smith"
-msgstr "Scris de Randy Smith."
+msgstr "Randy Smith"
 
-#: src/diff3.c:356
+#: src/diff3.c:363
 #, c-format
 msgid "incompatible options"
-msgstr "opþiuni incompatibile"
+msgstr "opțiuni incompatibile"
 
-#: src/diff3.c:396
-#, fuzzy
+#: src/diff3.c:403
 msgid "'-' specified for more than one input file"
-msgstr "`-' specificat pentru mai mult de un fiºier de intrare(input)"
+msgstr "s-a specificat „-” pentru mai mult de un fișier de intrare"
 
-#: src/diff3.c:447 src/diff3.c:1295 src/diff3.c:1698 src/diff3.c:1753
-#: src/sdiff.c:308 src/sdiff.c:846 src/sdiff.c:857
+#: src/diff3.c:445 src/diff3.c:1284 src/diff3.c:1683 src/diff3.c:1738
+#: src/sdiff.c:306 src/sdiff.c:843 src/sdiff.c:854
 msgid "read failed"
-msgstr "citire eºuatã"
+msgstr "citire eșuată"
 
-#: src/diff3.c:480
-#, fuzzy
+#: src/diff3.c:478
 msgid "-A, --show-all              output all changes, bracketing conflicts"
-msgstr "-A  --show-all  Afiºeazã toate modificãrile, conflictele de paranteze."
+msgstr ""
+"-A, --show-all              afișează toate modificările, închizând "
+"conflictele\n"
+"                              între paranteze"
 
-#: src/diff3.c:482
-#, fuzzy
+#: src/diff3.c:480
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
 msgstr ""
-"-e  --ed  Trimite(output) modificãrile nerezultate(unmerged) de la "
-"FIªIER_VECHI la  FIªIERUL_VOSTRU în FIªIERUL_MEU.."
+"-e, --ed                    afișează un script «ed» ce incorporează "
+"modifică-\n"
+"                              rile dintre FIȘIERUL_VECHI și FIȘIERUL_TĂU "
+"în \n"
+"                              FIȘIERUL_MEU"
 
-#: src/diff3.c:484
-#, fuzzy
+#: src/diff3.c:482
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
 msgstr ""
-"-E  --show-overlap  Afiºeazã modificãrile nerezultate(unmerged), conflictele "
-"de paranteze."
+"-E, --show-overlap          ca „-e”, dar închizând conflictele între "
+"paranteze"
 
-#: src/diff3.c:485
-#, fuzzy
+#: src/diff3.c:483
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
 msgstr ""
-"-3  --easy-only  Afiºeazã schimbãrile nesuprapuse(nonoverlapping) ºi "
-"nerezultate(unmerged)."
+"-3, --easy-only             ca „-e”, dar încorporează doar modificările ce "
+"nu\n"
+"                              se suprapun"
 
-#: src/diff3.c:486
-#, fuzzy
+#: src/diff3.c:484
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
-msgstr "-x  --overlap-only  Afiºeazã toate schimbãrile de suprapunere."
+msgstr ""
+"-x, --overlap-only          ca „-e”, dar încorporează doar modificările ce "
+"se\n"
+"                              suprapun"
 
-#: src/diff3.c:487
+#: src/diff3.c:485
 msgid "-X                          like -x, but bracket conflicts"
 msgstr ""
+"-X                          ca „-x”, dar închide conflictele între paranteze"
 
-#: src/diff3.c:488
-#, fuzzy
+#: src/diff3.c:486
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
-msgstr "-i  Adaugã comenzile `w' ºi `q' la scripturile ed."
+msgstr ""
+"-i                          adaugă comenzile „w” și „q” la scripturile «ed»"
 
-#: src/diff3.c:490
+#: src/diff3.c:488
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
 msgstr ""
+"-m, --merge                 afișează fișierul combinat, conform „-A” dacă "
+"nu\n"
+"                              sunt date alte opțiuni"
 
-#: src/diff3.c:493
-#, fuzzy
+#: src/diff3.c:491
 msgid "-a, --text                  treat all files as text"
-msgstr "-a  --text  Trateazã toate fiºierele ca text."
+msgstr "-a, --text                  tratează toate fișierele ca text"
 
-#: src/diff3.c:494
-#, fuzzy
+# de revizuit...
+#: src/diff3.c:492
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
 msgstr ""
-"--strip-trailing-cr  Eliminã returul de car(carriage return) final la "
-"intrare(input)."
+"    --strip-trailing-cr     elimină returul de caret final din intrarea dată"
 
-#: src/diff3.c:495
-#, fuzzy
+#: src/diff3.c:493
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
-msgstr "-T  --initial-tab  Aliniazã tab-urile adãugând în faþã un tab."
+msgstr ""
+"-T, --initial-tab           aliniază tabulatorii adăugând în față un "
+"tabulator"
 
-#: src/diff3.c:496
-#, fuzzy
+#: src/diff3.c:494
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
-msgstr "--diff-program=PROGRAM  Foloseºte PROGRAM pentru a compara fiºierele."
+msgstr ""
+"    --diff-program=PROGRAM  utilizează PROGRAM pentru a compara fișierele"
 
-#: src/diff3.c:497
+#: src/diff3.c:495
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
 msgstr ""
+"-L, --label=ETICHETA        utilizează ETICHETA în loc de numele fișierului\n"
+"                              (poate fi repetat de până la trei ori)"
 
-#: src/diff3.c:500
+#: src/diff3.c:498
 msgid "    --help                  display this help and exit"
-msgstr ""
+msgstr "    --help                  afișează acest mesaj de ajutor și iese"
 
-#: src/diff3.c:501
-#, fuzzy
+#: src/diff3.c:499
 msgid "-v, --version               output version information and exit"
-msgstr "-v  --version  Tipãreºte informaþii despre versiune."
+msgstr ""
+"-v, --version               afișează informații despre versiune și iese"
 
-#: src/diff3.c:510
+#: src/diff3.c:508
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
-msgstr "Folosire: %s [OPÞIUNE]... FIªIERUL_MEU FIªIER_VECHI FIªIERUL_TÃU\n"
+msgstr "Utilizare: %s [OPȚIUNE]... FIȘIERUL_MEU FIȘIERUL_VECHI FIȘIERUL_TĂU\n"
 
-#: src/diff3.c:512
+#: src/diff3.c:510
 msgid "Compare three files line by line."
-msgstr "Comparã trei fiºiere linie cu linie"
+msgstr "Compară trei fișiere linie cu linie."
 
-#: src/diff3.c:522
+#: src/diff3.c:520
 msgid ""
 "\n"
 "The default output format is a somewhat human-readable representation of\n"
@@ -1285,208 +1431,221 @@ msgid ""
 "and output the actual merged file.  For unusual input, this is more\n"
 "robust than using ed.\n"
 msgstr ""
+"\n"
+"Formatul predefinit de ieșire este o reprezentare mai mult sau mai puțin\n"
+"lizibilă a modificărilor.\n"
+"\n"
+"Opțiunile „-e”, „-E”, „-x”, „-X” (și corespondentele lor lungi) generează "
+"un\n"
+"script «ed» în locul rezultatului predefinit.\n"
+"\n"
+"În cele din urmă, opțiunea „-m”/„--merge” face ca «diff3» să efectueze "
+"îmbinarea\n"
+"intern și să afișeze fișierul îmbinat.  Pentru anumite intrări, acest lucru\n"
+"este mai robust decât utilizarea lui ed.\n"
 
-#: src/diff3.c:534
+#: src/diff3.c:532
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
 msgstr ""
+"Starea de ieșire este 0 dacă are succes, 1 dacă există conflicte și 2 dacă "
+"sunt\n"
+"probleme."
 
-#: src/diff3.c:727
+#: src/diff3.c:725
 msgid "internal error: screwup in format of diff blocks"
-msgstr "eroare internã: zãpãcealã în formatul blocurilor diff"
+msgstr "eroare internă: confuzie în formatul blocurilor diff"
 
-#: src/diff3.c:1022
+#: src/diff3.c:1015
 #, c-format
 msgid "%s: diff failed: "
-msgstr "%s: diff eºuat: "
+msgstr "%s: diff eșuat: "
 
-#: src/diff3.c:1044
+#: src/diff3.c:1037
 msgid "internal error: invalid diff type in process_diff"
-msgstr "eroare internã: tip diff invalid în process_diff"
+msgstr "eroare internă: tip diff nevalid în process_diff"
 
-#: src/diff3.c:1069
+#: src/diff3.c:1060
 msgid "invalid diff format; invalid change separator"
-msgstr "format diff invalid; separator de modificare invalid"
+msgstr "format diff nevalid; separator de modificare nevalid"
 
-#: src/diff3.c:1305
+#: src/diff3.c:1294
 msgid "invalid diff format; incomplete last line"
-msgstr "format diff invalid; ultimã-linie incompletã"
+msgstr "format diff nevalid; ultima-linie incompletă"
 
-#: src/diff3.c:1329 src/sdiff.c:276 src/util.c:969
-#, fuzzy, c-format
+#: src/diff3.c:1318 src/sdiff.c:274 src/util.c:1069
+#, c-format
 msgid "subsidiary program '%s' could not be invoked"
-msgstr "programul subsidiar `%s' nu a fost gãsit"
+msgstr "programul subsidiar „%s'” nu a putut fi invocat"
 
-#: src/diff3.c:1354
+#: src/diff3.c:1343
 msgid "invalid diff format; incorrect leading line chars"
-msgstr "format diff invalid; caractere precedente liniei incorecte"
+msgstr "format diff nevalid; caractere la începutul liniei incorecte"
 
-#: src/diff3.c:1427
+#: src/diff3.c:1416
 msgid "internal error: invalid diff type passed to output"
-msgstr "eroare internã: tip invalid de diff trimis spre ieºire(output)"
+msgstr "eroare internă: tip nevalid de diff trimis spre ieșire"
 
-#: src/diff3.c:1700 src/diff3.c:1757
+#: src/diff3.c:1685 src/diff3.c:1742
 msgid "input file shrank"
-msgstr "fiºier de intrare(input) micºorat"
+msgstr "fișierul de intrare s-a micșorat"
 
-#: src/dir.c:156
-#, fuzzy, c-format
+#: src/dir.c:154
+#, c-format
 msgid "cannot compare file names '%s' and '%s'"
-msgstr "nu se pot compara numele de fiºiere `%s' ºi `%s'"
+msgstr "nu se pot compara numele de fișiere „%s” și „%s”"
 
-#: src/dir.c:225
+#: src/dir.c:223
 #, c-format
 msgid "%s: recursive directory loop"
-msgstr ""
+msgstr "%s: buclă de director recursiv"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/sdiff.c:44
-#, fuzzy
 msgid "Thomas Lord"
-msgstr "Scris de Thomas Lord."
+msgstr "Thomas Lord"
 
-#: src/sdiff.c:174
-#, fuzzy
+#: src/sdiff.c:173
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
 msgstr ""
-"-o FIªIER  --output=FIªIER  Opereazã interactiv, trimiþând outputul spre "
-"FIªIER."
+"-o, --output=FIȘIER          operează interactiv, trimițând rezultatul "
+"către\n"
+"                               fișierul FIȘIER"
 
-#: src/sdiff.c:176
-#, fuzzy
+#: src/sdiff.c:175
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
 msgstr ""
-"-i  --ignore-case  Considerã majusculele ºi minusculele ca fiind aceleaºi."
+"-i, --ignore-case            consideră majusculele și minusculele ca fiind\n"
+"                               același lucru"
 
-#: src/sdiff.c:177
-#, fuzzy
+#: src/sdiff.c:176
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
 msgstr ""
-"-E  --ignore-tab-expansion  Ignorã schimbãrile produse de modificarea tab-"
-"ului."
+"-E, --ignore-tab-expansion   ignoră schimbările produse de expandarea "
+"tabula-\n"
+"                               torului"
 
-#: src/sdiff.c:178
-#, fuzzy
+#: src/sdiff.c:177
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
-msgstr "-w  --ignore-all-space  Ignorã tot spaþiul vid."
+msgstr "-Z, --ignore-trailing-space  ignoră spațiul în alb la sfârșit de linie"
 
-#: src/sdiff.c:179
-#, fuzzy
+#: src/sdiff.c:178
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
-msgstr "-b  --ignore-space-change  Ignorã schimbãrile din spaþiul vid."
+msgstr ""
+"-b, --ignore-space-change    ignoră diferențele din cantitatea de spațiu în "
+"alb"
 
-#: src/sdiff.c:180
-#, fuzzy
+#: src/sdiff.c:179
 msgid "-W, --ignore-all-space       ignore all white space"
-msgstr "-W  --ignore-all-space  Ignorã tot spaþiul gol."
+msgstr "-W, --ignore-all-space       ignoră tot spațiul în alb"
 
-#: src/sdiff.c:181
-#, fuzzy
+#: src/sdiff.c:180
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
 msgstr ""
-"-B  --ignore-blank-lines  Ignorã schimbãrile unde toate liniile sunt "
-"goale(blank)."
+"-B, --ignore-blank-lines     ignoră schimbările în care toate liniile sunt "
+"goale"
 
-#: src/sdiff.c:182
-#, fuzzy
+#: src/sdiff.c:181
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
-"-I RE  --ignore-matching-lines=RE  Ignorã schimbãrile la toate liniile care "
-"se potrivesc RE-ului."
+"-I, --ignore-matching-lines=ExpReg\n"
+"                               ignoră modificările din toate liniile care "
+"se\n"
+"                               potrivesc cu ExpReg"
 
-#: src/sdiff.c:183
-#, fuzzy
+# de revizuit...
+#: src/sdiff.c:182
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
 msgstr ""
-"--strip-trailing-cr  Eliminã returul de car(carriage return) final la "
-"intrare(input)."
+"    --strip-trailing-cr      elimină returul de caret final din intrarea dată"
 
-#: src/sdiff.c:184
-#, fuzzy
+#: src/sdiff.c:183
 msgid "-a, --text                   treat all files as text"
-msgstr "-a  --text  Trateazã toate fiºierele ca text."
+msgstr "-a, --text                   tratează toate fișierele ca text"
 
-#: src/sdiff.c:186
-#, fuzzy
+#: src/sdiff.c:185
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
 msgstr ""
-"-w NUM  --width=NUM  Afiºeazã cel mult NUM (implicit 130) coloane tipãrite."
+"-w, --width=NUM              afișează cel mult NUM (predefinit 130) coloane\n"
+"                               imprimate"
 
-#: src/sdiff.c:187
-#, fuzzy
+#: src/sdiff.c:186
 msgid ""
 "-l, --left-column            output only the left column of common lines"
-msgstr "-l  --left-column  Afiºeazã doar coloana din stânga a liniilor comune."
+msgstr ""
+"-l, --left-column            afișează doar coloana din stânga a liniilor "
+"comune"
 
-#: src/sdiff.c:188
-#, fuzzy
+#: src/sdiff.c:187
 msgid "-s, --suppress-common-lines  do not output common lines"
-msgstr "-s  --suppress-common-lines  Nu afiºa liniile comune."
+msgstr "-s, --suppress-common-lines  nu afișează liniile comune"
 
-#: src/sdiff.c:190
-#, fuzzy
+# Nu sînt sigur:
+# extinde tabulatorii la spatii la ieșire
+# sau:
+# extinde tabulatorii în spatii la ieșire
+#: src/sdiff.c:189
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
-msgstr "-t  --expand-tabs  Schimbã tab-urile în spaþii la ieºire(output)."
+msgstr ""
+"-t, --expand-tabs            expandează tabulatorii la spatii la ieșire"
 
-#: src/sdiff.c:191
-#, fuzzy
+#: src/sdiff.c:190
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
 msgstr ""
-"--tabsize=NUM  Opririle tab-ului vor fi la fiecare NUM (implicit 8) coloane "
-"tipãrite."
+"    --tabsize=NUM            tabulatorul se oprește la fiecare NUM (implicit "
+"8)\n"
+"                               coloane imprimate"
 
-#: src/sdiff.c:193
-#, fuzzy
+#: src/sdiff.c:192
 msgid "-d, --minimal                try hard to find a smaller set of changes"
 msgstr ""
-"-d  --minimal  Încearcã din greu sã gãseºti un set mai mic de schimbãri"
+"-d, --minimal                se străduiește să găsească un grup mai mic de\n"
+"                               schimbări"
 
-#: src/sdiff.c:194
-#, fuzzy
+#: src/sdiff.c:193
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
 msgstr ""
-"-H  --speed-large-files  Presupune fiºiere mari ºi multe modificãri mici "
-"împrãºtiate."
+"-H, --speed-large-files      presupune că fișierele sunt mari și că "
+"modifică-\n"
+"                               rile sunt multe, mici și împrăștiate"
 
-#: src/sdiff.c:195
-#, fuzzy
+#: src/sdiff.c:194
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
-msgstr "--diff-program=PROGRAM  Foloseºte PROGRAM pentru a compara fiºierele."
+msgstr ""
+"    --diff-program=PROGRAM   utilizează PROGRAM pentru a compara fișierele"
 
-#: src/sdiff.c:197
+#: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
-msgstr ""
+msgstr "    --help                   afișează acest mesaj de ajutor și iese"
 
-#: src/sdiff.c:198
-#, fuzzy
+#: src/sdiff.c:197
 msgid "-v, --version                output version information and exit"
-msgstr "-v  --version  Tipãreºte informaþii despre versiune."
+msgstr ""
+"-v, --version                afișează informații despre versiune și iese"
 
-#: src/sdiff.c:207
+#: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
-msgstr "Folosire: %s [OPÞIUNE]... FIªIER1 FIªIER2\n"
+msgstr "Utilizare: %s [OPȚIUNE]... FIȘIER FIȘIER\n"
 
-#: src/sdiff.c:209
-#, fuzzy
+#: src/sdiff.c:208
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
-msgstr "Analizã pas cu pas a diferenþelor de fiºiere."
+msgstr "Combinarea pe două coloane a diferențelor dintre FIȘIER1 și FIȘIER2."
 
-#: src/sdiff.c:330
+#: src/sdiff.c:328
 msgid "cannot interactively merge standard input"
-msgstr "nu poate rezulta(merge) interactiv intrarea(input) standard"
+msgstr "nu se poate combina interactiv cu intrarea standard"
 
-#: src/sdiff.c:597
+#: src/sdiff.c:594
 msgid "both files to be compared are directories"
-msgstr "ambele fiºiere de comparat sunt directoare"
+msgstr "ambele fișiere de comparat sunt directoare"
 
-#: src/sdiff.c:820
-#, fuzzy
+#: src/sdiff.c:817
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
 "eb:\tEdit then use both versions.\n"
@@ -1499,54 +1658,38 @@ msgid ""
 "v:\tVerbosely include common lines.\n"
 "q:\tQuit.\n"
 msgstr ""
-"ed:\tEditeazã apoi foloseºte ambele versiuni, fiecare decoratã cu un cap de "
-"tabel.\n"
-"eb:\tEditeazã apoi foloseºte ambele versiuni.\n"
-"el:\tEditeazã apoi foloseºte versiunea din stânga.\n"
-"er:\tEditeazã apoi foloseºte versiunea din dreapta.\n"
-"e:\tEditeazã o versiune nouã.\n"
-"l:\tFoloseºte versiunea din stânga.\n"
-"r:\tFoloseºte versiunea din dreapta.\n"
-"s:\tInclude silenþios liniile comune.\n"
+"ed:\tEditează apoi folosește ambele versiuni, fiecare decorată cu un antet.\n"
+"eb:\tEditează apoi folosește ambele versiuni\n"
+"el sau e1:\tEditează apoi folosește versiunea din stânga.\n"
+"er sau e2:\tEditează apoi folosește versiunea din dreapta.\n"
+"e:\tIgnoră ambele versiuni și editează o versiune nouă.\n"
+"l sau 1:\tFolosește versiunea din stânga.\n"
+"r sau 2:\tFolosește versiunea din dreapta.\n"
+"s:\tInclude silențios liniile comune.\n"
 "v:\tInclude detaliat liniile comune.\n"
-"q:\tIeºire.\n"
+"q:\tIeșire.\n"
 
-#: src/util.c:662
-#, fuzzy, c-format
+#: src/util.c:755
+#, c-format
 msgid "unrecognized prefix: %s"
-msgstr "%s: opþiune necunoscutã `--%s'\n"
+msgstr "prefix nerecunoscut: %s"
 
-#: src/util.c:692
+#: src/util.c:785
 #, c-format
 msgid "unparsable value for --palette"
-msgstr ""
-
-#, fuzzy
-#~ msgid "invalid %s%s argument '%s'"
-#~ msgstr "valoare --bytes invalidã `%s'"
-
-#, fuzzy
-#~ msgid "%s: option '--%s' doesn't allow an argument\n"
-#~ msgstr "%s: opþiunea `--%s' nu permite parametri\n"
+msgstr "valoare imposibil de analizat pentru opțiunea „--palette”"
 
-#, fuzzy
-#~ msgid "%s: unrecognized option '--%s'\n"
-#~ msgstr "%s: opþiune necunoscutã `--%s'\n"
+#~ msgid "%s: option `--%s' doesn't allow an argument\n"
+#~ msgstr "%s: opţiunea `--%s' nu permite parametri\n"
 
-#, fuzzy
-#~ msgid "%s: option '-W %s' is ambiguous\n"
-#~ msgstr "%s: opþiunea `-W %s' este ambiguã\n"
-
-#, fuzzy
-#~ msgid "%s: option '-W %s' doesn't allow an argument\n"
-#~ msgstr "%s: opþiunea `-W %s' nu permite parametri\n"
+#~ msgid "%s: illegal option -- %c\n"
+#~ msgstr "%s: opţiune ilegală -- %c\n"
 
-#, fuzzy
-#~ msgid "%s: option '-W %s' requires an argument\n"
-#~ msgstr "%s: opþiunea `%s' necesitã un parametru\n"
+#~ msgid "%s: option `-W %s' is ambiguous\n"
+#~ msgstr "%s: opţiunea `-W %s' este ambiguă\n"
 
-#~ msgid "%s: illegal option -- %c\n"
-#~ msgstr "%s: opþiune ilegalã -- %c\n"
+#~ msgid "%s: option `-W %s' doesn't allow an argument\n"
+#~ msgstr "%s: opţiunea `-W %s' nu permite parametri\n"
 
 #~ msgid ""
 #~ "This program comes with NO WARRANTY, to the extent permitted by law.\n"
@@ -1554,41 +1697,41 @@ msgstr ""
 #~ "under the terms of the GNU General Public License.\n"
 #~ "For more information about these matters, see the files named COPYING."
 #~ msgstr ""
-#~ "Acest program NU vine cu NICI O GARANÞIE, în mãsura permisã de lege.\n"
-#~ "Puteþi redistribui copii ale acestui program\n"
-#~ "sub termenii Licenþei Publice Generale GNU.\n"
-#~ "Pentru mai multe informaþii despre aceste chestiuni, citiþi fiºierul "
+#~ "Acest program NU vine cu NICI O GARANŢIE, în măsura permisă de lege.\n"
+#~ "Puteţi redistribui copii ale acestui program\n"
+#~ "sub termenii Licenţei Publice Generale GNU.\n"
+#~ "Pentru mai multe informaţii despre aceste chestiuni, citiţi fişierul "
 #~ "numit COPYING."
 
 #~ msgid "Written by Torbjorn Granlund and David MacKenzie."
-#~ msgstr "Scris de Torbjorn Granlund ºi David MacKenzie."
+#~ msgstr "Scris de Torbjorn Granlund şi David MacKenzie."
 
 #~ msgid "-i SKIP1:SKIP2  --ignore-initial=SKIP1:SKIP2"
 #~ msgstr "-i OMIS1:OMIS2  --ignore-initial=OMIS1:OMIS2"
 
 #~ msgid "-s  --quiet  --silent  Output nothing; yield exit status only."
 #~ msgstr ""
-#~ "-s  --quiet  --silent  Nu tipãreºte nimic; anunþã(yield) doar starea de "
-#~ "ieºire."
+#~ "-s  --quiet  --silent  Nu tipăreşte nimic; anunţă(yield) doar starea de "
+#~ "ieşire."
 
 #~ msgid "--help  Output this help."
-#~ msgstr "--help  Tipãreºte acest ajutor."
+#~ msgstr "--help  Tipăreşte acest ajutor."
 
 #~ msgid "Report bugs to <bug-gnu-utils@gnu.org>."
-#~ msgstr "Raportaþi erorile(bugs)la <bug-gnu-utils@gnu.org>."
+#~ msgstr "Raportaţi erorile(bugs)la <bug-gnu-utils@gnu.org>."
 
 #~ msgid ""
 #~ "Written by Paul Eggert, Mike Haertel, David Hayes,\n"
 #~ "Richard Stallman, and Len Tower."
 #~ msgstr ""
 #~ "Scris de Paul Eggert, Mike Haertel, David Hayes,\n"
-#~ "Richard Stallman, ºi Len Tower."
+#~ "Richard Stallman, şi Len Tower."
 
 #~ msgid "`-%ld' option is obsolete; use `-%c %ld'"
-#~ msgstr "`-%ld' opþiunea este învechitã; folosiþi `-%c %ld'"
+#~ msgstr "`-%ld' opţiunea este învechită; folosiţi `-%c %ld'"
 
 #~ msgid "`-%ld' option is obsolete; omit it"
-#~ msgstr "`-%ld' opþiunea este învechitã; omiteþi-o"
+#~ msgstr "`-%ld' opţiunea este învechită; omiteţi-o"
 
 #~ msgid ""
 #~ "-c  -C NUM  --context[=NUM]  Output NUM (default 3) lines of copied "
@@ -1599,14 +1742,14 @@ msgstr ""
 #~ "  -p  --show-c-function  Show which C function each change is in.\n"
 #~ "  -F RE  --show-function-line=RE  Show the most recent line matching RE."
 #~ msgstr ""
-#~ "-c  -C NUM  --context[=NUM]  Tipãreºte NUM (implicit 3) linii de "
+#~ "-c  -C NUM  --context[=NUM]  Tipăreşte NUM (implicit 3) linii de "
 #~ "contextcopiat.\n"
-#~ "-u  -U NUM  --unified[=NUM]  Tipãreºte NUM (implicit 3) linii de "
+#~ "-u  -U NUM  --unified[=NUM]  Tipăreşte NUM (implicit 3) linii de "
 #~ "contextunificat.\n"
-#~ "  --label ETICHETà Foloseºte ETICHETàîn loc de nume fiºier.\n"
-#~ "  -p  --show-c-function  Afiºeazã fiecare schimbare din fiecare funcþie "
+#~ "  --label ETICHETĂ  Foloseşte ETICHETĂ în loc de nume fişier.\n"
+#~ "  -p  --show-c-function  Afişează fiecare schimbare din fiecare funcţie "
 #~ "C.\n"
-#~ "  -F RE  --show-function-line=RE  Afiºeazã cele mai recente linii care se "
+#~ "  -F RE  --show-function-line=RE  Afişează cele mai recente linii care se "
 #~ "potrivesc RE."
 
 #~ msgid ""
@@ -1615,33 +1758,33 @@ msgstr ""
 #~ "  --left-column  Output only the left column of common lines.\n"
 #~ "  --suppress-common-lines  Do not output common lines."
 #~ msgstr ""
-#~ "-y  --side-by-side  Afiºeazã pe douã coloane.\n"
-#~ "  -W NUM  --width=NUM  Afiºeazã cel mult NUM (implicit 130) coloane "
-#~ "tipãrite.\n"
-#~ "  --left-column  Afiºeazã doar coloana din stânga a liniilor comune.\n"
-#~ "  --suppress-common-lines  Nu afiºa liniile comune."
+#~ "-y  --side-by-side  Afişează pe două coloane.\n"
+#~ "  -W NUM  --width=NUM  Afişează cel mult NUM (implicit 130) coloane "
+#~ "tipărite.\n"
+#~ "  --left-column  Afişează doar coloana din stânga a liniilor comune.\n"
+#~ "  --suppress-common-lines  Nu afişa liniile comune."
 
 #~ msgid ""
 #~ "--speed-large-files  Assume large files and many scattered small changes."
 #~ msgstr ""
-#~ "--speed-large-files  Presupune fiºiere mari ºi multe modificãri mici "
-#~ "împrãºtiate."
+#~ "--speed-large-files  Presupune fişiere mari şi multe modificări mici "
+#~ "împrăştiate."
 
 #~ msgid "-X  Output overlapping changes, bracketing them."
-#~ msgstr "-X  Afiºeazã schimbãrile de suprapunere, punându-le în paranteze."
+#~ msgstr "-X  Afişează schimbările de suprapunere, punându-le în paranteze."
 
 #~ msgid "-m  --merge  Output merged file instead of ed script (default -A)."
 #~ msgstr ""
-#~ "-m  --merge  Afiºeazã fiºierul rezultat(merged) în loc de scriputl ed "
+#~ "-m  --merge  Afişează fişierul rezultat(merged) în loc de scriputl ed "
 #~ "(implicit -A)."
 
 #~ msgid "-L LABEL  --label=LABEL  Use LABEL instead of file name."
 #~ msgstr ""
-#~ "-L ETICHETà --label=ETICHETà Foloseºte ETICHETàîn loc de numele "
-#~ "fiºierului."
+#~ "-L ETICHETĂ  --label=ETICHETĂ  Foloseşte ETICHETĂ în loc de numele "
+#~ "fişierului."
 
 #~ msgid "subsidiary program `%s' failed"
-#~ msgstr "programul subsidiar `%s' eºuat"
+#~ msgstr "programul subsidiar `%s' eşuat"
 
 #~ msgid "subsidiary program `%s' not executable"
 #~ msgstr "programul subsidiar `%s' nu este executabil"
index dcd40b1..c067586 100644 (file)
--- a/po/ru.po
+++ b/po/ru.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: diffutils 3.7.41\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2021-08-01 18:56-0700\n"
+"POT-Creation-Date: 2023-05-21 01:51-0700\n"
 "PO-Revision-Date: 2021-07-22 12:14+0300\n"
 "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
 "Language-Team: Russian <gnu@d07.ru>\n"
@@ -17,33 +17,33 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 "X-Generator: Lokalize 20.12.0\n"
 
-#: lib/argmatch.c:132
+#: lib/argmatch.c:145
 #, c-format
 msgid "invalid argument %s for %s"
 msgstr "неверный аргумент %s для %s"
 
-#: lib/argmatch.c:133
+#: lib/argmatch.c:146
 #, c-format
 msgid "ambiguous argument %s for %s"
 msgstr "двусмысленный аргумент %s для %s"
 
-#: lib/argmatch.c:152 lib/argmatch.h:223
+#: lib/argmatch.c:165 lib/argmatch.h:242
 msgid "Valid arguments are:"
 msgstr "Допустимые аргументы:"
 
-#: lib/c-stack.c:187
+#: lib/c-stack.c:186
 msgid "program error"
 msgstr "ошибка программы"
 
-#: lib/c-stack.c:188
+#: lib/c-stack.c:187
 msgid "stack overflow"
 msgstr "переполнение стека"
 
-#: lib/error.c:195
+#: lib/error.c:193
 msgid "Unknown system error"
 msgstr "Неизвестная системная ошибка"
 
@@ -199,83 +199,83 @@ msgstr "%s: для параметра требуется аргумент — «
 #. If you don't know what to put here, please see
 #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:355
+#: lib/quotearg.c:354
 msgid "`"
 msgstr "?"
 
-#: lib/quotearg.c:356
+#: lib/quotearg.c:355
 msgid "'"
 msgstr "?"
 
-#: lib/regcomp.c:135
+#: lib/regcomp.c:122
 msgid "Success"
 msgstr "Выполнено успешно"
 
-#: lib/regcomp.c:138
+#: lib/regcomp.c:125
 msgid "No match"
 msgstr "Совпадений нет"
 
-#: lib/regcomp.c:141
+#: lib/regcomp.c:128
 msgid "Invalid regular expression"
 msgstr "Неверное регулярное выражение"
 
-#: lib/regcomp.c:144
+#: lib/regcomp.c:131
 msgid "Invalid collation character"
 msgstr "Недопустимый для сортировки символ"
 
-#: lib/regcomp.c:147
+#: lib/regcomp.c:134
 msgid "Invalid character class name"
 msgstr "Неверное имя класса символа"
 
-#: lib/regcomp.c:150
+#: lib/regcomp.c:137
 msgid "Trailing backslash"
 msgstr "Обратная косая черта стоит последней"
 
-#: lib/regcomp.c:153
+#: lib/regcomp.c:140
 msgid "Invalid back reference"
 msgstr "Неверная ссылка"
 
-#: lib/regcomp.c:156
+#: lib/regcomp.c:143
 msgid "Unmatched [, [^, [:, [., or [="
 msgstr "Непарная [, [^, [:, [. или [="
 
-#: lib/regcomp.c:159
+#: lib/regcomp.c:146
 msgid "Unmatched ( or \\("
 msgstr "Непарная ( или \\("
 
-#: lib/regcomp.c:162
+#: lib/regcomp.c:149
 msgid "Unmatched \\{"
 msgstr "Непарная \\{"
 
-#: lib/regcomp.c:165
+#: lib/regcomp.c:152
 msgid "Invalid content of \\{\\}"
 msgstr "Неверное содержимое \\{\\}"
 
-#: lib/regcomp.c:168
+#: lib/regcomp.c:155
 msgid "Invalid range end"
 msgstr "Неверный нижний предел"
 
-#: lib/regcomp.c:171
+#: lib/regcomp.c:158
 msgid "Memory exhausted"
 msgstr "Оперативная память исчерпана"
 
-#: lib/regcomp.c:174
+#: lib/regcomp.c:161
 msgid "Invalid preceding regular expression"
 msgstr "Неверное предшествующее регулярное выражение"
 
-#: lib/regcomp.c:177
+#: lib/regcomp.c:164
 msgid "Premature end of regular expression"
 msgstr "Преждевременный конец регулярного выражения"
 
-#: lib/regcomp.c:180
+#: lib/regcomp.c:167
 msgid "Regular expression too big"
 msgstr "Регулярное выражение слишком велико"
 
-#: lib/regcomp.c:183
+#: lib/regcomp.c:170
 msgid "Unmatched ) or \\)"
 msgstr "Непарная ) или \\)"
 
-#: lib/regcomp.c:676
+#: lib/regcomp.c:650
 msgid "No previous regular expression"
 msgstr "Регулярное выражение не было задано раньше"
 
@@ -470,17 +470,17 @@ msgstr "Домашняя страница %s: <%s>\n"
 msgid "General help using GNU software: <%s>\n"
 msgstr "Справка по работе с программами GNU: <%s>\n"
 
-#: src/analyze.c:454 src/diff.c:1406
+#: src/analyze.c:455 src/diff.c:1478
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Файлы %s и %s различаются\n"
 
-#: src/analyze.c:455
+#: src/analyze.c:456
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "Двоичные файлы %s и %s различаются\n"
 
-#: src/analyze.c:706 src/diff3.c:1470 src/util.c:1254
+#: src/analyze.c:707 src/diff3.c:1457 src/util.c:1354
 msgid "No newline at end of file"
 msgstr "В конце файла нет новой строки"
 
@@ -494,39 +494,40 @@ msgstr "Торбьёрн Гронлунд (Torbjorn Granlund)"
 msgid "David MacKenzie"
 msgstr "Дэвид Маккензи (David MacKenzie)"
 
-#: src/cmp.c:120 src/diff.c:879 src/diff3.c:467 src/sdiff.c:160
+#: src/cmp.c:124 src/diff.c:939 src/diff3.c:465 src/sdiff.c:159
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr "По команде ?%s --help? можно получить дополнительную информацию."
 
-#: src/cmp.c:138
+#: src/cmp.c:142
 #, c-format
 msgid "invalid --ignore-initial value '%s'"
 msgstr "недопустимое для --ignore-initial  значение ?%s?"
 
-#: src/cmp.c:148
+#: src/cmp.c:152
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr "ключи -l и -s несовместимы"
 
-#: src/cmp.c:156 src/diff.c:887 src/diff3.c:474 src/sdiff.c:168 src/sdiff.c:316
-#: src/sdiff.c:323 src/sdiff.c:876 src/util.c:852 src/util.c:952 src/util.c:959
+#: src/cmp.c:160 src/diff.c:947 src/diff3.c:472 src/sdiff.c:167 src/sdiff.c:314
+#: src/sdiff.c:321 src/sdiff.c:873 src/util.c:952 src/util.c:1052
+#: src/util.c:1059
 msgid "write failed"
 msgstr "ошибка при записи"
 
-#: src/cmp.c:158 src/diff.c:889 src/diff.c:1471 src/diff3.c:476 src/sdiff.c:170
+#: src/cmp.c:162 src/diff.c:949 src/diff.c:1543 src/diff3.c:474 src/sdiff.c:169
 msgid "standard output"
 msgstr "стандартный вывод"
 
-#: src/cmp.c:162
+#: src/cmp.c:166
 msgid "-b, --print-bytes          print differing bytes"
 msgstr "-b, --print-bytes       выводить различающиеся байты"
 
-#: src/cmp.c:163
+#: src/cmp.c:167
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
 msgstr "-i, --ignore-initial=Н  пропустить первые Н байт ввода"
 
-#: src/cmp.c:164
+#: src/cmp.c:168
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
@@ -535,38 +536,38 @@ msgstr ""
 "                        пропустить первые Н1 байт файла ФАЙЛ1\n"
 "                        и первые Н2 байт файла ФАЙЛ2"
 
-#: src/cmp.c:166
+#: src/cmp.c:170
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
 msgstr ""
 "-l,  --verbose          выводить номера и значения всех различающихся байт"
 
-#: src/cmp.c:167
+#: src/cmp.c:171
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
 msgstr "-n, --bytes=Н      сравнивать не более Н байт"
 
-#: src/cmp.c:168
+#: src/cmp.c:172
 msgid "-s, --quiet, --silent      suppress all normal output"
 msgstr "-s, --quiet, --silent   не показывать обычные сообщения"
 
-#: src/cmp.c:169
+#: src/cmp.c:173
 msgid "    --help                 display this help and exit"
 msgstr "    --help              показать эту справку и выйти"
 
-#: src/cmp.c:170
+#: src/cmp.c:174
 msgid "-v, --version              output version information and exit"
 msgstr "-v, --version           показать информацию о версии и выйти"
 
-#: src/cmp.c:179
+#: src/cmp.c:183
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
 msgstr "Использование: %s [КЛЮЧ]? ФАЙЛ1 [ФАЙЛ2 [Н1 [Н2]]]\n"
 
-#: src/cmp.c:181
+#: src/cmp.c:185
 msgid "Compare two files byte by byte."
 msgstr "Побайтово сравнивает два файла."
 
-#: src/cmp.c:183
+#: src/cmp.c:187
 msgid ""
 "The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
 "at the beginning of each file (zero by default)."
@@ -574,13 +575,13 @@ msgstr ""
 "Необязательные Н1 и Н2 ? это число байт, которые следует пропустить\n"
 "в каждом файле (по умолчанию 0)."
 
-#: src/cmp.c:186 src/diff.c:999 src/diff3.c:514 src/sdiff.c:211
+#: src/cmp.c:190 src/diff.c:1059 src/diff3.c:512 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
 "Аргументы, обязательные для длинных параметров, обязательны и для коротких.\n"
 
-#: src/cmp.c:192
+#: src/cmp.c:196
 msgid ""
 "SKIP values may be followed by the following multiplicative suffixes:\n"
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
@@ -590,199 +591,199 @@ msgstr ""
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
 "GB 1,000,000,000, G 1,073,741,824, и так далее для T, P, E, Z, Y."
 
-#: src/cmp.c:195
+#: src/cmp.c:199
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "Если ФАЙЛ не задан или задан как ?-?, то читается стандартный ввод."
 
-#: src/cmp.c:196 src/diff.c:987 src/sdiff.c:221
+#: src/cmp.c:200 src/diff.c:1047 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr ""
 "Выходной статус равен 0, если входные файлы идентичны, 1 ? если\n"
 "различаются, и 2 в случае неполадок."
 
-#: src/cmp.c:243
+#: src/cmp.c:247
 #, c-format
 msgid "invalid --bytes value '%s'"
 msgstr "недопустимое значение --bytes ?%s?"
 
-#: src/cmp.c:269 src/diff.c:797 src/diff3.c:361 src/sdiff.c:567
+#: src/cmp.c:273 src/diff.c:857 src/diff3.c:368 src/sdiff.c:564
 #, c-format
 msgid "missing operand after '%s'"
 msgstr "пропущен операнд после ?%s?"
 
-#: src/cmp.c:281 src/diff.c:799 src/diff3.c:363 src/sdiff.c:569
+#: src/cmp.c:285 src/diff.c:859 src/diff3.c:370 src/sdiff.c:566
 #, c-format
 msgid "extra operand '%s'"
 msgstr "лишний операнд ?%s?"
 
-#: src/cmp.c:507
+#: src/cmp.c:521
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s различаются: байт %s, строка %s\n"
 
-#: src/cmp.c:523
+#: src/cmp.c:537
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
 msgstr "%s %s различаются: байт %s, строка %s равен %3o %s %3o %s\n"
 
-#: src/cmp.c:580
+#: src/cmp.c:594
 #, c-format
 msgid "cmp: EOF on %s which is empty\n"
 msgstr "cmp: EOF в %s, который пуст\n"
 
-#: src/cmp.c:594
+#: src/cmp.c:608
 #, c-format
 msgid "cmp: EOF on %s after byte %s, line %s\n"
 msgstr "cmp: EOF в %s после байта %s, строка %s\n"
 
-#: src/cmp.c:595
+#: src/cmp.c:609
 #, c-format
 msgid "cmp: EOF on %s after byte %s, in line %s\n"
 msgstr "cmp: EOF в %s после байта %s в строке %s\n"
 
-#: src/cmp.c:601
+#: src/cmp.c:615
 #, c-format
 msgid "cmp: EOF on %s after byte %s\n"
 msgstr "cmp: EOF в %s после байта %s\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:51
+#: src/diff.c:50
 msgid "Paul Eggert"
 msgstr "Поль Эггерт (Paul Eggert)"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:52
+#: src/diff.c:51
 msgid "Mike Haertel"
 msgstr "Майк Гертель (Mike Haertel)"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:53
+#: src/diff.c:52
 msgid "David Hayes"
 msgstr "Дэвид Хейз (David Hayes)"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:54
+#: src/diff.c:53
 msgid "Richard Stallman"
 msgstr "Ричард Столлман (Richard Stallman)"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:55
+#: src/diff.c:54
 msgid "Len Tower"
 msgstr "Лен Тауэр (Len Tower)"
 
-#: src/diff.c:355
+#: src/diff.c:365
 #, c-format
 msgid "invalid context length '%s'"
 msgstr "недопустимая длина контекста ?%s?"
 
-#: src/diff.c:438
+#: src/diff.c:487
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "разбиение на страницы не поддерживается на данной машине"
 
-#: src/diff.c:453 src/diff3.c:341
+#: src/diff.c:502 src/diff3.c:348
 #, c-format
 msgid "too many file label options"
 msgstr "слишком много ключей задающих метки файлов"
 
-#: src/diff.c:530
+#: src/diff.c:579
 #, c-format
 msgid "invalid width '%s'"
 msgstr "недопустимая ширина ?%s?"
 
-#: src/diff.c:534
+#: src/diff.c:583
 msgid "conflicting width options"
 msgstr "противоречивые ключи задания ширины"
 
-#: src/diff.c:559
+#: src/diff.c:608
 #, c-format
 msgid "invalid horizon length '%s'"
 msgstr "недопустимая длина горизонта ?%s?"
 
-#: src/diff.c:615
+#: src/diff.c:664
 #, c-format
 msgid "invalid tabsize '%s'"
 msgstr "недопустимая ширина табуляции ?%s?"
 
-#: src/diff.c:619
+#: src/diff.c:668
 msgid "conflicting tabsize options"
 msgstr "противоречивые ключи задания ширины табуляции"
 
-#: src/diff.c:774
+#: src/diff.c:834
 msgid "--from-file and --to-file both specified"
 msgstr "необходимо задать как --from-file, так и --to-file"
 
-#: src/diff.c:893
+#: src/diff.c:953
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "    --normal            выводить в обычном формате diff (по умолчанию)"
 
-#: src/diff.c:894
+#: src/diff.c:954
 msgid "-q, --brief                   report only when files differ"
 msgstr "-q, --brief             напечатать только различаются ли файлы"
 
-#: src/diff.c:895
+#: src/diff.c:955
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr ""
 "-s, --report-identical-files\n"
 "                        сообщать об одинаковых файлах"
 
-#: src/diff.c:896
+#: src/diff.c:956
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
 "-c, -C Н, --context[=Н] выводить по Н (по умолчанию 3) строк\n"
 "                        копируемого контекста"
 
-#: src/diff.c:897
+#: src/diff.c:957
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
 "-u, -U Н, --unified[=Н] выводить по Н (по умолчанию 3) строк\n"
 "                        объединенного контекста"
 
-#: src/diff.c:898
+#: src/diff.c:958
 msgid "-e, --ed                      output an ed script"
 msgstr "-e, --ed                выводить как сценарий ed"
 
-#: src/diff.c:899
+#: src/diff.c:959
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n, --rcs               выводить в формате RCS diff"
 
-#: src/diff.c:900
+#: src/diff.c:960
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side      выводить в две колонки"
 
-#: src/diff.c:901
+#: src/diff.c:961
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
 "-W, --width=Н           выводить не более Н знаков в строке\n"
 "                        (по умолчанию 130)"
 
-#: src/diff.c:902
+#: src/diff.c:962
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr "    --left-column       выводить только левую колонку общих строк"
 
-#: src/diff.c:903
+#: src/diff.c:963
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr ""
 "    --suppress-common-lines\n"
 "                        не выводить общие строки"
 
-#: src/diff.c:905
+#: src/diff.c:965
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr ""
 "-p, --show-c-function   отображать в какой функции Си находится\n"
 "                        каждое изменение"
 
-#: src/diff.c:906
+#: src/diff.c:966
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr ""
 "-F, --show-function-line=RE\n"
 "                        отображать последнюю совпавшую с RE строку"
 
-#: src/diff.c:907
+#: src/diff.c:967
 msgid ""
 "    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
@@ -790,24 +791,24 @@ msgstr ""
 "    --label МЕТКА       использовать МЕТКУ вместо имени файла и времени\n"
 "                        (может повторяться)"
 
-#: src/diff.c:910
+#: src/diff.c:970
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr ""
 "-t, --expand-tabs       раскрывать при выводе символы табуляции в пробелы"
 
-#: src/diff.c:911
+#: src/diff.c:971
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr ""
 "-T, --initial-tab       выравнивать строки, добавляя в начало символ "
 "табуляции"
 
-#: src/diff.c:912
+#: src/diff.c:972
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=Н         табуляция через каждые Н знаков (по умолчанию 8)"
 
-#: src/diff.c:913
+#: src/diff.c:973
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
@@ -815,61 +816,61 @@ msgstr ""
 "                        не вставлять пробел или табуляцию перед\n"
 "                        выводом пустых строк"
 
-#: src/diff.c:914
+#: src/diff.c:974
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr "-l, --paginate          направить вывод в pr для разбиения на страницы"
 
-#: src/diff.c:916
+#: src/diff.c:976
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr "-r, --recursive         рекурсивно сравнивать подкаталоги"
 
-#: src/diff.c:917
+#: src/diff.c:977
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr "    --no-dereference    не переходить по символьным ссылкам"
 
-#: src/diff.c:918
+#: src/diff.c:978
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr "-N, --new-file          воспринимать несуществующие файлы как пустые"
 
-#: src/diff.c:919
+#: src/diff.c:979
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
 "    --unidirectional-new-file\n"
 "                        воспринимать несуществующие первые файлы как пустые"
 
-#: src/diff.c:920
+#: src/diff.c:980
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ""
 "    --ignore-file-name-case\n"
 "                        игнорировать регистр в именах файлов"
 
-#: src/diff.c:921
+#: src/diff.c:981
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
 "    --no-ignore-file-name-case\n"
 "                        учитывать регистр в именах файлов"
 
-#: src/diff.c:922
+#: src/diff.c:982
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr ""
 "-x, --exclude=ОБРАЗЕЦ   исключить файлы, чьи имена совпадают с ОБРАЗЦОМ"
 
-#: src/diff.c:923
+#: src/diff.c:983
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
 "-X, --exclude-from=ФАЙЛ исключить файлы с именами, совпадающими\n"
 "                        с любым образцом из ФАЙЛА"
 
-#: src/diff.c:924
+#: src/diff.c:984
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
 "-S, --starting-file=ФАЙЛ\n"
 "                        при сравнении каталогов начать с ФАЙЛА"
 
-#: src/diff.c:925
+#: src/diff.c:985
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
@@ -877,7 +878,7 @@ msgstr ""
 "    --from-file=ФАЙЛ1   сравнить ФАЙЛ1 со всеми операндами;\n"
 "                        ФАЙЛ1 может быть каталогом"
 
-#: src/diff.c:927
+#: src/diff.c:987
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
@@ -885,88 +886,88 @@ msgstr ""
 "    --to-file=ФАЙЛ2     сравнить все операнды с ФАЙЛОМ2;\n"
 "                        ФАЙЛ2 может быть каталогом"
 
-#: src/diff.c:930
+#: src/diff.c:990
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr "-i, --ignore-case       игнорировать регистр в содержимом файла"
 
-#: src/diff.c:931
+#: src/diff.c:991
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr ""
 "-E, --ignore-tab-expansion\n"
 "                        игнорировать изменения, вызванные раскрытием "
 "табуляции"
 
-#: src/diff.c:932
+#: src/diff.c:992
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr ""
 "-Z, --ignore-trailing-space\n"
 "                        игнорировать пробельные символы в конце строки"
 
-#: src/diff.c:933
+#: src/diff.c:993
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr ""
 "-b, --ignore-space-change\n"
 "                        игнорировать изменения количества пробельных символов"
 
-#: src/diff.c:934
+#: src/diff.c:994
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w, --ignore-all-space  игнорировать все пробельные символы"
 
-#: src/diff.c:935
+#: src/diff.c:995
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr ""
 "-B, --ignore-blank-lines\n"
 "                        игнорировать изменения количества пустых строк"
 
-#: src/diff.c:936
+#: src/diff.c:996
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=RE\n"
 "                        игнорировать изменения строк, совпадающих с RE"
 
-#: src/diff.c:938
+#: src/diff.c:998
 msgid "-a, --text                      treat all files as text"
 msgstr "-a, --text              считать все файлы текстовыми"
 
-#: src/diff.c:939
+#: src/diff.c:999
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr "    --strip-trailing-cr удалять из ввода завершающий возврат каретки"
 
-#: src/diff.c:941
+#: src/diff.c:1001
 msgid "    --binary                    read and write data in binary mode"
 msgstr "    --binary            читать и записывать файлы в двоичном режиме"
 
-#: src/diff.c:944
+#: src/diff.c:1004
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
 "-D, --ifdef=ИМЯ         выводить заплаты, использующие конструкцию ?#ifdef "
 "ИМЯ?"
 
-#: src/diff.c:945
+#: src/diff.c:1005
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr ""
 "    --GTYPE-group-format=GFMT\n"
 "                        форматировать входные группы типа GTYPE\n"
 "                        в соответствии GFMT"
 
-#: src/diff.c:946
+#: src/diff.c:1006
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr ""
 "    --line-format=LFMT  форматировать все входные строки в соответствии с "
 "LFMT"
 
-#: src/diff.c:947
+#: src/diff.c:1007
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr ""
 "    --LTYPE-line-format=LFMT\n"
 "                        форматировать входные строки типа LTYPE\n"
 "                        в соответствии LFMT"
 
-#: src/diff.c:948
+#: src/diff.c:1008
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
@@ -974,13 +975,13 @@ msgstr ""
 "Параметры форматирования предоставляют точный контроль над конечным diff\n"
 "обобщающими -D/--ifdef."
 
-#: src/diff.c:950
+#: src/diff.c:1010
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
 "  LTYPE может быть ?old?, ?new? или ?unchanged?.\n"
 "  Значение GTYPE те же или ?changed?."
 
-#: src/diff.c:951
+#: src/diff.c:1011
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -1009,7 +1010,7 @@ msgstr ""
 "        M  L+1\n"
 "    %(A=B?T:E)  если A равно B, то T, иначе E"
 
-#: src/diff.c:963
+#: src/diff.c:1023
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -1021,7 +1022,7 @@ msgstr ""
 "    %l  содержимое строки, исключая все конечные символы новой строки\n"
 "    %[-][ШИРИНА][.[ТОЧН]]{doxX}n  формат номера входной строки в стиле printf"
 
-#: src/diff.c:967
+#: src/diff.c:1027
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1035,23 +1036,23 @@ msgstr ""
 "    %c'\\OOO'  символ в восьмеричным коде OOO\n"
 "    C    символ C (символы, представляющие сами себя)"
 
-#: src/diff.c:973
+#: src/diff.c:1033
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr "-d, --minimal           пытаться найти наименьший набор изменений"
 
-#: src/diff.c:974
+#: src/diff.c:1034
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr ""
 "    --horizon-lines=Н   оставлять Н общих строк до и после различающихся"
 
-#: src/diff.c:975
+#: src/diff.c:1035
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
 "    --speed-large-files предполагать, что файлы большие и есть много\n"
 "                        разбросанных мелких изменений"
 
-#: src/diff.c:976
+#: src/diff.c:1036
 msgid ""
 "    --color[=WHEN]       color output; WHEN is 'never', 'always', or "
 "'auto';\n"
@@ -1060,7 +1061,7 @@ msgstr ""
 "    --color[=КОГДА]     вывод в цвете; КОГДА может быть «never», «always»\n"
 "                        или «auto»; без уточнения используется --color='auto'"
 
-#: src/diff.c:978
+#: src/diff.c:1038
 msgid ""
 "    --palette=PALETTE    the colors to use when --color is active; PALETTE "
 "is\n"
@@ -1069,112 +1070,112 @@ msgstr ""
 "    --palette=ПАЛИТРА   набор цветов при активном --color; ПАЛИТРА это\n"
 "                        список свойств terminfo через двоеточие"
 
-#: src/diff.c:981
+#: src/diff.c:1041
 msgid "    --help               display this help and exit"
 msgstr "    --help              показать эту справку и выйти"
 
-#: src/diff.c:982
+#: src/diff.c:1042
 msgid "-v, --version            output version information and exit"
 msgstr "-v, --version           показать информацию о версии и выйти"
 
-#: src/diff.c:984
+#: src/diff.c:1044
 msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
 "ФАЙЛЫ это ?ФАЙЛ1 ФАЙЛ2?, ?КАТАЛОГ1 КАТАЛОГ2?, ?КАТАЛОГ ФАЙЛ??\n"
 "или ?ФАЙЛ? КАТАЛОГ?."
 
-#: src/diff.c:985
+#: src/diff.c:1045
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr "Если задан --from-file или --to-file, то на ФАЙЛЫ нет ограничений."
 
-#: src/diff.c:986 src/diff3.c:533 src/sdiff.c:220
+#: src/diff.c:1046 src/diff3.c:531 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
 msgstr "Если ФАЙЛ задан как ?-?, читает стандартный ввод."
 
-#: src/diff.c:996
+#: src/diff.c:1056
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Использование: %s [КЛЮЧ]? ФАЙЛЫ\n"
 
-#: src/diff.c:997
+#: src/diff.c:1057
 msgid "Compare FILES line by line."
 msgstr "Построчно сравнивает ФАЙЛЫ."
 
-#: src/diff.c:1034
+#: src/diff.c:1094
 #, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "противоречивое значение %s для ключа ?%s?"
 
-#: src/diff.c:1047
+#: src/diff.c:1107
 #, c-format
 msgid "conflicting output style options"
 msgstr "противоречивые ключи задания стиля вывода"
 
-#: src/diff.c:1063
+#: src/diff.c:1123
 #, c-format
 msgid "invalid color '%s'"
 msgstr "неправильное указание цвета ?%s?"
 
-#: src/diff.c:1119 src/diff.c:1329
+#: src/diff.c:1197 src/diff.c:1401
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Только в %s: %s\n"
 
-#: src/diff.c:1253
+#: src/diff.c:1325
 msgid "cannot compare '-' to a directory"
 msgstr "невозможно сравнить ?-? с каталогом"
 
-#: src/diff.c:1288
+#: src/diff.c:1360
 msgid "-D option not supported with directories"
 msgstr "ключ -D не поддерживается для каталогов"
 
-#: src/diff.c:1297
+#: src/diff.c:1369
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Общие подкаталоги: %s и %s\n"
 
-#: src/diff.c:1339 src/diff.c:1389
+#: src/diff.c:1411 src/diff.c:1461
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr "Файл %s это %s, тогда как файл %s ? %s\n"
 
-#: src/diff.c:1375
+#: src/diff.c:1447
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "Символические ссылки %s и %s различаются\n"
 
-#: src/diff.c:1462
+#: src/diff.c:1534
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Файлы %s и %s идентичны\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff3.c:43
+#: src/diff3.c:51
 msgid "Randy Smith"
 msgstr "Рэнди Смит (Randy Smith)"
 
-#: src/diff3.c:356
+#: src/diff3.c:363
 #, c-format
 msgid "incompatible options"
 msgstr "несовместимые ключи"
 
-#: src/diff3.c:396
+#: src/diff3.c:403
 msgid "'-' specified for more than one input file"
 msgstr "?-? задан для более одного входного файла"
 
-#: src/diff3.c:447 src/diff3.c:1295 src/diff3.c:1698 src/diff3.c:1753
-#: src/sdiff.c:308 src/sdiff.c:846 src/sdiff.c:857
+#: src/diff3.c:445 src/diff3.c:1284 src/diff3.c:1683 src/diff3.c:1738
+#: src/sdiff.c:306 src/sdiff.c:843 src/sdiff.c:854
 msgid "read failed"
 msgstr "ошибка чтения"
 
-#: src/diff3.c:480
+#: src/diff3.c:478
 msgid "-A, --show-all              output all changes, bracketing conflicts"
 msgstr ""
 "-A, --show-all          выводить все изменения, заключая конфликтные\n"
 "                        места в скобки"
 
-#: src/diff3.c:482
+#: src/diff3.c:480
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
@@ -1182,30 +1183,30 @@ msgstr ""
 "-e, --ed                вывести сценарий ed, изменяющий\n"
 "                        СТАРЫЙ_ФАЙЛ из ВАШ_ФАЙЛ, в МОЙ_ФАЙЛ"
 
-#: src/diff3.c:484
+#: src/diff3.c:482
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
 msgstr "-E, --show-overlap      как -e плюс конфликты в скобках"
 
-#: src/diff3.c:485
+#: src/diff3.c:483
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
 msgstr "-3, --easy-only         как -e, но только непересекающиеся изменения"
 
-#: src/diff3.c:486
+#: src/diff3.c:484
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
 msgstr "-x, --overlap-only      как -e, но только перекрывающиеся изменения"
 
-#: src/diff3.c:487
+#: src/diff3.c:485
 msgid "-X                          like -x, but bracket conflicts"
 msgstr "-X                      как -x плюс конфликты в скобках"
 
-#: src/diff3.c:488
+#: src/diff3.c:486
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
 msgstr "-i                      добавить команды ?w? и ?q? в сценарий ed"
 
-#: src/diff3.c:490
+#: src/diff3.c:488
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
@@ -1213,27 +1214,27 @@ msgstr ""
 "-m, --merge             выводить объединенный файл согласно\n"
 "                        -A, если не указаны другие параметры"
 
-#: src/diff3.c:493
+#: src/diff3.c:491
 msgid "-a, --text                  treat all files as text"
 msgstr "-a, --text              считать все файлы текстовыми"
 
-#: src/diff3.c:494
+#: src/diff3.c:492
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
 msgstr "    --strip-trailing-cr удалять из ввода завершающий возврат каретки"
 
-#: src/diff3.c:495
+#: src/diff3.c:493
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
 msgstr ""
 "-T, --initial-tab       выравнивать строки, добавляя в начало символ "
 "табуляции"
 
-#: src/diff3.c:496
+#: src/diff3.c:494
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
 msgstr ""
 "    --diff-program=ПРОГРАММА\n"
 "                        для сравнения файлов использовать ПРОГРАММУ"
 
-#: src/diff3.c:497
+#: src/diff3.c:495
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
@@ -1241,24 +1242,24 @@ msgstr ""
 "-L, --label=МЕТКА       использовать МЕТКУ вместо имени файла\n"
 "                        (может повторяться до трёх раз)"
 
-#: src/diff3.c:500
+#: src/diff3.c:498
 msgid "    --help                  display this help and exit"
 msgstr "    --help              показать эту справку и выйти"
 
-#: src/diff3.c:501
+#: src/diff3.c:499
 msgid "-v, --version               output version information and exit"
 msgstr "-v, --version           показать информацию о версии и выйти"
 
-#: src/diff3.c:510
+#: src/diff3.c:508
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
 msgstr "Использование: %s [КЛЮЧ]? МОЙ_ФАЙЛ СТАРЫЙ_ФАЙЛ ВАШ_ФАЙЛ\n"
 
-#: src/diff3.c:512
+#: src/diff3.c:510
 msgid "Compare three files line by line."
 msgstr "Построчно сравнивает три файла."
 
-#: src/diff3.c:522
+#: src/diff3.c:520
 msgid ""
 "\n"
 "The default output format is a somewhat human-readable representation of\n"
@@ -1281,56 +1282,56 @@ msgstr ""
 "и выводить уже объединённый файл. Для необычного ввода это более\n"
 "разумно, чем использование ed.\n"
 
-#: src/diff3.c:534
+#: src/diff3.c:532
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
 msgstr ""
 "Выходной статус равен 0 в случае успеха, 1 в случае конфликтов и 2 в\n"
 "случае неполадок."
 
-#: src/diff3.c:727
+#: src/diff3.c:725
 msgid "internal error: screwup in format of diff blocks"
 msgstr "внутренняя ошибка: поврежденный формат блоков заплаты"
 
-#: src/diff3.c:1022
+#: src/diff3.c:1015
 #, c-format
 msgid "%s: diff failed: "
 msgstr "%s: ошибка при поиске различий: "
 
-#: src/diff3.c:1044
+#: src/diff3.c:1037
 msgid "internal error: invalid diff type in process_diff"
 msgstr "внутренняя ошибка: неверный тип заплаты в функции process_diff"
 
-#: src/diff3.c:1069
+#: src/diff3.c:1060
 msgid "invalid diff format; invalid change separator"
 msgstr "неверный формат заплаты; неверный разделитель изменения"
 
-#: src/diff3.c:1305
+#: src/diff3.c:1294
 msgid "invalid diff format; incomplete last line"
 msgstr "неверный формат заплаты; неполная последняя строка"
 
-#: src/diff3.c:1329 src/sdiff.c:276 src/util.c:969
+#: src/diff3.c:1318 src/sdiff.c:274 src/util.c:1069
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "не удалось запустить вспомогательную программу ?%s?"
 
-#: src/diff3.c:1354
+#: src/diff3.c:1343
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "неверный формат заплаты; неправильные первые символы строки"
 
-#: src/diff3.c:1427
+#: src/diff3.c:1416
 msgid "internal error: invalid diff type passed to output"
 msgstr "внутренняя ошибка: на выход передан неверный тип заплаты"
 
-#: src/diff3.c:1700 src/diff3.c:1757
+#: src/diff3.c:1685 src/diff3.c:1742
 msgid "input file shrank"
 msgstr "входной файл уменьшился"
 
-#: src/dir.c:156
+#: src/dir.c:154
 #, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "невозможно сравнить имена файлов ?%s? и ?%s?"
 
-#: src/dir.c:225
+#: src/dir.c:223
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: каталоги зациклены"
@@ -1340,132 +1341,132 @@ msgstr "%s: каталоги зациклены"
 msgid "Thomas Lord"
 msgstr "Томас Лорд (Thomas Lord)"
 
-#: src/sdiff.c:174
+#: src/sdiff.c:173
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
 msgstr "-o, --output=ФАЙЛ       работать интерактивно, записывая вывод в ФАЙЛ"
 
-#: src/sdiff.c:176
+#: src/sdiff.c:175
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
 msgstr "-i, --ignore-case       игнорировать регистр символов"
 
-#: src/sdiff.c:177
+#: src/sdiff.c:176
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
 msgstr ""
 "-E, --ignore-tab-expansion\n"
 "                        игнорировать изменения, вызванные раскрытием "
 "табуляции"
 
-#: src/sdiff.c:178
+#: src/sdiff.c:177
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
 msgstr ""
 "-Z, --ignore-trailing-space\n"
 "                        игнорировать пробельные символы в конце строки"
 
-#: src/sdiff.c:179
+#: src/sdiff.c:178
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
 msgstr ""
 "-b, --ignore-space-change\n"
 "                        игнорировать изменения количества пробельных символов"
 
-#: src/sdiff.c:180
+#: src/sdiff.c:179
 msgid "-W, --ignore-all-space       ignore all white space"
 msgstr "-W, --ignore-all-space  игнорировать все пробельные символы"
 
-#: src/sdiff.c:181
+#: src/sdiff.c:180
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
 msgstr ""
 "-B, --ignore-blank-lines\n"
 "                        игнорировать изменения количества пустых строк"
 
-#: src/sdiff.c:182
+#: src/sdiff.c:181
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=RE\n"
 "                        игнорировать изменения строк, совпадающих с RE"
 
-#: src/sdiff.c:183
+#: src/sdiff.c:182
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
 msgstr "    --strip-trailing-cr удалять из ввода завершающий возврат каретки"
 
-#: src/sdiff.c:184
+#: src/sdiff.c:183
 msgid "-a, --text                   treat all files as text"
 msgstr "-a, --text              считать все файлы текстовыми"
 
-#: src/sdiff.c:186
+#: src/sdiff.c:185
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
 msgstr ""
 "-w, --width=Н           выводить не более Н знаков в строке\n"
 "                        (по умолчанию 130)"
 
-#: src/sdiff.c:187
+#: src/sdiff.c:186
 msgid ""
 "-l, --left-column            output only the left column of common lines"
 msgstr "--left-column           выводить только левую колонку общих строк"
 
-#: src/sdiff.c:188
+#: src/sdiff.c:187
 msgid "-s, --suppress-common-lines  do not output common lines"
 msgstr ""
 "--suppress-common-lines\n"
 "                        не выводить общие строки"
 
-#: src/sdiff.c:190
+#: src/sdiff.c:189
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
 msgstr ""
 "-t, --expand-tabs       раскрывать при выводе символы табуляции в пробелы"
 
-#: src/sdiff.c:191
+#: src/sdiff.c:190
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=Н         табуляция через каждые Н знаков (по умолчанию 8)"
 
-#: src/sdiff.c:193
+#: src/sdiff.c:192
 msgid "-d, --minimal                try hard to find a smaller set of changes"
 msgstr "-d, --minimal           пытаться найти наименьший набор изменений"
 
-#: src/sdiff.c:194
+#: src/sdiff.c:193
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
 msgstr ""
 "-H, --speed-large-files предполагать, что файлы большие и есть много\n"
 "                        разбросанных мелких изменений"
 
-#: src/sdiff.c:195
+#: src/sdiff.c:194
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
 msgstr ""
 "    --diff-program=ПРОГРАММА\n"
 "                        для сравнения файлов использовать ПРОГРАММУ"
 
-#: src/sdiff.c:197
+#: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
 msgstr "    --help              показать эту справку и выйти"
 
-#: src/sdiff.c:198
+#: src/sdiff.c:197
 msgid "-v, --version                output version information and exit"
 msgstr "-v, --version           показать информацию о версии и выйти"
 
-#: src/sdiff.c:207
+#: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
 msgstr "Использование: %s [КЛЮЧ]? ФАЙЛ1 ФАЙЛ2\n"
 
-#: src/sdiff.c:209
+#: src/sdiff.c:208
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
 msgstr "Интерактивно объединяет различия между ФАЙЛОМ1 и ФАЙЛОМ2."
 
-#: src/sdiff.c:330
+#: src/sdiff.c:328
 msgid "cannot interactively merge standard input"
 msgstr "невозможно интерактивно объединить стандартный ввод"
 
-#: src/sdiff.c:597
+#: src/sdiff.c:594
 msgid "both files to be compared are directories"
 msgstr "оба сравниваемых файла ? каталоги"
 
-#: src/sdiff.c:820
+#: src/sdiff.c:817
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
 "eb:\tEdit then use both versions.\n"
@@ -1489,12 +1490,12 @@ msgstr ""
 "v:\tВключать общие строки, выдавая сообщение.\n"
 "q:\tВыйти.\n"
 
-#: src/util.c:662
+#: src/util.c:755
 #, c-format
 msgid "unrecognized prefix: %s"
 msgstr "неизвестный префикс: %s"
 
-#: src/util.c:692
+#: src/util.c:785
 #, c-format
 msgid "unparsable value for --palette"
 msgstr "невозможно разобрать значение --palette"
index 4cc8d7e..1b13a7c 100644 (file)
--- a/po/sr.po
+++ b/po/sr.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: diffutils 3.7.41\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2021-08-01 18:56-0700\n"
+"POT-Creation-Date: 2023-05-21 01:51-0700\n"
 "PO-Revision-Date: 2021-07-26 10:13+0200\n"
 "Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
 "Language-Team: Serbian <(nothing)>\n"
@@ -15,33 +15,33 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 
-#: lib/argmatch.c:132
+#: lib/argmatch.c:145
 #, c-format
 msgid "invalid argument %s for %s"
 msgstr "неисправан аргумент „%s“ за „%s“"
 
-#: lib/argmatch.c:133
+#: lib/argmatch.c:146
 #, c-format
 msgid "ambiguous argument %s for %s"
 msgstr "нејасан аргумент „%s“ за „%s“"
 
-#: lib/argmatch.c:152 lib/argmatch.h:223
+#: lib/argmatch.c:165 lib/argmatch.h:242
 msgid "Valid arguments are:"
 msgstr "Исправни аргументи су:"
 
-#: lib/c-stack.c:187
+#: lib/c-stack.c:186
 msgid "program error"
 msgstr "грешка програма"
 
-#: lib/c-stack.c:188
+#: lib/c-stack.c:187
 msgid "stack overflow"
 msgstr "стек препуњен"
 
-#: lib/error.c:195
+#: lib/error.c:193
 msgid "Unknown system error"
 msgstr "Непозната системска грешка"
 
@@ -197,83 +197,83 @@ msgstr "%s: опција захтева аргумент -- „%c“\n"
 #. If you don't know what to put here, please see
 #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:355
+#: lib/quotearg.c:354
 msgid "`"
 msgstr "„"
 
-#: lib/quotearg.c:356
+#: lib/quotearg.c:355
 msgid "'"
 msgstr "“"
 
-#: lib/regcomp.c:135
+#: lib/regcomp.c:122
 msgid "Success"
 msgstr "Успешно"
 
-#: lib/regcomp.c:138
+#: lib/regcomp.c:125
 msgid "No match"
 msgstr "Нема поклапања"
 
-#: lib/regcomp.c:141
+#: lib/regcomp.c:128
 msgid "Invalid regular expression"
 msgstr "Неисправан регуларни израз"
 
-#: lib/regcomp.c:144
+#: lib/regcomp.c:131
 msgid "Invalid collation character"
 msgstr "Неисправан знак слагања"
 
-#: lib/regcomp.c:147
+#: lib/regcomp.c:134
 msgid "Invalid character class name"
 msgstr "Неправилан назив разреда знака"
 
-#: lib/regcomp.c:150
+#: lib/regcomp.c:137
 msgid "Trailing backslash"
 msgstr "Пратећа обрнута коса црта"
 
-#: lib/regcomp.c:153
+#: lib/regcomp.c:140
 msgid "Invalid back reference"
 msgstr "Неисправна повратна упута"
 
-#: lib/regcomp.c:156
+#: lib/regcomp.c:143
 msgid "Unmatched [, [^, [:, [., or [="
 msgstr "Неупарено [, [^, [:, [., или [="
 
-#: lib/regcomp.c:159
+#: lib/regcomp.c:146
 msgid "Unmatched ( or \\("
 msgstr "Неупарено ( или \\("
 
-#: lib/regcomp.c:162
+#: lib/regcomp.c:149
 msgid "Unmatched \\{"
 msgstr "Неупарено \\{"
 
-#: lib/regcomp.c:165
+#: lib/regcomp.c:152
 msgid "Invalid content of \\{\\}"
 msgstr "Неисправан садржај у \\{\\}"
 
-#: lib/regcomp.c:168
+#: lib/regcomp.c:155
 msgid "Invalid range end"
 msgstr "Неисправан крај опсега"
 
-#: lib/regcomp.c:171
+#: lib/regcomp.c:158
 msgid "Memory exhausted"
 msgstr "Меморија је исцрпљена"
 
-#: lib/regcomp.c:174
+#: lib/regcomp.c:161
 msgid "Invalid preceding regular expression"
 msgstr "Неисправан претходећи регуларни израз"
 
-#: lib/regcomp.c:177
+#: lib/regcomp.c:164
 msgid "Premature end of regular expression"
 msgstr "Преран завршетак регуларног израза"
 
-#: lib/regcomp.c:180
+#: lib/regcomp.c:167
 msgid "Regular expression too big"
 msgstr "Регуларан израз је исувише велики"
 
-#: lib/regcomp.c:183
+#: lib/regcomp.c:170
 msgid "Unmatched ) or \\)"
 msgstr "Неупарено ) или \\)"
 
-#: lib/regcomp.c:676
+#: lib/regcomp.c:650
 msgid "No previous regular expression"
 msgstr "Нема претходног регуларног израза"
 
@@ -468,17 +468,17 @@ msgstr "%s матична страница: <%s>\n"
 msgid "General help using GNU software: <%s>\n"
 msgstr "Општа помоћ за коришћење ГНУ софтвера: <%s>\n"
 
-#: src/analyze.c:454 src/diff.c:1406
+#: src/analyze.c:455 src/diff.c:1478
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Датотеке „%s“ и „%s“ су различите\n"
 
-#: src/analyze.c:455
+#: src/analyze.c:456
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "Бинарне датотеке %s и %s различите\n"
 
-#: src/analyze.c:706 src/diff3.c:1470 src/util.c:1254
+#: src/analyze.c:707 src/diff3.c:1457 src/util.c:1354
 msgid "No newline at end of file"
 msgstr "Без новог реда на крају датотеке"
 
@@ -492,81 +492,82 @@ msgstr "Торбјорн Гранлунд"
 msgid "David MacKenzie"
 msgstr "Дејвид Мек Кензи"
 
-#: src/cmp.c:120 src/diff.c:879 src/diff3.c:467 src/sdiff.c:160
+#: src/cmp.c:124 src/diff.c:939 src/diff3.c:465 src/sdiff.c:159
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Покушајте „%s --help“ за више информација."
 
-#: src/cmp.c:138
+#: src/cmp.c:142
 #, c-format
 msgid "invalid --ignore-initial value '%s'"
 msgstr "неисправна „--ignore-initial“ вредност „%s“"
 
-#: src/cmp.c:148
+#: src/cmp.c:152
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr "опције -l и -s не иду заједно"
 
-#: src/cmp.c:156 src/diff.c:887 src/diff3.c:474 src/sdiff.c:168 src/sdiff.c:316
-#: src/sdiff.c:323 src/sdiff.c:876 src/util.c:852 src/util.c:952 src/util.c:959
+#: src/cmp.c:160 src/diff.c:947 src/diff3.c:472 src/sdiff.c:167 src/sdiff.c:314
+#: src/sdiff.c:321 src/sdiff.c:873 src/util.c:952 src/util.c:1052
+#: src/util.c:1059
 msgid "write failed"
 msgstr "записивање није успело"
 
-#: src/cmp.c:158 src/diff.c:889 src/diff.c:1471 src/diff3.c:476 src/sdiff.c:170
+#: src/cmp.c:162 src/diff.c:949 src/diff.c:1543 src/diff3.c:474 src/sdiff.c:169
 msgid "standard output"
 msgstr "стандардни излаз"
 
-#: src/cmp.c:162
+#: src/cmp.c:166
 msgid "-b, --print-bytes          print differing bytes"
 msgstr ""
 "-b  --print-bytes                   исписује бајтове који се разликују."
 
-#: src/cmp.c:163
+#: src/cmp.c:167
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
 msgstr ""
 "-i БРОЈ  --ignore-initial=БРОЈ      изоставља првих БРОЈ бајтова улаза."
 
-#: src/cmp.c:164
+#: src/cmp.c:168
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
 msgstr ""
 "  изоставља првих БРОЈ1 бајтова ДАТОТЕКЕ1 и првих БРОЈ2 бајтова ДАТОТЕКЕ2."
 
-#: src/cmp.c:166
+#: src/cmp.c:170
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
 msgstr ""
 "-l  --verbose                       исписује редни број и вредност бајтова "
 "који се разликују."
 
-#: src/cmp.c:167
+#: src/cmp.c:171
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
 msgstr ""
 "-n ОГРАНИЧЕЊЕ  --bytes=ОГРАНИЧЕЊЕ   пореди до највише ОГРАНИЧЕЊЕ бајтова."
 
-#: src/cmp.c:168
+#: src/cmp.c:172
 msgid "-s, --quiet, --silent      suppress all normal output"
 msgstr "-s, --quiet, --silent               потискује све обичне излазе"
 
-#: src/cmp.c:169
+#: src/cmp.c:173
 msgid "    --help                 display this help and exit"
 msgstr "    --help                          приказује ову помоћ и излази"
 
-#: src/cmp.c:170
+#: src/cmp.c:174
 msgid "-v, --version              output version information and exit"
 msgstr "-v  --version                       исписује податке о издању."
 
-#: src/cmp.c:179
+#: src/cmp.c:183
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
 msgstr "Употреба: %s [ОПЦИЈА]... ДАТОТЕКА1 [ДАТОТЕКА2 [БРОЈ1 [БРОЈ2]]]\n"
 
-#: src/cmp.c:181
+#: src/cmp.c:185
 msgid "Compare two files byte by byte."
 msgstr "Поредите две датотеке бајт по бајт."
 
-#: src/cmp.c:183
+#: src/cmp.c:187
 msgid ""
 "The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
 "at the beginning of each file (zero by default)."
@@ -574,13 +575,13 @@ msgstr ""
 "Изборни БРОЈ1 и БРОЈ2 су бројеви бајтова за изостављање на почетку\n"
 "сваке датотеке (подразумева се нула)."
 
-#: src/cmp.c:186 src/diff.c:999 src/diff3.c:514 src/sdiff.c:211
+#: src/cmp.c:190 src/diff.c:1059 src/diff3.c:512 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
 "Обавезни аргументи за дуге опције су обавезни и за кратке опције такође.\n"
 
-#: src/cmp.c:192
+#: src/cmp.c:196
 msgid ""
 "SKIP values may be followed by the following multiplicative suffixes:\n"
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
@@ -591,191 +592,191 @@ msgstr ""
 "1,073,741,824,\n"
 "итд. за T, P, E, Z, Y."
 
-#: src/cmp.c:195
+#: src/cmp.c:199
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "Чита стандардни улаз ако ДАТОТЕКА недостаје или је „-“."
 
-#: src/cmp.c:196 src/diff.c:987 src/sdiff.c:221
+#: src/cmp.c:200 src/diff.c:1047 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr "Излазно стање је 0 ако су улази исти, 1 за различите, 2 за грешку."
 
-#: src/cmp.c:243
+#: src/cmp.c:247
 #, c-format
 msgid "invalid --bytes value '%s'"
 msgstr "неисправна --bytes вредност „%s“"
 
-#: src/cmp.c:269 src/diff.c:797 src/diff3.c:361 src/sdiff.c:567
+#: src/cmp.c:273 src/diff.c:857 src/diff3.c:368 src/sdiff.c:564
 #, c-format
 msgid "missing operand after '%s'"
 msgstr "недостаје оператор после „%s“"
 
-#: src/cmp.c:281 src/diff.c:799 src/diff3.c:363 src/sdiff.c:569
+#: src/cmp.c:285 src/diff.c:859 src/diff3.c:370 src/sdiff.c:566
 #, c-format
 msgid "extra operand '%s'"
 msgstr "вишак оператор „%s“"
 
-#: src/cmp.c:507
+#: src/cmp.c:521
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s се разликују: бајт %s, ред %s\n"
 
-#: src/cmp.c:523
+#: src/cmp.c:537
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
 msgstr "%s %s се разликују: бајт %s, ред %s је %3o %s %3o %s\n"
 
-#: src/cmp.c:580
+#: src/cmp.c:594
 #, c-format
 msgid "cmp: EOF on %s which is empty\n"
 msgstr "cmp: крај датотеке на %s које је празно\n"
 
-#: src/cmp.c:594
+#: src/cmp.c:608
 #, c-format
 msgid "cmp: EOF on %s after byte %s, line %s\n"
 msgstr "cmp: крај датотеке на %s након бајта %s, %s. ред\n"
 
-#: src/cmp.c:595
+#: src/cmp.c:609
 #, c-format
 msgid "cmp: EOF on %s after byte %s, in line %s\n"
 msgstr "cmp: крај датотеке на %s након бајта %s, у %s. реду\n"
 
-#: src/cmp.c:601
+#: src/cmp.c:615
 #, c-format
 msgid "cmp: EOF on %s after byte %s\n"
 msgstr "cmp: крај датотеке на %s након бајта %s\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:51
+#: src/diff.c:50
 msgid "Paul Eggert"
 msgstr "Пол Егерт"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:52
+#: src/diff.c:51
 msgid "Mike Haertel"
 msgstr "Мајк Хартел"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:53
+#: src/diff.c:52
 msgid "David Hayes"
 msgstr "Дејвид Хејес"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:54
+#: src/diff.c:53
 msgid "Richard Stallman"
 msgstr "Ричард Столман"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:55
+#: src/diff.c:54
 msgid "Len Tower"
 msgstr "Лен Тауер"
 
-#: src/diff.c:355
+#: src/diff.c:365
 #, c-format
 msgid "invalid context length '%s'"
 msgstr "неисправна дужина склопа „%s“"
 
-#: src/diff.c:438
+#: src/diff.c:487
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "прелом страна није подржан на овом рачунару"
 
-#: src/diff.c:453 src/diff3.c:341
+#: src/diff.c:502 src/diff3.c:348
 #, c-format
 msgid "too many file label options"
 msgstr "исувише опција за ознаку датотеке"
 
-#: src/diff.c:530
+#: src/diff.c:579
 #, c-format
 msgid "invalid width '%s'"
 msgstr "неисправна дужина „%s“"
 
-#: src/diff.c:534
+#: src/diff.c:583
 msgid "conflicting width options"
 msgstr "сукобљене опције ширине"
 
-#: src/diff.c:559
+#: src/diff.c:608
 #, c-format
 msgid "invalid horizon length '%s'"
 msgstr "неисправна дужина видокруга „%s“"
 
-#: src/diff.c:615
+#: src/diff.c:664
 #, c-format
 msgid "invalid tabsize '%s'"
 msgstr "неисправна величина табулатора „%s“"
 
-#: src/diff.c:619
+#: src/diff.c:668
 msgid "conflicting tabsize options"
 msgstr "сукобљене опције величине табулатора"
 
-#: src/diff.c:774
+#: src/diff.c:834
 msgid "--from-file and --to-file both specified"
 msgstr "„--from-file“ и „--to-file“ су наведени оба"
 
-#: src/diff.c:893
+#: src/diff.c:953
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "    --normal                  исписује обичне разлике (основно)"
 
-#: src/diff.c:894
+#: src/diff.c:954
 msgid "-q, --brief                   report only when files differ"
 msgstr "-q  --brief                   исписује само када се датотеке разликују"
 
-#: src/diff.c:895
+#: src/diff.c:955
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr "-s  --report-identical-files  извештава када су две датотеке исте"
 
-#: src/diff.c:896
+#: src/diff.c:956
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
 "-c, -C БРОЈ, --context[=БРОЈ] исписује БРОЈ (почетно 3) редова умноженог "
 "склопа"
 
-#: src/diff.c:897
+#: src/diff.c:957
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
 "-w БРОЈ  --width=БРОЈ         исписује БРОЈ (почетно 3) редова обједињеног "
 "склопа"
 
-#: src/diff.c:898
+#: src/diff.c:958
 msgid "-e, --ed                      output an ed script"
 msgstr "-e  --ed                      исписује ед спис"
 
-#: src/diff.c:899
+#: src/diff.c:959
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n  --rcs                     исписује РЦС запис разлика"
 
-#: src/diff.c:900
+#: src/diff.c:960
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side            исписује у две колоне"
 
-#: src/diff.c:901
+#: src/diff.c:961
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
 "-w БРЈ  --width=БРЈ           исписује на највише БРЈ (почетно 130) колона"
 
-#: src/diff.c:902
+#: src/diff.c:962
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr ""
 "-l  --left-column             исписује само леву колону заједничких редова"
 
-#: src/diff.c:903
+#: src/diff.c:963
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "-s  --suppress-common-lines   не приказује заједничке редове"
 
-#: src/diff.c:905
+#: src/diff.c:965
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr ""
 "-p, --show-c-function         приказује у којој Ц функцији је свака промена"
 
-#: src/diff.c:906
+#: src/diff.c:966
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr ""
 "-F, --show-function-line=РИ   приказује најскорији ред који одговара РИ"
 
-#: src/diff.c:907
+#: src/diff.c:967
 msgid ""
 "    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
@@ -784,82 +785,82 @@ msgstr ""
 "временске ознаке\n"
 "                                (може да се понавља)"
 
-#: src/diff.c:910
+#: src/diff.c:970
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr "-t  --expand-tabs             развија табулаторе у размаке за излаз"
 
-#: src/diff.c:911
+#: src/diff.c:971
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr ""
 "-T  --initial-tab             поравнава табулаторе додајући један табулатор."
 
-#: src/diff.c:912
+#: src/diff.c:972
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
 "--tabsize=БРЈ                 величина табулатора је БРЈ (почетно 8) колона"
 
-#: src/diff.c:913
+#: src/diff.c:973
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
 "--suppress-blank-empty        потискује размак или табулатор пре празних "
 "редова излаза"
 
-#: src/diff.c:914
+#: src/diff.c:974
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr "-l  --paginate                пропушта излаз кроз „pr“ за прелом"
 
-#: src/diff.c:916
+#: src/diff.c:976
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr ""
 "-r  --recursive                 дубински упоређује све пронађене "
 "поддиректоријуме"
 
-#: src/diff.c:917
+#: src/diff.c:977
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr "    --no-dereference            не прати симболичке везе"
 
-#: src/diff.c:918
+#: src/diff.c:978
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr "-N  --new-file                  сматра празним недостајуће датотеке"
 
-#: src/diff.c:919
+#: src/diff.c:979
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
 "    --unidirectional-new-file   сматра празним прве недостајуће датотеке"
 
-#: src/diff.c:920
+#: src/diff.c:980
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ""
 "    --ignore-file-name-case     занемарује словну величину поређујући назива "
 "датотека"
 
-#: src/diff.c:921
+#: src/diff.c:981
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
 "    --no-ignore-file-name-case  урачунава словну величину поређујући називе "
 "датотека"
 
-#: src/diff.c:922
+#: src/diff.c:982
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr "-x, --exclude=ОБР               искључује датотеке које поклапају ОБР"
 
-#: src/diff.c:923
+#: src/diff.c:983
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
 "-X, --exclude-from=ТЕКА         искључује датотеке које поклапа било који "
 "образац у ТЕКА"
 
-#: src/diff.c:924
+#: src/diff.c:984
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
 "-S, --starting-file=ТЕКА        почиње од ТЕКА при поређењу директоријума"
 
-#: src/diff.c:925
+#: src/diff.c:985
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
@@ -867,7 +868,7 @@ msgstr ""
 "    --from-file=ТЕКА1           упоређује ТЕКУ1 са свим оперантима. ТЕКА1 "
 "може бити директоријум"
 
-#: src/diff.c:927
+#: src/diff.c:987
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
@@ -875,75 +876,75 @@ msgstr ""
 "    --to-file=ТЕКА2             упоређује све операнте са ТЕКОМ2. ТЕКА2 може "
 "бити директоријум"
 
-#: src/diff.c:930
+#: src/diff.c:990
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr ""
 "-i  --ignore-case               занемарује словну величину у склопу датотека"
 
-#: src/diff.c:931
+#: src/diff.c:991
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr ""
 "-E  --ignore-tab-expansion      занемарује промене услед развијања табулатора"
 
-#: src/diff.c:932
+#: src/diff.c:992
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr "-Z, --ignore-trailing-space     занемарује размак на крају реда"
 
-#: src/diff.c:933
+#: src/diff.c:993
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr ""
 "-b  --ignore-space-change       занемарује промене због количине празног "
 "простора"
 
-#: src/diff.c:934
+#: src/diff.c:994
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w  --ignore-all-space          занемарује све празне просторе"
 
-#: src/diff.c:935
+#: src/diff.c:995
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr ""
 "-B  --ignore-blank-lines        занемарује промене услед празних редова"
 
-#: src/diff.c:936
+#: src/diff.c:996
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=РИ  занемарује промене чији редови поклапају РИ"
 
-#: src/diff.c:938
+#: src/diff.c:998
 msgid "-a, --text                      treat all files as text"
 msgstr "-a  --text                      сматра све датотеке као текст"
 
-#: src/diff.c:939
+#: src/diff.c:999
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr "    --strip-trailing-cr         огољава пратеће <CR> на улазу"
 
-#: src/diff.c:941
+#: src/diff.c:1001
 msgid "    --binary                    read and write data in binary mode"
 msgstr "    --binary                    чита и пише податке у бинарном режиму"
 
-#: src/diff.c:944
+#: src/diff.c:1004
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
 "-D, --ifdef=НАЗИВ               исписује стопљену датотеку да прикаже "
 "„#ifdef НАЗИВ“ разлике"
 
-#: src/diff.c:945
+#: src/diff.c:1005
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr "    --GTYPE-group-format=ГОБЛ   обликује GTYPE улазне групе са ГОБЛ"
 
-#: src/diff.c:946
+#: src/diff.c:1006
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr "    --line-format=РОБЛ          обликује све улазне редове са РОБЛ"
 
-#: src/diff.c:947
+#: src/diff.c:1007
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr "    --LTYPE-line-format=РОБЛ    обликује LTYPE улазне редове са РОБЛ"
 
-#: src/diff.c:948
+#: src/diff.c:1008
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
@@ -951,12 +952,12 @@ msgstr ""
 "  Ове опције записа обезбеђује фино подешено управљање преко излаза\n"
 "    различника, генерализујући -D/--ifdef."
 
-#: src/diff.c:950
+#: src/diff.c:1010
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
 "  LTYPE је „old“, „new“, или „unchanged“. GTYPE је LTYPE или „changed“."
 
-#: src/diff.c:951
+#: src/diff.c:1011
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -984,7 +985,7 @@ msgstr ""
 "        M  L+1\n"
 "    %(A=B?T:E)  ако је А исто као Б онда Т супротно Е"
 
-#: src/diff.c:963
+#: src/diff.c:1023
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -996,7 +997,7 @@ msgstr ""
 "    %l  садржај реда, изузев пратећих знакова за нови ред\n"
 "    %[-][ШИРН][.[ТАЧН]]{doxX}n  printf-стил за улазни број реда"
 
-#: src/diff.c:967
+#: src/diff.c:1027
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1010,22 +1011,22 @@ msgstr ""
 "    %c'\\OOO'  знак са окталним кодом OOO\n"
 "    З         знак З (други знаци представљају сами себе)"
 
-#: src/diff.c:973
+#: src/diff.c:1033
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr "-d  --minimal            труди се да нађе мањи скуп промена"
 
-#: src/diff.c:974
+#: src/diff.c:1034
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr ""
 "    --horizon-lines=БРЈ  чува БРЈ редова заједничког префикса и суфикса"
 
-#: src/diff.c:975
+#: src/diff.c:1035
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
 "    --speed-large-files  за велике датотеке са много раштрканих малих измена"
 
-#: src/diff.c:976
+#: src/diff.c:1036
 msgid ""
 "    --color[=WHEN]       color output; WHEN is 'never', 'always', or "
 "'auto';\n"
@@ -1035,7 +1036,7 @@ msgstr ""
 "„always“ (увек), или „auto“ (подразумевано);\n"
 "                         обична „--color“ значи „--color='auto'“"
 
-#: src/diff.c:978
+#: src/diff.c:1038
 msgid ""
 "    --palette=PALETTE    the colors to use when --color is active; PALETTE "
 "is\n"
@@ -1046,112 +1047,112 @@ msgstr ""
 "                          списак могућности података термина раздвојен "
 "двотачком"
 
-#: src/diff.c:981
+#: src/diff.c:1041
 msgid "    --help               display this help and exit"
 msgstr "    --help               приказује ову помоћ и излази"
 
-#: src/diff.c:982
+#: src/diff.c:1042
 msgid "-v, --version            output version information and exit"
 msgstr "-v  --version            исписује податке о издању"
 
-#: src/diff.c:984
+#: src/diff.c:1044
 msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
 "ДАТОТЕКЕ су „ТЕКА1 ТЕКА2“ или „ДИР1 ДИР2“ или „ДИР ТЕКА“ или „ТЕКА ДИР“."
 
-#: src/diff.c:985
+#: src/diff.c:1045
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr ""
 "Нема ограничења за ДАТОТЕКЕ ако је задато „--from-file“ или „--to-file“."
 
-#: src/diff.c:986 src/diff3.c:533 src/sdiff.c:220
+#: src/diff.c:1046 src/diff3.c:531 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
 msgstr "Ако је ДАТОТЕКА „-“, чита стандардни улаз."
 
-#: src/diff.c:996
+#: src/diff.c:1056
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Употреба: %s [ОПЦИЈА]... ДАТОТЕКЕ\n"
 
-#: src/diff.c:997
+#: src/diff.c:1057
 msgid "Compare FILES line by line."
 msgstr "Поредите ДАТОТЕКЕ ред по ред."
 
-#: src/diff.c:1034
+#: src/diff.c:1094
 #, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "сукоб вредности „%s“ опције „%s“"
 
-#: src/diff.c:1047
+#: src/diff.c:1107
 #, c-format
 msgid "conflicting output style options"
 msgstr "сукобљене опције излазног стила"
 
-#: src/diff.c:1063
+#: src/diff.c:1123
 #, c-format
 msgid "invalid color '%s'"
 msgstr "неисправна боја „%s“"
 
-#: src/diff.c:1119 src/diff.c:1329
+#: src/diff.c:1197 src/diff.c:1401
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Само у %s: %s\n"
 
-#: src/diff.c:1253
+#: src/diff.c:1325
 msgid "cannot compare '-' to a directory"
 msgstr "не могу поредити „-“ са директоријумом"
 
-#: src/diff.c:1288
+#: src/diff.c:1360
 msgid "-D option not supported with directories"
 msgstr "опција „-D“ није подржана за директоријуме"
 
-#: src/diff.c:1297
+#: src/diff.c:1369
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Заједнички поддиректоријуми: %s и %s\n"
 
-#: src/diff.c:1339 src/diff.c:1389
+#: src/diff.c:1411 src/diff.c:1461
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr "Датотека „%s“ је „%s“ док је датотека „%s“ „%s“\n"
 
-#: src/diff.c:1375
+#: src/diff.c:1447
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "Симболичке везе „%s“ и „%s“ су различите\n"
 
-#: src/diff.c:1462
+#: src/diff.c:1534
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Датотеке „%s“ и „%s“ се истоветне\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff3.c:43
+#: src/diff3.c:51
 msgid "Randy Smith"
 msgstr "Ренди Смит"
 
-#: src/diff3.c:356
+#: src/diff3.c:363
 #, c-format
 msgid "incompatible options"
 msgstr "несагласне опције"
 
-#: src/diff3.c:396
+#: src/diff3.c:403
 msgid "'-' specified for more than one input file"
 msgstr "„-“ је наведено за више од једне улазне датотеке"
 
-#: src/diff3.c:447 src/diff3.c:1295 src/diff3.c:1698 src/diff3.c:1753
-#: src/sdiff.c:308 src/sdiff.c:846 src/sdiff.c:857
+#: src/diff3.c:445 src/diff3.c:1284 src/diff3.c:1683 src/diff3.c:1738
+#: src/sdiff.c:306 src/sdiff.c:843 src/sdiff.c:854
 msgid "read failed"
 msgstr "читање није успело"
 
-#: src/diff3.c:480
+#: src/diff3.c:478
 msgid "-A, --show-all              output all changes, bracketing conflicts"
 msgstr ""
 "-A  --show-all              исписује све промене, означавајући сукобе "
 "заградама"
 
-#: src/diff3.c:482
+#: src/diff3.c:480
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
@@ -1159,31 +1160,31 @@ msgstr ""
 "-e  --ed                    исписује неспојене промене између СТАРАТЕКА и "
 "ТВОЈАТЕКА у МОЈАТЕКА"
 
-#: src/diff3.c:484
+#: src/diff3.c:482
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
 msgstr "-E  --show-overlap          као -e, означавајући сукобе заградама"
 
-#: src/diff3.c:485
+#: src/diff3.c:483
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
 msgstr ""
 "-3  --easy-only             као -e, али обједињује непреклопљене промене"
 
-#: src/diff3.c:486
+#: src/diff3.c:484
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
 msgstr "-x, --overlap-only          као -e, али обједињује преклопљене промене"
 
-#: src/diff3.c:487
+#: src/diff3.c:485
 msgid "-X                          like -x, but bracket conflicts"
 msgstr "-X                          као -x, означавајући сукобе заградама"
 
-#: src/diff3.c:488
+#: src/diff3.c:486
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
 msgstr "-i                          придодаје „w“ и „q“ наредбе ед списима"
 
-#: src/diff3.c:490
+#: src/diff3.c:488
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
@@ -1191,24 +1192,24 @@ msgstr ""
 "-m, --merge                 исписује тренутну стопљену датотеку, у складу\n"
 "                                са -A ако нису дате друге опције"
 
-#: src/diff3.c:493
+#: src/diff3.c:491
 msgid "-a, --text                  treat all files as text"
 msgstr "-a  --text                  сматра све датотеке као текст"
 
-#: src/diff3.c:494
+#: src/diff3.c:492
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
 msgstr "    --strip-trailing-cr     огољава пратеће <CR> на улазу"
 
-#: src/diff3.c:495
+#: src/diff3.c:493
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
 msgstr ""
 "-T  --initial-tab           поравнава табулаторе додајући један табулатор"
 
-#: src/diff3.c:496
+#: src/diff3.c:494
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
 msgstr "    --diff-program=ПРОГРАМ  користи ПРОГРАМ за поређење датотека"
 
-#: src/diff3.c:497
+#: src/diff3.c:495
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
@@ -1216,24 +1217,24 @@ msgstr ""
 "-L, --label=ОЗНАКА          користи ОЗНАКУ уместо назива датотеке\n"
 "                                (може да се понови до три пута)"
 
-#: src/diff3.c:500
+#: src/diff3.c:498
 msgid "    --help                  display this help and exit"
 msgstr "    --help                  приказује ову помоћ и излази"
 
-#: src/diff3.c:501
+#: src/diff3.c:499
 msgid "-v, --version               output version information and exit"
 msgstr "-v, --version               исписује податке о издању и излази"
 
-#: src/diff3.c:510
+#: src/diff3.c:508
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
 msgstr "Употреба: %s [ОПЦИЈА]... МОЈАТЕКА СТАРАТЕКА ТВОЈАТЕКА\n"
 
-#: src/diff3.c:512
+#: src/diff3.c:510
 msgid "Compare three files line by line."
 msgstr "Поредите три датотеке ред по ред."
 
-#: src/diff3.c:522
+#: src/diff3.c:520
 msgid ""
 "\n"
 "The default output format is a somewhat human-readable representation of\n"
@@ -1256,54 +1257,54 @@ msgstr ""
 "и да испише тренутно стопљену датотеку.  За необичан улаз, ово је много\n"
 "рогпадније него употреба еда.\n"
 
-#: src/diff3.c:534
+#: src/diff3.c:532
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
 msgstr "Излазно стање је 0 за успех, 1 за сукобе, 2 за грешку."
 
-#: src/diff3.c:727
+#: src/diff3.c:725
 msgid "internal error: screwup in format of diff blocks"
 msgstr "унутрашња грешка: зез у запису блокова разлика"
 
-#: src/diff3.c:1022
+#: src/diff3.c:1015
 #, c-format
 msgid "%s: diff failed: "
 msgstr "%s: разлике нису успеле: "
 
-#: src/diff3.c:1044
+#: src/diff3.c:1037
 msgid "internal error: invalid diff type in process_diff"
 msgstr "унутрашња грешка: неисправна врста разлика у „process_diff“"
 
-#: src/diff3.c:1069
+#: src/diff3.c:1060
 msgid "invalid diff format; invalid change separator"
 msgstr "неисправан запис разлика; неисправан раздвојник измена"
 
-#: src/diff3.c:1305
+#: src/diff3.c:1294
 msgid "invalid diff format; incomplete last line"
 msgstr "неисправан облик разлика; непотпун задњи ред"
 
-#: src/diff3.c:1329 src/sdiff.c:276 src/util.c:969
+#: src/diff3.c:1318 src/sdiff.c:274 src/util.c:1069
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "помоћни програм „%s“ не може бити покренут"
 
-#: src/diff3.c:1354
+#: src/diff3.c:1343
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "неисправан запис разлика; нетачни водећи знакови реда"
 
-#: src/diff3.c:1427
+#: src/diff3.c:1416
 msgid "internal error: invalid diff type passed to output"
 msgstr "унутрашња грешка: неисправна врста разлика прослеђена излазу"
 
-#: src/diff3.c:1700 src/diff3.c:1757
+#: src/diff3.c:1685 src/diff3.c:1742
 msgid "input file shrank"
 msgstr "улазна датотека се скупила"
 
-#: src/dir.c:156
+#: src/dir.c:154
 #, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "не могу поредити називе датотека „%s“ и „%s“"
 
-#: src/dir.c:225
+#: src/dir.c:223
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: дубинска петља кроз директоријуме"
@@ -1313,120 +1314,120 @@ msgstr "%s: дубинска петља кроз директоријуме"
 msgid "Thomas Lord"
 msgstr "Томас Лорд"
 
-#: src/sdiff.c:174
+#: src/sdiff.c:173
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
 msgstr "-o, --output=ТЕКА            ради међудејствено, шаљући излаз у ТЕКА"
 
-#: src/sdiff.c:176
+#: src/sdiff.c:175
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
 msgstr "-i  --ignore-case            сматра истим велика и мала слова"
 
-#: src/sdiff.c:177
+#: src/sdiff.c:176
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
 msgstr ""
 "-E  --ignore-tab-expansion   занемарује промене услед развијања табулатора"
 
-#: src/sdiff.c:178
+#: src/sdiff.c:177
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
 msgstr "-Z, --ignore-trailing-space  занемарује размак на крају реда"
 
-#: src/sdiff.c:179
+#: src/sdiff.c:178
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
 msgstr ""
 "-b  --ignore-space-change    занемарује промене због количине празног "
 "простора"
 
-#: src/sdiff.c:180
+#: src/sdiff.c:179
 msgid "-W, --ignore-all-space       ignore all white space"
 msgstr "-W  --ignore-all-space       занемарује све размаке"
 
-#: src/sdiff.c:181
+#: src/sdiff.c:180
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
 msgstr "-B  --ignore-blank-lines     занемарује промене услед празних редова"
 
-#: src/sdiff.c:182
+#: src/sdiff.c:181
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=РИ  занемарује промене чији редови поклапају РИ"
 
-#: src/sdiff.c:183
+#: src/sdiff.c:182
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
 msgstr "    --strip-trailing-cr      огољава пратеће <CR> на улазу"
 
-#: src/sdiff.c:184
+#: src/sdiff.c:183
 msgid "-a, --text                   treat all files as text"
 msgstr "-a  --text                   сматра све датотеке као текст"
 
-#: src/sdiff.c:186
+#: src/sdiff.c:185
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
 msgstr ""
 "-w, --width=БРОЈ             исписује на највише БРОЈ (почетно 130) колона"
 
-#: src/sdiff.c:187
+#: src/sdiff.c:186
 msgid ""
 "-l, --left-column            output only the left column of common lines"
 msgstr ""
 "-l  --left-column            исписује само леву колону заједничких редова"
 
-#: src/sdiff.c:188
+#: src/sdiff.c:187
 msgid "-s, --suppress-common-lines  do not output common lines"
 msgstr "-s  --suppress-common-lines  не приказује заједничке редове"
 
-#: src/sdiff.c:190
+#: src/sdiff.c:189
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
 msgstr "-t  --expand-tabs            развија табулаторе у размаке за излаз"
 
-#: src/sdiff.c:191
+#: src/sdiff.c:190
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=БРОЈ           величина табулатора је БРОЈ (почетно 8) колона"
 
-#: src/sdiff.c:193
+#: src/sdiff.c:192
 msgid "-d, --minimal                try hard to find a smaller set of changes"
 msgstr "-d  --minimal                труди се да нађе мањи скуп промена"
 
-#: src/sdiff.c:194
+#: src/sdiff.c:193
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
 msgstr ""
 "-H  --speed-large-files      за велике датотеке са много раштрканих малих "
 "измена"
 
-#: src/sdiff.c:195
+#: src/sdiff.c:194
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
 msgstr "    --diff-program=ПРОГРАМ   користи ПРОГРАМ за поређење датотека"
 
-#: src/sdiff.c:197
+#: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
 msgstr "    --help                   приказује ову помоћ и излази"
 
-#: src/sdiff.c:198
+#: src/sdiff.c:197
 msgid "-v, --version                output version information and exit"
 msgstr "-v  --version                исписује податке о издању"
 
-#: src/sdiff.c:207
+#: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
 msgstr "Употреба: %s [ОПЦИЈА]... ДАТОТЕКА1 ДАТОТЕКА2\n"
 
-#: src/sdiff.c:209
+#: src/sdiff.c:208
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
 msgstr "Упоредно стапање разлика између ДАТОТЕКЕ1 и ДАТОТЕКЕ2."
 
-#: src/sdiff.c:330
+#: src/sdiff.c:328
 msgid "cannot interactively merge standard input"
 msgstr "не могу интерактивно уклопити стандардни улаз"
 
-#: src/sdiff.c:597
+#: src/sdiff.c:594
 msgid "both files to be compared are directories"
 msgstr "обе датотеке за поређење су директоријуми"
 
-#: src/sdiff.c:820
+#: src/sdiff.c:817
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
 "eb:\tEdit then use both versions.\n"
@@ -1450,12 +1451,12 @@ msgstr ""
 "v:          Умеће заједничке редове бучно.\n"
 "q:          Завршава.\n"
 
-#: src/util.c:662
+#: src/util.c:755
 #, c-format
 msgid "unrecognized prefix: %s"
 msgstr "непознат префикс: %s"
 
-#: src/util.c:692
+#: src/util.c:785
 #, c-format
 msgid "unparsable value for --palette"
 msgstr "необрадива вредност за „--palette“"
index 03460c7..bb0eb5c 100644 (file)
Binary files a/po/sv.gmo and b/po/sv.gmo differ
index 2392a48..833d686 100644 (file)
--- a/po/sv.po
+++ b/po/sv.po
@@ -1,16 +1,16 @@
 # Swedish messages for diffutils.
-# Copyright © 1996, 2001, 2002, 2004, 2006, 2010, 2011, 2012, 2017, 2018, 2021 Free Software Foundation, Inc.
+# Copyright © 1996, 2001, 2002, 2004, 2006, 2010, 2011, 2012, 2017, 2018, 2021, 2023 Free Software Foundation, Inc.
 # This file is distributed under the same license as the diffutils package.
-# Göran Uddeborg <goeran@uddeborg.se>, 1996, 2001, 2002, 2004, 2006, 2010, 2011, 2012, 2017, 2018, 2021.
+# Göran Uddeborg <goeran@uddeborg.se>, 1996, 2001, 2002, 2004, 2006, 2010, 2011, 2012, 2017, 2018, 2021, 2023.
 #
-# $Revision: 1.52 $
+# $Revision: 1.54 $
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: diffutils 3.7.41\n"
+"Project-Id-Version: diffutils 3.8.43\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2021-08-01 18:56-0700\n"
-"PO-Revision-Date: 2021-07-20 11:16+0200\n"
+"POT-Creation-Date: 2023-05-21 01:51-0700\n"
+"PO-Revision-Date: 2023-01-15 13:06+0100\n"
 "Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
 "Language: sv\n"
@@ -19,29 +19,29 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 
-#: lib/argmatch.c:132
+#: lib/argmatch.c:145
 #, c-format
 msgid "invalid argument %s for %s"
 msgstr "ogiltigt argument %s till %s"
 
-#: lib/argmatch.c:133
+#: lib/argmatch.c:146
 #, c-format
 msgid "ambiguous argument %s for %s"
 msgstr "tvetydigt argument %s till %s"
 
-#: lib/argmatch.c:152 lib/argmatch.h:223
+#: lib/argmatch.c:165 lib/argmatch.h:242
 msgid "Valid arguments are:"
 msgstr "Giltiga argument är:"
 
-#: lib/c-stack.c:187
+#: lib/c-stack.c:186
 msgid "program error"
 msgstr "programfel"
 
-#: lib/c-stack.c:188
+#: lib/c-stack.c:187
 msgid "stack overflow"
 msgstr "stackspill"
 
-#: lib/error.c:195
+#: lib/error.c:193
 msgid "Unknown system error"
 msgstr "Okänt systemfel"
 
@@ -197,83 +197,83 @@ msgstr "%s: flaggan behöver ett argument – ”%c”\n"
 #. If you don't know what to put here, please see
 #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:355
+#: lib/quotearg.c:354
 msgid "`"
 msgstr "”"
 
-#: lib/quotearg.c:356
+#: lib/quotearg.c:355
 msgid "'"
 msgstr "”"
 
-#: lib/regcomp.c:135
+#: lib/regcomp.c:122
 msgid "Success"
 msgstr "Lyckades"
 
-#: lib/regcomp.c:138
+#: lib/regcomp.c:125
 msgid "No match"
 msgstr "Ingen träff"
 
-#: lib/regcomp.c:141
+#: lib/regcomp.c:128
 msgid "Invalid regular expression"
 msgstr "Ogiltigt reguljäruttryck"
 
-#: lib/regcomp.c:144
+#: lib/regcomp.c:131
 msgid "Invalid collation character"
 msgstr "Ogiltigt sorteringstecken"
 
-#: lib/regcomp.c:147
+#: lib/regcomp.c:134
 msgid "Invalid character class name"
 msgstr "Ogiltigt namn på teckenklass"
 
-#: lib/regcomp.c:150
+#: lib/regcomp.c:137
 msgid "Trailing backslash"
 msgstr "Avslutande omvänt snedstreck"
 
-#: lib/regcomp.c:153
+#: lib/regcomp.c:140
 msgid "Invalid back reference"
 msgstr "Ogiltig bakåtreferens"
 
-#: lib/regcomp.c:156
+#: lib/regcomp.c:143
 msgid "Unmatched [, [^, [:, [., or [="
 msgstr "Oparad [, [^, [:, [. eller [="
 
-#: lib/regcomp.c:159
+#: lib/regcomp.c:146
 msgid "Unmatched ( or \\("
 msgstr "Oparad ( eller \\("
 
-#: lib/regcomp.c:162
+#: lib/regcomp.c:149
 msgid "Unmatched \\{"
 msgstr "Oparad \\{"
 
-#: lib/regcomp.c:165
+#: lib/regcomp.c:152
 msgid "Invalid content of \\{\\}"
 msgstr "Ogiltigt innehåll i \\{\\}"
 
-#: lib/regcomp.c:168
+#: lib/regcomp.c:155
 msgid "Invalid range end"
 msgstr "Ogiltigt intervallslut"
 
-#: lib/regcomp.c:171
+#: lib/regcomp.c:158
 msgid "Memory exhausted"
 msgstr "Minnet slut"
 
-#: lib/regcomp.c:174
+#: lib/regcomp.c:161
 msgid "Invalid preceding regular expression"
 msgstr "Föregående reguljäruttryck ogiltigt"
 
-#: lib/regcomp.c:177
+#: lib/regcomp.c:164
 msgid "Premature end of regular expression"
 msgstr "Förtida slut på reguljäruttryck"
 
-#: lib/regcomp.c:180
+#: lib/regcomp.c:167
 msgid "Regular expression too big"
 msgstr "För stort reguljäruttryck"
 
-#: lib/regcomp.c:183
+#: lib/regcomp.c:170
 msgid "Unmatched ) or \\)"
 msgstr "Oparad ) eller \\)"
 
-#: lib/regcomp.c:676
+#: lib/regcomp.c:650
 msgid "No previous regular expression"
 msgstr "Inget föregående reguljäruttryck"
 
@@ -470,17 +470,17 @@ msgstr "%s hemsida: <%s>\n"
 msgid "General help using GNU software: <%s>\n"
 msgstr "Allmän hjälp med att använda GNU-program: <%s>\n"
 
-#: src/analyze.c:454 src/diff.c:1406
+#: src/analyze.c:455 src/diff.c:1478
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Filerna %s och %s skiljer\n"
 
-#: src/analyze.c:455
+#: src/analyze.c:456
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "De binära filerna %s och %s skiljer\n"
 
-#: src/analyze.c:706 src/diff3.c:1470 src/util.c:1254
+#: src/analyze.c:707 src/diff3.c:1457 src/util.c:1354
 msgid "No newline at end of file"
 msgstr "Ingen nyrad vid filslut"
 
@@ -494,40 +494,41 @@ msgstr "Torbjörn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:120 src/diff.c:879 src/diff3.c:467 src/sdiff.c:160
+#: src/cmp.c:124 src/diff.c:939 src/diff3.c:465 src/sdiff.c:159
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Försök med ”%s --help” för mer information."
 
-#: src/cmp.c:138
+#: src/cmp.c:142
 #, c-format
 msgid "invalid --ignore-initial value '%s'"
 msgstr "ogiltigt --ignore-initial-värde ”%s”"
 
-#: src/cmp.c:148
+#: src/cmp.c:152
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr "flaggorna -l och -s är motstridiga"
 
-#: src/cmp.c:156 src/diff.c:887 src/diff3.c:474 src/sdiff.c:168 src/sdiff.c:316
-#: src/sdiff.c:323 src/sdiff.c:876 src/util.c:852 src/util.c:952 src/util.c:959
+#: src/cmp.c:160 src/diff.c:947 src/diff3.c:472 src/sdiff.c:167 src/sdiff.c:314
+#: src/sdiff.c:321 src/sdiff.c:873 src/util.c:952 src/util.c:1052
+#: src/util.c:1059
 msgid "write failed"
 msgstr "skrivning misslyckades"
 
-#: src/cmp.c:158 src/diff.c:889 src/diff.c:1471 src/diff3.c:476 src/sdiff.c:170
+#: src/cmp.c:162 src/diff.c:949 src/diff.c:1543 src/diff3.c:474 src/sdiff.c:169
 msgid "standard output"
 msgstr "standard ut"
 
-#: src/cmp.c:162
+#: src/cmp.c:166
 msgid "-b, --print-bytes          print differing bytes"
 msgstr "-b  --print-bytes          skriv ut byte som skiljer"
 
-#: src/cmp.c:163
+#: src/cmp.c:167
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
 msgstr ""
 "-i,  --ignore-initial=HOPP        hoppa över de första HOPP byte indata"
 
-#: src/cmp.c:164
+#: src/cmp.c:168
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
@@ -536,39 +537,39 @@ msgstr ""
 "och\n"
 "                                      de HOPP2 första byten i FIL2"
 
-#: src/cmp.c:166
+#: src/cmp.c:170
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
 msgstr ""
 "-l, --verbose              skriv ut bytenummer och värde för alla skiljande "
 "byte"
 
-#: src/cmp.c:167
+#: src/cmp.c:171
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
 msgstr "-n, --bytes=GRÄNS          jämför högst GRÄNS byte"
 
-#: src/cmp.c:168
+#: src/cmp.c:172
 msgid "-s, --quiet, --silent      suppress all normal output"
 msgstr "-s, --quiet, --silent      undertryck all normal utskrift"
 
-#: src/cmp.c:169
+#: src/cmp.c:173
 msgid "    --help                 display this help and exit"
 msgstr "    --help                 visa denna hjälp och avsluta"
 
-#: src/cmp.c:170
+#: src/cmp.c:174
 msgid "-v, --version              output version information and exit"
 msgstr "-v  --version              visa versionsinformation och avsluta"
 
-#: src/cmp.c:179
+#: src/cmp.c:183
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
 msgstr "Användning: %s [FLAGGA]... FIL1 [FIL2 [HOPP1 [HOPP2]]]\n"
 
-#: src/cmp.c:181
+#: src/cmp.c:185
 msgid "Compare two files byte by byte."
 msgstr "Jämför två filer byte för byte."
 
-#: src/cmp.c:183
+#: src/cmp.c:187
 msgid ""
 "The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
 "at the beginning of each file (zero by default)."
@@ -576,14 +577,14 @@ msgstr ""
 "De valfria HOPP1 och HOPP2 anger antalet byte att hoppa över\n"
 "i början varje fil (noll som standard)."
 
-#: src/cmp.c:186 src/diff.c:999 src/diff3.c:514 src/sdiff.c:211
+#: src/cmp.c:190 src/diff.c:1059 src/diff3.c:512 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
 "Obligatoriska argument till långa flaggor är obligatoriska även för de "
 "korta.\n"
 
-#: src/cmp.c:192
+#: src/cmp.c:196
 msgid ""
 "SKIP values may be followed by the following multiplicative suffixes:\n"
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
@@ -593,190 +594,190 @@ msgstr ""
 "kB 1000, K 1024, MB 1 000 000, M 1 048 576\n"
 "GB 1 000 000 000, G 1 073 741 824, och så vidare för T, P, E, Z, Y."
 
-#: src/cmp.c:195
+#: src/cmp.c:199
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "Om FIL är ”-” eller utelämnats, läs standard in."
 
-#: src/cmp.c:196 src/diff.c:987 src/sdiff.c:221
+#: src/cmp.c:200 src/diff.c:1047 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr "Slutsstatus är 0 om indata är lika, 1 om olika, 2 vid problem."
 
-#: src/cmp.c:243
+#: src/cmp.c:247
 #, c-format
 msgid "invalid --bytes value '%s'"
 msgstr "ogiltigt --bytes-värde ”%s”"
 
-#: src/cmp.c:269 src/diff.c:797 src/diff3.c:361 src/sdiff.c:567
+#: src/cmp.c:273 src/diff.c:857 src/diff3.c:368 src/sdiff.c:564
 #, c-format
 msgid "missing operand after '%s'"
 msgstr "saknad operand efter ”%s”"
 
-#: src/cmp.c:281 src/diff.c:799 src/diff3.c:363 src/sdiff.c:569
+#: src/cmp.c:285 src/diff.c:859 src/diff3.c:370 src/sdiff.c:566
 #, c-format
 msgid "extra operand '%s'"
 msgstr "extra operand ”%s”"
 
-#: src/cmp.c:507
+#: src/cmp.c:521
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s skiljer: byte %s, rad %s\n"
 
-#: src/cmp.c:523
+#: src/cmp.c:537
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
 msgstr "%s %s skiljer: byte %s, rad %s är %3o %s %3o %s\n"
 
-#: src/cmp.c:580
+#: src/cmp.c:594
 #, c-format
 msgid "cmp: EOF on %s which is empty\n"
 msgstr "cmp: EOF i %s som är tom\n"
 
-#: src/cmp.c:594
+#: src/cmp.c:608
 #, c-format
 msgid "cmp: EOF on %s after byte %s, line %s\n"
 msgstr "cmp: EOF i %s efter byte %s, rad %s\n"
 
-#: src/cmp.c:595
+#: src/cmp.c:609
 #, c-format
 msgid "cmp: EOF on %s after byte %s, in line %s\n"
 msgstr "cmp: EOF i %s efter byte %s, på rad %s\n"
 
-#: src/cmp.c:601
+#: src/cmp.c:615
 #, c-format
 msgid "cmp: EOF on %s after byte %s\n"
 msgstr "cmp: EOF i %s efter byte %s\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:51
+#: src/diff.c:50
 msgid "Paul Eggert"
 msgstr "Paul Eggert"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:52
+#: src/diff.c:51
 msgid "Mike Haertel"
 msgstr "Mike Haertel"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:53
+#: src/diff.c:52
 msgid "David Hayes"
 msgstr "David Hayes"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:54
+#: src/diff.c:53
 msgid "Richard Stallman"
 msgstr "Richard Stallman"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:55
+#: src/diff.c:54
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:355
+#: src/diff.c:365
 #, c-format
 msgid "invalid context length '%s'"
 msgstr "ogiltig omgivningslängd ”%s”"
 
-#: src/diff.c:438
+#: src/diff.c:487
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "sidvisning stödjs ej på denna värd"
 
-#: src/diff.c:453 src/diff3.c:341
+#: src/diff.c:502 src/diff3.c:348
 #, c-format
 msgid "too many file label options"
 msgstr "för många etikettflaggor"
 
-#: src/diff.c:530
+#: src/diff.c:579
 #, c-format
 msgid "invalid width '%s'"
 msgstr "ogiltig bredd ”%s”"
 
-#: src/diff.c:534
+#: src/diff.c:583
 msgid "conflicting width options"
 msgstr "konflikt mellan breddflaggor"
 
-#: src/diff.c:559
+#: src/diff.c:608
 #, c-format
 msgid "invalid horizon length '%s'"
 msgstr "ogiltig horisontlängd ”%s”"
 
-#: src/diff.c:615
+#: src/diff.c:664
 #, c-format
 msgid "invalid tabsize '%s'"
 msgstr "ogiltigt tabulatorsteg ”%s”"
 
-#: src/diff.c:619
+#: src/diff.c:668
 msgid "conflicting tabsize options"
 msgstr "konflikt mellan tabulatorflaggor"
 
-#: src/diff.c:774
+#: src/diff.c:834
 msgid "--from-file and --to-file both specified"
 msgstr "både --from-file och --to-file angavs"
 
-#: src/diff.c:893
+#: src/diff.c:953
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "    --normal                  skriv ut en normal diff (standard)"
 
-#: src/diff.c:894
+#: src/diff.c:954
 msgid "-q, --brief                   report only when files differ"
 msgstr "-q, --brief                   rapportera endast när filer skiljer sig"
 
-#: src/diff.c:895
+#: src/diff.c:955
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr "-s  --report-identical-files  rapportera om två filer är lika"
 
-#: src/diff.c:896
+#: src/diff.c:956
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
 "-c, -C ANT, --context[=ANT]   skriv ANT (3 som standard) rader kopia av "
 "sammanhang"
 
-#: src/diff.c:897
+#: src/diff.c:957
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
 "-u, -U ANT, --unified[=ANT]   skriv ut ANT (3 som standard) rader med\n"
 "                                 sammanslagen omgivning"
 
-#: src/diff.c:898
+#: src/diff.c:958
 msgid "-e, --ed                      output an ed script"
 msgstr "-e, --ed                      skriv ut ett ed-skript"
 
-#: src/diff.c:899
+#: src/diff.c:959
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n, --rcs                     skriv ut skillnader i RCS-format"
 
-#: src/diff.c:900
+#: src/diff.c:960
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side            skriv ut i två kolumner"
 
-#: src/diff.c:901
+#: src/diff.c:961
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
 "-W, --width=ANT               skriv ut högst ANT (130 som standard) kolumner"
 
-#: src/diff.c:902
+#: src/diff.c:962
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr ""
 "    --left-column             skriv ut endast vänstra kolumnen av gemensamma "
 "rader"
 
-#: src/diff.c:903
+#: src/diff.c:963
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "    --suppress-common-lines   skriv inte ut gemensamma rader"
 
-#: src/diff.c:905
+#: src/diff.c:965
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr "-p, --show-c-function         visa vilken C-funktion varje rad finns i"
 
-#: src/diff.c:906
+#: src/diff.c:966
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr "-F, --show-function-line=RU   visa den senaste raden som matchar RU"
 
-#: src/diff.c:907
+#: src/diff.c:967
 msgid ""
 "    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
@@ -784,23 +785,23 @@ msgstr ""
 "    --label ETIKETT           använd ETIKETT istället för filnamn och\n"
 "                                tidsstämpel (kan upprepas)"
 
-#: src/diff.c:910
+#: src/diff.c:970
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr ""
 "-t, --expand-tabs             expandera tabulatorer till blanksteg i utdata"
 
-#: src/diff.c:911
+#: src/diff.c:971
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr ""
 "-T, --initial-tab             justera tabulatorer genom att skjuta in en"
 
-#: src/diff.c:912
+#: src/diff.c:972
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=N               tabulatorstopp var N:e (8 som standard) kolumn"
 
-#: src/diff.c:913
+#: src/diff.c:973
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
@@ -808,54 +809,54 @@ msgstr ""
 "tomma\n"
 "                                utrader"
 
-#: src/diff.c:914
+#: src/diff.c:974
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr "-l, --paginate                skicka utdata till ”pr” för paginering"
 
-#: src/diff.c:916
+#: src/diff.c:976
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr ""
 "-r, --recursive                 jämför underkataloger som hittas rekursivt"
 
-#: src/diff.c:917
+#: src/diff.c:977
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr "    --no-dereference            följ inte symboliska länkar"
 
-#: src/diff.c:918
+#: src/diff.c:978
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr "-N, --new-file                  behandla saknade filer som tomma"
 
-#: src/diff.c:919
+#: src/diff.c:979
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr "    --unidirectional-new-file   behandla saknade förstafiler som tomma"
 
-#: src/diff.c:920
+#: src/diff.c:980
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ""
 "    --ignore-file-name-case     bortse från skiftläge när filnamn jämförs"
 
-#: src/diff.c:921
+#: src/diff.c:981
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
 "    --no-ignore-file-name-case  ta hänsyn till skiftläge när filnamn jämförs"
 
-#: src/diff.c:922
+#: src/diff.c:982
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr "-x, --exclude=MNS               ta inte med filer som matchar MNS"
 
-#: src/diff.c:923
+#: src/diff.c:983
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
 "-X, --exclude-from=FIL         uteslut filer som matchar något mönster i FIL"
 
-#: src/diff.c:924
+#: src/diff.c:984
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr "-S, --starting-file=FIL        börja med FIL när kataloger jämförs"
 
-#: src/diff.c:925
+#: src/diff.c:985
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
@@ -863,7 +864,7 @@ msgstr ""
 "    --from-file=FIL1            jämför FIL1 med alla operander;\n"
 "                                  FIL1 kan vara en katalog"
 
-#: src/diff.c:927
+#: src/diff.c:987
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
@@ -871,79 +872,79 @@ msgstr ""
 "    --to-file=FIL2              jämför alla operander med FIL2;\n"
 "                                  FIL2 kan vara en katalog"
 
-#: src/diff.c:930
+#: src/diff.c:990
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr ""
 "-i, --ignore-case               bortse från skillnader i skiftläge i "
 "filinnehåll"
 
-#: src/diff.c:931
+#: src/diff.c:991
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr ""
 "-E, --ignore-tab-expansion      bortse från ändringar på grund av tab-"
 "expansion"
 
-#: src/diff.c:932
+#: src/diff.c:992
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr ""
 "-Z, --ignore-trailing-space     ignorera alla blanktecken i slutet av raden"
 
-#: src/diff.c:933
+#: src/diff.c:993
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr "-b, --ignore-space-change       bortse från ändringar i antalet blanka"
 
-#: src/diff.c:934
+#: src/diff.c:994
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w, --ignore-all-space          bortse från alla blanktecken"
 
-#: src/diff.c:935
+#: src/diff.c:995
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr ""
 "-B, --ignore-blank-lines        bortse från ändringar där raderna är helt "
 "blanka"
 
-#: src/diff.c:936
+#: src/diff.c:996
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=RU  bortse från ändringar där alla rader matchar "
 "RU"
 
-#: src/diff.c:938
+#: src/diff.c:998
 msgid "-a, --text                      treat all files as text"
 msgstr "-a, --text                      behandla alla filer som text"
 
-#: src/diff.c:939
+#: src/diff.c:999
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr         tag bort avslutande vagnreturer i indata"
 
-#: src/diff.c:941
+#: src/diff.c:1001
 msgid "    --binary                    read and write data in binary mode"
 msgstr "    --binary                    läs och skriv data binärt"
 
-#: src/diff.c:944
+#: src/diff.c:1004
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
 "-D, --ifdef=NAMN                skriv sammanslagen fil med skillnader inom\n"
 "                                  ”#ifdef NAMN”"
 
-#: src/diff.c:945
+#: src/diff.c:1005
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr "    --GTYP-group-format=GFMT    formatera GTYP-ingrupper med GFMT"
 
-#: src/diff.c:946
+#: src/diff.c:1006
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr "    --line-format=RFMT          formatera alla inrader med RFMT"
 
-#: src/diff.c:947
+#: src/diff.c:1007
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr "    --RTYP-line-format=RFMT     formatera RTYP-inrader med RFMT"
 
-#: src/diff.c:948
+#: src/diff.c:1008
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
@@ -951,12 +952,12 @@ msgstr ""
 "  Dessa formatflaggor gör det möjligt att finjustera utskriften från\n"
 "    diff, generaliserande -D/--ifdef."
 
-#: src/diff.c:950
+#: src/diff.c:1010
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
 "  RTYP är ”old”, ”new” eller ”unchanged”.  GTYP är RTYP eller ”changed”."
 
-#: src/diff.c:951
+#: src/diff.c:1011
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -984,7 +985,7 @@ msgstr ""
 "        M  L+1\n"
 "    %(A=B?T:E)  om A är lika med B då T annars E"
 
-#: src/diff.c:963
+#: src/diff.c:1023
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -996,7 +997,7 @@ msgstr ""
 "    %l  radinnehåll exklusive avslutande nyrad\n"
 "    %[-][BREDD][.[PREC]]{doxX}n  printf-stil spec. för inradnummer"
 
-#: src/diff.c:967
+#: src/diff.c:1027
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1010,23 +1011,23 @@ msgstr ""
 "    %c'\\OOO'  tecknet med oktalkod OOO\n"
 "    T    tecknet T (övriga tecken representerar sig själva)"
 
-#: src/diff.c:973
+#: src/diff.c:1033
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr ""
 "-d, --minimal            arbeta hårt för att hitta en mindre mängd av "
 "ändringar"
 
-#: src/diff.c:974
+#: src/diff.c:1034
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr ""
 "    --horizon-lines=ANT  spara ANT rader av gemensamt prefix och suffix"
 
-#: src/diff.c:975
+#: src/diff.c:1035
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr "    --speed-large-files  antag stora filer och små spridda ändringar"
 
-#: src/diff.c:976
+#: src/diff.c:1036
 msgid ""
 "    --color[=WHEN]       color output; WHEN is 'never', 'always', or "
 "'auto';\n"
@@ -1036,7 +1037,7 @@ msgstr ""
 "eller\n"
 "                           ”auto”; bara --color betyder --color='auto'"
 
-#: src/diff.c:978
+#: src/diff.c:1038
 msgid ""
 "    --palette=PALETTE    the colors to use when --color is active; PALETTE "
 "is\n"
@@ -1046,113 +1047,113 @@ msgstr ""
 "är\n"
 "                           en kolonseparerad lista av terminfoförmågor"
 
-#: src/diff.c:981
+#: src/diff.c:1041
 msgid "    --help               display this help and exit"
 msgstr "    --help               visa denna hjälp och avsluta"
 
-#: src/diff.c:982
+#: src/diff.c:1042
 msgid "-v, --version            output version information and exit"
 msgstr "-v, --version            visa versionsinformation och avsluta"
 
-#: src/diff.c:984
+#: src/diff.c:1044
 msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
 "FILER är ”FIL1 FIL2” eller ”KAT1 KAT2” eller ”KAT FIL” eller ”FIL KAT”."
 
-#: src/diff.c:985
+#: src/diff.c:1045
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr ""
 "Om --from-file eller --to-file är angivet finns det inga begränsningar\n"
 "på FILER."
 
-#: src/diff.c:986 src/diff3.c:533 src/sdiff.c:220
+#: src/diff.c:1046 src/diff3.c:531 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
 msgstr "Om en FIL är ”-”, läs standard in."
 
-#: src/diff.c:996
+#: src/diff.c:1056
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Användning: %s [FLAGGA]... FILER\n"
 
-#: src/diff.c:997
+#: src/diff.c:1057
 msgid "Compare FILES line by line."
 msgstr "Jämför FILER rad för rad."
 
-#: src/diff.c:1034
+#: src/diff.c:1094
 #, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "motstridigt %s-flaggsvärde ”%s”"
 
-#: src/diff.c:1047
+#: src/diff.c:1107
 #, c-format
 msgid "conflicting output style options"
 msgstr "motstridig utmatningsstilsflagga"
 
-#: src/diff.c:1063
+#: src/diff.c:1123
 #, c-format
 msgid "invalid color '%s'"
 msgstr "ogiltig färg ”%s”"
 
-#: src/diff.c:1119 src/diff.c:1329
+#: src/diff.c:1197 src/diff.c:1401
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Endast i %s: %s\n"
 
-#: src/diff.c:1253
+#: src/diff.c:1325
 msgid "cannot compare '-' to a directory"
 msgstr "kan inte jämföra ”-” med en katalog"
 
-#: src/diff.c:1288
+#: src/diff.c:1360
 msgid "-D option not supported with directories"
 msgstr "flaggan -D stödjs ej för kataloger"
 
-#: src/diff.c:1297
+#: src/diff.c:1369
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Lika underkataloger: %s och %s\n"
 
-#: src/diff.c:1339 src/diff.c:1389
+#: src/diff.c:1411 src/diff.c:1461
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr "Filen %s är %s medan filen %s är %s\n"
 
-#: src/diff.c:1375
+#: src/diff.c:1447
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "De symboliska länkarna %s och %s skiljer\n"
 
-#: src/diff.c:1462
+#: src/diff.c:1534
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Filerna %s och %s är lika\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff3.c:43
+#: src/diff3.c:51
 msgid "Randy Smith"
 msgstr "Randy Smith"
 
-#: src/diff3.c:356
+#: src/diff3.c:363
 #, c-format
 msgid "incompatible options"
 msgstr "oförenliga flaggor"
 
-#: src/diff3.c:396
+#: src/diff3.c:403
 msgid "'-' specified for more than one input file"
 msgstr "”-” angivet för mer än en infil"
 
-#: src/diff3.c:447 src/diff3.c:1295 src/diff3.c:1698 src/diff3.c:1753
-#: src/sdiff.c:308 src/sdiff.c:846 src/sdiff.c:857
+#: src/diff3.c:445 src/diff3.c:1284 src/diff3.c:1683 src/diff3.c:1738
+#: src/sdiff.c:306 src/sdiff.c:843 src/sdiff.c:854
 msgid "read failed"
 msgstr "läsning misslyckades"
 
-#: src/diff3.c:480
+#: src/diff3.c:478
 msgid "-A, --show-all              output all changes, bracketing conflicts"
 msgstr ""
 "-A, --show-all              skriv alla ändringar med markering runt "
 "konflikter"
 
-#: src/diff3.c:482
+#: src/diff3.c:480
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
@@ -1160,12 +1161,12 @@ msgstr ""
 "-e, --ed                    skriv ut ett ed-skript som innehåller ändringar\n"
 "                                från GAMMALFIL till DINFIL i MINFIL"
 
-#: src/diff3.c:484
+#: src/diff3.c:482
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
 msgstr ""
 "-E, --show-overlap          som -e, men med markeringar runt konflikter"
 
-#: src/diff3.c:485
+#: src/diff3.c:483
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
@@ -1173,22 +1174,22 @@ msgstr ""
 "-3, --easy-only             som -e, men tag endast med ej överlappande "
 "ändringar"
 
-#: src/diff3.c:486
+#: src/diff3.c:484
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
 msgstr ""
 "-x, --overlap-only          som -e, men tag endast med överlappande ändringar"
 
-#: src/diff3.c:487
+#: src/diff3.c:485
 msgid "-X                          like -x, but bracket conflicts"
 msgstr "-X                          som -x, men skriv klamrar om konflikter"
 
-#: src/diff3.c:488
+#: src/diff3.c:486
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
 msgstr ""
 "-i                          lägg till ”w”- och ”q”-kommandon till ed-skript"
 
-#: src/diff3.c:490
+#: src/diff3.c:488
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
@@ -1196,25 +1197,25 @@ msgstr ""
 "-m, --merge                 skriv ut en faktiskt sammanslagen fil, enligt\n"
 "                                -A om inga andra flaggor ges"
 
-#: src/diff3.c:493
+#: src/diff3.c:491
 msgid "-a, --text                  treat all files as text"
 msgstr "-a, --text                  betrakta alla filer som text"
 
-#: src/diff3.c:494
+#: src/diff3.c:492
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
 msgstr "    --strip-trailing-cr     tag bort avslutande vagnreturer i indata"
 
-#: src/diff3.c:495
+#: src/diff3.c:493
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
 msgstr ""
 "-T, --initial-tab           justera tabulatorer genom att skjuta in en "
 "tabulator"
 
-#: src/diff3.c:496
+#: src/diff3.c:494
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
 msgstr "    --diff-program=PROGRAM  använd PROGRAM för att jämföra filer"
 
-#: src/diff3.c:497
+#: src/diff3.c:495
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
@@ -1222,24 +1223,24 @@ msgstr ""
 "-L, --label=ETIKETT         använd ETIKETT istället för filnamn\n"
 "                                (kan upprepas upp till tre gånger)"
 
-#: src/diff3.c:500
+#: src/diff3.c:498
 msgid "    --help                  display this help and exit"
 msgstr "    --help                  visa denna hjälp och avsluta"
 
-#: src/diff3.c:501
+#: src/diff3.c:499
 msgid "-v, --version               output version information and exit"
 msgstr "-v, --version               visa versionsinformation och avsluta"
 
-#: src/diff3.c:510
+#: src/diff3.c:508
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
 msgstr "Användning: %s [FLAGGA]... MINFIL GAMMALFIL DINFIL\n"
 
-#: src/diff3.c:512
+#: src/diff3.c:510
 msgid "Compare three files line by line."
 msgstr "Jämför tre filer rad för rad."
 
-#: src/diff3.c:522
+#: src/diff3.c:520
 msgid ""
 "\n"
 "The default output format is a somewhat human-readable representation of\n"
@@ -1265,54 +1266,54 @@ msgstr ""
 "och skriva ut den faktiskt sammanslagna filen.  För ovanlig indata är detta\n"
 "mer robust än att använda ed.\n"
 
-#: src/diff3.c:534
+#: src/diff3.c:532
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
 msgstr "Slutstatus är 0 om allt bra, 1 vid konflikt, 2 vid problem."
 
-#: src/diff3.c:727
+#: src/diff3.c:725
 msgid "internal error: screwup in format of diff blocks"
 msgstr "internt fel: trasigt format i diff-block"
 
-#: src/diff3.c:1022
+#: src/diff3.c:1015
 #, c-format
 msgid "%s: diff failed: "
 msgstr "%s: diff misslyckades: "
 
-#: src/diff3.c:1044
+#: src/diff3.c:1037
 msgid "internal error: invalid diff type in process_diff"
 msgstr "internt fel: ogiltig diff-typ i process_diff"
 
-#: src/diff3.c:1069
+#: src/diff3.c:1060
 msgid "invalid diff format; invalid change separator"
 msgstr "ogiltigt diff-format; ogiltig ändringsseparator"
 
-#: src/diff3.c:1305
+#: src/diff3.c:1294
 msgid "invalid diff format; incomplete last line"
 msgstr "ogiltigt diff-format; ofullständig sista rad"
 
-#: src/diff3.c:1329 src/sdiff.c:276 src/util.c:969
+#: src/diff3.c:1318 src/sdiff.c:274 src/util.c:1069
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "underprogram ”%s” kunde inte startas"
 
-#: src/diff3.c:1354
+#: src/diff3.c:1343
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "ogiltigt diff-format; felaktiga starttecken på rad"
 
-#: src/diff3.c:1427
+#: src/diff3.c:1416
 msgid "internal error: invalid diff type passed to output"
 msgstr "internt fel: ogiltig diff-typ utskickad"
 
-#: src/diff3.c:1700 src/diff3.c:1757
+#: src/diff3.c:1685 src/diff3.c:1742
 msgid "input file shrank"
 msgstr "infilen krympte"
 
-#: src/dir.c:156
+#: src/dir.c:154
 #, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "kan inte jämföra filnamnen ”%s” och ”%s”"
 
-#: src/dir.c:225
+#: src/dir.c:223
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: rekursiv katalogslinga"
@@ -1322,124 +1323,124 @@ msgstr "%s: rekursiv katalogslinga"
 msgid "Thomas Lord"
 msgstr "Thomas Lord"
 
-#: src/sdiff.c:174
+#: src/sdiff.c:173
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
 msgstr "-o, --output=FIL             kör interaktivt, med utdata till FIL"
 
-#: src/sdiff.c:176
+#: src/sdiff.c:175
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
 msgstr "-i, --ignore-case            betrakta versaler och gemena som lika"
 
-#: src/sdiff.c:177
+#: src/sdiff.c:176
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
 msgstr ""
 "-E, --ignore-tab-expansion   ignorera ändringar på grund av "
 "tabulatorexpansion"
 
-#: src/sdiff.c:178
+#: src/sdiff.c:177
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
 msgstr ""
 "-Z, --ignore-trailing-space  ignorera alla blanktecken i slutet av raden"
 
-#: src/sdiff.c:179
+#: src/sdiff.c:178
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
 msgstr "-b, --ignore-space-change    ignorera ändringar i antalet blanka"
 
-#: src/sdiff.c:180
+#: src/sdiff.c:179
 msgid "-W, --ignore-all-space       ignore all white space"
 msgstr "-W, --ignore-all-space       ignorera alla blanktecken"
 
-#: src/sdiff.c:181
+#: src/sdiff.c:180
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
 msgstr ""
 "-B, --ignore-blank-lines     ignorera ändringar i form av enbart blanka rader"
 
-#: src/sdiff.c:182
+#: src/sdiff.c:181
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=RU  bortse från ändringar vars alla rader "
 "matchar RU"
 
-#: src/sdiff.c:183
+#: src/sdiff.c:182
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
 msgstr "    --strip-trailing-cr      tag bort avslutande vagnreturer i indata"
 
-#: src/sdiff.c:184
+#: src/sdiff.c:183
 msgid "-a, --text                   treat all files as text"
 msgstr "-a, --text                   behandla alla filer som text"
 
-#: src/sdiff.c:186
+#: src/sdiff.c:185
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
 msgstr ""
 "-w, --width=ANT              skriv ut högst ANT (130 som standard) kolumner"
 
-#: src/sdiff.c:187
+#: src/sdiff.c:186
 msgid ""
 "-l, --left-column            output only the left column of common lines"
 msgstr ""
 "-l, --left-column            skriv endast ut gemensamma raders vänstra kolumn"
 
-#: src/sdiff.c:188
+#: src/sdiff.c:187
 msgid "-s, --suppress-common-lines  do not output common lines"
 msgstr "-s, --suppress-common-lines  skriv inte ut gemensamma rader"
 
-#: src/sdiff.c:190
+#: src/sdiff.c:189
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
 msgstr ""
 "-t, --expand-tabs            expandera tabulatorer till blanksteg i utdata"
 
-#: src/sdiff.c:191
+#: src/sdiff.c:190
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=N              tabulatorstopp var N:e (8 som standard) kolumn"
 
-#: src/sdiff.c:193
+#: src/sdiff.c:192
 msgid "-d, --minimal                try hard to find a smaller set of changes"
 msgstr ""
 "-d, --minimal                arbeta hårt för att hitta en mindre mängd "
 "ändringar"
 
-#: src/sdiff.c:194
+#: src/sdiff.c:193
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
 msgstr ""
 "-H, --speed-large-files      antag stora filer och små spridda ändringar"
 
-#: src/sdiff.c:195
+#: src/sdiff.c:194
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
 msgstr "    --diff-program=PROGRAM   använd PROGRAM för att jämföra filer"
 
-#: src/sdiff.c:197
+#: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
 msgstr "    --help                   visa denna hjälp och avsluta"
 
-#: src/sdiff.c:198
+#: src/sdiff.c:197
 msgid "-v, --version                output version information and exit"
 msgstr "-v, --version                visa versionsinformation och avsluta"
 
-#: src/sdiff.c:207
+#: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
 msgstr "Användning: %s [FLAGGA]... FIL1 FIL2\n"
 
-#: src/sdiff.c:209
+#: src/sdiff.c:208
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
 msgstr "Sammanslagning sida-vid-sida av skillnader mellan FIL1 och FIL2."
 
-#: src/sdiff.c:330
+#: src/sdiff.c:328
 msgid "cannot interactively merge standard input"
 msgstr "kan inte slå samman standard in interaktivt"
 
-#: src/sdiff.c:597
+#: src/sdiff.c:594
 msgid "both files to be compared are directories"
 msgstr "båda filerna som skall jämföras är kataloger"
 
-#: src/sdiff.c:820
+#: src/sdiff.c:817
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
 "eb:\tEdit then use both versions.\n"
@@ -1463,12 +1464,12 @@ msgstr ""
 "v:\tInkludera och tillkännage gemensamma rader.\n"
 "q:\tAvsluta.\n"
 
-#: src/util.c:662
+#: src/util.c:755
 #, c-format
 msgid "unrecognized prefix: %s"
 msgstr "okänt prefix: %s"
 
-#: src/util.c:692
+#: src/util.c:785
 #, c-format
 msgid "unparsable value for --palette"
 msgstr "otolkbart värde för --palette"
index 961d591..77ba3f1 100644 (file)
--- a/po/tr.po
+++ b/po/tr.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: diffutils 3.7.41\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2021-08-01 18:56-0700\n"
+"POT-Creation-Date: 2023-05-21 01:51-0700\n"
 "PO-Revision-Date: 2021-07-20 14:22+0300\n"
 "Last-Translator: Mehmet Kececi <mkececi@mehmetkececi.com>\n"
 "Language-Team: Turkish <gnome-turk@gnome.org>\n"
@@ -21,29 +21,29 @@ msgstr ""
 "X-Generator: Poedit 3.0\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 
-#: lib/argmatch.c:132
+#: lib/argmatch.c:145
 #, c-format
 msgid "invalid argument %s for %s"
 msgstr "%s için geçersiz bağımsız değişken %s"
 
-#: lib/argmatch.c:133
+#: lib/argmatch.c:146
 #, c-format
 msgid "ambiguous argument %s for %s"
 msgstr "%s için belirsiz bağımsız değişkeni %s"
 
-#: lib/argmatch.c:152 lib/argmatch.h:223
+#: lib/argmatch.c:165 lib/argmatch.h:242
 msgid "Valid arguments are:"
 msgstr "Geçerli argümanlar şunlardır:"
 
-#: lib/c-stack.c:187
+#: lib/c-stack.c:186
 msgid "program error"
 msgstr "yazılım hatası"
 
-#: lib/c-stack.c:188
+#: lib/c-stack.c:187
 msgid "stack overflow"
 msgstr "yığıt taşması"
 
-#: lib/error.c:195
+#: lib/error.c:193
 msgid "Unknown system error"
 msgstr "Bilinmeyen sistem hatası"
 
@@ -199,83 +199,83 @@ msgstr "%s: seçenek bir argümanla kullanılır -- %c\n"
 #. If you don't know what to put here, please see
 #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:355
+#: lib/quotearg.c:354
 msgid "`"
 msgstr "`"
 
-#: lib/quotearg.c:356
+#: lib/quotearg.c:355
 msgid "'"
 msgstr "'"
 
-#: lib/regcomp.c:135
+#: lib/regcomp.c:122
 msgid "Success"
 msgstr "Başarılı"
 
-#: lib/regcomp.c:138
+#: lib/regcomp.c:125
 msgid "No match"
 msgstr "Eşleme yok"
 
-#: lib/regcomp.c:141
+#: lib/regcomp.c:128
 msgid "Invalid regular expression"
 msgstr "Düzenli ifade geçersiz"
 
-#: lib/regcomp.c:144
+#: lib/regcomp.c:131
 msgid "Invalid collation character"
 msgstr "Harmanlama karakteri geçersiz"
 
-#: lib/regcomp.c:147
+#: lib/regcomp.c:134
 msgid "Invalid character class name"
 msgstr "Karakter sınıf ismi geçersiz"
 
-#: lib/regcomp.c:150
+#: lib/regcomp.c:137
 msgid "Trailing backslash"
 msgstr "İzleyen ters kesme"
 
-#: lib/regcomp.c:153
+#: lib/regcomp.c:140
 msgid "Invalid back reference"
 msgstr "Geriye başvuru geçersiz"
 
-#: lib/regcomp.c:156
+#: lib/regcomp.c:143
 msgid "Unmatched [, [^, [:, [., or [="
 msgstr "[, [^, [:, [., veya [= eşleşmiyor"
 
-#: lib/regcomp.c:159
+#: lib/regcomp.c:146
 msgid "Unmatched ( or \\("
 msgstr "( ya da \\( eşleşmiyor"
 
-#: lib/regcomp.c:162
+#: lib/regcomp.c:149
 msgid "Unmatched \\{"
 msgstr "\\{ eşleşmiyor"
 
-#: lib/regcomp.c:165
+#: lib/regcomp.c:152
 msgid "Invalid content of \\{\\}"
 msgstr "\\{\\} içeriği geçersiz"
 
-#: lib/regcomp.c:168
+#: lib/regcomp.c:155
 msgid "Invalid range end"
 msgstr "Kapsam sonu geçersiz"
 
-#: lib/regcomp.c:171
+#: lib/regcomp.c:158
 msgid "Memory exhausted"
 msgstr "Bellek tükendi"
 
-#: lib/regcomp.c:174
+#: lib/regcomp.c:161
 msgid "Invalid preceding regular expression"
 msgstr "Önceki düzenli ifade geçersiz"
 
-#: lib/regcomp.c:177
+#: lib/regcomp.c:164
 msgid "Premature end of regular expression"
 msgstr "Düzenli ifadenin sonu eksik kalmış"
 
-#: lib/regcomp.c:180
+#: lib/regcomp.c:167
 msgid "Regular expression too big"
 msgstr "Düzenli ifade çok büyük"
 
-#: lib/regcomp.c:183
+#: lib/regcomp.c:170
 msgid "Unmatched ) or \\)"
 msgstr ") ya da  \\) eşleşmiyor"
 
-#: lib/regcomp.c:676
+#: lib/regcomp.c:650
 msgid "No previous regular expression"
 msgstr "Daha önce düzenli ifade yok"
 
@@ -497,17 +497,17 @@ msgstr "%s ana sayfası: <%s>\n"
 msgid "General help using GNU software: <%s>\n"
 msgstr "GNU yazılımı kullanımı hakkında genel yardım: <%s>\n"
 
-#: src/analyze.c:454 src/diff.c:1406
+#: src/analyze.c:455 src/diff.c:1478
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "%s ve %s dosyaları birbirinden farklı\n"
 
-#: src/analyze.c:455
+#: src/analyze.c:456
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "İkili %s ve %s birbirinden farklı\n"
 
-#: src/analyze.c:706 src/diff3.c:1470 src/util.c:1254
+#: src/analyze.c:707 src/diff3.c:1457 src/util.c:1354
 msgid "No newline at end of file"
 msgstr "Dosya sonunda yenisatır yok"
 
@@ -521,40 +521,41 @@ msgstr "Torbjorn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:120 src/diff.c:879 src/diff3.c:467 src/sdiff.c:160
+#: src/cmp.c:124 src/diff.c:939 src/diff3.c:465 src/sdiff.c:159
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Daha fazla bilgi için `%s --help' komutunu deneyin."
 
-#: src/cmp.c:138
+#: src/cmp.c:142
 #, c-format
 msgid "invalid --ignore-initial value '%s'"
 msgstr "geçersiz --ignore-initial değeri '%s'"
 
-#: src/cmp.c:148
+#: src/cmp.c:152
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr "-l ve -s seçenekleri beraber kullanılamaz"
 
-#: src/cmp.c:156 src/diff.c:887 src/diff3.c:474 src/sdiff.c:168 src/sdiff.c:316
-#: src/sdiff.c:323 src/sdiff.c:876 src/util.c:852 src/util.c:952 src/util.c:959
+#: src/cmp.c:160 src/diff.c:947 src/diff3.c:472 src/sdiff.c:167 src/sdiff.c:314
+#: src/sdiff.c:321 src/sdiff.c:873 src/util.c:952 src/util.c:1052
+#: src/util.c:1059
 msgid "write failed"
 msgstr "yazma başarısız oldu"
 
-#: src/cmp.c:158 src/diff.c:889 src/diff.c:1471 src/diff3.c:476 src/sdiff.c:170
+#: src/cmp.c:162 src/diff.c:949 src/diff.c:1543 src/diff3.c:474 src/sdiff.c:169
 msgid "standard output"
 msgstr "standart çıktı"
 
-#: src/cmp.c:162
+#: src/cmp.c:166
 msgid "-b, --print-bytes          print differing bytes"
 msgstr "-b, --print-bytes          bayt farklarını çıktılar"
 
-#: src/cmp.c:163
+#: src/cmp.c:167
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
 msgstr ""
 "-i, --ignore-initial=ATLA         İki girdinin de ilk ATLA baytını atlar"
 
-#: src/cmp.c:164
+#: src/cmp.c:168
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
@@ -562,39 +563,39 @@ msgstr ""
 "-i, --ignore-initial=ATLA1:ATLA2  DOSYA1'in ilk ATLA1 baytını ve\n"
 "                                      DOSYA2'nin ilk ATLA2 baytını atlar"
 
-#: src/cmp.c:166
+#: src/cmp.c:170
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
 msgstr ""
 "-l,  --verbose              bütün farklı baytların numaralarını ve "
 "değerlerini göster"
 
-#: src/cmp.c:167
+#: src/cmp.c:171
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
 msgstr "-n, --bytes=LİMİT              en fazla LİMİT baytı karşılaştırır"
 
-#: src/cmp.c:168
+#: src/cmp.c:172
 msgid "-s, --quiet, --silent      suppress all normal output"
 msgstr "-s, --quiet, --silent      tüm normal çıktıları gizle"
 
-#: src/cmp.c:169
+#: src/cmp.c:173
 msgid "    --help                 display this help and exit"
 msgstr "    --help                 bu yardım metnini göster ve çık"
 
-#: src/cmp.c:170
+#: src/cmp.c:174
 msgid "-v, --version              output version information and exit"
 msgstr "-v, --version              sürüm bilgisini gösterir"
 
-#: src/cmp.c:179
+#: src/cmp.c:183
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
 msgstr "Kullanım: %s [SEÇENEK]... DOSYA1 [DOSYA2 [ATLA1 [ATLA2]]]\n"
 
-#: src/cmp.c:181
+#: src/cmp.c:185
 msgid "Compare two files byte by byte."
 msgstr "İki dosyayı bayt bayt karşılaştırır."
 
-#: src/cmp.c:183
+#: src/cmp.c:187
 msgid ""
 "The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
 "at the beginning of each file (zero by default)."
@@ -602,14 +603,14 @@ msgstr ""
 "İsteğe bağlı ATLA1 ve ATLA2, her dosyanın başından atlanacak\n"
 "(öntanımlı olarak sıfır) bayt sayısını belirtir."
 
-#: src/cmp.c:186 src/diff.c:999 src/diff3.c:514 src/sdiff.c:211
+#: src/cmp.c:190 src/diff.c:1059 src/diff3.c:512 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
 "Uzun seçenekler için zorunlu olan argümanlar, kısa seçenekler için de "
 "zorunludur.\n"
 
-#: src/cmp.c:192
+#: src/cmp.c:196
 msgid ""
 "SKIP values may be followed by the following multiplicative suffixes:\n"
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
@@ -619,192 +620,192 @@ msgstr ""
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
 "GB 1,000,000,000, G 1,073,741,824, ve T, P, E, Z, Y için devam eder."
 
-#: src/cmp.c:195
+#: src/cmp.c:199
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "Eğer DOSYA `-' ise veya yoksa, standart girdi okunur."
 
-#: src/cmp.c:196 src/diff.c:987 src/sdiff.c:221
+#: src/cmp.c:200 src/diff.c:1047 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr "Girdiler aynı ise çıkış durumu 0, farklı ise 1, sorun var ise 2 olur."
 
-#: src/cmp.c:243
+#: src/cmp.c:247
 #, c-format
 msgid "invalid --bytes value '%s'"
 msgstr "geçersiz --bytes değeri `%s'"
 
-#: src/cmp.c:269 src/diff.c:797 src/diff3.c:361 src/sdiff.c:567
+#: src/cmp.c:273 src/diff.c:857 src/diff3.c:368 src/sdiff.c:564
 #, c-format
 msgid "missing operand after '%s'"
 msgstr "`%s'den sonra işlenen eksik"
 
-#: src/cmp.c:281 src/diff.c:799 src/diff3.c:363 src/sdiff.c:569
+#: src/cmp.c:285 src/diff.c:859 src/diff3.c:370 src/sdiff.c:566
 #, c-format
 msgid "extra operand '%s'"
 msgstr "fazla işlenen `%s'"
 
-#: src/cmp.c:507
+#: src/cmp.c:521
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s farklı: bayt %s, satır %s\n"
 
-#: src/cmp.c:523
+#: src/cmp.c:537
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
 msgstr "%s %s farklı: bayt %s, satır %s: %3o %s %3o %s\n"
 
-#: src/cmp.c:580
+#: src/cmp.c:594
 #, c-format
 msgid "cmp: EOF on %s which is empty\n"
 msgstr "cmp: %s'da EOF (dosya sonu) boş\n"
 
-#: src/cmp.c:594
+#: src/cmp.c:608
 #, c-format
 msgid "cmp: EOF on %s after byte %s, line %s\n"
 msgstr "cmp: EOF üzerinde %s sonrası byte %s, satır %s\n"
 
-#: src/cmp.c:595
+#: src/cmp.c:609
 #, c-format
 msgid "cmp: EOF on %s after byte %s, in line %s\n"
 msgstr "cmp: EOF üzerinde %s sonrası byte %s, satır %s\n"
 
-#: src/cmp.c:601
+#: src/cmp.c:615
 #, c-format
 msgid "cmp: EOF on %s after byte %s\n"
 msgstr "cmp: EOF üzerinde %s sonrası byte %s\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:51
+#: src/diff.c:50
 msgid "Paul Eggert"
 msgstr "Paul Eggert"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:52
+#: src/diff.c:51
 msgid "Mike Haertel"
 msgstr "Mike Haertel"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:53
+#: src/diff.c:52
 msgid "David Hayes"
 msgstr "David Hayes"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:54
+#: src/diff.c:53
 msgid "Richard Stallman"
 msgstr "Richard Stallman"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:55
+#: src/diff.c:54
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:355
+#: src/diff.c:365
 #, c-format
 msgid "invalid context length '%s'"
 msgstr "`%s' bağlam uzunluğu geçersiz"
 
-#: src/diff.c:438
+#: src/diff.c:487
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "sayfalama bu makina üzerinde desteklenmiyor"
 
-#: src/diff.c:453 src/diff3.c:341
+#: src/diff.c:502 src/diff3.c:348
 #, c-format
 msgid "too many file label options"
 msgstr "çok fazla dosya etiket seçeneği"
 
-#: src/diff.c:530
+#: src/diff.c:579
 #, c-format
 msgid "invalid width '%s'"
 msgstr "geçersiz genişlik `%s'"
 
-#: src/diff.c:534
+#: src/diff.c:583
 msgid "conflicting width options"
 msgstr "çelişkili genişlik seçenekleri"
 
-#: src/diff.c:559
+#: src/diff.c:608
 #, c-format
 msgid "invalid horizon length '%s'"
 msgstr "geçersiz ufuk uzunluğu `%s'"
 
-#: src/diff.c:615
+#: src/diff.c:664
 #, c-format
 msgid "invalid tabsize '%s'"
 msgstr "geçersiz sekme genişliği `%s'"
 
-#: src/diff.c:619
+#: src/diff.c:668
 msgid "conflicting tabsize options"
 msgstr "çelişkili genişlik seçenekleri"
 
-#: src/diff.c:774
+#: src/diff.c:834
 msgid "--from-file and --to-file both specified"
 msgstr "hem --from-file hem de --to-file belirtilmiş"
 
-#: src/diff.c:893
+#: src/diff.c:953
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "    --normal                  normal bir diff çıktılar (öntanımlı)"
 
-#: src/diff.c:894
+#: src/diff.c:954
 msgid "-q, --brief                   report only when files differ"
 msgstr "-q, --brief                   yalnızca dosyalar farklı ise göster"
 
-#: src/diff.c:895
+#: src/diff.c:955
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr ""
 "-s, --report-identical-files  iki dosyanın birbirinin aynısı ise göster"
 
-#: src/diff.c:896
+#: src/diff.c:956
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
 "-c, -C SAYI, --context[=SAYI]   kopyalanan bağlamı SAYI satırınca (öntanımlı "
 "3) bastırır"
 
-#: src/diff.c:897
+#: src/diff.c:957
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
 "-u, -U SAYI, --unified[=SAYI]   birleşik bağlamın SAYI (öntanımlı 3) "
 "satırınca çıktı gösterir"
 
-#: src/diff.c:898
+#: src/diff.c:958
 msgid "-e, --ed                      output an ed script"
 msgstr "-e, --ed                      bir ed betiği çıktılar"
 
-#: src/diff.c:899
+#: src/diff.c:959
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n, --rcs                     RCS biçeminde diff çıktılar"
 
-#: src/diff.c:900
+#: src/diff.c:960
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side            iki sütunda çıktı göster"
 
-#: src/diff.c:901
+#: src/diff.c:961
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
 "-W, --width=SAYI               satır başına en fazla SAYI kadar karakter "
 "çıktılar (öntanımlı 130)"
 
-#: src/diff.c:902
+#: src/diff.c:962
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr ""
 "    --left-column             ortak satırları yalnızca sol sütunda çıktılar"
 
-#: src/diff.c:903
+#: src/diff.c:963
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "    --suppress-common-lines   ortak satırlayı gösterme"
 
-#: src/diff.c:905
+#: src/diff.c:965
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr "-p, --show-c-function         içinde değişen her C işlevini göster"
 
-#: src/diff.c:906
+#: src/diff.c:966
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr ""
 "-F, --show-function-line=DÜZİF   DÜZİF ile eşleşen en yakın satırı göster"
 
-#: src/diff.c:907
+#: src/diff.c:967
 msgid ""
 "    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
@@ -812,85 +813,85 @@ msgstr ""
 "    --label ETİKET             dosya adı yerine ETİKET kullan\n"
 "                                (tekrarlanabilir)"
 
-#: src/diff.c:910
+#: src/diff.c:970
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr "-t, --expand-tabs             çıktıda sekmeleri boşluk haline getir"
 
-#: src/diff.c:911
+#: src/diff.c:971
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr ""
 "-T, --initial-tab             başlarına bir sekme ilave ederek sekmelerin "
 "hizalanmasını sağla"
 
-#: src/diff.c:912
+#: src/diff.c:972
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=SAYI             sekmeler SAYI sütun genişliğine (varsalılan "
 "8) ayarlanır"
 
-#: src/diff.c:913
+#: src/diff.c:973
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
 "    --suppress-blank-empty    boş çıktı satırlarından önce boşluk veya "
 "sekmeyi gözardı et"
 
-#: src/diff.c:914
+#: src/diff.c:974
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr ""
 "-l, --paginate                çıktıyı 'pr' komutundan geçirerek sayfala"
 
-#: src/diff.c:916
+#: src/diff.c:976
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr ""
 "-r, --recursive                 çevrimli olarak bulunan bütün alt dizinleri "
 "karşılaştır"
 
-#: src/diff.c:917
+#: src/diff.c:977
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr "    --no-dereference            sembolik bağlantıları takip etme"
 
-#: src/diff.c:918
+#: src/diff.c:978
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr "-N, --new-file                  var olmayan dosyaları boş varsay"
 
-#: src/diff.c:919
+#: src/diff.c:979
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr "    --unidirectional-new-file   var olmayan birinci dosyayı boş varsay"
 
-#: src/diff.c:920
+#: src/diff.c:980
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ""
 "    --ignore-file-name-case     dosya isimlerinde büyük/küçük harf "
 "farklarını yoksay"
 
-#: src/diff.c:921
+#: src/diff.c:981
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
 "    --no-ignore-file-name-case  dosya isimlerinde büyük/küçük harf farkını "
 "göz önüne al"
 
-#: src/diff.c:922
+#: src/diff.c:982
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr ""
 "-x, --exclude=KALIP               KALIP'a uyan dosyaları işleme dahil etme"
 
-#: src/diff.c:923
+#: src/diff.c:983
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
 "-X, --exclude-from=DOSYA         DOSYA'da bulunan kalıplara uyan dosyaları "
 "işlem dışı tut"
 
-#: src/diff.c:924
+#: src/diff.c:984
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
 "-S, --starting-file=DOSYA        dizinleri karşılaştırırken DOSYA'dan başla"
 
-#: src/diff.c:925
+#: src/diff.c:985
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
@@ -898,7 +899,7 @@ msgstr ""
 "    --from-file=DOSYA1           DOSYA1'i bütün işlenenlerle karşılaştır;\n"
 "                                  DOSYA1 bir dizin olabilir"
 
-#: src/diff.c:927
+#: src/diff.c:987
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
@@ -906,82 +907,82 @@ msgstr ""
 "    --to-file=DOSYA2           DOSYA2'yi bütün işlenenlerle karşılaştır;\n"
 "                                  DOSYA2 bir dizin olabilir"
 
-#: src/diff.c:930
+#: src/diff.c:990
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr ""
 "-i, --ignore-case               dosya içeriğinde büyük/küçük harf farklarını "
 "yoksay"
 
-#: src/diff.c:931
+#: src/diff.c:991
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr ""
 "-E, --ignore-tab-expansion      sekmelerin açılmasından doğan farkları yoksay"
 
-#: src/diff.c:932
+#: src/diff.c:992
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr "-Z, --ignore-trailing-space     bütün satır sonu boşluklarını yoksay"
 
-#: src/diff.c:933
+#: src/diff.c:993
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr ""
 "-b, --ignore-space-change       boşluk miktarındaki değişiklikleri yoksay"
 
-#: src/diff.c:934
+#: src/diff.c:994
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w, --ignore-all-space          bütün boşlukları yoksay"
 
-#: src/diff.c:935
+#: src/diff.c:995
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr ""
 "-B, --ignore-blank-lines        satırları boş olan değişiklikleri dikkate "
 "alma"
 
-#: src/diff.c:936
+#: src/diff.c:996
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=DÜZİF  satırları DÜZİF kalıbına uyan farkları "
 "yok say"
 
-#: src/diff.c:938
+#: src/diff.c:998
 msgid "-a, --text                      treat all files as text"
 msgstr "-a, --text                      bütün dosyaları metin olarak işle"
 
-#: src/diff.c:939
+#: src/diff.c:999
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr         girdiden en sonda sarkan satır başını soy"
 
-#: src/diff.c:941
+#: src/diff.c:1001
 msgid "    --binary                    read and write data in binary mode"
 msgstr "    --binary                    veriyi ikilik kipte yaz ve oku"
 
-#: src/diff.c:944
+#: src/diff.c:1004
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
 "-D, --ifdef=İSİM                '#ifdef İSİM' farklarını gösteren "
 "harmanlanmış dosya çıktıla"
 
-#: src/diff.c:945
+#: src/diff.c:1005
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr ""
 "    --GTYPE-group-format=GFMT   GTYPE girdi gruplarını GFMT ile biçimlendir"
 
-#: src/diff.c:946
+#: src/diff.c:1006
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr ""
 "    --line-format=LFMT          tüm girdi satırlarını LFMT ile biçimlendir"
 
-#: src/diff.c:947
+#: src/diff.c:1007
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr ""
 "    --LTYPE-line-format=LFMT    tüm LTYPE girdi satırlarını LFMT ile "
 "biçimlendir"
 
-#: src/diff.c:948
+#: src/diff.c:1008
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
@@ -990,13 +991,13 @@ msgstr ""
 "grained control over the output\n"
 "    tanecik denetimi sağlar. -D/--ifdef genelleştirmesi yapar."
 
-#: src/diff.c:950
+#: src/diff.c:1010
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
 "  LTYPE 'old', 'new' veya 'unchanged' olabilir.  GTYPE, LTYPE veya "
 "'changed'dir."
 
-#: src/diff.c:951
+#: src/diff.c:1011
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -1025,7 +1026,7 @@ msgstr ""
 "        M  L+1\n"
 "    %(A=B?T:E)  eğer A eşittir B ise T değilse E"
 
-#: src/diff.c:963
+#: src/diff.c:1023
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -1038,7 +1039,7 @@ msgstr ""
 "    %[-][GENİŞLİK][.[KESİNLİK]]{doxX}n  girdi satır sayısı için printf tarzı "
 "biçem"
 
-#: src/diff.c:967
+#: src/diff.c:1027
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1052,22 +1053,22 @@ msgstr ""
 "    %c'\\OOO'  Sekizlik kodu OOO olan karakter\n"
 "    C    C karakteri (diğer karakterler kendilerini temsil eder)"
 
-#: src/diff.c:973
+#: src/diff.c:1033
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr "-d, --minimal            daha küçük bir fark kümesi bulmaya çalış"
 
-#: src/diff.c:974
+#: src/diff.c:1034
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr "    --horizon-lines=SAYI  ortak ön ek ve son eklerin SAYI satırını tut"
 
-#: src/diff.c:975
+#: src/diff.c:1035
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
 "    --speed-large-files  büyük dosyalar ve çok sayıda dağınık küçük farklar "
 "olduğunu varsay"
 
-#: src/diff.c:976
+#: src/diff.c:1036
 msgid ""
 "    --color[=WHEN]       color output; WHEN is 'never', 'always', or "
 "'auto';\n"
@@ -1077,7 +1078,7 @@ msgstr ""
 "'asla', 'devamlı' veya 'oto';\n"
 "                           düz --color anlamı --color='oto'"
 
-#: src/diff.c:978
+#: src/diff.c:1038
 msgid ""
 "    --palette=PALETTE    the colors to use when --color is active; PALETTE "
 "is\n"
@@ -1087,114 +1088,114 @@ msgstr ""
 "                           bir virgülle ayrılmış terminfo yetenekleri "
 "listelenmiştir"
 
-#: src/diff.c:981
+#: src/diff.c:1041
 msgid "    --help               display this help and exit"
 msgstr "    --help                 bu yardım metnini göster ve çık"
 
-#: src/diff.c:982
+#: src/diff.c:1042
 msgid "-v, --version            output version information and exit"
 msgstr "-v, --version            sürüm bilgisini göster ve çık"
 
-#: src/diff.c:984
+#: src/diff.c:1044
 msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
 "`DOSYA1 DOSYA2' veya `DİZİN1 DİZİN2' veya `DİZİN DOSYA' veya `DOSYA DİZİN' "
 "DOSYAlARdır."
 
-#: src/diff.c:985
+#: src/diff.c:1045
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr ""
 "Eğer --from-file veya --to-file kullanılmışsa, DOSYAlar üzerinde kısıtlama "
 "yoktur."
 
-#: src/diff.c:986 src/diff3.c:533 src/sdiff.c:220
+#: src/diff.c:1046 src/diff3.c:531 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
 msgstr "Eğer bir DOSYA `-' ise, standart girdi okunur."
 
-#: src/diff.c:996
+#: src/diff.c:1056
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Kullanım: %s [SEÇENEK]... DOSYAlar\n"
 
-#: src/diff.c:997
+#: src/diff.c:1057
 msgid "Compare FILES line by line."
 msgstr "DOSYAları satır satır karşılaştırır."
 
-#: src/diff.c:1034
+#: src/diff.c:1094
 #, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "çelişkili %s seçeneği değeri: '%s'"
 
-#: src/diff.c:1047
+#: src/diff.c:1107
 #, c-format
 msgid "conflicting output style options"
 msgstr "çelişkili çıktı tarz seçenekleri"
 
-#: src/diff.c:1063
+#: src/diff.c:1123
 #, c-format
 msgid "invalid color '%s'"
 msgstr "geçersiz renk '%s'"
 
-#: src/diff.c:1119 src/diff.c:1329
+#: src/diff.c:1197 src/diff.c:1401
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Yalnızca %s'da: %s\n"
 
-#: src/diff.c:1253
+#: src/diff.c:1325
 msgid "cannot compare '-' to a directory"
 msgstr "'-', bir dizinle karşılaştırılamaz"
 
-#: src/diff.c:1288
+#: src/diff.c:1360
 msgid "-D option not supported with directories"
 msgstr "-D seçenek dizinler için kullanılamaz"
 
-#: src/diff.c:1297
+#: src/diff.c:1369
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Ortak alt dizinler: %s ve %s\n"
 
-#: src/diff.c:1339 src/diff.c:1389
+#: src/diff.c:1411 src/diff.c:1461
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr "%s dosyası, bir %s, halbuki %s dosyası bir %s\n"
 
-#: src/diff.c:1375
+#: src/diff.c:1447
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "%s ve %s sembolik bağlantıları birbirinden farklı\n"
 
-#: src/diff.c:1462
+#: src/diff.c:1534
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "%s ve %s dosyaları birbirinin aynı\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff3.c:43
+#: src/diff3.c:51
 msgid "Randy Smith"
 msgstr "Randy Smith"
 
-#: src/diff3.c:356
+#: src/diff3.c:363
 #, c-format
 msgid "incompatible options"
 msgstr "uyumsuz seçenekler"
 
-#: src/diff3.c:396
+#: src/diff3.c:403
 msgid "'-' specified for more than one input file"
 msgstr "'-' birden fazla girdi dosyası için belirtilmiş"
 
-#: src/diff3.c:447 src/diff3.c:1295 src/diff3.c:1698 src/diff3.c:1753
-#: src/sdiff.c:308 src/sdiff.c:846 src/sdiff.c:857
+#: src/diff3.c:445 src/diff3.c:1284 src/diff3.c:1683 src/diff3.c:1738
+#: src/sdiff.c:306 src/sdiff.c:843 src/sdiff.c:854
 msgid "read failed"
 msgstr "okuma başarısız oldu"
 
-#: src/diff3.c:480
+#: src/diff3.c:478
 msgid "-A, --show-all              output all changes, bracketing conflicts"
 msgstr ""
 "-A, --show-all              bütün değişiklikleri çıktıla, çakışmaları köşeli "
 "parantez içine al"
 
-#: src/diff3.c:482
+#: src/diff3.c:480
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
@@ -1203,13 +1204,13 @@ msgstr ""
 "harmanlanmamış\n"
 "                                ed betiklerini BENİMDOSYA'ya çıktıla"
 
-#: src/diff3.c:484
+#: src/diff3.c:482
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
 msgstr ""
 "-E, --show-overlap          -e'ye benzer, fakat çakışmaları parantez içine "
 "alır"
 
-#: src/diff3.c:485
+#: src/diff3.c:483
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
@@ -1217,25 +1218,25 @@ msgstr ""
 "-3, --easy-only             -e gibi, fakat sadece örtüşmeyen değişiklikleri "
 "birleştir"
 
-#: src/diff3.c:486
+#: src/diff3.c:484
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
 msgstr ""
 "-x, --overlap-only          -e gibi, fakat sadece örtüşen değişiklikleri "
 "birleştir"
 
-#: src/diff3.c:487
+#: src/diff3.c:485
 msgid "-X                          like -x, but bracket conflicts"
 msgstr ""
 "-X                          -x gibi ancak çakışmaları parantez içine alır"
 
-#: src/diff3.c:488
+#: src/diff3.c:486
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
 msgstr ""
 "-i                          ed betiklerinin sonuna `w' ve `q' komutlarını "
 "ekle"
 
-#: src/diff3.c:490
+#: src/diff3.c:488
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
@@ -1243,26 +1244,26 @@ msgstr ""
 "-m, --merge                 asıl birleştirilmiş dosyayı, başka bir seçenek\n"
 "                                verilmediyse -A ya göre gösterir"
 
-#: src/diff3.c:493
+#: src/diff3.c:491
 msgid "-a, --text                  treat all files as text"
 msgstr "-a, --text                  bütün dosyaları metin olarak işle"
 
-#: src/diff3.c:494
+#: src/diff3.c:492
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
 msgstr "    --strip-trailing-cr     girdiden en sonda sarkan satır başını soy"
 
-#: src/diff3.c:495
+#: src/diff3.c:493
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
 msgstr ""
 "-T, --initial-tab           başlarına bir sekme ilave ederek sekmelerin "
 "hizalanmasını sağla"
 
-#: src/diff3.c:496
+#: src/diff3.c:494
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
 msgstr ""
 "    --diff-program=YAZILIM  dosyaları karşılaştırmak için YAZILIM'ı kullan"
 
-#: src/diff3.c:497
+#: src/diff3.c:495
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
@@ -1270,24 +1271,24 @@ msgstr ""
 "-L, --label=ETİKET           dosya adı yerine ETİKET kullan\n"
 "                                (üç defaya kadar tekrarlanabilir)"
 
-#: src/diff3.c:500
+#: src/diff3.c:498
 msgid "    --help                  display this help and exit"
 msgstr "    --help                 bu yardım metnini göster ve çık"
 
-#: src/diff3.c:501
+#: src/diff3.c:499
 msgid "-v, --version               output version information and exit"
 msgstr "-v, --version               sürüm bilgisini göster ve çık"
 
-#: src/diff3.c:510
+#: src/diff3.c:508
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
 msgstr "Kullanım: %s [SEÇENEK]... BENİMDOSYA ESKİDOSYA SİZİNDOSYA\n"
 
-#: src/diff3.c:512
+#: src/diff3.c:510
 msgid "Compare three files line by line."
 msgstr "Üç dosyayı satır satır karşılaştırır."
 
-#: src/diff3.c:522
+#: src/diff3.c:520
 msgid ""
 "\n"
 "The default output format is a somewhat human-readable representation of\n"
@@ -1310,56 +1311,56 @@ msgstr ""
 "yapmasına neden olur ve asıl birleştirilen dosya çıkarılır. Alışılmadık\n"
 "girdiler için, bu ed kullanımından daha dayanıklıdır.\n"
 
-#: src/diff3.c:534
+#: src/diff3.c:532
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
 msgstr ""
 "Eğer işleme başarılı ise çıkış durumu 0, çelişkiler var ise 1,\n"
 "sorun var ise 2 olur."
 
-#: src/diff3.c:727
+#: src/diff3.c:725
 msgid "internal error: screwup in format of diff blocks"
 msgstr "iç hata: diff blokları biçemlemesinde hata oluştu"
 
-#: src/diff3.c:1022
+#: src/diff3.c:1015
 #, c-format
 msgid "%s: diff failed: "
 msgstr "%s: diff başarısız oldu: "
 
-#: src/diff3.c:1044
+#: src/diff3.c:1037
 msgid "internal error: invalid diff type in process_diff"
 msgstr "iç hata: process_diff işlevi içinde geçersiz diff türü"
 
-#: src/diff3.c:1069
+#: src/diff3.c:1060
 msgid "invalid diff format; invalid change separator"
 msgstr "geçersiz diff biçemi; geçersiz fark ayracı"
 
-#: src/diff3.c:1305
+#: src/diff3.c:1294
 msgid "invalid diff format; incomplete last line"
 msgstr "geçersiz diff biçemi; tamamlanmamış son satır"
 
-#: src/diff3.c:1329 src/sdiff.c:276 src/util.c:969
+#: src/diff3.c:1318 src/sdiff.c:274 src/util.c:1069
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "alt yazılım '%s' çalıştırılamadı"
 
-#: src/diff3.c:1354
+#: src/diff3.c:1343
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "geçersiz diff biçemi; geçersiz satır başı karakterleri"
 
-#: src/diff3.c:1427
+#: src/diff3.c:1416
 msgid "internal error: invalid diff type passed to output"
 msgstr "iç hata: çıktıya geçersiz diff türü geçirildi"
 
-#: src/diff3.c:1700 src/diff3.c:1757
+#: src/diff3.c:1685 src/diff3.c:1742
 msgid "input file shrank"
 msgstr "girdi dosyası küçüldü"
 
-#: src/dir.c:156
+#: src/dir.c:154
 #, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "dosya isimleri '%s' ve '%s' karşılaştırılamıyor"
 
-#: src/dir.c:225
+#: src/dir.c:223
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: iç dizin döngüsü"
@@ -1369,127 +1370,127 @@ msgstr "%s: iç dizin döngüsü"
 msgid "Thomas Lord"
 msgstr "Thomas Lord"
 
-#: src/sdiff.c:174
+#: src/sdiff.c:173
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
 msgstr ""
 "-o, --output=DOSYA            etkileşimli olarak çalış, çıktıyı DOSYA'ya "
 "yönlendir"
 
-#: src/sdiff.c:176
+#: src/sdiff.c:175
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
 msgstr "-i, --ignore-case            büyük harf/küçük harf farkı gözetme"
 
-#: src/sdiff.c:177
+#: src/sdiff.c:176
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
 msgstr ""
 "-E, --ignore-tab-expansion   sekmelerin açılmasından doğan farkları yoksay"
 
-#: src/sdiff.c:178
+#: src/sdiff.c:177
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
 msgstr "-Z, --ignore-trailing-space  bütün satır sonu boşluklarını yoksay"
 
-#: src/sdiff.c:179
+#: src/sdiff.c:178
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
 msgstr "-b, --ignore-space-change    boşluk miktarındaki değişiklikleri yoksay"
 
-#: src/sdiff.c:180
+#: src/sdiff.c:179
 msgid "-W, --ignore-all-space       ignore all white space"
 msgstr "-W, --ignore-all-space       bütün boşlukları yoksay"
 
-#: src/sdiff.c:181
+#: src/sdiff.c:180
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
 msgstr ""
 "-B, --ignore-blank-lines     satırları boş olan değişiklikleri dikkate alma"
 
-#: src/sdiff.c:182
+#: src/sdiff.c:181
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=DÜZİF  satırları DÜZİF kalıbına uyan farkları "
 "yoksay"
 
-#: src/sdiff.c:183
+#: src/sdiff.c:182
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr         girdiden en sonda sarkan satır başını soy"
 
-#: src/sdiff.c:184
+#: src/sdiff.c:183
 msgid "-a, --text                   treat all files as text"
 msgstr "-a, --text                  bütün dosyaları metin olarak işle"
 
-#: src/sdiff.c:186
+#: src/sdiff.c:185
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
 msgstr ""
 "-W, --width=SAYI               satır başına en fazla SAYI kadar karakter "
 "çıktılar (öntanımlı 130)"
 
-#: src/sdiff.c:187
+#: src/sdiff.c:186
 msgid ""
 "-l, --left-column            output only the left column of common lines"
 msgstr ""
 "-W, --width=SAYI               satır başına en fazla SAYI kadar karakter "
 "çıktılar (öntanımlı 130)"
 
-#: src/sdiff.c:188
+#: src/sdiff.c:187
 msgid "-s, --suppress-common-lines  do not output common lines"
 msgstr "-s, --suppress-common-lines  ortak satırlayı gösterme"
 
-#: src/sdiff.c:190
+#: src/sdiff.c:189
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
 msgstr "-t, --expand-tabs             çıktıda sekmeleri boşluk haline getir"
 
-#: src/sdiff.c:191
+#: src/sdiff.c:190
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=SAYI            sekmeleri SAYI sütun genişliğine (öntanımlı 8) "
 "ayarla"
 
-#: src/sdiff.c:193
+#: src/sdiff.c:192
 msgid "-d, --minimal                try hard to find a smaller set of changes"
 msgstr "-d, --minimal            daha küçük bir fark kümesi bulmaya çalış"
 
-#: src/sdiff.c:194
+#: src/sdiff.c:193
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
 msgstr ""
 "-H, --speed-large-files      büyük dosyalar ve çok sayıda dağınık küçük "
 "farklar olduğunu varsay"
 
-#: src/sdiff.c:195
+#: src/sdiff.c:194
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
 msgstr ""
 "    --diff-program=YAZILIM  dosyaları karşılaştırmak için YAZILIM'ı kullan"
 
-#: src/sdiff.c:197
+#: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
 msgstr "    --help                 bu yardım metnini göster ve çık"
 
-#: src/sdiff.c:198
+#: src/sdiff.c:197
 msgid "-v, --version                output version information and exit"
 msgstr "-v, --version            sürüm bilgisini göster ve çık"
 
-#: src/sdiff.c:207
+#: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
 msgstr "Kullanım: %s [SEÇENEK]... DOSYA1 DOSYA2\n"
 
-#: src/sdiff.c:209
+#: src/sdiff.c:208
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
 msgstr "DOSYA1 vey DOSYA2 arasındaki farkları yan yana birleştir."
 
-#: src/sdiff.c:330
+#: src/sdiff.c:328
 msgid "cannot interactively merge standard input"
 msgstr "interaktif olarak standart girdi harmanlanamaz"
 
-#: src/sdiff.c:597
+#: src/sdiff.c:594
 msgid "both files to be compared are directories"
 msgstr "karşılaştırılacak her iki dosya da dizin"
 
-#: src/sdiff.c:820
+#: src/sdiff.c:817
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
 "eb:\tEdit then use both versions.\n"
@@ -1513,12 +1514,12 @@ msgstr ""
 "v:\tOrtak satırları bilgi vererek dahil eder.\n"
 "q:\tÇıkar.\n"
 
-#: src/util.c:662
+#: src/util.c:755
 #, c-format
 msgid "unrecognized prefix: %s"
 msgstr "tanınmamış önek: %s"
 
-#: src/util.c:692
+#: src/util.c:785
 #, c-format
 msgid "unparsable value for --palette"
 msgstr "--palette için ayrıştırılamayan değer"
index ade96c8..045d79e 100644 (file)
--- a/po/uk.po
+++ b/po/uk.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: diffutils 3.7.41\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2021-08-01 18:56-0700\n"
+"POT-Creation-Date: 2023-05-21 01:51-0700\n"
 "PO-Revision-Date: 2021-07-20 12:05+0300\n"
 "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
 "Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n"
@@ -20,29 +20,29 @@ msgstr ""
 "X-Generator: Lokalize 20.12.0\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: lib/argmatch.c:132
+#: lib/argmatch.c:145
 #, c-format
 msgid "invalid argument %s for %s"
 msgstr "некоректний аргумент %s до %s"
 
-#: lib/argmatch.c:133
+#: lib/argmatch.c:146
 #, c-format
 msgid "ambiguous argument %s for %s"
 msgstr "неоднозначний аргумент %s до %s"
 
-#: lib/argmatch.c:152 lib/argmatch.h:223
+#: lib/argmatch.c:165 lib/argmatch.h:242
 msgid "Valid arguments are:"
 msgstr "Список коректних аргументів:"
 
-#: lib/c-stack.c:187
+#: lib/c-stack.c:186
 msgid "program error"
 msgstr "помилка програми"
 
-#: lib/c-stack.c:188
+#: lib/c-stack.c:187
 msgid "stack overflow"
 msgstr "переповнення стеку"
 
-#: lib/error.c:195
+#: lib/error.c:193
 msgid "Unknown system error"
 msgstr "Невідома системна помилка"
 
@@ -198,83 +198,83 @@ msgstr "%s: до параметра слід додати аргумент — 
 #. If you don't know what to put here, please see
 #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:355
+#: lib/quotearg.c:354
 msgid "`"
 msgstr "`"
 
-#: lib/quotearg.c:356
+#: lib/quotearg.c:355
 msgid "'"
 msgstr "'"
 
-#: lib/regcomp.c:135
+#: lib/regcomp.c:122
 msgid "Success"
 msgstr "Успішно"
 
-#: lib/regcomp.c:138
+#: lib/regcomp.c:125
 msgid "No match"
 msgstr "Немає відповідностей"
 
-#: lib/regcomp.c:141
+#: lib/regcomp.c:128
 msgid "Invalid regular expression"
 msgstr "Неправильний регулярний вираз"
 
-#: lib/regcomp.c:144
+#: lib/regcomp.c:131
 msgid "Invalid collation character"
 msgstr "Некоректний символ для сортування"
 
-#: lib/regcomp.c:147
+#: lib/regcomp.c:134
 msgid "Invalid character class name"
 msgstr "Неправильна назва класу символу"
 
-#: lib/regcomp.c:150
+#: lib/regcomp.c:137
 msgid "Trailing backslash"
 msgstr "Зворотна коса риска стоїть останньою"
 
-#: lib/regcomp.c:153
+#: lib/regcomp.c:140
 msgid "Invalid back reference"
 msgstr "Неправильне посилання"
 
-#: lib/regcomp.c:156
+#: lib/regcomp.c:143
 msgid "Unmatched [, [^, [:, [., or [="
 msgstr "Непарна [, [^, [:, [. або [="
 
-#: lib/regcomp.c:159
+#: lib/regcomp.c:146
 msgid "Unmatched ( or \\("
 msgstr "Непарна ( чи \\("
 
-#: lib/regcomp.c:162
+#: lib/regcomp.c:149
 msgid "Unmatched \\{"
 msgstr "Непарна \\{"
 
-#: lib/regcomp.c:165
+#: lib/regcomp.c:152
 msgid "Invalid content of \\{\\}"
 msgstr "Неправильний вміст \\{\\}"
 
-#: lib/regcomp.c:168
+#: lib/regcomp.c:155
 msgid "Invalid range end"
 msgstr "Неправильна нижня межа"
 
-#: lib/regcomp.c:171
+#: lib/regcomp.c:158
 msgid "Memory exhausted"
 msgstr "Оперативну пам'ять вичерпано"
 
-#: lib/regcomp.c:174
+#: lib/regcomp.c:161
 msgid "Invalid preceding regular expression"
 msgstr "Неправильний попередній регулярний вираз"
 
-#: lib/regcomp.c:177
+#: lib/regcomp.c:164
 msgid "Premature end of regular expression"
 msgstr "Передчасний кінець регулярного виразу"
 
-#: lib/regcomp.c:180
+#: lib/regcomp.c:167
 msgid "Regular expression too big"
 msgstr "Регулярний вираз надто великий"
 
-#: lib/regcomp.c:183
+#: lib/regcomp.c:170
 msgid "Unmatched ) or \\)"
 msgstr "Непарна ) чи \\)"
 
-#: lib/regcomp.c:676
+#: lib/regcomp.c:650
 msgid "No previous regular expression"
 msgstr "Регулярний вираз не було вказано раніше"
 
@@ -473,17 +473,17 @@ msgstr ""
 "Загальна довідкова інформація щодо використання програмного забезпечення "
 "GNU: <%s>\n"
 
-#: src/analyze.c:454 src/diff.c:1406
+#: src/analyze.c:455 src/diff.c:1478
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Файли %s та %s відрізняються\n"
 
-#: src/analyze.c:455
+#: src/analyze.c:456
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "Двійкові файли %s та %s відрізняються\n"
 
-#: src/analyze.c:706 src/diff3.c:1470 src/util.c:1254
+#: src/analyze.c:707 src/diff3.c:1457 src/util.c:1354
 msgid "No newline at end of file"
 msgstr "Наприкінці файла немає нового рядка"
 
@@ -497,41 +497,42 @@ msgstr "Torbjorn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:120 src/diff.c:879 src/diff3.c:467 src/sdiff.c:160
+#: src/cmp.c:124 src/diff.c:939 src/diff3.c:465 src/sdiff.c:159
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Спробуйте «%s --help» для отримання докладнішого опису."
 
-#: src/cmp.c:138
+#: src/cmp.c:142
 #, c-format
 msgid "invalid --ignore-initial value '%s'"
 msgstr "неприпустиме значення --ignore-initial «%s»"
 
-#: src/cmp.c:148
+#: src/cmp.c:152
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr "параметри -l та -s несумісні"
 
-#: src/cmp.c:156 src/diff.c:887 src/diff3.c:474 src/sdiff.c:168 src/sdiff.c:316
-#: src/sdiff.c:323 src/sdiff.c:876 src/util.c:852 src/util.c:952 src/util.c:959
+#: src/cmp.c:160 src/diff.c:947 src/diff3.c:472 src/sdiff.c:167 src/sdiff.c:314
+#: src/sdiff.c:321 src/sdiff.c:873 src/util.c:952 src/util.c:1052
+#: src/util.c:1059
 msgid "write failed"
 msgstr "запис невдалий"
 
-#: src/cmp.c:158 src/diff.c:889 src/diff.c:1471 src/diff3.c:476 src/sdiff.c:170
+#: src/cmp.c:162 src/diff.c:949 src/diff.c:1543 src/diff3.c:474 src/sdiff.c:169
 msgid "standard output"
 msgstr "стандартний вивід"
 
-#: src/cmp.c:162
+#: src/cmp.c:166
 msgid "-b, --print-bytes          print differing bytes"
 msgstr "-b  --print-bytes          вивести байти, що відрізняються."
 
-#: src/cmp.c:163
+#: src/cmp.c:167
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
 msgstr ""
 "-i, --ignore-initial=Н            пропустити перші Н байтів у обох потоках "
 "вхідних даних"
 
-#: src/cmp.c:164
+#: src/cmp.c:168
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
@@ -539,42 +540,42 @@ msgstr ""
 "-i, --ignore-initial=Н1:Н2        пропустити перші Н1 байтів у ФАЙЛ1 і\n"
 "                                      перші Н2 байтів у ФАЙЛ2"
 
-#: src/cmp.c:166
+#: src/cmp.c:170
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
 msgstr ""
 "-l  --verbose              вивести номери та значення усіх різних байтів"
 
-#: src/cmp.c:167
+#: src/cmp.c:171
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
 msgstr ""
 "-n, --bytes=МЕЖА           порівнювати не більше вказаної кількості байтів."
 
-#: src/cmp.c:168
+#: src/cmp.c:172
 msgid "-s, --quiet, --silent      suppress all normal output"
 msgstr "-s, --quiet, --silent      не показувати всі звичайні повідомлення"
 
-#: src/cmp.c:169
+#: src/cmp.c:173
 msgid "    --help                 display this help and exit"
 msgstr ""
 "    --help                 показати це довідкове повідомлення і завершити "
 "роботу"
 
-#: src/cmp.c:170
+#: src/cmp.c:174
 msgid "-v, --version              output version information and exit"
 msgstr ""
 "-v, --version              показати дані щодо версії і завершити роботу"
 
-#: src/cmp.c:179
+#: src/cmp.c:183
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
 msgstr "Використання: %s [ПАРАМЕТР]... ФАЙЛ1 [ФАЙЛ2 [Н1 [Н2]]]\n"
 
-#: src/cmp.c:181
+#: src/cmp.c:185
 msgid "Compare two files byte by byte."
 msgstr "Порівнює два файли по байтах."
 
-#: src/cmp.c:183
+#: src/cmp.c:187
 msgid ""
 "The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
 "at the beginning of each file (zero by default)."
@@ -582,14 +583,14 @@ msgstr ""
 "Додаткові аргументи Н1 та Н2 визначають кількість байтів, які слід\n"
 "пропустити на початку кожного файла (типово байти не пропускаються)."
 
-#: src/cmp.c:186 src/diff.c:999 src/diff3.c:514 src/sdiff.c:211
+#: src/cmp.c:190 src/diff.c:1059 src/diff3.c:512 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
 "Обов’язкові аргументи для довгих форм запису параметрів є обов’язковими і "
 "для скорочених форм.\n"
 
-#: src/cmp.c:192
+#: src/cmp.c:196
 msgid ""
 "SKIP values may be followed by the following multiplicative suffixes:\n"
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
@@ -599,201 +600,201 @@ msgstr ""
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
 "GB 1,000,000,000, G 1,073,741,824, і так далі для T, P, E, Z, Y."
 
-#: src/cmp.c:195
+#: src/cmp.c:199
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr ""
 "Якщо ФАЙЛ не вказано або вказано як «-», дані буде прочитано зі стандартного "
 "потоку введення."
 
-#: src/cmp.c:196 src/diff.c:987 src/sdiff.c:221
+#: src/cmp.c:200 src/diff.c:1047 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr ""
 "Код завершення дорівнює 0, якщо вхідні файли ідентичні, 1 -- якщо\n"
 "відрізняються, та 2 при виникненні помилок."
 
-#: src/cmp.c:243
+#: src/cmp.c:247
 #, c-format
 msgid "invalid --bytes value '%s'"
 msgstr "некоректне значення --bytes «%s»"
 
-#: src/cmp.c:269 src/diff.c:797 src/diff3.c:361 src/sdiff.c:567
+#: src/cmp.c:273 src/diff.c:857 src/diff3.c:368 src/sdiff.c:564
 #, c-format
 msgid "missing operand after '%s'"
 msgstr "пропущено операнд після «%s»"
 
-#: src/cmp.c:281 src/diff.c:799 src/diff3.c:363 src/sdiff.c:569
+#: src/cmp.c:285 src/diff.c:859 src/diff3.c:370 src/sdiff.c:566
 #, c-format
 msgid "extra operand '%s'"
 msgstr "зайвий операнд «%s»"
 
-#: src/cmp.c:507
+#: src/cmp.c:521
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s відрізняються: байт %s, рядок %s\n"
 
-#: src/cmp.c:523
+#: src/cmp.c:537
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
 msgstr "%s %s відрізняються: байт %s, рядок %s дорівнює %3o %s %3o %s\n"
 
-#: src/cmp.c:580
+#: src/cmp.c:594
 #, c-format
 msgid "cmp: EOF on %s which is empty\n"
 msgstr "cmp: кінець файла у %s, який є порожнім\n"
 
-#: src/cmp.c:594
+#: src/cmp.c:608
 #, c-format
 msgid "cmp: EOF on %s after byte %s, line %s\n"
 msgstr "cmp: кінець файла у %s після байта %s, рядок %s\n"
 
-#: src/cmp.c:595
+#: src/cmp.c:609
 #, c-format
 msgid "cmp: EOF on %s after byte %s, in line %s\n"
 msgstr "cmp: кінець файла у %s після байта %s, у рядку %s\n"
 
-#: src/cmp.c:601
+#: src/cmp.c:615
 #, c-format
 msgid "cmp: EOF on %s after byte %s\n"
 msgstr "cmp: кінець файла у %s після байта %s\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:51
+#: src/diff.c:50
 msgid "Paul Eggert"
 msgstr "Paul Eggert"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:52
+#: src/diff.c:51
 msgid "Mike Haertel"
 msgstr "Mike Haertel"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:53
+#: src/diff.c:52
 msgid "David Hayes"
 msgstr "David Hayes"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:54
+#: src/diff.c:53
 msgid "Richard Stallman"
 msgstr "Richard Stallman"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:55
+#: src/diff.c:54
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:355
+#: src/diff.c:365
 #, c-format
 msgid "invalid context length '%s'"
 msgstr "некоректна довжина контексту «%s»"
 
-#: src/diff.c:438
+#: src/diff.c:487
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "розбиття на сторінки не підтримується на цій машині"
 
-#: src/diff.c:453 src/diff3.c:341
+#: src/diff.c:502 src/diff3.c:348
 #, c-format
 msgid "too many file label options"
 msgstr "надто багато параметрів, що вказують позначки файлів"
 
-#: src/diff.c:530
+#: src/diff.c:579
 #, c-format
 msgid "invalid width '%s'"
 msgstr "некоректна ширина «%s»"
 
-#: src/diff.c:534
+#: src/diff.c:583
 msgid "conflicting width options"
 msgstr "суперечливі параметри визначення ширини"
 
-#: src/diff.c:559
+#: src/diff.c:608
 #, c-format
 msgid "invalid horizon length '%s'"
 msgstr "некоректна довжина горизонту «%s»"
 
-#: src/diff.c:615
+#: src/diff.c:664
 #, c-format
 msgid "invalid tabsize '%s'"
 msgstr "неприпустима ширина табуляції «%s»"
 
-#: src/diff.c:619
+#: src/diff.c:668
 msgid "conflicting tabsize options"
 msgstr "суперечливі параметри визначення ширини табуляції"
 
-#: src/diff.c:774
+#: src/diff.c:834
 msgid "--from-file and --to-file both specified"
 msgstr "необхідно вказати як --from-file, так і --to-file"
 
-#: src/diff.c:893
+#: src/diff.c:953
 msgid "    --normal                  output a normal diff (the default)"
 msgstr ""
 "    --normal                  вивести дані у форматі звичайного diff (типово)"
 
-#: src/diff.c:894
+#: src/diff.c:954
 msgid "-q, --brief                   report only when files differ"
 msgstr "-q, --brief                   сповіщати лише про різні файли"
 
-#: src/diff.c:895
+#: src/diff.c:955
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr "-s  --report-identical-files  сповіщати про однакові файли"
 
-#: src/diff.c:896
+#: src/diff.c:956
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
 "-c, -C КТЬ, --context[=КТЬ]   вивести КТЬ (типово 3) рядки скопійованого "
 "контексту"
 
-#: src/diff.c:897
+#: src/diff.c:957
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
 "-u, -U ЧИСЛО, --unified[=ЧИСЛО] вивести ЧИСЛО (типово 3) рядків спільного "
 "контексту"
 
-#: src/diff.c:898
+#: src/diff.c:958
 msgid "-e, --ed                      output an ed script"
 msgstr "-e, --ed                      вивести дані у форматі запису ed"
 
-#: src/diff.c:899
+#: src/diff.c:959
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr ""
 "-n, --rcs                     виводити у форматі diff систем керування "
 "версіями"
 
-#: src/diff.c:900
+#: src/diff.c:960
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side            вивести дані у два стовпчики"
 
-#: src/diff.c:901
+#: src/diff.c:961
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
 "-W, --width=ЧИСЛО             виводити текст не більше ніж у ЧИСЛО (типово "
 "130) позицій у рядок"
 
-#: src/diff.c:902
+#: src/diff.c:962
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr ""
 "    --left-column             виводити спільні рядки лише у ліву колонку"
 
-#: src/diff.c:903
+#: src/diff.c:963
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "    --suppress-common-lines   не виводити однакові рядки"
 
-#: src/diff.c:905
+#: src/diff.c:965
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr ""
 "-p, --show-c-function         показати дані щодо функцій C у яких виявлено "
 "кожну зі змін"
 
-#: src/diff.c:906
+#: src/diff.c:966
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr ""
 "-F, --show-function-line=RE   показати останній рядок, що відповідає "
 "формальному виразу RE"
 
-#: src/diff.c:907
+#: src/diff.c:967
 msgid ""
 "    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
@@ -802,75 +803,75 @@ msgstr ""
 "часової позначки\n"
 "                                (можна використовувати декілька разів)"
 
-#: src/diff.c:910
+#: src/diff.c:970
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr ""
 "-t  --expand-tabs             замінювати символи табуляції пробілами у виводі"
 
-#: src/diff.c:911
+#: src/diff.c:971
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr ""
 "-T  --initial-tab             вирівнювати табуляцію символами табуляції"
 
-#: src/diff.c:912
+#: src/diff.c:972
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=ЧИСЛО           табуляція кожні ЧИСЛО позицій виведення "
 "(типово 8)"
 
-#: src/diff.c:913
+#: src/diff.c:973
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
 "    --suppress-blank-empty    не показувати пробіли або табуляції перед "
 "порожніми рядками"
 
-#: src/diff.c:914
+#: src/diff.c:974
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr ""
 "-l  --paginate                спрямувати дані до «pr» для розбиття на "
 "сторінки."
 
-#: src/diff.c:916
+#: src/diff.c:976
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr ""
 "-r, --recursive                 рекурсивно порівняти всі знайдені підкаталоги"
 
-#: src/diff.c:917
+#: src/diff.c:977
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr ""
 "    --no-dereference            не переходити за символічними посиланнями"
 
-#: src/diff.c:918
+#: src/diff.c:978
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr "-N, --new-file                  вважати незнайдені файли порожніми"
 
-#: src/diff.c:919
+#: src/diff.c:979
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
 "    --unidirectional-new-file   вважати незнайдені у першому джерелі файли "
 "порожніми"
 
-#: src/diff.c:920
+#: src/diff.c:980
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ""
 "    --ignore-file-name-case     ігнорувати регістр назв файлів під час "
 "порівняння"
 
-#: src/diff.c:921
+#: src/diff.c:981
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
 "    --no-ignore-file-name-case  враховувати регістр символів назв файлів"
 
-#: src/diff.c:922
+#: src/diff.c:982
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr ""
 "-x --exclude=ЗРАЗОК             виключити файли, назви яких відповідають "
 "ЗРАЗКУ"
 
-#: src/diff.c:923
+#: src/diff.c:983
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
@@ -878,13 +879,13 @@ msgstr ""
 "зразкам\n"
 "                                 з файла."
 
-#: src/diff.c:924
+#: src/diff.c:984
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
 "-S, --starting-file=ФАЙЛ        починати порівняння каталогів на файлі ФАЙЛ"
 
-#: src/diff.c:925
+#: src/diff.c:985
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
@@ -892,7 +893,7 @@ msgstr ""
 "    --from-file=ФАЙЛ1           порівняти ФАЙЛ1 з усіма операндами;\n"
 "                                  ФАЙЛ1 може бути каталогом"
 
-#: src/diff.c:927
+#: src/diff.c:987
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
@@ -900,84 +901,84 @@ msgstr ""
 "    --to-file=ФАЙЛ2             порівняти всі операнди з ФАЙЛОМ "
 "2;                                   ФАЙЛ2 може бути каталогом."
 
-#: src/diff.c:930
+#: src/diff.c:990
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr ""
 "-i  --ignore-case               ігнорувати регістр літер у вмісті файлів"
 
-#: src/diff.c:931
+#: src/diff.c:991
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr ""
 "-E  --ignore-tab-expansion      ігнорувати зміни, викликані заміною "
 "табуляції пробілами"
 
-#: src/diff.c:932
+#: src/diff.c:992
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr "-Z, --ignore-trailing-space     ігнорувати пробіли наприкінці рядка"
 
-#: src/diff.c:933
+#: src/diff.c:993
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr "-b  --ignore-space-change       ігнорувати зміни у кількості пробілів"
 
-#: src/diff.c:934
+#: src/diff.c:994
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w  --ignore-all-space          ігнорувати усі пробіли"
 
-#: src/diff.c:935
+#: src/diff.c:995
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr ""
 "-B  --ignore-blank-lines        ігнорувати зміни кількості порожніх рядків"
 
-#: src/diff.c:936
+#: src/diff.c:996
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=RE  ігнорувати зміни, які відповідають "
 "формальному виразу RE"
 
-#: src/diff.c:938
+#: src/diff.c:998
 msgid "-a, --text                      treat all files as text"
 msgstr "-a, --text                      вважати всі файли текстовими"
 
-#: src/diff.c:939
+#: src/diff.c:999
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr         вилучити з виведених даних всі завершальні "
 "символи нового рядка"
 
-#: src/diff.c:941
+#: src/diff.c:1001
 msgid "    --binary                    read and write data in binary mode"
 msgstr ""
 "    --binary                    читати та записувати файли у двійковій формі"
 
-#: src/diff.c:944
+#: src/diff.c:1004
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
 "-D, --ifdef=НАЗВА               виводити diff-блоки, що використовують "
 "конструкцію «#ifdef НАЗВА»."
 
-#: src/diff.c:945
+#: src/diff.c:1005
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr ""
 "    --ГТИП-group-format=ГФМТ    форматувати вхідні групи типу ГТИП\n"
 "                                  у відповідності до формату ГФМТ."
 
-#: src/diff.c:946
+#: src/diff.c:1006
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr ""
 "    --line-format=СФМТ          форматувати всі вхідні рядки за допомогою "
 "СФМТ."
 
-#: src/diff.c:947
+#: src/diff.c:1007
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr ""
 "    --CТИП-group-format=СФМТ     форматувати вхідні рядки типу СТИП\n"
 "                                   у відповідності до формату СФМТ"
 
-#: src/diff.c:948
+#: src/diff.c:1008
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
@@ -985,12 +986,12 @@ msgstr ""
 "  За допомогою цих параметрів форматування можна точно налаштувати\n"
 "    вивід diff, з узагальненням -D/--ifdef."
 
-#: src/diff.c:950
+#: src/diff.c:1010
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
 "  СТИП може бути «old», «new» чи «unchanged», ГТИП — те саме або «changed»."
 
-#: src/diff.c:951
+#: src/diff.c:1011
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -1018,7 +1019,7 @@ msgstr ""
 "        M  L+1\n"
 "    %(A=B?T:E)  якщо A дорівнює B, T, інакше E"
 
-#: src/diff.c:963
+#: src/diff.c:1023
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -1030,7 +1031,7 @@ msgstr ""
 "    %l  вміст рядка без символу нового рядка наприкінці\n"
 "    %[-][ШИРИНА][.[ТОЧН]]{doxX}n  формат номеру вхідного рядка у стилі printf"
 
-#: src/diff.c:967
+#: src/diff.c:1027
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1044,23 +1045,23 @@ msgstr ""
 "    %c'\\OOO'  один символ з вісімковим кодом OOO\n"
 "    C    символ C (інші символи не оброблятимуться)"
 
-#: src/diff.c:973
+#: src/diff.c:1033
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr "-d  --minimal            намагатись знайти найменший набір змін"
 
-#: src/diff.c:974
+#: src/diff.c:1034
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr ""
 "    --horizon-lines=ЧИСЛО  зберегти ЧИСЛО спільних рядків, до та після різних"
 
-#: src/diff.c:975
+#: src/diff.c:1035
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
 "    --speed-large-files  вважати файли великими з багатьма розкиданими\n"
 "                           дрібними змінами."
 
-#: src/diff.c:976
+#: src/diff.c:1036
 msgid ""
 "    --color[=WHEN]       color output; WHEN is 'never', 'always', or "
 "'auto';\n"
@@ -1070,7 +1071,7 @@ msgstr ""
 "'never', 'always',\n"
 "                           або 'auto'; просто --color означає --color='auto'"
 
-#: src/diff.c:978
+#: src/diff.c:1038
 msgid ""
 "    --palette=PALETTE    the colors to use when --color is active; PALETTE "
 "is\n"
@@ -1081,116 +1082,116 @@ msgstr ""
 "                           ПАЛІТРА — відокремлений двокрапками список "
 "можливостей terminfo"
 
-#: src/diff.c:981
+#: src/diff.c:1041
 msgid "    --help               display this help and exit"
 msgstr ""
 "    --help               показати це довідкове повідомлення і завершити "
 "роботу"
 
-#: src/diff.c:982
+#: src/diff.c:1042
 msgid "-v, --version            output version information and exit"
 msgstr "-v, --version            показати дані щодо версії і завершити роботу"
 
-#: src/diff.c:984
+#: src/diff.c:1044
 msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
 "ФАЙЛИ — це «ФАЙЛ1 ФАЙЛ2», чи «КАТАЛОГ1 КАТАЛОГ2», чи «КАТАЛОГ ФАЙЛ»,\n"
 "чи «ФАЙЛ КАТАЛОГ»."
 
-#: src/diff.c:985
+#: src/diff.c:1045
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr "Якщо вказано --from-file чи --to-file, на ФАЙЛИ обмежень немає."
 
-#: src/diff.c:986 src/diff3.c:533 src/sdiff.c:220
+#: src/diff.c:1046 src/diff3.c:531 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
 msgstr ""
 "Якщо ФАЙЛ вказано як «-», дані буде прочитано зі стандартного потоку "
 "введення."
 
-#: src/diff.c:996
+#: src/diff.c:1056
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Використання: %s [КЛЮЧ]... ФАЙЛИ\n"
 
-#: src/diff.c:997
+#: src/diff.c:1057
 msgid "Compare FILES line by line."
 msgstr "Порівнює два файли за рядками."
 
-#: src/diff.c:1034
+#: src/diff.c:1094
 #, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "суперечливі значення %s для ключа «%s»"
 
-#: src/diff.c:1047
+#: src/diff.c:1107
 #, c-format
 msgid "conflicting output style options"
 msgstr "суперечливі ключі визначення стилю виводу"
 
-#: src/diff.c:1063
+#: src/diff.c:1123
 #, c-format
 msgid "invalid color '%s'"
 msgstr "некоректний колір «%s»"
 
-#: src/diff.c:1119 src/diff.c:1329
+#: src/diff.c:1197 src/diff.c:1401
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Лише у %s: %s\n"
 
-#: src/diff.c:1253
+#: src/diff.c:1325
 msgid "cannot compare '-' to a directory"
 msgstr "не можна порівнювати «-» з каталогом"
 
-#: src/diff.c:1288
+#: src/diff.c:1360
 msgid "-D option not supported with directories"
 msgstr "-D параметр не підтримується для каталогів"
 
-#: src/diff.c:1297
+#: src/diff.c:1369
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Спільні підкаталоги: %s та %s\n"
 
-#: src/diff.c:1339 src/diff.c:1389
+#: src/diff.c:1411 src/diff.c:1461
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr "Файл %s це %s, тоді як файл %s -- %s\n"
 
-#: src/diff.c:1375
+#: src/diff.c:1447
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "Символічні посилання %s і %s є різними\n"
 
-#: src/diff.c:1462
+#: src/diff.c:1534
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Файли %s та %s ідентичні\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff3.c:43
+#: src/diff3.c:51
 msgid "Randy Smith"
 msgstr "Randy Smith"
 
-#: src/diff3.c:356
+#: src/diff3.c:363
 #, c-format
 msgid "incompatible options"
 msgstr "несумісні ключі"
 
-#: src/diff3.c:396
+#: src/diff3.c:403
 msgid "'-' specified for more than one input file"
 msgstr "«-» вказано для більш ніж одного вхідного файла"
 
-#: src/diff3.c:447 src/diff3.c:1295 src/diff3.c:1698 src/diff3.c:1753
-#: src/sdiff.c:308 src/sdiff.c:846 src/sdiff.c:857
+#: src/diff3.c:445 src/diff3.c:1284 src/diff3.c:1683 src/diff3.c:1738
+#: src/sdiff.c:306 src/sdiff.c:843 src/sdiff.c:854
 msgid "read failed"
 msgstr "помилка читання"
 
-#: src/diff3.c:480
+#: src/diff3.c:478
 msgid "-A, --show-all              output all changes, bracketing conflicts"
 msgstr ""
 "-A  --show-all              вивести всі зміни, беручи конфліктні місця у "
 "дужки."
 
-#: src/diff3.c:482
+#: src/diff3.c:480
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
@@ -1198,13 +1199,13 @@ msgstr ""
 "-e  --ed                    вивести необ'єднані зміни у СТАРОМУ-ФАЙЛІ\n"
 "                              порівняно з ВАШИМ-ФАЙЛОМ до МОГО-ФАЙЛА."
 
-#: src/diff3.c:484
+#: src/diff3.c:482
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
 msgstr ""
 "-E  --show-overlap          подібно до -e, але з взяттям конфліктних місць у "
 "дужки"
 
-#: src/diff3.c:485
+#: src/diff3.c:483
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
@@ -1212,25 +1213,25 @@ msgstr ""
 "-3, --easy-only             подібно до -e, але включити лише зміни без "
 "перекриття"
 
-#: src/diff3.c:486
+#: src/diff3.c:484
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
 msgstr ""
 "-x, --overlap-only          подібно до -e, але включати лише зміни з "
 "перекриттям"
 
-#: src/diff3.c:487
+#: src/diff3.c:485
 msgid "-X                          like -x, but bracket conflicts"
 msgstr ""
 "-X                          подібно до -x, але з взяттям розбіжностей у дужки"
 
-#: src/diff3.c:488
+#: src/diff3.c:486
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
 msgstr ""
 "-i                          дописувати команди «w» і «q» в кінець сценарію "
 "ed."
 
-#: src/diff3.c:490
+#: src/diff3.c:488
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
@@ -1239,28 +1240,28 @@ msgstr ""
 "до\n"
 "                                -A, якщо не вказано інших параметрів"
 
-#: src/diff3.c:493
+#: src/diff3.c:491
 msgid "-a, --text                  treat all files as text"
 msgstr "-a, --text                  вважати всі файли текстовими"
 
-#: src/diff3.c:494
+#: src/diff3.c:492
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr     вилучити з виведених даних всі завершальні "
 "символи нового рядка"
 
-#: src/diff3.c:495
+#: src/diff3.c:493
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
 msgstr ""
 "-T  --initial-tab           вирівнювати табуляцію додаючи на початок символ "
 "табуляції"
 
-#: src/diff3.c:496
+#: src/diff3.c:494
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
 msgstr ""
 "    --diff-program=ПРОГРАМА використовувати для порівняння вказану ПРОГРАМУ"
 
-#: src/diff3.c:497
+#: src/diff3.c:495
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
@@ -1268,27 +1269,27 @@ msgstr ""
 "-L, --label=МІТКА           використовувати МІТКУ замість назви файла\n"
 "                                (можна використовувати не більше трьох разів)"
 
-#: src/diff3.c:500
+#: src/diff3.c:498
 msgid "    --help                  display this help and exit"
 msgstr ""
 "    --help                  показати це довідкове повідомлення і завершити "
 "роботу"
 
-#: src/diff3.c:501
+#: src/diff3.c:499
 msgid "-v, --version               output version information and exit"
 msgstr ""
 "-v, --version               показати дані щодо версії і завершити роботу"
 
-#: src/diff3.c:510
+#: src/diff3.c:508
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
 msgstr "Використання: %s [КЛЮЧ]... МІЙ-ФАЙЛ СТАРИЙ-ФАЙЛ ВАШ-ФАЙЛ\n"
 
-#: src/diff3.c:512
+#: src/diff3.c:510
 msgid "Compare three files line by line."
 msgstr "Порівняння трьох файлів рядками."
 
-#: src/diff3.c:522
+#: src/diff3.c:520
 msgid ""
 "\n"
 "The default output format is a somewhat human-readable representation of\n"
@@ -1312,57 +1313,57 @@ msgstr ""
 "diff3 з виводом їх до об’єднаного файла. Для нетипових вхідних даних\n"
 "такий варіант працює краще за варіант з використанням ed.\n"
 
-#: src/diff3.c:534
+#: src/diff3.c:532
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
 msgstr ""
 "Код завершення дорівнює 0 при нормальному завершенні, 1 при конфліктах\n"
 " та 2 при несправностях."
 
-#: src/diff3.c:727
+#: src/diff3.c:725
 msgid "internal error: screwup in format of diff blocks"
 msgstr "внутрішня помилка: пошкоджений формат diff-блоків"
 
-#: src/diff3.c:1022
+#: src/diff3.c:1015
 #, c-format
 msgid "%s: diff failed: "
 msgstr "%s: помилка при пошуку відмінностей: "
 
-#: src/diff3.c:1044
+#: src/diff3.c:1037
 msgid "internal error: invalid diff type in process_diff"
 msgstr ""
 "внутрішня помилка: неправильний тип diff-блоку у функції `process_diff'"
 
-#: src/diff3.c:1069
+#: src/diff3.c:1060
 msgid "invalid diff format; invalid change separator"
 msgstr "неправильний формат diff-файла; неправильний розділювач змін"
 
-#: src/diff3.c:1305
+#: src/diff3.c:1294
 msgid "invalid diff format; incomplete last line"
 msgstr "неправильний формат diff-файла; неповний останній рядок"
 
-#: src/diff3.c:1329 src/sdiff.c:276 src/util.c:969
+#: src/diff3.c:1318 src/sdiff.c:274 src/util.c:1069
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "не вдається запустити допоміжну програму «%s»"
 
-#: src/diff3.c:1354
+#: src/diff3.c:1343
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "неправильний diff-формат; неправильні перші символи рядка"
 
-#: src/diff3.c:1427
+#: src/diff3.c:1416
 msgid "internal error: invalid diff type passed to output"
 msgstr "внутрішня помилка: на вхід подано неправильний тип diff-файла"
 
-#: src/diff3.c:1700 src/diff3.c:1757
+#: src/diff3.c:1685 src/diff3.c:1742
 msgid "input file shrank"
 msgstr "вхідний файл зменшився"
 
-#: src/dir.c:156
+#: src/dir.c:154
 #, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "неможливо порівняти назви файлів «%s» та «%s»"
 
-#: src/dir.c:225
+#: src/dir.c:223
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: зациклення рекурсивного проходу каталогів"
@@ -1372,131 +1373,131 @@ msgstr "%s: зациклення рекурсивного проходу кат
 msgid "Thomas Lord"
 msgstr "Thomas Lord"
 
-#: src/sdiff.c:174
+#: src/sdiff.c:173
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
 msgstr ""
 "-o, --output=ФАЙЛ            інтерактивний режим із записом виводу до ФАЙЛА"
 
-#: src/sdiff.c:176
+#: src/sdiff.c:175
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
 msgstr "-i  --ignore-case            ігнорувати регістр літер"
 
-#: src/sdiff.c:177
+#: src/sdiff.c:176
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
 msgstr ""
 "-E  --ignore-tab-expansion   ігнорувати зміни, викликані заміною табуляції "
 "пробілами"
 
-#: src/sdiff.c:178
+#: src/sdiff.c:177
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
 msgstr "-Z, --ignore-trailing-space  ігнорувати пробіли наприкінці рядка"
 
-#: src/sdiff.c:179
+#: src/sdiff.c:178
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
 msgstr "-b  --ignore-space-change    ігнорувати зміни у кількості пробілів"
 
-#: src/sdiff.c:180
+#: src/sdiff.c:179
 msgid "-W, --ignore-all-space       ignore all white space"
 msgstr "-W  --ignore-all-space       ігнорувати усі пробіли"
 
-#: src/sdiff.c:181
+#: src/sdiff.c:180
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
 msgstr ""
 "-B  --ignore-blank-lines     ігнорувати зміни кількості порожніх рядків"
 
-#: src/sdiff.c:182
+#: src/sdiff.c:181
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=RE  ігнорувати зміни, які відповідають "
 "формальному виразу RE"
 
-#: src/sdiff.c:183
+#: src/sdiff.c:182
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr      вилучити з виведених даних всі завершальні "
 "символи нового рядка"
 
-#: src/sdiff.c:184
+#: src/sdiff.c:183
 msgid "-a, --text                   treat all files as text"
 msgstr "-a, --text                   вважати всі файли текстовими"
 
-#: src/sdiff.c:186
+#: src/sdiff.c:185
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
 msgstr ""
 "-w, --width=ЧИСЛО            виводити текст не більше ніж у ЧИСЛО (типово "
 "130) позицій у рядок"
 
-#: src/sdiff.c:187
+#: src/sdiff.c:186
 msgid ""
 "-l, --left-column            output only the left column of common lines"
 msgstr ""
 "-l, -left-column             виводити спільні рядки лише у ліву колонку"
 
-#: src/sdiff.c:188
+#: src/sdiff.c:187
 msgid "-s, --suppress-common-lines  do not output common lines"
 msgstr "-s  --suppress-common-lines  не виводити спільні рядки"
 
-#: src/sdiff.c:190
+#: src/sdiff.c:189
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
 msgstr ""
 "-t  --expand-tabs             замінювати символи табуляції пробілами у виводі"
 
-#: src/sdiff.c:191
+#: src/sdiff.c:190
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=ЧИСЛО          табуляція кожні ЧИСЛО позицій виведення (типово "
 "8)"
 
-#: src/sdiff.c:193
+#: src/sdiff.c:192
 msgid "-d, --minimal                try hard to find a smaller set of changes"
 msgstr "-d  --minimal                намагатись знайти найменший набір змін"
 
-#: src/sdiff.c:194
+#: src/sdiff.c:193
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
 msgstr ""
 "-H, -speed-large-files       вважати файли великими з багатьма розкиданими\n"
 "                               дрібними змінами."
 
-#: src/sdiff.c:195
+#: src/sdiff.c:194
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
 msgstr ""
 "    --diff-program=ПРОГРАМА  використовувати для порівняння вказану ПРОГРАМУ"
 
-#: src/sdiff.c:197
+#: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
 msgstr ""
 "    --help                   показати це довідкове повідомлення і завершити "
 "роботу"
 
-#: src/sdiff.c:198
+#: src/sdiff.c:197
 msgid "-v, --version                output version information and exit"
 msgstr ""
 "-v, --version                показати дані щодо версії і завершити роботу"
 
-#: src/sdiff.c:207
+#: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
 msgstr "Використання: %s [КЛЮЧ]... ФАЙЛ1 ФАЙЛ2\n"
 
-#: src/sdiff.c:209
+#: src/sdiff.c:208
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
 msgstr "Паралельне об’єднання файлів ФАЙЛ1 і ФАЙЛ2."
 
-#: src/sdiff.c:330
+#: src/sdiff.c:328
 msgid "cannot interactively merge standard input"
 msgstr "не можна інтерактивно об'єднувати стандартний потік вводу"
 
-#: src/sdiff.c:597
+#: src/sdiff.c:594
 msgid "both files to be compared are directories"
 msgstr "обидва файли, що порівнюються є каталогами"
 
-#: src/sdiff.c:820
+#: src/sdiff.c:817
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
 "eb:\tEdit then use both versions.\n"
@@ -1520,12 +1521,12 @@ msgstr ""
 "v:\tВключати спільні рядки, виводячи повідомлення.\n"
 "q:\tВийти.\n"
 
-#: src/util.c:662
+#: src/util.c:755
 #, c-format
 msgid "unrecognized prefix: %s"
 msgstr "невідомий префікс: %s"
 
-#: src/util.c:692
+#: src/util.c:785
 #, c-format
 msgid "unparsable value for --palette"
 msgstr "непридатне до обробки значення для --palette"
index e38e45b..4ab15f7 100644 (file)
--- a/po/vi.po
+++ b/po/vi.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: diffutils 3.6.17\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2021-08-01 18:56-0700\n"
+"POT-Creation-Date: 2023-05-21 01:51-0700\n"
 "PO-Revision-Date: 2018-12-28 13:56+0700\n"
 "Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
 "Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
@@ -22,29 +22,29 @@ msgstr ""
 "X-Generator: Gtranslator 2.91.7\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 
-#: lib/argmatch.c:132
+#: lib/argmatch.c:145
 #, c-format
 msgid "invalid argument %s for %s"
 msgstr "tham số %s cho %s không hợp lệ"
 
-#: lib/argmatch.c:133
+#: lib/argmatch.c:146
 #, c-format
 msgid "ambiguous argument %s for %s"
 msgstr "tham số %s không rõ ràng với %s"
 
-#: lib/argmatch.c:152 lib/argmatch.h:223
+#: lib/argmatch.c:165 lib/argmatch.h:242
 msgid "Valid arguments are:"
 msgstr "Các tham số hợp lệ là:"
 
-#: lib/c-stack.c:187
+#: lib/c-stack.c:186
 msgid "program error"
 msgstr "lỗi chương trình"
 
-#: lib/c-stack.c:188
+#: lib/c-stack.c:187
 msgid "stack overflow"
 msgstr "stack bị tràn"
 
-#: lib/error.c:195
+#: lib/error.c:193
 msgid "Unknown system error"
 msgstr "Không biết lỗi hệ thống"
 
@@ -200,83 +200,83 @@ msgstr "%s: tùy chọn yêu cầu một đối số -- “%c”\n"
 #. If you don't know what to put here, please see
 #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:355
+#: lib/quotearg.c:354
 msgid "`"
 msgstr "“"
 
-#: lib/quotearg.c:356
+#: lib/quotearg.c:355
 msgid "'"
 msgstr "”"
 
-#: lib/regcomp.c:135
+#: lib/regcomp.c:122
 msgid "Success"
 msgstr "Thành công"
 
-#: lib/regcomp.c:138
+#: lib/regcomp.c:125
 msgid "No match"
 msgstr "Không có gì khớp"
 
-#: lib/regcomp.c:141
+#: lib/regcomp.c:128
 msgid "Invalid regular expression"
 msgstr "Biểu thức chính quy không hợp lệ"
 
-#: lib/regcomp.c:144
+#: lib/regcomp.c:131
 msgid "Invalid collation character"
 msgstr "Ký tự đối chiếu không hợp lệ"
 
-#: lib/regcomp.c:147
+#: lib/regcomp.c:134
 msgid "Invalid character class name"
 msgstr "Tên lớp ký tự không hợp lệ"
 
-#: lib/regcomp.c:150
+#: lib/regcomp.c:137
 msgid "Trailing backslash"
 msgstr "Có gạch ngược theo sau"
 
-#: lib/regcomp.c:153
+#: lib/regcomp.c:140
 msgid "Invalid back reference"
 msgstr "Tham chiếu ngược trở lại không hợp lệ"
 
-#: lib/regcomp.c:156
+#: lib/regcomp.c:143
 msgid "Unmatched [, [^, [:, [., or [="
 msgstr "Chưa khớp cặp ký tự [, [^, [:, [., hay [="
 
-#: lib/regcomp.c:159
+#: lib/regcomp.c:146
 msgid "Unmatched ( or \\("
 msgstr "Chưa khớp ( hay \\("
 
-#: lib/regcomp.c:162
+#: lib/regcomp.c:149
 msgid "Unmatched \\{"
 msgstr "Chưa khớp \\{"
 
-#: lib/regcomp.c:165
+#: lib/regcomp.c:152
 msgid "Invalid content of \\{\\}"
 msgstr "Nội dung của \\{\\} không hợp lệ"
 
-#: lib/regcomp.c:168
+#: lib/regcomp.c:155
 msgid "Invalid range end"
 msgstr "Kết thúc vùng không hợp lệ"
 
-#: lib/regcomp.c:171
+#: lib/regcomp.c:158
 msgid "Memory exhausted"
 msgstr "Hết bộ nhớ"
 
-#: lib/regcomp.c:174
+#: lib/regcomp.c:161
 msgid "Invalid preceding regular expression"
 msgstr "Biểu thức chính quy đi trước không hợp lệ"
 
-#: lib/regcomp.c:177
+#: lib/regcomp.c:164
 msgid "Premature end of regular expression"
 msgstr "Kết thức quá sớm của biểu thức chính quy"
 
-#: lib/regcomp.c:180
+#: lib/regcomp.c:167
 msgid "Regular expression too big"
 msgstr "Biểu thức chính quy quá lớn"
 
-#: lib/regcomp.c:183
+#: lib/regcomp.c:170
 msgid "Unmatched ) or \\)"
 msgstr "Chưa khớp ) hay \\)"
 
-#: lib/regcomp.c:676
+#: lib/regcomp.c:650
 msgid "No previous regular expression"
 msgstr "Không có biểu thức chính quy đi trước"
 
@@ -478,17 +478,17 @@ msgid "General help using GNU software: <%s>\n"
 msgstr ""
 "Trợ giúp chung về cách sử dụng phần mềm GNU: <https://www.gnu.org/gethelp/>\n"
 
-#: src/analyze.c:454 src/diff.c:1406
+#: src/analyze.c:455 src/diff.c:1478
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Hai tập tin %s và %s là khác nhau.\n"
 
-#: src/analyze.c:455
+#: src/analyze.c:456
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "Hai tập tin nhị phân %s và %s khác nhau\n"
 
-#: src/analyze.c:706 src/diff3.c:1470 src/util.c:1254
+#: src/analyze.c:707 src/diff3.c:1457 src/util.c:1354
 msgid "No newline at end of file"
 msgstr "Không có ký tự dòng mới tại kêt thức tập tin."
 
@@ -503,41 +503,42 @@ msgstr "Torbjorn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:120 src/diff.c:879 src/diff3.c:467 src/sdiff.c:160
+#: src/cmp.c:124 src/diff.c:939 src/diff3.c:465 src/sdiff.c:159
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Hãy chạy lệnh “%s --help” để xem thông tin thêm."
 
-#: src/cmp.c:138
+#: src/cmp.c:142
 #, c-format
 msgid "invalid --ignore-initial value '%s'"
 msgstr ""
 "giá trị của tùy chọn --ignore-initial (bỏ qua giá trị đầu) “%s” không hợp lệ"
 
-#: src/cmp.c:148
+#: src/cmp.c:152
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr "hai tùy chọn -l và -s không tương thích với nhau"
 
-#: src/cmp.c:156 src/diff.c:887 src/diff3.c:474 src/sdiff.c:168 src/sdiff.c:316
-#: src/sdiff.c:323 src/sdiff.c:876 src/util.c:852 src/util.c:952 src/util.c:959
+#: src/cmp.c:160 src/diff.c:947 src/diff3.c:472 src/sdiff.c:167 src/sdiff.c:314
+#: src/sdiff.c:321 src/sdiff.c:873 src/util.c:952 src/util.c:1052
+#: src/util.c:1059
 msgid "write failed"
 msgstr "không ghi được"
 
-#: src/cmp.c:158 src/diff.c:889 src/diff.c:1471 src/diff3.c:476 src/sdiff.c:170
+#: src/cmp.c:162 src/diff.c:949 src/diff.c:1543 src/diff3.c:474 src/sdiff.c:169
 msgid "standard output"
 msgstr "thiết bị xuất chuẩn"
 
-#: src/cmp.c:162
+#: src/cmp.c:166
 msgid "-b, --print-bytes          print differing bytes"
 msgstr "-b, --print-bytes          in ra những byte khác nhau."
 
-#: src/cmp.c:163
+#: src/cmp.c:167
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
 msgstr ""
 "-i, --ignore-initial=SỐ           bỏ qua SỐ byte khởi đầu của dữ liệu nhập"
 
-#: src/cmp.c:164
+#: src/cmp.c:168
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
@@ -545,38 +546,38 @@ msgstr ""
 "-i, --ignore-initial=SỐ1:SỐ2      bỏ qua SỐ1 byte đầu của TẬP-TIN1 và\n"
 "                                      SỐ2 byte đầu của TẬP-TIN2."
 
-#: src/cmp.c:166
+#: src/cmp.c:170
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
 msgstr ""
 "-l, --verbose              xuất số byte và giá trị của tất cả byte khác nhau"
 
-#: src/cmp.c:167
+#: src/cmp.c:171
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
 msgstr "-n, --bytes=SỐ             so sánh tối đa SỐ byte"
 
-#: src/cmp.c:168
+#: src/cmp.c:172
 msgid "-s, --quiet, --silent      suppress all normal output"
 msgstr "-s, --quiet, --silent      loại bỏ tất cả các kết xuất thông thường"
 
-#: src/cmp.c:169
+#: src/cmp.c:173
 msgid "    --help                 display this help and exit"
 msgstr "    --help                 hiển thị trợ giúp này rồi thoát"
 
-#: src/cmp.c:170
+#: src/cmp.c:174
 msgid "-v, --version              output version information and exit"
 msgstr "-v, --version              đưa ra thông tin phiên bản rồi thoát"
 
-#: src/cmp.c:179
+#: src/cmp.c:183
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
 msgstr "Cách dùng: %s [TÙY_CHỌN]… TẬP_TIN1 [TẬP_TIN2 [SKIP1 [SKIP2]]]\n"
 
-#: src/cmp.c:181
+#: src/cmp.c:185
 msgid "Compare two files byte by byte."
 msgstr "So sánh mỗi byte trong hai tập tin."
 
-#: src/cmp.c:183
+#: src/cmp.c:187
 msgid ""
 "The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
 "at the beginning of each file (zero by default)."
@@ -584,12 +585,12 @@ msgstr ""
 "Tùy chọn SKIP1 và SKIP2 chỉ định số byte sẽ được bỏ qua\n"
 "tại vị trí bắt đầu của mỗi tập tin (số không là mặc định)."
 
-#: src/cmp.c:186 src/diff.c:999 src/diff3.c:514 src/sdiff.c:211
+#: src/cmp.c:190 src/diff.c:1059 src/diff3.c:512 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr "Tùy chọn dài yêu cầu đối số thì tùy chọn ngắn cũng vậy.\n"
 
-#: src/cmp.c:192
+#: src/cmp.c:196
 msgid ""
 "SKIP values may be followed by the following multiplicative suffixes:\n"
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
@@ -601,201 +602,201 @@ msgstr ""
 "GB x 1,000,000,000\tG x 1,073,741,824\n"
 "tương tự với T, P, E, Z, Y v.v."
 
-#: src/cmp.c:195
+#: src/cmp.c:199
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "Nếu TẬP-TIN là “-”, hay bỏ trống, thì đọc từ đầu vào tiêu chuẩn."
 
-#: src/cmp.c:196 src/diff.c:987 src/sdiff.c:221
+#: src/cmp.c:200 src/diff.c:1047 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr ""
 "Trạng thái thoát là số 0 nếu hai đầu vào bằng nhau, số 1 nếu là khác nhau và "
 "số 2 nếu gặp lỗi."
 
-#: src/cmp.c:243
+#: src/cmp.c:247
 #, c-format
 msgid "invalid --bytes value '%s'"
 msgstr "giá trị cho tùy chọn --bytes “%s” không hợp lệ"
 
-#: src/cmp.c:269 src/diff.c:797 src/diff3.c:361 src/sdiff.c:567
+#: src/cmp.c:273 src/diff.c:857 src/diff3.c:368 src/sdiff.c:564
 #, c-format
 msgid "missing operand after '%s'"
 msgstr "thiếu toán hạng sau “%s”"
 
-#: src/cmp.c:281 src/diff.c:799 src/diff3.c:363 src/sdiff.c:569
+#: src/cmp.c:285 src/diff.c:859 src/diff3.c:370 src/sdiff.c:566
 #, c-format
 msgid "extra operand '%s'"
 msgstr "toán hạng bổ xung “%s”"
 
-#: src/cmp.c:507
+#: src/cmp.c:521
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s có khác nhau: byte %s, dòng %s\n"
 
-#: src/cmp.c:523
+#: src/cmp.c:537
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
 msgstr "%s %s có khác nhau: byte %s, dòng %s là %3o %s %3o %s\n"
 
-#: src/cmp.c:580
+#: src/cmp.c:594
 #, c-format
 msgid "cmp: EOF on %s which is empty\n"
 msgstr "cmp: gặp kết thức tập tin trên %s cái mà trống rỗng\n"
 
-#: src/cmp.c:594
+#: src/cmp.c:608
 #, c-format
 msgid "cmp: EOF on %s after byte %s, line %s\n"
 msgstr "cmp: gặp kết thức tập tin trên %s sau byte %s, dòng %s\n"
 
-#: src/cmp.c:595
+#: src/cmp.c:609
 #, c-format
 msgid "cmp: EOF on %s after byte %s, in line %s\n"
 msgstr "cmp: gặp kết thức tập tin trên %s sau byte %s, ở dòng %s\n"
 
-#: src/cmp.c:601
+#: src/cmp.c:615
 #, c-format
 msgid "cmp: EOF on %s after byte %s\n"
 msgstr "cmp: gặp kết thức tập tin trên %s sau byte %s\n"
 
 # Tên họ
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:51
+#: src/diff.c:50
 msgid "Paul Eggert"
 msgstr "Paul Eggert"
 
 # Tên họ
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:52
+#: src/diff.c:51
 msgid "Mike Haertel"
 msgstr "Mike Haertel"
 
 # Tên họ
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:53
+#: src/diff.c:52
 msgid "David Hayes"
 msgstr "David Hayes"
 
 # Tên họ
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:54
+#: src/diff.c:53
 msgid "Richard Stallman"
 msgstr "Richard Stallman"
 
 # Tên họ
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:55
+#: src/diff.c:54
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:355
+#: src/diff.c:365
 #, c-format
 msgid "invalid context length '%s'"
 msgstr "độ dài ngữ cảnh không hợp lệ “%s”"
 
-#: src/diff.c:438
+#: src/diff.c:487
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "máy chủ này không hỗ trợ dàn trang"
 
-#: src/diff.c:453 src/diff3.c:341
+#: src/diff.c:502 src/diff3.c:348
 #, c-format
 msgid "too many file label options"
 msgstr "quá nhiều tùy chọn nhãn tập tin"
 
-#: src/diff.c:530
+#: src/diff.c:579
 #, c-format
 msgid "invalid width '%s'"
 msgstr "độ rộng không hợp lệ “%s”"
 
-#: src/diff.c:534
+#: src/diff.c:583
 msgid "conflicting width options"
 msgstr "nhiều tùy chọn độ rộng xung đột với nhau"
 
-#: src/diff.c:559
+#: src/diff.c:608
 #, c-format
 msgid "invalid horizon length '%s'"
 msgstr "độ dài chiều đứng không hợp lệ “%s”"
 
-#: src/diff.c:615
+#: src/diff.c:664
 #, c-format
 msgid "invalid tabsize '%s'"
 msgstr "cỡ ký tự tab không hợp lệ “%s”"
 
-#: src/diff.c:619
+#: src/diff.c:668
 msgid "conflicting tabsize options"
 msgstr "nhiều tùy chọn cỡ ký tự tab xung đột với nhau"
 
-#: src/diff.c:774
+#: src/diff.c:834
 msgid "--from-file and --to-file both specified"
 msgstr ""
 "ghi rõ cả hai tùy chọn --from-file (từ tập tin) và --to-file (vào tập tin) "
 "đều"
 
-#: src/diff.c:893
+#: src/diff.c:953
 msgid "    --normal                  output a normal diff (the default)"
 msgstr ""
 "    --normal                  xuất ra định dạng diff thông thường (mặc định)"
 
-#: src/diff.c:894
+#: src/diff.c:954
 msgid "-q, --brief                   report only when files differ"
 msgstr ""
 "-q, --brief                   chỉ báo cáo nếu những tập tin khác với nhau"
 
-#: src/diff.c:895
+#: src/diff.c:955
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr "-s, --report-identical-files  báo cáo khi có hai tập tin bằng nhau"
 
-#: src/diff.c:896
+#: src/diff.c:956
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
 "-c, -C SỐ, --context[=SỐ]     xuất ra SỐ (mặc định là 3) dòng của ngữ cảnh"
 
-#: src/diff.c:897
+#: src/diff.c:957
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
 "-u, -U SỐ, --unified[=SỐ]     xuất ra SỐ (mặc định là 3) dòng của ngữ cảnh\n"
 "                                hợp nhất"
 
-#: src/diff.c:898
+#: src/diff.c:958
 msgid "-e, --ed                      output an ed script"
 msgstr "-e, --ed                      xuất tập lệnh loại ed"
 
-#: src/diff.c:899
+#: src/diff.c:959
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr ""
 "-n, --rcs                     xuất dữ liệu khác biệt sử dụng định dạng RCS"
 
-#: src/diff.c:900
+#: src/diff.c:960
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side            xuất ra theo định dạng hai cột"
 
-#: src/diff.c:901
+#: src/diff.c:961
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
 "-W, --width=SỐ                xuất tối đa SỐ cột đã in ra (mặc định là 130)"
 
-#: src/diff.c:902
+#: src/diff.c:962
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr ""
 "    --left-column             kết xuất chỉ cột bên trái của các dòng chung"
 
-#: src/diff.c:903
+#: src/diff.c:963
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "    --suppress-common-lines   không kết xuất các dòng chung nhau"
 
-#: src/diff.c:905
+#: src/diff.c:965
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr ""
 "-p, --show-c-function         hiển thị cái mà từng hàm C thay đổi ở trong đó"
 
-#: src/diff.c:906
+#: src/diff.c:966
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr "-F, --show-function-line=RE   hiển thị những dòng gần nhất khớp với RE"
 
-#: src/diff.c:907
+#: src/diff.c:967
 msgid ""
 "    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
@@ -804,27 +805,27 @@ msgstr ""
 "gian\n"
 "                                (có thể được lặp lại)"
 
-#: src/diff.c:910
+#: src/diff.c:970
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr ""
 "-t, --expand-tabs             mở rộng ký tự tab ra ký tự khoảng cách khi "
 "kết\n"
 "                                xuất"
 
-#: src/diff.c:911
+#: src/diff.c:971
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr ""
 "-T, --initial-tab             sắp xếp tất cả ký tự tab bằng cách thêm\n"
 "                                một tab vào trước"
 
-#: src/diff.c:912
+#: src/diff.c:972
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=SỐ              định khoảng cách tab sau mỗi SỐ cột đã in ra\n"
 "                                (mặc định là 8)"
 
-#: src/diff.c:913
+#: src/diff.c:973
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
@@ -832,59 +833,59 @@ msgstr ""
 "kết\n"
 "                                xuất trống"
 
-#: src/diff.c:914
+#: src/diff.c:974
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr ""
 "-l, --paginate                chuyển dữ liệu kết xuất qua “pr” để dàn trang "
 "nó"
 
-#: src/diff.c:916
+#: src/diff.c:976
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr ""
 "-r, --recursive                 so sánh đệ qui mọi thư mục con đã tìm thấy"
 
-#: src/diff.c:917
+#: src/diff.c:977
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr "    --no-dereference            không theo liên kết mềm"
 
-#: src/diff.c:918
+#: src/diff.c:978
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr "-N  --new-file                  coi tập tin vắng mặt là trống"
 
-#: src/diff.c:919
+#: src/diff.c:979
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr "    --unidirectional-new-file   coi tập tin đầu mà vắng mặt là trống"
 
-#: src/diff.c:920
+#: src/diff.c:980
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ""
 "    --ignore-file-name-case     bỏ qua chữ HOA/thường khi so sánh\n"
 "                                  các tên tập tin"
 
-#: src/diff.c:921
+#: src/diff.c:981
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
 "    --no-ignore-file-name-case  phân biệt HOA/thường khi so sánh tên tập tin"
 
-#: src/diff.c:922
+#: src/diff.c:982
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr "-x, --exclude=MẪU               loại trừ các tập tin khớp với MẪU ấy"
 
-#: src/diff.c:923
+#: src/diff.c:983
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
 "-X, --exclude-from=TẬP_TIN      loại trừ mọi tập tin khớp với bất cứ mẫu nào "
 "trong TẬP TIN ấy"
 
-#: src/diff.c:924
+#: src/diff.c:984
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
 "-S, --starting-file=TẬP_TIN     bắt đầu với TẬP TIN khi so sánh nhiều thư mục"
 
-#: src/diff.c:925
+#: src/diff.c:985
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
@@ -892,7 +893,7 @@ msgstr ""
 "    --from-file=TẬP_TIN1        so TẬP TIN 1 với tất cả toán hạng;\n"
 "                                  TẬP TIN 1 có thể là thư mục"
 
-#: src/diff.c:927
+#: src/diff.c:987
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
@@ -900,76 +901,76 @@ msgstr ""
 "    --to-file=TẬP_TIN2          So tất cả toán hạng với TẬP TIN 2;\n"
 "                                  TẬP TIN 2 có thể là thư mục"
 
-#: src/diff.c:930
+#: src/diff.c:990
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr ""
 "-i, --ignore-case               không phân biệt chữ HOA/thường trong nội\n"
 "                                  dung tập tin"
 
-#: src/diff.c:931
+#: src/diff.c:991
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr "-E, --ignore-tab-expansion      bỏ qua mọi thay đổi do mở rộng tab"
 
-#: src/diff.c:932
+#: src/diff.c:992
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr "-Z, --ignore-trailing-space     bỏ qua tất cả dấu cách ở cuối dòng"
 
-#: src/diff.c:933
+#: src/diff.c:993
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr ""
 "-b, --ignore-space-change       bỏ qua thay đổi gây ra bởi nhóm dấu cách"
 
-#: src/diff.c:934
+#: src/diff.c:994
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w, --ignore-all-space          bỏ qua tất cả dấu cách"
 
-#: src/diff.c:935
+#: src/diff.c:995
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr "-B, --ignore-blank-lines        bỏ qua thay đổi do dòng trống"
 
-#: src/diff.c:936
+#: src/diff.c:996
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=RE  bỏ qua thay đổi do mà mọi dòng khớp với RE"
 
-#: src/diff.c:938
+#: src/diff.c:998
 msgid "-a, --text                      treat all files as text"
 msgstr "-a, --text                      xử lý mọi tập tin là văn bản thường"
 
-#: src/diff.c:939
+#: src/diff.c:999
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr         cắt bỏ ký tự về đầu dòng (cr) theo sau khi gõ"
 
-#: src/diff.c:941
+#: src/diff.c:1001
 msgid "    --binary                    read and write data in binary mode"
 msgstr ""
 "    --binary                    đọc và ghi dữ liệu trong chế độ nhị phân"
 
-#: src/diff.c:944
+#: src/diff.c:1004
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
 "-D, --ifdef=TÊN                 kết xuất tập tin đã trộn với khác biệt "
 "“#ifdef TÊN”"
 
-#: src/diff.c:945
+#: src/diff.c:1005
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr "    --GTYPE-group-format=GFMT   định dạng nhập GTYPE với GFMT "
 
-#: src/diff.c:946
+#: src/diff.c:1006
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr ""
 "    --line-format=LFMT          định dạng tất cảc các dòng vào với LFMT"
 
-#: src/diff.c:947
+#: src/diff.c:1007
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr "    --LTYPE-line-format=LFMT    định dạng nhập LTYPE với LFMT"
 
-#: src/diff.c:948
+#: src/diff.c:1008
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
@@ -977,13 +978,13 @@ msgstr ""
 "  Nhưng tùy chọn đó điểu khiển kết xuất ra định dạng diff\n"
 "    đẹp hơn, khái quát hóa -D/--ifdef."
 
-#: src/diff.c:950
+#: src/diff.c:1010
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
 "  LTYPE là “cũ”, “mới”, hoặc “chưa thay đổi”. GTYPE là LTYPE hoặc “thay đổi "
 "rồi”."
 
-#: src/diff.c:951
+#: src/diff.c:1011
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -1010,7 +1011,7 @@ msgstr ""
 "        E  F-1\n"
 "        M  L+1    %(A=B?T:E)  nếu A bằng B thì T nếu không thì E"
 
-#: src/diff.c:963
+#: src/diff.c:1023
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -1022,7 +1023,7 @@ msgstr ""
 "    %l  nội dung của dòng, loại trừ ký tự dòng mới nào đi theo\n"
 "    %[-][Đ_RỘNG][.[PREC]]{doxX}n đặc tả dạng printf cho số dòng đầu vào"
 
-#: src/diff.c:967
+#: src/diff.c:1027
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1036,21 +1037,21 @@ msgstr ""
 "    %c'\\OOO'  ký tự có mã bát phân OOO\n"
 "    C      ký tự C (các ký tự khác đại diện cho chính chúng)"
 
-#: src/diff.c:973
+#: src/diff.c:1033
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr "-d, --minimal            cố tìm một thay đổi nhỏ"
 
-#: src/diff.c:974
+#: src/diff.c:1034
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr "    --horizon-lines=SỐ   giữ SỐ dòng của tiền tố và hậu tố chung"
 
-#: src/diff.c:975
+#: src/diff.c:1035
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
 "    --speed-large-files  giả định tập tin lớn và nhiều thay đổi nhỏ rải rác"
 
-#: src/diff.c:976
+#: src/diff.c:1036
 #, fuzzy
 msgid ""
 "    --color[=WHEN]       color output; WHEN is 'never', 'always', or "
@@ -1060,7 +1061,7 @@ msgstr ""
 "    --color[=WHEN]       tô màu kết xuất; WHEN có thể là 'never', 'always',\n"
 "                           hay 'auto' (mặc định)"
 
-#: src/diff.c:978
+#: src/diff.c:1038
 msgid ""
 "    --palette=PALETTE    the colors to use when --color is active; PALETTE "
 "is\n"
@@ -1071,115 +1072,115 @@ msgstr ""
 "                           danh sách terminfo capabilities ngăn cách bằng "
 "dấu phẩy"
 
-#: src/diff.c:981
+#: src/diff.c:1041
 msgid "    --help               display this help and exit"
 msgstr "    --help               hiển thị trợ giúp này rồi thoát"
 
-#: src/diff.c:982
+#: src/diff.c:1042
 msgid "-v, --version            output version information and exit"
 msgstr "-v, --version            đưa ra thông tin phiên bản rồi thoát"
 
-#: src/diff.c:984
+#: src/diff.c:1044
 msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
 "CÁC TẬP TIN là “TẬP_TIN1 TẬP_TIN2” hoặc “THƯ_MỤC1 THƯ_MỤC2” hoặc “THƯ_MỤC "
 "TẬP_TIN” hay “TẬP_TIN THƯ_MỤC”."
 
-#: src/diff.c:985
+#: src/diff.c:1045
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr ""
 "Nếu đưa ra tùy chọn --from-file (từ tập tin) hay --to-file (vào tập tin) thì "
 "không có giới hạn TẬP TIN."
 
-#: src/diff.c:986 src/diff3.c:533 src/sdiff.c:220
+#: src/diff.c:1046 src/diff3.c:531 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
 msgstr "Nếu TẬP-TIN là “-”, thì đọc từ đầu vào tiêu chuẩn."
 
-#: src/diff.c:996
+#: src/diff.c:1056
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Cách dùng: %s [TÙY_CHỌN]… CÁC_TẬP_TIN\n"
 
-#: src/diff.c:997
+#: src/diff.c:1057
 msgid "Compare FILES line by line."
 msgstr "So sánh các TẬP-TIN theo từng dòng."
 
-#: src/diff.c:1034
+#: src/diff.c:1094
 #, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "tùy chọn %s xung đột, giá trị “%s”"
 
-#: src/diff.c:1047
+#: src/diff.c:1107
 #, c-format
 msgid "conflicting output style options"
 msgstr "nhiều tùy chọn điều khiển định dạng xuất xung đột với nhau"
 
-#: src/diff.c:1063
+#: src/diff.c:1123
 #, c-format
 msgid "invalid color '%s'"
 msgstr "màu không hợp lệ “%s”"
 
-#: src/diff.c:1119 src/diff.c:1329
+#: src/diff.c:1197 src/diff.c:1401
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Chỉ trong %s: %s\n"
 
-#: src/diff.c:1253
+#: src/diff.c:1325
 msgid "cannot compare '-' to a directory"
 msgstr "không thể so sánh “-” với một thư mục"
 
-#: src/diff.c:1288
+#: src/diff.c:1360
 msgid "-D option not supported with directories"
 msgstr "không hỗ trợ tùy chọn -D với thư mục"
 
-#: src/diff.c:1297
+#: src/diff.c:1369
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Thư mục con chung: %s và %s\n"
 
-#: src/diff.c:1339 src/diff.c:1389
+#: src/diff.c:1411 src/diff.c:1461
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr "Tập tin %s là một %s trong khi tập tin %s là một %s.\n"
 
-#: src/diff.c:1375
+#: src/diff.c:1447
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "Hai liên kết mềm %s và %s là khác nhau\n"
 
-#: src/diff.c:1462
+#: src/diff.c:1534
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Cả %s và %s là cùng một tập tin\n"
 
 # Tên họ
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff3.c:43
+#: src/diff3.c:51
 msgid "Randy Smith"
 msgstr "Randy Smith"
 
-#: src/diff3.c:356
+#: src/diff3.c:363
 #, c-format
 msgid "incompatible options"
 msgstr "nhiều tùy chọn không tương thích với nhau"
 
-#: src/diff3.c:396
+#: src/diff3.c:403
 msgid "'-' specified for more than one input file"
 msgstr "đã chỉ ra “-” cho nhiều hơn một tập tin đầu vào"
 
-#: src/diff3.c:447 src/diff3.c:1295 src/diff3.c:1698 src/diff3.c:1753
-#: src/sdiff.c:308 src/sdiff.c:846 src/sdiff.c:857
+#: src/diff3.c:445 src/diff3.c:1284 src/diff3.c:1683 src/diff3.c:1738
+#: src/sdiff.c:306 src/sdiff.c:843 src/sdiff.c:854
 msgid "read failed"
 msgstr "đọc gặp lỗi"
 
-#: src/diff3.c:480
+#: src/diff3.c:478
 msgid "-A, --show-all              output all changes, bracketing conflicts"
 msgstr ""
 "-A, --show-all              kết xuất tất cả thay đổi, đặt mọi xung đột trong "
 "ngoặc đơn"
 
-#: src/diff3.c:482
+#: src/diff3.c:480
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
@@ -1188,12 +1189,12 @@ msgstr ""
 "                                từ TẬP_TIN_CŨ thành TẬP_TIN_CỦA_BẠN vào "
 "TẬP_TIN_TÔI."
 
-#: src/diff3.c:484
+#: src/diff3.c:482
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
 msgstr ""
 "-E, --show-overlap          giống -e, nhưng đặt xung đột trong ngoặc đơn"
 
-#: src/diff3.c:485
+#: src/diff3.c:483
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
@@ -1201,24 +1202,24 @@ msgstr ""
 "-3, --easy-only             giống -e, nhưng chỉ sát nhập những thay đổi "
 "không chồng lấp"
 
-#: src/diff3.c:486
+#: src/diff3.c:484
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
 msgstr ""
 "-x, --overlap-only          giống -e, nhưng chỉ sát nhập những thay đổi bị "
 "chồng lấp"
 
-#: src/diff3.c:487
+#: src/diff3.c:485
 msgid "-X                          like -x, but bracket conflicts"
 msgstr ""
 "-X                          giống -x, nhưng đặt xung đột trong ngoặc đơn"
 
-#: src/diff3.c:488
+#: src/diff3.c:486
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
 msgstr ""
 "-i                          nối thêm hai lệnh “w” và “q” vào văn lệnh ed"
 
-#: src/diff3.c:490
+#: src/diff3.c:488
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
@@ -1228,27 +1229,27 @@ msgstr ""
 "                                tùy chọn -A nếu như không có tùy chọn khác "
 "được chỉ ra"
 
-#: src/diff3.c:493
+#: src/diff3.c:491
 msgid "-a, --text                  treat all files as text"
 msgstr "-a, --text                  coi mọi tập tin là văn bản thường"
 
-#: src/diff3.c:494
+#: src/diff3.c:492
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr     cắt bỏ ký tự về đầu dòng (cr) theo sau khi nhập"
 
-#: src/diff3.c:495
+#: src/diff3.c:493
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
 msgstr ""
 "-T, --initial-tab           tạo khoảng tab cho dòng bằng cách thêm một tab "
 "vào trước"
 
-#: src/diff3.c:496
+#: src/diff3.c:494
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
 msgstr ""
 "    --diff-program=CHƯƠNG_TRÌNH  dùng CHƯƠNG_TRÌNH để so sánh các tập tin"
 
-#: src/diff3.c:497
+#: src/diff3.c:495
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
@@ -1256,24 +1257,24 @@ msgstr ""
 "-L, --label=NHÃN            sử dụng NHÃN thay vì tên tập tin\n"
 "                                (có thể lặp lại đến ba lần)"
 
-#: src/diff3.c:500
+#: src/diff3.c:498
 msgid "    --help                  display this help and exit"
 msgstr "    --help                  hiển thị trợ giúp này rồi thoát"
 
-#: src/diff3.c:501
+#: src/diff3.c:499
 msgid "-v, --version               output version information and exit"
 msgstr "-v, --version               đưa ra thông tin phiên bản rồi thoát"
 
-#: src/diff3.c:510
+#: src/diff3.c:508
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
 msgstr "Cách dùng: %s [TÙY_CHỌN]… TẬP_TIN_TÔI TẬP_TIN_CŨ TẬP_TIN_BẠN\n"
 
-#: src/diff3.c:512
+#: src/diff3.c:510
 msgid "Compare three files line by line."
 msgstr "So sánh ba tập tin từng dòng một."
 
-#: src/diff3.c:522
+#: src/diff3.c:520
 msgid ""
 "\n"
 "The default output format is a somewhat human-readable representation of\n"
@@ -1299,58 +1300,58 @@ msgstr ""
 "và kết xuất là tập tin đã được trộn.  Với kiểu đầu vào ít dùng, đây là cách\n"
 "hợp lý hơn sử dụng ed.\n"
 
-#: src/diff3.c:534
+#: src/diff3.c:532
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
 msgstr ""
 "Trạng thái thoát là số 0 nếu thành công, số 1 nếu có xung đột nào và số 2 "
 "nếu gặp lỗi."
 
-#: src/diff3.c:727
+#: src/diff3.c:725
 msgid "internal error: screwup in format of diff blocks"
 msgstr "gặp lỗi nội bộ: không định dạng khối khác biệt được."
 
-#: src/diff3.c:1022
+#: src/diff3.c:1015
 #, c-format
 msgid "%s: diff failed: "
 msgstr "%s: diff gặp lỗi: "
 
-#: src/diff3.c:1044
+#: src/diff3.c:1037
 msgid "internal error: invalid diff type in process_diff"
 msgstr ""
 "gặp lỗi nội bộ: loại khác biệt không hợp lệ trong process_diff (xử lý khác "
 "biệt)"
 
-#: src/diff3.c:1069
+#: src/diff3.c:1060
 msgid "invalid diff format; invalid change separator"
 msgstr "khuôn dạng diff không hợp lệ; ký tự ngăn cách thay đổi không hợp lê"
 
-#: src/diff3.c:1305
+#: src/diff3.c:1294
 msgid "invalid diff format; incomplete last line"
 msgstr "khuôn dạng diff không hợp lệ; chưa xong dòng cuối cùng"
 
-#: src/diff3.c:1329 src/sdiff.c:276 src/util.c:969
+#: src/diff3.c:1318 src/sdiff.c:274 src/util.c:1069
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "không gọi được chương trình phụ trợ “%s”"
 
-#: src/diff3.c:1354
+#: src/diff3.c:1343
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "khuôn dạng khác biệt không hợp lệ; ký tự đi trước dòng là không đúng"
 
-#: src/diff3.c:1427
+#: src/diff3.c:1416
 msgid "internal error: invalid diff type passed to output"
 msgstr "gặp lỗi nội bộ: kiểu diff không hợp lệ được chuyển qua cho kết xuất"
 
-#: src/diff3.c:1700 src/diff3.c:1757
+#: src/diff3.c:1685 src/diff3.c:1742
 msgid "input file shrank"
 msgstr "tập tin đầu vào co lại"
 
-#: src/dir.c:156
+#: src/dir.c:154
 #, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "không so sánh được hai tập tin “%s” và “%s”"
 
-#: src/dir.c:225
+#: src/dir.c:223
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: vòng lặp thư mục đệ quy"
@@ -1361,125 +1362,125 @@ msgstr "%s: vòng lặp thư mục đệ quy"
 msgid "Thomas Lord"
 msgstr "Thomas Lord"
 
-#: src/sdiff.c:174
+#: src/sdiff.c:173
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
 msgstr ""
 "-o, --output=TẬP_TIN         Thực hiện một cách tương tác, gửi kết xuất ra "
 "TẬP-TIN"
 
-#: src/sdiff.c:176
+#: src/sdiff.c:175
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
 msgstr "-i, --ignore-case            coi chữ HOA và thường là như nhau"
 
-#: src/sdiff.c:177
+#: src/sdiff.c:176
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
 msgstr "-E, --ignore-tab-expansion   bỏ qua mọi thay đổi do mở rộng tab"
 
-#: src/sdiff.c:178
+#: src/sdiff.c:177
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
 msgstr "-Z, --ignore-trailing-space  bỏ qua tất cả dấu cách ở cuối dòng"
 
-#: src/sdiff.c:179
+#: src/sdiff.c:178
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
 msgstr "-b, --ignore-space-change    bỏ qua thay đổi gây ra bởi nhóm dấu cách"
 
-#: src/sdiff.c:180
+#: src/sdiff.c:179
 msgid "-W, --ignore-all-space       ignore all white space"
 msgstr "-W, --ignore-all-space       bỏ qua tất cả dấu cách"
 
-#: src/sdiff.c:181
+#: src/sdiff.c:180
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
 msgstr "-B, --ignore-blank-lines     bỏ qua thay đổi do đó là dòng trống"
 
-#: src/sdiff.c:182
+#: src/sdiff.c:181
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=RE  bỏ qua thay đổi do mà mọi dòng khớp với RE"
 
-#: src/sdiff.c:183
+#: src/sdiff.c:182
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr      cắt bỏ ký tự về đầu dòng (cr) theo sau khi gõ"
 
-#: src/sdiff.c:184
+#: src/sdiff.c:183
 msgid "-a, --text                   treat all files as text"
 msgstr "-a, --text                   coi mọi tập tin là văn bản thường"
 
-#: src/sdiff.c:186
+#: src/sdiff.c:185
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
 msgstr ""
 "-w, --width=SỐ               kết xuất nhiểu nhất là SỐ cột (mặc định là 130)"
 
-#: src/sdiff.c:187
+#: src/sdiff.c:186
 msgid ""
 "-l, --left-column            output only the left column of common lines"
 msgstr ""
 "-l, --left-column            kết xuất chỉ cột bên trái của các dòng chung "
 "nhau"
 
-#: src/sdiff.c:188
+#: src/sdiff.c:187
 msgid "-s, --suppress-common-lines  do not output common lines"
 msgstr "-s, --suppress-common-lines  không kết xuất các dòng chung nhau"
 
-#: src/sdiff.c:190
+#: src/sdiff.c:189
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
 msgstr ""
 "-t, --expand-tabs            khai triển ký tự tab thành các khoảng trắng\n"
 "                               khi kết xuất"
 
-#: src/sdiff.c:191
+#: src/sdiff.c:190
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=SỐ             điểm đừng tab sau mỗi SỐ cột đã in ra (mặc định "
 "là 8)"
 
-#: src/sdiff.c:193
+#: src/sdiff.c:192
 msgid "-d, --minimal                try hard to find a smaller set of changes"
 msgstr "-d, --minimal                cố tìm một thay đổi nhỏ"
 
-#: src/sdiff.c:194
+#: src/sdiff.c:193
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
 msgstr ""
 "-H, --speed-large-files      giả sử tập tin lớn, nhiều thay đổi nhỏ rải rác"
 
-#: src/sdiff.c:195
+#: src/sdiff.c:194
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
 msgstr ""
 "    --diff-program=CHƯƠNG_TRÌNH sử dụng CHƯƠNG_TRÌNH ấy để so sánh các tập "
 "tin"
 
-#: src/sdiff.c:197
+#: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
 msgstr "    --help                   hiển thị trợ giúp này rồi thoát"
 
-#: src/sdiff.c:198
+#: src/sdiff.c:197
 msgid "-v, --version                output version information and exit"
 msgstr "-v, --version                đưa ra thông tin phiên bản rồi thoát"
 
-#: src/sdiff.c:207
+#: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
 msgstr "Cách dùng: %s [TÙY_CHỌN]… TẬP_TIN1 TẬP_TIN2\n"
 
-#: src/sdiff.c:209
+#: src/sdiff.c:208
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
 msgstr "Hòa trộn những khác biệt TẬP_TIN1 VÀ TẬP_TIN2 cạnh nhau."
 
-#: src/sdiff.c:330
+#: src/sdiff.c:328
 msgid "cannot interactively merge standard input"
 msgstr "không hợp nhất được dữ liệu gõ chuẩn một cách tương tác"
 
-#: src/sdiff.c:597
+#: src/sdiff.c:594
 msgid "both files to be compared are directories"
 msgstr "cả hai tập tin dùng để so sánh đều là thư mục"
 
-#: src/sdiff.c:820
+#: src/sdiff.c:817
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
 "eb:\tEdit then use both versions.\n"
@@ -1503,12 +1504,12 @@ msgstr ""
 "v:\tBao gồm dòng chung xuất một cách chi tiết.\n"
 "q:\tThoát.\n"
 
-#: src/util.c:662
+#: src/util.c:755
 #, c-format
 msgid "unrecognized prefix: %s"
 msgstr "không hiểu tiền tố: %s"
 
-#: src/util.c:692
+#: src/util.c:785
 #, c-format
 msgid "unparsable value for --palette"
 msgstr "không thể phân tích giá trị cho --palette"
index 42ded42..84da28a 100644 (file)
Binary files a/po/zh_CN.gmo and b/po/zh_CN.gmo differ
index ae38434..67f9259 100644 (file)
@@ -5,55 +5,56 @@
 # Anthony Fok <foka@debian.org>, 2013.
 # Mingye Wang (Arthur2e5) <arthur200126@gmail.com>, 2016.
 # Boyuan Yang <073plan@gmail.com>, 2018, 2021.
+# Wenbin Lv <wenbin816@gmail.com>, 2022.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: diffutils 3.7.41\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2021-08-01 18:56-0700\n"
-"PO-Revision-Date: 2021-07-20 13:48-0400\n"
-"Last-Translator: Boyuan Yang <073plan@gmail.com>\n"
+"POT-Creation-Date: 2023-05-21 01:51-0700\n"
+"PO-Revision-Date: 2022-03-31 17:01+0800\n"
+"Last-Translator: Wenbin Lv <wenbin816@gmail.com>\n"
 "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
 "Language: zh_CN\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
-"X-Generator: Poedit 2.4.2\n"
+"X-Generator: Poedit 3.0.1\n"
 
-#: lib/argmatch.c:132
+#: lib/argmatch.c:145
 #, c-format
 msgid "invalid argument %s for %s"
-msgstr "无效的参数 %s 对于 %s"
+msgstr "%2$s 的参数 %1$s 无效"
 
-#: lib/argmatch.c:133
+#: lib/argmatch.c:146
 #, c-format
 msgid "ambiguous argument %s for %s"
-msgstr "有歧义的参数 %s 对于 %s"
+msgstr "%2$s 的参数 %1$s 有歧义"
 
-#: lib/argmatch.c:152 lib/argmatch.h:223
+#: lib/argmatch.c:165 lib/argmatch.h:242
 msgid "Valid arguments are:"
 msgstr "有效的参数为:"
 
-#: lib/c-stack.c:187
+#: lib/c-stack.c:186
 msgid "program error"
 msgstr "程序错误"
 
-#: lib/c-stack.c:188
+#: lib/c-stack.c:187
 msgid "stack overflow"
 msgstr "栈溢出"
 
-#: lib/error.c:195
+#: lib/error.c:193
 msgid "Unknown system error"
 msgstr "未知的系统错误"
 
 #: lib/file-type.c:40
 msgid "regular empty file"
-msgstr "常规空文件"
+msgstr "普通空文件"
 
 #: lib/file-type.c:40
 msgid "regular file"
-msgstr "常规文件"
+msgstr "普通文件"
 
 #: lib/file-type.c:43
 msgid "directory"
@@ -73,31 +74,31 @@ msgstr "信号量"
 
 #: lib/file-type.c:58
 msgid "shared memory object"
-msgstr "共享内存目标"
+msgstr "共享内存对象"
 
 #: lib/file-type.c:61
 msgid "typed memory object"
-msgstr "分类内存目标"
+msgstr "有类型内存对象"
 
 #: lib/file-type.c:66
 msgid "block special file"
-msgstr "特殊块文件"
+msgstr "块特殊文件"
 
 #: lib/file-type.c:69
 msgid "character special file"
-msgstr "特殊字符文件"
+msgstr "字符特殊文件"
 
 #: lib/file-type.c:72
 msgid "contiguous data"
-msgstr "连续数据文件"
+msgstr "连续数据"
 
 #: lib/file-type.c:75
 msgid "fifo"
-msgstr "å\91½å\90\8d管é\81\93"
+msgstr "å\85\88è¿\9bå\85\88å\87ºæ\96\87件"
 
 #: lib/file-type.c:78
 msgid "door"
-msgstr "门(Solaris)"
+msgstr "门 (Solaris)"
 
 #: lib/file-type.c:81
 msgid "multiplexed block special file"
@@ -113,7 +114,7 @@ msgstr "复用文件"
 
 #: lib/file-type.c:90
 msgid "named file"
-msgstr "命名文件(XENIX)"
+msgstr "命名文件 (XENIX)"
 
 #: lib/file-type.c:93
 msgid "network special file"
@@ -121,11 +122,11 @@ msgstr "网络特殊文件"
 
 #: lib/file-type.c:96
 msgid "migrated file with data"
-msgstr "含数据迁移文件(Cray DMF)"
+msgstr "含数据迁移文件 (Cray DMF)"
 
 #: lib/file-type.c:99
 msgid "migrated file without data"
-msgstr "不含数据迁移文件(Cray DMF)"
+msgstr "不含数据迁移文件 (Cray DMF)"
 
 #: lib/file-type.c:102
 msgid "port"
@@ -146,37 +147,37 @@ msgstr "奇怪的文件"
 #: lib/getopt.c:278
 #, c-format
 msgid "%s: option '%s%s' is ambiguous\n"
-msgstr "%s:选项“%s%s”是不明确的\n"
+msgstr "%s: 选项 \"%s%s\" 有歧义\n"
 
 #: lib/getopt.c:284
 #, c-format
 msgid "%s: option '%s%s' is ambiguous; possibilities:"
-msgstr "%s:选项“%s%s”是不明确的;可能是:"
+msgstr "%s: 选项 \"%s%s\" 有歧义;可能是:"
 
 #: lib/getopt.c:319
 #, c-format
 msgid "%s: unrecognized option '%s%s'\n"
-msgstr "%s:无法识别的选项“%s%s”\n"
+msgstr "%s: 无法识别的选项 \"%s%s\"\n"
 
 #: lib/getopt.c:345
 #, c-format
 msgid "%s: option '%s%s' doesn't allow an argument\n"
-msgstr "%s:选项“%s%s”不允许带参数\n"
+msgstr "%s: 选项 \"%s%s\" 不允许带参数\n"
 
 #: lib/getopt.c:360
 #, c-format
 msgid "%s: option '%s%s' requires an argument\n"
-msgstr "%s:选项“%s%s”需要一个参数\n"
+msgstr "%s: 选项 \"%s%s\" 必须带参数\n"
 
 #: lib/getopt.c:621
 #, c-format
 msgid "%s: invalid option -- '%c'\n"
-msgstr "%s:无效选项 -- “%c”\n"
+msgstr "%s: 无效的选项 -- \"%c\"\n"
 
 #: lib/getopt.c:636 lib/getopt.c:682
 #, c-format
 msgid "%s: option requires an argument -- '%c'\n"
-msgstr "%s:选项需要一个参数 -- “%c”\n"
+msgstr "%s: 选项必须带参数 -- \"%c\"\n"
 
 #. TRANSLATORS:
 #. Get translations for open and closing quotation marks.
@@ -199,85 +200,85 @@ msgstr "%s:选项需要一个参数 -- “%c”\n"
 #. If you don't know what to put here, please see
 #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:355
+#: lib/quotearg.c:354
 msgid "`"
-msgstr ""
+msgstr "\""
 
-#: lib/quotearg.c:356
+#: lib/quotearg.c:355
 msgid "'"
-msgstr ""
+msgstr "\""
 
-#: lib/regcomp.c:135
+#: lib/regcomp.c:122
 msgid "Success"
 msgstr "成功"
 
-#: lib/regcomp.c:138
+#: lib/regcomp.c:125
 msgid "No match"
-msgstr "没æ\9c\89匹配"
+msgstr "æ\97 匹配"
 
-#: lib/regcomp.c:141
+#: lib/regcomp.c:128
 msgid "Invalid regular expression"
 msgstr "无效的正则表达式"
 
-#: lib/regcomp.c:144
+#: lib/regcomp.c:131
 msgid "Invalid collation character"
-msgstr "æ\97 æ\95\88ç\9a\84对ç\85§字符"
+msgstr "æ\97 æ\95\88ç\9a\84å®\9aåº\8f字符"
 
-#: lib/regcomp.c:147
+#: lib/regcomp.c:134
 msgid "Invalid character class name"
-msgstr "æ\97 æ\95\88ç\9a\84å­\97符ç§\8dç±»å\90\8d称"
+msgstr "无效的字符类名称"
 
-#: lib/regcomp.c:150
+#: lib/regcomp.c:137
 msgid "Trailing backslash"
-msgstr "末端有多余的反斜杠"
+msgstr "末尾有反斜杠"
 
-#: lib/regcomp.c:153
+#: lib/regcomp.c:140
 msgid "Invalid back reference"
-msgstr "æ\97 æ\95\88ç\9a\84å\90\91å\90\8e引用"
+msgstr "æ\97 æ\95\88ç\9a\84å\90\8eå\90\91引用"
 
-#: lib/regcomp.c:156
+#: lib/regcomp.c:143
 msgid "Unmatched [, [^, [:, [., or [="
 msgstr "未匹配的 [、[^、[:、[. 或 [="
 
-#: lib/regcomp.c:159
+#: lib/regcomp.c:146
 msgid "Unmatched ( or \\("
 msgstr "未匹配的 ( 或 \\("
 
-#: lib/regcomp.c:162
+#: lib/regcomp.c:149
 msgid "Unmatched \\{"
 msgstr "未匹配的 \\{"
 
-#: lib/regcomp.c:165
+#: lib/regcomp.c:152
 msgid "Invalid content of \\{\\}"
-msgstr "\\{\\} 中内容无效"
+msgstr "\\{\\} 中内容无效"
 
-#: lib/regcomp.c:168
+#: lib/regcomp.c:155
 msgid "Invalid range end"
-msgstr "范围末端字符无效"
+msgstr "无效的范围端点"
 
-#: lib/regcomp.c:171
+#: lib/regcomp.c:158
 msgid "Memory exhausted"
 msgstr "内存耗尽"
 
-#: lib/regcomp.c:174
+#: lib/regcomp.c:161
 msgid "Invalid preceding regular expression"
-msgstr "无效的前导正则表达式"
+msgstr "前面的正则表达式无效"
 
-#: lib/regcomp.c:177
+#: lib/regcomp.c:164
 msgid "Premature end of regular expression"
 msgstr "正则表达式过早结束"
 
-#: lib/regcomp.c:180
+#: lib/regcomp.c:167
 msgid "Regular expression too big"
-msgstr "正则表达式过"
+msgstr "正则表达式过"
 
-#: lib/regcomp.c:183
+#: lib/regcomp.c:170
 msgid "Unmatched ) or \\)"
-msgstr "没æ\9c\89匹配的 ) 或 \\)"
+msgstr "æ\9cª匹配的 ) 或 \\)"
 
-#: lib/regcomp.c:676
+#: lib/regcomp.c:650
 msgid "No previous regular expression"
-msgstr "之前没有任何正则表达式"
+msgstr "缺少前一个正则表达式"
 
 #: lib/xalloc-die.c:34
 msgid "memory exhausted"
@@ -297,12 +298,12 @@ msgstr "标准错误"
 
 #: lib/xfreopen.c:37
 msgid "unknown stream"
-msgstr "未知流"
+msgstr "未知流"
 
 #: lib/xfreopen.c:38
 #, c-format
 msgid "failed to reopen %s with mode %s"
-msgstr "未能以模式 %2$s 重打开 %1$s"
+msgstr "以模式 %2$s 重新打开 %1$s 失败"
 
 #: lib/xstdopen.c:34
 #, c-format
@@ -312,7 +313,7 @@ msgstr "标准文件描述符"
 #: lib/version-etc.c:73
 #, c-format
 msgid "Packaged by %s (%s)\n"
-msgstr "由 %s 打包 (%s)\n"
+msgstr "由 %s (%s) 打包\n"
 
 #: lib/version-etc.c:76
 #, c-format
@@ -334,27 +335,27 @@ msgid ""
 "This is free software: you are free to change and redistribute it.\n"
 "There is NO WARRANTY, to the extent permitted by law.\n"
 msgstr ""
-"许可证GPLv3+:GNU 通用公共许可证第 3 版或更新版本 <%s>。\n"
+"许可证 GPLv3+:GNU 通用公共许可证第 3 版或更新版本 <%s>。\n"
 "本软件是自由软件:您可以自由修改和重新发布它。\n"
-"在法律允许的范围内没有其他质保。\n"
+"在法律允许的范围内,不提供任何保证。\n"
 
 #. TRANSLATORS: %s denotes an author name.
 #: lib/version-etc.c:105
 #, c-format
 msgid "Written by %s.\n"
-msgstr "作者:%s。\n"
+msgstr "由 %s 编写。\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #: lib/version-etc.c:109
 #, c-format
 msgid "Written by %s and %s.\n"
-msgstr "作者:%s 和 %s。\n"
+msgstr "由 %s 和 %s 编写。\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #: lib/version-etc.c:113
 #, c-format
 msgid "Written by %s, %s, and %s.\n"
-msgstr "作者:%s、%s 和 %s。\n"
+msgstr "由 %s、%s 和 %s 编写。\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -365,8 +366,8 @@ msgid ""
 "Written by %s, %s, %s,\n"
 "and %s.\n"
 msgstr ""
-"作者:%s、%s、%s\n"
-"   和 %s。\n"
+"由 %s、%s、%s 和\n"
+"%s 编写。\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -377,8 +378,8 @@ msgid ""
 "Written by %s, %s, %s,\n"
 "%s, and %s.\n"
 msgstr ""
-"作者:%s、%s、%s、\n"
-"   %s 和 %s。\n"
+"由 %s、%s、%s、\n"
+"%s 和 %s 编写。\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -389,8 +390,8 @@ msgid ""
 "Written by %s, %s, %s,\n"
 "%s, %s, and %s.\n"
 msgstr ""
-"作者:%s、%s、%s、\n"
-"   %s、%s 和 %s。\n"
+"由 %s、%s、%s、\n"
+"%s、%s 和 %s 编写。\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -401,8 +402,8 @@ msgid ""
 "Written by %s, %s, %s,\n"
 "%s, %s, %s, and %s.\n"
 msgstr ""
-"作者:%s、%s、%s、\n"
-"   %s、%s、%s 和 %s。\n"
+"由 %s、%s、%s、\n"
+"%s、%s、%s 和 %s 编写。\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -414,9 +415,9 @@ msgid ""
 "%s, %s, %s, %s,\n"
 "and %s.\n"
 msgstr ""
-"作者:%s、%s、%s、\n"
-"   %s、%s、%s、%s\n"
-"   和 %s。\n"
+"由 %s、%s、%s、\n"
+"%s、%s、%s、%s 和\n"
+"%s 编写。\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -428,9 +429,9 @@ msgid ""
 "%s, %s, %s, %s,\n"
 "%s, and %s.\n"
 msgstr ""
-"作者:%s、%s、%s、\n"
-"   %s、%s、%s、%s、\n"
-"   %s 和 %s。\n"
+"由 %s、%s、%s、\n"
+"%s、%s、%s、%s、\n"
+"%s 和 %s 编写。\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -442,9 +443,9 @@ msgid ""
 "%s, %s, %s, %s,\n"
 "%s, %s, and others.\n"
 msgstr ""
-"作者:%s、%s、%s、\n"
-"   %s、%s、%s、%s、\n"
-"   %s、%s 和其他人。\n"
+"由 %s、%s、%s、\n"
+"%s、%s、%s、%s、\n"
+"%s、%s 和其他人编写。\n"
 
 #. TRANSLATORS: The placeholder indicates the bug-reporting address
 #. for this package.  Please add _another line_ saying
@@ -454,39 +455,37 @@ msgstr ""
 #, c-format
 msgid "Report bugs to: %s\n"
 msgstr ""
-"报告程序错误到: %s\n"
-"报告翻译错误到: https://translationproject.org/teams/zh_CN.html\n"
+"请向 <%s> 报告软件错误。\n"
+"请向 <i18n-zh@googlegroups.com> 报告翻译错误。\n"
 
 #: lib/version-etc.c:251
 #, c-format
 msgid "Report %s bugs to: %s\n"
-msgstr ""
-"报告 %1$s 程序错误到: %2$s\n"
-"报告 %1$s 翻译错误到: https://translationproject.org/teams/zh_CN.html\n"
+msgstr "请向 <%2$s> 报告 %1$s 的错误。\n"
 
 #: lib/version-etc.c:255 lib/version-etc.c:257
 #, c-format
 msgid "%s home page: <%s>\n"
-msgstr "%s 主页: <%s>\n"
+msgstr "%s 的主页:<%s>\n"
 
 #: lib/version-etc.c:260
 #, c-format
 msgid "General help using GNU software: <%s>\n"
-msgstr "使用 GNU 软件的通用帮助:<%s>\n"
+msgstr "GNU 软件一般性帮助:<%s>\n"
 
-#: src/analyze.c:454 src/diff.c:1406
+#: src/analyze.c:455 src/diff.c:1478
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "文件 %s 和 %s 不同\n"
 
-#: src/analyze.c:455
+#: src/analyze.c:456
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "二进制文件 %s 和 %s 不同\n"
 
-#: src/analyze.c:706 src/diff3.c:1470 src/util.c:1254
+#: src/analyze.c:707 src/diff3.c:1457 src/util.c:1354
 msgid "No newline at end of file"
-msgstr "文件尾没有换行符"
+msgstr "文件尾没有换行符"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/cmp.c:45
@@ -498,437 +497,443 @@ msgstr "Torbjorn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:120 src/diff.c:879 src/diff3.c:467 src/sdiff.c:160
+#: src/cmp.c:124 src/diff.c:939 src/diff3.c:465 src/sdiff.c:159
 #, c-format
 msgid "Try '%s --help' for more information."
-msgstr "请尝试 “%s --help”,以获得更多信息。"
+msgstr "请尝试执行 \"%s --help\" 来获取更多信息。"
 
-#: src/cmp.c:138
+#: src/cmp.c:142
 #, c-format
 msgid "invalid --ignore-initial value '%s'"
-msgstr "无效的 --ignore-initial 值 “%s”"
+msgstr "无效的 --ignore-initial 值 \"%s\""
 
-#: src/cmp.c:148
+#: src/cmp.c:152
 #, c-format
 msgid "options -l and -s are incompatible"
-msgstr "选项 -l 和 -s 不兼容"
+msgstr "选项 -l 和 -s 是互斥的"
 
-#: src/cmp.c:156 src/diff.c:887 src/diff3.c:474 src/sdiff.c:168 src/sdiff.c:316
-#: src/sdiff.c:323 src/sdiff.c:876 src/util.c:852 src/util.c:952 src/util.c:959
+#: src/cmp.c:160 src/diff.c:947 src/diff3.c:472 src/sdiff.c:167 src/sdiff.c:314
+#: src/sdiff.c:321 src/sdiff.c:873 src/util.c:952 src/util.c:1052
+#: src/util.c:1059
 msgid "write failed"
 msgstr "写入失败"
 
-#: src/cmp.c:158 src/diff.c:889 src/diff.c:1471 src/diff3.c:476 src/sdiff.c:170
+#: src/cmp.c:162 src/diff.c:949 src/diff.c:1543 src/diff3.c:474 src/sdiff.c:169
 msgid "standard output"
 msgstr "标准输出"
 
-#: src/cmp.c:162
+#: src/cmp.c:166
 msgid "-b, --print-bytes          print differing bytes"
-msgstr "-b  --print-bytes          打印出内容相异的字节"
+msgstr "-b, --print-bytes          打印出内容相异的字节"
 
-#: src/cmp.c:163
+#: src/cmp.c:167
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
-msgstr "-i, --ignore-initial=SKIP         两个输入内容都略过前 SKIP 字节"
+msgstr "-i, --ignore-initial=跳过         对于两个输入,都跳过前 <跳过> 个字节"
 
-#: src/cmp.c:164
+#: src/cmp.c:168
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
 msgstr ""
-"-i, --ignore-initial=跳1:跳2      略过 <文件1> 的前 <跳1> 个字节和文件 <文件"
+"-i, --ignore-initial=跳过1:跳过2  跳过 <文件1> 的前 <跳过1> 个字节和 <文件"
 "2>\n"
-"                                    的前 <跳2> 个字节"
+"                                      的前 <跳过2> 个字节"
 
-#: src/cmp.c:166
+#: src/cmp.c:170
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
-msgstr "-l, --verbose              输出所有相异字节的字节数和内容"
+msgstr "-l, --verbose              输出所有相异字节的编号和值"
 
-#: src/cmp.c:167
+#: src/cmp.c:171
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
-msgstr "-n, --bytes=限制           最多比较给定字节数的数据"
+msgstr "-n, --bytes=限制          最多比较 <限制> 个字节"
 
-#: src/cmp.c:168
+#: src/cmp.c:172
 msgid "-s, --quiet, --silent      suppress all normal output"
 msgstr "-s, --quiet, --silent      禁止所有正常输出"
 
-#: src/cmp.c:169
+#: src/cmp.c:173
 msgid "    --help                 display this help and exit"
 msgstr "    --help                 显示此帮助信息并退出"
 
-#: src/cmp.c:170
+#: src/cmp.c:174
 msgid "-v, --version              output version information and exit"
-msgstr "-v, --version              è¾\93å\87ºç\89\88æ\9c¬ä¿¡æ\81¯å¹¶é\80\80å\87º"
+msgstr "-v, --version              æ\98¾ç¤ºç\89\88æ\9c¬ä¿¡æ\81¯å¹¶é\80\80å\87º"
 
-#: src/cmp.c:179
+#: src/cmp.c:183
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
-msgstr "用法: %s [选项]... 文件1 [文件2 [跳1 [跳2]]]\n"
+msgstr "用法:%s [选项]... 文件1 [文件2 [跳过1 [跳过2]]]\n"
 
-#: src/cmp.c:181
+#: src/cmp.c:185
 msgid "Compare two files byte by byte."
 msgstr "逐字节比较两个文件。"
 
-#: src/cmp.c:183
+#: src/cmp.c:187
 msgid ""
 "The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
 "at the beginning of each file (zero by default)."
-msgstr "<跳1> 和 <跳2> 分别是每个文件要略过的字节数。"
+msgstr "<跳过1> 和 <跳过2> 分别是每个文件要跳过的字节数。"
 
-#: src/cmp.c:186 src/diff.c:999 src/diff3.c:514 src/sdiff.c:211
+#: src/cmp.c:190 src/diff.c:1059 src/diff3.c:512 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
-msgstr "é\95¿é\80\89项ç\9a\84å¿\85é\9c\80å\8f\82æ\95°ä¹\9fæ\98¯ç\9b¸åº\94ç\9f­é\80\89项ç\9a\84å¿\85é\9c\80å\8f\82æ\95°。\n"
+msgstr "é\95¿é\80\89项ç\9a\84å¿\85é\80\89å\8f\82æ\95°å¯¹äº\8eç\9f­é\80\89项ä¹\9fæ\98¯å¿\85é\80\89ç\9a\84。\n"
 
-#: src/cmp.c:192
+#: src/cmp.c:196
 msgid ""
 "SKIP values may be followed by the following multiplicative suffixes:\n"
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
 "GB 1,000,000,000, G 1,073,741,824, and so on for T, P, E, Z, Y."
 msgstr ""
-"<跳> 值可以加上以下的单位:\n"
-"kB=1,000、K=1,024、MB=1,000,000、M=1,048,576、GB=1,000,000,000、"
-"G=107,374,182,\n"
-"还有 T、P、E、Z、Y,如此类推。"
+"<跳过> 值可以加上以下的乘数后缀:\n"
+"kB=1000、K=1024、MB=1,000,000、M=1,048,576、\n"
+"GB=1,000,000,000、G=1,073,741,824,T、P、E、Z、Y 以此类推。"
 
-#: src/cmp.c:195
+#: src/cmp.c:199
 msgid "If a FILE is '-' or missing, read standard input."
-msgstr "如果文件是 “-” 或没给出,则从标准输入读入内容。"
+msgstr "如果 <文件> 为 \"-\",或者没有指定 <文件>,则从标准输入读取。"
 
-#: src/cmp.c:196 src/diff.c:987 src/sdiff.c:221
+#: src/cmp.c:200 src/diff.c:1047 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr "如果输入相同,则退出状态为 0;1 表示输入不同;2 表示有错误产生。"
 
-#: src/cmp.c:243
+#: src/cmp.c:247
 #, c-format
 msgid "invalid --bytes value '%s'"
-msgstr "无效的 --bytes 值 `%s'"
+msgstr "无效的 --bytes 值 \"%s\""
 
-#: src/cmp.c:269 src/diff.c:797 src/diff3.c:361 src/sdiff.c:567
+#: src/cmp.c:273 src/diff.c:857 src/diff3.c:368 src/sdiff.c:564
 #, c-format
 msgid "missing operand after '%s'"
-msgstr "操作数 “%s” 后缺少参数"
+msgstr "\"%s\" 后缺少操作对象"
 
-#: src/cmp.c:281 src/diff.c:799 src/diff3.c:363 src/sdiff.c:569
+#: src/cmp.c:285 src/diff.c:859 src/diff3.c:370 src/sdiff.c:566
 #, c-format
 msgid "extra operand '%s'"
-msgstr "多余的操作数 “%s”"
+msgstr "多余的操作对象 \"%s\""
 
-#: src/cmp.c:507
+#: src/cmp.c:521
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
-msgstr "%s %s ä¸\8då\90\8cï¼\9a第 %s å­\97è\8a\82ï¼\8c第 %s è¡\8c\n"
+msgstr "%s %s ä¸\8då\90\8cï¼\9a第 %s å­\97è\8a\82ï¼\88第 %s è¡\8cï¼\89\n"
 
-#: src/cmp.c:523
+#: src/cmp.c:537
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
-msgstr "%1$s %2$s 不同:第 %4$s 行,第 %3$s 字节为 %5$3o %6$s %7$3o %8$s\n"
+msgstr "%s %s 不同:第 %s 字节(第 %s 行),分别为 %3o %s、%3o %s\n"
 
-#: src/cmp.c:580
+#: src/cmp.c:594
 #, c-format
 msgid "cmp: EOF on %s which is empty\n"
-msgstr "cmp:%s 已结束且为空\n"
+msgstr "cmp: %s 返回了 EOF,且为空\n"
 
-#: src/cmp.c:594
+#: src/cmp.c:608
 #, c-format
 msgid "cmp: EOF on %s after byte %s, line %s\n"
-msgstr "cmp:%s 在 %s 字节 %s 行后结束\n"
+msgstr "cmp: %s 在第 %s 字节(第 %s 行)后返回了 EOF\n"
 
-#: src/cmp.c:595
+#: src/cmp.c:609
 #, c-format
 msgid "cmp: EOF on %s after byte %s, in line %s\n"
-msgstr "cmp:%s 在 %s 字节 %s 行中结束\n"
+msgstr "cmp: %s 在第 %s 字节(第 %s 行中间)后返回了 EOF\n"
 
-#: src/cmp.c:601
+#: src/cmp.c:615
 #, c-format
 msgid "cmp: EOF on %s after byte %s\n"
-msgstr "cmp:%s 在 %s 字节后结束\n"
+msgstr "cmp: %s 在第 %s 字节后返回了 EOF\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:51
+#: src/diff.c:50
 msgid "Paul Eggert"
 msgstr "Paul Eggert"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:52
+#: src/diff.c:51
 msgid "Mike Haertel"
 msgstr "Mike Haertel"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:53
+#: src/diff.c:52
 msgid "David Hayes"
 msgstr "David Hayes"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:54
+#: src/diff.c:53
 msgid "Richard Stallman"
-msgstr "理查德·斯托曼"
+msgstr "Richard Stallman"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:55
+#: src/diff.c:54
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:355
+#: src/diff.c:365
 #, c-format
 msgid "invalid context length '%s'"
-msgstr "无效的上下文长度“%s”"
+msgstr "无效的上下文长度 \"%s\""
 
-#: src/diff.c:438
+#: src/diff.c:487
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "此系统不支持分页"
 
-#: src/diff.c:453 src/diff3.c:341
+#: src/diff.c:502 src/diff3.c:348
 #, c-format
 msgid "too many file label options"
-msgstr "过多的文件标选项"
+msgstr "过多的文件标选项"
 
-#: src/diff.c:530
+#: src/diff.c:579
 #, c-format
 msgid "invalid width '%s'"
-msgstr "无效的宽度“%s”"
+msgstr "无效的宽度 \"%s\""
 
-#: src/diff.c:534
+#: src/diff.c:583
 msgid "conflicting width options"
-msgstr "宽度选项冲突"
+msgstr "宽度选项冲突"
 
-#: src/diff.c:559
+#: src/diff.c:608
 #, c-format
 msgid "invalid horizon length '%s'"
-msgstr "无效的水平长度 “%s”"
+msgstr "无效的视野长度 \"%s\""
 
-#: src/diff.c:615
+#: src/diff.c:664
 #, c-format
 msgid "invalid tabsize '%s'"
-msgstr "无效的制表符宽度 “%s”"
+msgstr "无效的制表符宽度 \"%s\""
 
-#: src/diff.c:619
+#: src/diff.c:668
 msgid "conflicting tabsize options"
-msgstr "制表符长度选项冲突"
+msgstr "制表符宽度选项有冲突"
 
-#: src/diff.c:774
+#: src/diff.c:834
 msgid "--from-file and --to-file both specified"
 msgstr "同时指定了选项 --from-file 和 --to-file"
 
-#: src/diff.c:893
+#: src/diff.c:953
 msgid "    --normal                  output a normal diff (the default)"
-msgstr "    --normal                  ä»¥æ­£å¸¸ç\9a\84 diff æ\96¹å¼\8fè¾\93å\87º (é»\98认)"
+msgstr "    --normal                  ä»¥æ­£å¸¸ç\9a\84 diff æ ¼å¼\8fè¾\93å\87ºï¼\88é»\98认ï¼\89"
 
-#: src/diff.c:894
+#: src/diff.c:954
 msgid "-q, --brief                   report only when files differ"
-msgstr "-q, --brief                   只有在文件不同时报告"
+msgstr "-q, --brief                   仅当文件不同时报告"
 
-#: src/diff.c:895
+#: src/diff.c:955
 msgid "-s, --report-identical-files  report when two files are the same"
-msgstr "-s, --report-identical-files  当两个一样时仍然显示结果"
+msgstr "-s, --report-identical-files  当两个文件相同时也进行报告"
 
-#: src/diff.c:896
+#: src/diff.c:956
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
-msgstr ""
-"-c, -C NUM, --context[=NUM]   同时输出 NUM 行(默认为 3 行)的复制上下文内容"
+msgstr "-c, -C 数字, --context[=数字]  输出 <数字> 行(默认为 3 行)复制上下文"
 
-#: src/diff.c:897
+#: src/diff.c:957
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
-msgstr "-u, -U 数量, --unified[=数量] 输出 <数量>(默认为 3)行一致化上下文"
+msgstr "-u, -U 数字, --unified[=数字]  输出 <数字> 行(默认为 3 行)统一上下文"
 
-#: src/diff.c:898
+#: src/diff.c:958
 msgid "-e, --ed                      output an ed script"
-msgstr "-e, --ed                      以 ed script 方式输出"
+msgstr "-e, --ed                      以 ed 脚本格式输出"
 
-#: src/diff.c:899
+#: src/diff.c:959
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n, --rcs                     以 RCS diff 格式输出"
 
-#: src/diff.c:900
+#: src/diff.c:960
 msgid "-y, --side-by-side            output in two columns"
-msgstr "-y, --side-by-side            以两栏格式输出"
+msgstr "-y, --side-by-side            以两栏格式输出"
 
-#: src/diff.c:901
+#: src/diff.c:961
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
-msgstr "-W, --width=数量              每行显示最多 <数量>(默认 130)个字符"
+msgstr ""
+"-W, --width=数字              每行宽度最多 <数字> 个(默认为 130 个)字符"
 
-#: src/diff.c:902
+#: src/diff.c:962
 msgid ""
 "    --left-column             output only the left column of common lines"
-msgstr "    --left-column             å½\93æ\9c\89两è¡\8cç\9b¸å\90\8cæ\97¶å\8fªæ\98¾ç¤ºå·¦è¾¹æ \8fç\9a\84ä¸\80è¡\8c"
+msgstr "    --left-column             å¯¹äº\8eç\9b¸å\90\8cç\9a\84è¡\8cå\8fªè¾\93å\87ºå·¦æ \8f"
 
-#: src/diff.c:903
+#: src/diff.c:963
 msgid "    --suppress-common-lines   do not output common lines"
-msgstr "    --suppress-common-lines   å½\93æ\9c\89两è¡\8cç\9b¸å\90\8cæ\97¶ä¸\8dæ\98¾ç¤º"
+msgstr "    --suppress-common-lines   å¯¹äº\8eç\9b¸å\90\8cç\9a\84è¡\8cä¸\8dè¿\9bè¡\8cè¾\93å\87º"
 
-#: src/diff.c:905
+#: src/diff.c:965
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr "-p, --show-c-function         显示每个变更位于哪个 C 函数中"
 
-#: src/diff.c:906
+#: src/diff.c:966
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
-msgstr "-F, --show-function-line=正则 显示匹配给定<正则>表达式的最近一行"
+msgstr "-F, --show-function-line=正则  显示匹配 <正则> 表达式的最近一行"
 
-#: src/diff.c:907
+#: src/diff.c:967
 msgid ""
 "    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
 msgstr ""
-"    --label 标签              使用给定<标签>替代文件名和时间戳\n"
-"                                (可以重复)"
+"    --label 标签              使用 <标签> 替代文件名和时间戳(可以重复)"
 
-#: src/diff.c:910
+#: src/diff.c:970
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
-msgstr "-t, --expand-tabs             将输出中的 tab 转换成空格"
+msgstr "-t, --expand-tabs             将输出中的制表符展开为空格"
 
-#: src/diff.c:911
+#: src/diff.c:971
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
-msgstr "-T, --initial-tab             每行先加上 tab 字符,使 tab 字符可以对齐"
+msgstr ""
+"-T, --initial-tab             在每行前面加上一个制表符,以使制表符可以对齐"
 
-#: src/diff.c:912
+#: src/diff.c:972
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
-msgstr "    --tabsize=数字           TAB 格的宽度,默认为 8 个打印列宽"
+msgstr "    --tabsize=数字            制表符宽度(默认为 8)"
 
-#: src/diff.c:913
+#: src/diff.c:973
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
-msgstr "    --suppress-blank-empty    å\9c¨ç©ºç\9a\84è¾\93å\87ºè¡\8cä¹\8bå\89\8då\8e»é\99¤ç©ºç\99½或制表符"
+msgstr "    --suppress-blank-empty    å\8e»é\99¤å°\86è¦\81è¾\93å\87ºç\9a\84空è¡\8cä¹\8bå\89\8dç\9a\84空格或制表符"
 
-#: src/diff.c:914
+#: src/diff.c:974
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
-msgstr "-l, --paginate                将输出送至 “pr” 指令来分页"
+msgstr "-l, --paginate                将输出发送给 \"pr\" 命令进行分页"
 
-#: src/diff.c:916
+#: src/diff.c:976
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
-msgstr "-r, --recursive                 连同所有子目录一起比较"
+msgstr "-r, --recursive                 递归比较所有子目录"
 
-#: src/diff.c:917
+#: src/diff.c:977
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr "    --no-dereference            不要跟随符号链接"
 
-#: src/diff.c:918
+#: src/diff.c:978
 msgid "-N, --new-file                  treat absent files as empty"
-msgstr "-N, --new-file                  不存在的文件以空文件方式处理"
+msgstr "-N, --new-file                  将不存在的文件视为空文件"
 
-#: src/diff.c:919
+#: src/diff.c:979
 msgid "    --unidirectional-new-file   treat absent first files as empty"
-msgstr "    --unidirectional-new-file   若第一文件不存在,以空文件处理"
+msgstr "    --unidirectional-new-file   若第一个文件不存在,则视为空文件"
 
-#: src/diff.c:920
+#: src/diff.c:980
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
-msgstr "    --ignore-file-name-case     忽略文件名大小写的区别"
+msgstr "    --ignore-file-name-case     比较文件名时忽略大小写"
 
-#: src/diff.c:921
+#: src/diff.c:981
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
-msgstr "    --no-ignore-file-name-case  不忽略文件名大小写的区别"
+msgstr "    --no-ignore-file-name-case  比较文件名时不忽略大小写"
 
-#: src/diff.c:922
+#: src/diff.c:982
 msgid "-x, --exclude=PAT               exclude files that match PAT"
-msgstr "-x, --exclude=模式              排除匹配 <模式> 的文件"
+msgstr "-x, --exclude=模式              排除与 <模式> 匹配的文件"
 
-#: src/diff.c:923
+#: src/diff.c:983
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
-msgstr "-X, --exclude-from=文件         排除所有匹配在<文件>中列出的模式的文件"
+msgstr ""
+"-X, --exclude-from=文件         排除与 <文件> 中列出的任意模式匹配的文件"
 
-#: src/diff.c:924
+#: src/diff.c:984
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
-msgstr "-S, --starting-file=文件        当比较目录時,由<文件>开始比较"
+msgstr "-S, --starting-file=文件        比较目录时,从 <文件> 开始比较"
 
-#: src/diff.c:925
+#: src/diff.c:985
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
 msgstr ""
-"    --from-file=文件1           将<文件1>和操作数中的所有文件/目录作比较;\n"
-"                                  <文件1>可以是目录"
+"    --from-file=文件1           将 <文件1> 和所有操作对象进行比较;\n"
+"                                  <文件1> 可以是目录"
 
-#: src/diff.c:927
+#: src/diff.c:987
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
 msgstr ""
-"    --to-file=æ\96\87件2             å°\86æ\93\8dä½\9cæ\95°ä¸­ç\9a\84æ\89\80æ\9c\89æ\96\87件/ç\9b®å½\95å\92\8c\96\87件2>ä½\9c比较;\n"
-"                                  <文件2>可以是目录"
+"    --to-file=æ\96\87件2             å°\86æ\89\80æ\9c\89æ\93\8dä½\9c对象å\92\8c <æ\96\87件2> è¿\9bè¡\8c比较;\n"
+"                                  <文件2> 可以是目录"
 
-#: src/diff.c:930
+#: src/diff.c:990
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
-msgstr "-i, --ignore-case               忽略文件内容大小写的区别"
+msgstr "-i, --ignore-case               比较文件内容时忽略大小写"
 
-#: src/diff.c:931
+#: src/diff.c:991
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
-msgstr "-E, --ignore-tab-expansion      忽略由制表符宽度造成的差异"
+msgstr "-E, --ignore-tab-expansion      忽略制表符展开造成的变更"
 
-#: src/diff.c:932
+#: src/diff.c:992
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
-msgstr "-Z, --ignore-trailing-space     忽略每行末端的空格"
+msgstr "-Z, --ignore-trailing-space     忽略行末的空白字符"
 
-#: src/diff.c:933
+#: src/diff.c:993
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
-msgstr "-b, --ignore-space-change       å¿½ç\95¥ç\94±ç©ºæ ¼æ\95°ä¸\8då\90\8cé\80 æ\88\90ç\9a\84å·®å¼\82"
+msgstr "-b, --ignore-space-change       å¿½ç\95¥ç©ºç\99½å­\97符æ\95°ä¸\8då\90\8cé\80 æ\88\90ç\9a\84å\8f\98æ\9b´"
 
-#: src/diff.c:934
+#: src/diff.c:994
 msgid "-w, --ignore-all-space          ignore all white space"
-msgstr "-w, --ignore-all-space          忽略所有空"
+msgstr "-w, --ignore-all-space          忽略所有空白字符"
 
-#: src/diff.c:935
+#: src/diff.c:995
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
-msgstr "-B, --ignore-blank-lines        忽略任何因空行而造成的差异"
+msgstr "-B, --ignore-blank-lines        忽略所有行均为空行的变更"
 
-#: src/diff.c:936
+#: src/diff.c:996
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
-"-I, --ignore-matching-lines=正则 若某行完全匹配 <正则>,则忽略由该行造成的差"
-"异"
+"-I, --ignore-matching-lines=正则  忽略所有行均与 <正则> 表达式匹配的变更"
 
-#: src/diff.c:938
+#: src/diff.c:998
 msgid "-a, --text                      treat all files as text"
-msgstr "-a, --text                      所有文件都以文本方式处理"
+msgstr "-a, --text                      将所有文件视为文本文件"
 
-#: src/diff.c:939
+#: src/diff.c:999
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
-msgstr "    --strip-trailing-cr         去除输入内容每行末端的回车(CR)字符"
+msgstr "    --strip-trailing-cr         去除输入内容行末的回车 (CR) 字符"
 
-#: src/diff.c:941
+#: src/diff.c:1001
 msgid "    --binary                    read and write data in binary mode"
-msgstr "    --binary                    ä»¥äº\8cè¿\9bå\88¶æ\96¹式读写数据"
+msgstr "    --binary                    ä»¥äº\8cè¿\9bå\88¶æ¨¡式读写数据"
 
-#: src/diff.c:944
+#: src/diff.c:1004
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
-"-D, --ifdef=名称                输出的内容以 ‘#ifdef <名称>’ 方式标明差异"
+"-D, --ifdef=名称                输出含 \"#ifdef <名称>\" 格式 diff 的合并后的"
+"文件"
 
-#: src/diff.c:945
+#: src/diff.c:1005
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
-msgstr "    --GTYPE-group-format=GFMT   以 GFMT 格式处理 GTYPE 输入行组"
+msgstr ""
+"    --组类型-group-format=组格式  使用 <组格式> 对 <组类型> 的输入行组进行格"
+"式化"
 
-#: src/diff.c:946
+#: src/diff.c:1006
 msgid "    --line-format=LFMT          format all input lines with LFMT"
-msgstr "    --line-format=LFMT          以 LFMT 格式处理每一行资料"
+msgstr "    --line-format=行格式        使用 <行格式> 对所有输入行进行格式化"
 
-#: src/diff.c:947
+#: src/diff.c:1007
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
-msgstr "    --LTYPE-line-format=LFMT    以 LFMT 格式处理 LTYPE 输入的行"
+msgstr ""
+"    --行类型-line-format=行格式  使用 <行格式> 对 <行类型> 的输入行进行格式化"
 
-#: src/diff.c:948
+#: src/diff.c:1008
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
-msgstr "  这些格式化选项提供对 diff 输出的精细控制,从而泛化 -D/--ifdef。"
+msgstr ""
+"  这些格式化选项提供对 diff 输出的精细控制,是一般化的 -D/--ifdef 选项。"
 
-#: src/diff.c:950
+#: src/diff.c:1010
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
-"  LTYPE 可以是 “old”、“new” 或 “unchanged”。GTYPE 可以是 LTYPE 的选择\n"
-"  或是 “changed”。"
+"  <行类型> 可以是 \"old\"、\"new\" 或 \"unchanged\"。<组类型> 可以是 <行类型"
+">\n"
+"  的所有选项,或者 \"changed\"。"
 
-#: src/diff.c:951
+#: src/diff.c:1011
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -943,32 +948,33 @@ msgid ""
 "        M  L+1\n"
 "    %(A=B?T:E)  if A equals B then T else E"
 msgstr ""
-"  (仅)GFMT 可包括:\n"
-"    %<  该组中每行属于<文件1>的差异\n"
-"    %>  该组中每行属于<文件2>的差异\n"
-"    %=  该组中同时在<文件1>和<文件2>出现的每一行\n"
-"    %[-][宽度][.[精确度]]{doxX}字符  以 printf 格式表示该<字符>代表的内容\n"
-"      大写<字符>表示属于新的文件,小写表示属于旧的文件。<字符>的意义如下:\n"
+"  (仅有)<组格式> 可以包含:\n"
+"    %<  来自 <文件1> 的行\n"
+"    %>  来自 <文件2> 的行\n"
+"    %=  <文件1> 和 <文件2> 共有的行\n"
+"    %[-][宽度][.[精度]]{doxX}字符  以 printf 风格的说明符打印 <字符> 对应的"
+"值\n"
+"      <字符> 对应的值如下(大写表示新文件的行组,小写表示旧文件的行组):\n"
 "        F  行组中第一行的行号\n"
 "        L  行组中最后一行的行号\n"
-"        N  行数 ( =L-F+1 )\n"
+"        N  行数,等于 L-F+1\n"
 "        E  F-1\n"
 "        M  L+1\n"
-"    %(A=B?T:E)  如果 A 等于 B 那么 T 否则 E"
+"    %(A=B?T:E)  如果 A 等于 B,则为 T,否则为 E"
 
-#: src/diff.c:963
+#: src/diff.c:1023
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
 "    %l  contents of line, excluding any trailing newline\n"
 "    %[-][WIDTH][.[PREC]]{doxX}n  printf-style spec for input line number"
 msgstr ""
-"  (仅)LFMT 可包括:\n"
+"  (仅有)<行格式> 可以包含:\n"
 "    %L  该行的内容\n"
-"    %l  该行的内容,但不包括结束的换行符\n"
-"    %[-][宽度][.[精确度]]{doxX}n  以 printf 格式表示的输入行号"
+"    %l  该行的内容,但不包括末尾的换行符\n"
+"    %[-][宽度][.[精度]]{doxX}n  以 printf 风格的说明符打印输入行的行号"
 
-#: src/diff.c:967
+#: src/diff.c:1027
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -976,232 +982,227 @@ msgid ""
 "    %c'\\OOO'  the character with octal code OOO\n"
 "    C    the character C (other characters represent themselves)"
 msgstr ""
-"  GFMT 或 LFMT 都可包括:\n"
+"  <组格式> 和 <行格式> 均可以包含:\n"
 "    %%        %\n"
 "    %c'C'     单个字符 C\n"
 "    %c'\\OOO'  八进制码 OOO 所代表的字符\n"
-"    C         字符 C(上述转义外的其他字符代表它们自身)"
+"    C         字符 C(上述转义外的其他字符代表它们自身)"
 
-#: src/diff.c:973
+#: src/diff.c:1033
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr "-d, --minimal            尽可能找出最小的差异集"
 
-#: src/diff.c:974
+#: src/diff.c:1034
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
-msgstr "    --horizon-lines=数量 保持指定行数的一致前后缀"
+msgstr "    --horizon-lines=数字  保留 <数字> 行共有的前缀和后缀"
 
-#: src/diff.c:975
+#: src/diff.c:1035
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
-msgstr "    --speed-large-files  å\81\87设æ\96\87件å\8d\81å\88\86大è\80\8cä¸\94æ\96\87件中å\90«æ\9c\89许å¤\9aå¾®å°\8fç\9a\84å·®å¼\82"
+msgstr "    --speed-large-files  å\81\87设æ\96\87件å¾\88大ï¼\8cä¸\94å\90«æ\9c\89å¾\88å¤\9aé\9b¶æ\95£ç\9a\84å¾®å°\8få\8f\98æ\9b´"
 
-#: src/diff.c:976
+#: src/diff.c:1036
 msgid ""
 "    --color[=WHEN]       color output; WHEN is 'never', 'always', or "
 "'auto';\n"
 "                           plain --color means --color='auto'"
 msgstr ""
-"    --color[=何时]       给输出上色;“何时”可以是“never”(从不)、\n"
-"                           “always”(总是)或“auto”(自动,默认);\n"
-"                           仅指定 --color 与 --color='auto' 效果相同"
+"    --color[=何时]       使用彩色输出;<何时> 可以是 \"never\"、\"always\"\n"
+"                           或 \"auto\";仅指定 --color 等价于 --color='auto'"
 
-#: src/diff.c:978
+#: src/diff.c:1038
 msgid ""
 "    --palette=PALETTE    the colors to use when --color is active; PALETTE "
 "is\n"
 "                           a colon-separated list of terminfo capabilities"
 msgstr ""
-"    --palette=调色板     在 --color 选项启用时使用的颜色;<调色板>参数应当"
-"是\n"
-"                           一个冒号分隔的列表以提供 terminfo capabilities 信"
-"息"
+"    --palette=调色板     在 --color 选项启用时使用的颜色;<调色板> 是\n"
+"                           以冒号分隔的 terminfo 能力列表"
 
-#: src/diff.c:981
+#: src/diff.c:1041
 msgid "    --help               display this help and exit"
 msgstr "    --help               显示此帮助信息并退出"
 
-#: src/diff.c:982
+#: src/diff.c:1042
 msgid "-v, --version            output version information and exit"
-msgstr "-v, --version            è¾\93å\87ºç\89\88æ\9c¬ä¿¡æ\81¯å¹¶é\80\80å\87º"
+msgstr "-v, --version            æ\98¾ç¤ºç\89\88æ\9c¬ä¿¡æ\81¯å¹¶é\80\80å\87º"
 
-#: src/diff.c:984
+#: src/diff.c:1044
 msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
-"<文件列表> 的格式可以是“文件1 文件2”、“目录1 目录2”、“目录 文件”或\n"
-"    “文件 目录”。"
+"<文件列表> 可以是 \"文件1 文件2\"、\"目录1 目录2\"、\"目录 文件\" 或 \"文件 "
+"目录\"。"
 
-#: src/diff.c:985
+#: src/diff.c:1045
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
-msgstr "如果使用 --from-file 或 --to-file 选项,<文件名> 的格式则不受限制。"
+msgstr ""
+"如果使用了 --from-file 或 --to-file 选项,<文件列表> 的格式则不受限制。"
 
-#: src/diff.c:986 src/diff3.c:533 src/sdiff.c:220
+#: src/diff.c:1046 src/diff3.c:531 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
-msgstr "如果 FILE 是 “-”,则由标准输入读取内容。"
+msgstr "如果 <文件> 是 \"-\",则读取标准输入的内容。"
 
-#: src/diff.c:996
+#: src/diff.c:1056
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "用法:%s [选项]... 文件列表\n"
 
-#: src/diff.c:997
+#: src/diff.c:1057
 msgid "Compare FILES line by line."
-msgstr "逐行比较<各文件>。"
+msgstr "逐行比较 <文件列表> 中的文件。"
 
-#: src/diff.c:1034
+#: src/diff.c:1094
 #, c-format
 msgid "conflicting %s option value '%s'"
-msgstr "互相冲突的 %s 选项,参数值为 “%s”"
+msgstr "%s 选项的值 \"%s\" 有冲突"
 
-#: src/diff.c:1047
+#: src/diff.c:1107
 #, c-format
 msgid "conflicting output style options"
-msgstr "互相冲突的输出风格选项"
+msgstr "输出风格选项有冲突"
 
-#: src/diff.c:1063
+#: src/diff.c:1123
 #, c-format
 msgid "invalid color '%s'"
-msgstr "无效的颜色“%s”"
+msgstr "无效的颜色 \"%s\""
 
-#: src/diff.c:1119 src/diff.c:1329
+#: src/diff.c:1197 src/diff.c:1401
 #, c-format
 msgid "Only in %s: %s\n"
-msgstr "只在 %s 存在:%s\n"
+msgstr "只在 %s 存在:%s\n"
 
-#: src/diff.c:1253
+#: src/diff.c:1325
 msgid "cannot compare '-' to a directory"
-msgstr "“-” 无法与目录作比较"
+msgstr "无法将 \"-\" 和目录进行比较"
 
-#: src/diff.c:1288
+#: src/diff.c:1360
 msgid "-D option not supported with directories"
-msgstr "-D 选项不支持目录使用"
+msgstr "不支持对目录使用 -D 选项"
 
-#: src/diff.c:1297
+#: src/diff.c:1369
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
-msgstr "%s 和 %s 有共同的子目录\n"
+msgstr "共同的子目录:%s 和 %s\n"
 
-#: src/diff.c:1339 src/diff.c:1389
+#: src/diff.c:1411 src/diff.c:1461
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
-msgstr "文件 %s 是%s而文件 %s 是%s\n"
+msgstr "文件 %s 是%s而文件 %s 是%s\n"
 
-#: src/diff.c:1375
+#: src/diff.c:1447
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
-msgstr "链接 %s 和 %s 不同\n"
+msgstr "符号链接 %s 和 %s 不同\n"
 
-#: src/diff.c:1462
+#: src/diff.c:1534
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "文件 %s 和 %s 相同\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff3.c:43
+#: src/diff3.c:51
 msgid "Randy Smith"
 msgstr "Randy Smith"
 
-#: src/diff3.c:356
+#: src/diff3.c:363
 #, c-format
 msgid "incompatible options"
-msgstr "不兼容的选项"
+msgstr "选项有冲突"
 
-#: src/diff3.c:396
+#: src/diff3.c:403
 msgid "'-' specified for more than one input file"
-msgstr "“-”作输入文件不可多于一处"
+msgstr "有多个输入文件是 \"-\""
 
-#: src/diff3.c:447 src/diff3.c:1295 src/diff3.c:1698 src/diff3.c:1753
-#: src/sdiff.c:308 src/sdiff.c:846 src/sdiff.c:857
+#: src/diff3.c:445 src/diff3.c:1284 src/diff3.c:1683 src/diff3.c:1738
+#: src/sdiff.c:306 src/sdiff.c:843 src/sdiff.c:854
 msgid "read failed"
-msgstr "读取失败"
+msgstr "读取失败"
 
-#: src/diff3.c:480
+#: src/diff3.c:478
 msgid "-A, --show-all              output all changes, bracketing conflicts"
-msgstr "-A, --show-all              输出所有要更改的部份,并括上互相冲突的地方"
+msgstr "-A, --show-all              输出所有变更,并使用尖括号标记冲突"
 
-#: src/diff3.c:482
+#: src/diff3.c:480
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
 msgstr ""
-"-e, --ed                    取出由 <旧文件> 至 <你的文件> 的更改部份,并输出"
-"可将此\n"
-"                              改变应用至 <我的文件> 的 ed 脚本"
+"-e, --ed                    输出可以将从 <旧文件> 到 <你的文件> 的变更\n"
+"                              整合进 <我的文件> 的 ed 脚本"
 
-#: src/diff3.c:484
+#: src/diff3.c:482
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
-msgstr "-E, --show-overlap          类似 -e,但括上互相冲突的地方"
+msgstr "-E, --show-overlap          类似 -e,但使用尖括号标记冲突"
 
-#: src/diff3.c:485
+#: src/diff3.c:483
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
-msgstr ""
-"-3, --easy-only             类似 -e,但只输出未合并而且不重叠的更改部份"
+msgstr "-3, --easy-only             类似 -e,但只输出不重叠的变更"
 
-#: src/diff3.c:486
+#: src/diff3.c:484
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
-msgstr "-x, --overlap-only          类似 -e,但只输出重叠的更改部份"
+msgstr "-x, --overlap-only          类似 -e,但只输出重叠的变更"
 
-#: src/diff3.c:487
+#: src/diff3.c:485
 msgid "-X                          like -x, but bracket conflicts"
-msgstr "-X                          类似 -x,但括上互相冲突的地方"
+msgstr "-X                          类似 -x,但使用尖括号标记冲突"
 
-#: src/diff3.c:488
+#: src/diff3.c:486
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
-msgstr "-i                          在 ed script 中附加‘w’和‘q’命令"
+msgstr "-i                          在 ed 脚本后追加 \"w\" 和 \"q\" 命令"
 
-#: src/diff3.c:490
+#: src/diff3.c:488
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
 msgstr ""
-"-m, --merge                 输出实际的合并后文件,若没有给出其它选项则\n"
-"                                æ ¹æ\8d® -A æ\93\8dä½\9c"
+"-m, --merge                 输出实际的合并后的文件,若没有给出其它选项,\n"
+"                                å\88\99ä¾\9dæ\8d® -A æ\93\8dä½\9cç\9a\84ç»\93æ\9e\9c"
 
-#: src/diff3.c:493
+#: src/diff3.c:491
 msgid "-a, --text                  treat all files as text"
-msgstr "-a  --text                  所有文件都以文本方式处理"
+msgstr "-a, --text                  将所有文件视为文本文件"
 
-#: src/diff3.c:494
+#: src/diff3.c:492
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
-msgstr "    --strip-trailing-cr     去除输入内容每行末端的回车(CR)字符"
+msgstr "    --strip-trailing-cr     去除输入内容行末的回车 (CR) 字符"
 
-#: src/diff3.c:495
+#: src/diff3.c:493
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
-msgstr "-T  --initial-tab           每行先加上 tab 字符,使 tab 字符可以对齐"
+msgstr ""
+"-T, --initial-tab           在每行前面加上一个制表符,以使制表符可以对齐"
 
-#: src/diff3.c:496
+#: src/diff3.c:494
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
-msgstr "    --diff-program=程序     用<程序>来比较文件"
+msgstr "    --diff-program=程序     使用 <程序> 来比较文件"
 
-#: src/diff3.c:497
+#: src/diff3.c:495
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
-msgstr ""
-"-L, --label=标签            使用指定<标签>而非文件名\n"
-"                                (可以重复最多三次)"
+msgstr "-L, --label=标签            使用 <标签> 替代文件名(可以重复最多三次)"
 
-#: src/diff3.c:500
+#: src/diff3.c:498
 msgid "    --help                  display this help and exit"
 msgstr "    --help                 显示此帮助信息并退出"
 
-#: src/diff3.c:501
+#: src/diff3.c:499
 msgid "-v, --version               output version information and exit"
-msgstr "-v, --version               è¾\93å\87ºç\89\88æ\9c¬ä¿¡æ\81¯å¹¶é\80\80å\87º"
+msgstr "-v, --version               æ\98¾ç¤ºç\89\88æ\9c¬ä¿¡æ\81¯å¹¶é\80\80å\87º"
 
-#: src/diff3.c:510
+#: src/diff3.c:508
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
 msgstr "用法:%s [选项]... 我的文件 旧文件 你的文件\n"
 
-#: src/diff3.c:512
+#: src/diff3.c:510
 msgid "Compare three files line by line."
 msgstr "逐行比较三个文件。"
 
-#: src/diff3.c:522
+#: src/diff3.c:520
 msgid ""
 "\n"
 "The default output format is a somewhat human-readable representation of\n"
@@ -1215,179 +1216,179 @@ msgid ""
 "robust than using ed.\n"
 msgstr ""
 "\n"
-"é»\98认ç\9a\84è¾\93å\87ºæ ¼å¼\8få\9fºæ\9c¬ä¸\8aæ\98¯äººç±»å\8f¯è¯»ç\9a\84å\8f\98æ\9b´è¡¨ç¤ºæ\96¹å¼\8f。\n"
+"é»\98认ç\9a\84è¾\93å\87ºæ ¼å¼\8få°\86使ç\94¨å\8f¯è¯»æ\80§å°\9aå\8f¯ç\9a\84æ\96¹å¼\8f表示å\8f\98æ\9b´。\n"
 "\n"
-"使用 -e, -E, -x, -X(或对应的长)选项将使用 ed 脚本格式输出而非使用默认格"
-"式。\n"
+"使用 -e、-E、-x、-X 选项(或对应的长选项)将使用 ed 脚本格式进行输出,\n"
+"而非使用默认格式。\n"
 "\n"
-"另外,-m (--merge) 选项将使得 diff3 在内部完成合并并输出实际的已合并文件。\n"
-"对那些不常见的输入来说,使用它来处理通常比使用 ed 更稳健。\n"
+"另外,-m (--merge) 选项将使得 diff3 在内部完成合并并输出实际的合并后的文"
+"件。\n"
+"对某些不寻常的输入而言,使用此选项将比使用 ed 更具鲁棒性。\n"
 
-#: src/diff3.c:534
+#: src/diff3.c:532
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
-msgstr "退出状态为 0 表示成功,1 表示冲突,2 表示有错误发生。"
+msgstr "退出状态为 0 表示成功,1 表示冲突,2 表示有错误发生。"
 
-#: src/diff3.c:727
+#: src/diff3.c:725
 msgid "internal error: screwup in format of diff blocks"
-msgstr "å\86\85é\83¨é\94\99误ï¼\9adiff å\8cºæ®µ的格式出错"
+msgstr "å\86\85é\83¨é\94\99误ï¼\9adiff å\9d\97的格式出错"
 
-#: src/diff3.c:1022
+#: src/diff3.c:1015
 #, c-format
 msgid "%s: diff failed: "
-msgstr "%sdiff 失败:"
+msgstr "%sdiff 失败:"
 
-#: src/diff3.c:1044
+#: src/diff3.c:1037
 msgid "internal error: invalid diff type in process_diff"
 msgstr "内部错误:process_diff 中的 diff 类型无效"
 
-#: src/diff3.c:1069
+#: src/diff3.c:1060
 msgid "invalid diff format; invalid change separator"
-msgstr "无效的 diff 格式;表示内容改变的分隔字符串无效"
+msgstr "无效的 diff 格式;无效的变更分隔符"
 
-#: src/diff3.c:1305
+#: src/diff3.c:1294
 msgid "invalid diff format; incomplete last line"
 msgstr "无效的 diff 格式;最后一行不完整"
 
-#: src/diff3.c:1329 src/sdiff.c:276 src/util.c:969
+#: src/diff3.c:1318 src/sdiff.c:274 src/util.c:1069
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
-msgstr "无法调用辅助程序 “%s”"
+msgstr "无法调用辅助程序 \"%s\""
 
-#: src/diff3.c:1354
+#: src/diff3.c:1343
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "无效的 diff 格式;错误的行前导字符"
 
-#: src/diff3.c:1427
+#: src/diff3.c:1416
 msgid "internal error: invalid diff type passed to output"
-msgstr "内部错误:传递给输出的 diff 类型无效"
+msgstr "内部错误:传递了无效的要输出的 diff 类型"
 
-#: src/diff3.c:1700 src/diff3.c:1757
+#: src/diff3.c:1685 src/diff3.c:1742
 msgid "input file shrank"
-msgstr "输入文件缩小"
+msgstr "输入文件缩小"
 
-#: src/dir.c:156
+#: src/dir.c:154
 #, c-format
 msgid "cannot compare file names '%s' and '%s'"
-msgstr "无法比较文件名 “%s” 和 “%s”"
+msgstr "无法比较文件名 \"%s\" 和 \"%s\""
 
-#: src/dir.c:225
+#: src/dir.c:223
 #, c-format
 msgid "%s: recursive directory loop"
-msgstr "%s递归目录循环"
+msgstr "%s递归目录循环"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/sdiff.c:44
 msgid "Thomas Lord"
 msgstr "Thomas Lord"
 
-#: src/sdiff.c:174
+#: src/sdiff.c:173
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
-msgstr "-o, --output=文件            交互式操作,并将结果写入<文件>"
+msgstr "-o, --output=文件            交互式操作,并将结果写入 <文件>"
 
-#: src/sdiff.c:176
+#: src/sdiff.c:175
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
-msgstr "-i, --ignore-case            忽略大小写的区别"
+msgstr "-i, --ignore-case            忽略大小写"
 
-#: src/sdiff.c:177
+#: src/sdiff.c:176
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
-msgstr "-E, --ignore-tab-expansion   忽略由制表符宽度造成的差异"
+msgstr "-E, --ignore-tab-expansion   忽略制表符展开造成的变更"
 
-#: src/sdiff.c:178
+#: src/sdiff.c:177
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
-msgstr "-Z, --ignore-trailing-space  忽略行末的空字符"
+msgstr "-Z, --ignore-trailing-space  忽略行末的空字符"
 
-#: src/sdiff.c:179
+#: src/sdiff.c:178
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
-msgstr "-b, --ignore-space-change    å¿½ç\95¥ç\94±ç©ºæ ¼æ\95°ä¸\8då\90\8cé\80 æ\88\90ç\9a\84å·®å¼\82"
+msgstr "-b, --ignore-space-change    å¿½ç\95¥ç©ºç\99½å­\97符æ\95°ä¸\8då\90\8cé\80 æ\88\90ç\9a\84å\8f\98æ\9b´"
 
-#: src/sdiff.c:180
+#: src/sdiff.c:179
 msgid "-W, --ignore-all-space       ignore all white space"
 msgstr "-W, --ignore-all-space       忽略所有空白字符"
 
-#: src/sdiff.c:181
+#: src/sdiff.c:180
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
-msgstr "-B, --ignore-blank-lines     忽略任何因空行而造成的差异"
+msgstr "-B, --ignore-blank-lines     忽略所有行均为空行的变更"
 
-#: src/sdiff.c:182
+#: src/sdiff.c:181
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
-"-I, --ignore-matching-lines=正则 若某行完全匹配 <正则>,则忽略由该行造成的差"
-"异"
+"-I, --ignore-matching-lines=正则  忽略所有行均与 <正则> 表达式匹配的变更"
 
-#: src/sdiff.c:183
+#: src/sdiff.c:182
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
-msgstr "    --strip-trailing-cr     去除输入内容每行末端的回车(CR)字符"
+msgstr "    --strip-trailing-cr      去除输入内容行末的回车 (CR) 字符"
 
-#: src/sdiff.c:184
+#: src/sdiff.c:183
 msgid "-a, --text                   treat all files as text"
-msgstr "-a  --text                  所有文件都以文本方式处理"
+msgstr "-a, --text                   将所有文件视为文本文件"
 
-#: src/sdiff.c:186
+#: src/sdiff.c:185
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
-msgstr "-W, --width=数量              每行显示最多 <数量>(默认 130)个字符"
+msgstr ""
+"-W, --width=数字             每行宽度最多 <数字> 个字符(默认为 130 个)"
 
-#: src/sdiff.c:187
+#: src/sdiff.c:186
 msgid ""
 "-l, --left-column            output only the left column of common lines"
-msgstr "-l, --left-column            å½\93æ\9c\89两è¡\8cç\9b¸å\90\8cæ\97¶å\8fªæ\98¾ç¤ºå·¦æ \8fç\9a\84ä¸\80è¡\8c"
+msgstr "-l, --left-column            å¯¹äº\8eç\9b¸å\90\8cç\9a\84è¡\8cå\8fªè¾\93å\87ºå·¦æ \8f"
 
-#: src/sdiff.c:188
+#: src/sdiff.c:187
 msgid "-s, --suppress-common-lines  do not output common lines"
-msgstr "-s, --suppress-common-lines  å½\93æ\9c\89两è¡\8cç\9b¸å\90\8cæ\97¶ä¸\8dæ\98¾ç¤º"
+msgstr "-s, --suppress-common-lines  å¯¹äº\8eç\9b¸å\90\8cç\9a\84è¡\8cä¸\8dè¿\9bè¡\8cè¾\93å\87º"
 
-#: src/sdiff.c:190
+#: src/sdiff.c:189
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
-msgstr "-t, --expand-tabs            将输出中的 tab 转换成空格"
+msgstr "-t, --expand-tabs            将输出中的制表符展开为空格"
 
-#: src/sdiff.c:191
+#: src/sdiff.c:190
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
-msgstr "    --tabsize=数字           TAB 格的宽度,默认为 8 个打印列宽"
+msgstr "    --tabsize=数字           制表符宽度(默认为 8)"
 
-#: src/sdiff.c:193
+#: src/sdiff.c:192
 msgid "-d, --minimal                try hard to find a smaller set of changes"
 msgstr "-d, --minimal                尽可能找出最小的差异集"
 
-#: src/sdiff.c:194
+#: src/sdiff.c:193
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
-msgstr ""
-"-H, --speed-large-files      假设文件十分大而且文件中含有许多微小的差异"
+msgstr "-H, --speed-large-files      假设文件很大,且含有很多零散的微小变更"
 
-#: src/sdiff.c:195
+#: src/sdiff.c:194
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
-msgstr "    --diff-program=程序      用<程序>来比较文件"
+msgstr "    --diff-program=程序      使用 <程序> 来比较文件"
 
-#: src/sdiff.c:197
+#: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
 msgstr "    --help                   显示此帮助信息并退出"
 
-#: src/sdiff.c:198
+#: src/sdiff.c:197
 msgid "-v, --version                output version information and exit"
-msgstr "-v, --version                è¾\93å\87ºç\89\88æ\9c¬ä¿¡æ\81¯å¹¶é\80\80å\87º"
+msgstr "-v, --version                æ\98¾ç¤ºç\89\88æ\9c¬ä¿¡æ\81¯å¹¶é\80\80å\87º"
 
-#: src/sdiff.c:207
+#: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
 msgstr "用法:%s [选项]... 文件1 文件2\n"
 
-#: src/sdiff.c:209
+#: src/sdiff.c:208
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
-msgstr "以并æ\8e\92æ\96¹å¼\8få\90\88并æ\96\87件之间的差异。"
+msgstr "以并æ\8e\92æ\98¾ç¤ºç\9a\84æ\96¹å¼\8få\90\88并 <æ\96\87件1> å\92\8c <æ\96\87件2> 之间的差异。"
 
-#: src/sdiff.c:330
+#: src/sdiff.c:328
 msgid "cannot interactively merge standard input"
-msgstr "ä¸\8då\85\81许以交äº\92æ\96¹式合并标准输入的内容"
+msgstr "ä¸\8då\85\81许交äº\92式合并标准输入的内容"
 
-#: src/sdiff.c:597
+#: src/sdiff.c:594
 msgid "both files to be compared are directories"
-msgstr "两个要比较的文件都是目录"
+msgstr "两个要比较的文件都是目录"
 
-#: src/sdiff.c:820
+#: src/sdiff.c:817
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
 "eb:\tEdit then use both versions.\n"
@@ -1400,23 +1401,23 @@ msgid ""
 "v:\tVerbosely include common lines.\n"
 "q:\tQuit.\n"
 msgstr ""
-"ed:编辑然后同时使用两边的版本,各版本分别加上标头以识别。\n"
-"eb:编辑然后同时使用两边的版本。\n"
-"el 或 e1:编辑然后使用左边的版本。\n"
-"er 或 e2:编辑然后使用右边的版本。\n"
-"e :丢弃两者然后编辑新的版本。\n"
-"l 或 1使用左边的版本。\n"
-"r 或 2使用右边的版本。\n"
-"s :加上两边一样的行时不在输出上显示。\n"
-"v :加上两边一样的行时会在输出上显示。\n"
-"q :退出。\n"
-
-#: src/util.c:662
+"ed:\t编辑两个版本的内容,然后使用。两个版本分别加上头部以便识别。\n"
+"eb:\t编辑两个版本的内容,然后使用。\n"
+"el 或 e1:\t编辑左边的版本,然后使用。\n"
+"er 或 e2:\t编辑右边的版本,然后使用。\n"
+"e:\t丢弃两个版本的内容,然后编辑一个新的版本。\n"
+"l 或 1:\t使用左边的版本。\n"
+"r 或 2:\t使用右边的版本。\n"
+"s:\t复制共有的行,且不显示输出\n"
+"v:\t复制共有的行,且显示详细输出\n"
+"q:\t退出。\n"
+
+#: src/util.c:755
 #, c-format
 msgid "unrecognized prefix: %s"
 msgstr "无法识别的前缀:%s"
 
-#: src/util.c:692
+#: src/util.c:785
 #, c-format
 msgid "unparsable value for --palette"
 msgstr "--palette 的值无法解析"
index 6fbadcb..4d89c04 100644 (file)
Binary files a/po/zh_TW.gmo and b/po/zh_TW.gmo differ
index d90183a..cc93fda 100644 (file)
@@ -3,46 +3,46 @@
 # This file is distributed under the same license as the diffutils package.
 #
 # Abel Cheung <maddog@linux.org.hk>, 2002, 2005.
-# pan93412 <pan93412@gmail.com>, 2019, 2021.
+# pan93412 <pan93412@gmail.com>, 2019, 2021, 2023.
 msgid ""
 msgstr ""
-"Project-Id-Version: diffutils 3.6.17\n"
+"Project-Id-Version: diffutils 3.8.43\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2021-08-01 18:56-0700\n"
-"PO-Revision-Date: 2021-05-09 20:53+0800\n"
+"POT-Creation-Date: 2023-05-21 01:51-0700\n"
+"PO-Revision-Date: 2023-02-03 01:20+0800\n"
 "Last-Translator: Yi-Jyun Pan <pan93412@gmail.com>\n"
 "Language-Team: Chinese (traditional) <zh-l10n@lists.linux.org.tw>\n"
 "Language: zh_TW\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Bugs: Report translation errors to the Language-Team address.\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Poedit 2.4.3\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"X-Generator: Poedit 3.2.2\n"
 
-#: lib/argmatch.c:132
+#: lib/argmatch.c:145
 #, c-format
 msgid "invalid argument %s for %s"
 msgstr "傳入 %2$s 之參數 %1$s 無效"
 
-#: lib/argmatch.c:133
+#: lib/argmatch.c:146
 #, c-format
 msgid "ambiguous argument %s for %s"
 msgstr "傳入 %2$s 之參數 %1$s 不明確"
 
-#: lib/argmatch.c:152 lib/argmatch.h:223
+#: lib/argmatch.c:165 lib/argmatch.h:242
 msgid "Valid arguments are:"
 msgstr "有效的參數為:"
 
-#: lib/c-stack.c:187
+#: lib/c-stack.c:186
 msgid "program error"
 msgstr "程式錯誤"
 
-#: lib/c-stack.c:188
+#: lib/c-stack.c:187
 msgid "stack overflow"
 msgstr "堆疊溢出"
 
-#: lib/error.c:195
+#: lib/error.c:193
 msgid "Unknown system error"
 msgstr "未知系統錯誤"
 
@@ -198,83 +198,83 @@ msgstr "%s:選項需要參數 -- '%c'\n"
 #. If you don't know what to put here, please see
 #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:355
+#: lib/quotearg.c:354
 msgid "`"
 msgstr "「"
 
-#: lib/quotearg.c:356
+#: lib/quotearg.c:355
 msgid "'"
 msgstr "」"
 
-#: lib/regcomp.c:135
+#: lib/regcomp.c:122
 msgid "Success"
 msgstr "成功"
 
-#: lib/regcomp.c:138
+#: lib/regcomp.c:125
 msgid "No match"
 msgstr "無符合項目"
 
-#: lib/regcomp.c:141
+#: lib/regcomp.c:128
 msgid "Invalid regular expression"
 msgstr "正規表示式無效"
 
-#: lib/regcomp.c:144
+#: lib/regcomp.c:131
 msgid "Invalid collation character"
 msgstr "定序字元無效"
 
-#: lib/regcomp.c:147
+#: lib/regcomp.c:134
 msgid "Invalid character class name"
 msgstr "字元類型名稱無效"
 
-#: lib/regcomp.c:150
+#: lib/regcomp.c:137
 msgid "Trailing backslash"
 msgstr "末尾反斜線"
 
-#: lib/regcomp.c:153
+#: lib/regcomp.c:140
 msgid "Invalid back reference"
 msgstr "向後參考無效"
 
-#: lib/regcomp.c:156
+#: lib/regcomp.c:143
 msgid "Unmatched [, [^, [:, [., or [="
 msgstr "不對稱的 [、[^、[:、[. 或 [="
 
-#: lib/regcomp.c:159
+#: lib/regcomp.c:146
 msgid "Unmatched ( or \\("
 msgstr "不對稱的 ( 或 \\("
 
-#: lib/regcomp.c:162
+#: lib/regcomp.c:149
 msgid "Unmatched \\{"
 msgstr "不對稱的 \\{"
 
-#: lib/regcomp.c:165
+#: lib/regcomp.c:152
 msgid "Invalid content of \\{\\}"
 msgstr "\\{\\} 中內容無效"
 
-#: lib/regcomp.c:168
+#: lib/regcomp.c:155
 msgid "Invalid range end"
 msgstr "結束範圍無效"
 
-#: lib/regcomp.c:171
+#: lib/regcomp.c:158
 msgid "Memory exhausted"
 msgstr "記憶體用盡"
 
-#: lib/regcomp.c:174
+#: lib/regcomp.c:161
 msgid "Invalid preceding regular expression"
 msgstr "前置正規表示式無效"
 
-#: lib/regcomp.c:177
+#: lib/regcomp.c:164
 msgid "Premature end of regular expression"
 msgstr "正規表示式過早結束"
 
-#: lib/regcomp.c:180
+#: lib/regcomp.c:167
 msgid "Regular expression too big"
 msgstr "正規表示式過長"
 
-#: lib/regcomp.c:183
+#: lib/regcomp.c:170
 msgid "Unmatched ) or \\)"
 msgstr "不對稱的 ) 或 \\)"
 
-#: lib/regcomp.c:676
+#: lib/regcomp.c:650
 msgid "No previous regular expression"
 msgstr "沒有上一個正規表示式"
 
@@ -306,7 +306,7 @@ msgstr "無法使用 %2$s 模式重開啟 %1$s"
 #: lib/xstdopen.c:34
 #, c-format
 msgid "standard file descriptors"
-msgstr ""
+msgstr "標準檔案描述元"
 
 #: lib/version-etc.c:73
 #, c-format
@@ -327,18 +327,15 @@ msgstr "(C)"
 
 #. TRANSLATORS: The %s placeholder is the web address of the GPL license.
 #: lib/version-etc.c:88
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "License GPLv3+: GNU GPL version 3 or later <%s>.\n"
 "This is free software: you are free to change and redistribute it.\n"
 "There is NO WARRANTY, to the extent permitted by law.\n"
 msgstr ""
-"\n"
-"GPLv3+ 授權條款:GNU GPL 第 3 版或更新版本 <https://gnu.org/licenses/gpl."
-"html>。\n"
+"GPLv3+ 授權條款:GNU GPL 第 3 版或更新版本 <%s>。\n"
 "這是自由軟體:您可隨意變更及重散佈。\n"
 "在法律允許的範圍內沒有任何保障。\n"
-"\n"
 
 #. TRANSLATORS: %s denotes an author name.
 #: lib/version-etc.c:105
@@ -452,11 +449,9 @@ msgstr ""
 #. "Report translation bugs to <...>\n" with the address for translation
 #. bugs (typically your translation team's web or email address).
 #: lib/version-etc.c:249
-#, fuzzy, c-format
+#, c-format
 msgid "Report bugs to: %s\n"
-msgstr ""
-"\n"
-"請回報臭蟲至:%s\n"
+msgstr "請回報臭蟲至:%s\n"
 
 #: lib/version-etc.c:251
 #, c-format
@@ -469,21 +464,21 @@ msgid "%s home page: <%s>\n"
 msgstr "%s 首頁:<%s>\n"
 
 #: lib/version-etc.c:260
-#, fuzzy, c-format
+#, c-format
 msgid "General help using GNU software: <%s>\n"
-msgstr "使用 GNU 軟體的一般說明:<https://www.gnu.org/gethelp/>\n"
+msgstr "使用 GNU 軟體的一般說明:<%s>\n"
 
-#: src/analyze.c:454 src/diff.c:1406
+#: src/analyze.c:455 src/diff.c:1478
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "檔案 %s 與 %s 不同\n"
 
-#: src/analyze.c:455
+#: src/analyze.c:456
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "二元碼檔 %s 與 %s 不同\n"
 
-#: src/analyze.c:706 src/diff3.c:1470 src/util.c:1254
+#: src/analyze.c:707 src/diff3.c:1457 src/util.c:1354
 msgid "No newline at end of file"
 msgstr "檔案末沒有 newline 字元"
 
@@ -497,39 +492,40 @@ msgstr "Torbjorn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:120 src/diff.c:879 src/diff3.c:467 src/sdiff.c:160
+#: src/cmp.c:124 src/diff.c:939 src/diff3.c:465 src/sdiff.c:159
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr "請嘗試「%s --help」取得更多資訊。"
 
-#: src/cmp.c:138
+#: src/cmp.c:142
 #, c-format
 msgid "invalid --ignore-initial value '%s'"
 msgstr "--ignore-initial 值「%s」無效"
 
-#: src/cmp.c:148
+#: src/cmp.c:152
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr "-l 和 -s 選項不兼容"
 
-#: src/cmp.c:156 src/diff.c:887 src/diff3.c:474 src/sdiff.c:168 src/sdiff.c:316
-#: src/sdiff.c:323 src/sdiff.c:876 src/util.c:852 src/util.c:952 src/util.c:959
+#: src/cmp.c:160 src/diff.c:947 src/diff3.c:472 src/sdiff.c:167 src/sdiff.c:314
+#: src/sdiff.c:321 src/sdiff.c:873 src/util.c:952 src/util.c:1052
+#: src/util.c:1059
 msgid "write failed"
 msgstr "寫入失敗"
 
-#: src/cmp.c:158 src/diff.c:889 src/diff.c:1471 src/diff3.c:476 src/sdiff.c:170
+#: src/cmp.c:162 src/diff.c:949 src/diff.c:1543 src/diff3.c:474 src/sdiff.c:169
 msgid "standard output"
 msgstr "標準輸出"
 
-#: src/cmp.c:162
+#: src/cmp.c:166
 msgid "-b, --print-bytes          print differing bytes"
 msgstr "-b, --print-bytes          輸出相異位置的位元組"
 
-#: src/cmp.c:163
+#: src/cmp.c:167
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
 msgstr "-i, --ignore-initial=SKIP         跳過兩個輸入資料的開頭 SKIP 位元組。"
 
-#: src/cmp.c:164
+#: src/cmp.c:168
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
@@ -537,37 +533,37 @@ msgstr ""
 "-i, --ignore-initial=SKIP1:SKIP2  跳過 <檔案1> 的最初 SKIP1 位元組,及\n"
 "                                      <檔案2> 的最初 SKIP2 位元組"
 
-#: src/cmp.c:166
+#: src/cmp.c:170
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
 msgstr "-l, --verbose              輸出位元數及不同的位元值"
 
-#: src/cmp.c:167
+#: src/cmp.c:171
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
 msgstr "-n, --bytes=LIMIT          最多比較 LIMIT 個位元組"
 
-#: src/cmp.c:168
+#: src/cmp.c:172
 msgid "-s, --quiet, --silent      suppress all normal output"
 msgstr "-s, --quiet, --silent      隱藏所有一般輸出"
 
-#: src/cmp.c:169
+#: src/cmp.c:173
 msgid "    --help                 display this help and exit"
 msgstr "    --help                 顯示此說明後離開"
 
-#: src/cmp.c:170
+#: src/cmp.c:174
 msgid "-v, --version              output version information and exit"
 msgstr "-v, --version              輸出版本資訊後離開"
 
-#: src/cmp.c:179
+#: src/cmp.c:183
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
 msgstr "用法:%s [選項]... 檔案1 [檔案2 [SKIP1 [SKIP2]]]\n"
 
-#: src/cmp.c:181
+#: src/cmp.c:185
 msgid "Compare two files byte by byte."
 msgstr "比較兩個檔案的每一個位元組。"
 
-#: src/cmp.c:183
+#: src/cmp.c:187
 msgid ""
 "The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
 "at the beginning of each file (zero by default)."
@@ -575,12 +571,12 @@ msgstr ""
 "選用的 SKIP1 及 SKIP2 指定了要在每個檔案開頭略過的\n"
 "位元組數目 (0 為預設值)。"
 
-#: src/cmp.c:186 src/diff.c:999 src/diff3.c:514 src/sdiff.c:211
+#: src/cmp.c:190 src/diff.c:1059 src/diff3.c:512 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr "長選項的必選參數,對短選項亦然。\n"
 
-#: src/cmp.c:192
+#: src/cmp.c:196
 msgid ""
 "SKIP values may be followed by the following multiplicative suffixes:\n"
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
@@ -590,253 +586,253 @@ msgstr ""
 "kB=1000、K=1024、MB=1000000、M=1048576、GB=1000000000、G=1073741824,\n"
 "還有 T、P、E、Z、Y 如此類推。"
 
-#: src/cmp.c:195
+#: src/cmp.c:199
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "如果檔案是「-」或沒有指定,則由標準輸入讀入資料。"
 
-#: src/cmp.c:196 src/diff.c:987 src/sdiff.c:221
+#: src/cmp.c:200 src/diff.c:1047 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr "如果兩邊內容一樣,回傳值是 0;1 代表兩邊內容不相同,2 代表有錯誤。"
 
-#: src/cmp.c:243
+#: src/cmp.c:247
 #, c-format
 msgid "invalid --bytes value '%s'"
 msgstr "無效的 --bytes 值「%s」"
 
-#: src/cmp.c:269 src/diff.c:797 src/diff3.c:361 src/sdiff.c:567
+#: src/cmp.c:273 src/diff.c:857 src/diff3.c:368 src/sdiff.c:564
 #, c-format
 msgid "missing operand after '%s'"
 msgstr "「%s」後缺少了參數"
 
-#: src/cmp.c:281 src/diff.c:799 src/diff3.c:363 src/sdiff.c:569
+#: src/cmp.c:285 src/diff.c:859 src/diff3.c:370 src/sdiff.c:566
 #, c-format
 msgid "extra operand '%s'"
 msgstr "多餘的參數「%s」"
 
-#: src/cmp.c:507
+#: src/cmp.c:521
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s 不同:第 %s 位元組,第 %s 行\n"
 
-#: src/cmp.c:523
+#: src/cmp.c:537
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
 msgstr "%s %s 不同:第 %s 行,第 %s 位元組為 %3o %s %3o %s\n"
 
-#: src/cmp.c:580
+#: src/cmp.c:594
 #, c-format
 msgid "cmp: EOF on %s which is empty\n"
 msgstr "cmp:有 EOF 在空白的 %s 上\n"
 
-#: src/cmp.c:594
+#: src/cmp.c:608
 #, c-format
 msgid "cmp: EOF on %s after byte %s, line %s\n"
 msgstr "cmp:有 EOF 在 %s 的第 %s 位元組,第 %s 行後\n"
 
-#: src/cmp.c:595
+#: src/cmp.c:609
 #, c-format
 msgid "cmp: EOF on %s after byte %s, in line %s\n"
 msgstr "cmp:有 EOF 在 %s 的第 %s 位元組後,在第 %s 行\n"
 
-#: src/cmp.c:601
+#: src/cmp.c:615
 #, c-format
 msgid "cmp: EOF on %s after byte %s\n"
 msgstr "cmp:有 EOF 在 %s 的第 %s 位元組後\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:51
+#: src/diff.c:50
 msgid "Paul Eggert"
 msgstr "Paul Eggert"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:52
+#: src/diff.c:51
 msgid "Mike Haertel"
 msgstr "Mike Haertel"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:53
+#: src/diff.c:52
 msgid "David Hayes"
 msgstr "David Hayes"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:54
+#: src/diff.c:53
 msgid "Richard Stallman"
 msgstr "Richard Stallman"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff.c:55
+#: src/diff.c:54
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:355
+#: src/diff.c:365
 #, c-format
 msgid "invalid context length '%s'"
 msgstr "無效的上下文長度「%s」"
 
-#: src/diff.c:438
+#: src/diff.c:487
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "此系統不支援分頁"
 
-#: src/diff.c:453 src/diff3.c:341
+#: src/diff.c:502 src/diff3.c:348
 #, c-format
 msgid "too many file label options"
 msgstr "太多有關檔案標籤的選項"
 
-#: src/diff.c:530
+#: src/diff.c:579
 #, c-format
 msgid "invalid width '%s'"
 msgstr "無效的寬度「%s」"
 
-#: src/diff.c:534
+#: src/diff.c:583
 msgid "conflicting width options"
 msgstr "出現互相抵觸的寬度選項"
 
-#: src/diff.c:559
+#: src/diff.c:608
 #, c-format
 msgid "invalid horizon length '%s'"
 msgstr "無效的水平長度「%s」"
 
-#: src/diff.c:615
+#: src/diff.c:664
 #, c-format
 msgid "invalid tabsize '%s'"
 msgstr "無效的定位字元寬度「%s」"
 
-#: src/diff.c:619
+#: src/diff.c:668
 msgid "conflicting tabsize options"
 msgstr "出現互相抵觸的定位字元寬度選項"
 
-#: src/diff.c:774
+#: src/diff.c:834
 msgid "--from-file and --to-file both specified"
 msgstr "同時指定了 --from-file 及 --to-file 選項"
 
-#: src/diff.c:893
+#: src/diff.c:953
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "    --normal                  輸出一般 diff (預設值)"
 
-#: src/diff.c:894
+#: src/diff.c:954
 msgid "-q, --brief                   report only when files differ"
 msgstr "-q, --brief                   僅在檔案不同時回報"
 
-#: src/diff.c:895
+#: src/diff.c:955
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr "-s, --report-identical-files  當兩個檔案一樣時仍然顯示結果"
 
-#: src/diff.c:896
+#: src/diff.c:956
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr "-c, -C NUM, --context[=NUM]   輸出 NUM (預設 3) 行複製 (copied) 上下文"
 
-#: src/diff.c:897
+#: src/diff.c:957
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
 "-u, -U NUM, --unified[=NUM]   輸出 NUM (預設 3) 行統一 (unified) 上下文"
 
-#: src/diff.c:898
+#: src/diff.c:958
 msgid "-e, --ed                      output an ed script"
 msgstr "-e, --ed                      輸出 ed 文稿"
 
-#: src/diff.c:899
+#: src/diff.c:959
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n, --rcs                     輸出 RCS 格式的 diff"
 
-#: src/diff.c:900
+#: src/diff.c:960
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side            輸出成兩列"
 
-#: src/diff.c:901
+#: src/diff.c:961
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr "-W, --width=NUM               輸出最多 NUM (預設 130) 輸出列"
 
-#: src/diff.c:902
+#: src/diff.c:962
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr "    --left-column             當有兩行相同時只顯示左邊的一行"
 
-#: src/diff.c:903
+#: src/diff.c:963
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "    --suppress-common-lines   不輸出相同行"
 
-#: src/diff.c:905
+#: src/diff.c:965
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr "-p, --show-c-function         顯示 C 函數變更的地方"
 
-#: src/diff.c:906
+#: src/diff.c:966
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr "-F, --show-function-line=RE   顯示最接近符合 RE 的行"
 
-#: src/diff.c:907
+#: src/diff.c:967
 msgid ""
 "    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
 msgstr ""
 "    --label 標籤              使用 <標籤> 而不用檔名及時間戳 (可以重複)"
 
-#: src/diff.c:910
+#: src/diff.c:970
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr "-t, --expand-tabs             將輸出中的 tab 換成空格"
 
-#: src/diff.c:911
+#: src/diff.c:971
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr "-T, --initial-tab             每行先加上 tab 字元,使 tab 字元可以對齊"
 
-#: src/diff.c:912
+#: src/diff.c:972
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=NUM             定位字元 (tab) 的寬度,預設為 8 個輸出列。"
 
-#: src/diff.c:913
+#: src/diff.c:973
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr "    --suppress-blank-empty    隱藏每個空輸出行前的空白及 Tab"
 
-#: src/diff.c:914
+#: src/diff.c:974
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr "-l, --paginate                將輸出送至「pr」指令來分頁"
 
-#: src/diff.c:916
+#: src/diff.c:976
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr "-r, --recursive                 遞迴比較所有找到的子目錄"
 
-#: src/diff.c:917
+#: src/diff.c:977
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr "    --no-dereference            不追蹤符號連結"
 
-#: src/diff.c:918
+#: src/diff.c:978
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr "-N, --new-file                  將不存在的檔案當作空檔案處理"
 
-#: src/diff.c:919
+#: src/diff.c:979
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr "    --unidirectional-new-file   將第一個不存在檔案當作空檔案處理"
 
-#: src/diff.c:920
+#: src/diff.c:980
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr "    --ignore-file-name-case     比較檔案名稱時不區分大小寫"
 
-#: src/diff.c:921
+#: src/diff.c:981
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr "    --no-ignore-file-name-case  比較檔案名稱時會區分大小寫"
 
-#: src/diff.c:922
+#: src/diff.c:982
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr "-x, --exclude=PAT               排除符合 PAT 的檔案"
 
-#: src/diff.c:923
+#: src/diff.c:983
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr "-X, --exclude-from=檔案         排除符合 <檔案> 中任何樣式的檔案"
 
-#: src/diff.c:924
+#: src/diff.c:984
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr "-S, --starting-file=檔案        比較目錄時從 <檔案> 開始"
 
-#: src/diff.c:925
+#: src/diff.c:985
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
@@ -844,7 +840,7 @@ msgstr ""
 "    --from-file=檔案1           將 <檔案1> 和參數中的所有檔案/目錄作比較;\n"
 "                                  <檔案1> 可以是目錄"
 
-#: src/diff.c:927
+#: src/diff.c:987
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
@@ -852,80 +848,80 @@ msgstr ""
 "    --to-file=檔案2             將參數中的所有檔案/目錄和 <檔案2> 作比較;\n"
 "                                  <檔案2> 可以是目錄"
 
-#: src/diff.c:930
+#: src/diff.c:990
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr "-i, --ignore-case               不區分檔案內容的大小寫"
 
-#: src/diff.c:931
+#: src/diff.c:991
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr "-E, --ignore-tab-expansion      忽略因 Tab 展開所致的變更"
 
-#: src/diff.c:932
+#: src/diff.c:992
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr "-Z, --ignore-trailing-space     忽略行末空白"
 
-#: src/diff.c:933
+#: src/diff.c:993
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr "-b, --ignore-space-change       忽略因空白數變更所致的變更"
 
-#: src/diff.c:934
+#: src/diff.c:994
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w, --ignore-all-space          忽略所有空白"
 
-#: src/diff.c:935
+#: src/diff.c:995
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr "-B, --ignore-blank-lines        忽略空列的變更"
 
-#: src/diff.c:936
+#: src/diff.c:996
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr "-I, --ignore-matching-lines=RE   忽略所有列都符合 RE 的變更"
 
-#: src/diff.c:938
+#: src/diff.c:998
 msgid "-a, --text                      treat all files as text"
 msgstr "-a, --text                      所有檔案都以文字檔方式處理"
 
-#: src/diff.c:939
+#: src/diff.c:999
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr         去除輸入資料每行末端的 carriage return 字元"
 
-#: src/diff.c:941
+#: src/diff.c:1001
 msgid "    --binary                    read and write data in binary mode"
 msgstr "    --binary                    以二進位模式讀寫資料。"
 
-#: src/diff.c:944
+#: src/diff.c:1004
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
 "-D, --ifdef=NAME                輸出包含 '#ifdef NAME' 差異的已合併檔案"
 
-#: src/diff.c:945
+#: src/diff.c:1005
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr "    --GTYPE-group-format=GFMT   使用 GFMT 格式化 GTYPE 輸入資料群組"
 
-#: src/diff.c:946
+#: src/diff.c:1006
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr "    --line-format=LFMT          使用 LFMT 格式化所有輸入資料行"
 
-#: src/diff.c:947
+#: src/diff.c:1007
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr "    --LTYPE-line-format=LFMT    使用 LFMT 格式化 LTYPE 輸入行"
 
-#: src/diff.c:948
+#: src/diff.c:1008
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
 msgstr "  這些格式化選項提供了微調 diff 輸出的選項,使 -D/--if-def 一般化。"
 
-#: src/diff.c:950
+#: src/diff.c:1010
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
 "  LTYPE 可以是 'old'、'new' 或 'unchanged'。GTYPE 可以是 LTYPE 或 'changed'。"
 
-#: src/diff.c:951
+#: src/diff.c:1011
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -952,7 +948,7 @@ msgstr ""
 "        E  F-1\n"
 "        M  L+1    %(A=B?T:E)  如果 A 等於 B 就作 T 否則就 E"
 
-#: src/diff.c:963
+#: src/diff.c:1023
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -964,7 +960,7 @@ msgstr ""
 "    %l  該行內容,但不包括結束的換行字元\n"
 "    %[-][寬度][.[精確度]]{doxX}n  以 printf 格式表示之輸入資料行號"
 
-#: src/diff.c:967
+#: src/diff.c:1027
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -978,30 +974,30 @@ msgstr ""
 "    %c'\\OOO'  八進位碼是 OOO 的字元\n"
 "    C    C 字元 (其他字元表示自身)"
 
-#: src/diff.c:973
+#: src/diff.c:1033
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr "-d, --minimal            盡可能找出最小差異"
 
-#: src/diff.c:974
+#: src/diff.c:1034
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr "    --horizon-lines=NUM  保留 NUM 行的共同前綴及後綴"
 
-#: src/diff.c:975
+#: src/diff.c:1035
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr "    --speed-large-files  假設檔案十分大而且當中含有許多些微的差異"
 
-#: src/diff.c:976
-#, fuzzy
+#: src/diff.c:1036
 msgid ""
 "    --color[=WHEN]       color output; WHEN is 'never', 'always', or "
 "'auto';\n"
 "                           plain --color means --color='auto'"
 msgstr ""
 "    --color[=WHEN]       對輸出上色;WHEN 可以是 'never'、\n"
-"                         'always' 或 'auto' (預設值)"
+"                           'always' 或 'auto' (預設值)。\n"
+"                           純 --color 等於 --color='auto'"
 
-#: src/diff.c:978
+#: src/diff.c:1038
 msgid ""
 "    --palette=PALETTE    the colors to use when --color is active; PALETTE "
 "is\n"
@@ -1010,111 +1006,111 @@ msgstr ""
 "    --palette=調色盤     啟用 --color 後要用的顏色;<調色盤> 是使用\n"
 "                         冒號 (:) 分隔的 terminfo 功能 (capabilities)"
 
-#: src/diff.c:981
+#: src/diff.c:1041
 msgid "    --help               display this help and exit"
 msgstr "    --help               顯示此說明後離開"
 
-#: src/diff.c:982
+#: src/diff.c:1042
 msgid "-v, --version            output version information and exit"
 msgstr "-v, --version            輸出版本資訊後離開"
 
-#: src/diff.c:984
+#: src/diff.c:1044
 msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
 "<檔案> 的格式可以是「<檔案1> <檔案2>」、「<目錄1> <目錄2>」、\n"
 "「<目錄> <檔案>」或「<檔案> <目錄>」。"
 
-#: src/diff.c:985
+#: src/diff.c:1045
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr "如果使用 --from-file 或 --to-file 選項,<檔案> 的格式則不受限制。"
 
-#: src/diff.c:986 src/diff3.c:533 src/sdiff.c:220
+#: src/diff.c:1046 src/diff3.c:531 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
 msgstr "如果 <檔案> 是「-」,則由標準輸入讀取資料。"
 
 # It is intentional *not* to translate FILES -- maddog
-#: src/diff.c:996
+#: src/diff.c:1056
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "用法:%s [選項]... FILES\n"
 
-#: src/diff.c:997
+#: src/diff.c:1057
 msgid "Compare FILES line by line."
 msgstr "比較 <檔案> 的每一行。"
 
-#: src/diff.c:1034
+#: src/diff.c:1094
 #, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "%s 選項的值「%s」衝突"
 
-#: src/diff.c:1047
+#: src/diff.c:1107
 #, c-format
 msgid "conflicting output style options"
 msgstr "互相矛盾的輸出模式選項"
 
-#: src/diff.c:1063
+#: src/diff.c:1123
 #, c-format
 msgid "invalid color '%s'"
 msgstr "顏色 '%s' 無效"
 
-#: src/diff.c:1119 src/diff.c:1329
+#: src/diff.c:1197 src/diff.c:1401
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "只在 %s 存在:%s\n"
 
-#: src/diff.c:1253
+#: src/diff.c:1325
 msgid "cannot compare '-' to a directory"
 msgstr "「-」無法與目錄作比較"
 
-#: src/diff.c:1288
+#: src/diff.c:1360
 msgid "-D option not supported with directories"
 msgstr "-D 選項不可配合目錄使用"
 
-#: src/diff.c:1297
+#: src/diff.c:1369
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "%s 和 %s 有共同的副目錄\n"
 
-#: src/diff.c:1339 src/diff.c:1389
+#: src/diff.c:1411 src/diff.c:1461
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr "檔案 %s 是%s而檔案 %s 是%s\n"
 
-#: src/diff.c:1375
+#: src/diff.c:1447
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "符號連結 %s 和 %s 不同\n"
 
-#: src/diff.c:1462
+#: src/diff.c:1534
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "檔案 %s 和 %s 相同\n"
 
 #. This is a proper name. See the gettext manual, section Names.
-#: src/diff3.c:43
+#: src/diff3.c:51
 msgid "Randy Smith"
 msgstr "Randy Smith"
 
-#: src/diff3.c:356
+#: src/diff3.c:363
 #, c-format
 msgid "incompatible options"
 msgstr "不兼容的選項"
 
-#: src/diff3.c:396
+#: src/diff3.c:403
 msgid "'-' specified for more than one input file"
 msgstr "輸入檔「-」不可多於一個"
 
-#: src/diff3.c:447 src/diff3.c:1295 src/diff3.c:1698 src/diff3.c:1753
-#: src/sdiff.c:308 src/sdiff.c:846 src/sdiff.c:857
+#: src/diff3.c:445 src/diff3.c:1284 src/diff3.c:1683 src/diff3.c:1738
+#: src/sdiff.c:306 src/sdiff.c:843 src/sdiff.c:854
 msgid "read failed"
 msgstr "讀取資料失敗"
 
-#: src/diff3.c:480
+#: src/diff3.c:478
 msgid "-A, --show-all              output all changes, bracketing conflicts"
 msgstr "-A, --show-all              輸出所有變更,並使用括號括起衝突部份"
 
-#: src/diff3.c:482
+#: src/diff3.c:480
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
@@ -1122,30 +1118,30 @@ msgstr ""
 "-e, --ed                    輸出會將 OLDFILE 變更合併至 YOURFILE 後\n"
 "                                輸出到 MYFILE 的 ed 文稿"
 
-#: src/diff3.c:484
+#: src/diff3.c:482
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
 msgstr "-E, --show-overlap          類似 -e 但會用括號括起衝突部份"
 
-#: src/diff3.c:485
+#: src/diff3.c:483
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
 msgstr "-3, --easy-only             類似 -e 但只合併不重疊的變更"
 
-#: src/diff3.c:486
+#: src/diff3.c:484
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
 msgstr "-x, --overlap-only          類似 -e 但只合併有重疊的變更"
 
-#: src/diff3.c:487
+#: src/diff3.c:485
 msgid "-X                          like -x, but bracket conflicts"
 msgstr "-X                          類似 -x 但會將衝突處用括號括起"
 
-#: src/diff3.c:488
+#: src/diff3.c:486
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
 msgstr "-i                          將 'w' 和 'q' 指令加至 ed 文稿末尾"
 
-#: src/diff3.c:490
+#: src/diff3.c:488
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
@@ -1153,24 +1149,24 @@ msgstr ""
 "-m, --merge                 輸出實際合併的檔案,\n"
 "                                如果未提供其他選項則根據 -A"
 
-#: src/diff3.c:493
+#: src/diff3.c:491
 msgid "-a, --text                  treat all files as text"
 msgstr "-a, --text                  所有檔案都以文字檔方式處理"
 
-#: src/diff3.c:494
+#: src/diff3.c:492
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr     去除輸入資料每行末端的 carriage return 字元"
 
-#: src/diff3.c:495
+#: src/diff3.c:493
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
 msgstr "-T, --initial-tab           每行先加上 tab 字元,使 tab 字元可以對齊。"
 
-#: src/diff3.c:496
+#: src/diff3.c:494
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
 msgstr "    --diff-program=程式     使用 <程式> 比較檔案"
 
-#: src/diff3.c:497
+#: src/diff3.c:495
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
@@ -1178,24 +1174,24 @@ msgstr ""
 "-L, --label=標籤            使用 <標籤> 而非檔名\n"
 "                                (可重複使用三次)"
 
-#: src/diff3.c:500
+#: src/diff3.c:498
 msgid "    --help                  display this help and exit"
 msgstr "    --help                  顯示此說明後離開"
 
-#: src/diff3.c:501
+#: src/diff3.c:499
 msgid "-v, --version               output version information and exit"
 msgstr "-v, --version               輸出版本資訊後離開"
 
-#: src/diff3.c:510
+#: src/diff3.c:508
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
 msgstr "用法:%s [選項]... MYFILE OLDFILE YOURFILE\n"
 
-#: src/diff3.c:512
+#: src/diff3.c:510
 msgid "Compare three files line by line."
 msgstr "比較三個檔案的每一行。"
 
-#: src/diff3.c:522
+#: src/diff3.c:520
 msgid ""
 "\n"
 "The default output format is a somewhat human-readable representation of\n"
@@ -1217,54 +1213,54 @@ msgstr ""
 "最後,-m (--merge) 選項能讓 diff3 在內部合併,並輸出實際合併的檔案。\n"
 "在某些不常見的輸入情況,這會比使用 ed 還來得可靠。\n"
 
-#: src/diff3.c:534
+#: src/diff3.c:532
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
 msgstr "回傳值是 0 的話代表指令成功執行,1 代表內容有衝突,2 代表有錯誤。"
 
-#: src/diff3.c:727
+#: src/diff3.c:725
 msgid "internal error: screwup in format of diff blocks"
 msgstr "內部錯誤:diff 區段的格式出錯"
 
-#: src/diff3.c:1022
+#: src/diff3.c:1015
 #, c-format
 msgid "%s: diff failed: "
 msgstr "%s:diff 失敗:"
 
-#: src/diff3.c:1044
+#: src/diff3.c:1037
 msgid "internal error: invalid diff type in process_diff"
 msgstr "內部錯誤:process_diff 中的 diff 類型無效"
 
-#: src/diff3.c:1069
+#: src/diff3.c:1060
 msgid "invalid diff format; invalid change separator"
 msgstr "無效的 diff 格式;表示資料變更的分隔字串無效"
 
-#: src/diff3.c:1305
+#: src/diff3.c:1294
 msgid "invalid diff format; incomplete last line"
 msgstr "無效的 diff 格式;最後一行不完整"
 
-#: src/diff3.c:1329 src/sdiff.c:276 src/util.c:969
+#: src/diff3.c:1318 src/sdiff.c:274 src/util.c:1069
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "無法執行「%s」子程式"
 
-#: src/diff3.c:1354
+#: src/diff3.c:1343
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "diff 格式無效;某行的第一個字元不正確"
 
-#: src/diff3.c:1427
+#: src/diff3.c:1416
 msgid "internal error: invalid diff type passed to output"
 msgstr "內部錯誤:準備輸出的 diff 資料類型無效"
 
-#: src/diff3.c:1700 src/diff3.c:1757
+#: src/diff3.c:1685 src/diff3.c:1742
 msgid "input file shrank"
 msgstr "輸入檔縮小"
 
-#: src/dir.c:156
+#: src/dir.c:154
 #, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "無法比較檔案名稱「%s」和「%s」"
 
-#: src/dir.c:225
+#: src/dir.c:223
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s:遞迴目錄循環"
@@ -1274,113 +1270,113 @@ msgstr "%s:遞迴目錄循環"
 msgid "Thomas Lord"
 msgstr "Thomas Lord"
 
-#: src/sdiff.c:174
+#: src/sdiff.c:173
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
 msgstr "-o, --output=檔案            互動式操作,並將結果寫入 <檔案>。"
 
-#: src/sdiff.c:176
+#: src/sdiff.c:175
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
 msgstr "-i, --ignore-case            不區分檔案內容中的大小寫"
 
-#: src/sdiff.c:177
+#: src/sdiff.c:176
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
 msgstr "-E, --ignore-tab-expansion   忽略因展開 tab 而造成的差異。"
 
-#: src/sdiff.c:178
+#: src/sdiff.c:177
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
 msgstr "-Z, --ignore-trailing-space  忽略所有行末空白"
 
-#: src/sdiff.c:179
+#: src/sdiff.c:178
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
 msgstr "-b, --ignore-space-change    忽略因空白字元數目不同而造成的差異"
 
-#: src/sdiff.c:180
+#: src/sdiff.c:179
 msgid "-W, --ignore-all-space       ignore all white space"
 msgstr "-W, --ignore-all-space       忽略所有空白"
 
-#: src/sdiff.c:181
+#: src/sdiff.c:180
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
 msgstr "-B, --ignore-blank-lines     忽略因空列而造成的差異"
 
-#: src/sdiff.c:182
+#: src/sdiff.c:181
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr "-I, --ignore-matching-lines=RE  忽略所有其列符合 RE 的變更"
 
-#: src/sdiff.c:183
+#: src/sdiff.c:182
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr      去除輸入資料每行末端的 carriage return 字元。"
 
-#: src/sdiff.c:184
+#: src/sdiff.c:183
 msgid "-a, --text                   treat all files as text"
 msgstr "-a, --text                   將所有檔案依文字檔處理"
 
-#: src/sdiff.c:186
+#: src/sdiff.c:185
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
 msgstr "-w, --width=NUM              最多輸出 NUM(預設 130)個輸出列。"
 
-#: src/sdiff.c:187
+#: src/sdiff.c:186
 msgid ""
 "-l, --left-column            output only the left column of common lines"
 msgstr "-l, --left-column            兩行相同時只顯示左列"
 
-#: src/sdiff.c:188
+#: src/sdiff.c:187
 msgid "-s, --suppress-common-lines  do not output common lines"
 msgstr "-s, --suppress-common-lines  不輸出相同行"
 
-#: src/sdiff.c:190
+#: src/sdiff.c:189
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
 msgstr "-t, --expand-tabs            將輸出中的 tab 換成空格。"
 
-#: src/sdiff.c:191
+#: src/sdiff.c:190
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=NUM            定位字元 (tab) 的寬度,預設為 8 個輸出列。"
 
-#: src/sdiff.c:193
+#: src/sdiff.c:192
 msgid "-d, --minimal                try hard to find a smaller set of changes"
 msgstr "-d, --minimal                盡可能找出最小差異"
 
-#: src/sdiff.c:194
+#: src/sdiff.c:193
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
 msgstr "-H, --speed-large-files      假設檔案十分大,且當中含有許多些微的差異"
 
-#: src/sdiff.c:195
+#: src/sdiff.c:194
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
 msgstr "    --diff-program=程式      使用 <程式> 比較檔案"
 
-#: src/sdiff.c:197
+#: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
 msgstr "    --help                   顯示此說明後離開"
 
-#: src/sdiff.c:198
+#: src/sdiff.c:197
 msgid "-v, --version                output version information and exit"
 msgstr "-v, --version                輸出版本資訊後離開"
 
-#: src/sdiff.c:207
+#: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
 msgstr "用法:%s [選項]... 檔案1 檔案2\n"
 
-#: src/sdiff.c:209
+#: src/sdiff.c:208
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
 msgstr "以並排方式合併 <檔案1> 和 <檔案2> 之間的差異。"
 
-#: src/sdiff.c:330
+#: src/sdiff.c:328
 msgid "cannot interactively merge standard input"
 msgstr "不允許以互動方式合併標準輸入的資料"
 
-#: src/sdiff.c:597
+#: src/sdiff.c:594
 msgid "both files to be compared are directories"
 msgstr "兩個要比較的都是目錄"
 
-#: src/sdiff.c:820
+#: src/sdiff.c:817
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
 "eb:\tEdit then use both versions.\n"
@@ -1404,29 +1400,25 @@ msgstr ""
 "v:\t詳細地加入共同行。\n"
 "q:\t離開。\n"
 
-#: src/util.c:662
+#: src/util.c:755
 #, c-format
 msgid "unrecognized prefix: %s"
 msgstr "前綴無法識別:%s"
 
-#: src/util.c:692
+#: src/util.c:785
 #, c-format
 msgid "unparsable value for --palette"
 msgstr "無法解析傳入 --palette 的值"
 
-#, c-format
 #~ msgid "invalid %s%s argument '%s'"
 #~ msgstr "%s%s 參數「%s」無效"
 
-#, c-format
 #~ msgid "invalid suffix in %s%s argument '%s'"
 #~ msgstr "%s%s 參數「%s」有無效後綴"
 
-#, c-format
 #~ msgid "%s%s argument '%s' too large"
 #~ msgstr "%s%s 參數「%s」過長"
 
-#, c-format
 #~ msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
 #~ msgstr "%s 首頁:<https://www.gnu.org/software/%s/>\n"
 
index d27a54d..3364a00 100644 (file)
@@ -1,6 +1,6 @@
 # Automakefile for GNU diffutils programs.
 
-# Copyright (C) 2001-2002, 2006, 2009-2013, 2015-2021 Free Software Foundation,
+# Copyright (C) 2001-2002, 2006, 2009-2013, 2015-2023 Free Software Foundation,
 # Inc.
 
 # This program is free software: you can redistribute it and/or modify
@@ -30,11 +30,16 @@ LDADD = \
   $(LIBINTL) \
   $(LIBICONV) \
   $(LIBSIGSEGV) \
-  $(LIB_CLOCK_GETTIME)
+  $(LIBTHREAD) \
+  $(LIBUNISTRING) \
+  $(CLOCK_TIME_LIB) \
+  $(HARD_LOCALE_LIB) \
+  $(MBRTOWC_LIB) \
+  $(SETLOCALE_NULL_LIB)
 
 diff_LDADD = $(LDADD)
 cmp_LDADD = $(LDADD)
-sdiff_LDADD = $(LDADD)
+sdiff_LDADD = $(LDADD) $(GETRANDOM_LIB)
 diff3_LDADD = $(LDADD)
 
 cmp_SOURCES = cmp.c
index de31548..dcd32d8 100644 (file)
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.16d from Makefile.am.
+# Makefile.in generated by automake 1.16i from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2021 Free Software Foundation, Inc.
+# Copyright (C) 1994-2023 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,7 @@
 
 # Automakefile for GNU diffutils programs.
 
-# Copyright (C) 2001-2002, 2006, 2009-2013, 2015-2021 Free Software Foundation,
+# Copyright (C) 2001-2002, 2006, 2009-2013, 2015-2023 Free Software Foundation,
 # Inc.
 
 # This program is free software: you can redistribute it and/or modify
@@ -90,6 +90,8 @@ am__make_running_with_option = \
   test $$has_opt = yes
 am__make_dryrun = (target_option=n; $(am__make_running_with_option))
 am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+am__rm_f = rm -f $(am__rm_f_notfound)
+am__rm_rf = rm -rf $(am__rm_f_notfound)
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -116,19 +118,22 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/__inline.m4 \
        $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \
        $(top_srcdir)/m4/arpa_inet_h.m4 \
-       $(top_srcdir)/m4/asm-underscore.m4 $(top_srcdir)/m4/atoll.m4 \
+       $(top_srcdir)/m4/asm-underscore.m4 \
+       $(top_srcdir)/m4/assert_h.m4 $(top_srcdir)/m4/atoll.m4 \
        $(top_srcdir)/m4/btowc.m4 $(top_srcdir)/m4/builtin-expect.m4 \
-       $(top_srcdir)/m4/c-stack.m4 $(top_srcdir)/m4/calloc.m4 \
-       $(top_srcdir)/m4/clock_time.m4 $(top_srcdir)/m4/close.m4 \
-       $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
-       $(top_srcdir)/m4/ctype_h.m4 \
+       $(top_srcdir)/m4/c-bool.m4 $(top_srcdir)/m4/c-stack.m4 \
+       $(top_srcdir)/m4/calloc.m4 $(top_srcdir)/m4/clock_time.m4 \
+       $(top_srcdir)/m4/close.m4 $(top_srcdir)/m4/codeset.m4 \
+       $(top_srcdir)/m4/config-h.m4 $(top_srcdir)/m4/ctype_h.m4 \
        $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \
        $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \
        $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \
-       $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \
-       $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \
-       $(top_srcdir)/m4/fcntl.m4 $(top_srcdir)/m4/fcntl_h.m4 \
-       $(top_srcdir)/m4/fdopen.m4 $(top_srcdir)/m4/filenamecat.m4 \
+       $(top_srcdir)/m4/error_h.m4 $(top_srcdir)/m4/exponentd.m4 \
+       $(top_srcdir)/m4/extensions.m4 \
+       $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fclose.m4 \
+       $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \
+       $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopen.m4 \
+       $(top_srcdir)/m4/fflush.m4 $(top_srcdir)/m4/filenamecat.m4 \
        $(top_srcdir)/m4/flexmember.m4 $(top_srcdir)/m4/float_h.m4 \
        $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fnmatch_h.m4 \
        $(top_srcdir)/m4/fopen.m4 $(top_srcdir)/m4/fpieee.m4 \
@@ -144,15 +149,16 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \
        $(top_srcdir)/m4/iconv_h.m4 $(top_srcdir)/m4/iconv_open.m4 \
        $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inet_pton.m4 \
-       $(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/intlmacosx.m4 \
-       $(top_srcdir)/m4/intmax_t.m4 $(top_srcdir)/m4/inttostr.m4 \
-       $(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-       $(top_srcdir)/m4/ioctl.m4 $(top_srcdir)/m4/isblank.m4 \
-       $(top_srcdir)/m4/iswblank.m4 $(top_srcdir)/m4/iswdigit.m4 \
-       $(top_srcdir)/m4/iswxdigit.m4 $(top_srcdir)/m4/langinfo_h.m4 \
-       $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lib-ld.m4 \
-       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-       $(top_srcdir)/m4/libsigsegv.m4 \
+       $(top_srcdir)/m4/inline.m4 \
+       $(top_srcdir)/m4/intl-thread-locale.m4 \
+       $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \
+       $(top_srcdir)/m4/inttostr.m4 $(top_srcdir)/m4/inttypes.m4 \
+       $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/ioctl.m4 \
+       $(top_srcdir)/m4/isblank.m4 $(top_srcdir)/m4/iswblank.m4 \
+       $(top_srcdir)/m4/iswdigit.m4 $(top_srcdir)/m4/iswxdigit.m4 \
+       $(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/largefile.m4 \
+       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libsigsegv.m4 \
        $(top_srcdir)/m4/libunistring-base.m4 \
        $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/localcharset.m4 \
        $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \
@@ -174,11 +180,13 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/netinet_in_h.m4 \
        $(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \
        $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/nstrftime.m4 \
-       $(top_srcdir)/m4/off_t.m4 $(top_srcdir)/m4/open-cloexec.m4 \
+       $(top_srcdir)/m4/nullptr.m4 $(top_srcdir)/m4/off_t.m4 \
+       $(top_srcdir)/m4/open-cloexec.m4 \
        $(top_srcdir)/m4/open-slash.m4 $(top_srcdir)/m4/open.m4 \
-       $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/perror.m4 \
-       $(top_srcdir)/m4/pipe.m4 $(top_srcdir)/m4/po.m4 \
-       $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \
+       $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/perl.m4 \
+       $(top_srcdir)/m4/perror.m4 $(top_srcdir)/m4/pipe.m4 \
+       $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf.m4 \
+       $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/pselect.m4 \
        $(top_srcdir)/m4/pthread-thread.m4 \
        $(top_srcdir)/m4/pthread_h.m4 \
        $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \
@@ -189,9 +197,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/reallocarray.m4 $(top_srcdir)/m4/regex.m4 \
        $(top_srcdir)/m4/sched_h.m4 $(top_srcdir)/m4/select.m4 \
        $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/setlocale_null.m4 \
-       $(top_srcdir)/m4/sigaction.m4 $(top_srcdir)/m4/sigaltstack.m4 \
-       $(top_srcdir)/m4/signal_h.m4 \
-       $(top_srcdir)/m4/signalblocking.m4 \
+       $(top_srcdir)/m4/sigaltstack.m4 $(top_srcdir)/m4/signal_h.m4 \
+       $(top_srcdir)/m4/signalblocking.m4 $(top_srcdir)/m4/sigsegv.m4 \
        $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \
        $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \
        $(top_srcdir)/m4/sockets.m4 $(top_srcdir)/m4/socklen.m4 \
@@ -199,9 +206,9 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/stack-direction.m4 \
        $(top_srcdir)/m4/stat-time.m4 $(top_srcdir)/m4/stat.m4 \
        $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdarg.m4 \
-       $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \
-       $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \
-       $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \
+       $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \
+       $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \
+       $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/stpcpy.m4 \
        $(top_srcdir)/m4/strcase.m4 $(top_srcdir)/m4/strerror.m4 \
        $(top_srcdir)/m4/strerror_r.m4 $(top_srcdir)/m4/string_h.m4 \
        $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strnlen.m4 \
@@ -215,12 +222,12 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/sys_uio_h.m4 \
        $(top_srcdir)/m4/sys_wait_h.m4 $(top_srcdir)/m4/tempname.m4 \
        $(top_srcdir)/m4/thread.m4 $(top_srcdir)/m4/threadlib.m4 \
-       $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/time_r.m4 \
-       $(top_srcdir)/m4/time_rz.m4 $(top_srcdir)/m4/timegm.m4 \
-       $(top_srcdir)/m4/timespec.m4 $(top_srcdir)/m4/tm_gmtoff.m4 \
-       $(top_srcdir)/m4/tzset.m4 $(top_srcdir)/m4/unistd_h.m4 \
-       $(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/vasnprintf.m4 \
-       $(top_srcdir)/m4/vasprintf.m4 $(top_srcdir)/m4/version-etc.m4 \
+       $(top_srcdir)/m4/time.m4 $(top_srcdir)/m4/time_h.m4 \
+       $(top_srcdir)/m4/time_r.m4 $(top_srcdir)/m4/time_rz.m4 \
+       $(top_srcdir)/m4/timegm.m4 $(top_srcdir)/m4/timespec.m4 \
+       $(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/tzset.m4 \
+       $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/unlocked-io.m4 \
+       $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/version-etc.m4 \
        $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/warn-on-use.m4 \
        $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/m4/wchar_h.m4 \
        $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wcrtomb.m4 \
@@ -229,7 +236,6 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/wmemchr.m4 \
        $(top_srcdir)/m4/wmempcpy.m4 $(top_srcdir)/m4/xalloc.m4 \
        $(top_srcdir)/m4/xsize.m4 $(top_srcdir)/m4/xstrtol.m4 \
-       $(top_srcdir)/m4/xvasprintf.m4 $(top_srcdir)/m4/year2038.m4 \
        $(top_srcdir)/m4/zzgnulib.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
@@ -247,6 +253,7 @@ am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
 am__v_AR_0 = @echo "  AR      " $@;
 am__v_AR_1 = 
 libver_a_AR = $(AR) $(ARFLAGS)
+libver_a_RANLIB = $(RANLIB)
 libver_a_LIBADD =
 nodist_libver_a_OBJECTS = version.$(OBJEXT)
 libver_a_OBJECTS = $(nodist_libver_a_OBJECTS)
@@ -256,6 +263,8 @@ am__DEPENDENCIES_1 =
 am__DEPENDENCIES_2 = libver.a ../lib/libdiffutils.a \
        $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
        $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+       $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+       $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
        $(am__DEPENDENCIES_1)
 cmp_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_diff_OBJECTS = analyze.$(OBJEXT) context.$(OBJEXT) diff.$(OBJEXT) \
@@ -268,7 +277,7 @@ diff3_OBJECTS = $(am_diff3_OBJECTS)
 diff3_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_sdiff_OBJECTS = sdiff.$(OBJEXT)
 sdiff_OBJECTS = $(am_sdiff_OBJECTS)
-sdiff_DEPENDENCIES = $(am__DEPENDENCIES_2)
+sdiff_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1)
 AM_V_P = $(am__v_P_@AM_V@)
 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
 am__v_P_0 = false
@@ -341,6 +350,7 @@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
 AR = @AR@
 ARFLAGS = @ARFLAGS@
+ASSERT_H = @ASSERT_H@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -354,6 +364,7 @@ CC = @CC@
 CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
 CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
+CLOCK_TIME_LIB = @CLOCK_TIME_LIB@
 CONFIG_INCLUDE = @CONFIG_INCLUDE@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
@@ -365,7 +376,6 @@ DEPDIR = @DEPDIR@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-EGREP = @EGREP@
 EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@
 EMULTIHOP_VALUE = @EMULTIHOP_VALUE@
 ENOLINK_HIDDEN = @ENOLINK_HIDDEN@
@@ -373,14 +383,17 @@ ENOLINK_VALUE = @ENOLINK_VALUE@
 EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@
 EOVERFLOW_VALUE = @EOVERFLOW_VALUE@
 ERRNO_H = @ERRNO_H@
+ERROR_H = @ERROR_H@
 ETAGS = @ETAGS@
 EXEEXT = @EXEEXT@
 FLOAT_H = @FLOAT_H@
 FNMATCH_H = @FNMATCH_H@
 GETOPT_CDEFS_H = @GETOPT_CDEFS_H@
 GETOPT_H = @GETOPT_H@
+GETRANDOM_LIB = @GETRANDOM_LIB@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@
+GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@
 GL_CXXFLAG_ALLOW_WARNINGS = @GL_CXXFLAG_ALLOW_WARNINGS@
 GL_GNULIB_ACCEPT = @GL_GNULIB_ACCEPT@
 GL_GNULIB_ACCEPT4 = @GL_GNULIB_ACCEPT4@
@@ -389,9 +402,11 @@ GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@
 GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@
 GL_GNULIB_BIND = @GL_GNULIB_BIND@
 GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@
+GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@
 GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@
 GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@
 GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@
+GL_GNULIB_CHMOD = @GL_GNULIB_CHMOD@
 GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@
 GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@
 GL_GNULIB_CONNECT = @GL_GNULIB_CONNECT@
@@ -429,6 +444,7 @@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@
 GL_GNULIB_FGETS = @GL_GNULIB_FGETS@
 GL_GNULIB_FNMATCH = @GL_GNULIB_FNMATCH@
 GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@
+GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@
 GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@
 GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@
 GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@
@@ -464,7 +480,9 @@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@
 GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@
 GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@
 GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@
+GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@
 GL_GNULIB_GETPEERNAME = @GL_GNULIB_GETPEERNAME@
+GL_GNULIB_GETPROGNAME = @GL_GNULIB_GETPROGNAME@
 GL_GNULIB_GETRANDOM = @GL_GNULIB_GETRANDOM@
 GL_GNULIB_GETSOCKNAME = @GL_GNULIB_GETSOCKNAME@
 GL_GNULIB_GETSOCKOPT = @GL_GNULIB_GETSOCKOPT@
@@ -496,6 +514,7 @@ GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@
 GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@
 GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@
 GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@
+GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@
 GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@
 GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@
 GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@
@@ -516,6 +535,7 @@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@
 GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@
 GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@
 GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@
+GL_GNULIB_MBSTOWCS = @GL_GNULIB_MBSTOWCS@
 GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@
 GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@
 GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@
@@ -562,6 +582,7 @@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@
 GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@
 GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@
 GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@
+GL_GNULIB_MEMSET_EXPLICIT = @GL_GNULIB_MEMSET_EXPLICIT@
 GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@
 GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@
 GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@
@@ -618,6 +639,7 @@ GL_GNULIB_READ = @GL_GNULIB_READ@
 GL_GNULIB_READLINK = @GL_GNULIB_READLINK@
 GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@
 GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@
+GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@
 GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@
 GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@
 GL_GNULIB_RECV = @GL_GNULIB_RECV@
@@ -681,8 +703,10 @@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@
 GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@
 GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@
 GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@
+GL_GNULIB_TIME = @GL_GNULIB_TIME@
 GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@
 GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@
+GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@
 GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@
 GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@
 GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@
@@ -756,6 +780,7 @@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@
 GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
 GNULIB_WARN_CFLAGS = @GNULIB_WARN_CFLAGS@
 GREP = @GREP@
+HARD_LOCALE_LIB = @HARD_LOCALE_LIB@
 HAVE_ACCEPT4 = @HAVE_ACCEPT4@
 HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@
 HAVE_ALLOCA_H = @HAVE_ALLOCA_H@
@@ -786,6 +811,7 @@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@
 HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
 HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
 HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
+HAVE_DECL_GETW = @HAVE_DECL_GETW@
 HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
 HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
 HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@
@@ -795,6 +821,8 @@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@
 HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
 HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
 HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@
+HAVE_DECL_PROGRAM_INVOCATION_NAME = @HAVE_DECL_PROGRAM_INVOCATION_NAME@
+HAVE_DECL_PUTW = @HAVE_DECL_PUTW@
 HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
 HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
 HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@
@@ -818,6 +846,9 @@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
 HAVE_DPRINTF = @HAVE_DPRINTF@
 HAVE_DUP3 = @HAVE_DUP3@
 HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
+HAVE_ERROR = @HAVE_ERROR@
+HAVE_ERROR_AT_LINE = @HAVE_ERROR_AT_LINE@
+HAVE_ERROR_H = @HAVE_ERROR_H@
 HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
 HAVE_EXECVPE = @HAVE_EXECVPE@
 HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@
@@ -848,12 +879,15 @@ HAVE_GETLOGIN = @HAVE_GETLOGIN@
 HAVE_GETOPT_H = @HAVE_GETOPT_H@
 HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
 HAVE_GETPASS = @HAVE_GETPASS@
+HAVE_GETPROGNAME = @HAVE_GETPROGNAME@
 HAVE_GETRANDOM = @HAVE_GETRANDOM@
 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
 HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@
 HAVE_GETUMASK = @HAVE_GETUMASK@
 HAVE_GRANTPT = @HAVE_GRANTPT@
 HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
+HAVE_IMAXABS = @HAVE_IMAXABS@
+HAVE_IMAXDIV = @HAVE_IMAXDIV@
 HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@
 HAVE_INITSTATE = @HAVE_INITSTATE@
 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
@@ -881,6 +915,7 @@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
 HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
 HAVE_MBTOWC = @HAVE_MBTOWC@
 HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MEMSET_EXPLICIT = @HAVE_MEMSET_EXPLICIT@
 HAVE_MKDIRAT = @HAVE_MKDIRAT@
 HAVE_MKDTEMP = @HAVE_MKDTEMP@
 HAVE_MKFIFO = @HAVE_MKFIFO@
@@ -1038,9 +1073,11 @@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
 HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@
 HAVE_TIMEGM = @HAVE_TIMEGM@
 HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@
+HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@
 HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@
 HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
 HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNISTRING_WOE32DLL_H = @HAVE_UNISTRING_WOE32DLL_H@
 HAVE_UNLINKAT = @HAVE_UNLINKAT@
 HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
 HAVE_USLEEP = @HAVE_USLEEP@
@@ -1090,7 +1127,6 @@ HAVE_WMEMPCPY = @HAVE_WMEMPCPY@
 HAVE_WMEMSET = @HAVE_WMEMSET@
 HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@
 HAVE_XLOCALE_H = @HAVE_XLOCALE_H@
-HAVE__BOOL = @HAVE__BOOL@
 HAVE__EXIT = @HAVE__EXIT@
 HELP2MAN = @HELP2MAN@
 HOST_CPU = @HOST_CPU@
@@ -1156,15 +1192,20 @@ LTLIBOBJS = @LTLIBOBJS@
 LTLIBSIGSEGV = @LTLIBSIGSEGV@
 LTLIBTHREAD = @LTLIBTHREAD@
 MAKEINFO = @MAKEINFO@
+MBRTOWC_LIB = @MBRTOWC_LIB@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
+NANOSLEEP_LIB = @NANOSLEEP_LIB@
 NETINET_IN_H = @NETINET_IN_H@
 NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@
+NEXT_ASSERT_H = @NEXT_ASSERT_H@
 NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@
+NEXT_AS_FIRST_DIRECTIVE_ASSERT_H = @NEXT_AS_FIRST_DIRECTIVE_ASSERT_H@
 NEXT_AS_FIRST_DIRECTIVE_CTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_CTYPE_H@
 NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@
+NEXT_AS_FIRST_DIRECTIVE_ERROR_H = @NEXT_AS_FIRST_DIRECTIVE_ERROR_H@
 NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@
 NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@
 NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H = @NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H@
@@ -1200,6 +1241,7 @@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@
 NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@
 NEXT_CTYPE_H = @NEXT_CTYPE_H@
 NEXT_ERRNO_H = @NEXT_ERRNO_H@
+NEXT_ERROR_H = @NEXT_ERROR_H@
 NEXT_FCNTL_H = @NEXT_FCNTL_H@
 NEXT_FLOAT_H = @NEXT_FLOAT_H@
 NEXT_FNMATCH_H = @NEXT_FNMATCH_H@
@@ -1242,27 +1284,35 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
 PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
 POSUB = @POSUB@
 PRAGMA_COLUMNS = @PRAGMA_COLUMNS@
 PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
 PRIPTR_PREFIX = @PRIPTR_PREFIX@
 PR_PROGRAM = @PR_PROGRAM@
 PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@
+PTHREAD_SIGMASK_LIB = @PTHREAD_SIGMASK_LIB@
 PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
 RANLIB = @RANLIB@
 REPLACE_ACCESS = @REPLACE_ACCESS@
 REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@
 REPLACE_BTOWC = @REPLACE_BTOWC@
-REPLACE_CALLOC = @REPLACE_CALLOC@
+REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@
+REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@
 REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@
+REPLACE_CHMOD = @REPLACE_CHMOD@
 REPLACE_CHOWN = @REPLACE_CHOWN@
 REPLACE_CLOSE = @REPLACE_CLOSE@
+REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@
 REPLACE_CREAT = @REPLACE_CREAT@
 REPLACE_CTIME = @REPLACE_CTIME@
 REPLACE_DPRINTF = @REPLACE_DPRINTF@
 REPLACE_DUP = @REPLACE_DUP@
 REPLACE_DUP2 = @REPLACE_DUP2@
+REPLACE_DUP3 = @REPLACE_DUP3@
 REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
+REPLACE_ERROR = @REPLACE_ERROR@
+REPLACE_ERROR_AT_LINE = @REPLACE_ERROR_AT_LINE@
 REPLACE_EXECL = @REPLACE_EXECL@
 REPLACE_EXECLE = @REPLACE_EXECLE@
 REPLACE_EXECLP = @REPLACE_EXECLP@
@@ -1275,11 +1325,13 @@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@
 REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
 REPLACE_FCLOSE = @REPLACE_FCLOSE@
 REPLACE_FCNTL = @REPLACE_FCNTL@
+REPLACE_FDATASYNC = @REPLACE_FDATASYNC@
 REPLACE_FDOPEN = @REPLACE_FDOPEN@
 REPLACE_FFLUSH = @REPLACE_FFLUSH@
 REPLACE_FFSLL = @REPLACE_FFSLL@
 REPLACE_FNMATCH = @REPLACE_FNMATCH@
 REPLACE_FOPEN = @REPLACE_FOPEN@
+REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@
 REPLACE_FPRINTF = @REPLACE_FPRINTF@
 REPLACE_FPURGE = @REPLACE_FPURGE@
 REPLACE_FREE = @REPLACE_FREE@
@@ -1297,17 +1349,24 @@ REPLACE_GETCWD = @REPLACE_GETCWD@
 REPLACE_GETDELIM = @REPLACE_GETDELIM@
 REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
 REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@
+REPLACE_GETENTROPY = @REPLACE_GETENTROPY@
 REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
 REPLACE_GETLINE = @REPLACE_GETLINE@
+REPLACE_GETLOADAVG = @REPLACE_GETLOADAVG@
 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
 REPLACE_GETPASS = @REPLACE_GETPASS@
+REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@
+REPLACE_GETPROGNAME = @REPLACE_GETPROGNAME@
 REPLACE_GETRANDOM = @REPLACE_GETRANDOM@
+REPLACE_GETSUBOPT = @REPLACE_GETSUBOPT@
 REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
 REPLACE_GMTIME = @REPLACE_GMTIME@
 REPLACE_ICONV = @REPLACE_ICONV@
 REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@
 REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@
+REPLACE_IMAXABS = @REPLACE_IMAXABS@
+REPLACE_IMAXDIV = @REPLACE_IMAXDIV@
 REPLACE_INET_NTOP = @REPLACE_INET_NTOP@
 REPLACE_INET_PTON = @REPLACE_INET_PTON@
 REPLACE_INITSTATE = @REPLACE_INITSTATE@
@@ -1326,21 +1385,27 @@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@
 REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
 REPLACE_LSEEK = @REPLACE_LSEEK@
 REPLACE_LSTAT = @REPLACE_LSTAT@
-REPLACE_MALLOC = @REPLACE_MALLOC@
+REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@
+REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@
 REPLACE_MBRLEN = @REPLACE_MBRLEN@
 REPLACE_MBRTOWC = @REPLACE_MBRTOWC@
 REPLACE_MBSINIT = @REPLACE_MBSINIT@
 REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@
 REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@
 REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@
+REPLACE_MBSTOWCS = @REPLACE_MBSTOWCS@
 REPLACE_MBTOWC = @REPLACE_MBTOWC@
+REPLACE_MB_CUR_MAX = @REPLACE_MB_CUR_MAX@
 REPLACE_MEMCHR = @REPLACE_MEMCHR@
 REPLACE_MEMMEM = @REPLACE_MEMMEM@
+REPLACE_MEMPCPY = @REPLACE_MEMPCPY@
 REPLACE_MKDIR = @REPLACE_MKDIR@
 REPLACE_MKFIFO = @REPLACE_MKFIFO@
 REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@
 REPLACE_MKNOD = @REPLACE_MKNOD@
 REPLACE_MKNODAT = @REPLACE_MKNODAT@
+REPLACE_MKOSTEMP = @REPLACE_MKOSTEMP@
+REPLACE_MKOSTEMPS = @REPLACE_MKOSTEMPS@
 REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
 REPLACE_MKTIME = @REPLACE_MKTIME@
 REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
@@ -1351,8 +1416,10 @@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
 REPLACE_OPEN = @REPLACE_OPEN@
 REPLACE_OPENAT = @REPLACE_OPENAT@
 REPLACE_PERROR = @REPLACE_PERROR@
+REPLACE_PIPE2 = @REPLACE_PIPE2@
 REPLACE_POPEN = @REPLACE_POPEN@
 REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@
+REPLACE_POSIX_OPENPT = @REPLACE_POSIX_OPENPT@
 REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
@@ -1419,8 +1486,9 @@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
 REPLACE_READ = @REPLACE_READ@
 REPLACE_READLINK = @REPLACE_READLINK@
 REPLACE_READLINKAT = @REPLACE_READLINKAT@
-REPLACE_REALLOC = @REPLACE_REALLOC@
 REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@
+REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@
+REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@
 REPLACE_REALPATH = @REPLACE_REALPATH@
 REPLACE_REMOVE = @REPLACE_REMOVE@
 REPLACE_RENAME = @REPLACE_RENAME@
@@ -1429,6 +1497,7 @@ REPLACE_RMDIR = @REPLACE_RMDIR@
 REPLACE_SCHED_YIELD = @REPLACE_SCHED_YIELD@
 REPLACE_SELECT = @REPLACE_SELECT@
 REPLACE_SETENV = @REPLACE_SETENV@
+REPLACE_SETHOSTNAME = @REPLACE_SETHOSTNAME@
 REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
 REPLACE_SETSTATE = @REPLACE_SETSTATE@
 REPLACE_SLEEP = @REPLACE_SLEEP@
@@ -1437,6 +1506,7 @@ REPLACE_SPRINTF = @REPLACE_SPRINTF@
 REPLACE_STAT = @REPLACE_STAT@
 REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@
 REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
+REPLACE_STPCPY = @REPLACE_STPCPY@
 REPLACE_STPNCPY = @REPLACE_STPNCPY@
 REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
 REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@
@@ -1463,7 +1533,9 @@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
 REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@
 REPLACE_SYMLINK = @REPLACE_SYMLINK@
 REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
+REPLACE_TIME = @REPLACE_TIME@
 REPLACE_TIMEGM = @REPLACE_TIMEGM@
+REPLACE_TIMESPEC_GET = @REPLACE_TIMESPEC_GET@
 REPLACE_TMPFILE = @REPLACE_TMPFILE@
 REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
 REPLACE_TRUNCATE = @REPLACE_TRUNCATE@
@@ -1481,25 +1553,33 @@ REPLACE_VPRINTF = @REPLACE_VPRINTF@
 REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@
 REPLACE_VSPRINTF = @REPLACE_VSPRINTF@
 REPLACE_WCRTOMB = @REPLACE_WCRTOMB@
+REPLACE_WCSCMP = @REPLACE_WCSCMP@
 REPLACE_WCSFTIME = @REPLACE_WCSFTIME@
+REPLACE_WCSNCMP = @REPLACE_WCSNCMP@
 REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@
 REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@
+REPLACE_WCSSTR = @REPLACE_WCSSTR@
 REPLACE_WCSTOK = @REPLACE_WCSTOK@
 REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@
 REPLACE_WCTOB = @REPLACE_WCTOB@
 REPLACE_WCTOMB = @REPLACE_WCTOMB@
 REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
+REPLACE_WMEMCMP = @REPLACE_WMEMCMP@
+REPLACE_WMEMPCPY = @REPLACE_WMEMPCPY@
 REPLACE_WRITE = @REPLACE_WRITE@
+REPLACE__EXIT = @REPLACE__EXIT@
+SCHED_YIELD_LIB = @SCHED_YIELD_LIB@
 SED = @SED@
+SELECT_LIB = @SELECT_LIB@
+SETLOCALE_NULL_LIB = @SETLOCALE_NULL_LIB@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIGSEGV_H = @SIGSEGV_H@
 SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
 SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
 SRC_VERSION_C = @SRC_VERSION_C@
-STDALIGN_H = @STDALIGN_H@
 STDARG_H = @STDARG_H@
-STDBOOL_H = @STDBOOL_H@
+STDCKDINT_H = @STDCKDINT_H@
 STDDEF_H = @STDDEF_H@
 STDINT_H = @STDINT_H@
 STRIP = @STRIP@
@@ -1537,8 +1617,10 @@ ac_ct_CC = @ac_ct_CC@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
+am__rm_f_notfound = @am__rm_f_notfound@
 am__tar = @am__tar@
 am__untar = @am__untar@
+am__xargs_n = @am__xargs_n@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
@@ -1551,8 +1633,10 @@ datarootdir = @datarootdir@
 docdir = @docdir@
 dvidir = @dvidir@
 exec_prefix = @exec_prefix@
+gl_LIBOBJDEPS = @gl_LIBOBJDEPS@
 gl_LIBOBJS = @gl_LIBOBJS@
 gl_LTLIBOBJS = @gl_LTLIBOBJS@
+gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@
 gltests_LIBOBJS = @gltests_LIBOBJS@
 gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
 gltests_WITNESS = @gltests_WITNESS@
@@ -1594,11 +1678,16 @@ LDADD = \
   $(LIBINTL) \
   $(LIBICONV) \
   $(LIBSIGSEGV) \
-  $(LIB_CLOCK_GETTIME)
+  $(LIBTHREAD) \
+  $(LIBUNISTRING) \
+  $(CLOCK_TIME_LIB) \
+  $(HARD_LOCALE_LIB) \
+  $(MBRTOWC_LIB) \
+  $(SETLOCALE_NULL_LIB)
 
 diff_LDADD = $(LDADD)
 cmp_LDADD = $(LDADD)
-sdiff_LDADD = $(LDADD)
+sdiff_LDADD = $(LDADD) $(GETRANDOM_LIB)
 diff3_LDADD = $(LDADD)
 cmp_SOURCES = cmp.c
 diff3_SOURCES = diff3.c
@@ -1691,18 +1780,18 @@ uninstall-binPROGRAMS:
        `; \
        test -n "$$list" || exit 0; \
        echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(bindir)" && rm -f $$files
+       cd "$(DESTDIR)$(bindir)" && $(am__rm_f) $$files
 
 clean-binPROGRAMS:
-       -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+       -$(am__rm_f) $(bin_PROGRAMS)
 
 clean-noinstLIBRARIES:
-       -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+       -$(am__rm_f) $(noinst_LIBRARIES)
 
 libver.a: $(libver_a_OBJECTS) $(libver_a_DEPENDENCIES) $(EXTRA_libver_a_DEPENDENCIES) 
        $(AM_V_at)-rm -f libver.a
        $(AM_V_AR)$(libver_a_AR) libver.a $(libver_a_OBJECTS) $(libver_a_LIBADD)
-       $(AM_V_at)$(RANLIB) libver.a
+       $(AM_V_at)$(libver_a_RANLIB) libver.a
 
 cmp$(EXEEXT): $(cmp_OBJECTS) $(cmp_DEPENDENCIES) $(EXTRA_cmp_DEPENDENCIES) 
        @rm -f cmp$(EXEEXT)
@@ -1743,7 +1832,7 @@ distclean-compile:
 
 $(am__depfiles_remade):
        @$(MKDIR_P) $(@D)
-       @echo '# dummy' >$@-t && $(am__mv) $@-t $@
+       @: >>$@
 
 am--depfiles: $(am__depfiles_remade)
 
@@ -1877,27 +1966,27 @@ install-strip:
            "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
        fi
 mostlyclean-generic:
-       -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+       -$(am__rm_f) $(MOSTLYCLEANFILES)
 
 clean-generic:
 
 distclean-generic:
-       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-       -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+       -$(am__rm_f) $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || $(am__rm_f) $(CONFIG_CLEAN_VPATH_FILES)
+       -$(am__rm_f) $(DISTCLEANFILES)
 
 maintainer-clean-generic:
        @echo "This command is intended for maintainers to use"
        @echo "it deletes files that may require special tools to rebuild."
-       -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
-       -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+       -$(am__rm_f) $(BUILT_SOURCES)
+       -$(am__rm_f) $(MAINTAINERCLEANFILES)
 clean: clean-am
 
 clean-am: clean-binPROGRAMS clean-generic clean-noinstLIBRARIES \
        mostlyclean-am
 
 distclean: distclean-am
-               -rm -f ./$(DEPDIR)/analyze.Po
+       -rm -f ./$(DEPDIR)/analyze.Po
        -rm -f ./$(DEPDIR)/cmp.Po
        -rm -f ./$(DEPDIR)/context.Po
        -rm -f ./$(DEPDIR)/diff.Po
@@ -1956,7 +2045,7 @@ install-ps-am:
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
-               -rm -f ./$(DEPDIR)/analyze.Po
+       -rm -f ./$(DEPDIR)/analyze.Po
        -rm -f ./$(DEPDIR)/cmp.Po
        -rm -f ./$(DEPDIR)/context.Po
        -rm -f ./$(DEPDIR)/diff.Po
index a5e4bdc..ddb601d 100644 (file)
@@ -1,7 +1,7 @@
 /* Analyze file differences for GNU DIFF.
 
    Copyright (C) 1988-1989, 1992-1995, 1998, 2001-2002, 2004, 2006-2007,
-   2009-2013, 2015-2021 Free Software Foundation, Inc.
+   2009-2013, 2015-2023 Free Software Foundation, Inc.
 
    This file is part of GNU DIFF.
 
@@ -28,6 +28,7 @@
 #define ELEMENT lin
 #define EQUAL(x,y) ((x) == (y))
 #define OFFSET lin
+#define OFFSET_MAX LIN_MAX
 #define EXTRA_CONTEXT_FIELDS /* none */
 #define NOTE_DELETE(c, xoff) (files[0].changed[files[0].realindexes[xoff]] = 1)
 #define NOTE_INSERT(c, yoff) (files[1].changed[files[1].realindexes[yoff]] = 1)
@@ -67,7 +68,7 @@ discard_confusing_lines (struct file_data filevec[])
   /* Set up equiv_count[F][I] as the number of lines in file F
      that fall in equivalence class I.  */
 
-  p = zalloc (filevec[0].equiv_max * (2 * sizeof *p));
+  p = xcalloc (filevec[0].equiv_max, 2 * sizeof *p);
   equiv_count[0] = p;
   equiv_count[1] = p + filevec[0].equiv_max;
 
@@ -78,8 +79,8 @@ discard_confusing_lines (struct file_data filevec[])
 
   /* Set up tables of which lines are going to be discarded.  */
 
-  discarded[0] = zalloc (filevec[0].buffered_lines
-                         + filevec[1].buffered_lines);
+  discarded[0] = xzalloc (filevec[0].buffered_lines
+                         + filevec[1].buffered_lines);
   discarded[1] = discarded[0] + filevec[0].buffered_lines;
 
   /* Mark to be discarded each line that matches no line of the other file.
@@ -451,8 +452,8 @@ briefly_report (int changes, struct file_data const filevec[])
 {
   if (changes)
     message ((brief
-              ? _("Files %s and %s differ\n")
-              : _("Binary files %s and %s differ\n")),
+              ? N_("Files %s and %s differ\n")
+              : N_("Binary files %s and %s differ\n")),
              file_label[0] ? file_label[0] : filevec[0].name,
              file_label[1] ? file_label[1] : filevec[1].name);
 }
@@ -542,7 +543,7 @@ diff_2_files (struct comparison *cmp)
          Allocate an extra element, always 0, at each end of each vector.  */
 
       size_t s = cmp->file[0].buffered_lines + cmp->file[1].buffered_lines + 4;
-      char *flag_space = zalloc (s);
+      char *flag_space = xzalloc (s);
       cmp->file[0].changed = flag_space + 1;
       cmp->file[1].changed = flag_space + cmp->file[0].buffered_lines + 3;
 
@@ -697,7 +698,7 @@ diff_2_files (struct comparison *cmp)
           free (e);
         }
 
-      if (! ROBUST_OUTPUT_STYLE (output_style))
+      if (! robust_output_style (output_style))
         for (f = 0; f < 2; ++f)
           if (cmp->file[f].missing_newline)
             {
index 9953d14..4c6dc74 100644 (file)
--- a/src/cmp.c
+++ b/src/cmp.c
@@ -1,7 +1,7 @@
 /* GNU cmp - compare two files byte by byte
 
    Copyright (C) 1990-1996, 1998, 2001-2002, 2004, 2006-2007, 2009-2013,
-   2015-2021 Free Software Foundation, Inc.
+   2015-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 #include <xstrtol.h>
 
 /* The official name of this program (e.g., no 'g' prefix).  */
-#define PROGRAM_NAME "cmp"
+static char const PROGRAM_NAME[] = "cmp";
 
 #define AUTHORS \
   proper_name_utf8 ("Torbjorn Granlund", "Torbj\303\266rn Granlund"), \
   proper_name ("David MacKenzie")
 
+static bool
+hard_locale_LC_MESSAGES (void)
+{
 #if defined LC_MESSAGES && ENABLE_NLS
-# define hard_locale_LC_MESSAGES hard_locale (LC_MESSAGES)
+  return hard_locale (LC_MESSAGES);
 #else
-# define hard_locale_LC_MESSAGES 0
+  return false;
 #endif
+}
 
 static int cmp (void);
 static off_t file_position (int);
-static size_t block_compare (word const *, word const *) _GL_ATTRIBUTE_PURE;
+static size_t block_compare (word const *, word const *) ATTRIBUTE_PURE;
 static size_t count_newlines (char *, size_t);
 static void sprintc (char *, unsigned char);
 
@@ -63,7 +67,8 @@ static char const *file[2];
 /* File descriptors of the files.  */
 static int file_desc[2];
 
-/* Status of the files.  */
+/* Status of the files.  If st_size is negative, the status is unknown
+   and st_blksize (if it exists) is just a reasonable guess.  */
 static struct stat stat_buf[2];
 
 /* Read buffers for the files.  */
@@ -110,8 +115,7 @@ static struct option const long_options[] =
   {0, 0, 0, 0}
 };
 \f
-static void try_help (char const *, char const *) __attribute__((noreturn));
-static void
+static _Noreturn void
 try_help (char const *reason_msgid, char const *operand)
 {
   if (reason_msgid)
@@ -252,7 +256,7 @@ main (int argc, char **argv)
 
       case 'v':
         version_etc (stdout, PROGRAM_NAME, PACKAGE_NAME, Version,
-                     AUTHORS, (char *) NULL);
+                     AUTHORS, nullptr);
         check_stdout ();
         return EXIT_SUCCESS;
 
@@ -295,21 +299,31 @@ main (int argc, char **argv)
             set_binary_mode (STDIN_FILENO, O_BINARY);
         }
       else
-        file_desc[f] = open (file[f], O_RDONLY | O_BINARY, 0);
+        {
+          file_desc[f] = open (file[f], O_RDONLY | O_BINARY, 0);
 
-      if (file_desc[f] < 0 || fstat (file_desc[f], stat_buf + f) != 0)
+          if (file_desc[f] < 0)
+            {
+              if (comparison_type != type_status)
+                error (0, errno, "%s", file[f]);
+              exit (EXIT_TROUBLE);
+            }
+        }
+
+      if (fstat (file_desc[f], stat_buf + f) < 0)
         {
-          if (file_desc[f] < 0 && comparison_type == type_status)
-            exit (EXIT_TROUBLE);
-          else
-            die (EXIT_TROUBLE, errno, "%s", file[f]);
+          stat_buf[f].st_size = -1;
+#if HAVE_STRUCT_STAT_ST_BLKSIZE
+          stat_buf[f].st_blksize = 8 * 1024;
+#endif
         }
     }
 
   /* If the files are links to the same inode and have the same file position,
      they are identical.  */
 
-  if (0 < same_file (&stat_buf[0], &stat_buf[1])
+  if (0 <= stat_buf[0].st_size && 0 <= stat_buf[1].st_size
+      && 0 < same_file (&stat_buf[0], &stat_buf[1])
       && same_file_attributes (&stat_buf[0], &stat_buf[1])
       && file_position (0) == file_position (1))
     return EXIT_SUCCESS;
@@ -333,8 +347,8 @@ main (int argc, char **argv)
      and if more bytes will be compared than are in the smaller file.  */
 
   if (comparison_type == type_status
-      && S_ISREG (stat_buf[0].st_mode)
-      && S_ISREG (stat_buf[1].st_mode))
+      && 0 <= stat_buf[0].st_size && S_ISREG (stat_buf[0].st_mode)
+      && 0 <= stat_buf[1].st_size && S_ISREG (stat_buf[1].st_mode))
     {
       off_t s0 = stat_buf[0].st_size - file_position (0);
       off_t s1 = stat_buf[1].st_size - file_position (1);
@@ -346,7 +360,7 @@ main (int argc, char **argv)
         exit (EXIT_FAILURE);
     }
 
-  /* Get the optimal block size of the files.  */
+  /* Guess a good block size for the files.  */
 
   buf_size = buffer_lcm (STAT_BLOCKSIZE (stat_buf[0]),
                          STAT_BLOCKSIZE (stat_buf[1]),
@@ -390,7 +404,7 @@ cmp (void)
   char *buf1 = (char *) buffer1;
   int differing = 0;
   int f;
-  int offset_width IF_LINT (= 0);
+  int offset_width IF_LINT (= 0); /* IF_LINT due to GCC bug 101768.  */
 
   if (comparison_type == type_all_diffs)
     {
@@ -398,7 +412,7 @@ cmp (void)
                               ? bytes : TYPE_MAXIMUM (off_t));
 
       for (f = 0; f < 2; f++)
-        if (S_ISREG (stat_buf[f].st_mode))
+        if (0 <= stat_buf[f].st_size && S_ISREG (stat_buf[f].st_mode))
           {
             off_t file_bytes = stat_buf[f].st_size - file_position (f);
             if (file_bytes < byte_number_max)
@@ -507,7 +521,7 @@ cmp (void)
                       N_("%s %s differ: byte %s, line %s\n");
                     char const *byte_message = _(byte_msgid);
                     bool use_byte_message = (byte_message != byte_msgid
-                                             || hard_locale_LC_MESSAGES);
+                                             || hard_locale_LC_MESSAGES ());
 
                     printf (use_byte_message ? byte_message : char_message,
                             file[0], file[1], byte_num, line_num);
index c65f427..a4c76ca 100644 (file)
@@ -1,7 +1,7 @@
 /* Context-format output routines for GNU DIFF.
 
    Copyright (C) 1988-1989, 1991-1995, 1998, 2001-2002, 2004, 2006, 2009-2013,
-   2015-2021 Free Software Foundation, Inc.
+   2015-2023 Free Software Foundation, Inc.
 
    This file is part of GNU DIFF.
 
@@ -52,7 +52,7 @@ print_context_label (char const *mark,
                     INT_STRLEN_BOUND (time_t) + 11)];
       struct tm const *tm = localtime (&inf->stat.st_mtime);
       int nsec = get_stat_mtime_ns (&inf->stat);
-      if (! (tm && nstrftime (buf, sizeof buf, time_format, tm, 0, nsec)))
+      if (! (tm && nstrftime (buf, sizeof buf, time_format, tm, localtz, nsec)))
         {
           verify (TYPE_IS_INTEGER (time_t));
           if (LONG_MIN <= TYPE_MINIMUM (time_t)
@@ -127,7 +127,7 @@ print_context_script (struct change *script, bool unidiff)
 static void
 print_context_number_range (struct file_data const *file, lin a, lin b)
 {
-  printint trans_a, trans_b;
+  lin trans_a, trans_b;
   translate_range (file, a, b, &trans_a, &trans_b);
 
   /* We can have B <= A in the case of a range of no lines.
@@ -196,7 +196,7 @@ pr_context_hunk (struct change *hunk)
     last1 = files[1].valid_lines - 1;
 
   /* If desired, find the preceding function definition line in file 0.  */
-  function = NULL;
+  function = nullptr;
   if (function_regexp.fastmap)
     function = find_function (files[0].linbuf, first0);
 
@@ -296,7 +296,7 @@ pr_context_hunk (struct change *hunk)
 static void
 print_unidiff_number_range (struct file_data const *file, lin a, lin b)
 {
-  printint trans_a, trans_b;
+  lin trans_a, trans_b;
   translate_range (file, a, b, &trans_a, &trans_b);
 
   /* We can have B < A in the case of a range of no lines.
@@ -345,7 +345,7 @@ pr_unidiff_hunk (struct change *hunk)
     last1 = files[1].valid_lines - 1;
 
   /* If desired, find the preceding function definition line in file 0.  */
-  function = NULL;
+  function = nullptr;
   if (function_regexp.fastmap)
     function = find_function (files[0].linbuf, first0);
 
@@ -379,7 +379,7 @@ pr_unidiff_hunk (struct change *hunk)
           char const *const *line = &files[0].linbuf[i++];
           if (! (suppress_blank_empty && **line == '\n'))
             putc (initial_tab ? '\t' : ' ', out);
-          print_1_line (NULL, line);
+          print_1_line (nullptr, line);
           j++;
         }
       else
@@ -395,7 +395,7 @@ pr_unidiff_hunk (struct change *hunk)
               putc ('-', out);
               if (initial_tab && ! (suppress_blank_empty && **line == '\n'))
                 putc ('\t', out);
-              print_1_line_nl (NULL, line, true);
+              print_1_line_nl (nullptr, line, true);
 
               set_color_context (RESET_CONTEXT);
 
@@ -414,7 +414,7 @@ pr_unidiff_hunk (struct change *hunk)
               putc ('+', out);
               if (initial_tab && ! (suppress_blank_empty && **line == '\n'))
                 putc ('\t', out);
-              print_1_line_nl (NULL, line, true);
+              print_1_line_nl (nullptr, line, true);
 
               set_color_context (RESET_CONTEXT);
 
@@ -433,7 +433,7 @@ pr_unidiff_hunk (struct change *hunk)
    2*CONTEXT unchanged lines appear, and return a pointer
    to the 'struct change' for the last change before those lines.  */
 
-static struct change * _GL_ATTRIBUTE_PURE
+static struct change * ATTRIBUTE_PURE
 find_hunk (struct change *start)
 {
   struct change *prev;
@@ -481,7 +481,7 @@ mark_ignorable (struct change *script)
       lin first0, last0, first1, last1;
 
       /* Turn this change into a hunk: detach it from the others.  */
-      script->link = NULL;
+      script->link = nullptr;
 
       /* Determine whether this change is ignorable.  */
       script->ignore = ! analyze_hunk (script,
@@ -497,7 +497,7 @@ mark_ignorable (struct change *script)
 \f
 /* Find the last function-header line in LINBUF prior to line number LINENUM.
    This is a line containing a match for the regexp in 'function_regexp'.
-   Return the address of the text, or NULL if no function-header is found.  */
+   Return the address of the text, or null if no function-header is found.  */
 
 static char const *
 find_function (char const * const *linbuf, lin linenum)
@@ -512,10 +512,11 @@ find_function (char const * const *linbuf, lin linenum)
       char const *line = linbuf[i];
       size_t linelen = linbuf[i + 1] - line - 1;
 
-      /* FIXME: re_search's size args should be size_t, not int.  */
-      int len = MIN (linelen, INT_MAX);
+      /* This line is for documentation; in practice it's equivalent
+        to LEN = LINELEN and no machine code is generated.  */
+      regoff_t len = MIN (linelen, TYPE_MAXIMUM (regoff_t));
 
-      if (0 <= re_search (&function_regexp, line, len, 0, len, NULL))
+      if (0 <= re_search (&function_regexp, line, len, 0, len, nullptr))
         {
           find_function_last_match = i;
           return line;
@@ -526,5 +527,5 @@ find_function (char const * const *linbuf, lin linenum)
   if (find_function_last_match != LIN_MAX)
     return linbuf[find_function_last_match];
 
-  return NULL;
+  return nullptr;
 }
index 5ab0512..a9afa2f 100644 (file)
--- a/src/die.h
+++ b/src/die.h
@@ -1,5 +1,5 @@
 /* Report an error and exit.
-   Copyright 2016-2021 Free Software Foundation, Inc.
+   Copyright 2016-2023 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -20,7 +20,6 @@
 # define DIE_H
 
 # include <error.h>
-# include <stdbool.h>
 # include <verify.h>
 
 /* Like 'error (STATUS, ...)', except STATUS must be a nonzero constant.
index 9938daa..c5cc758 100644 (file)
@@ -1,7 +1,7 @@
 /* GNU diff - compare files line by line
 
    Copyright (C) 1988-1989, 1992-1994, 1996, 1998, 2001-2002, 2004, 2006-2007,
-   2009-2013, 2015-2021 Free Software Foundation, Inc.
+   2009-2013, 2015-2023 Free Software Foundation, Inc.
 
    This file is part of GNU DIFF.
 
@@ -33,7 +33,6 @@
 #include <fnmatch.h>
 #include <getopt.h>
 #include <hard-locale.h>
-#include <prepargs.h>
 #include <progname.h>
 #include <sh-quote.h>
 #include <stat-time.h>
@@ -45,7 +44,7 @@
 #include <binary-io.h>
 
 /* The official name of this program (e.g., no 'g' prefix).  */
-#define PROGRAM_NAME "diff"
+static char const PROGRAM_NAME[] = "diff";
 
 #define AUTHORS \
   proper_name ("Paul Eggert"), \
@@ -73,7 +72,7 @@ static void summarize_regexp_list (struct regexp_list *);
 static void specify_style (enum output_style);
 static void specify_value (char const **, char const *, char const *);
 static void specify_colors_style (char const *);
-static void try_help (char const *, char const *) __attribute__((noreturn));
+static _Noreturn void try_help (char const *, char const *);
 static void check_stdout (void);
 static void usage (void);
 
@@ -105,6 +104,9 @@ static bool unidirectional_new_file;
 /* Report files compared that are the same (-s).
    Normally nothing is output when that happens.  */
 static bool report_identical_files;
+
+/* Do not treat directories specially.  */
+static bool no_directory;
 \f
 static char const shortopts[] =
 "0123456789abBcC:dD:eEfF:hHiI:lL:nNpPqrsS:tTuU:vwW:x:X:yZ";
@@ -144,6 +146,7 @@ enum
   COLOR_OPTION,
   COLOR_PALETTE_OPTION,
 
+  NO_DIRECTORY_OPTION,
   PRESUME_OUTPUT_TTY_OPTION,
 };
 
@@ -224,8 +227,11 @@ static struct option const longopts[] =
   {"version", 0, 0, 'v'},
   {"width", 1, 0, 'W'},
 
+  /* This is solely for diff3.  Do not document.  */
+  {"-no-directory", no_argument, nullptr, NO_DIRECTORY_OPTION},
+
   /* This is solely for testing.  Do not document.  */
-  {"-presume-output-tty", no_argument, NULL, PRESUME_OUTPUT_TTY_OPTION},
+  {"-presume-output-tty", no_argument, nullptr, PRESUME_OUTPUT_TTY_OPTION},
   {0, 0, 0, 0}
 };
 
@@ -246,7 +252,11 @@ option_list (char **optionvec, int count)
   char *p;
 
   for (i = 0; i < count; i++)
-    size += 1 + shell_quote_length (optionvec[i]);
+    {
+      size_t optsize = 1 + shell_quote_length (optionvec[i]);
+      if (INT_ADD_WRAPV (optsize, size, &size))
+       xalloc_die ();
+    }
 
   p = result = xmalloc (size);
 
@@ -280,8 +290,8 @@ main (int argc, char **argv)
   bool explicit_context = false;
   size_t width = 0;
   bool show_c_function = false;
-  char const *from_file = NULL;
-  char const *to_file = NULL;
+  char const *from_file = nullptr;
+  char const *to_file = nullptr;
   intmax_t numval;
   char *numend;
 
@@ -302,7 +312,7 @@ main (int argc, char **argv)
 
   /* Decode the options.  */
 
-  while ((c = getopt_long (argc, argv, shortopts, longopts, NULL)) != -1)
+  while ((c = getopt_long (argc, argv, shortopts, longopts, nullptr)) != -1)
     {
       switch (c)
         {
@@ -379,21 +389,60 @@ main (int argc, char **argv)
         case 'D':
           specify_style (OUTPUT_IFDEF);
           {
-            static char const C_ifdef_group_formats[] =
-              "%%=%c#ifndef %s\n%%<#endif /* ! %s */\n%c#ifdef %s\n%%>#endif /* %s */\n%c#ifndef %s\n%%<#else /* %s */\n%%>#endif /* %s */\n";
-            char *b = xmalloc (sizeof C_ifdef_group_formats
-                               + 7 * strlen (optarg) - 14 /* 7*"%s" */
-                               - 8 /* 5*"%%" + 3*"%c" */);
-            sprintf (b, C_ifdef_group_formats,
-                     0,
-                     optarg, optarg, 0,
-                     optarg, optarg, 0,
-                     optarg, optarg, optarg);
-            for (i = 0; i < sizeof group_format / sizeof group_format[0]; i++)
-              {
-                specify_value (&group_format[i], b, "-D");
-                b += strlen (b) + 1;
-              }
+           static char const C_ifdef_group_formats[]
+             = (/* UNCHANGED */
+                "%="
+                "\0"
+
+                /* OLD */
+                "#ifndef @\n"
+                "%<"
+                "#endif /* ! @ */\n"
+                "\0"
+
+                /* NEW */
+                "#ifdef @\n"
+                "%>"
+                "#endif /* @ */\n"
+                "\0"
+
+                /* CHANGED */
+                "#ifndef @\n"
+                "%<"
+                "#else /* @ */\n"
+                "%>"
+                "#endif /* @ */\n");
+
+           size_t alloc = strlen (optarg);
+           if (INT_MULTIPLY_WRAPV (alloc, 7, &alloc)
+               || INT_ADD_WRAPV (alloc,
+                                 sizeof C_ifdef_group_formats - 7 /* 7*"@" */,
+                                 &alloc))
+             xalloc_die ();
+           char *b = xmalloc (alloc);
+           char *base = b;
+           int changes = 0;
+
+           for (i = 0; i < sizeof C_ifdef_group_formats; i++)
+             {
+               char ch = C_ifdef_group_formats[i];
+               switch (ch)
+                 {
+                 default:
+                   *b++ = ch;
+                   break;
+
+                 case '@':
+                   b = stpcpy (b, optarg);
+                   break;
+
+                 case '\0':
+                   *b++ = ch;
+                   specify_value (&group_format[changes++], base, "-D");
+                   base = b;
+                   break;
+                 }
+             }
           }
           break;
 
@@ -435,7 +484,7 @@ main (int argc, char **argv)
 
         case 'l':
           if (!pr_program[0])
-            try_help ("pagination not supported on this host", NULL);
+            try_help ("pagination not supported on this host", nullptr);
           paginate = true;
 #ifdef SIGCHLD
           /* Pagination requires forking and waiting, and
@@ -502,7 +551,7 @@ main (int argc, char **argv)
 
         case 'v':
           version_etc (stdout, PROGRAM_NAME, PACKAGE_NAME, Version,
-                       AUTHORS, (char *) NULL);
+                       AUTHORS, nullptr);
           check_stdout ();
           return EXIT_SUCCESS;
 
@@ -650,12 +699,16 @@ main (int argc, char **argv)
           set_color_palette (optarg);
           break;
 
+        case NO_DIRECTORY_OPTION:
+          no_directory = true;
+          break;
+
         case PRESUME_OUTPUT_TTY_OPTION:
           presume_output_tty = true;
           break;
 
         default:
-          try_help (NULL, NULL);
+          try_help (nullptr, nullptr);
         }
       prev = c;
     }
@@ -687,6 +740,9 @@ main (int argc, char **argv)
 #else
       time_format = "%Y-%m-%d %H:%M:%S %z";
 #endif
+#if !HAVE_TM_GMTOFF
+      localtz = tzalloc (getenv ("TZ"));
+#endif
     }
   else
     {
@@ -750,8 +806,12 @@ main (int argc, char **argv)
       if (!group_format[UNCHANGED])
         group_format[UNCHANGED] = "%=";
       if (!group_format[CHANGED])
-        group_format[CHANGED] = concat (group_format[OLD],
-                                        group_format[NEW], "");
+       {
+         char *p = xmalloc (strlen (group_format[OLD])
+                            + strlen (group_format[NEW]) + 1);
+         group_format[CHANGED] = p;
+         strcpy (stpcpy (p, group_format[OLD]), group_format[NEW]);
+       }
     }
 
   no_diff_means_no_output =
@@ -775,7 +835,7 @@ main (int argc, char **argv)
       else
         for (; optind < argc; optind++)
           {
-            int status = compare_files (NULL, from_file, argv[optind]);
+            int status = compare_files (nullptr, from_file, argv[optind]);
             if (exit_status < status)
               exit_status = status;
           }
@@ -785,7 +845,7 @@ main (int argc, char **argv)
       if (to_file)
         for (; optind < argc; optind++)
           {
-            int status = compare_files (NULL, argv[optind], to_file);
+            int status = compare_files (nullptr, argv[optind], to_file);
             if (exit_status < status)
               exit_status = status;
           }
@@ -799,7 +859,7 @@ main (int argc, char **argv)
                 try_help ("extra operand '%s'", argv[optind + 2]);
             }
 
-          exit_status = compare_files (NULL, argv[optind], argv[optind + 1]);
+          exit_status = compare_files (nullptr, argv[optind], argv[optind + 1]);
         }
     }
 
@@ -807,7 +867,7 @@ main (int argc, char **argv)
   print_message_queue ();
 
   check_stdout ();
-  exit (exit_status);
+  cleanup_signal_handlers ();
   return exit_status;
 }
 
@@ -1032,7 +1092,7 @@ specify_value (char const **var, char const *value, char const *option)
   if (*var && ! STREQ (*var, value))
     {
       error (0, 0, _("conflicting %s option value '%s'"), option, value);
-      try_help (NULL, NULL);
+      try_help (nullptr, nullptr);
     }
   *var = value;
 }
@@ -1044,7 +1104,7 @@ specify_style (enum output_style style)
   if (output_style != style)
     {
       if (output_style != OUTPUT_UNSPECIFIED)
-        try_help ("conflicting output style options", NULL);
+        try_help ("conflicting output style options", nullptr);
       output_style = style;
     }
 }
@@ -1053,7 +1113,7 @@ specify_style (enum output_style style)
 static void
 specify_colors_style (char const *value)
 {
-  if (value == NULL || STREQ (value, "auto"))
+  if (value == nullptr || STREQ (value, "auto"))
     colors_style = AUTO;
   else if (STREQ (value, "always"))
     colors_style = ALWAYS;
@@ -1083,6 +1143,24 @@ set_mtime_to_now (struct stat *st)
 #endif
 }
 \f
+/* cmp.file[f].desc markers */
+enum { NONEXISTENT = -1 }; /* nonexistent file */
+enum { UNOPENED = -2 }; /* unopened file (e.g. directory) */
+
+/* encoded errno value */
+static int
+errno_encode (int err)
+{
+  return -3 - err;
+}
+
+/* inverse of errno_encode */
+static int
+errno_decode (int desc)
+{
+  return -3 - desc;
+}
+
 /* Compare two files (or dirs) with parent comparison PARENT
    and names NAME0 and NAME1.
    (If PARENT is null, then the first name is just NAME0, etc.)
@@ -1126,13 +1204,6 @@ compare_files (struct comparison const *parent,
   memset (cmp.file, 0, sizeof cmp.file);
   cmp.parent = parent;
 
-  /* cmp.file[f].desc markers */
-#define NONEXISTENT (-1) /* nonexistent file */
-#define UNOPENED (-2) /* unopened file (e.g. directory) */
-#define ERRNO_ENCODE(errno) (-3 - (errno)) /* encoded errno value */
-
-#define ERRNO_DECODE(desc) (-3 - (desc)) /* inverse of ERRNO_ENCODE */
-
   cmp.file[0].desc = name0 ? UNOPENED : NONEXISTENT;
   cmp.file[1].desc = name1 ? UNOPENED : NONEXISTENT;
 
@@ -1145,17 +1216,17 @@ compare_files (struct comparison const *parent,
 
   if (!parent)
     {
-      free0 = NULL;
-      free1 = NULL;
+      free0 = nullptr;
+      free1 = nullptr;
       cmp.file[0].name = name0;
       cmp.file[1].name = name1;
     }
   else
     {
       cmp.file[0].name = free0
-        = file_name_concat (parent->file[0].name, name0, NULL);
+        = file_name_concat (parent->file[0].name, name0, nullptr);
       cmp.file[1].name = free1
-        = file_name_concat (parent->file[1].name, name1, NULL);
+        = file_name_concat (parent->file[1].name, name1, nullptr);
     }
 
   /* Stat the files.  */
@@ -1175,14 +1246,14 @@ compare_files (struct comparison const *parent,
               if (binary && ! isatty (STDIN_FILENO))
                 set_binary_mode (STDIN_FILENO, O_BINARY);
               if (fstat (STDIN_FILENO, &cmp.file[f].stat) != 0)
-                cmp.file[f].desc = ERRNO_ENCODE (errno);
+                cmp.file[f].desc = errno_encode (errno);
               else
                 {
                   if (S_ISREG (cmp.file[f].stat.st_mode))
                     {
                       off_t pos = lseek (STDIN_FILENO, 0, SEEK_CUR);
                       if (pos < 0)
-                        cmp.file[f].desc = ERRNO_ENCODE (errno);
+                        cmp.file[f].desc = errno_encode (errno);
                       else
                         cmp.file[f].stat.st_size =
                           MAX (0, cmp.file[f].stat.st_size - pos);
@@ -1197,7 +1268,7 @@ compare_files (struct comparison const *parent,
                     ? lstat (cmp.file[f].name, &cmp.file[f].stat)
                     : stat (cmp.file[f].name, &cmp.file[f].stat))
                    != 0)
-            cmp.file[f].desc = ERRNO_ENCODE (errno);
+            cmp.file[f].desc = errno_encode (errno);
         }
     }
 
@@ -1212,8 +1283,8 @@ compare_files (struct comparison const *parent,
             ? (S_ISREG (cmp.file[f].stat.st_mode)
                && ! (cmp.file[f].stat.st_mode & (S_IRWXU | S_IRWXG | S_IRWXO))
                && cmp.file[f].stat.st_size == 0)
-            : ((cmp.file[f].desc == ERRNO_ENCODE (ENOENT)
-                || cmp.file[f].desc == ERRNO_ENCODE (EBADF))
+            : ((cmp.file[f].desc == errno_encode (ENOENT)
+                || cmp.file[f].desc == errno_encode (EBADF))
                && ! parent
                && (cmp.file[1 - f].desc == UNOPENED
                    || cmp.file[1 - f].desc == STDIN_FILENO))))
@@ -1228,7 +1299,7 @@ compare_files (struct comparison const *parent,
 
   for (f = 0; f < 2; f++)
     {
-      int e = ERRNO_DECODE (cmp.file[f].desc);
+      int e = errno_decode (cmp.file[f].desc);
       if (0 <= e)
         {
           errno = e;
@@ -1237,7 +1308,8 @@ compare_files (struct comparison const *parent,
         }
     }
 
-  if (status == EXIT_SUCCESS && ! parent && DIR_P (0) != DIR_P (1))
+  if (status == EXIT_SUCCESS && ! parent && !no_directory
+      && DIR_P (0) != DIR_P (1))
     {
       /* If one is a directory, and it was specified in the command line,
          use the file in that dir with the other file's basename.  */
@@ -1321,7 +1393,7 @@ compare_files (struct comparison const *parent,
             {
               char const *dir;
 
-              /* PARENT must be non-NULL here.  */
+              /* PARENT must be non-null here.  */
               assert (parent);
               dir = parent->file[cmp.file[0].desc == NONEXISTENT].name;
 
@@ -1336,11 +1408,11 @@ compare_files (struct comparison const *parent,
           /* We have two files that are not to be compared.  */
 
           /* See POSIX 1003.1-2001 for this format.  */
-          message5 ("File %s is a %s while file %s is a %s\n",
-                    file_label[0] ? file_label[0] : cmp.file[0].name,
-                    file_type (&cmp.file[0].stat),
-                    file_label[1] ? file_label[1] : cmp.file[1].name,
-                    file_type (&cmp.file[1].stat));
+          message ("File %s is a %s while file %s is a %s\n",
+                  file_label[0] ? file_label[0] : cmp.file[0].name,
+                  file_type (&cmp.file[0].stat),
+                  file_label[1] ? file_label[1] : cmp.file[1].name,
+                  file_type (&cmp.file[1].stat));
 
           /* This is a difference.  */
           status = EXIT_FAILURE;
@@ -1356,12 +1428,12 @@ compare_files (struct comparison const *parent,
           && S_ISLNK (cmp.file[1].stat.st_mode))
         {
           /* Compare the values of the symbolic links.  */
-          char *link_value[2] = { NULL, NULL };
+          char *link_value[2] = { nullptr, nullptr };
 
           for (f = 0; f < 2; f++)
             {
               link_value[f] = xreadlink (cmp.file[f].name);
-              if (link_value[f] == NULL)
+              if (link_value[f] == nullptr)
                 {
                   perror_with_name (cmp.file[f].name);
                   status = EXIT_TROUBLE;
@@ -1386,11 +1458,11 @@ compare_files (struct comparison const *parent,
           /* We have two files that are not to be compared, because
              one of them is a symbolic link and the other one is not.  */
 
-          message5 ("File %s is a %s while file %s is a %s\n",
-                    file_label[0] ? file_label[0] : cmp.file[0].name,
-                    file_type (&cmp.file[0].stat),
-                    file_label[1] ? file_label[1] : cmp.file[1].name,
-                    file_type (&cmp.file[1].stat));
+          message ("File %s is a %s while file %s is a %s\n",
+                  file_label[0] ? file_label[0] : cmp.file[0].name,
+                  file_type (&cmp.file[0].stat),
+                  file_label[1] ? file_label[1] : cmp.file[1].name,
+                  file_type (&cmp.file[1].stat));
 
           /* This is a difference.  */
           status = EXIT_FAILURE;
index 27362c0..75d5ab0 100644 (file)
@@ -1,7 +1,7 @@
 /* Shared definitions for GNU DIFF
 
    Copyright (C) 1988-1989, 1991-1995, 1998, 2001-2002, 2004, 2009-2013,
-   2015-2021 Free Software Foundation, Inc.
+   2015-2023 Free Software Foundation, Inc.
 
    This file is part of GNU DIFF.
 
 #include <stdio.h>
 #include <unlocked-io.h>
 
+_GL_INLINE_HEADER_BEGIN
+
+#ifdef GDIFF_MAIN
+# define DIFF_INLINE _GL_EXTERN_INLINE
+# define XTERN
+#else
+# define DIFF_INLINE _GL_INLINE
+# define XTERN extern
+#endif
+
 /* What kind of changes a hunk contains.  */
 enum changes
 {
@@ -54,12 +64,6 @@ enum colors_style
 \f
 /* Variables for command line options */
 
-#ifndef GDIFF_MAIN
-# define XTERN extern
-#else
-# define XTERN
-#endif
-
 enum output_style
 {
   /* No output style specified.  */
@@ -92,7 +96,10 @@ enum output_style
 
 /* True for output styles that are robust,
    i.e. can handle a file that ends in a non-newline.  */
-#define ROBUST_OUTPUT_STYLE(S) ((S) != OUTPUT_ED && (S) != OUTPUT_FORWARD_ED)
+DIFF_INLINE bool robust_output_style (enum output_style s)
+{
+  return s != OUTPUT_ED && s != OUTPUT_FORWARD_ED;
+}
 
 XTERN enum output_style output_style;
 
@@ -155,6 +162,13 @@ XTERN bool ignore_file_name_case;
    (--no-dereference).  */
 XTERN bool no_dereference_symlinks;
 
+/* Local timezone for 'c' output headers, if needed.  */
+#if HAVE_TM_GMTOFF
+# define localtz 0 /* Placeholder since localtz is never needed.  */
+#else
+XTERN timezone_t localtz;
+#endif
+
 /* File labels for '-c' output headers (--label).  */
 XTERN char *file_label[2];
 
@@ -322,10 +336,6 @@ struct file_data {
     lin equiv_max;
 };
 
-/* The file buffer, considered as an array of bytes rather than
-   as an array of words.  */
-#define FILE_BUFFER(f) ((char *) (f)->buffer)
-
 /* Data on two input files being compared.  */
 
 struct comparison
@@ -355,7 +365,9 @@ extern void print_context_script (struct change *, bool);
 extern int diff_dirs (struct comparison const *,
                       int (*) (struct comparison const *,
                                char const *, char const *));
-extern char *find_dir_file_pathname (char const *, char const *);
+extern char *find_dir_file_pathname (char const *, char const *)
+  ATTRIBUTE_MALLOC ATTRIBUTE_DEALLOC_FREE
+  ATTRIBUTE_RETURNS_NONNULL;
 
 /* ed.c */
 extern void print_ed_script (struct change *);
@@ -380,24 +392,21 @@ extern void print_sdiff_script (struct change *);
 /* util.c */
 extern char const change_letter[4];
 extern char const pr_program[];
-extern char *concat (char const *, char const *, char const *);
-extern bool lines_differ (char const *, char const *) _GL_ATTRIBUTE_PURE;
+extern bool lines_differ (char const *, char const *) ATTRIBUTE_PURE;
 extern lin translate_line_number (struct file_data const *, lin);
 extern struct change *find_change (struct change *);
 extern struct change *find_reverse_change (struct change *);
-extern void *zalloc (size_t);
 extern enum changes analyze_hunk (struct change *, lin *, lin *, lin *, lin *);
 extern void begin_output (void);
+extern void cleanup_signal_handlers (void);
 extern void debug_script (struct change *);
-extern void fatal (char const *) __attribute__((noreturn));
+extern _Noreturn void fatal (char const *);
 extern void finish_output (void);
-extern void message (char const *, char const *, char const *);
-extern void message5 (char const *, char const *, char const *,
-                      char const *, char const *);
+extern void message (char const *, ...) ATTRIBUTE_FORMAT ((printf, 1, 2));
 extern void output_1_line (char const *, char const *, char const *,
                            char const *);
 extern void perror_with_name (char const *);
-extern void pfatal_with_name (char const *) __attribute__((noreturn));
+extern _Noreturn void pfatal_with_name (char const *);
 extern void print_1_line (char const *, char const * const *);
 extern void print_1_line_nl (char const *, char const * const *, bool);
 extern void print_message_queue (void);
@@ -405,8 +414,7 @@ extern void print_number_range (char, struct file_data *, lin, lin);
 extern void print_script (struct change *, struct change * (*) (struct change *),
                           void (*) (struct change *));
 extern void setup_output (char const *, char const *, bool);
-extern void translate_range (struct file_data const *, lin, lin,
-                             printint *, printint *);
+extern void translate_range (struct file_data const *, lin, lin, lin *, lin *);
 
 enum color_context
 {
@@ -421,3 +429,5 @@ XTERN bool presume_output_tty;
 
 extern void set_color_context (enum color_context color_context);
 extern void set_color_palette (char const *palette);
+
+_GL_INLINE_HEADER_END
index 6be7e3c..f8a48eb 100644 (file)
@@ -1,7 +1,7 @@
 /* GNU diff3 - compare three files line by line
 
    Copyright (C) 1988-1989, 1992-1996, 1998, 2001-2002, 2004, 2006, 2009-2013,
-   2015-2021 Free Software Foundation, Inc.
+   2015-2023 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 \f
+/* As of GCC 11.2.1, gcc -Wanalyzer-too-complex reports that this
+   program's code is too complicated for gcc -fanalyzer.
+   FIXME: Compile with -DANALYZER_NULL_DEFERENCE and see whether the
+   resulting diagnostics are false alarms.  */
+#if 10 <= __GNUC__ && !ANALYZER_NULL_DEREFERENCE
+# pragma GCC diagnostic ignored "-Wanalyzer-null-dereference"
+#endif
+
 #include "system.h"
 #include "paths.h"
 
@@ -37,7 +45,7 @@
 #include <xstdopen.h>
 
 /* The official name of this program (e.g., no 'g' prefix).  */
-#define PROGRAM_NAME "diff3"
+static char const PROGRAM_NAME[] = "diff3";
 
 #define AUTHORS \
   proper_name ("Randy Smith")
    data structures for both diff3 diffs and normal diffs.  */
 
 /* Different files within a three way diff.  */
-#define        FILE0   0
-#define        FILE1   1
-#define        FILE2   2
+enum { FILE0, FILE1, FILE2 };
 
 /* A three way diff is built from two two-way diffs; the file which
    the two two-way diffs share is:  */
-#define        FILEC   FILE2
+enum { FILEC = FILE2 };
 
 /* Different files within a two way diff.
    FC is the common file, FO the other file.  */
-#define FO 0
-#define FC 1
+enum { FO, FC };
 
 /* The ranges are indexed by */
-#define        RANGE_START     0
-#define        RANGE_END       1
+enum { RANGE_START, RANGE_END };
 
 enum diff_type {
-  ERROR,                       /* Should not be used */
-  ADD,                         /* Two way diff add */
-  CHANGE,                      /* Two way diff change */
-  DELETE,                      /* Two way diff delete */
+  DIFF_ERROR,                  /* Should not be used */
+  DIFF_ADD,                    /* Two way diff add */
+  DIFF_CHANGE,                 /* Two way diff change */
+  DIFF_DELETE,                 /* Two way diff delete */
   DIFF_ALL,                    /* All three are different */
   DIFF_1ST,                    /* Only the first is different */
   DIFF_2ND,                    /* Only the second */
@@ -80,7 +84,7 @@ struct diff_block {
   char **lines[2];             /* The actual lines (may contain nulls) */
   size_t *lengths[2];          /* Line lengths (including newlines, if any) */
   struct diff_block *next;
-#ifdef lint
+#ifdef GCC_LINT
   struct diff_block *n2;       /* Used only when freeing.  */
 #endif
 };
@@ -95,7 +99,11 @@ struct diff3_block {
   struct diff3_block *next;
 };
 
-/* Access the ranges on a diff block.  */
+/* The following are macros, not functions, as they may be used as
+   lvalues, or they may be polymorphic in that they work with either
+   diff or diff3 blocks.  */
+
+/* Access the ranges on a diff or diff3 block.  */
 #define        D_LOWLINE(diff, filenum)        \
   ((diff)->ranges[filenum][RANGE_START])
 #define        D_HIGHLINE(diff, filenum)       \
@@ -103,7 +111,7 @@ struct diff3_block {
 #define        D_NUMLINES(diff, filenum)       \
   (D_HIGHLINE (diff, filenum) - D_LOWLINE (diff, filenum) + 1)
 
-/* Access the line numbers in a file in a diff by relative line
+/* Access the line numbers in a file in a diff or diff3 block by relative line
    numbers (i.e. line number within the diff itself).  Note that these
    are lvalues and can be used for assignment.  */
 #define        D_RELNUM(diff, filenum, linenum)        \
@@ -117,23 +125,23 @@ struct diff3_block {
 #define        D_LENARRAY(diff, filenum)       \
   ((diff)->lengths[filenum])
 
-/* Next block.  */
+/* Next diff or diff3 block.  */
 #define        D_NEXT(diff)    ((diff)->next)
 
 /* Access the type of a diff3 block.  */
 #define        D3_TYPE(diff)   ((diff)->correspond)
 
-/* Line mappings based on diffs.  The first maps off the top of the
-   diff, the second off of the bottom.  */
+/* Line mappings based on diff or diff3 blocks.  The first maps off
+   the top of the diff, the second off of the bottom.  */
 #define        D_HIGH_MAPLINE(diff, fromfile, tofile, linenum) \
   ((linenum)                                           \
-   - D_HIGHLINE ((diff), (fromfile))                   \
-   + D_HIGHLINE ((diff), (tofile)))
+   - D_HIGHLINE (diff, fromfile)                       \
+   + D_HIGHLINE (diff, tofile))
 
 #define        D_LOW_MAPLINE(diff, fromfile, tofile, linenum)  \
   ((linenum)                                           \
-   - D_LOWLINE ((diff), (fromfile))                    \
-   + D_LOWLINE ((diff), (tofile)))
+   - D_LOWLINE (diff, fromfile)                                \
+   + D_LOWLINE (diff, tofile))
 \f
 /* Options variables for flags set on command line.  */
 
@@ -181,12 +189,12 @@ static struct diff3_block *create_diff3_block (lin, lin, lin, lin, lin, lin);
 static struct diff3_block *make_3way_diff (struct diff_block *, struct diff_block *);
 static struct diff3_block *reverse_diff3_blocklist (struct diff3_block *);
 static struct diff3_block *using_to_diff3_block (struct diff_block *[2], struct diff_block *[2], int, int, struct diff3_block const *);
-static struct diff_block *process_diff (char const *, char const *, struct diff_block **, char **);
+static struct diff_block *process_diff (char const *, char const *, char **);
 static void check_stdout (void);
-static void fatal (char const *) __attribute__((noreturn));
+static _Noreturn void fatal (char const *);
 static void output_diff3 (FILE *, struct diff3_block *, int const[3], int const[3]);
-static void perror_with_exit (char const *) __attribute__((noreturn));
-static void try_help (char const *, char const *) __attribute__((noreturn));
+static _Noreturn void perror_with_exit (char const *);
+static _Noreturn void try_help (char const *, char const *);
 static void usage (void);
 
 static char const *diff_program = DEFAULT_DIFF_PROGRAM;
@@ -220,7 +228,7 @@ static struct option const longopts[] =
 static void
 free_diff_block (struct diff_block *p)
 {
-#ifndef lint
+#ifndef GCC_LINT
   (void)p;
 #else
   while (p)
@@ -241,7 +249,7 @@ free_diff_block (struct diff_block *p)
 static void
 next_to_n2 (struct diff_block *p)
 {
-#ifndef lint
+#ifndef GCC_LINT
   (void)p;
 #else
   while (p)
@@ -259,13 +267,12 @@ main (int argc, char **argv)
   int incompat = 0;
   enum { OPTION_3, OPTION_A, OPTION_E, OPTION_X, OPTION_e, OPTION_x };
   bool conflicts_found;
-  struct diff_block *thread0, *thread1, *last_block;
+  struct diff_block *thread0, *thread1;
   struct diff3_block *diff3;
   int tag_count = 0;
   char *tag_strings[3];
   char *commonname;
   char **file;
-  struct stat statb;
 
   exit_failure = EXIT_TROUBLE;
   initialize_main (&argc, &argv);
@@ -321,7 +328,7 @@ main (int argc, char **argv)
           break;
         case 'v':
           version_etc (stdout, PROGRAM_NAME, PACKAGE_NAME, Version,
-                       AUTHORS, (char *) NULL);
+                       AUTHORS, nullptr);
           check_stdout ();
           return EXIT_SUCCESS;
         case DIFF_PROGRAM_OPTION:
@@ -403,15 +410,6 @@ main (int argc, char **argv)
   for (i = 0; i < 3; i++)
     rev_mapping[mapping[i]] = i;
 
-  for (i = 0; i < 3; i++)
-    if (! STREQ (file[i], "-"))
-      {
-        if (stat (file[i], &statb) < 0)
-          perror_with_exit (file[i]);
-        else if (S_ISDIR (statb.st_mode))
-          die (EXIT_TROUBLE, EISDIR, "%s", file[i]);
-      }
-
 #ifdef SIGCHLD
   /* System V fork+wait does not work if SIGCHLD is ignored.  */
   signal (SIGCHLD, SIG_DFL);
@@ -422,8 +420,8 @@ main (int argc, char **argv)
 
   char *b0, *b1;
   commonname = file[rev_mapping[FILEC]];
-  thread1 = process_diff (file[rev_mapping[FILE1]], commonname, &last_block, &b1);
-  thread0 = process_diff (file[rev_mapping[FILE0]], commonname, &last_block, &b0);
+  thread1 = process_diff (file[rev_mapping[FILE1]], commonname, &b1);
+  thread0 = process_diff (file[rev_mapping[FILE0]], commonname, &b0);
 
   next_to_n2 (thread0);
   next_to_n2 (thread1);
@@ -914,7 +912,7 @@ create_diff3_block (lin low0, lin high0,
   struct diff3_block *result = xmalloc (sizeof *result);
   lin numlines;
 
-  D3_TYPE (result) = ERROR;
+  D3_TYPE (result) = DIFF_ERROR;
   D_NEXT (result) = 0;
 
   /* Assign ranges */
@@ -991,7 +989,6 @@ compare_line_list (char * const list1[], size_t const lengths1[],
 static struct diff_block *
 process_diff (char const *filea,
               char const *fileb,
-              struct diff_block **last_block,
               char **buf_to_free)
 {
   char *diff_contents;
@@ -1001,10 +998,6 @@ process_diff (char const *filea,
   lin i;
   struct diff_block *block_list;
   struct diff_block **block_list_end = &block_list;
-  struct diff_block *bptr IF_LINT (= NULL);
-  size_t too_many_lines = (PTRDIFF_MAX
-                           / MIN (sizeof *bptr->lines[1],
-                                  sizeof *bptr->lengths[1]));
 
   diff_limit = read_diff (filea, fileb, &diff_contents);
   *buf_to_free = diff_contents;
@@ -1012,12 +1005,12 @@ process_diff (char const *filea,
 
   while (scan_diff < diff_limit)
     {
-      bptr = xmalloc (sizeof *bptr);
+      struct diff_block *bptr = xmalloc (sizeof *bptr);
       bptr->lines[0] = bptr->lines[1] = 0;
       bptr->lengths[0] = bptr->lengths[1] = 0;
 
       dt = process_diff_control (&scan_diff, bptr);
-      if (dt == ERROR || *scan_diff != '\n')
+      if (dt == DIFF_ERROR || *scan_diff != '\n')
         {
           fprintf (stderr, _("%s: diff failed: "), program_name);
           do
@@ -1032,13 +1025,13 @@ process_diff (char const *filea,
       /* Force appropriate ranges to be null, if necessary */
       switch (dt)
         {
-        case ADD:
+        case DIFF_ADD:
           bptr->ranges[0][0]++;
           break;
-        case DELETE:
+        case DIFF_DELETE:
           bptr->ranges[1][0]++;
           break;
-        case CHANGE:
+        case DIFF_CHANGE:
           break;
         default:
           fatal ("internal error: invalid diff type in process_diff");
@@ -1047,13 +1040,11 @@ process_diff (char const *filea,
 
       /* Allocate space for the pointers for the lines from filea, and
          parcel them out among these pointers */
-      if (dt != ADD)
+      if (dt != DIFF_ADD)
         {
           lin numlines = D_NUMLINES (bptr, 0);
-          if (too_many_lines <= numlines)
-            xalloc_die ();
-          bptr->lines[0] = xmalloc (numlines * sizeof *bptr->lines[0]);
-          bptr->lengths[0] = xmalloc (numlines * sizeof *bptr->lengths[0]);
+          bptr->lines[0] = xnmalloc (numlines, sizeof *bptr->lines[0]);
+          bptr->lengths[0] = xnmalloc (numlines, sizeof *bptr->lengths[0]);
           for (i = 0; i < numlines; i++)
             scan_diff = scan_diff_line (scan_diff,
                                         &(bptr->lines[0][i]),
@@ -1063,7 +1054,7 @@ process_diff (char const *filea,
         }
 
       /* Get past the separator for changes */
-      if (dt == CHANGE)
+      if (dt == DIFF_CHANGE)
         {
           if (strncmp (scan_diff, "---\n", 4))
             fatal ("invalid diff format; invalid change separator");
@@ -1072,13 +1063,11 @@ process_diff (char const *filea,
 
       /* Allocate space for the pointers for the lines from fileb, and
          parcel them out among these pointers */
-      if (dt != DELETE)
+      if (dt != DIFF_DELETE)
         {
           lin numlines = D_NUMLINES (bptr, 1);
-          if (too_many_lines <= numlines)
-            xalloc_die ();
-          bptr->lines[1] = xmalloc (numlines * sizeof *bptr->lines[1]);
-          bptr->lengths[1] = xmalloc (numlines * sizeof *bptr->lengths[1]);
+          bptr->lines[1] = xnmalloc (numlines, sizeof *bptr->lines[1]);
+          bptr->lengths[1] = xnmalloc (numlines, sizeof *bptr->lengths[1]);
           for (i = 0; i < numlines; i++)
             scan_diff = scan_diff_line (scan_diff,
                                         &(bptr->lines[1][i]),
@@ -1092,14 +1081,13 @@ process_diff (char const *filea,
       block_list_end = &bptr->next;
     }
 
-  *block_list_end = NULL;
-  *last_block = bptr;
+  *block_list_end = nullptr;
   return block_list;
 }
 
 /* Skip tabs and spaces, and return the first character after them.  */
 
-static char * _GL_ATTRIBUTE_PURE
+static char * ATTRIBUTE_PURE
 skipwhite (char *s)
 {
   while (*s == ' ' || *s == '\t')
@@ -1132,7 +1120,7 @@ readnum (char *s, lin *pnum)
 }
 
 /* Parse a normal format diff control string.  Return the type of the
-   diff (ERROR if the format is bad).  All of the other important
+   diff (DIFF_ERROR if the format is bad).  All of the other important
    information is filled into to the structure pointed to by db, and
    the string pointer (whose location is passed to this routine) is
    updated to point beyond the end of the string parsed.  Note that
@@ -1141,8 +1129,8 @@ readnum (char *s, lin *pnum)
    If some specific pair of numbers has been reduced to a single
    number, then both corresponding numbers in the diff block are set
    to that number.  In general these numbers are interpreted as ranges
-   inclusive, unless being used by the ADD or DELETE commands.  It is
-   assumed that these will be special cased in a superior routine.   */
+   inclusive, unless being used by the DIFF_ADD or DIFF_DELETE commands.
+   It is assumed that these will be special cased in a superior routine.  */
 
 static enum diff_type
 process_diff_control (char **string, struct diff_block *db)
@@ -1153,7 +1141,7 @@ process_diff_control (char **string, struct diff_block *db)
   /* Read first set of digits */
   s = readnum (skipwhite (s), &db->ranges[0][RANGE_START]);
   if (! s)
-    return ERROR;
+    return DIFF_ERROR;
 
   /* Was that the only digit? */
   s = skipwhite (s);
@@ -1161,7 +1149,7 @@ process_diff_control (char **string, struct diff_block *db)
     {
       s = readnum (s + 1, &db->ranges[0][RANGE_END]);
       if (! s)
-        return ERROR;
+        return DIFF_ERROR;
     }
   else
     db->ranges[0][RANGE_END] = db->ranges[0][RANGE_START];
@@ -1171,23 +1159,23 @@ process_diff_control (char **string, struct diff_block *db)
   switch (*s)
     {
     case 'a':
-      type = ADD;
+      type = DIFF_ADD;
       break;
     case 'c':
-      type = CHANGE;
+      type = DIFF_CHANGE;
       break;
     case 'd':
-      type = DELETE;
+      type = DIFF_DELETE;
       break;
     default:
-      return ERROR;                    /* Bad format */
+      return DIFF_ERROR;       /* Bad format */
     }
   s++;                         /* Past letter */
 
   /* Read second set of digits */
   s = readnum (skipwhite (s), &db->ranges[1][RANGE_START]);
   if (! s)
-    return ERROR;
+    return DIFF_ERROR;
 
   /* Was that the only digit? */
   s = skipwhite (s);
@@ -1195,7 +1183,7 @@ process_diff_control (char **string, struct diff_block *db)
     {
       s = readnum (s + 1, &db->ranges[1][RANGE_END]);
       if (! s)
-        return ERROR;
+        return DIFF_ERROR;
       s = skipwhite (s);               /* To move to end */
     }
   else
@@ -1215,7 +1203,7 @@ read_diff (char const *filea,
   int fd, wstatus, status;
   int werrno = 0;
   struct stat pipestat;
-  char const *argv[9];
+  char const *argv[10];
   char const **ap;
 #if HAVE_WORKING_FORK
   int fds[2];
@@ -1232,6 +1220,7 @@ read_diff (char const *filea,
   if (strip_trailing_cr)
     *ap++ = "--strip-trailing-cr";
   *ap++ = "--horizon-lines=100";
+  *ap++ = "---no-directory";
   *ap++ = "--";
   *ap++ = filea;
   *ap++ = fileb;
@@ -1278,9 +1267,9 @@ read_diff (char const *filea,
 
 #endif
 
-  if (fstat (fd, &pipestat) != 0)
-    perror_with_exit ("fstat");
-  current_chunk_size = MAX (1, STAT_BLOCKSIZE (pipestat));
+  current_chunk_size = (fstat (fd, &pipestat) == 0
+                        ? MAX (1, STAT_BLOCKSIZE (pipestat))
+                        : 8 * 1024);
   diff_result = xmalloc (current_chunk_size);
   total = 0;
 
@@ -1435,20 +1424,18 @@ output_diff3 (FILE *outputfile, struct diff3_block *diff,
           int realfile = mapping[i];
           lin lowt = D_LOWLINE (ptr, realfile);
           lin hight = D_HIGHLINE (ptr, realfile);
-          printint llowt = lowt;
-          printint lhight = hight;
 
           fprintf (outputfile, "%d:", i + 1);
           switch (lowt - hight)
             {
             case 1:
-              fprintf (outputfile, "%"pI"da\n", llowt - 1);
+              fprintf (outputfile, "%"pI"da\n", lowt - 1);
               break;
             case 0:
-              fprintf (outputfile, "%"pI"dc\n", llowt);
+              fprintf (outputfile, "%"pI"dc\n", lowt);
               break;
             default:
-              fprintf (outputfile, "%"pI"d,%"pI"dc\n", llowt, lhight);
+              fprintf (outputfile, "%"pI"d,%"pI"dc\n", lowt, hight);
               break;
             }
 
@@ -1505,7 +1492,7 @@ dotlines (FILE *outputfile, struct diff3_block *b, int filenum)
    and continuing for NUM lines.  */
 
 static void
-undotlines (FILE *outputfile, bool leading_dot, printint start, printint num)
+undotlines (FILE *outputfile, bool leading_dot, lin start, lin num)
 {
   fputs (".\n", outputfile);
   if (leading_dot)
@@ -1554,8 +1541,6 @@ output_diff3_edscript (FILE *outputfile, struct diff3_block *diff,
            ? DIFF_ALL
            : DIFF_1ST + rev_mapping[b->correspond - DIFF_1ST]);
 
-      printint low0, high0;
-
       /* If we aren't supposed to do this output block, skip it.  */
       switch (type)
         {
@@ -1565,8 +1550,8 @@ output_diff3_edscript (FILE *outputfile, struct diff3_block *diff,
         case DIFF_ALL: if (simple_only) continue; conflict = flagging; break;
         }
 
-      low0 = D_LOWLINE (b, mapping[FILE0]);
-      high0 = D_HIGHLINE (b, mapping[FILE0]);
+      lin low0 = D_LOWLINE (b, mapping[FILE0]);
+      lin high0 = D_HIGHLINE (b, mapping[FILE0]);
 
       if (conflict)
         {
index 01a32ab..802060a 100644 (file)
--- a/src/dir.c
+++ b/src/dir.c
@@ -1,7 +1,7 @@
 /* Read, sort and compare two directories.  Used for GNU DIFF.
 
    Copyright (C) 1988-1989, 1992-1995, 1998, 2001-2002, 2004, 2006-2007,
-   2009-2013, 2015-2021 Free Software Foundation, Inc.
+   2009-2013, 2015-2023 Free Software Foundation, Inc.
 
    This file is part of GNU DIFF.
 
@@ -126,9 +126,7 @@ dir_read (struct file_data const *dir, struct dirdata *dirdata)
     }
 
   /* Create the 'names' table from the 'data' table.  */
-  if (PTRDIFF_MAX / sizeof *names - 1 <= nnames)
-    xalloc_die ();
-  dirdata->names = names = xmalloc ((nnames + 1) * sizeof *names);
+  dirdata->names = names = xnmalloc (nnames + 1, sizeof *names);
   dirdata->nnames = nnames;
   for (i = 0;  i < nnames;  i++)
     {
@@ -324,7 +322,7 @@ diff_dirs (struct comparison const *cmp,
 
 /* Return nonzero if CMP is looping recursively in argument I.  */
 
-static bool _GL_ATTRIBUTE_PURE
+static bool ATTRIBUTE_PURE
 dir_loop (struct comparison const *cmp, int i)
 {
   struct comparison const *p = cmp;
@@ -339,16 +337,13 @@ dir_loop (struct comparison const *cmp, int i)
 char *
 find_dir_file_pathname (char const *dir, char const *file)
 {
-  /* The 'IF_LINT (volatile)' works around what appears to be a bug in
-     gcc 4.8.0 20120825; see
-     <http://lists.gnu.org/archive/html/bug-diffutils/2012-08/msg00007.html>.
-     */
+  /* IF_LINT due to GCC bug 21161.  */
   char const * IF_LINT (volatile) match = file;
 
   char *val;
   struct dirdata dirdata;
-  dirdata.names = NULL;
-  dirdata.data = NULL;
+  dirdata.names = nullptr;
+  dirdata.data = nullptr;
 
   if (ignore_file_name_case)
     {
@@ -378,7 +373,7 @@ find_dir_file_pathname (char const *dir, char const *file)
         }
     }
 
-  val = file_name_concat (dir, match, NULL);
+  val = file_name_concat (dir, match, nullptr);
   free (dirdata.names);
   free (dirdata.data);
   return val;
index 053e1fc..8b313e1 100644 (file)
--- a/src/ed.c
+++ b/src/ed.c
@@ -1,7 +1,7 @@
 /* Output routines for ed-script format.
 
    Copyright (C) 1988-1989, 1991-1993, 1995, 1998, 2001, 2004, 2006, 2009-2013,
-   2015-2021 Free Software Foundation, Inc.
+   2015-2023 Free Software Foundation, Inc.
 
    This file is part of GNU DIFF.
 
@@ -144,7 +144,7 @@ static void
 print_rcs_hunk (struct change *hunk)
 {
   lin i, f0, l0, f1, l1;
-  printint tf0, tl0, tf1, tl1;
+  lin tf0, tl0, tf1, tl1;
 
   /* Determine range of line numbers involved in each file.  */
   enum changes changes = analyze_hunk (hunk, &f0, &l0, &f1, &l1);
index d40a88e..d83a387 100644 (file)
@@ -1,6 +1,6 @@
 /* #ifdef-format output routines for GNU DIFF.
 
-   Copyright (C) 1989, 1991-1994, 2001-2002, 2004, 2006, 2009-2013, 2015-2021
+   Copyright (C) 1989, 1991-1994, 2001-2002, 2004, 2006, 2009-2013, 2015-2023
    Free Software Foundation, Inc.
 
    This file is part of GNU DIFF.
@@ -329,7 +329,7 @@ do_printf_spec (FILE *out, char const *spec,
         return 0;
       else
         {
-          char value IF_LINT (= 0);
+          char value;
           f = scan_char_literal (f, &value);
           if (!f)
             return 0;
@@ -359,16 +359,14 @@ do_printf_spec (FILE *out, char const *spec,
           {
             /* For example, if the spec is "%3xn" and pI is "l", use the printf
                format spec "%3lx".  Here the spec prefix is "%3".  */
-            printint print_value = value;
             size_t spec_prefix_len = f - spec - 2;
             size_t pI_len = sizeof pI - 1;
             char *format = xmalloca (spec_prefix_len + pI_len + 2);
-            char *p = format + spec_prefix_len + pI_len;
-            memcpy (format, spec, spec_prefix_len);
-            memcpy (format + spec_prefix_len, pI, pI_len);
+            char *p = mempcpy (format, spec, spec_prefix_len);
+            p = stpcpy (p, pI);
             *p++ = c;
             *p = '\0';
-            fprintf (out, format, print_value);
+            fprintf (out, format, value);
             freea (format);
           }
       }
@@ -397,7 +395,7 @@ scan_char_literal (char const *lit, char *valptr)
     {
       case 0:
       case '\'':
-        return NULL;
+        return nullptr;
 
       case '\\':
         value = 0;
@@ -405,18 +403,18 @@ scan_char_literal (char const *lit, char *valptr)
           {
             unsigned int digit = c - '0';
             if (8 <= digit)
-              return NULL;
+              return nullptr;
             value = 8 * value + digit;
           }
         digits = p - lit - 2;
         if (! (1 <= digits && digits <= 3))
-          return NULL;
+          return nullptr;
         break;
 
       default:
         value = c;
         if (*p++ != '\'')
-          return NULL;
+          return nullptr;
         break;
     }
 
index 1f0e040..fe4f8b4 100644 (file)
--- a/src/io.c
+++ b/src/io.c
@@ -1,7 +1,7 @@
 /* File I/O for GNU DIFF.
 
    Copyright (C) 1988-1989, 1992-1995, 1998, 2001-2002, 2004, 2006, 2009-2013,
-   2015-2021 Free Software Foundation, Inc.
+   2015-2023 Free Software Foundation, Inc.
 
    This file is part of GNU DIFF.
 
@@ -64,6 +64,15 @@ static lin equivs_index;
 /* Number of elements allocated in the array 'equivs'.  */
 static lin equivs_alloc;
 \f
+/* The file buffer, considered as an array of bytes rather than
+   as an array of words.  */
+
+static char *
+file_buffer (struct file_data const *f)
+{
+  return (char *) f->buffer;
+}
+
 /* Read a block of data into a file buffer, checking for EOF and error.  */
 
 void
@@ -72,7 +81,7 @@ file_block_read (struct file_data *current, size_t size)
   if (size && ! current->eof)
     {
       size_t s = block_read (current->desc,
-                             FILE_BUFFER (current) + current->buffered, size);
+                             file_buffer (current) + current->buffered, size);
       if (s == SIZE_MAX)
         pfatal_with_name (current->name);
       current->buffered += s;
@@ -165,10 +174,9 @@ slurp (struct file_data *current)
       /* Get the size out of the stat block.
          Allocate just enough room for appended newline plus word sentinel,
          plus word-alignment since we want the buffer word-aligned.  */
-      size_t file_size = current->stat.st_size;
-      cc = file_size + 2 * sizeof (word) - file_size % sizeof (word);
-      if (file_size != current->stat.st_size || cc < file_size
-          || PTRDIFF_MAX <= cc)
+      off_t file_size = current->stat.st_size;
+      if (INT_ADD_WRAPV (2 * sizeof (word) - file_size % sizeof (word),
+                        file_size, &cc))
         xalloc_die ();
 
       if (current->bufsize < cc)
@@ -233,7 +241,7 @@ find_and_hash_each_line (struct file_data *current)
   lin eqs_index = equivs_index;
   lin eqs_alloc = equivs_alloc;
   char const *suffix_begin = current->suffix_begin;
-  char const *bufend = FILE_BUFFER (current) + current->buffered;
+  char const *bufend = file_buffer (current) + current->buffered;
   bool ig_case = ignore_case;
   enum DIFF_white_space ig_white_space = ignore_white_space;
   bool diff_length_compare_anyway =
@@ -348,7 +356,7 @@ find_and_hash_each_line (struct file_data *current)
 
       if (p == bufend
           && current->missing_newline
-          && ROBUST_OUTPUT_STYLE (output_style))
+          && robust_output_style (output_style))
         {
           /* The last line is incomplete and we do not silently
              complete lines.  If the line cannot compare equal to any
@@ -447,7 +455,7 @@ find_and_hash_each_line (struct file_data *current)
         {
           /* If the last line is incomplete and we do not silently
              complete lines, don't count its appended newline.  */
-          if (current->missing_newline && ROBUST_OUTPUT_STYLE (output_style))
+          if (current->missing_newline && robust_output_style (output_style))
             linbuf[line]--;
           break;
         }
@@ -480,7 +488,7 @@ static void
 prepare_text (struct file_data *current)
 {
   size_t buffered = current->buffered;
-  char *p = FILE_BUFFER (current);
+  char *p = file_buffer (current);
   if (!p)
     return;
 
@@ -590,7 +598,7 @@ find_identical_ends (struct file_data filevec[])
         p0++, p1++;
 
       /* Don't mistakenly count missing newline as part of prefix.  */
-      if (ROBUST_OUTPUT_STYLE (output_style)
+      if (robust_output_style (output_style)
           && ((buffer0 + n0 - filevec[0].missing_newline < p0)
               !=
               (buffer1 + n1 - filevec[1].missing_newline < p1)))
@@ -615,7 +623,7 @@ find_identical_ends (struct file_data filevec[])
   p0 = buffer0 + n0;
   p1 = buffer1 + n1;
 
-  if (! ROBUST_OUTPUT_STYLE (output_style)
+  if (! robust_output_style (output_style)
       || filevec[0].missing_newline == filevec[1].missing_newline)
     {
       end0 = p0;       /* Addr of last char in file 0.  */
@@ -716,11 +724,11 @@ find_identical_ends (struct file_data filevec[])
 
   middle_guess = guess_lines (lines, p0 - buffer0, p1 - filevec[1].prefix_end);
   suffix_guess = guess_lines (lines, p0 - buffer0, buffer1 + n1 - p1);
-  alloc_lines1 = buffered_prefix + middle_guess + MIN (context, suffix_guess);
-  if (alloc_lines1 < buffered_prefix
-      || PTRDIFF_MAX / sizeof *linbuf1 <= alloc_lines1)
+  if (INT_ADD_WRAPV (buffered_prefix,
+                    middle_guess + MIN (context, suffix_guess),
+                    &alloc_lines1))
     xalloc_die ();
-  linbuf1 = xmalloc (alloc_lines1 * sizeof *linbuf1);
+  linbuf1 = xnmalloc (alloc_lines1, sizeof *linbuf1);
 
   if (buffered_prefix != lines)
     {
@@ -791,9 +799,7 @@ read_files (struct file_data filevec[], bool pretend_binary)
   find_identical_ends (filevec);
 
   equivs_alloc = filevec[0].alloc_lines + filevec[1].alloc_lines + 1;
-  if (PTRDIFF_MAX / sizeof *equivs <= equivs_alloc)
-    xalloc_die ();
-  equivs = xmalloc (equivs_alloc * sizeof *equivs);
+  equivs = xnmalloc (equivs_alloc, sizeof *equivs);
   /* Equivalence class 0 is permanently safe for lines that were not
      hashed.  Real equivalence classes start at 1.  */
   equivs_index = 1;
@@ -804,9 +810,7 @@ read_files (struct file_data filevec[], bool pretend_binary)
   for (i = 9; (size_t) 1 << i < equivs_alloc / 3; i++)
     continue;
   nbuckets = ((size_t) 1 << i) - prime_offset[i];
-  if (PTRDIFF_MAX / sizeof *buckets <= nbuckets)
-    xalloc_die ();
-  buckets = zalloc ((nbuckets + 1) * sizeof *buckets);
+  buckets = xcalloc (nbuckets + 1, sizeof *buckets);
   buckets++;
 
   for (i = 0; i < 2; i++)
index f76c1ac..fef4bf3 100644 (file)
@@ -1,6 +1,6 @@
 /* Normal-format output routines for GNU DIFF.
 
-   Copyright (C) 1988-1989, 1993, 1995, 1998, 2001, 2006, 2009-2013, 2015-2021
+   Copyright (C) 1988-1989, 1993, 1995, 1998, 2001, 2006, 2009-2013, 2015-2023
    Free Software Foundation, Inc.
 
    This file is part of GNU DIFF.
index 232ebcd..0b638d4 100644 (file)
@@ -1,7 +1,7 @@
 /* GNU sdiff - side-by-side merge of file differences
 
    Copyright (C) 1992-1996, 1998, 2001-2002, 2004, 2006-2007, 2009-2013,
-   2015-2021 Free Software Foundation, Inc.
+   2015-2023 Free Software Foundation, Inc.
 
    This file is part of GNU DIFF.
 
 #include <xstdopen.h>
 
 /* The official name of this program (e.g., no 'g' prefix).  */
-#define PROGRAM_NAME "sdiff"
+static char const PROGRAM_NAME[] = "sdiff";
 
 #define AUTHORS \
   proper_name ("Thomas Lord")
 
 /* Size of chunks read from files which must be parsed into lines.  */
-#define SDIFF_BUFSIZE ((size_t) 65536)
+enum { SDIFF_BUFSIZE = 65536 };
 
 static char const *editor_program = DEFAULT_EDITOR_PROGRAM;
 static char const **diffargv;
@@ -63,8 +63,8 @@ static bool edit (struct line_filter *, char const *, lin, lin, struct line_filt
 static bool interact (struct line_filter *, struct line_filter *, char const *, struct line_filter *, char const *, FILE *);
 static void checksigs (void);
 static void diffarg (char const *);
-static void fatal (char const *) __attribute__((noreturn));
-static void perror_fatal (char const *) __attribute__((noreturn));
+static _Noreturn void fatal (char const *);
+static _Noreturn void perror_fatal (char const *);
 static void trapsigs (void);
 static void untrapsig (int);
 
@@ -151,8 +151,7 @@ static struct option const longopts[] =
   {0, 0, 0, 0}
 };
 
-static void try_help (char const *, char const *) __attribute__((noreturn));
-static void
+static _Noreturn void
 try_help (char const *reason_msgid, char const *operand)
 {
   if (reason_msgid)
@@ -225,7 +224,7 @@ Mandatory arguments to long options are mandatory for short options too.\n\
 /* Clean up after a signal or other failure.  This function is
    async-signal-safe.  */
 static void
-cleanup (int signo __attribute__((unused)))
+cleanup (_GL_UNUSED int signo)
 {
 #if HAVE_WORKING_FORK
   if (0 < diffpid)
@@ -235,8 +234,7 @@ cleanup (int signo __attribute__((unused)))
     unlink (tmpname);
 }
 
-static void exiterr (void) __attribute__((noreturn));
-static void
+static _Noreturn void
 exiterr (void)
 {
   cleanup (0);
@@ -337,10 +335,10 @@ expand_name (char *name, bool is_dir, char const *other_name)
       size_t namelen = strlen (name), baselen = base_len (base);
       bool insert_slash = *last_component (name) && name[namelen - 1] != '/';
       char *r = xmalloc (namelen + insert_slash + baselen + 1);
-      memcpy (r, name, namelen);
-      r[namelen] = '/';
-      memcpy (r + namelen + insert_slash, base, baselen);
-      r[namelen + insert_slash + baselen] = '\0';
+      char *p = stpcpy (r, name);
+      *p = '/';
+      p = mempcpy (p + insert_slash, base, baselen);
+      *p = '\0';
       return r;
     }
 }
@@ -429,17 +427,16 @@ lf_snarf (struct line_filter *lf, char *buffer, size_t bufsize)
       size_t s = next - start;
       if (bufsize <= s)
         return 0;
-      memcpy (buffer, start, s);
+      buffer = mempcpy (buffer, start, s);
+      bufsize -= s;
       if (next < lf->buflim)
         {
-          buffer[s] = 0;
+          *buffer = 0;
           lf->bufpos = next + 1;
           return 1;
         }
       if (! lf_refill (lf))
         return s ? 0 : EOF;
-      buffer += s;
-      bufsize -= s;
     }
 }
 \f
@@ -521,7 +518,7 @@ main (int argc, char *argv[])
 
         case 'v':
           version_etc (stdout, PROGRAM_NAME, PACKAGE_NAME, Version,
-                       AUTHORS, (char *) NULL);
+                       AUTHORS, nullptr);
           check_stdout ();
           return EXIT_SUCCESS;
 
@@ -866,8 +863,8 @@ edit (struct line_filter *left, char const *lname, lin lline, lin llen,
 {
   for (;;)
     {
-      int cmd0 IF_LINT (= 0);
-      int cmd1 IF_LINT (= 0);
+      int cmd0;
+      int cmd1 IF_LINT (= 0);  /* IF_LINT due to GCC bug 101770.  */
       bool gotcmd = false;
 
       while (! gotcmd)
@@ -968,14 +965,13 @@ edit (struct line_filter *left, char const *lname, lin lline, lin llen,
               {
               case 'd':
                 if (llen)
-                  {
-                    printint l1 = lline;
-                    printint l2 = lline + llen - 1;
-                    if (llen == 1)
-                      fprintf (tmp, "--- %s %"pI"d\n", lname, l1);
-                    else
-                      fprintf (tmp, "--- %s %"pI"d,%"pI"d\n", lname, l1, l2);
-                  }
+                 {
+                   if (llen == 1)
+                     fprintf (tmp, "--- %s %"pI"d\n", lname, lline);
+                   else
+                     fprintf (tmp, "--- %s %"pI"d,%"pI"d\n", lname, lline,
+                              lline + llen - 1);
+                 }
                 FALLTHROUGH;
               case '1': case 'b': case 'l':
                 lf_copy (left, llen, tmp);
@@ -990,14 +986,13 @@ edit (struct line_filter *left, char const *lname, lin lline, lin llen,
               {
               case 'd':
                 if (rlen)
-                  {
-                    printint l1 = rline;
-                    printint l2 = rline + rlen - 1;
-                    if (rlen == 1)
-                      fprintf (tmp, "+++ %s %"pI"d\n", rname, l1);
-                    else
-                      fprintf (tmp, "+++ %s %"pI"d,%"pI"d\n", rname, l1, l2);
-                  }
+                 {
+                   if (rlen == 1)
+                     fprintf (tmp, "+++ %s %"pI"d\n", rname, rline);
+                   else
+                     fprintf (tmp, "+++ %s %"pI"d,%"pI"d\n", rname, rline,
+                            rline + rlen - 1);
+                 }
                 FALLTHROUGH;
               case '2': case 'b': case 'r':
                 lf_copy (right, rlen, tmp);
@@ -1166,10 +1161,11 @@ temporary_file (void)
   char const *tmpdir = getenv (TMPDIR_ENV);
   char const *dir = tmpdir ? tmpdir : P_tmpdir;
   char *buf = xmalloc (strlen (dir) + 1 + 5 + 6 + 1);
-  int fd;
-  sprintf (buf, "%s/sdiffXXXXXX", dir);
-  fd = mkstemp (buf);
-  if (0 <= fd)
+  strcpy (stpcpy (buf, dir), "/sdiffXXXXXX");
+  int fd = mkstemp (buf);
+  if (fd < 0)
+    free (buf);
+  else
     tmpname = buf;
   return fd;
 }
index 11d5f5c..125cc22 100644 (file)
@@ -1,6 +1,6 @@
 /* sdiff-format output routines for GNU DIFF.
 
-   Copyright (C) 1991-1993, 1998, 2001-2002, 2004, 2009-2013, 2015-2021 Free
+   Copyright (C) 1991-1993, 1998, 2001-2002, 2004, 2009-2013, 2015-2023 Free
    Software Foundation, Inc.
 
    This file is part of GNU DIFF.
@@ -259,11 +259,7 @@ print_sdiff_common_lines (lin limit0, lin limit1)
   if (!suppress_common_lines && (i0 != limit0 || i1 != limit1))
     {
       if (sdiff_merge_assist)
-        {
-          printint len0 = limit0 - i0;
-          printint len1 = limit1 - i1;
-          fprintf (outfile, "i%"pI"d,%"pI"d\n", len0, len1);
-        }
+       fprintf (outfile, "i%"pI"d,%"pI"d\n", limit0 - i0, limit1 - i1);
 
       if (!left_column)
         {
@@ -301,11 +297,9 @@ print_sdiff_hunk (struct change *hunk)
   print_sdiff_common_lines (first0, first1);
 
   if (sdiff_merge_assist)
-    {
-      printint len0 = last0 - first0 + 1;
-      printint len1 = last1 - first1 + 1;
-      fprintf (outfile, "c%"pI"d,%"pI"d\n", len0, len1);
-    }
+    fprintf (outfile, "c%"pI"d,%"pI"d\n",
+            last0 - first0 + 1,
+            last1 - first1 + 1);
 
   /* Print "xxx  |  xxx " lines.  */
   if (changes == CHANGED)
index f921a50..b37893f 100644 (file)
@@ -1,7 +1,7 @@
 /* System dependent declarations.
 
    Copyright (C) 1988-1989, 1992-1995, 1998, 2001-2002, 2004, 2006, 2009-2013,
-   2015-2021 Free Software Foundation, Inc.
+   2015-2023 Free Software Foundation, Inc.
 
    This file is part of GNU DIFF.
 
 #include <config.h>
 
 /* Use this to suppress gcc's "...may be used before initialized" warnings. */
-#ifdef lint
+#ifdef GCC_LINT
 # define IF_LINT(Code) Code
 #else
 # define IF_LINT(Code) /* empty */
 #endif
 
-/* Define '__attribute__' and 'volatile' first
-   so that they're used consistently in all system includes.  */
-#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 6) || __STRICT_ANSI__
-# define __attribute__(x)
-#endif
-
 #include <verify.h>
 
 #include <sys/types.h>
 
 #include <sys/stat.h>
-#include "stat-macros.h"
+#include <stat-macros.h>
 
 #ifndef STAT_BLOCKSIZE
 # if HAVE_STRUCT_STAT_ST_BLKSIZE
@@ -114,9 +108,10 @@ int strcasecmp (char const *, char const *);
 #define MIN(a, b) ((a) <= (b) ? (a) : (b))
 #define MAX(a, b) ((a) >= (b) ? (a) : (b))
 
-#include <stdbool.h>
+#include <attribute.h>
 #include <intprops.h>
-#include "propername.h"
+#include <propername.h>
+
 #include "version.h"
 
 /* Type used for fast comparison of several bytes at a time.
@@ -128,31 +123,12 @@ int strcasecmp (char const *, char const *);
 #endif
 
 /* The signed integer type of a line number.  Since files are read
-   into main memory, ptrdiff_t should be wide enough.  */
+   into main memory, ptrdiff_t should be wide enough.  pI is for
+   printing line numbers.  */
 
 typedef ptrdiff_t lin;
 #define LIN_MAX PTRDIFF_MAX
-
-/* The signed integer type for printing line numbers, and its printf
-   length modifier.  This is not simply ptrdiff_t, to cater to older
-   and/or nonstandard C libraries where "l" works but "ll" and "t" do
-   not, or where 'long' is too narrow and "ll" works but "t" does not.  */
-
-#if LIN_MAX <= LONG_MAX
-typedef long int printint;
-# define pI "l"
-#elif LIN_MAX <= LLONG_MAX
-typedef long long int printint;
-# define pI "ll"
-#else
-typedef ptrdiff_t printint;
-# define pI "t"
-#endif
-
-verify (TYPE_SIGNED (lin));
-verify (TYPE_SIGNED (printint));
-verify (LIN_MAX == TYPE_MAXIMUM (lin));
-verify (LIN_MAX <= TYPE_MAXIMUM (printint));
+#define pI "t"
 
 /* Limit so that 2 * CONTEXT + 1 does not overflow.  */
 
@@ -230,11 +206,3 @@ verify (LIN_MAX <= TYPE_MAXIMUM (printint));
 #endif
 
 #define STREQ(a, b) (strcmp (a, b) == 0)
-
-#ifndef FALLTHROUGH
-# if __GNUC__ < 7
-#  define FALLTHROUGH ((void) 0)
-# else
-#  define FALLTHROUGH __attribute__ ((__fallthrough__))
-# endif
-#endif
index 4348757..8ea528e 100644 (file)
@@ -1,7 +1,7 @@
 /* Support routines for GNU DIFF.
 
    Copyright (C) 1988-1989, 1992-1995, 1998, 2001-2002, 2004, 2006, 2009-2013,
-   2015-2021 Free Software Foundation, Inc.
+   2015-2023 Free Software Foundation, Inc.
 
    This file is part of GNU DIFF.
 
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include "diff.h"
-#include "argmatch.h"
-#include "die.h"
+
+#include <argmatch.h>
+#include <die.h>
 #include <dirname.h>
 #include <error.h>
+#include <flexmember.h>
 #include <system-quote.h>
 #include <xalloc.h>
-#include "xvasprintf.h"
+
+#include <stdarg.h>
 #include <signal.h>
 
 /* Use SA_NOCLDSTOP as a proxy for whether the sigaction machinery is
    present.  */
 #ifndef SA_NOCLDSTOP
 # define SA_NOCLDSTOP 0
-# define sigprocmask(How, Set, Oset) /* empty */
-# define sigset_t int
+# define sigprocmask(How, Set, Oset) 0
 # if ! HAVE_SIGINTERRUPT
-#  define siginterrupt(sig, flag) /* empty */
+#  define siginterrupt(sig, flag) 0
 # endif
 #endif
 
@@ -51,7 +53,15 @@ char const pr_program[] = PR_PROGRAM;
 struct msg
 {
   struct msg *next;
-  char args[1]; /* Format + 4 args, each '\0' terminated, concatenated.  */
+
+  /* Msgid of printf-style format.  */
+  char const *msgid;
+
+  /* Number of bytes in ARGS.  */
+  size_t argbytes;
+
+  /* Arg strings, each '\0' terminated, concatenated.  */
+  char args[FLEXIBLE_ARRAY_MEMBER];
 };
 
 /* Head of the chain of queues messages.  */
@@ -91,40 +101,43 @@ fatal (char const *msgid)
 }
 \f
 /* Like printf, except if -l in effect then save the message and print later.
+   Also, all arguments must be char * or char const *.
    This is used for things like "Only in ...".  */
 
 void
-message (char const *format_msgid, char const *arg1, char const *arg2)
+message (char const *format_msgid, ...)
 {
-  message5 (format_msgid, arg1, arg2, 0, 0);
-}
+  va_list ap;
+  va_start (ap, format_msgid);
 
-void
-message5 (char const *format_msgid, char const *arg1, char const *arg2,
-          char const *arg3, char const *arg4)
-{
   if (paginate)
     {
-      char *p;
-      char const *arg[5];
-      int i;
-      size_t size[5];
-      size_t total_size = offsetof (struct msg, args);
-      struct msg *new;
-
-      arg[0] = format_msgid;
-      arg[1] = arg1;
-      arg[2] = arg2;
-      arg[3] = arg3 ? arg3 : "";
-      arg[4] = arg4 ? arg4 : "";
-
-      for (i = 0;  i < 5;  i++)
-        total_size += size[i] = strlen (arg[i]) + 1;
-
-      new = xmalloc (total_size);
-
-      for (i = 0, p = new->args;  i < 5;  p += size[i++])
-        memcpy (p, arg[i], size[i]);
+      size_t argbytes = 0;
+
+      for (char const *m = format_msgid; *m; m++)
+       if (*m == '%')
+         {
+           if (m[1] == '%')
+             m++;
+           else
+             argbytes += strlen (va_arg (ap, char const *)) + 1;
+         }
+      va_end (ap);
+
+      struct msg *new = xmalloc (FLEXSIZEOF (struct msg, args, argbytes));
+      new->msgid = format_msgid;
+      new->argbytes = argbytes;
+
+      va_start (ap, format_msgid);
+      char *p = new->args;
+      for (char const *m = format_msgid; *m; m++)
+       if (*m == '%')
+         {
+           if (m[1] == '%')
+             m++;
+           else
+             p = stpcpy (p, va_arg (ap, char const *)) + 1;
+         }
 
       *msg_chain_end = new;
       new->next = 0;
@@ -134,8 +147,10 @@ message5 (char const *format_msgid, char const *arg1, char const *arg2,
     {
       if (sdiff_merge_assist)
         putchar (' ');
-      printf (_(format_msgid), arg1, arg2, arg3, arg4);
+      vprintf (_(format_msgid), ap);
     }
+
+  va_end (ap);
 }
 
 /* Output all the messages that were saved up by calls to 'message'.  */
@@ -143,32 +158,74 @@ message5 (char const *format_msgid, char const *arg1, char const *arg2,
 void
 print_message_queue (void)
 {
-  char const *arg[5];
-  int i;
-  struct msg *m = msg_chain;
-
-  while (m)
+  for (struct msg *m = msg_chain; m; )
     {
+      /* Change this if diff ever has messages with more than 4 args.  */
+      char const *p = m->args;
+      char const *plim = p + m->argbytes;
+      /* Unroll the loop to work around GCC 12 bug with
+        -Wanalyzer-use-of-uninitialized-value.  */
+      char const *arg0 = p; p += p < plim ? strlen (p) + 1 : 0;
+      char const *arg1 = p; p += p < plim ? strlen (p) + 1 : 0;
+      char const *arg2 = p; p += p < plim ? strlen (p) + 1 : 0;
+      char const *arg3 = p; p += p < plim ? strlen (p) + 1 : 0;
+      printf (_(m->msgid), arg0, arg1, arg2, arg3);
+      if (p < plim)
+       abort ();
       struct msg *next = m->next;
-      arg[0] = m->args;
-      for (i = 0;  i < 4;  i++)
-        arg[i + 1] = arg[i] + strlen (arg[i]) + 1;
-      printf (_(arg[0]), arg[1], arg[2], arg[3], arg[4]);
       free (m);
       m = next;
     }
 }
-\f
-/* The set of signals that are caught.  */
 
+/* Signal handling, needed for restoring default colors.  */
+
+static void
+xsigaddset (sigset_t *set, int sig)
+{
+  if (sigaddset (set, sig) != 0)
+    pfatal_with_name ("sigaddset");
+}
+
+static bool
+xsigismember (sigset_t const *set, int sig)
+{
+  int mem = sigismember (set, sig);
+  if (mem < 0)
+    pfatal_with_name ("sigismember");
+  assume (mem <= 1);
+  return mem;
+}
+
+typedef void (*signal_handler) (int);
+static signal_handler
+xsignal (int sig, signal_handler func)
+{
+  signal_handler h = signal (sig, func);
+  if (h == SIG_ERR)
+    pfatal_with_name ("signal");
+  return h;
+}
+
+static void
+xsigprocmask (int how, sigset_t const *restrict set, sigset_t *restrict oset)
+{
+  if (sigprocmask (how, set, oset) != 0)
+    pfatal_with_name ("sigprocmask");
+}
+
+/* If true, some signals are caught.  This is separate from
+   'caught_signals' because POSIX doesn't require an all-zero sigset_t
+   to be valid.  */
+static bool some_signals_caught;
+
+/* The set of signals that are caught.  */
 static sigset_t caught_signals;
 
 /* If nonzero, the value of the pending fatal signal.  */
-
 static sig_atomic_t volatile interrupt_signal;
 
 /* A count of the number of pending stop signals that have been received.  */
-
 static sig_atomic_t volatile stop_signal_count;
 
 /* An ordinary signal was received; arrange for the program to exit.  */
@@ -201,21 +258,17 @@ stophandler (int sig)
 static void
 process_signals (void)
 {
-  while (interrupt_signal || stop_signal_count)
+  while (interrupt_signal | stop_signal_count)
     {
-      int sig;
-      int stops;
-      sigset_t oldset;
-
       set_color_context (RESET_CONTEXT);
       fflush (stdout);
 
-      sigprocmask (SIG_BLOCK, &caught_signals, &oldset);
+      sigset_t oldset;
+      xsigprocmask (SIG_BLOCK, &caught_signals, &oldset);
 
-      /* Reload interrupt_signal and stop_signal_count, in case a new
-         signal was handled before sigprocmask took effect.  */
-      sig = interrupt_signal;
-      stops = stop_signal_count;
+      /* Reload stop_signal_count and (if needed) interrupt_signal, in
+        case a new signal was handled before sigprocmask took effect.  */
+      int stops = stop_signal_count, sig;
 
       /* SIGTSTP is special, since the application can receive that signal
          more than once.  In this case, don't set the signal handler to the
@@ -226,82 +279,122 @@ process_signals (void)
           sig = SIGSTOP;
         }
       else
-        signal (sig, SIG_DFL);
+       {
+         sig = interrupt_signal;
+         xsignal (sig, SIG_DFL);
+       }
 
       /* Exit or suspend the program.  */
-      raise (sig);
-      sigprocmask (SIG_SETMASK, &oldset, NULL);
+      if (raise (sig) != 0)
+       pfatal_with_name ("raise");
+      xsigprocmask (SIG_SETMASK, &oldset, nullptr);
 
       /* If execution reaches here, then the program has been
          continued (after being suspended).  */
     }
 }
 
-static void
-install_signal_handlers (void)
-{
-  /* The signals that are trapped, and the number of such signals.  */
-  static int const sig[] =
-    {
-      /* This one is handled specially.  */
-      SIGTSTP,
+/* The signals that can be caught, the number of such signals,
+   and which of them are actually caught.  */
+static int const sig[] =
+  {
+#ifdef SIGTSTP
+    /* This one is handled specially; see is_tstp_index.  */
+    SIGTSTP,
+#endif
 
-      /* The usual suspects.  */
-      SIGALRM, SIGHUP, SIGINT, SIGPIPE, SIGQUIT, SIGTERM,
+    /* The usual suspects.  */
+#ifdef SIGALRM
+    SIGALRM,
+#endif
+    SIGHUP, SIGINT, SIGPIPE,
+#ifdef SIGQUIT
+    SIGQUIT,
+#endif
+    SIGTERM,
 #ifdef SIGPOLL
-      SIGPOLL,
+    SIGPOLL,
 #endif
 #ifdef SIGPROF
-      SIGPROF,
+    SIGPROF,
 #endif
 #ifdef SIGVTALRM
-      SIGVTALRM,
+    SIGVTALRM,
 #endif
 #ifdef SIGXCPU
-      SIGXCPU,
+    SIGXCPU,
 #endif
 #ifdef SIGXFSZ
-      SIGXFSZ,
+    SIGXFSZ,
 #endif
-    };
-  enum { nsigs = sizeof (sig) / sizeof *(sig) };
+  };
+enum { nsigs = sizeof (sig) / sizeof *(sig) };
 
-#if ! SA_NOCLDSTOP
-  bool caught_sig[nsigs];
+/* True if sig[j] == SIGTSTP.  */
+static bool
+is_tstp_index (int j)
+{
+#ifdef SIGTSTP
+  return j == 0;
+#else
+  return false;
 #endif
-  {
-    int j;
-#if SA_NOCLDSTOP
-    struct sigaction act;
+}
 
-    sigemptyset (&caught_signals);
-    for (j = 0; j < nsigs; j++)
-      {
-        sigaction (sig[j], NULL, &act);
-        if (act.sa_handler != SIG_IGN)
-          sigaddset (&caught_signals, sig[j]);
-      }
+static void
+install_signal_handlers (void)
+{
+  if (sigemptyset (&caught_signals) != 0)
+    pfatal_with_name ("sigemptyset");
 
-    act.sa_mask = caught_signals;
-    act.sa_flags = SA_RESTART;
+#if SA_NOCLDSTOP
+  for (int j = 0; j < nsigs; j++)
+    {
+      struct sigaction actj;
+      if (sigaction (sig[j], nullptr, &actj) == 0 && actj.sa_handler != SIG_IGN)
+       xsigaddset (&caught_signals, sig[j]);
+    }
 
-    for (j = 0; j < nsigs; j++)
-      if (sigismember (&caught_signals, sig[j]))
-        {
-          act.sa_handler = sig[j] == SIGTSTP ? stophandler : sighandler;
-          sigaction (sig[j], &act, NULL);
-        }
-#else
-    for (j = 0; j < nsigs; j++)
+  struct sigaction act;
+  act.sa_mask = caught_signals;
+  act.sa_flags = SA_RESTART;
+
+  for (int j = 0; j < nsigs; j++)
+    if (xsigismember (&caught_signals, sig[j]))
       {
-        caught_sig[j] = (signal (sig[j], SIG_IGN) != SIG_IGN);
-        if (caught_sig[j])
-          {
-            signal (sig[j], sig[j] == SIGTSTP ? stophandler : sighandler);
-            siginterrupt (sig[j], 0);
-          }
+       act.sa_handler = is_tstp_index (j) ? stophandler : sighandler;
+       if (sigaction (sig[j], &act, nullptr) != 0)
+         pfatal_with_name ("sigaction");
+       some_signals_caught = true;
       }
+#else
+  for (int j = 0; j < nsigs; j++)
+    {
+      signal_handler h = signal (sig[j], SIG_IGN);
+      if (h != SIG_IGN && h != SIG_ERR)
+       {
+         xsigaddset (&caught_signals, sig[j]);
+         xsignal (sig[j], is_tstp_index (j) ? stophandler : sighandler);
+         some_signals_caught = true;
+         if (siginterrupt (sig[j], 0) != 0)
+           pfatal_with_name ("siginterrupt");
+       }
+    }
 #endif
+}
+
+/* Clean up signal handlers just before exiting the program.  Do this
+   by resetting signal actions back to default, and then processing
+   any signals that arrived before resetting.  */
+void
+cleanup_signal_handlers (void)
+{
+  if (some_signals_caught)
+    {
+      for (int j = 0; j < nsigs; j++)
+       if (xsigismember (&caught_signals, sig[j]))
+         xsignal (sig[j], SIG_DFL);
+      process_signals ();
     }
 }
 
@@ -310,7 +403,7 @@ static char const *current_name1;
 static bool currently_recursive;
 static bool colors_enabled;
 
-static struct color_ext_type *color_ext_list = NULL;
+static struct color_ext_type *color_ext_list = nullptr;
 
 struct bin_str
   {
@@ -549,7 +642,7 @@ static struct bin_str color_indicator[] =
   {
     { LEN_STR_PAIR ("\033[") },                /* lc: Left of color sequence */
     { LEN_STR_PAIR ("m") },            /* rc: Right of color sequence */
-    { 0, NULL },                       /* ec: End color (replaces lc+rs+rc) */
+    { 0, nullptr },                    /* ec: End color (replaces lc+rs+rc) */
     { LEN_STR_PAIR ("0") },            /* rs: Reset to ordinary colors */
     { LEN_STR_PAIR ("1") },            /* hd: Header */
     { LEN_STR_PAIR ("32") },           /* ad: Add line */
@@ -559,7 +652,7 @@ static struct bin_str color_indicator[] =
 
 static const char *const indicator_name[] =
   {
-    "lc", "rc", "ec", "rs", "hd", "ad", "de", "ln", NULL
+    "lc", "rc", "ec", "rs", "hd", "ad", "de", "ln", nullptr
   };
 ARGMATCH_VERIFY (indicator_name, color_indicator);
 
@@ -578,14 +671,14 @@ parse_diff_color (void)
   const char *p;               /* Pointer to character being parsed */
   char *buf;                   /* color_buf buffer pointer */
   int ind_no;                  /* Indicator number */
-  char label[3];               /* Indicator label */
+  char label[] = "??";         /* Indicator label */
   struct color_ext_type *ext;  /* Extension we are working on */
 
-  if ((p = color_palette) == NULL || *p == '\0')
+  p = color_palette;
+  if (p == nullptr || *p == '\0')
     return;
 
-  ext = NULL;
-  strcpy (label, "??");
+  ext = nullptr;
 
   /* This is an overly conservative estimate, but any possible
      --palette string will *not* generate a color_buf longer than
@@ -647,7 +740,7 @@ parse_diff_color (void)
           state = PS_FAIL;     /* Assume failure...  */
           if (*(p++) == '=')/* It *should* be...  */
             {
-              for (ind_no = 0; indicator_name[ind_no] != NULL; ++ind_no)
+              for (ind_no = 0; indicator_name[ind_no] != nullptr; ++ind_no)
                 {
                   if (STREQ (label, indicator_name[ind_no]))
                     {
@@ -691,7 +784,7 @@ parse_diff_color (void)
       error (0, 0,
              _("unparsable value for --palette"));
       free (color_buf);
-      for (e = color_ext_list; e != NULL; /* empty */)
+      for (e = color_ext_list; e != nullptr; /* empty */)
         {
           e2 = e;
           e = e->next;
@@ -842,7 +935,14 @@ begin_output (void)
      of the pathnames, and it requires two spaces after "diff" if
      there are no options.  These requirements are silly and do not
      match historical practice.  */
-  name = xasprintf ("diff%s %s %s", switch_string, names[0], names[1]);
+  name = xmalloc (sizeof "diff" + strlen (switch_string)
+                 + 1 + strlen (names[0]) + 1 + strlen (names[1]));
+  char *p = stpcpy (name, "diff");
+  p = stpcpy (p, switch_string);
+  *p++ = ' ';
+  p = stpcpy (p, names[0]);
+  *p++ = ' ';
+  strcpy (p, names[1]);
 
   if (paginate)
     {
@@ -1145,13 +1245,13 @@ lines_differ (char const *s1, char const *s2)
 /* Find the consecutive changes at the start of the script START.
    Return the last link before the first gap.  */
 
-struct change * _GL_ATTRIBUTE_CONST
+struct change * ATTRIBUTE_CONST
 find_change (struct change *start)
 {
   return start;
 }
 
-struct change * _GL_ATTRIBUTE_CONST
+struct change * ATTRIBUTE_CONST
 find_reverse_change (struct change *start)
 {
   return start;
@@ -1393,20 +1493,18 @@ char const change_letter[] = { 0, 'd', 'a', 'c' };
    Internal line numbers count from 0 starting after the prefix.
    Actual line numbers count from 1 within the entire file.  */
 
-lin _GL_ATTRIBUTE_PURE
+lin ATTRIBUTE_PURE
 translate_line_number (struct file_data const *file, lin i)
 {
   return i + file->prefix_lines + 1;
 }
 
-/* Translate a line number range.  This is always done for printing,
-   so for convenience translate to printint rather than lin, so that the
-   caller can use printf with "%"pI"d" without casting.  */
+/* Translate a line number range.  */
 
 void
 translate_range (struct file_data const *file,
                  lin a, lin b,
-                 printint *aptr, printint *bptr)
+                 lin *aptr, lin *bptr)
 {
   *aptr = translate_line_number (file, a - 1) + 1;
   *bptr = translate_line_number (file, b + 1) - 1;
@@ -1421,7 +1519,7 @@ translate_range (struct file_data const *file,
 void
 print_number_range (char sepchar, struct file_data *file, lin a, lin b)
 {
-  printint trans_a, trans_b;
+  lin trans_a, trans_b;
   translate_range (file, a, b, &trans_a, &trans_b);
 
   /* Note: we can have B < A in the case of a range of no lines.
@@ -1537,40 +1635,16 @@ analyze_hunk (struct change *hunk,
   return (show_from ? OLD : UNCHANGED) | (show_to ? NEW : UNCHANGED);
 }
 \f
-/* Concatenate three strings, returning a newly malloc'd string.  */
-
-char *
-concat (char const *s1, char const *s2, char const *s3)
-{
-  char *new = xmalloc (strlen (s1) + strlen (s2) + strlen (s3) + 1);
-  sprintf (new, "%s%s%s", s1, s2, s3);
-  return new;
-}
-
-/* Yield a new block of SIZE bytes, initialized to zero.  */
-
-void *
-zalloc (size_t size)
-{
-  void *p = xmalloc (size);
-  memset (p, 0, size);
-  return p;
-}
-\f
+#ifdef DEBUG
 void
 debug_script (struct change *sp)
 {
   fflush (stdout);
 
   for (; sp; sp = sp->link)
-    {
-      printint line0 = sp->line0;
-      printint line1 = sp->line1;
-      printint deleted = sp->deleted;
-      printint inserted = sp->inserted;
-      fprintf (stderr, "%3"pI"d %3"pI"d delete %"pI"d insert %"pI"d\n",
-               line0, line1, deleted, inserted);
-    }
+    fprintf (stderr, "%3"pI"d %3"pI"d delete %"pI"d insert %"pI"d\n",
+            sp->line0, sp->line1, sp->deleted, sp->inserted);
 
   fflush (stderr);
 }
+#endif
index 83a7c9d..79bacfb 100644 (file)
@@ -10,6 +10,7 @@ TESTS = \
   diff3 \
   excess-slash \
   help-version \
+  ifdef \
   invalid-re   \
   function-line-vs-leading-space \
   ignore-matching-lines \
@@ -22,7 +23,9 @@ TESTS = \
   strcoll-0-names \
   filename-quoting \
   strip-trailing-cr \
-  colors
+  timezone \
+  colors \
+  y2038-vs-32bit
 
 XFAIL_TESTS = large-subopt
 
index 2264d36..de258da 100644 (file)
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.16d from Makefile.am.
+# Makefile.in generated by automake 1.16i from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2021 Free Software Foundation, Inc.
+# Copyright (C) 1994-2023 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -71,6 +71,8 @@ am__make_running_with_option = \
   test $$has_opt = yes
 am__make_dryrun = (target_option=n; $(am__make_running_with_option))
 am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+am__rm_f = rm -f $(am__rm_f_notfound)
+am__rm_rf = rm -rf $(am__rm_f_notfound)
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -95,19 +97,22 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/__inline.m4 \
        $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \
        $(top_srcdir)/m4/arpa_inet_h.m4 \
-       $(top_srcdir)/m4/asm-underscore.m4 $(top_srcdir)/m4/atoll.m4 \
+       $(top_srcdir)/m4/asm-underscore.m4 \
+       $(top_srcdir)/m4/assert_h.m4 $(top_srcdir)/m4/atoll.m4 \
        $(top_srcdir)/m4/btowc.m4 $(top_srcdir)/m4/builtin-expect.m4 \
-       $(top_srcdir)/m4/c-stack.m4 $(top_srcdir)/m4/calloc.m4 \
-       $(top_srcdir)/m4/clock_time.m4 $(top_srcdir)/m4/close.m4 \
-       $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
-       $(top_srcdir)/m4/ctype_h.m4 \
+       $(top_srcdir)/m4/c-bool.m4 $(top_srcdir)/m4/c-stack.m4 \
+       $(top_srcdir)/m4/calloc.m4 $(top_srcdir)/m4/clock_time.m4 \
+       $(top_srcdir)/m4/close.m4 $(top_srcdir)/m4/codeset.m4 \
+       $(top_srcdir)/m4/config-h.m4 $(top_srcdir)/m4/ctype_h.m4 \
        $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \
        $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \
        $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \
-       $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \
-       $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \
-       $(top_srcdir)/m4/fcntl.m4 $(top_srcdir)/m4/fcntl_h.m4 \
-       $(top_srcdir)/m4/fdopen.m4 $(top_srcdir)/m4/filenamecat.m4 \
+       $(top_srcdir)/m4/error_h.m4 $(top_srcdir)/m4/exponentd.m4 \
+       $(top_srcdir)/m4/extensions.m4 \
+       $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fclose.m4 \
+       $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \
+       $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopen.m4 \
+       $(top_srcdir)/m4/fflush.m4 $(top_srcdir)/m4/filenamecat.m4 \
        $(top_srcdir)/m4/flexmember.m4 $(top_srcdir)/m4/float_h.m4 \
        $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fnmatch_h.m4 \
        $(top_srcdir)/m4/fopen.m4 $(top_srcdir)/m4/fpieee.m4 \
@@ -123,15 +128,16 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \
        $(top_srcdir)/m4/iconv_h.m4 $(top_srcdir)/m4/iconv_open.m4 \
        $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inet_pton.m4 \
-       $(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/intlmacosx.m4 \
-       $(top_srcdir)/m4/intmax_t.m4 $(top_srcdir)/m4/inttostr.m4 \
-       $(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-       $(top_srcdir)/m4/ioctl.m4 $(top_srcdir)/m4/isblank.m4 \
-       $(top_srcdir)/m4/iswblank.m4 $(top_srcdir)/m4/iswdigit.m4 \
-       $(top_srcdir)/m4/iswxdigit.m4 $(top_srcdir)/m4/langinfo_h.m4 \
-       $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lib-ld.m4 \
-       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-       $(top_srcdir)/m4/libsigsegv.m4 \
+       $(top_srcdir)/m4/inline.m4 \
+       $(top_srcdir)/m4/intl-thread-locale.m4 \
+       $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \
+       $(top_srcdir)/m4/inttostr.m4 $(top_srcdir)/m4/inttypes.m4 \
+       $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/ioctl.m4 \
+       $(top_srcdir)/m4/isblank.m4 $(top_srcdir)/m4/iswblank.m4 \
+       $(top_srcdir)/m4/iswdigit.m4 $(top_srcdir)/m4/iswxdigit.m4 \
+       $(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/largefile.m4 \
+       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libsigsegv.m4 \
        $(top_srcdir)/m4/libunistring-base.m4 \
        $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/localcharset.m4 \
        $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \
@@ -153,11 +159,13 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/netinet_in_h.m4 \
        $(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \
        $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/nstrftime.m4 \
-       $(top_srcdir)/m4/off_t.m4 $(top_srcdir)/m4/open-cloexec.m4 \
+       $(top_srcdir)/m4/nullptr.m4 $(top_srcdir)/m4/off_t.m4 \
+       $(top_srcdir)/m4/open-cloexec.m4 \
        $(top_srcdir)/m4/open-slash.m4 $(top_srcdir)/m4/open.m4 \
-       $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/perror.m4 \
-       $(top_srcdir)/m4/pipe.m4 $(top_srcdir)/m4/po.m4 \
-       $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \
+       $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/perl.m4 \
+       $(top_srcdir)/m4/perror.m4 $(top_srcdir)/m4/pipe.m4 \
+       $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf.m4 \
+       $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/pselect.m4 \
        $(top_srcdir)/m4/pthread-thread.m4 \
        $(top_srcdir)/m4/pthread_h.m4 \
        $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \
@@ -168,9 +176,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/reallocarray.m4 $(top_srcdir)/m4/regex.m4 \
        $(top_srcdir)/m4/sched_h.m4 $(top_srcdir)/m4/select.m4 \
        $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/setlocale_null.m4 \
-       $(top_srcdir)/m4/sigaction.m4 $(top_srcdir)/m4/sigaltstack.m4 \
-       $(top_srcdir)/m4/signal_h.m4 \
-       $(top_srcdir)/m4/signalblocking.m4 \
+       $(top_srcdir)/m4/sigaltstack.m4 $(top_srcdir)/m4/signal_h.m4 \
+       $(top_srcdir)/m4/signalblocking.m4 $(top_srcdir)/m4/sigsegv.m4 \
        $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \
        $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \
        $(top_srcdir)/m4/sockets.m4 $(top_srcdir)/m4/socklen.m4 \
@@ -178,9 +185,9 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/stack-direction.m4 \
        $(top_srcdir)/m4/stat-time.m4 $(top_srcdir)/m4/stat.m4 \
        $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdarg.m4 \
-       $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \
-       $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \
-       $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \
+       $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \
+       $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/stdio_h.m4 \
+       $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/stpcpy.m4 \
        $(top_srcdir)/m4/strcase.m4 $(top_srcdir)/m4/strerror.m4 \
        $(top_srcdir)/m4/strerror_r.m4 $(top_srcdir)/m4/string_h.m4 \
        $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strnlen.m4 \
@@ -194,12 +201,12 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/sys_uio_h.m4 \
        $(top_srcdir)/m4/sys_wait_h.m4 $(top_srcdir)/m4/tempname.m4 \
        $(top_srcdir)/m4/thread.m4 $(top_srcdir)/m4/threadlib.m4 \
-       $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/time_r.m4 \
-       $(top_srcdir)/m4/time_rz.m4 $(top_srcdir)/m4/timegm.m4 \
-       $(top_srcdir)/m4/timespec.m4 $(top_srcdir)/m4/tm_gmtoff.m4 \
-       $(top_srcdir)/m4/tzset.m4 $(top_srcdir)/m4/unistd_h.m4 \
-       $(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/vasnprintf.m4 \
-       $(top_srcdir)/m4/vasprintf.m4 $(top_srcdir)/m4/version-etc.m4 \
+       $(top_srcdir)/m4/time.m4 $(top_srcdir)/m4/time_h.m4 \
+       $(top_srcdir)/m4/time_r.m4 $(top_srcdir)/m4/time_rz.m4 \
+       $(top_srcdir)/m4/timegm.m4 $(top_srcdir)/m4/timespec.m4 \
+       $(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/tzset.m4 \
+       $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/unlocked-io.m4 \
+       $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/version-etc.m4 \
        $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/warn-on-use.m4 \
        $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/m4/wchar_h.m4 \
        $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wcrtomb.m4 \
@@ -208,7 +215,6 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/wmemchr.m4 \
        $(top_srcdir)/m4/wmempcpy.m4 $(top_srcdir)/m4/xalloc.m4 \
        $(top_srcdir)/m4/xsize.m4 $(top_srcdir)/m4/xstrtol.m4 \
-       $(top_srcdir)/m4/xvasprintf.m4 $(top_srcdir)/m4/year2038.m4 \
        $(top_srcdir)/m4/zzgnulib.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
@@ -281,10 +287,9 @@ am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 am__uninstall_files_from_dir = { \
-  test -z "$$files" \
-    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
-    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
-         $(am__cd) "$$dir" && rm -f $$files; }; \
+  { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+  || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+       $(am__cd) "$$dir" && echo $$files | $(am__xargs_n) 40 $(am__rm_f); }; \
   }
 am__recheck_rx = ^[    ]*:recheck:[    ]*
 am__global_test_result_rx = ^[         ]*:global-test-result:[         ]*
@@ -453,6 +458,7 @@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
 AR = @AR@
 ARFLAGS = @ARFLAGS@
+ASSERT_H = @ASSERT_H@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -466,6 +472,7 @@ CC = @CC@
 CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
 CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
+CLOCK_TIME_LIB = @CLOCK_TIME_LIB@
 CONFIG_INCLUDE = @CONFIG_INCLUDE@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
@@ -477,7 +484,6 @@ DEPDIR = @DEPDIR@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-EGREP = @EGREP@
 EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@
 EMULTIHOP_VALUE = @EMULTIHOP_VALUE@
 ENOLINK_HIDDEN = @ENOLINK_HIDDEN@
@@ -485,14 +491,17 @@ ENOLINK_VALUE = @ENOLINK_VALUE@
 EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@
 EOVERFLOW_VALUE = @EOVERFLOW_VALUE@
 ERRNO_H = @ERRNO_H@
+ERROR_H = @ERROR_H@
 ETAGS = @ETAGS@
 EXEEXT = @EXEEXT@
 FLOAT_H = @FLOAT_H@
 FNMATCH_H = @FNMATCH_H@
 GETOPT_CDEFS_H = @GETOPT_CDEFS_H@
 GETOPT_H = @GETOPT_H@
+GETRANDOM_LIB = @GETRANDOM_LIB@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@
+GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@
 GL_CXXFLAG_ALLOW_WARNINGS = @GL_CXXFLAG_ALLOW_WARNINGS@
 GL_GNULIB_ACCEPT = @GL_GNULIB_ACCEPT@
 GL_GNULIB_ACCEPT4 = @GL_GNULIB_ACCEPT4@
@@ -501,9 +510,11 @@ GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@
 GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@
 GL_GNULIB_BIND = @GL_GNULIB_BIND@
 GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@
+GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@
 GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@
 GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@
 GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@
+GL_GNULIB_CHMOD = @GL_GNULIB_CHMOD@
 GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@
 GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@
 GL_GNULIB_CONNECT = @GL_GNULIB_CONNECT@
@@ -541,6 +552,7 @@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@
 GL_GNULIB_FGETS = @GL_GNULIB_FGETS@
 GL_GNULIB_FNMATCH = @GL_GNULIB_FNMATCH@
 GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@
+GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@
 GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@
 GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@
 GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@
@@ -576,7 +588,9 @@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@
 GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@
 GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@
 GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@
+GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@
 GL_GNULIB_GETPEERNAME = @GL_GNULIB_GETPEERNAME@
+GL_GNULIB_GETPROGNAME = @GL_GNULIB_GETPROGNAME@
 GL_GNULIB_GETRANDOM = @GL_GNULIB_GETRANDOM@
 GL_GNULIB_GETSOCKNAME = @GL_GNULIB_GETSOCKNAME@
 GL_GNULIB_GETSOCKOPT = @GL_GNULIB_GETSOCKOPT@
@@ -608,6 +622,7 @@ GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@
 GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@
 GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@
 GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@
+GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@
 GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@
 GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@
 GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@
@@ -628,6 +643,7 @@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@
 GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@
 GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@
 GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@
+GL_GNULIB_MBSTOWCS = @GL_GNULIB_MBSTOWCS@
 GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@
 GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@
 GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@
@@ -674,6 +690,7 @@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@
 GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@
 GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@
 GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@
+GL_GNULIB_MEMSET_EXPLICIT = @GL_GNULIB_MEMSET_EXPLICIT@
 GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@
 GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@
 GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@
@@ -730,6 +747,7 @@ GL_GNULIB_READ = @GL_GNULIB_READ@
 GL_GNULIB_READLINK = @GL_GNULIB_READLINK@
 GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@
 GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@
+GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@
 GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@
 GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@
 GL_GNULIB_RECV = @GL_GNULIB_RECV@
@@ -793,8 +811,10 @@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@
 GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@
 GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@
 GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@
+GL_GNULIB_TIME = @GL_GNULIB_TIME@
 GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@
 GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@
+GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@
 GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@
 GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@
 GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@
@@ -868,6 +888,7 @@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@
 GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
 GNULIB_WARN_CFLAGS = @GNULIB_WARN_CFLAGS@
 GREP = @GREP@
+HARD_LOCALE_LIB = @HARD_LOCALE_LIB@
 HAVE_ACCEPT4 = @HAVE_ACCEPT4@
 HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@
 HAVE_ALLOCA_H = @HAVE_ALLOCA_H@
@@ -898,6 +919,7 @@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@
 HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
 HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
 HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
+HAVE_DECL_GETW = @HAVE_DECL_GETW@
 HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
 HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
 HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@
@@ -907,6 +929,8 @@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@
 HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
 HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
 HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@
+HAVE_DECL_PROGRAM_INVOCATION_NAME = @HAVE_DECL_PROGRAM_INVOCATION_NAME@
+HAVE_DECL_PUTW = @HAVE_DECL_PUTW@
 HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
 HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
 HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@
@@ -930,6 +954,9 @@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
 HAVE_DPRINTF = @HAVE_DPRINTF@
 HAVE_DUP3 = @HAVE_DUP3@
 HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
+HAVE_ERROR = @HAVE_ERROR@
+HAVE_ERROR_AT_LINE = @HAVE_ERROR_AT_LINE@
+HAVE_ERROR_H = @HAVE_ERROR_H@
 HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
 HAVE_EXECVPE = @HAVE_EXECVPE@
 HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@
@@ -960,12 +987,15 @@ HAVE_GETLOGIN = @HAVE_GETLOGIN@
 HAVE_GETOPT_H = @HAVE_GETOPT_H@
 HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
 HAVE_GETPASS = @HAVE_GETPASS@
+HAVE_GETPROGNAME = @HAVE_GETPROGNAME@
 HAVE_GETRANDOM = @HAVE_GETRANDOM@
 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
 HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@
 HAVE_GETUMASK = @HAVE_GETUMASK@
 HAVE_GRANTPT = @HAVE_GRANTPT@
 HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
+HAVE_IMAXABS = @HAVE_IMAXABS@
+HAVE_IMAXDIV = @HAVE_IMAXDIV@
 HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@
 HAVE_INITSTATE = @HAVE_INITSTATE@
 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
@@ -993,6 +1023,7 @@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
 HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
 HAVE_MBTOWC = @HAVE_MBTOWC@
 HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MEMSET_EXPLICIT = @HAVE_MEMSET_EXPLICIT@
 HAVE_MKDIRAT = @HAVE_MKDIRAT@
 HAVE_MKDTEMP = @HAVE_MKDTEMP@
 HAVE_MKFIFO = @HAVE_MKFIFO@
@@ -1150,9 +1181,11 @@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
 HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@
 HAVE_TIMEGM = @HAVE_TIMEGM@
 HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@
+HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@
 HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@
 HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
 HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNISTRING_WOE32DLL_H = @HAVE_UNISTRING_WOE32DLL_H@
 HAVE_UNLINKAT = @HAVE_UNLINKAT@
 HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
 HAVE_USLEEP = @HAVE_USLEEP@
@@ -1202,7 +1235,6 @@ HAVE_WMEMPCPY = @HAVE_WMEMPCPY@
 HAVE_WMEMSET = @HAVE_WMEMSET@
 HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@
 HAVE_XLOCALE_H = @HAVE_XLOCALE_H@
-HAVE__BOOL = @HAVE__BOOL@
 HAVE__EXIT = @HAVE__EXIT@
 HELP2MAN = @HELP2MAN@
 HOST_CPU = @HOST_CPU@
@@ -1268,15 +1300,20 @@ LTLIBOBJS = @LTLIBOBJS@
 LTLIBSIGSEGV = @LTLIBSIGSEGV@
 LTLIBTHREAD = @LTLIBTHREAD@
 MAKEINFO = @MAKEINFO@
+MBRTOWC_LIB = @MBRTOWC_LIB@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
+NANOSLEEP_LIB = @NANOSLEEP_LIB@
 NETINET_IN_H = @NETINET_IN_H@
 NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@
+NEXT_ASSERT_H = @NEXT_ASSERT_H@
 NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@
+NEXT_AS_FIRST_DIRECTIVE_ASSERT_H = @NEXT_AS_FIRST_DIRECTIVE_ASSERT_H@
 NEXT_AS_FIRST_DIRECTIVE_CTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_CTYPE_H@
 NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@
+NEXT_AS_FIRST_DIRECTIVE_ERROR_H = @NEXT_AS_FIRST_DIRECTIVE_ERROR_H@
 NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@
 NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@
 NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H = @NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H@
@@ -1312,6 +1349,7 @@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@
 NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@
 NEXT_CTYPE_H = @NEXT_CTYPE_H@
 NEXT_ERRNO_H = @NEXT_ERRNO_H@
+NEXT_ERROR_H = @NEXT_ERROR_H@
 NEXT_FCNTL_H = @NEXT_FCNTL_H@
 NEXT_FLOAT_H = @NEXT_FLOAT_H@
 NEXT_FNMATCH_H = @NEXT_FNMATCH_H@
@@ -1354,27 +1392,35 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
 PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
 POSUB = @POSUB@
 PRAGMA_COLUMNS = @PRAGMA_COLUMNS@
 PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
 PRIPTR_PREFIX = @PRIPTR_PREFIX@
 PR_PROGRAM = @PR_PROGRAM@
 PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@
+PTHREAD_SIGMASK_LIB = @PTHREAD_SIGMASK_LIB@
 PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
 RANLIB = @RANLIB@
 REPLACE_ACCESS = @REPLACE_ACCESS@
 REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@
 REPLACE_BTOWC = @REPLACE_BTOWC@
-REPLACE_CALLOC = @REPLACE_CALLOC@
+REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@
+REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@
 REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@
+REPLACE_CHMOD = @REPLACE_CHMOD@
 REPLACE_CHOWN = @REPLACE_CHOWN@
 REPLACE_CLOSE = @REPLACE_CLOSE@
+REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@
 REPLACE_CREAT = @REPLACE_CREAT@
 REPLACE_CTIME = @REPLACE_CTIME@
 REPLACE_DPRINTF = @REPLACE_DPRINTF@
 REPLACE_DUP = @REPLACE_DUP@
 REPLACE_DUP2 = @REPLACE_DUP2@
+REPLACE_DUP3 = @REPLACE_DUP3@
 REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
+REPLACE_ERROR = @REPLACE_ERROR@
+REPLACE_ERROR_AT_LINE = @REPLACE_ERROR_AT_LINE@
 REPLACE_EXECL = @REPLACE_EXECL@
 REPLACE_EXECLE = @REPLACE_EXECLE@
 REPLACE_EXECLP = @REPLACE_EXECLP@
@@ -1387,11 +1433,13 @@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@
 REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
 REPLACE_FCLOSE = @REPLACE_FCLOSE@
 REPLACE_FCNTL = @REPLACE_FCNTL@
+REPLACE_FDATASYNC = @REPLACE_FDATASYNC@
 REPLACE_FDOPEN = @REPLACE_FDOPEN@
 REPLACE_FFLUSH = @REPLACE_FFLUSH@
 REPLACE_FFSLL = @REPLACE_FFSLL@
 REPLACE_FNMATCH = @REPLACE_FNMATCH@
 REPLACE_FOPEN = @REPLACE_FOPEN@
+REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@
 REPLACE_FPRINTF = @REPLACE_FPRINTF@
 REPLACE_FPURGE = @REPLACE_FPURGE@
 REPLACE_FREE = @REPLACE_FREE@
@@ -1409,17 +1457,24 @@ REPLACE_GETCWD = @REPLACE_GETCWD@
 REPLACE_GETDELIM = @REPLACE_GETDELIM@
 REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
 REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@
+REPLACE_GETENTROPY = @REPLACE_GETENTROPY@
 REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
 REPLACE_GETLINE = @REPLACE_GETLINE@
+REPLACE_GETLOADAVG = @REPLACE_GETLOADAVG@
 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
 REPLACE_GETPASS = @REPLACE_GETPASS@
+REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@
+REPLACE_GETPROGNAME = @REPLACE_GETPROGNAME@
 REPLACE_GETRANDOM = @REPLACE_GETRANDOM@
+REPLACE_GETSUBOPT = @REPLACE_GETSUBOPT@
 REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
 REPLACE_GMTIME = @REPLACE_GMTIME@
 REPLACE_ICONV = @REPLACE_ICONV@
 REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@
 REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@
+REPLACE_IMAXABS = @REPLACE_IMAXABS@
+REPLACE_IMAXDIV = @REPLACE_IMAXDIV@
 REPLACE_INET_NTOP = @REPLACE_INET_NTOP@
 REPLACE_INET_PTON = @REPLACE_INET_PTON@
 REPLACE_INITSTATE = @REPLACE_INITSTATE@
@@ -1438,21 +1493,27 @@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@
 REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
 REPLACE_LSEEK = @REPLACE_LSEEK@
 REPLACE_LSTAT = @REPLACE_LSTAT@
-REPLACE_MALLOC = @REPLACE_MALLOC@
+REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@
+REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@
 REPLACE_MBRLEN = @REPLACE_MBRLEN@
 REPLACE_MBRTOWC = @REPLACE_MBRTOWC@
 REPLACE_MBSINIT = @REPLACE_MBSINIT@
 REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@
 REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@
 REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@
+REPLACE_MBSTOWCS = @REPLACE_MBSTOWCS@
 REPLACE_MBTOWC = @REPLACE_MBTOWC@
+REPLACE_MB_CUR_MAX = @REPLACE_MB_CUR_MAX@
 REPLACE_MEMCHR = @REPLACE_MEMCHR@
 REPLACE_MEMMEM = @REPLACE_MEMMEM@
+REPLACE_MEMPCPY = @REPLACE_MEMPCPY@
 REPLACE_MKDIR = @REPLACE_MKDIR@
 REPLACE_MKFIFO = @REPLACE_MKFIFO@
 REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@
 REPLACE_MKNOD = @REPLACE_MKNOD@
 REPLACE_MKNODAT = @REPLACE_MKNODAT@
+REPLACE_MKOSTEMP = @REPLACE_MKOSTEMP@
+REPLACE_MKOSTEMPS = @REPLACE_MKOSTEMPS@
 REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
 REPLACE_MKTIME = @REPLACE_MKTIME@
 REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
@@ -1463,8 +1524,10 @@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
 REPLACE_OPEN = @REPLACE_OPEN@
 REPLACE_OPENAT = @REPLACE_OPENAT@
 REPLACE_PERROR = @REPLACE_PERROR@
+REPLACE_PIPE2 = @REPLACE_PIPE2@
 REPLACE_POPEN = @REPLACE_POPEN@
 REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@
+REPLACE_POSIX_OPENPT = @REPLACE_POSIX_OPENPT@
 REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
 REPLACE_PSELECT = @REPLACE_PSELECT@
@@ -1531,8 +1594,9 @@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
 REPLACE_READ = @REPLACE_READ@
 REPLACE_READLINK = @REPLACE_READLINK@
 REPLACE_READLINKAT = @REPLACE_READLINKAT@
-REPLACE_REALLOC = @REPLACE_REALLOC@
 REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@
+REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@
+REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@
 REPLACE_REALPATH = @REPLACE_REALPATH@
 REPLACE_REMOVE = @REPLACE_REMOVE@
 REPLACE_RENAME = @REPLACE_RENAME@
@@ -1541,6 +1605,7 @@ REPLACE_RMDIR = @REPLACE_RMDIR@
 REPLACE_SCHED_YIELD = @REPLACE_SCHED_YIELD@
 REPLACE_SELECT = @REPLACE_SELECT@
 REPLACE_SETENV = @REPLACE_SETENV@
+REPLACE_SETHOSTNAME = @REPLACE_SETHOSTNAME@
 REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
 REPLACE_SETSTATE = @REPLACE_SETSTATE@
 REPLACE_SLEEP = @REPLACE_SLEEP@
@@ -1549,6 +1614,7 @@ REPLACE_SPRINTF = @REPLACE_SPRINTF@
 REPLACE_STAT = @REPLACE_STAT@
 REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@
 REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
+REPLACE_STPCPY = @REPLACE_STPCPY@
 REPLACE_STPNCPY = @REPLACE_STPNCPY@
 REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
 REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@
@@ -1575,7 +1641,9 @@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
 REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@
 REPLACE_SYMLINK = @REPLACE_SYMLINK@
 REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
+REPLACE_TIME = @REPLACE_TIME@
 REPLACE_TIMEGM = @REPLACE_TIMEGM@
+REPLACE_TIMESPEC_GET = @REPLACE_TIMESPEC_GET@
 REPLACE_TMPFILE = @REPLACE_TMPFILE@
 REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
 REPLACE_TRUNCATE = @REPLACE_TRUNCATE@
@@ -1593,25 +1661,33 @@ REPLACE_VPRINTF = @REPLACE_VPRINTF@
 REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@
 REPLACE_VSPRINTF = @REPLACE_VSPRINTF@
 REPLACE_WCRTOMB = @REPLACE_WCRTOMB@
+REPLACE_WCSCMP = @REPLACE_WCSCMP@
 REPLACE_WCSFTIME = @REPLACE_WCSFTIME@
+REPLACE_WCSNCMP = @REPLACE_WCSNCMP@
 REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@
 REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@
+REPLACE_WCSSTR = @REPLACE_WCSSTR@
 REPLACE_WCSTOK = @REPLACE_WCSTOK@
 REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@
 REPLACE_WCTOB = @REPLACE_WCTOB@
 REPLACE_WCTOMB = @REPLACE_WCTOMB@
 REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
+REPLACE_WMEMCMP = @REPLACE_WMEMCMP@
+REPLACE_WMEMPCPY = @REPLACE_WMEMPCPY@
 REPLACE_WRITE = @REPLACE_WRITE@
+REPLACE__EXIT = @REPLACE__EXIT@
+SCHED_YIELD_LIB = @SCHED_YIELD_LIB@
 SED = @SED@
+SELECT_LIB = @SELECT_LIB@
+SETLOCALE_NULL_LIB = @SETLOCALE_NULL_LIB@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIGSEGV_H = @SIGSEGV_H@
 SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
 SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
 SRC_VERSION_C = @SRC_VERSION_C@
-STDALIGN_H = @STDALIGN_H@
 STDARG_H = @STDARG_H@
-STDBOOL_H = @STDBOOL_H@
+STDCKDINT_H = @STDCKDINT_H@
 STDDEF_H = @STDDEF_H@
 STDINT_H = @STDINT_H@
 STRIP = @STRIP@
@@ -1649,8 +1725,10 @@ ac_ct_CC = @ac_ct_CC@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
+am__rm_f_notfound = @am__rm_f_notfound@
 am__tar = @am__tar@
 am__untar = @am__untar@
+am__xargs_n = @am__xargs_n@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
@@ -1663,8 +1741,10 @@ datarootdir = @datarootdir@
 docdir = @docdir@
 dvidir = @dvidir@
 exec_prefix = @exec_prefix@
+gl_LIBOBJDEPS = @gl_LIBOBJDEPS@
 gl_LIBOBJS = @gl_LIBOBJS@
 gl_LTLIBOBJS = @gl_LTLIBOBJS@
+gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@
 gltests_LIBOBJS = @gltests_LIBOBJS@
 gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
 gltests_WITNESS = @gltests_WITNESS@
@@ -1707,6 +1787,7 @@ TESTS = \
   diff3 \
   excess-slash \
   help-version \
+  ifdef \
   invalid-re   \
   function-line-vs-leading-space \
   ignore-matching-lines \
@@ -1719,7 +1800,9 @@ TESTS = \
   strcoll-0-names \
   filename-quoting \
   strip-trailing-cr \
-  colors
+  timezone \
+  colors \
+  y2038-vs-32bit
 
 XFAIL_TESTS = large-subopt
 EXTRA_DIST = \
@@ -1952,17 +2035,16 @@ $(TEST_SUITE_LOG): $(TEST_LOGS)
        $$success || exit 1
 
 check-TESTS: 
-       @list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list
-       @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
-       @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+       @$(am__rm_f) $(RECHECK_LOGS)
+       @$(am__rm_f) $(RECHECK_LOGS:.log=.trs)
+       @$(am__rm_f) $(TEST_SUITE_LOG)
        @set +e; $(am__set_TESTS_bases); \
        log_list=`for i in $$bases; do echo $$i.log; done`; \
-       trs_list=`for i in $$bases; do echo $$i.trs; done`; \
-       log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
+       log_list=`echo $$log_list`; \
        $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
        exit $$?;
 recheck: all 
-       @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+       @$(am__rm_f) $(TEST_SUITE_LOG)
        @set +e; $(am__set_TESTS_bases); \
        bases=`for i in $$bases; do echo $$i; done \
                 | $(am__list_recheck_tests)` || exit 1; \
@@ -2035,6 +2117,13 @@ help-version.log: help-version
        --log-file $$b.log --trs-file $$b.trs \
        $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
        "$$tst" $(AM_TESTS_FD_REDIRECT)
+ifdef.log: ifdef
+       @p='ifdef'; \
+       b='ifdef'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
 invalid-re.log: invalid-re
        @p='invalid-re'; \
        b='invalid-re'; \
@@ -2119,6 +2208,13 @@ strip-trailing-cr.log: strip-trailing-cr
        --log-file $$b.log --trs-file $$b.trs \
        $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
        "$$tst" $(AM_TESTS_FD_REDIRECT)
+timezone.log: timezone
+       @p='timezone'; \
+       b='timezone'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
 colors.log: colors
        @p='colors'; \
        b='colors'; \
@@ -2126,6 +2222,13 @@ colors.log: colors
        --log-file $$b.log --trs-file $$b.trs \
        $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
        "$$tst" $(AM_TESTS_FD_REDIRECT)
+y2038-vs-32bit.log: y2038-vs-32bit
+       @p='y2038-vs-32bit'; \
+       b='y2038-vs-32bit'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
 .test.log:
        @p='$<'; \
        $(am__set_b); \
@@ -2198,15 +2301,15 @@ install-strip:
            "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
        fi
 mostlyclean-generic:
-       -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
-       -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
-       -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+       -$(am__rm_f) $(TEST_LOGS)
+       -$(am__rm_f) $(TEST_LOGS:.log=.trs)
+       -$(am__rm_f) $(TEST_SUITE_LOG)
 
 clean-generic:
 
 distclean-generic:
-       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+       -$(am__rm_f) $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || $(am__rm_f) $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
        @echo "This command is intended for maintainers to use"
index 79568a2..edf76a4 100755 (executable)
--- a/tests/cmp
+++ b/tests/cmp
@@ -1,7 +1,7 @@
 #!/bin/sh
 # Test 'cmp'.
 
-# Copyright 2017-2021 Free Software Foundation, Inc.
+# Copyright 2017-2023 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
index d28a61c..6ef729f 100755 (executable)
@@ -12,7 +12,7 @@ echo b > b
 
 # On systems lacking fractional timestamp support, diff -u does not print
 # a decimal point and 9-digit nanosecond suffix.
-nanosecond_zeros=$(diff -u a b|grep -F . > /dev/null && echo .000000000)
+nanosecond_zeros=$(diff -u a b|grep '\.' > /dev/null && echo .000000000)
 
 epoch='1970-01-01 00:00:00'
 touch -t 197001010000.00 a b
@@ -128,6 +128,9 @@ printf '%1000000s-a' > a
 printf '%1000000s-b' > b
 head -c 10 < fifo > /dev/null &
 diff --color=always ---presume-output-tty a b > fifo
-test $? = 141 || fail=1
+
+# Depending on version of GNU make (4.3.92-4.4 set SIGPIPE to "ignore"),
+# either of these is acceptable.
+case $? in 2|141) ;; *) fail=1 ;; esac
 
 Exit $fail
index dff7527..0ec6b12 100644 (file)
@@ -1,7 +1,7 @@
 # -*- sh -*-
 # Check environment variables for sane values while testing.
 
-# Copyright (C) 2000-2021 Free Software Foundation, Inc.
+# Copyright (C) 2000-2023 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
index d5a8d71..a40693b 100755 (executable)
@@ -2,7 +2,7 @@
 # Make sure all these programs work properly
 # when invoked with --help or --version.
 
-# Copyright (C) 2000-2013, 2015-2021 Free Software Foundation, Inc.
+# Copyright (C) 2000-2013, 2015-2023 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/tests/ifdef b/tests/ifdef
new file mode 100755 (executable)
index 0000000..d3b05dd
--- /dev/null
@@ -0,0 +1,37 @@
+#!/bin/sh
+# --ifdef
+
+# Bug reported by Robert Webb in <http://bugs.gnu.org/61193>.
+
+. "${srcdir=.}/init.sh"; path_prepend_ ../src
+
+fail=0
+
+cat <<'EOF' >a
+1
+2
+3
+4
+5
+EOF
+
+cat <<'EOF' >b
+1
+4
+5
+EOF
+
+cat <<'EOF' >exp
+1
+#ifndef ZZZ
+2
+3
+#endif /* ! ZZZ */
+4
+5
+EOF
+
+returns_ 1 diff -D ZZZ a b >out 2>err || fail=1
+compare exp out || fail=1
+
+Exit $fail
index 656a54e..ad62f2a 100644 (file)
@@ -1,6 +1,6 @@
 # This file is sourced by init.sh, *before* its initialization.
 
-# Copyright (C) 2010-2021 Free Software Foundation, Inc.
+# Copyright (C) 2010-2023 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -61,8 +61,22 @@ sanitize_path_()
 
 require_valgrind_()
 {
-  valgrind --error-exitcode=1 true 2>/dev/null ||
+  local errout; errout=$(
+    LC_ALL=C valgrind --error-exitcode=1 diff /dev/null /dev/null 2>&1
+  ) ||
     skip_ "requires a working valgrind"
+  case $errout in
+    *'Serious error'*)
+      skip_ "requires a valgrind without serious errors";;
+  esac
+}
+
+# Skip the current test if we lack Perl.
+require_perl_()
+{
+  : ${PERL=perl}
+  $PERL -e 'use warnings' > /dev/null 2>&1 \
+    || skip_ 'configure did not find a usable version of Perl'
 }
 
 sanitize_path_
index 9ef8348..ede5dee 100644 (file)
@@ -1,6 +1,6 @@
 # source this file; set up for tests
 
-# Copyright (C) 2009-2021 Free Software Foundation, Inc.
+# Copyright (C) 2009-2023 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -426,6 +426,23 @@ setup_ ()
   for sig_ in 1 2 3 13 15; do
     eval "trap 'Exit $(expr $sig_ + 128)' $sig_"
   done
+
+  # Remove relative and non-accessible directories from PATH, including '.'
+  # and Zero-length entries.
+  saved_IFS="$IFS"
+  IFS=:
+  new_PATH=
+  sep_=
+  for dir in $PATH; do
+    case "$dir" in
+      /*) test -d "$dir/." || continue
+          new_PATH="${new_PATH}${sep_}${dir}"
+          sep_=':';;
+    esac
+  done
+  IFS="$saved_IFS"
+  PATH="$new_PATH"
+  export PATH
 }
 
 # This is a stub function that is run upon trap (upon regular exit and
index 1802df2..33f3b30 100644 (file)
 
 . "${srcdir=.}/init.sh"; path_prepend_ ../src
 
+require_perl_
+
 fail=0
 
 diff -u \
   "$abs_top_srcdir/tests/large-subopt.in1" \
   "$abs_top_srcdir/tests/large-subopt.in2" \
-  | perl -n0 -e \
+  | $PERL -n0 -e \
      '/\n-2\n(\+L: 361\n){2}\+2\n/ and do {$e=1; last}; END{exit !$e}' \
      && fail=1
 
diff --git a/tests/timezone b/tests/timezone
new file mode 100755 (executable)
index 0000000..52b9e18
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/sh
+# In diff 3.4 through 3.8, this would output the wrong timezone on Solaris.
+
+. "${srcdir=.}/init.sh"; path_prepend_ ../src
+
+fail=0
+
+echo a >a || fail=1
+case $(LC_ALL=C TZ=EST5 diff -u /dev/null a) in
+  *' -0500'*) ;;
+  *) fail=1 ;;
+esac
+
+Exit $fail
diff --git a/tests/y2038-vs-32bit b/tests/y2038-vs-32bit
new file mode 100755 (executable)
index 0000000..51633c3
--- /dev/null
@@ -0,0 +1,13 @@
+#!/bin/sh
+# dates after Y2K38 are safe
+
+. "${srcdir=.}/init.sh"; path_prepend_ ../src
+
+fail=0
+
+touch -t 203901010000 in || skip_ 'touch -t 2039... failed'
+
+cmp in in || fail=1
+diff in in || fail=1
+
+Exit $fail